From 588acd46b216a8db88315a762b8e7862763e12cc Mon Sep 17 00:00:00 2001 From: mamutmk5 <3045922+mamutmk5@users.noreply.github.com> Date: Thu, 2 Nov 2023 16:01:02 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20hpi-schu?= =?UTF-8?q?l-cloud/schulcloud-server@46788a4dff6f1f7aa7ed377efe9b2cc8cc1f0?= =?UTF-8?q?87c=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/search/search_index.js | 4 +- modules/AuthorizationModule.html | 8 +- modules/AuthorizationModule/dependencies.svg | 8 +- modules/BoardModule.html | 232 +++++++++--------- modules/BoardModule/dependencies.svg | 232 +++++++++--------- modules/CacheWrapperModule.html | 8 +- modules/CacheWrapperModule/dependencies.svg | 8 +- .../CollaborativeStorageAdapterModule.html | 8 +- .../dependencies.svg | 8 +- modules/CollaborativeStorageModule.html | 8 +- .../dependencies.svg | 8 +- modules/CommonToolModule.html | 8 +- modules/CommonToolModule/dependencies.svg | 8 +- modules/ContextExternalToolModule.html | 112 ++++----- .../dependencies.svg | 112 ++++----- modules/DatabaseManagementModule.html | 8 +- .../DatabaseManagementModule/dependencies.svg | 8 +- modules/ExternalToolModule.html | 152 ++++++------ modules/ExternalToolModule/dependencies.svg | 152 ++++++------ modules/FeathersModule.html | 8 +- modules/FeathersModule/dependencies.svg | 8 +- modules/FilesModule.html | 46 ++-- modules/FilesModule/dependencies.svg | 46 ++-- modules/FilesStorageApiModule.html | 54 ++-- .../FilesStorageApiModule/dependencies.svg | 54 ++-- modules/FilesStorageClientModule.html | 74 +++--- .../FilesStorageClientModule/dependencies.svg | 74 +++--- modules/FilesStorageModule.html | 112 ++++----- modules/FilesStorageModule/dependencies.svg | 112 ++++----- modules/FwuLearningContentsModule.html | 70 +++--- .../dependencies.svg | 70 +++--- modules/FwuLearningContentsTestModule.html | 78 +++--- .../dependencies.svg | 78 +++--- modules/GroupApiModule.html | 78 +++--- modules/GroupApiModule/dependencies.svg | 78 +++--- modules/GroupModule.html | 8 +- modules/GroupModule/dependencies.svg | 8 +- modules/ImportUserModule.html | 86 +++---- modules/ImportUserModule/dependencies.svg | 86 +++---- modules/KeycloakConfigurationModule.html | 112 ++++----- .../dependencies.svg | 112 ++++----- modules/LearnroomModule.html | 176 ++++++------- modules/LearnroomModule/dependencies.svg | 176 ++++++------- modules/LegacySchoolApiModule.html | 62 ++--- .../LegacySchoolApiModule/dependencies.svg | 62 ++--- modules/LegacySchoolModule.html | 106 ++++---- modules/LegacySchoolModule/dependencies.svg | 106 ++++---- modules/LessonModule.html | 8 +- modules/LessonModule/dependencies.svg | 8 +- modules/LoggerModule.html | 8 +- modules/LoggerModule/dependencies.svg | 8 +- modules/NewsModule.html | 56 ++--- modules/NewsModule/dependencies.svg | 56 ++--- modules/OauthModule.html | 136 +++++----- modules/OauthModule/dependencies.svg | 136 +++++----- modules/OauthProviderModule.html | 8 +- modules/OauthProviderModule/dependencies.svg | 8 +- modules/PreviewGeneratorProducerModule.html | 8 +- .../dependencies.svg | 8 +- modules/ProvisioningModule.html | 8 +- modules/ProvisioningModule/dependencies.svg | 8 +- modules/RoleModule.html | 8 +- modules/RoleModule/dependencies.svg | 8 +- modules/SchoolExternalToolModule.html | 64 ++--- .../SchoolExternalToolModule/dependencies.svg | 64 ++--- modules/SharingApiModule.html | 78 +++--- modules/SharingApiModule/dependencies.svg | 78 +++--- modules/SharingModule.html | 8 +- modules/SharingModule/dependencies.svg | 8 +- modules/SystemModule.html | 64 ++--- modules/SystemModule/dependencies.svg | 64 ++--- modules/ToolLaunchModule.html | 120 ++++----- modules/ToolLaunchModule/dependencies.svg | 120 ++++----- modules/ToolModule.html | 8 +- modules/ToolModule/dependencies.svg | 8 +- modules/UserApiModule.html | 26 +- modules/UserApiModule/dependencies.svg | 26 +- modules/UserLoginMigrationModule.html | 146 +++++------ .../UserLoginMigrationModule/dependencies.svg | 146 +++++------ modules/VideoConferenceApiModule.html | 70 +++--- .../VideoConferenceApiModule/dependencies.svg | 70 +++--- modules/VideoConferenceModule.html | 140 +++++------ .../VideoConferenceModule/dependencies.svg | 140 +++++------ 83 files changed, 2580 insertions(+), 2580 deletions(-) diff --git a/js/search/search_index.js b/js/search/search_index.js index becbd257770..4719e6da243 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.232,1,5.947]],["body/classes/AbstractAccountService.html",[0,0.17,1,6.537,2,0.557,3,0.012,4,0.012,5,0.006,6,4.991,7,0.075,8,0.903,9,6.718,10,3.016,11,6.259,12,3.423,13,5.433,14,6.537,15,6.537,16,6.537,17,6.537,18,3.776,19,6.537,20,6.537,21,6.537,22,6.909,23,6.909,24,6.909,25,6.537,26,2.963,27,0.542,28,4.991,29,1.029,30,0.001,31,0.736,32,0.179,33,0.635,34,1.271,35,1.59,36,2.991,37,6.259,38,4.991,39,2.412,40,3.608,41,4.991,42,5.433,43,4.991,44,6.537,45,4.991,46,6.537,47,0.955,48,4.222,49,3.914,50,4.991,51,5.431,52,3.543,53,5.433,54,6.537,55,2.75,56,5.364,57,4.991,58,3.22,59,2.328,60,6.537,61,4.991,62,2.929,63,6.909,64,7.79,65,4.991,66,6.874,67,6.537,68,4.991,69,6.537,70,4.436,71,4.991,72,3.386,73,6.909,74,6.037,75,7.474,76,6.909,77,4.757,78,5.044,79,6.537,80,6.537,81,6.909,82,7.016,83,2.741,84,4.991,85,5.781,86,6.909,87,4.496,88,4.991,89,6.909,90,4.991,91,6.909,92,8.282,93,4.991,94,2.424,95,0.115,96,1.365,97,2.159,98,2.959,99,0.833,100,1.671,101,0.008,102,3.751,103,0,104,0]],["title/injectables/AbstractLaunchStrategy.html",[105,0.91,106,5.694]],["body/injectables/AbstractLaunchStrategy.html",[0,0.094,3,0.007,4,0.007,5,0.003,7,0.042,8,0.565,9,4.88,26,1.943,27,0.468,29,0.888,30,0.001,31,0.645,32,0.161,33,0.548,35,1.348,36,2.431,39,1.916,47,0.897,95,0.148,99,0.463,101,0.005,103,0,104,0,105,0.626,106,3.916,107,0.669,108,6.692,109,11.521,110,2.427,111,2.538,112,2.539,113,5.301,114,5.301,115,4.09,116,3.589,117,5.301,118,4.09,119,4.09,120,4.09,121,4.09,122,3.916,123,3.916,124,4.09,125,5.301,126,5.301,127,0.348,128,2.241,129,4.415,130,6.184,131,2.774,132,3.017,133,2.427,134,10.446,135,5.301,136,7.334,137,5.905,138,2.043,139,6.87,140,6.598,141,2.774,142,2.427,143,6.223,144,2.755,145,2.762,146,6.289,147,2.774,148,2.19,149,4.09,150,3.469,151,6.948,152,2.774,153,2.427,154,2.776,155,8.109,156,2.774,157,4.09,158,4.21,159,2.774,160,8.108,161,4.09,162,2.774,163,2.65,164,4.09,165,0.622,166,2.774,167,2.23,168,4.09,169,2.774,170,3.916,171,3.916,172,2.774,173,4.09,174,2.774,175,6.525,176,4.09,177,2.774,178,5.747,179,2.427,180,5.301,181,7.038,182,2.774,183,2.427,184,6.948,185,4.024,186,2.774,187,0.401,188,2.239,189,2.592,190,2.062,191,1.538,192,1.806,193,5.301,194,1.816,195,4.091,196,1.976,197,1.743,198,1.348,199,1.049,200,1.888,201,3.084,202,2.427,203,4.09,204,0.941,205,2.241,206,1.412,207,3.916,208,1.036,209,1.545,210,3.061,211,2.323,212,3.916,213,2.774,214,0.875,215,0.886,216,0.865,217,1.682,218,6.577,219,2.774,220,2.774,221,2.319,222,2.774,223,2.774,224,2.774,225,2.774,226,2.774,227,1.104,228,4.676,229,2.774,230,2.774,231,3.36,232,2.774,233,2.774,234,1.488,235,1.566,236,2.744,237,2.774,238,2.615,239,4.676,240,1.923,241,4.323,242,2.565,243,2.774,244,2.565,245,2.774,246,2.774,247,2.375,248,2.774,249,2.774,250,2.323,251,2.774,252,2.774,253,2.565,254,2.427,255,2.427,256,2.427,257,2.774,258,2.774,259,2.774,260,2.774,261,2.774,262,2.774,263,6.061,264,2.547,265,2.774,266,4.676,267,2.774,268,2.774,269,2.774,270,2.427,271,2.774,272,2.774,273,2.774,274,2.427,275,5.301,276,2.241,277,3.698,278,3.563,279,2.017,280,2.774,281,2.062,282,2.774,283,2.774,284,2.527,285,2.774,286,2.565,287,2.774,288,5.603,289,2.774,290,3.557,291,2.565,292,2.774,293,2.774,294,4.676,295,2.774,296,4.676,297,2.774,298,2.172,299,2.774,300,2.774,301,2.774,302,2.565,303,2.774,304,2.774,305,1.727,306,2.774,307,2.938,308,2.774,309,5.536,310,2.323,311,2.427,312,2.323,313,2.565,314,2.323,315,2.427,316,1.976,317,2.565,318,2.062,319,1.398,320,2.774,321,2.323,322,2.565,323,2.241,324,2.323,325,2.323,326,2.062,327,2.565,328,2.565,329,2.774,330,2.774,331,2.977,332,2.774,333,2.774]],["title/interfaces/AcceptConsentRequestBody.html",[334,0.731,335,5.694]],["body/interfaces/AcceptConsentRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,32,0.186,33,0.681,47,0.993,55,2.611,95,0.114,101,0.015,103,0.001,104,0.001,138,4.847,165,0.869,334,0.951,335,9.293,336,2.118,337,6.183,338,8.182,339,6.579,340,7.149,341,11.749,342,11.116,343,11.749,344,9.952,345,9.952,346,8.09,347,2.452,348,7.263,349,5.974,350,7.412,351,4.441,352,7.741,353,7.149]],["title/interfaces/AcceptLoginRequestBody.html",[334,0.731,354,5.493]],["body/interfaces/AcceptLoginRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.184,33,0.686,47,1.004,55,2.619,77,8.109,101,0.015,103,0.001,104,0.001,165,0.873,199,4.815,334,0.957,336,2.132,337,6.224,338,8.236,340,7.197,344,9.976,345,9.976,347,2.459,354,9.001,355,3.58,356,11.142,357,11.142,358,11.777,359,4.239]],["title/classes/AcceptQuery.html",[0,0.232,360,5.493]],["body/classes/AcceptQuery.html",[0,0.396,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,27,0.394,30,0.001,32,0.13,95,0.161,101,0.016,103,0.001,104,0.001,165,0.912,347,2.355,355,4.678,360,9.404,361,6.454,362,9.565,363,7.989,364,1.742,365,9.565,366,6.511,367,5.551,368,4.561,369,2.584,370,3.835,371,3.21,372,9.565,373,6.241,374,3.053,375,4.434,376,2.188,377,7.734,378,9.565,379,2.168]],["title/entities/Account.html",[94,3.303,380,1.445]],["body/entities/Account.html",[0,0.225,3,0.016,4,0.016,5,0.008,7,0.171,27,0.538,30,0.001,32,0.18,33,0.667,39,3.051,47,0.917,48,5.34,49,4.682,51,5.1,82,8.222,83,3.467,87,5.269,94,4.447,95,0.135,96,2.504,97,2.86,101,0.015,103,0.001,104,0.001,165,0.822,216,1.223,240,4.194,347,1.852,351,5.269,364,2.379,369,3.061,370,4.237,371,2.525,380,1.945,381,2.2,382,6.613,383,6.872,384,8.482,385,7.087,386,7.328,387,6.613,388,6.613,389,6.613,390,6.613,391,6.613,392,6.613,393,6.613,394,5.215,395,6.613,396,5.179,397,6.613,398,1.948,399,3.632,400,2.918,401,8.463,402,2.741,403,4.328,404,1.192,405,1.762,406,2.151,407,5.342,408,6.113,409,6.113,410,6.113,411,5.039,412,5.538,413,6.113,414,6.113,415,3.574,416,4.21,417,4.807,418,5.179,419,6.113,420,6.113,421,5.179,422,5.538,423,5.784,424,6.113]],["title/modules/AccountApiModule.html",[425,1.812,426,5.493]],["body/modules/AccountApiModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,30,0.001,95,0.173,99,1.424,101,0.014,103,0.001,104,0.001,187,1.234,425,3.176,426,11.407,427,3.082,428,3.316,429,3.414,430,3.399,431,3.385,432,4.386,433,4.098,434,8.532,435,8.532,436,8.532,437,9.423,438,6.199,439,12.232,440,11.081,441,7.931,442,4.339,443,3.343,444,3.263,445,7.887,446,5.361,447,4.494,448,10.425,449,4.302,450,3.505,451,8.532,452,8.532,453,7.887,454,8.532]],["title/classes/AccountByIdBodyParams.html",[0,0.232,455,5.947]],["body/classes/AccountByIdBodyParams.html",[0,0.352,2,0.884,3,0.019,4,0.019,5,0.01,7,0.12,27,0.475,30,0.001,31,0.579,32,0.156,33,0.627,47,0.87,51,5.591,87,6.512,95,0.157,101,0.013,103,0.001,104,0.001,165,0.81,234,2.107,347,2.092,364,2.097,368,5.084,369,2.88,370,4.275,371,3.578,373,5.544,374,2.53,376,1.813,379,2.608,383,7.533,455,9.045,456,10.217,457,7.928,458,7.928,459,10.342,460,5.948,461,3.066,462,7.928,463,7.928,464,7.928,465,7.928,466,7.928,467,3.201,468,8.354,469,3.48,470,4.815,471,4.945,472,5.351,473,9.56,474,6.639,475,3.875,476,6.639]],["title/classes/AccountByIdParams.html",[0,0.232,477,5.947]],["body/classes/AccountByIdParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.289,47,0.84,94,5.721,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,456,9.864,467,3.09,470,4.927,477,10.301,478,6.943,479,7.248,480,9.013]],["title/controllers/AccountController.html",[448,5.947,481,2.611]],["body/controllers/AccountController.html",[0,0.116,3,0.008,4,0.008,5,0.004,7,0.052,8,0.67,10,1.377,27,0.393,29,0.747,30,0.001,31,0.534,32,0.189,33,0.461,34,1.622,35,1.517,36,2.491,87,4.784,94,6.396,95,0.129,100,1.142,101,0.006,103,0,104,0,112,2.762,163,3.575,185,4.911,187,0.493,215,1.089,216,0.631,227,0.988,264,3.396,290,2.001,364,1.736,367,5.54,368,3.167,376,0.78,379,3.14,403,4.591,439,6.484,447,1.414,448,4.853,453,3.153,455,7.069,461,2.657,477,9.735,481,1.31,482,3.411,483,1.626,484,6.135,485,6.135,486,7.015,487,7.015,488,8.082,489,7.015,490,3.411,491,6.216,492,3.411,493,4.228,494,6.277,495,10.923,496,4.422,497,8.082,498,7.973,499,8.116,500,3.808,501,7.015,502,7.209,503,7.245,504,8.044,505,8.812,506,7.604,507,9.896,508,7.015,509,8.091,510,8.28,511,5.624,512,3.411,513,6.332,514,3.411,515,3.411,516,3.411,517,3.411,518,7.069,519,3.411,520,6.333,521,6.528,522,6.329,523,5.549,524,5.115,525,3.411,526,5.549,527,3.411,528,3.411,529,4.143,530,7.069,531,3.411,532,5.549,533,4.853,534,5.13,535,2.975,536,6.135,537,5.549,538,2.5,539,3.411,540,4.034,541,3.411,542,3.411,543,5.328,544,3.411,545,3.411,546,3.411,547,7.069,548,3.411,549,4.814,550,3.411,551,3.411,552,2.201,553,6.09,554,8.196,555,1.773,556,1.814,557,3.411,558,1.636,559,3.411,560,3.411,561,1.829,562,3.411,563,5.713,564,4.757,565,4.752,566,3.411,567,3.411,568,3.411,569,2.341,570,3.411,571,2.143,572,3.411,573,2.599,574,1.497,575,2.044,576,3.132,577,1.925,578,3.153,579,3.411,580,3.411,581,3.411,582,3.411,583,3.411,584,3.411,585,3.411,586,3.411,587,3.411,588,3.411,589,3.411]],["title/classes/AccountDto.html",[0,0.232,66,4.387]],["body/classes/AccountDto.html",[0,0.231,2,0.757,3,0.016,4,0.016,5,0.008,7,0.103,26,2.547,27,0.565,29,0.532,30,0.001,31,0.38,32,0.186,33,0.677,34,1.811,39,2.511,47,0.857,48,4.394,51,4.529,64,10.839,66,7.751,82,7.302,83,3.797,87,4.679,94,3.299,95,0.12,99,1.133,101,0.011,103,0.001,104,0.001,127,0.851,165,0.73,216,2.429,347,1.374,351,4.679,364,2.421,383,6.103,384,7.532,385,6.293,404,1.68,405,2.485,471,2.753,590,6.792,591,4.628,592,4.824,593,7.809,594,6.792,595,2.274,596,4.156,597,6.792,598,6.792,599,6.792,600,6.278,601,6.792,602,7.809,603,6.792,604,8.62,605,6.792,606,6.792,607,6.792,608,6.278,609,6.792,610,8.62,611,6.792,612,6.792,613,6.792,614,5.94,615,6.792,616,6.792,617,3.765,618,2.777,619,3.765,620,4.382,621,5.174,622,4.382,623,5.174]],["title/classes/AccountEntityToDtoMapper.html",[0,0.232,624,5.694]],["body/classes/AccountEntityToDtoMapper.html",[0,0.269,2,0.881,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.474,29,0.9,30,0.001,31,0.643,32,0.156,33,0.556,34,1.343,35,1.391,39,2.126,48,3.721,51,3.836,55,2.475,66,8.52,82,6.183,87,3.963,94,6.686,95,0.132,98,6.812,99,1.318,101,0.013,103,0.001,104,0.001,217,1.342,227,1.191,234,1.282,351,3.963,380,2.588,383,5.168,384,6.379,385,5.33,403,5.168,591,3.432,592,3.577,624,8.639,625,9.839,626,7.896,627,4.155,628,10.315,629,10.315,630,8.332,631,10.315,632,7.896,633,10.315,634,7.896,635,7.3,636,8.639,637,7.896,638,6.613,639,5.74,640,7.896,641,7.3,642,6.907,643,5.623,644,6.907,645,7.3,646,7.3,647,6.907,648,6.613,649,7.896,650,7.3,651,7.3,652,7.896,653,10.315,654,7.896,655,7.896,656,7.896,657,7.3]],["title/classes/AccountFactory.html",[0,0.232,658,5.493]],["body/classes/AccountFactory.html",[0,0.158,2,0.516,3,0.011,4,0.011,5,0.006,7,0.07,8,0.853,26,2.03,27,0.534,29,1.023,30,0.001,31,0.703,32,0.18,33,0.607,34,1.848,35,1.445,39,1.901,47,0.504,48,2.182,49,4.056,51,3.43,55,2.434,59,3.211,87,2.323,94,2.249,95,0.123,99,0.773,101,0.014,103,0,104,0,127,0.58,138,3.084,144,3.204,148,1.425,165,0.553,185,4.879,216,1.306,217,1.342,227,0.888,234,1.146,305,1.319,319,3.482,359,2.462,366,2.589,379,1.94,380,2.191,381,2.349,401,4.28,404,1.272,461,2.358,538,3.182,569,3.177,596,3.876,627,2.167,658,6.914,659,4.63,660,7.18,661,4.566,662,5.404,663,7.061,664,7.061,665,3.985,666,5.404,667,5.658,668,3.985,669,3.985,670,3.985,671,3.914,672,4.386,673,4.831,674,6.21,675,5.715,676,7.004,677,2.637,678,7.061,679,4.63,680,7.061,681,4.63,682,2.613,683,3.985,684,2.637,685,5.054,686,5.218,687,4.082,688,4.906,689,3.949,690,2.613,691,2.463,692,4.059,693,2.544,694,2.502,695,2.613,696,4.978,697,2.637,698,4.745,699,2.613,700,7.172,701,4.119,702,6.575,703,2.637,704,4.238,705,2.613,706,2.637,707,2.613,708,2.637,709,2.613,710,2.947,711,2.745,712,2.613,713,6.023,714,2.637,715,2.613,716,3.985,717,3.727,718,3.985,719,2.637,720,2.523,721,2.502,722,2.064,723,2.613,724,2.613,725,2.613,726,2.637,727,2.637,728,1.771,729,2.613,730,2.637,731,2.79,732,2.613,733,2.637,734,2.637,735,2.689,736,2.745,737,4.232,738,3.671,739,4.63,740,4.049,741,4.63,742,7.061,743,4.63,744,3.365,745,4.28,746,4.63,747,4.63]],["title/injectables/AccountIdmToDtoMapper.html",[105,0.91,748,5.493]],["body/injectables/AccountIdmToDtoMapper.html",[0,0.33,3,0.023,4,0.023,5,0.012,7,0.147,8,1.419,9,6.184,27,0.4,29,0.76,30,0.001,31,0.543,32,0.132,33,0.469,35,1.175,66,8.149,78,7.926,94,4.713,95,0.162,99,1.619,101,0.016,103,0.001,104,0.001,105,1.571,107,2.339,187,1.403,625,9.486,630,9.486,636,9.835,638,8.126,748,9.486,749,9.703,750,10.601,751,9.703]],["title/classes/AccountIdmToDtoMapperDb.html",[0,0.232,752,5.947]],["body/classes/AccountIdmToDtoMapperDb.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,8,1.352,27,0.37,29,0.702,30,0.001,31,0.502,32,0.122,33,0.434,34,1.526,35,1.086,39,2.415,48,4.226,51,4.356,66,8.24,78,7.552,83,2.744,94,5.435,95,0.157,99,1.497,101,0.015,103,0.001,104,0.001,217,1.167,227,0.93,234,1.817,404,2.016,591,3.898,592,4.063,593,7.511,596,2.736,625,7.245,630,9.038,636,9.37,638,7.511,639,6.52,643,6.387,748,10.315,750,10.315,752,9.786,753,8.969,754,8.291,755,8.291,756,10.667,757,10.343,758,8.291,759,7.844,760,7.844]],["title/classes/AccountIdmToDtoMapperIdm.html",[0,0.232,761,5.947]],["body/classes/AccountIdmToDtoMapperIdm.html",[0,0.307,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.355,27,0.371,29,0.706,30,0.001,31,0.505,32,0.122,33,0.436,34,1.532,35,1.091,39,2.426,48,4.245,51,4.376,66,8.253,78,7.573,83,2.756,94,5.45,95,0.157,99,1.503,101,0.015,103,0.001,104,0.001,145,2.281,217,1.172,227,0.934,234,1.822,404,2.022,591,3.916,592,4.081,593,7.545,596,2.748,625,7.277,630,9.063,636,9.397,638,7.545,639,6.549,643,6.415,748,10.331,750,10.331,754,8.328,755,8.328,756,10.688,757,10.372,759,7.88,760,7.88,761,9.814,762,9.009]],["title/injectables/AccountLookupService.html",[105,0.91,763,5.694]],["body/injectables/AccountLookupService.html",[0,0.184,3,0.013,4,0.013,5,0.007,7,0.082,8,0.957,26,2.521,27,0.387,29,0.735,30,0.001,31,0.526,32,0.128,33,0.454,34,2.426,35,1.251,36,2.216,47,0.565,49,4.896,78,5.347,94,3.848,95,0.148,99,0.901,101,0.009,103,0,104,0,105,1.06,107,1.301,111,1.588,112,2.536,127,0.992,167,4.234,187,0.781,200,4.041,216,1.465,217,1.031,221,1.834,227,1.193,234,1.286,235,5.834,264,3.329,359,2.762,369,1.758,379,2.126,569,7.897,639,3.925,694,5.587,734,5.345,763,6.634,764,9.556,765,5.399,766,4.324,767,11.274,768,5.437,769,7.692,770,7.231,771,9.556,772,9.041,773,5.043,774,7.094,775,4.857,776,7.922,777,6.203,778,5.347,779,5.889,780,7.922,781,6.929,782,10.064,783,6.974,784,6.219,785,7.922,786,7.323,787,5.399,788,8.35,789,7.782,790,5.399,791,7.922,792,7.922,793,5.399,794,10.337,795,6.338,796,12.196,797,10.337,798,6.495,799,7.323,800,5.399,801,3.136,802,3.925,803,3.35,804,4.228,805,4.361,806,3.225,807,7.323,808,4.722,809,7.922,810,5.399,811,5.399,812,5.399]],["title/modules/AccountModule.html",[425,1.812,437,4.842]],["body/modules/AccountModule.html",[0,0.228,3,0.016,4,0.016,5,0.008,30,0.001,95,0.176,99,1.118,101,0.011,103,0.001,104,0.001,187,0.969,206,3.41,227,0.958,234,1.5,369,1.487,425,2.818,427,2.421,428,2.604,429,2.681,430,2.67,431,2.659,432,3.891,433,3.996,437,10.148,438,5.79,440,10.35,441,7.408,442,3.697,443,2.626,444,2.563,449,3.666,450,2.753,687,2.856,748,8.541,752,8.081,761,8.081,763,10.35,789,6.92,801,3.892,802,4.871,803,4.158,804,5.248,813,6.701,814,6.701,815,6.701,816,6.701,817,9.678,818,10.285,819,11.807,820,9.984,821,10.81,822,12.359,823,8.984,824,6.701,825,6.701,826,5.861,827,6.701,828,6.701,829,10.574,830,6.701,831,6.701,832,6.701,833,6.195,834,6.701,835,6.701,836,3.892,837,4.772,838,6.701,839,3.195]],["title/interfaces/AccountParams.html",[334,0.731,840,5.694]],["body/interfaces/AccountParams.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,26,2.404,30,0.001,32,0.125,33,0.548,47,0.9,48,5.61,49,4.462,51,5.783,94,6.592,95,0.153,99,1.105,101,0.015,103,0.001,104,0.001,111,1.837,116,3.273,165,0.718,185,4.906,192,2.731,217,1.7,227,1.235,334,1.129,336,1.585,404,1.194,461,3.056,627,3.653,658,5.351,734,3.774,840,9.498,841,5.794,842,5.794,843,5.004,844,4.175,845,4.815,846,4.717,847,5.794,848,8.076,849,5.047,850,9.617,851,4.371,852,4.371,853,4.73,854,4.599,855,10.314,856,5.547,857,5.794,858,8.017,859,5.794,860,5.794,861,5.794,862,8.801,863,8.017,864,8.017,865,5.547,866,9.192,867,9.192,868,5.794,869,8.017,870,8.017,871,5.547,872,5.794,873,8.017,874,6.527,875,5.547]],["title/injectables/AccountRepo.html",[105,0.91,820,5.493]],["body/injectables/AccountRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.055,8,0.709,10,2.37,11,4.918,12,2.69,13,4.269,14,5.136,15,5.136,16,5.136,17,5.136,18,2.967,19,5.136,20,5.136,26,2.767,27,0.524,29,0.987,30,0.001,31,0.699,32,0.171,33,0.603,34,1.887,35,1.525,36,2.84,37,4.918,39,2.785,40,1.766,42,4.269,44,5.136,46,5.136,47,0.845,48,3.967,49,5.038,51,5.222,52,2.784,53,4.269,54,5.136,55,2.758,56,5.987,58,6.351,60,5.136,62,2.147,67,5.136,69,5.136,70,5.324,85,2.361,94,5.649,95,0.126,96,1.606,97,1.582,99,0.611,101,0.006,102,1.836,103,0,104,0,105,0.786,107,0.882,111,1.475,112,3.039,144,2.023,148,1.807,187,0.529,217,1.2,221,1.949,227,1.206,234,1.497,247,3.857,264,1.538,319,2.516,347,1.488,369,0.812,371,1.009,379,0.829,380,1.789,381,1.953,398,1.078,404,1.058,461,1.926,596,2.568,692,4.345,704,1.812,771,9.561,808,3.2,820,4.744,876,3.659,877,6.069,878,4.103,879,7.783,880,7.356,881,5.429,882,7.356,883,2.491,884,2.767,885,5.605,886,5.872,887,3.659,888,3.659,889,3.659,890,5.136,891,3.659,892,3.659,893,3.659,894,4.269,895,3.659,896,3.659,897,3.659,898,3.659,899,5.872,900,3.659,901,3.659,902,8.42,903,3.659,904,3.659,905,3.063,906,3.659,907,4.03,908,2.243,909,2.27,910,2.243,911,2.27,912,2.605,913,2.243,914,2.27,915,2.028,916,3.659,917,3.659,918,3.659,919,2.787,920,5.872,921,4.365,922,4.918,923,3.659,924,3.659,925,3.659,926,3.659,927,3.659,928,3.659,929,3.2,930,5.872,931,3.659,932,3.659,933,3.659,934,3.659,935,3.064,936,3.659,937,3.659,938,2.66,939,3.659,940,3.382,941,7.356,942,3.659,943,3.659,944,3.382,945,3.2,946,2.395,947,3.382,948,2.787,949,3.659,950,2.865,951,2.787,952,3.659,953,2.395,954,2.72,955,3.659,956,2.395,957,2.028,958,3.064,959,3.2,960,2.511,961,3.659,962,3.659,963,3.659,964,2.511]],["title/classes/AccountResponse.html",[0,0.232,499,5.493]],["body/classes/AccountResponse.html",[0,0.283,2,0.928,3,0.02,4,0.02,5,0.01,7,0.126,27,0.542,29,0.652,30,0.001,31,0.466,32,0.179,33,0.646,34,2.185,39,3.459,47,0.937,51,6.24,83,3.264,95,0.107,101,0.014,103,0.001,104,0.001,127,1.337,165,0.836,347,2.158,364,2.34,376,1.903,383,8.409,407,6.721,415,4.497,423,7.277,467,3.641,499,10.378,592,5.82,618,3.403,622,5.369,965,8.32,966,4.233,967,8.32,968,8.32,969,8.32,970,8.32,971,8.32,972,8.32]],["title/classes/AccountResponseMapper.html",[0,0.232,973,6.286]],["body/classes/AccountResponseMapper.html",[0,0.294,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.32,27,0.451,29,0.856,30,0.001,31,0.612,32,0.149,33,0.529,34,1.859,35,1.323,39,2.943,51,5.309,66,8.13,94,6.448,95,0.154,99,1.442,101,0.014,103,0.001,104,0.001,227,1.134,234,1.775,383,7.154,499,10.891,592,4.952,625,9.685,627,4.074,639,7.946,641,10.105,642,7.558,643,7.784,644,9.561,973,10.105,974,5.124,975,6.06,976,10.931,977,10.931,978,6.981,979,10.931,980,6.584,981,8.642,982,4.308,983,7.237]],["title/classes/AccountSaveDto.html",[0,0.232,64,5.324]],["body/classes/AccountSaveDto.html",[0,0.287,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,26,2.587,27,0.553,29,0.461,30,0.001,31,0.329,32,0.182,33,0.678,34,1.676,39,2.652,47,0.92,48,4.641,51,4.784,64,8.917,82,7.713,83,3.819,87,4.943,95,0.138,99,0.981,101,0.01,103,0,104,0,127,0.736,165,0.66,216,2.35,347,1.705,351,4.943,364,2.423,373,4.518,374,1.877,383,6.447,384,7.957,385,6.648,405,2.246,407,4.75,408,5.435,409,5.435,410,5.435,411,4.48,412,4.924,413,5.435,414,5.435,415,3.178,416,3.743,417,4.274,418,4.604,419,5.435,420,5.435,421,4.604,422,4.924,423,5.143,424,5.435,468,6.807,469,2.581,470,4.5,471,5.434,472,3.968,474,4.924,475,2.874,476,4.924,591,4.281,592,4.462,593,8.249,595,1.969,600,5.435,602,7.058,604,9.945,608,5.435,610,9.106,614,5.143,618,2.404,619,3.259,620,3.794,621,4.48,622,3.794,623,4.48,984,13.495,985,5.88,986,8.427,987,5.88,988,5.88,989,5.88,990,5.88,991,5.88,992,5.88,993,5.88,994,5.88,995,5.88,996,5.88,997,5.88,998,5.88,999,7.249,1000,4.38,1001,5.051,1002,5.88,1003,5.88,1004,5.88]],["title/classes/AccountSearchListResponse.html",[0,0.232,536,5.947]],["body/classes/AccountSearchListResponse.html",[0,0.268,2,0.877,3,0.019,4,0.019,5,0.009,7,0.119,27,0.52,29,0.616,30,0.001,31,0.441,32,0.184,33,0.61,55,3.024,56,6.212,59,3.205,70,6.412,95,0.147,101,0.013,103,0.001,104,0.001,127,0.985,145,1.992,163,3.885,165,0.806,364,2.215,376,1.799,404,1.854,456,8.617,467,2.699,469,3.453,499,10.656,536,8.999,596,3.71,1005,7.327,1006,5.495,1007,8.088,1008,6.998,1009,5.861,1010,7.271,1011,3.974,1012,7.271,1013,5.252,1014,3.751,1015,4.399,1016,2.762,1017,5.495,1018,6.639,1019,5.976,1020,5.148,1021,4.184,1022,5.495,1023,5.495,1024,7.866,1025,4.942,1026,4.36]],["title/classes/AccountSearchQueryParams.html",[0,0.232,530,5.947]],["body/classes/AccountSearchQueryParams.html",[0,0.351,2,0.879,3,0.019,4,0.019,5,0.01,7,0.119,27,0.502,30,0.001,32,0.182,33,0.589,47,0.735,55,2.472,56,5.506,70,5.101,94,3.828,95,0.156,101,0.013,103,0.001,104,0.001,144,3.63,165,0.807,247,3.088,319,3.079,364,2.217,368,4.769,369,2.701,370,4.01,371,3.356,374,2.515,376,1.803,379,2.335,404,1.856,456,9.612,467,3.011,469,3.46,470,4.309,479,5.859,530,9.011,533,9.011,596,3.143,905,3.282,907,7.071,1005,8.994,1014,3.758,1020,5.158,1027,7.881,1028,8.824,1029,12.63,1030,7.881,1031,3.228,1032,7.881,1033,7.881,1034,7.285,1035,5.506,1036,6.6,1037,6.004,1038,7.285,1039,7.881,1040,7.285,1041,4.408,1042,6.6,1043,7.881,1044,3.781,1045,7.881]],["title/injectables/AccountServiceDb.html",[105,0.91,821,5.947]],["body/injectables/AccountServiceDb.html",[0,0.112,1,10.885,3,0.008,4,0.008,5,0.004,7,0.05,8,0.652,10,2.179,11,4.522,12,2.473,13,3.925,14,4.723,15,4.723,16,4.723,17,4.723,18,2.729,19,4.723,20,4.723,21,4.723,22,4.992,23,4.992,24,4.992,25,4.723,26,2.858,27,0.513,29,0.975,30,0.001,31,0.697,32,0.169,33,0.602,34,1.348,35,1.492,36,2.89,37,4.522,39,2.133,40,2.607,42,3.925,44,4.723,46,4.723,47,0.909,48,4.118,49,3.898,51,5.021,54,4.723,55,2.371,56,4.96,58,2.129,60,4.723,62,1.936,63,4.992,64,6.204,66,5.639,67,4.723,69,4.723,70,3.923,81,4.992,82,6.844,83,2.097,85,4.423,86,4.992,87,4.386,89,4.992,91,4.992,92,6.337,94,5.477,95,0.141,96,0.902,97,1.427,98,1.956,99,0.551,100,1.105,101,0.006,103,0,104,0,105,0.722,107,0.795,111,1.986,112,3.04,127,0.413,144,0.907,145,1.736,167,1.987,187,0.477,206,1.679,215,1.053,216,0.999,217,1.604,221,3.033,227,1.291,234,1.608,247,2.116,305,1.538,319,0.986,351,1.656,383,2.159,384,2.665,385,2.227,404,0.973,406,1.073,510,2.398,511,1.667,558,1.583,596,3.676,624,2.763,635,6.337,643,3.845,644,2.886,645,3.05,646,3.05,647,4.723,648,6.635,650,3.05,657,7.324,763,8.296,764,7.324,786,4.992,799,4.992,820,7.581,821,4.723,826,2.886,833,3.05,894,3.925,907,2.264,983,2.763,1046,3.299,1047,5.4,1048,3.05,1049,3.299,1050,3.299,1051,3.299,1052,5.4,1053,3.299,1054,3.299,1055,3.299,1056,3.299,1057,3.299,1058,3.299,1059,3.299,1060,3.299,1061,3.299,1062,3.299,1063,3.299,1064,3.299,1065,3.299,1066,3.299,1067,3.299,1068,2.763,1069,2.886,1070,3.299,1071,10.7,1072,5.4,1073,9.907,1074,8.74,1075,3.299,1076,3.299,1077,4.992,1078,3.299,1079,3.299,1080,3.299,1081,3.299,1082,5.4,1083,2.665,1084,5.4,1085,5.4,1086,5.4,1087,5.4,1088,5.4,1089,5.4,1090,5.4,1091,5.4,1092,5.4,1093,5.4,1094,8.74,1095,7.923,1096,6.855,1097,3.299,1098,3.299,1099,3.299,1100,3.299,1101,5.4,1102,3.299,1103,3.299,1104,3.299,1105,3.299,1106,3.299,1107,2.305,1108,3.299,1109,3.299,1110,3.299]],["title/injectables/AccountValidationService.html",[105,0.91,819,5.947]],["body/injectables/AccountValidationService.html",[0,0.225,3,0.016,4,0.016,5,0.008,7,0.1,8,1.106,26,2.924,27,0.467,29,0.888,30,0.001,31,0.635,32,0.154,33,0.548,35,1.271,36,2.639,39,3.463,47,0.931,48,5.34,49,2.602,59,3.271,85,8.143,94,4.447,95,0.153,99,1.104,101,0.011,103,0.001,104,0.001,105,1.225,107,1.594,111,1.326,112,2.878,127,0.828,167,2.434,187,0.956,215,2.111,217,1.475,221,2.43,227,1.089,284,3.574,380,1.405,403,4.328,441,7.564,450,2.716,624,5.538,639,4.807,642,5.784,691,3.518,819,8.007,820,9.943,826,5.784,853,5.419,905,4.719,1048,6.113,1077,6.113,1111,6.613,1112,9.155,1113,9.155,1114,9.155,1115,6.613,1116,9.155,1117,6.613,1118,9.155,1119,6.613,1120,9.155,1121,6.613,1122,6.613,1123,6.613,1124,6.113,1125,3.921,1126,5.179,1127,4.21,1128,5.538,1129,3.804,1130,6.113,1131,6.113,1132,6.613,1133,6.613,1134,6.613,1135,6.613,1136,6.113,1137,9.155,1138,9.155,1139,6.613,1140,6.613,1141,4.055,1142,3.063,1143,6.613,1144,6.613,1145,6.613,1146,6.613,1147,9.155,1148,6.613,1149,9.155,1150,6.613]],["title/interfaces/AdminIdAndToken.html",[334,0.731,1151,5.493]],["body/interfaces/AdminIdAndToken.html",[0,0.195,3,0.008,4,0.008,5,0.004,7,0.054,30,0.001,31,0.464,32,0.123,34,1.809,36,2.801,39,3.429,47,1.005,51,4.02,55,1.553,72,2.598,83,1.754,87,3.619,95,0.106,101,0.014,103,0,104,0,105,0.767,111,2.394,112,2.879,116,3.901,127,0.445,148,1.093,165,0.449,187,0.514,204,1.946,216,1.06,217,1.384,221,2.248,227,1.368,234,1.475,305,2.587,334,0.775,336,0.85,347,1.964,351,5.337,359,1.238,369,0.788,404,0.64,461,1.65,535,3.866,543,4.211,564,2.102,692,1.327,701,1.256,720,1.936,728,2.758,731,4.455,839,1.694,853,1.833,874,4.084,953,4.72,1016,2.906,1035,2.482,1151,8.59,1152,2.869,1153,2.975,1154,5.038,1155,2.063,1156,6.306,1157,2.325,1158,2.782,1159,2.706,1160,4.49,1161,3.936,1162,4.49,1163,4.49,1164,4.49,1165,4.632,1166,1.704,1167,3.152,1168,2.975,1169,2.975,1170,2.975,1171,2.975,1172,2.975,1173,2.975,1174,2.582,1175,2.975,1176,2.975,1177,2.975,1178,2.292,1179,7.606,1180,1.529,1181,2.869,1182,2.397,1183,2.482,1184,1.969,1185,2.53,1186,2.975,1187,5.377,1188,5.314,1189,5.314,1190,5.621,1191,6.284,1192,7.914,1193,6.555,1194,6.039,1195,2.706,1196,2.975,1197,2.975,1198,2.482,1199,2.975,1200,2.975,1201,2.975,1202,2.782,1203,2.975,1204,5.647,1205,2.869,1206,2.975,1207,2.975,1208,2.975,1209,2.869,1210,2.975,1211,2.975,1212,2.975,1213,8.558,1214,2.975,1215,2.975,1216,1.392,1217,2.975,1218,2.975,1219,2.975,1220,2.975,1221,2.975,1222,2.975,1223,2.975,1224,2.975,1225,8.134,1226,8.134,1227,2.975,1228,2.975,1229,2.975,1230,2.975,1231,2.975,1232,2.975,1233,2.438,1234,2.975,1235,2.975,1236,2.975,1237,2.975,1238,2.975,1239,2.975,1240,2.975,1241,2.975,1242,2.975,1243,2.975,1244,2.975,1245,2.975,1246,2.975,1247,2.975,1248,4.369,1249,4.369,1250,2.975,1251,2.975,1252,2.975,1253,2.975,1254,2.975,1255,2.397,1256,2.975,1257,2.975,1258,2.975,1259,4.802,1260,2.975,1261,4.802,1262,4.802,1263,2.975,1264,2.975,1265,2.706,1266,6.039,1267,4.791,1268,4.421,1269,2.975,1270,3.4,1271,5.269,1272,4.369,1273,5.647,1274,6.039,1275,6.039,1276,6.039,1277,2.782,1278,2.975,1279,2.975,1280,2.975,1281,7.606,1282,6.039,1283,6.039,1284,6.039,1285,2.975,1286,4.802,1287,4.802,1288,2.975,1289,2.975,1290,2.975,1291,2.975,1292,2.975,1293,4.802,1294,4.49]],["title/modules/AntivirusModule.html",[425,1.812,1295,5.694]],["body/modules/AntivirusModule.html",[0,0.292,3,0.02,4,0.02,5,0.01,8,1.035,27,0.353,29,0.671,30,0.001,31,0.48,32,0.116,33,0.414,35,1.037,95,0.161,101,0.014,103,0.001,104,0.001,187,1.239,217,1.115,227,1.127,234,1.391,336,2.051,371,2.363,425,3.182,427,3.095,432,3.153,433,3.238,627,3.336,701,3.029,836,6.315,837,6.102,1295,10.001,1296,8.568,1297,6.228,1298,7.462,1299,10.146,1300,8.568,1301,7.934,1302,10.05,1303,7.494,1304,10.445,1305,8.568,1306,8.568,1307,6.102,1308,5.193,1309,8.568,1310,6.921,1311,8.568,1312,5.317,1313,7.494,1314,5.529,1315,7.494,1316,11.942,1317,10.872,1318,7.494,1319,8.568,1320,8.568,1321,8.568,1322,6.709,1323,5.986,1324,8.568,1325,8.568,1326,8.568]],["title/interfaces/AntivirusModuleOptions.html",[334,0.731,1299,5.493]],["body/interfaces/AntivirusModuleOptions.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.182,47,1.021,55,2.624,101,0.02,103,0.001,104,0.001,165,0.875,204,3.036,334,1.309,336,2.142,347,2.656,1299,9.026,1308,7.959,1310,10.608,1312,8.149,1314,8.474,1323,8.915,1327,7.827,1328,10.686,1329,7.229,1330,5.696,1331,5.857,1332,5.857]],["title/injectables/AntivirusService.html",[105,0.91,1304,5.947]],["body/injectables/AntivirusService.html",[0,0.209,3,0.015,4,0.015,5,0.007,7,0.093,8,1.05,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,35,1.221,36,1.864,47,0.939,95,0.159,101,0.01,103,0,104,0,105,1.163,107,1.48,111,2.41,112,2.649,116,3.744,127,1.089,145,3.13,150,2.126,167,3.198,187,0.888,204,2.083,216,1.865,217,1.564,221,2.012,227,0.901,234,1.638,305,2.476,336,1.469,351,5.063,369,2.239,371,1.693,576,3.465,701,3.567,784,4.697,839,2.928,1302,10.141,1303,5.37,1304,7.601,1329,8.862,1330,6.983,1331,4.018,1332,4.018,1333,6.14,1334,8.691,1335,7.278,1336,7.601,1337,4.959,1338,8.936,1339,10.088,1340,6.14,1341,8.691,1342,6.893,1343,6.14,1344,5.688,1345,2.436,1346,8.691,1347,6.14,1348,8.691,1349,6.14,1350,7.812,1351,4.289,1352,3.962,1353,4.195,1354,4.372,1355,4.808,1356,4.959,1357,5.676,1358,3.908,1359,4.678,1360,4.808,1361,6.14,1362,10.088,1363,6.14,1364,6.14,1365,10.088,1366,6.14,1367,6.14,1368,6.14,1369,4.736,1370,5.774,1371,7.601,1372,6.14,1373,6.14,1374,8.691,1375,6.14,1376,8.691,1377,6.14,1378,6.14,1379,6.14,1380,5.37,1381,6.14,1382,6.14,1383,5.37,1384,5.37,1385,6.14,1386,6.14,1387,6.14,1388,6.14,1389,6.14,1390,6.14,1391,6.14]],["title/interfaces/AntivirusServiceOptions.html",[334,0.731,1329,5.493]],["body/interfaces/AntivirusServiceOptions.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.175,47,1.019,55,1.989,101,0.021,103,0.001,104,0.001,165,0.893,204,3.134,334,1.328,336,2.21,347,2.681,1299,7.461,1308,8.033,1310,10.706,1312,8.224,1314,8.552,1323,6.453,1327,8.078,1328,7.735,1329,9.204,1330,5.879,1331,6.045,1332,6.045]],["title/classes/ApiValidationError.html",[0,0.232,1392,4.589]],["body/classes/ApiValidationError.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.542,29,0.605,30,0.001,31,0.433,32,0.185,33,0.55,35,0.936,47,0.811,55,1.665,95,0.131,101,0.013,103,0.001,104,0.001,127,0.968,165,0.797,187,1.118,204,4.259,216,2.517,364,2.286,404,1.833,406,2.514,503,7.407,564,2.834,596,3.931,722,3.446,798,4.857,1013,5.533,1016,2.714,1142,5.266,1180,3.327,1216,4.455,1392,6.865,1393,10.172,1394,7.73,1395,8.269,1396,6.882,1397,4.045,1398,7.237,1399,7.73,1400,7.73,1401,9.944,1402,4.988,1403,4.285,1404,4.988,1405,4.988,1406,4.988,1407,4.988,1408,4.988,1409,4.633,1410,4.363,1411,6.053,1412,6.473,1413,7.146,1414,5.689,1415,6.237,1416,4.857,1417,6.053]],["title/classes/ApiValidationErrorResponse.html",[0,0.232,1418,5.947]],["body/classes/ApiValidationErrorResponse.html",[0,0.222,2,0.726,3,0.015,4,0.015,5,0.008,7,0.098,8,1.093,27,0.528,29,0.709,30,0.001,31,0.507,32,0.184,33,0.544,35,0.788,47,0.914,55,1.401,95,0.145,101,0.011,103,0.001,104,0.001,111,2.087,127,0.815,144,2.49,148,2.786,165,0.709,187,0.941,204,4.014,216,2.437,217,1.355,309,3.742,319,2.705,379,2.051,394,3.707,404,1.631,503,7.703,558,3.121,565,4.512,577,3.672,596,3.608,1016,3.178,1142,5.479,1180,2.8,1216,4.409,1392,8.266,1396,5.93,1397,3.768,1401,9.105,1409,7.679,1414,5.063,1415,7.703,1418,7.917,1419,11.254,1420,6.506,1421,7.567,1422,6.729,1423,7.365,1424,9.052,1425,9.052,1426,9.052,1427,9.105,1428,6.506,1429,6.506,1430,5.311,1431,5.157,1432,6.506,1433,3.989,1434,6.506,1435,5.691,1436,6.506,1437,6.015,1438,4.198,1439,6.015,1440,9.052,1441,11.254,1442,6.506,1443,6.506,1444,6.506,1445,6.506,1446,6.506,1447,6.506,1448,9.052,1449,6.506,1450,6.506,1451,6.506,1452,6.506,1453,6.506,1454,6.506,1455,6.506,1456,6.506,1457,6.506]],["title/interfaces/AppStartInfo.html",[334,0.731,1458,5.947]],["body/interfaces/AppStartInfo.html",[0,0.287,3,0.025,4,0.02,5,0.01,7,0.127,30,0.001,32,0.17,33,0.638,47,0.977,55,2.552,95,0.108,101,0.014,103,0.001,104,0.001,145,3,163,3.31,165,0.842,214,2.656,215,2.689,216,1.558,217,1.096,227,0.874,334,0.905,336,2.016,549,5.782,1021,4.481,1216,3.301,1323,8.721,1458,10.363,1459,7.788,1460,7.369,1461,11.28,1462,10.918,1463,10.918,1464,4.954,1465,5.551,1466,9.408,1467,2.689,1468,7.056,1469,4.172,1470,7.788,1471,9.943,1472,7.788,1473,9.943,1474,7.788,1475,9.943,1476,7.788,1477,5.436,1478,7.788]],["title/classes/AppStartLoggable.html",[0,0.232,1468,5.694]],["body/classes/AppStartLoggable.html",[0,0.292,2,0.955,3,0.028,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.671,30,0.001,31,0.48,32,0.116,33,0.414,35,1.037,47,0.852,55,1.846,95,0.11,101,0.014,103,0.001,104,0.001,127,1.073,145,3.024,163,3.346,214,3.428,215,2.735,216,1.584,217,1.115,227,0.888,334,0.921,549,5.881,1021,6.352,1216,3.357,1323,5.986,1458,10.986,1459,11.04,1460,7.494,1461,9.509,1462,7.494,1463,7.494,1464,5.5,1465,6.163,1466,9.509,1467,2.735,1468,9.105,1469,6.22,1470,7.921,1471,10.05,1472,7.921,1473,10.05,1474,7.921,1475,10.05,1476,7.921,1477,5.529,1478,7.921,1479,8.568,1480,8.568,1481,8.568]],["title/interfaces/AppendedAttachment.html",[334,0.731,1482,5.055]],["body/interfaces/AppendedAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.503,47,1.013,77,5.722,101,0.015,103,0.001,104,0.001,165,0.878,334,1.461,336,2.151,404,2.369,1482,9.075,1483,6.848,1484,9.5,1485,10.019,1486,6.848,1487,5.027,1488,8.329,1489,6.534,1490,6.848,1491,6.534,1492,9.075,1493,6.848,1494,8.329,1495,8.537,1496,8.537,1497,8.329,1498,6.791,1499,6.682,1500,6.682,1501,6.848,1502,6.848]],["title/modules/AuthenticationApiModule.html",[425,1.812,1503,5.324]],["body/modules/AuthenticationApiModule.html",[0,0.317,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.345,425,3.303,427,3.36,428,3.614,429,3.721,430,3.705,431,3.69,432,4.561,433,4.325,442,4.579,443,3.644,444,3.556,446,5.843,447,4.743,449,4.54,1503,10.833,1504,9.3,1505,9.3,1506,9.3,1507,8.983,1508,11.323,1509,9.3,1510,10.842,1511,9.3,1512,9.3,1513,8.597]],["title/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.232,1514,5.493]],["body/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.288,2,0.943,3,0.02,4,0.02,5,0.01,7,0.128,27,0.544,29,0.663,30,0.001,31,0.474,32,0.179,33,0.409,47,0.969,95,0.109,101,0.014,103,0.001,104,0.001,127,1.06,165,0.845,405,2.874,595,2.833,1142,6.402,1514,10.431,1515,13.418,1516,10.973,1517,8.46,1518,8.454,1519,9.59,1520,10.384,1521,10.384,1522,10.785,1523,8.46,1524,8.46,1525,9.97,1526,8.46,1527,8.46,1528,7.821,1529,7.085,1530,6.289,1531,7.821,1532,8.46,1533,8.46,1534,8.46,1535,8.46,1536,8.46,1537,8.46,1538,8.46,1539,7.4,1540,8.46]],["title/modules/AuthenticationModule.html",[425,1.812,1507,4.517]],["body/modules/AuthenticationModule.html",[0,0.189,3,0.013,4,0.013,5,0.007,30,0.001,32,0.076,95,0.176,101,0.009,103,0,104,0,187,0.803,217,1.364,234,0.902,305,1.583,425,2.542,427,2.007,428,2.159,429,2.223,430,2.213,431,2.204,432,3.51,433,3.605,437,8.276,438,5.445,441,6.966,442,3.237,443,2.177,444,2.125,449,3.209,450,2.282,783,3.367,802,4.038,803,3.447,817,9.101,823,8.449,1422,4.13,1467,1.773,1507,9.472,1541,5.555,1542,5.555,1543,5.555,1544,5.555,1545,9.388,1546,9.101,1547,8.64,1548,8.12,1549,9.699,1550,10.166,1551,9.388,1552,9.733,1553,10.166,1554,8.12,1555,10.166,1556,10.166,1557,5.555,1558,5.555,1559,9.539,1560,4.859,1561,8.089,1562,4.13,1563,4.859,1564,4.233,1565,5.555,1566,4.488,1567,3.813,1568,8.72,1569,11.136,1570,4.13,1571,4.653,1572,4.859,1573,4.653,1574,5.136,1575,5.136,1576,4.859,1577,5.555,1578,5.555,1579,5.555,1580,5.555,1581,3.956,1582,4.35,1583,3.636,1584,5.136,1585,5.555,1586,4.859,1587,5.136,1588,3.881,1589,5.136,1590,5.555,1591,5.555,1592,5.555,1593,4.653,1594,5.555,1595,5.555,1596,5.555,1597,5.555,1598,5.555,1599,5.555,1600,5.555,1601,5.555,1602,3.881,1603,5.555,1604,5.555,1605,3.294,1606,5.555,1607,9.539,1608,5.555,1609,4.233,1610,5.555,1611,5.136,1612,5.555,1613,3.447,1614,5.555,1615,4.653,1616,5.555,1617,5.555,1618,3.227,1619,5.136,1620,5.555,1621,5.555]],["title/interfaces/AuthenticationResponse.html",[334,0.731,1622,5.947]],["body/interfaces/AuthenticationResponse.html",[0,0.178,3,0.012,4,0.012,5,0.006,7,0.079,30,0.001,32,0.071,36,1.119,47,0.978,51,3.752,55,1.124,87,3.876,94,3.752,95,0.131,99,0.871,101,0.009,103,0,104,0,111,2.473,112,1.15,116,3.54,163,2.831,165,0.605,167,1.92,185,2.028,187,0.755,204,1.77,216,1.701,217,1.797,221,1.208,227,1.336,234,1.651,247,3.027,305,2.201,334,0.561,336,1.249,347,1.055,359,1.819,363,4.917,483,2.488,543,5.783,576,7.471,643,3.715,740,6.756,905,2.172,946,3.415,1016,3.229,1277,6.049,1345,2.07,1414,2.918,1605,6.436,1622,8.893,1623,4.823,1624,4.823,1625,7.551,1626,9.399,1627,6.756,1628,4.823,1629,4.823,1630,3.793,1631,4.563,1632,4.823,1633,4.369,1634,4.823,1635,4.823,1636,4.563,1637,6.756,1638,4.823,1639,3.321,1640,4.823,1641,4.823,1642,3.715,1643,4.563,1644,4.369,1645,4.214,1646,2.918,1647,6.686,1648,8.503,1649,4.823,1650,4.823,1651,7.141,1652,7.141,1653,4.823,1654,10.507,1655,4.823,1656,4.823,1657,10.034,1658,10.034,1659,11.6,1660,4.823,1661,4.823,1662,10.034,1663,4.823,1664,9.399,1665,4.823,1666,4.823,1667,7.703,1668,4.823,1669,4.823,1670,4.823,1671,4.823,1672,4.823,1673,4.823,1674,4.823,1675,4.823,1676,7.141,1677,4.823,1678,4.563,1679,4.823,1680,3.975,1681,7.141,1682,4.823,1683,4.823,1684,4.823,1685,7.141,1686,4.823,1687,7.141,1688,4.823,1689,4.823,1690,7.141,1691,4.823,1692,4.823,1693,4.823,1694,7.141,1695,3.321,1696,4.823,1697,4.823,1698,4.823,1699,4.823,1700,4.823,1701,4.823,1702,4.823,1703,4.823,1704,4.823,1705,4.823]],["title/injectables/AuthenticationService.html",[105,0.91,1549,5.055]],["body/injectables/AuthenticationService.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.925,21,6.698,27,0.496,29,0.943,30,0.001,31,0.674,32,0.167,33,0.582,34,0.877,35,1.418,36,2.581,47,0.98,48,5.333,51,3.72,59,1.606,66,6.97,73,4.767,74,4.166,77,3.283,83,1.578,87,2.588,94,5.497,95,0.168,101,0.009,103,0,104,0,105,1.024,107,1.243,111,2.027,112,2.833,127,0.959,145,1.306,148,2.357,167,3.362,187,0.746,216,1.869,217,1.473,221,2.5,227,1.048,231,2.859,234,1.754,305,2.182,369,1.145,403,3.375,461,1.18,504,5.012,647,4.511,789,7.669,801,2.996,804,4.038,818,8.928,1136,4.767,1423,3.375,1549,5.693,1551,9.465,1560,4.511,1564,3.929,1570,3.834,1575,4.767,1576,4.511,1605,3.058,1625,3.426,1630,3.749,1695,3.283,1706,5.157,1707,7.658,1708,7.658,1709,7.08,1710,7.658,1711,7.658,1712,7.658,1713,5.157,1714,11.318,1715,5.157,1716,7.658,1717,5.157,1718,7.658,1719,7.917,1720,5.157,1721,7.08,1722,5.157,1723,7.658,1724,5.157,1725,7.658,1726,5.157,1727,7.658,1728,5.157,1729,5.157,1730,7.658,1731,5.157,1732,3.834,1733,4.166,1734,3.834,1735,4.511,1736,4.511,1737,7.658,1738,3.749,1739,5.567,1740,4.511,1741,4.319,1742,4.319,1743,7.153,1744,3.603,1745,5.157,1746,5.157,1747,5.157,1748,4.767,1749,6.791,1750,3.397,1751,5.157,1752,5.157,1753,5.157,1754,5.157,1755,7.08,1756,5.157,1757,7.658,1758,7.658,1759,5.157,1760,7.658,1761,4.767,1762,5.157,1763,3.749,1764,4.511,1765,7.08,1766,5.157,1767,5.157,1768,5.157,1769,5.157,1770,2.996,1771,5.157,1772,4.038,1773,5.157,1774,5.157,1775,5.157]],["title/classes/AuthenticationValues.html",[0,0.232,1776,6.286]],["body/classes/AuthenticationValues.html",[0,0.326,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,27,0.518,29,0.751,30,0.001,31,0.537,32,0.171,33,0.464,47,0.932,101,0.016,103,0.001,104,0.001,108,7.592,127,1.201,165,0.913,405,3.107,595,3.21,1776,12.382,1777,13.07,1778,9.588,1779,12.563,1780,12.563,1781,11.659,1782,9.588,1783,9.588,1784,9.588,1785,9.588,1786,9.588]],["title/interfaces/AuthorizableObject.html",[334,0.731,1787,3.949]],["body/interfaces/AuthorizableObject.html",[0,0.33,3,0.023,4,0.023,5,0.012,9,4.572,26,2.677,30,0.001,34,1.998,95,0.125,101,0.02,103,0.001,104,0.001,116,3.658,208,3.625,214,3.059,217,1.263,227,1.218,334,1.042,336,2.322,405,2.586,595,3.932,661,4.078,692,4.718,1787,7.335,1788,8.97,1789,8.487,1790,4.097,1791,9.835,1792,8.97,1793,6.261,1794,10.856]],["title/interfaces/AuthorizationContext.html",[334,0.731,1795,3.675]],["body/interfaces/AuthorizationContext.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.163,95,0.154,99,1.676,101,0.017,103,0.001,104,0.001,165,0.939,334,1.079,336,2.403,843,5.858,1795,6.479,1796,8.783,1797,9.283,1798,7.917,1799,8.045,1800,10.042]],["title/classes/AuthorizationContextBuilder.html",[0,0.232,1801,4.075]],["body/classes/AuthorizationContextBuilder.html",[0,0.279,2,0.915,3,0.019,4,0.019,5,0.01,7,0.124,8,1.277,27,0.482,29,0.916,30,0.001,31,0.655,32,0.168,33,0.566,35,1.416,95,0.136,99,1.369,101,0.014,103,0.001,104,0.001,111,2.346,199,4.949,217,1.523,227,1.213,627,4.185,667,5.011,843,6.068,1795,7.201,1798,7.618,1799,7.49,1801,6.337,1802,12.358,1803,8.202,1804,6.408,1805,7.024,1806,10.572,1807,8.202,1808,10.572,1809,8.202,1810,10.572,1811,8.202,1812,10.572,1813,5.841,1814,5.629]],["title/classes/AuthorizationError.html",[0,0.232,1815,6.286]],["body/classes/AuthorizationError.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.542,29,0.605,30,0.001,31,0.433,32,0.185,33,0.55,35,0.936,47,0.919,55,1.665,59,3.168,95,0.131,101,0.013,103,0.001,104,0.001,127,0.968,165,0.797,187,1.118,204,4.259,216,2.517,364,2.286,404,1.833,406,2.514,564,2.834,596,3.931,1013,5.533,1016,2.714,1142,5.266,1180,5.199,1216,4.918,1395,8.269,1396,7.484,1397,4.045,1398,7.237,1402,4.988,1403,4.285,1404,4.988,1405,4.988,1406,4.988,1407,4.988,1408,4.988,1409,4.633,1410,4.363,1411,6.053,1416,4.857,1798,4.363,1815,9.403,1816,7.73,1817,7.965,1818,7.73,1819,7.73,1820,4.797,1821,6.761,1822,7.146]],["title/injectables/AuthorizationHelper.html",[105,0.91,1823,4.219]],["body/injectables/AuthorizationHelper.html",[0,0.207,3,0.014,4,0.014,5,0.007,7,0.092,8,1.042,27,0.475,29,0.965,30,0.001,31,0.646,32,0.167,33,0.558,35,1.396,47,0.926,95,0.129,96,1.662,101,0.01,103,0,104,0,105,1.154,107,1.464,111,2.011,116,4.133,187,0.879,217,1.639,227,1.278,247,2.38,347,2.591,369,1.348,371,2.379,380,2.618,398,1.79,461,3.161,496,4.869,692,4.704,738,3.158,806,3.512,1345,2.41,1750,5.465,1799,7.764,1823,5.353,1824,6.075,1825,8.626,1826,10.478,1827,8.626,1828,7.974,1829,8.626,1830,8.626,1831,10.03,1832,12.591,1833,6.075,1834,7.974,1835,6.075,1836,8.626,1837,6.075,1838,7.974,1839,6.075,1840,8.626,1841,10.918,1842,6.075,1843,4.089,1844,3.641,1845,5.616,1846,7.545,1847,7.974,1848,5.616,1849,5.033,1850,5.313,1851,8.626,1852,2.565,1853,6.075,1854,4.036,1855,3.817,1856,4.907,1857,4.628,1858,3.182,1859,5.616,1860,5.616,1861,5.228,1862,6.075,1863,6.075,1864,6.075,1865,5.252,1866,6.075,1867,6.075]],["title/interfaces/AuthorizationLoaderService.html",[334,0.731,1868,5.493]],["body/interfaces/AuthorizationLoaderService.html",[3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,12,5.332,26,2.838,27,0.394,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,34,1.627,35,1.158,36,2.691,40,6.058,95,0.161,99,1.596,101,0.019,103,0.001,104,0.001,334,1.251,336,2.289,359,3.335,404,1.724,1787,5.556,1796,10.182,1868,10.138,1869,9.116,1870,8.366,1871,9.565,1872,5.556,1873,5.935,1874,6.811,1875,7.287,1876,8.01]],["title/interfaces/AuthorizationLoaderServiceGeneric.html",[334,0.731,1876,5.694]],["body/interfaces/AuthorizationLoaderServiceGeneric.html",[3,0.023,4,0.023,5,0.011,7,0.144,8,1.402,12,5.316,26,2.834,27,0.393,29,0.746,30,0.001,31,0.533,32,0.129,33,0.46,34,1.619,35,1.152,36,2.685,40,6.045,95,0.161,99,1.589,101,0.019,103,0.001,104,0.001,334,1.247,336,2.278,359,3.319,404,2.092,1787,5.529,1796,10.153,1868,10.117,1869,9.09,1870,8.326,1872,5.529,1873,5.907,1874,6.779,1875,7.253,1876,9.721,1877,9.52]],["title/modules/AuthorizationModule.html",[425,1.812,1878,3.675]],["body/modules/AuthorizationModule.html",[0,0.217,3,0.015,4,0.015,5,0.008,30,0.001,95,0.16,101,0.011,103,0.001,104,0.001,187,0.923,425,2.745,427,2.306,428,2.48,429,2.554,430,2.543,431,2.532,432,3.791,433,3.894,438,5.703,441,7.296,442,3.574,443,2.501,444,2.441,449,3.544,450,2.622,1467,2.037,1823,7.553,1878,7.82,1879,6.383,1880,6.383,1881,6.383,1882,6.383,1883,9.833,1884,7.235,1885,11.211,1886,10.194,1887,10.194,1888,9.833,1889,9.049,1890,9.833,1891,10.194,1892,10.194,1893,9.833,1894,10.194,1895,10.194,1896,10.194,1897,9.833,1898,10.194,1899,10.194,1900,10.194,1901,6.383,1902,5.583,1903,6.383,1904,2.67,1905,3.868,1906,4.998]],["title/classes/AuthorizationParams.html",[0,0.232,1907,5.324]],["body/classes/AuthorizationParams.html",[0,0.369,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,27,0.534,30,0.001,32,0.176,33,0.658,47,0.97,95,0.139,101,0.014,102,5.441,103,0.001,104,0.001,165,0.849,204,4.044,364,2.358,374,2.723,460,6.855,470,5.416,471,5.248,602,9.08,614,7.462,1001,7.144,1044,4.093,1142,5.52,1907,8.491,1908,8.532,1909,9.333,1910,11.018,1911,7.887,1912,8.532,1913,11.018,1914,7.887,1915,8.532,1916,8.532,1917,8.532,1918,8.532,1919,7.887,1920,5.431,1921,7.887,1922,7.887]],["title/modules/AuthorizationReferenceModule.html",[425,1.812,1923,5.055]],["body/modules/AuthorizationReferenceModule.html",[0,0.217,3,0.015,4,0.015,5,0.008,30,0.001,72,4.037,95,0.16,101,0.011,103,0.001,104,0.001,163,3.43,187,0.92,379,1.442,425,3.327,427,2.298,428,2.473,429,2.546,430,2.535,431,2.524,432,3.785,433,3.887,438,5.697,441,7.288,442,3.566,443,2.493,444,2.433,449,3.536,450,2.614,460,5.126,574,4.893,704,4.413,1467,2.031,1554,8.496,1820,5.53,1823,7.546,1852,2.686,1878,6.886,1904,2.662,1923,10.624,1924,6.363,1925,6.363,1926,6.363,1927,6.363,1928,10.477,1929,9.522,1930,7.37,1931,7.959,1932,9.823,1933,9.04,1934,9.265,1935,8.496,1936,8.346,1937,6.363,1938,6.363,1939,6.226,1940,8.912,1941,5.673,1942,6.116,1943,8.912,1944,6.116,1945,6.116,1946,5.921,1947,8.727,1948,5.341,1949,7.795,1950,6.346,1951,7.199,1952,8.239,1953,7.786,1954,6.625,1955,5.328,1956,6.79,1957,4.848,1958,6.363,1959,3.467,1960,6.363,1961,4.445,1962,6.363]],["title/injectables/AuthorizationReferenceService.html",[105,0.91,1928,5.324]],["body/injectables/AuthorizationReferenceService.html",[0,0.238,3,0.017,4,0.017,5,0.008,7,0.105,8,1.148,26,2.992,27,0.445,29,0.846,30,0.001,31,0.605,32,0.158,33,0.522,35,1.15,36,2.486,39,3.122,95,0.161,99,1.165,101,0.012,103,0.001,104,0.001,105,1.271,107,1.683,111,1.399,112,2.758,116,3.897,127,0.874,187,1.009,199,4.993,204,2.368,215,2.228,216,1.757,217,1.236,221,2.199,227,0.724,234,1.133,284,3.772,305,1.988,359,3.312,379,1.582,425,2.532,461,1.597,574,4.171,722,4.236,769,5.633,885,6.583,1795,6.92,1820,5.895,1861,5.758,1869,7.439,1884,6.92,1928,7.439,1932,9.365,1963,11.594,1964,6.452,1965,7.674,1966,8.31,1967,9.5,1968,10.801,1969,10.801,1970,6.98,1971,6.98,1972,6.98,1973,9.117,1974,6.98,1975,6.98,1976,6.98,1977,6.452,1978,5.466,1979,6.98,1980,6.98,1981,6.105,1982,4.183,1983,6.98,1984,5.466]],["title/injectables/AuthorizationService.html",[105,0.91,1884,3.675]],["body/injectables/AuthorizationService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.081,8,0.954,26,2.187,27,0.502,29,0.954,30,0.001,31,0.682,32,0.169,33,0.589,35,1.438,36,1.694,39,1.448,47,0.924,95,0.156,99,0.897,101,0.009,103,0,104,0,105,1.057,107,1.296,111,1.877,112,2.063,116,4.272,127,0.989,148,3.536,187,0.778,199,4.777,204,1.825,216,1.731,217,1.218,221,1.245,227,1.07,234,1.52,235,3.035,305,2.667,347,2.324,359,4.407,369,1.193,441,7.118,450,2.209,461,3.177,766,2.249,1787,6.898,1795,6.418,1799,8.117,1823,7.369,1826,6.909,1828,7.302,1834,7.302,1838,7.302,1852,3.335,1861,6.253,1872,6.898,1873,3.337,1884,4.269,1894,9.622,1966,4.703,1978,7.331,1985,5.378,1986,7.899,1987,7.899,1988,5.872,1989,9.362,1990,5.378,1991,5.378,1992,7.899,1993,5.378,1994,7.899,1995,5.378,1996,7.899,1997,5.378,1998,7.899,1999,5.378,2000,5.378,2001,5.378,2002,5.097,2003,5.378,2004,6.425,2005,5.378,2006,4.901,2007,4.344,2008,5.378,2009,5.378,2010,5.378,2011,5.378,2012,5.378,2013,5.248,2014,7.899,2015,4.211,2016,5.378,2017,7.899,2018,4.211]],["title/classes/AxiosResponseImp.html",[0,0.232,2019,6.286]],["body/classes/AxiosResponseImp.html",[0,0.257,2,0.841,3,0.018,4,0.018,5,0.009,7,0.114,27,0.528,29,0.591,30,0.001,31,0.422,32,0.18,33,0.365,47,0.853,55,2.419,95,0.129,101,0.017,103,0.001,104,0.001,127,0.945,154,5.702,163,3.832,165,0.784,214,3.155,217,0.981,227,0.782,234,1.824,405,2.667,498,5.176,564,4.564,595,2.525,660,4.145,692,4.196,731,2.98,736,4.472,1026,4.181,1187,3.596,1188,3.554,1189,3.554,1190,3.759,1191,4.11,1270,7.588,2019,10.383,2020,13.058,2021,6.972,2022,7.999,2023,12.451,2024,12.451,2025,10.008,2026,11.964,2027,7.542,2028,12.451,2029,6.972,2030,7.542,2031,7.542,2032,10.008,2033,5.269,2034,10.008,2035,4.076,2036,7.542,2037,4.425,2038,5.269,2039,7.542,2040,7.542,2041,7.542,2042,7.542,2043,6.092,2044,6.316,2045,5.269,2046,7.542,2047,6.972]],["title/classes/BBBBaseMeetingConfig.html",[0,0.232,2048,5.055]],["body/classes/BBBBaseMeetingConfig.html",[0,0.335,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.488,29,0.771,30,0.001,31,0.551,32,0.161,33,0.476,47,0.845,101,0.016,103,0.001,104,0.001,127,1.233,154,4.509,165,0.928,2048,10.03,2049,6.559,2050,11.115,2051,7.24,2052,9.845,2053,9.05,2054,10.362,2055,9.845,2056,9.845,2057,9.101,2058,8.611]],["title/interfaces/BBBBaseResponse.html",[334,0.731,2059,4.751]],["body/interfaces/BBBBaseResponse.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.173,47,0.978,95,0.127,101,0.017,103,0.001,104,0.001,165,0.931,334,1.063,336,2.368,1216,5.176,2049,5.106,2059,8.301,2060,8.286,2061,9.894,2062,13.209,2063,13.209,2064,12.211,2065,5.93,2066,7.992]],["title/classes/BBBCreateConfig.html",[0,0.232,2067,5.694]],["body/classes/BBBCreateConfig.html",[0,0.235,2,0.769,3,0.016,4,0.016,5,0.008,7,0.104,27,0.555,29,0.54,30,0.001,31,0.738,32,0.183,33,0.673,47,0.974,95,0.089,101,0.016,103,0.001,104,0.001,127,0.864,154,3.158,165,0.738,347,2.333,404,1.698,596,2.104,1031,2.161,2048,8.575,2049,6.945,2050,11.769,2051,3.929,2053,6.71,2054,8.242,2057,6.375,2058,6.032,2065,4.133,2067,10.114,2068,6.896,2069,10.733,2070,10.733,2071,10.905,2072,6.926,2073,10.733,2074,9.756,2075,6.637,2076,10.733,2077,10.733,2078,9.922,2079,6.896,2080,6.896,2081,6.896,2082,6.896,2083,6.896,2084,6.896,2085,6.896,2086,6.896,2087,6.896,2088,6.896,2089,6.375,2090,6.375,2091,9.423,2092,9.423,2093,9.423,2094,6.375,2095,2.736,2096,6.896,2097,5.127,2098,6.896,2099,6.896,2100,6.896,2101,6.896,2102,6.896,2103,6.896,2104,6.896,2105,6.896,2106,6.896,2107,6.896,2108,6.896,2109,6.896,2110,6.896]],["title/classes/BBBCreateConfigBuilder.html",[0,0.232,2111,5.947]],["body/classes/BBBCreateConfigBuilder.html",[0,0.239,2,0.784,3,0.017,4,0.017,5,0.008,7,0.106,8,1.153,27,0.517,29,0.911,30,0.001,31,0.681,32,0.165,33,0.562,35,1.472,47,0.915,95,0.139,101,0.012,102,3.527,103,0.001,104,0.001,144,2.981,165,0.748,204,2.385,216,1.765,227,1.261,347,2.192,367,3.352,369,1.56,404,1.72,596,2.912,661,4.011,667,5.511,691,3.738,692,2.626,728,2.688,883,5.319,956,4.6,2049,6.274,2065,4.213,2067,9.078,2071,10.967,2072,6.159,2074,5.678,2075,3.863,2078,8.824,2111,11.701,2112,11.239,2113,6.497,2114,8.463,2115,7.994,2116,9.545,2117,9.545,2118,9.545,2119,9.545,2120,6.497,2121,7.029,2122,9.545,2123,7.029,2124,9.545,2125,7.029,2126,9.545,2127,7.029,2128,9.545,2129,7.029,2130,3.07,2131,3.436,2132,3.312,2133,4.474,2134,5.225,2135,7.029,2136,7.029,2137,7.029,2138,7.029,2139,4.535,2140,7.029,2141,6.497,2142,5.225,2143,6.148,2144,3.967,2145,4.416,2146,4.744,2147,5.504,2148,7.029,2149,5.678,2150,7.029,2151,6.497,2152,7.029,2153,7.029]],["title/interfaces/BBBCreateResponse.html",[334,0.731,2154,5.947]],["body/interfaces/BBBCreateResponse.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.188,47,1.01,55,2.957,95,0.109,101,0.014,103,0.001,104,0.001,165,0.847,334,0.913,336,2.033,347,2.673,404,1.949,2049,4.385,2053,8.917,2059,8.311,2060,7.115,2065,5.092,2154,9.458,2155,8.496,2156,11.575,2157,11.575,2158,11.575,2159,10.952,2160,11.575,2161,11.575,2162,11.575,2163,11.575,2164,11.575,2165,7.115]],["title/classes/BBBJoinConfig.html",[0,0.232,2166,5.694]],["body/classes/BBBJoinConfig.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,27,0.547,29,0.631,30,0.001,31,0.451,32,0.18,33,0.642,39,3.123,47,0.946,95,0.103,101,0.017,103,0.001,104,0.001,127,1.009,154,3.689,165,0.818,347,2.113,404,1.883,415,4.353,496,4.897,596,2.457,1031,2.524,2048,9.124,2049,6.847,2050,11.604,2051,4.588,2053,7.441,2054,9.139,2065,4.827,2089,7.446,2090,7.446,2094,7.446,2134,8.622,2166,10.651,2167,8.054,2168,10.145,2169,11.599,2170,7.484,2171,8.054,2172,8.054,2173,8.054,2174,8.054,2175,8.054,2176,8.054,2177,9.139,2178,10.449,2179,8.054,2180,8.054,2181,5.855,2182,8.054,2183,8.054,2184,8.054,2185,8.054,2186,6.745,2187,8.054]],["title/classes/BBBJoinConfigBuilder.html",[0,0.232,2188,5.947]],["body/classes/BBBJoinConfigBuilder.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,8,1.262,27,0.524,29,0.908,30,0.001,31,0.65,32,0.167,33,0.561,35,1.486,47,0.827,95,0.134,101,0.013,103,0.001,104,0.001,144,3.584,165,0.818,216,1.932,227,1.203,347,2.346,404,1.883,596,3.187,661,4.391,667,5.498,692,3.904,2049,6.334,2112,11.346,2113,7.446,2114,8.796,2115,8.751,2120,7.446,2134,9.124,2166,6.745,2188,11.762,2189,9.351,2190,10.449,2191,9.659,2192,9.659,2193,10.449,2194,8.054,2195,10.449,2196,8.054,2197,10.449,2198,8.054,2199,8.054,2200,8.054,2201,8.054,2202,8.054,2203,8.054,2204,8.054]],["title/interfaces/BBBJoinResponse.html",[334,0.731,2205,6.286]],["body/interfaces/BBBJoinResponse.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.181,47,1.021,95,0.121,101,0.016,103,0.001,104,0.001,150,4.493,165,0.901,334,1.008,336,2.246,404,2.074,2049,4.844,2059,8.696,2060,7.861,2065,5.626,2165,7.861,2205,10.639,2206,8.677,2207,12.975,2208,12.975,2209,12.975,2210,10.16]],["title/interfaces/BBBMeetingInfoResponse.html",[334,0.731,2211,5.324]],["body/interfaces/BBBMeetingInfoResponse.html",[3,0.015,4,0.015,5,0.008,7,0.094,30,0.001,32,0.193,33,0.534,39,1.679,47,0.995,55,3.078,95,0.08,101,0.01,103,0.001,104,0.001,138,5.277,165,0.688,334,0.67,336,1.492,347,2.813,404,1.583,496,2.632,674,3.426,1345,2.474,2049,3.218,2053,7.866,2059,7.108,2060,5.221,2065,3.737,2156,10.211,2157,10.211,2158,10.211,2159,9.661,2160,10.211,2161,10.211,2162,10.211,2163,5.763,2164,10.211,2165,5.221,2168,5.453,2211,6.88,2212,5.763,2213,4.882,2214,11.046,2215,11.645,2216,11.046,2217,10.211,2218,11.046,2219,11.046,2220,11.046,2221,11.046,2222,7.866,2223,11.046,2224,11.046,2225,11.046,2226,8.029,2227,10.211,2228,11.046,2229,11.046,2230,5.763,2231,6.235,2232,6.235,2233,6.235,2234,6.235,2235,6.235,2236,6.235]],["title/interfaces/BBBResponse.html",[334,0.731,2237,5.181]],["body/interfaces/BBBResponse.html",[3,0.025,4,0.025,5,0.013,7,0.157,30,0.001,32,0.141,95,0.133,101,0.017,103,0.001,104,0.001,165,0.958,334,1.115,336,2.484,692,4.855,1016,4.711,2049,5.356,2059,7.251,2065,6.22,2165,8.691,2237,9.314,2238,10.378]],["title/injectables/BBBService.html",[105,0.91,2239,5.181]],["body/injectables/BBBService.html",[0,0.119,3,0.008,4,0.008,5,0.004,7,0.053,8,0.682,27,0.482,29,0.956,30,0.001,31,0.642,32,0.152,33,0.527,35,1.536,36,2.458,47,0.946,95,0.147,101,0.006,103,0,104,0,105,0.755,107,0.839,111,2.032,112,1.568,127,0.707,150,4.114,154,4.834,163,1.736,167,1.281,185,2.193,187,0.503,193,10.678,216,1.315,217,1.623,221,0.806,227,1.266,234,1.819,235,1.965,238,3.979,250,9.134,254,3.045,255,4.935,256,3.045,264,4.583,270,3.045,305,2.742,359,3.533,367,1.66,379,0.789,661,4.911,687,2.405,691,4.351,839,1.66,883,3.47,884,2.659,956,3.693,1016,1.222,1154,7.08,1155,2.022,1157,2.279,1270,2.064,1335,4.725,1353,4.645,1354,2.479,1355,2.726,1384,4.935,1414,3.156,1433,3.459,1738,4.101,2022,5.825,2033,2.432,2035,1.882,2048,8.832,2049,6.132,2053,2.479,2058,3.045,2059,2.432,2064,3.218,2065,7.121,2067,8.839,2142,4.194,2145,3.545,2146,3.808,2147,4.418,2154,3.045,2166,7.528,2189,7.332,2211,2.726,2212,9.757,2237,7.332,2239,4.299,2240,3.482,2241,3.808,2242,5.642,2243,5.642,2244,5.216,2245,5.642,2246,5.746,2247,7.862,2248,3.482,2249,6.608,2250,8.487,2251,3.482,2252,6.222,2253,5.642,2254,3.482,2255,5.825,2256,5.642,2257,3.42,2258,5.216,2259,5.642,2260,5.642,2261,3.482,2262,4.935,2263,5.642,2264,3.482,2265,5.216,2266,5.216,2267,9.624,2268,3.214,2269,8.18,2270,5.642,2271,3.482,2272,5.642,2273,3.482,2274,5.642,2275,3.482,2276,7.155,2277,5.642,2278,5.642,2279,3.482,2280,3.214,2281,5.642,2282,3.482,2283,4.935,2284,5.216,2285,3.482,2286,3.482,2287,3.482,2288,3.482,2289,3.482,2290,3.482,2291,3.482,2292,7.721,2293,2.916,2294,2.916,2295,3.482,2296,3.482,2297,3.482,2298,3.482,2299,6.608,2300,3.482,2301,8.18,2302,5.642,2303,1.411,2304,3.482,2305,3.482,2306,3.482,2307,7.114,2308,6.576,2309,9.624,2310,5.642,2311,5.642,2312,7.114,2313,7.114,2314,7.114,2315,7.114,2316,6.576,2317,6.576,2318,3.482,2319,3.482,2320,3.482,2321,3.482,2322,5.216,2323,3.482,2324,3.482,2325,3.482,2326,3.482,2327,4.935,2328,3.482,2329,3.482,2330,3.482,2331,3.482,2332,3.482,2333,3.482,2334,3.482,2335,3.482,2336,3.482,2337,3.482,2338,3.218,2339,3.482]],["title/classes/BaseDO.html",[0,0.232,1872,3.949]],["body/classes/BaseDO.html",[0,0.337,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,9,4.662,27,0.49,29,0.775,30,0.001,31,0.554,32,0.162,33,0.616,34,2.298,47,0.963,59,3.082,101,0.017,102,4.965,103,0.001,104,0.001,127,1.239,165,0.931,618,4.046,661,4.993,1872,6.902,2340,9.894,2341,9.304,2342,11.882]],["title/injectables/BaseDORepo.html",[105,0.91,2343,4.667]],["body/injectables/BaseDORepo.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,8,0.779,9,5.662,10,3.629,12,2.952,18,3.257,26,2.657,27,0.522,29,0.981,30,0.001,31,0.702,32,0.17,33,0.606,34,2.005,35,1.499,36,2.836,40,3.111,47,0.46,49,1.619,55,0.886,95,0.125,96,1.763,97,1.779,99,0.687,101,0.007,102,2.065,103,0,104,0,105,0.862,107,0.992,111,2.448,112,2.862,127,0.515,148,1.266,165,0.505,187,0.595,216,1.192,217,1.69,221,2.667,227,1.195,234,1.047,247,1.612,359,2.247,380,2.631,381,2.144,398,1.212,500,4.424,524,3.707,574,1.806,595,1.378,661,4.954,770,2.44,878,4.503,884,3.037,885,4.934,915,2.281,929,3.599,1008,4.295,1467,1.313,1790,3.797,1852,1.737,1872,2.39,2015,3.222,2051,3.672,2280,2.344,2343,4.424,2344,4.114,2345,4.59,2346,4.59,2347,4.59,2348,4.59,2349,4.503,2350,4.503,2351,4.59,2352,4.503,2353,4.59,2354,2.991,2355,5.172,2356,3.264,2357,4.096,2358,4.114,2359,4.685,2360,4.59,2361,4.114,2362,7.644,2363,4.59,2364,4.114,2365,4.59,2366,4.114,2367,5.201,2368,4.503,2369,4.59,2370,4.114,2371,4.59,2372,4.114,2373,4.59,2374,8.111,2375,4.114,2376,4.114,2377,4.59,2378,4.114,2379,4.35,2380,4.503,2381,4.114,2382,4.59,2383,4.114,2384,3.863,2385,3.952,2386,4.59,2387,4.114,2388,4.59,2389,4.114,2390,2.875,2391,4.59,2392,4.114,2393,4.114,2394,5.332,2395,2.777,2396,3.599,2397,2.777,2398,7.946,2399,4.114,2400,4.114,2401,4.685,2402,4.114,2403,7.042,2404,4.114,2405,4.114,2406,5.047,2407,3.803,2408,2.875,2409,4.791,2410,9.575,2411,6.445,2412,4.103,2413,3.803,2414,4.114,2415,4.114,2416,4.114,2417,4.114,2418,5.638,2419,4.114,2420,4.114,2421,4.114,2422,3.446,2423,4.114,2424,4.114,2425,4.114,2426,4.114,2427,4.114,2428,4.114,2429,4.114,2430,4.114,2431,3.446,2432,4.114,2433,4.114,2434,4.114,2435,4.114,2436,4.114,2437,4.114,2438,3.599,2439,2.414,2440,2.344,2441,4.114,2442,4.114,2443,4.114,2444,3.599]],["title/classes/BaseDomainObject.html",[0,0.232,2445,6.286]],["body/classes/BaseDomainObject.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,9,6.333,27,0.4,30,0.001,32,0.132,34,2.148,47,0.837,95,0.125,101,0.016,102,5.893,103,0.001,104,0.001,165,0.92,214,3.702,334,1.042,359,3.383,1787,7.335,1789,8.487,1798,5.476,1904,5.283,2445,10.856,2446,11.743,2447,9.703,2448,8.97,2449,6.659,2450,5.528,2451,7.838,2452,8.97,2453,9.703]],["title/classes/BaseEntity.html",[0,0.232,2395,4.589]],["body/classes/BaseEntity.html",[0,0.386,2,0.855,3,0.018,4,0.018,5,0.009,7,0.116,9,4.769,27,0.417,30,0.001,32,0.17,34,2.187,47,0.808,49,4.739,72,3.475,83,3.465,95,0.155,96,2.769,97,3.318,101,0.02,103,0.001,104,0.001,165,0.943,214,3.571,217,0.998,234,1.839,240,3.593,334,0.824,359,2.674,364,2.063,380,2.151,381,2.552,398,2.26,399,4.015,574,3.368,591,4.399,592,4.585,672,3.931,722,3.42,938,5.576,946,5.021,960,5.265,1129,4.412,1142,3.553,1167,7.067,1198,5.359,1787,6.996,1852,3.239,1904,3.209,2142,5.702,2385,4.703,2395,7.645,2396,6.709,2454,7.091,2455,8.87,2456,11.134,2457,7.671,2458,11.134,2459,7.671,2460,6.424,2461,4.649,2462,5.576,2463,6.424,2464,6.196,2465,6.424,2466,6.424,2467,7.091,2468,4.598,2469,4.95,2470,5.265,2471,5.021,2472,7.091,2473,6.709,2474,7.091,2475,5.265,2476,6.424,2477,6.709,2478,7.091,2479,6.709,2480,7.091]],["title/classes/BaseEntityWithTimestamps.html",[0,0.232,399,2.698]],["body/classes/BaseEntityWithTimestamps.html",[0,0.377,2,0.815,3,0.017,4,0.017,5,0.009,7,0.11,9,4.618,27,0.487,30,0.001,32,0.167,34,2.158,47,0.788,49,4.648,72,3.311,83,3.769,95,0.152,96,2.681,97,3.161,101,0.02,103,0.001,104,0.001,144,2.695,165,0.925,214,3.486,217,0.951,234,2,240,3.748,319,2.929,334,0.785,359,2.548,364,2.244,380,2.083,381,2.431,398,2.153,399,4.387,574,3.209,591,5.135,592,5.352,672,3.745,722,3.259,938,5.313,946,4.784,960,5.016,1129,4.204,1142,3.385,1167,6.971,1198,5.107,1787,6.862,1852,3.086,1904,3.057,2142,5.433,2385,4.481,2395,6.615,2396,6.393,2454,6.757,2455,7.675,2456,10.922,2458,10.922,2460,6.121,2461,4.43,2462,5.313,2463,6.121,2464,5.904,2465,6.121,2466,6.121,2467,6.757,2468,4.381,2469,4.716,2470,5.016,2471,4.784,2472,6.757,2473,6.393,2474,6.757,2475,5.016,2476,6.121,2477,6.393,2478,6.757,2479,6.393,2480,6.757,2481,7.309,2482,7.309,2483,7.309,2484,7.309,2485,7.309]],["title/classes/BaseFactory.html",[0,0.232,660,3.737]],["body/classes/BaseFactory.html",[0,0.232,2,0.364,3,0.008,4,0.008,5,0.004,7,0.049,8,0.647,27,0.489,29,0.981,30,0.001,31,0.629,32,0.17,33,0.543,34,1.678,35,1.489,47,0.485,49,1.284,55,2.363,59,2.707,95,0.069,101,0.005,103,0,104,0,127,0.852,138,3.439,144,3.091,148,1.648,165,0.617,185,4.728,215,1.042,216,1.456,217,1.616,227,1.105,234,1.896,247,2.098,264,4.61,319,3.428,334,0.575,359,2.745,366,1.826,379,1.784,380,2.662,381,2.619,538,4.207,595,2.91,627,2.088,660,2.942,661,4.48,662,6.693,665,3.021,666,5.27,667,5.698,668,3.021,669,3.021,670,3.021,671,2.968,672,4.453,673,4.443,674,6.029,675,6.081,676,7.448,682,1.842,683,3.841,685,5.205,686,5.374,687,3.704,688,5.053,689,4.861,690,1.842,691,1.736,692,4.68,693,1.794,694,1.764,695,3.021,696,4.854,698,5.176,699,3.021,700,6.784,701,4.193,702,6.59,704,4.624,705,3.021,707,1.842,709,3.021,711,3.174,712,1.842,713,6.23,715,1.842,716,5.81,717,4.155,718,4.443,720,5.374,721,3.678,722,2.387,723,3.021,724,4.443,725,3.021,728,2.047,729,3.021,731,4.067,732,3.021,735,1.896,808,2.855,948,2.487,1167,1.794,1187,3.754,1188,3.71,1189,3.71,1190,3.924,1191,3.709,1192,2.24,1204,2.556,1268,6.312,1678,2.855,2045,3.74,2412,3.408,2486,3.264,2487,3.408,2488,5.353,2489,3.264,2490,5.353,2491,3.264,2492,3.264,2493,3.264,2494,3.264,2495,3.264,2496,3.264,2497,3.264,2498,3.264,2499,3.264,2500,3.264,2501,3.264,2502,3.264,2503,4.949,2504,4.079,2505,3.264,2506,3.264,2507,3.264,2508,3.264,2509,3.264,2510,3.018,2511,5.353,2512,5.353,2513,3.264,2514,3.264,2515,7.873,2516,3.264,2517,10.295,2518,7.873,2519,3.264,2520,3.264,2521,3.264,2522,3.264,2523,3.264,2524,3.141,2525,3.264,2526,3.264,2527,3.264,2528,3.264,2529,3.264]],["title/injectables/BaseRepo.html",[105,0.91,877,3.99]],["body/injectables/BaseRepo.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.102,8,1.121,9,4.374,10,3.746,12,4.251,18,4.69,26,2.423,27,0.511,29,0.939,30,0.001,31,0.671,32,0.163,33,0.579,34,1.579,35,1.384,36,2.812,40,4.48,49,4.497,95,0.159,96,2.539,97,2.918,101,0.011,103,0.001,104,0.001,105,1.242,107,1.626,112,2.891,127,0.845,187,0.976,216,1.247,217,0.878,221,2.148,227,0.962,379,1.529,380,1.972,381,3.087,398,1.988,692,5.188,734,3.843,774,6.37,877,5.446,883,3.937,884,4.374,885,6.055,908,5.691,910,5.691,913,5.691,915,3.74,1844,4.043,1855,5.832,1904,3.883,1941,5.908,1942,6.37,2280,3.843,2343,6.37,2354,4.904,2355,6.574,2359,6.747,2394,5.503,2395,4.553,2397,4.553,2407,6.236,2413,6.236,2418,5.9,2530,6.746,2531,6.177,2532,8.58,2533,9.282,2534,9.282,2535,8.58,2536,5.563,2537,6.075,2538,6.61,2539,6.746,2540,6.746,2541,6.746,2542,6.746,2543,6.746,2544,6.746,2545,3.588,2546,6.746]],["title/interfaces/BaseResponseMapper.html",[334,0.731,2547,5.055]],["body/interfaces/BaseResponseMapper.html",[3,0.022,4,0.022,5,0.011,7,0.143,8,1.398,27,0.477,29,0.907,30,0.001,31,0.648,32,0.177,33,0.56,35,1.401,95,0.149,99,1.581,100,3.172,101,0.016,103,0.001,104,0.001,334,1.018,336,2.268,347,2.341,692,5.074,975,6.416,2547,8.604,2548,12.498,2549,9.475,2550,9.064,2551,9.064,2552,9.475,2553,4.934,2554,8.819,2555,9.475,2556,10.096,2557,4.631]],["title/classes/BasicToolConfig.html",[0,0.232,2558,4.943]],["body/classes/BasicToolConfig.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,27,0.511,29,0.727,30,0.001,31,0.52,32,0.184,33,0.449,47,0.662,95,0.147,101,0.015,103,0.001,104,0.001,127,1.162,165,0.895,198,4.507,200,2.89,209,4.092,238,6.925,404,2.059,405,3.045,406,3.018,595,3.107,596,3.486,2558,9.647,2559,5.177,2560,11.427,2561,7.77,2562,9.865,2563,8.577,2564,8.115,2565,6.335,2566,8.115,2567,8.115,2568,6.483,2569,6.607]],["title/classes/BasicToolConfigEntity.html",[0,0.232,2570,5.493]],["body/classes/BasicToolConfigEntity.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,27,0.393,29,0.747,30,0.001,31,0.534,32,0.13,33,0.461,95,0.161,96,2.61,101,0.016,103,0.001,104,0.001,127,1.195,198,4.635,200,2.972,209,4.143,398,2.811,404,1.719,405,3.098,595,3.195,617,5.29,2559,5.266,2565,5.29,2568,8.122,2569,6.795,2570,10.805,2571,11.625,2572,7.991,2573,9.542,2574,6,2575,9.39,2576,8.346,2577,5.386,2578,4.255,2579,6.795]],["title/classes/BasicToolConfigParams.html",[0,0.232,2580,5.493]],["body/classes/BasicToolConfigParams.html",[0,0.389,2,1.032,3,0.022,4,0.022,5,0.011,7,0.14,27,0.47,30,0.001,32,0.18,47,0.814,95,0.166,101,0.015,103,0.001,104,0.001,165,0.894,198,4.497,200,2.883,209,3.771,238,6.918,364,2.078,374,2.955,376,2.118,404,2.056,467,3.245,470,4.773,596,3.481,1044,4.441,2559,4.194,2565,6.857,2580,9.217,2581,9.257,2582,8.558,2583,9.64,2584,6.468,2585,7.478,2586,7.478,2587,7.478,2588,7.478,2589,7.478]],["title/classes/BasicToolConfigResponse.html",[0,0.232,2590,5.694]],["body/classes/BasicToolConfigResponse.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,27,0.501,29,0.698,30,0.001,31,0.499,32,0.182,33,0.431,47,0.795,95,0.156,101,0.015,103,0.001,104,0.001,127,1.116,165,0.873,198,4.327,200,2.775,209,4.018,238,6.8,364,2.03,376,2.038,404,2.008,405,2.969,406,2.898,467,3.441,595,2.983,596,3.399,2559,5.048,2565,6.74,2568,6.224,2569,6.344,2578,3.972,2579,6.344,2590,10.984,2591,11.143,2592,7.197,2593,10.594,2594,8.909,2595,7.792,2596,7.792,2597,7.197]],["title/injectables/BasicToolLaunchStrategy.html",[105,0.91,2598,5.694]],["body/injectables/BasicToolLaunchStrategy.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.07,8,0.855,9,2.189,26,2.307,27,0.524,29,0.996,30,0.001,31,0.712,32,0.176,33,0.615,35,1.539,36,2.426,39,2.31,47,0.869,95,0.133,99,0.775,101,0.008,103,0,104,0,105,0.947,106,10.948,107,1.12,108,2.698,110,4.063,111,2.621,112,2.686,113,6.192,114,6.192,115,6.192,116,3.961,117,7.502,118,6.192,119,6.192,120,6.192,121,6.192,122,5.929,123,5.929,124,6.192,125,6.192,126,6.192,133,4.063,134,10.49,135,6.192,136,7.201,137,5.263,138,3.093,139,6.906,140,6.632,142,4.063,143,6.192,144,1.947,145,2.429,146,6.584,148,2.179,149,4.063,150,3.321,151,6.192,153,4.063,155,9.132,157,4.063,158,4.193,160,8.088,161,4.063,163,3.348,164,6.192,165,0.751,167,3.156,168,4.063,170,3.891,171,3.891,173,4.063,175,3.308,176,6.192,178,8.788,179,4.063,180,6.192,181,6.189,183,4.063,184,6.192,185,2.751,187,0.672,207,3.891,208,1.736,209,2.34,210,3.041,211,3.891,217,1.344,227,0.995,231,2.575,240,2.246,241,6.545,247,1.82,253,4.295,347,0.94,404,1.276,596,3.879,731,2.797,1180,1.999,1187,3.376,1188,3.336,1189,3.336,1190,3.529,1191,3.858,2139,5.535,2598,5.929,2599,4.646,2600,4.295,2601,4.646,2602,4.646,2603,4.295,2604,4.295,2605,4.295,2606,4.295,2607,4.295,2608,4.295,2609,4.295,2610,4.295,2611,4.295,2612,4.295,2613,4.295,2614,5.146,2615,5.042,2616,3.638,2617,7.08,2618,4.646,2619,6.545,2620,4.646,2621,4.646,2622,4.646,2623,7.08,2624,4.646,2625,4.646,2626,4.063]],["title/entities/Board.html",[380,1.445,2627,2.858]],["body/entities/Board.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,26,2.47,27,0.335,30,0.001,32,0.143,34,0.952,95,0.169,96,1.53,101,0.014,103,0,104,0,111,2.239,144,1.538,145,2.059,148,1.722,165,0.637,187,0.809,188,4.549,208,2.09,217,1.7,227,1.208,234,2,305,2.728,319,1.672,334,0.601,347,1.131,364,1.481,369,2.333,380,1.727,381,1.861,394,4.631,398,1.648,399,3.225,400,2.468,402,2.319,404,1.008,405,1.491,406,1.819,571,3.515,577,3.157,744,4.066,783,3.39,806,3.899,1041,4.547,1843,2.652,2439,3.282,2462,6.962,2553,4.966,2627,4.896,2628,7.499,2629,5.594,2630,7.554,2631,5.594,2632,4.841,2633,3.9,2634,6.194,2635,5.594,2636,4.43,2637,8.13,2638,6.567,2639,5.594,2640,3.048,2641,6.366,2642,4.066,2643,3.249,2644,2.999,2645,5.175,2646,3.282,2647,4.291,2648,3.908,2649,4.27,2650,3.471,2651,7.486,2652,11.386,2653,8.02,2654,6.194,2655,4.324,2656,5.789,2657,4.893,2658,6.567,2659,2.621,2660,6.567,2661,8.13,2662,5.594,2663,3.661,2664,5.594,2665,5.594,2666,8.13,2667,4.685,2668,5.594,2669,9.577,2670,5.594,2671,5.594,2672,5.594,2673,5.594,2674,5.594,2675,8.13,2676,5.594,2677,8.13,2678,8.13,2679,5.594,2680,5.594,2681,4.519,2682,5.594,2683,5.594,2684,5.171,2685,5.594,2686,4.066,2687,5.594,2688,4.685,2689,5.594,2690,5.594,2691,5.594,2692,5.594,2693,5.594,2694,5.594,2695,5.594,2696,5.594,2697,5.594,2698,5.594,2699,5.594,2700,5.594,2701,5.594,2702,4.737,2703,5.594,2704,8.13,2705,5.594,2706,5.594,2707,5.594,2708,5.594,2709,11.65,2710,4.893]],["title/modules/BoardApiModule.html",[425,1.812,2711,5.493]],["body/modules/BoardApiModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,95,0.173,101,0.013,103,0.001,104,0.001,187,1.162,425,3.088,427,2.904,428,3.124,429,3.216,430,3.203,431,3.189,432,4.264,433,3.038,438,6.102,442,4.176,443,3.15,444,3.074,446,5.051,447,4.325,449,4.14,481,3.086,1467,2.566,1878,5.64,1953,7.291,1956,9.924,2711,11.406,2712,8.038,2713,8.038,2714,8.038,2715,10.908,2716,10.2,2717,10.521,2718,10.908,2719,8.038,2720,10.135,2721,10.135,2722,10.135,2723,10.135,2724,10.135,2725,3.641,2726,8.038,2727,3.856,2728,7.031,2729,7.431,2730,7.431]],["title/classes/BoardColumnBoardResponse.html",[0,0.232,2731,5.694]],["body/classes/BoardColumnBoardResponse.html",[0,0.257,2,0.843,3,0.018,4,0.018,5,0.009,7,0.114,27,0.539,29,0.592,30,0.001,31,0.423,32,0.178,33,0.365,34,2.119,47,0.913,83,3.663,95,0.129,101,0.013,103,0.001,104,0.001,127,1.255,165,0.785,347,2.027,364,2.332,376,1.728,467,3.61,469,3.317,591,5.415,592,5.644,618,3.09,620,4.875,622,4.875,966,3.844,1397,4.171,2655,7.458,2731,10.433,2732,10.387,2733,10.387,2734,7.556,2735,9.492,2736,8.154,2737,7.556,2738,7.556,2739,7.556,2740,7.556,2741,7.556,2742,5.492,2743,7.556,2744,7.556,2745,6.378,2746,7.556,2747,3.9,2748,6.985]],["title/classes/BoardComposite.html",[0,0.232,2749,4.121]],["body/classes/BoardComposite.html",[0,0.199,2,0.652,3,0.014,4,0.014,5,0.007,7,0.088,8,1.014,9,6.07,26,1.779,27,0.538,29,0.926,30,0.001,31,0.662,32,0.173,33,0.572,34,1.428,35,1.475,36,1.799,55,2.115,59,1.821,83,3.282,95,0.146,99,0.976,101,0.014,103,0,104,0,116,2.614,148,3.64,165,0.657,187,0.845,208,2.184,217,0.761,227,1.113,234,1.594,247,2.29,305,2.797,334,0.628,347,2.17,359,2.926,363,5.342,404,1.512,591,4.663,592,4.861,595,2.81,596,2.56,661,3.527,692,3.135,884,3.955,1129,3.362,1646,4.694,1790,4.994,1793,6.335,1852,2.468,1873,3.627,1874,4.163,1875,4.454,2440,3.33,2557,6.59,2643,3.395,2749,5.086,2750,11.908,2751,5.404,2752,5.976,2753,5.976,2754,5.976,2755,5.575,2756,5.976,2757,7.242,2758,3.884,2759,5.146,2760,6.295,2761,5.846,2762,5.863,2763,5.146,2764,6.171,2765,5.846,2766,5.863,2767,6.579,2768,5.846,2769,7.655,2770,5.863,2771,5.846,2772,5.976,2773,5.846,2774,5.863,2775,5.846,2776,3.884,2777,5.404,2778,5.846,2779,5.113,2780,5.846,2781,5.113,2782,5.846,2783,3.504,2784,7.758,2785,4.578,2786,4.578,2787,5.404,2788,5.404,2789,5.404,2790,7.758,2791,5.404,2792,5.404,2793,5.404,2794,3.466,2795,5.404,2796,5.404,2797,5.404,2798,5.404,2799,7.34,2800,3.826,2801,5.976,2802,5.404,2803,5.113,2804,3.543]],["title/interfaces/BoardCompositeProps.html",[334,0.731,2804,4.121]],["body/interfaces/BoardCompositeProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,9,5.535,26,2.49,30,0.001,32,0.172,33,0.469,34,2.086,36,1.545,55,1.552,83,4.015,95,0.157,99,1.202,101,0.016,103,0.001,104,0.001,148,3.378,165,0.76,187,1.042,208,2.692,217,0.938,227,1.218,234,1.782,247,2.823,305,3.127,334,0.774,336,1.724,347,1.963,359,3.384,404,1.298,591,5.329,592,5.555,1129,4.144,1646,5.429,1790,4.098,1852,3.042,1873,4.471,1874,5.13,1875,5.489,2440,4.104,2557,6.5,2643,4.185,2749,4.367,2750,6.66,2751,6.66,2757,8.275,2759,4.417,2760,5.695,2763,4.417,2764,5.583,2766,5.033,2767,6.666,2769,7.38,2770,5.033,2772,5.13,2774,5.033,2783,4.318,2784,8.973,2785,5.642,2786,5.642,2787,6.66,2788,6.66,2789,6.66,2790,8.973,2791,6.66,2792,6.66,2793,6.66,2794,4.272,2795,6.66,2796,6.66,2797,6.66,2798,6.66,2799,8.49,2800,4.715,2801,6.912,2802,6.66,2803,6.301,2804,5.883]],["title/interfaces/BoardCompositeVisitor.html",[334,0.731,2760,3.99]],["body/interfaces/BoardCompositeVisitor.html",[3,0.014,4,0.014,5,0.01,7,0.092,8,1.046,27,0.529,29,1.005,30,0.001,31,0.718,32,0.187,33,0.62,35,1.553,36,2.751,95,0.165,101,0.014,103,0,104,0,148,4.239,200,1.904,209,2.02,334,0.931,336,1.463,2280,3.482,2655,6.565,2760,5.083,2764,3.515,2805,10.185,2806,12.023,2807,5.65,2808,8.008,2809,8.008,2810,8.008,2811,8.008,2812,8.008,2813,8.008,2814,8.008,2815,8.008,2816,8.008,2817,7.577,2818,6.838,2819,6.112,2820,7.577,2821,6.112,2822,7.577,2823,7.275,2824,6.112,2825,7.577,2826,7.856,2827,6.112,2828,7.577,2829,7.856,2830,6.112,2831,7.577,2832,7.856,2833,6.112,2834,7.577,2835,7.745,2836,6.112,2837,7.577,2838,7.542,2839,6.112,2840,8.008,2841,7.448,2842,6.112,2843,5.118,2844,5.65,2845,5.118,2846,8.401,2847,4.543,2848,2.95,2849,3.747,2850,3.663,2851,4.937,2852,5.118,2853,5.118,2854,5.118,2855,5.118,2856,5.118,2857,5.118,2858,5.118,2859,5.65,2860,5.118]],["title/interfaces/BoardCompositeVisitorAsync.html",[334,0.731,2764,3.911]],["body/interfaces/BoardCompositeVisitorAsync.html",[3,0.014,4,0.014,5,0.01,7,0.092,8,1.046,27,0.529,29,1.005,30,0.001,31,0.718,32,0.187,33,0.62,35,1.553,36,2.953,95,0.165,101,0.014,103,0,104,0,148,3.948,200,1.904,209,2.02,334,0.931,336,1.463,2280,3.482,2655,6.565,2760,3.586,2764,4.982,2805,10.185,2806,12.023,2807,5.65,2817,5.346,2818,6.838,2820,5.346,2822,5.346,2823,7.275,2825,5.346,2826,7.856,2828,5.346,2829,7.856,2831,5.346,2832,7.856,2834,5.346,2835,7.745,2837,5.346,2838,7.542,2840,5.65,2841,7.448,2843,5.118,2844,5.65,2845,5.118,2846,8.401,2847,4.543,2848,2.95,2849,3.747,2850,3.663,2851,4.937,2852,7.255,2853,7.255,2854,7.255,2855,7.255,2856,7.255,2857,7.255,2858,7.255,2859,8.008,2860,7.255,2861,7.255,2862,7.255,2863,7.255,2864,7.255,2865,7.255,2866,7.255,2867,7.255,2868,7.255,2869,7.255,2870,6.112,2871,6.112,2872,6.112,2873,6.112,2874,6.112,2875,6.112,2876,6.112,2877,6.112,2878,6.112]],["title/classes/BoardContextResponse.html",[0,0.232,2879,5.947]],["body/classes/BoardContextResponse.html",[0,0.305,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.502,29,0.701,30,0.001,31,0.501,32,0.187,33,0.433,34,2.234,47,0.797,95,0.143,99,1.493,101,0.015,103,0.001,104,0.001,127,1.4,165,0.875,364,2.035,376,2.047,467,3.196,475,4.374,618,3.66,966,4.553,1031,2.804,2578,3.99,2879,11.486,2880,12.76,2881,8.949,2882,8.949,2883,5.857,2884,5.943,2885,5.943,2886,8.949,2887,9.675,2888,5.424,2889,5.533,2890,8.949]],["title/controllers/BoardController.html",[481,2.611,2720,5.947]],["body/controllers/BoardController.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.068,8,0.836,10,3.399,27,0.42,29,0.798,30,0.001,31,0.571,32,0.191,33,0.493,35,1.233,36,2.593,95,0.148,100,1.51,101,0.008,103,0,104,0,112,2.842,187,0.652,199,2.616,206,2.295,215,1.44,216,0.834,217,1.4,221,2.358,227,0.873,234,1.367,264,4.282,364,1.856,376,1.032,447,1.87,481,1.732,483,2.151,491,6.397,498,6.483,502,7.504,506,7.915,509,8.791,513,6.773,543,3.522,552,2.91,553,6.518,554,8.422,555,2.345,556,2.399,558,2.164,561,2.418,563,6.107,564,4.89,883,2.936,1016,3.776,1392,7.258,1397,2.318,2627,4.519,2644,5.765,2655,4.48,2715,7.053,2720,6.054,2727,2.164,2783,6.445,2879,6.054,2891,4.511,2892,4.17,2893,8.422,2894,6.922,2895,8.422,2896,8.422,2897,8.422,2898,4.511,2899,11.374,2900,7.575,2901,10.19,2902,5.591,2903,4.511,2904,7.763,2905,7.763,2906,4.511,2907,4.511,2908,7.915,2909,4.511,2910,5.591,2911,4.511,2912,4.511,2913,4.511,2914,4.511,2915,4.511,2916,4.511,2917,4.511,2918,6.922,2919,4.511,2920,4.511,2921,4.511,2922,4.511,2923,6.803,2924,7.631,2925,4.149,2926,4.511,2927,4.511,2928,3.279,2929,2.594,2930,2.418,2931,5.797,2932,5.591,2933,4.511,2934,4.511,2935,3.945,2936,3.777,2937,3.644,2938,4.511,2939,4.511,2940,4.511,2941,10.19,2942,4.511,2943,4.511,2944,4.511,2945,4.511,2946,4.511,2947,5.591,2948,5.591,2949,4.511,2950,4.511,2951,3.945,2952,4.511,2953,4.511,2954,4.511,2955,4.511,2956,4.511,2957,4.17]],["title/injectables/BoardCopyService.html",[105,0.91,2958,5.694]],["body/injectables/BoardCopyService.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,27,0.459,29,0.871,30,0.001,31,0.623,32,0.161,33,0.538,34,0.627,35,1.305,36,2.499,39,0.992,55,0.794,95,0.146,99,0.615,101,0.006,103,0,104,0,105,0.79,107,0.888,111,2.68,112,2.726,127,0.74,145,0.933,185,2.295,187,0.533,188,4.568,216,1.826,217,1.642,221,1.711,227,1.283,234,1.502,380,0.783,450,1.514,461,3.123,564,4.077,731,2.334,738,1.916,784,1.992,806,3.01,846,2.624,1041,4.134,1358,2.346,1369,2.008,1370,2.448,1397,1.978,1467,1.176,1680,7.524,1858,1.93,2356,2.426,2357,3.851,2384,3.54,2401,2.679,2627,4.359,2630,5.312,2647,4.884,2649,4.126,2651,8.124,2654,4.5,2656,7.387,2658,4.771,2660,4.771,2667,3.086,2702,3.81,2735,2.808,2823,3.58,2887,2.624,2958,4.947,2959,11.408,2960,2.886,2961,5.907,2962,7.392,2963,6.833,2964,4.947,2965,4.771,2966,5.907,2967,5.907,2968,5.907,2969,2.487,2970,7.711,2971,8.123,2972,8.687,2973,8.687,2974,7.54,2975,3.685,2976,5.907,2977,8.455,2978,3.685,2979,3.685,2980,9.964,2981,3.407,2982,7.392,2983,3.685,2984,3.685,2985,5.907,2986,3.685,2987,3.407,2988,5.907,2989,3.685,2990,3.223,2991,5.907,2992,7.98,2993,3.685,2994,9.254,2995,5.907,2996,3.685,2997,4.947,2998,5.907,2999,3.685,3000,5.46,3001,5.632,3002,3.685,3003,3.685,3004,3.407,3005,3.685,3006,3.086,3007,2.886,3008,2.74,3009,2.234,3010,2.061,3011,3.685,3012,3.685,3013,2.977,3014,2.977,3015,2.74,3016,5.166,3017,3.685,3018,3.685,3019,3.685,3020,7.392,3021,3.685,3022,3.223,3023,2.886,3024,3.086,3025,3.685,3026,3.685,3027,9.589,3028,3.685,3029,3.685,3030,3.685,3031,3.086,3032,3.685,3033,5.46,3034,3.685,3035,3.685,3036,6.465,3037,3.086,3038,3.685,3039,3.685,3040,7.392,3041,3.086,3042,3.685,3043,3.685,3044,3.086,3045,3.685,3046,3.685,3047,4.206,3048,3.685,3049,4.294,3050,4.5,3051,3.685,3052,3.685,3053,3.685,3054,3.685,3055,3.223,3056,3.223,3057,3.407,3058,3.223,3059,3.086,3060,3.407,3061,3.685,3062,3.407,3063,3.223,3064,3.407,3065,3.685,3066,2.886,3067,3.685,3068,3.685,3069,3.685,3070,3.685,3071,3.685,3072,3.685,3073,3.685,3074,3.685,3075,3.685,3076,5.907,3077,3.685,3078,5.907,3079,5.907,3080,3.685,3081,3.685,3082,3.685,3083,3.685,3084,3.685,3085,3.685,3086,3.685,3087,3.685]],["title/classes/BoardDoAuthorizable.html",[0,0.232,3088,4.842]],["body/classes/BoardDoAuthorizable.html",[0,0.256,2,0.839,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,26,2.379,27,0.513,29,0.59,30,0.001,31,0.422,32,0.136,33,0.364,34,1.28,35,1.21,39,2.027,47,0.713,95,0.128,101,0.021,102,3.778,103,0.001,104,0.001,116,3.113,145,3.027,148,2.317,165,0.783,227,1.036,334,1.074,359,2.625,404,2.022,521,6.081,595,3.347,596,3.049,661,4.201,692,3.734,728,2.879,843,3.322,851,3.59,852,3.59,884,4.71,1031,3.132,1787,5.806,1790,5.254,1793,7.241,1855,4.73,1873,4.671,1942,5.166,2545,4.004,2758,5.001,2776,5.001,2805,9.362,3088,7.118,3089,6.584,3090,5.171,3091,9.657,3092,6.959,3093,7.528,3094,7.528,3095,7.528,3096,7.528,3097,10.61,3098,7.528,3099,8.074,3100,8.074,3101,8.742,3102,6.081,3103,6.584,3104,3.41,3105,7.143,3106,5.641,3107,6.584,3108,6.584,3109,8.55,3110,3.752,3111,6.304,3112,6.081,3113,8.742,3114,6.584]],["title/interfaces/BoardDoAuthorizableProps.html",[334,0.731,3111,5.694]],["body/interfaces/BoardDoAuthorizableProps.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.122,26,2.696,30,0.001,32,0.158,33,0.505,34,2.088,39,2.169,47,0.745,95,0.134,101,0.021,102,4.042,103,0.001,104,0.001,145,2.646,165,0.818,227,1.084,334,1.123,336,1.928,359,2.808,404,2.09,521,6.506,728,3.08,843,3.554,851,3.841,852,3.841,1031,3.274,1787,6.737,1790,4.412,1855,5.061,1873,4.998,1942,5.528,2545,4.284,2805,6.307,3088,5.736,3089,7.045,3090,5.501,3091,10.273,3097,10.644,3099,8.441,3100,8.441,3101,9.139,3102,6.506,3103,7.045,3104,3.649,3105,7.383,3106,5.897,3107,7.045,3108,7.045,3109,9.69,3110,4.015,3111,8.751,3112,6.506,3113,9.139,3114,7.045]],["title/injectables/BoardDoAuthorizableService.html",[105,0.91,3115,4.943]],["body/injectables/BoardDoAuthorizableService.html",[0,0.208,3,0.014,4,0.014,5,0.007,7,0.092,8,1.045,12,3.963,26,2.319,27,0.451,29,0.857,30,0.001,31,0.613,32,0.149,33,0.529,34,1.861,35,1.217,36,2.346,39,2.707,40,4.177,95,0.148,99,1.018,101,0.01,103,0,104,0,105,1.158,107,1.471,111,2.316,112,2.644,127,1.084,187,0.882,188,4.431,214,1.924,216,1.6,217,1.692,221,2.674,227,1.279,234,1.776,305,1.738,450,2.507,738,5.227,770,3.618,806,2.484,839,2.91,851,4.795,852,4.795,905,3.603,1868,6.99,1930,7.478,1953,4.263,2531,3.298,2557,5.348,2725,2.765,2823,6.094,2887,4.346,3066,4.779,3088,8.543,3090,5.336,3097,8.567,3099,4.929,3109,7.661,3110,5.012,3115,6.29,3116,8.801,3117,5.641,3118,8.654,3119,8.654,3120,4.536,3121,8.62,3122,6.102,3123,6.102,3124,8.654,3125,6.102,3126,6.776,3127,8.654,3128,6.102,3129,4.929,3130,5.641,3131,6.102,3132,7.569,3133,6.102,3134,10.055,3135,6.102,3136,6.102,3137,8.654,3138,6.102,3139,6.102,3140,6.102,3141,6.102,3142,6.102,3143,3.196,3144,4.779,3145,6.102,3146,6.68,3147,6.488,3148,8.654,3149,6.102,3150,6.102,3151,6.102,3152,6.102,3153,6.102,3154,5.337]],["title/interfaces/BoardDoBuilder.html",[334,0.731,3155,4.075]],["body/interfaces/BoardDoBuilder.html",[3,0.015,4,0.015,5,0.011,7,0.095,8,1.068,27,0.532,29,1.012,30,0.001,31,0.723,32,0.189,33,0.624,35,1.563,95,0.168,101,0.01,103,0.001,104,0.001,200,1.96,209,2.08,334,0.676,336,1.506,1790,2.657,2280,3.585,2553,4.981,2627,2.645,2655,6.215,2818,6.318,2823,6.197,2826,6.692,2829,6.692,2832,6.692,2835,6.598,2838,6.424,2841,6.345,2847,4.678,2848,3.038,2849,3.825,2850,3.772,3143,6.764,3155,5.3,3156,13.087,3157,6.293,3158,8.175,3159,8.175,3160,8.175,3161,8.175,3162,8.175,3163,8.175,3164,8.175,3165,8.175,3166,8.175,3167,8.175,3168,8.685,3169,6.293,3170,8.175,3171,8.959,3172,6.293,3173,8.175,3174,8.45,3175,6.293,3176,8.175,3177,8.685,3178,6.293,3179,8.175,3180,8.685,3181,6.293,3182,8.175,3183,8.685,3184,6.293,3185,8.175,3186,8.685,3187,6.293,3188,8.175,3189,8.685,3190,6.293,3191,8.175,3192,8.685,3193,6.293,3194,11.939,3195,3.905]],["title/classes/BoardDoBuilderImpl.html",[0,0.232,3196,5.947]],["body/classes/BoardDoBuilderImpl.html",[0,0.12,2,0.394,3,0.008,4,0.008,5,0.004,7,0.053,8,0.69,27,0.511,29,0.98,30,0.001,31,0.686,32,0.179,33,0.592,34,1.865,35,1.464,39,0.951,95,0.092,99,0.953,101,0.006,103,0,104,0,111,1.441,116,4.14,127,0.443,144,0.972,148,1.757,150,1.223,165,0.447,187,0.511,199,1.335,214,1.8,217,1.668,227,1.217,234,1.869,247,1.384,305,1.627,319,1.056,591,4.765,592,4.966,692,4.206,1041,4.615,1180,2.458,1397,2.763,2553,5.001,2557,1.727,2655,5.154,2686,2.569,2757,8.165,2777,5.279,2818,5.52,2823,5.872,2826,5.928,2829,5.401,2832,5.401,2835,5.324,2838,5.185,2841,5.12,2848,1.706,3143,7.21,3155,4.307,3158,5.279,3159,5.279,3160,5.279,3161,5.279,3162,5.279,3163,5.279,3164,5.279,3165,5.279,3166,5.279,3167,5.279,3168,6.462,3170,5.279,3171,6.665,3173,5.279,3174,6.287,3176,5.279,3177,6.462,3179,5.279,3180,6.462,3182,5.279,3183,6.462,3185,5.279,3186,6.462,3188,5.279,3189,6.462,3191,5.279,3192,6.462,3196,4.994,3197,10.941,3198,11.564,3199,3.533,3200,6.643,3201,5.71,3202,5.71,3203,5.71,3204,5.71,3205,5.71,3206,5.71,3207,4.994,3208,3.533,3209,5.71,3210,3.533,3211,3.533,3212,3.533,3213,5.71,3214,3.533,3215,3.533,3216,3.533,3217,3.533,3218,3.533,3219,3.533,3220,3.533,3221,5.71,3222,6.721,3223,3.533,3224,5.71,3225,3.533,3226,5.71,3227,3.533,3228,2.249,3229,3.533,3230,3.533,3231,3.533,3232,8.252,3233,3.266,3234,4.245,3235,8.252,3236,10.134,3237,8.252,3238,10.962,3239,10.962,3240,3.533,3241,3.091,3242,4.35,3243,3.091,3244,3.091,3245,3.091,3246,3.091,3247,3.091,3248,2.28,3249,3.533,3250,9.058,3251,2.095,3252,3.533,3253,2.095,3254,3.533,3255,3.533,3256,2.516,3257,3.533,3258,3.533,3259,1.824,3260,3.533,3261,3.091,3262,1.811,3263,3.533,3264,2.142,3265,3.533,3266,3.533,3267,1.976,3268,3.533,3269,3.533,3270,3.533,3271,3.533,3272,5.71,3273,3.533,3274,3.533,3275,3.533,3276,3.533,3277,3.533,3278,3.533,3279,3.533,3280,3.919,3281,2.347,3282,2.22,3283,3.533,3284,4.782,3285,3.533,3286,3.533,3287,5.71,3288,3.533,3289,3.533,3290,3.533,3291,3.533,3292,3.533]],["title/injectables/BoardDoCopyService.html",[105,0.91,3293,5.694]],["body/injectables/BoardDoCopyService.html",[0,0.299,3,0.021,4,0.021,5,0.013,7,0.133,8,1.335,27,0.363,29,0.689,30,0.001,31,0.492,32,0.15,33,0.425,35,1.064,36,2.37,95,0.168,99,1.467,101,0.018,103,0.001,104,0.001,105,1.478,107,2.12,112,2.664,116,3.764,185,3.417,187,1.272,192,2.62,217,1.438,221,2.035,227,0.912,234,1.428,1184,4.874,1750,4.902,2524,7.44,2557,5.402,2762,6.143,2960,6.885,2992,5.673,3009,5.329,3010,4.918,3116,8.42,3293,9.255,3294,10.216,3295,11.051,3296,12.679,3297,8.793,3298,7.69,3299,7.69,3300,8.793,3301,8.654,3302,7.363,3303,6.261,3304,7.69,3305,8.793,3306,8.793]],["title/injectables/BoardDoRepo.html",[105,0.91,3121,4.751]],["body/injectables/BoardDoRepo.html",[0,0.152,3,0.011,4,0.011,5,0.005,7,0.067,8,0.829,10,2.77,12,3.143,18,3.467,26,2.808,27,0.497,29,0.961,30,0.001,31,0.675,32,0.171,33,0.583,34,1.958,35,1.429,36,2.823,40,3.313,49,1.755,55,2.306,59,2.605,95,0.148,96,1.877,97,1.929,99,0.744,101,0.007,103,0,104,0,105,0.918,107,1.075,111,1.677,112,3.017,127,0.86,138,2.998,145,1.129,187,0.645,216,1.547,217,1.713,221,2.918,227,1.224,234,1.738,305,1.271,398,1.314,595,1.494,692,2.564,770,6.348,806,1.816,1772,5.374,1790,5.18,1865,2.032,2355,5.401,2367,4.492,2438,6.002,2557,6.344,2627,2.884,2644,2.391,2757,3.011,3121,4.795,3126,3.493,3143,4.919,3174,3.399,3196,3.901,3197,10.73,3198,4.124,3200,4.124,3207,3.901,3280,3.061,3299,6.002,3307,4.124,3308,8.364,3309,5.747,3310,6.344,3311,6.863,3312,6.863,3313,6.863,3314,3.116,3315,9.009,3316,8.364,3317,7.865,3318,4.461,3319,4.159,3320,4.461,3321,4.461,3322,10.642,3323,4.461,3324,8.364,3325,4.461,3326,6.002,3327,4.461,3328,6.344,3329,6.827,3330,4.461,3331,6.863,3332,4.461,3333,4.461,3334,6.863,3335,4.461,3336,6.863,3337,4.461,3338,6.002,3339,4.713,3340,4.461,3341,3.603,3342,4.461,3343,4.124,3344,4.124,3345,3.901,3346,4.461,3347,4.461,3348,4.461,3349,4.461,3350,4.461,3351,3.901,3352,4.461,3353,5.74,3354,6.344,3355,4.461,3356,4.461,3357,4.461,3358,4.461,3359,4.461,3360,6.344,3361,4.461,3362,4.461,3363,4.461,3364,2.518,3365,4.461,3366,3.603,3367,4.461,3368,3.901,3369,4.461,3370,4.461,3371,4.461,3372,4.461,3373,4.461,3374,4.461,3375,4.461,3376,4.461,3377,4.461,3378,4.461,3379,4.461,3380,4.461,3381,5.544,3382,4.461]],["title/injectables/BoardDoRule.html",[105,0.91,1886,5.694]],["body/injectables/BoardDoRule.html",[0,0.246,3,0.017,4,0.017,5,0.009,7,0.109,8,1.174,27,0.453,29,0.861,30,0.001,31,0.615,32,0.16,33,0.531,35,1.176,39,2.617,95,0.158,101,0.012,103,0.001,104,0.001,105,1.3,107,1.74,116,3.936,127,0.904,187,1.044,199,4.152,214,2.275,215,2.304,216,1.335,217,1.43,227,1.339,347,2.377,369,2.157,371,3.383,461,3.043,738,3.752,806,2.938,1795,6.353,1798,4.073,1813,5.14,1814,4.953,1823,7.842,1844,4.326,1861,7.124,1886,8.139,2002,6.271,2006,6.03,2013,4.795,3088,9.89,3099,5.83,3383,11.754,3384,7.217,3385,6.456,3386,4.871,3387,7.217,3388,7.217,3389,6.36,3390,7.217,3391,4.724,3392,4.871,3393,6.559,3394,5.365,3395,9.718,3396,7.217,3397,8.5,3398,7.217,3399,9.718,3400,9.718,3401,7.217]],["title/injectables/BoardDoService.html",[105,0.91,3402,5.055]],["body/injectables/BoardDoService.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,8,1.251,27,0.475,29,0.902,30,0.001,31,0.645,32,0.157,33,0.557,35,1.253,36,2.618,55,2.482,59,2.474,95,0.148,99,1.326,101,0.013,103,0.001,104,0.001,105,1.385,107,1.915,112,2.861,127,0.995,187,1.149,215,2.535,216,1.469,217,1.348,221,3.005,1790,3.354,2531,4.293,2557,6.686,2769,4.991,3116,9.302,3120,5.905,3121,9.071,3339,5.782,3402,7.698,3403,7.943,3404,10.355,3405,7.107,3406,7.943,3407,10.355,3408,7.943,3409,10.355,3410,12.209,3411,9.862,3412,7.943,3413,7.943,3414,7.943,3415,6.652,3416,7.943,3417,7.943,3418,7.943,3419,11.521,3420,7.943,3421,7.943,3422,7.943,3423,7.943,3424,7.943]],["title/entities/BoardElement.html",[380,1.445,2651,4.842]],["body/entities/BoardElement.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,9,4.879,26,2.195,27,0.427,30,0.001,31,0.684,32,0.166,34,1.761,95,0.167,96,2.173,101,0.02,103,0.001,104,0.001,165,0.811,208,2.967,364,1.447,369,1.763,380,2.2,381,2.642,398,2.34,399,4.108,400,3.505,404,1.431,405,2.117,406,2.583,1031,3.826,1843,5.787,1865,4.717,2627,3.338,2628,9.022,2647,5.465,2648,5.55,2649,5.443,2650,4.929,2651,7.374,2652,11.286,2655,4.225,2656,7.374,2657,6.947,2659,4.851,2702,5.958,2823,6.276,3001,10.074,3425,7.943,3426,7.943,3427,7.107,3428,7.943,3429,6.591,3430,7.235,3431,10.355,3432,5.656,3433,5.55,3434,5.905]],["title/classes/BoardElementResponse.html",[0,0.232,3435,5.694]],["body/classes/BoardElementResponse.html",[0,0.27,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,27,0.475,29,0.622,30,0.001,31,0.445,32,0.186,33,0.384,95,0.163,101,0.013,103,0.001,104,0.001,127,1.297,165,0.811,208,3.868,364,1.886,376,1.817,379,2.347,467,3.023,966,4.041,1013,4.743,1031,3.826,1184,5.74,2303,5.495,2439,6.076,2537,6.777,2553,4.414,2578,3.542,2627,5.557,2649,4.617,2655,6.735,2659,4.851,2731,9.649,2732,9.56,2733,9.56,3435,10.604,3436,5.55,3437,7.943,3438,9.649,3439,9.649,3440,7.943,3441,10.604,3442,10.355,3443,7.343,3444,7.943,3445,7.343,3446,7.943,3447,7.943,3448,4.87]],["title/interfaces/BoardExternalReference.html",[334,0.731,3329,4.943]],["body/interfaces/BoardExternalReference.html",[3,0.024,4,0.024,5,0.012,7,0.15,26,2.805,30,0.001,32,0.187,34,2.251,95,0.128,101,0.02,103,0.001,104,0.001,165,0.933,188,4.402,200,3.097,334,1.068,336,2.379,1031,3.116,2545,5.288,2805,7.786,2887,9.422,3329,8.663,3449,8.696]],["title/classes/BoardLessonResponse.html",[0,0.232,3439,5.694]],["body/classes/BoardLessonResponse.html",[0,0.313,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,27,0.546,29,0.521,30,0.001,31,0.691,32,0.18,33,0.611,34,2.029,47,0.88,55,2.657,83,3.477,95,0.135,101,0.011,103,0.001,104,0.001,127,1.152,165,0.72,347,1.86,364,2.382,374,2.125,375,3.503,376,1.523,467,3.563,469,2.923,471,4.271,591,5.184,592,5.403,618,2.722,620,4.295,622,4.295,966,3.387,2095,2.641,2655,7.112,2732,10.47,2733,10.47,2742,4.839,2745,6.707,3439,9.989,3450,6.657,3451,7.362,3452,7.494,3453,11.026,3454,11.026,3455,9.989,3456,6.657,3457,5.823,3458,6.657,3459,6.657,3460,6.657,3461,6.657,3462,6.657,3463,9.197,3464,6.657,3465,6.657,3466,6.154,3467,6.657,3468,6.657,3469,8.093,3470,4.741,3471,4.741,3472,6.657,3473,6.657,3474,6.657,3475,7.659]],["title/classes/BoardManagementConsole.html",[0,0.232,3476,5.947]],["body/classes/BoardManagementConsole.html",[0,0.27,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,8,1.251,27,0.427,29,0.811,30,0.001,31,0.58,32,0.141,33,0.501,35,0.962,36,2.22,47,0.738,49,3.125,95,0.157,101,0.013,103,0.001,104,0.001,111,1.592,112,2.539,127,0.995,144,2.185,215,2.535,217,1.034,221,1.838,227,0.824,234,1.29,319,2.374,364,1.447,379,2.611,734,4.525,783,4.814,836,4.614,883,5.179,2439,4.661,2627,5.635,2633,5.857,2655,5.508,3264,4.814,3476,9.057,3477,11.521,3478,6.947,3479,9.572,3480,6.652,3481,8.111,3482,11.074,3483,7.943,3484,8.365,3485,9.572,3486,6.416,3487,10.355,3488,7.943,3489,5.55,3490,8.379,3491,7.671,3492,4.71,3493,7.343,3494,6.22,3495,5.199,3496,7.943,3497,7.943,3498,6.652,3499,10.678,3500,7.943,3501,7.943,3502,5.905]],["title/injectables/BoardManagementUc.html",[105,0.91,3482,5.694]],["body/injectables/BoardManagementUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.924,26,2.483,27,0.496,29,0.963,30,0.001,31,0.674,32,0.17,33,0.582,34,0.876,35,1.418,36,2.166,55,2.95,95,0.139,96,1.409,97,2.228,99,0.86,101,0.009,103,0,104,0,105,1.023,107,1.242,111,2.712,112,2.493,127,0.645,144,1.417,145,1.304,148,1.585,187,0.745,188,2.826,199,2.892,215,1.644,217,1.524,221,2.618,227,1.275,319,1.539,369,1.143,371,1.42,687,2.195,692,2.858,784,2.784,905,4.207,1018,5.89,1041,2.881,1369,2.807,1370,3.422,1397,2.562,1583,3.371,2355,5.811,2627,3.215,2633,5.427,2655,4.07,2767,4.818,2818,4.359,2848,3.693,2887,3.668,3066,4.033,3143,6.967,3234,3.829,3242,3.924,3248,3.323,3259,3.949,3319,5.533,3339,6.448,3470,6.5,3479,7.073,3480,4.313,3481,6.712,3482,6.408,3484,6.18,3485,7.073,3489,3.599,3503,12.293,3504,4.761,3505,7.651,3506,7.651,3507,7.651,3508,7.651,3509,7.651,3510,7.073,3511,5.151,3512,5.151,3513,7.651,3514,5.151,3515,7.651,3516,5.151,3517,7.651,3518,5.151,3519,7.651,3520,5.151,3521,7.651,3522,9.128,3523,5.151,3524,4.505,3525,7.651,3526,8.162,3527,5.151,3528,5.151,3529,5.151,3530,5.151,3531,5.151,3532,4.761,3533,5.151,3534,5.151,3535,5.151,3536,5.151,3537,5.151,3538,5.151,3539,5.151,3540,5.151,3541,4.161,3542,5.151,3543,5.151,3544,5.151,3545,4.761,3546,5.151,3547,5.151,3548,5.151,3549,4.761,3550,9.128,3551,5.151,3552,5.151,3553,5.151,3554,5.151,3555,5.151,3556,4.505,3557,5.151,3558,5.151,3559,5.151,3560,5.151,3561,5.151]],["title/modules/BoardModule.html",[425,1.812,1956,5.181]],["body/modules/BoardModule.html",[0,0.195,3,0.014,4,0.014,5,0.007,30,0.001,95,0.17,99,0.958,101,0.01,103,0,104,0,187,0.83,425,2.834,427,2.073,428,2.23,429,2.296,430,2.286,431,2.276,432,3.575,433,3.672,438,5.506,442,3.313,443,2.248,444,2.194,449,3.285,450,2.357,461,1.312,766,4.064,774,3.938,1467,1.831,1734,4.265,1852,2.422,1930,7.123,1956,10.987,2440,3.268,2524,3.366,2531,3.101,2537,3.755,2627,2.411,2973,10.995,3006,4.805,3115,9.544,3121,8.211,3293,9.842,3294,5.304,3315,9.493,3317,9.842,3344,5.304,3402,8.736,3489,4.008,3562,5.737,3563,5.737,3564,5.737,3565,5.737,3566,9.203,3567,8.736,3568,7.384,3569,10.995,3570,10.605,3571,11.483,3572,9.76,3573,10.605,3574,9.493,3575,9.493,3576,9.842,3577,5.737,3578,2.961,3579,2.823,3580,2.336,3581,5.737,3582,5.737,3583,4.493,3584,3.872,3585,5.737,3586,4.493]],["title/entities/BoardNode.html",[380,1.445,3143,3.561]],["body/entities/BoardNode.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.168,9,4.176,26,2.48,27,0.482,30,0.001,32,0.178,33,0.429,34,1.889,47,0.888,55,2.52,95,0.16,96,1.727,101,0.015,103,0.001,104,0.001,145,2.244,165,0.694,167,3.261,187,0.913,208,3.311,217,1.333,227,1.213,234,1.025,240,3.711,247,4.013,305,1.798,334,0.678,364,2.131,369,1.967,370,3.659,371,3.345,380,1.883,381,2.1,386,5.835,398,1.86,399,3.516,400,2.786,402,2.617,404,1.138,405,1.682,406,2.053,576,5.781,618,3.624,619,4.913,627,1.937,883,2.678,905,3.69,1031,2.777,1353,3.047,1397,3.719,1790,2.665,2557,4.332,2627,2.653,2747,3.258,2767,5.862,3132,5.521,3143,5.365,3155,5.312,3222,6.81,3280,6.083,3339,4.448,3353,4.333,3432,4.495,3587,5.836,3588,7.614,3589,6.313,3590,5.836,3591,6.313,3592,6.313,3593,6.313,3594,6.313,3595,6.313,3596,4.81,3597,8.193,3598,5.434,3599,9.468,3600,8.193,3601,5.521,3602,4.943,3603,5.836,3604,5.836,3605,5.836,3606,5.836,3607,4.41,3608,4.41,3609,4.018,3610,5.007,3611,5.836,3612,5.836,3613,7.752,3614,5.836,3615,5.836,3616,5.836,3617,5.836,3618,5.836,3619,3.917,3620,5.836,3621,5.836]],["title/interfaces/BoardNodeProps.html",[334,0.731,3598,4.169]],["body/interfaces/BoardNodeProps.html",[0,0.222,3,0.015,4,0.015,5,0.008,7,0.17,9,4.27,26,2.665,30,0.001,32,0.171,33,0.62,34,2.138,47,0.896,55,2.55,95,0.161,96,1.783,101,0.015,103,0.001,104,0.001,145,2.295,165,0.71,167,3.335,187,0.942,208,3.386,217,1.356,227,1.227,234,1.058,240,3.755,247,4.082,305,1.857,334,0.7,336,1.56,369,1.446,370,3.71,371,2.873,380,1.926,398,1.92,399,3.595,400,2.876,402,2.701,404,1.174,405,1.737,406,2.12,576,3.678,618,3.706,619,5.024,627,2,883,2.765,905,3.773,1031,2.84,1353,3.146,1397,3.963,1790,2.752,2557,4.43,2627,2.739,2747,3.363,2767,6.247,3132,5.7,3143,5.899,3155,5.432,3222,6.388,3280,6.22,3339,5.94,3353,4.473,3432,4.641,3587,6.024,3588,4.845,3596,4.965,3597,8.377,3598,6.388,3599,9.631,3600,8.377,3601,5.7,3602,5.103,3603,6.024,3604,6.024,3605,6.024,3606,6.024,3607,4.553,3608,4.553,3609,4.148,3610,5.093,3611,6.024,3612,6.024,3613,7.926,3614,6.024,3615,6.024,3616,6.024,3617,6.024,3618,6.024,3619,4.044,3620,6.024,3621,6.024]],["title/injectables/BoardNodeRepo.html",[105,0.91,3315,5.493]],["body/injectables/BoardNodeRepo.html",[0,0.217,3,0.015,4,0.015,5,0.008,7,0.096,8,1.078,12,4.086,26,2.364,27,0.46,29,0.874,30,0.001,31,0.625,32,0.152,33,0.539,34,1.751,35,1.246,36,2.609,40,4.307,55,2.217,59,1.985,95,0.132,96,1.743,97,2.756,99,1.064,101,0.011,103,0.001,104,0.001,105,1.193,107,1.536,112,2.854,127,0.798,145,1.614,187,0.922,215,2.034,216,1.178,217,1.686,221,2.383,227,1.295,247,2.497,380,2.494,574,2.798,576,5.035,957,3.533,958,7.472,1166,3.057,1180,2.743,1750,3.957,1852,2.691,1855,4.004,2355,6.414,3143,6.784,3197,10.268,3207,10.268,3280,4.374,3314,4.452,3315,7.207,3319,5.407,3322,10.852,3354,8.248,3364,5.81,3588,4.737,3622,6.373,3623,8.922,3624,8.922,3625,6.373,3626,6.373,3627,8.922,3628,6.373,3629,8.922,3630,6.373,3631,6.373,3632,5.891,3633,6.373,3634,8.922,3635,8.248,3636,10.295,3637,5.148,3638,8.922,3639,8.922,3640,6.373,3641,6.373,3642,5.574,3643,6.373,3644,6.373,3645,8.922,3646,6.373,3647,6.373,3648,6.373,3649,4.452,3650,6.373,3651,6.373,3652,6.373,3653,6.373,3654,5.337,3655,6.373,3656,6.373,3657,6.373,3658,6.373,3659,6.373]],["title/injectables/BoardRepo.html",[105,0.91,2970,5.055]],["body/injectables/BoardRepo.html",[0,0.195,3,0.014,4,0.014,5,0.007,7,0.087,8,0.999,10,3.338,12,3.788,18,4.179,26,2.808,27,0.521,29,0.971,30,0.001,31,0.694,32,0.169,33,0.6,34,1.407,35,1.501,36,2.75,40,3.993,95,0.125,99,0.956,101,0.01,103,0,104,0,105,1.106,107,1.381,111,2.532,112,3.023,187,0.829,188,3.926,217,1.613,221,3.038,227,1.218,234,0.93,380,1.217,381,2.751,404,1.491,596,3.243,692,4.852,806,3.952,877,7.106,883,3.509,884,3.898,885,4.905,908,3.513,909,3.555,910,3.513,911,3.555,913,3.513,914,3.555,915,3.176,1041,3.204,1345,2.273,2627,5.74,2630,3.6,2633,5.408,2654,6.302,2658,6.682,2660,6.682,2702,4.374,2970,6.149,3660,5.729,3661,8.272,3662,8.272,3663,8.272,3664,8.272,3665,8.272,3666,5.729,3667,8.272,3668,5.729,3669,5.729,3670,8.272,3671,5.729,3672,8.272,3673,5.729,3674,5.729,3675,3.932,3676,5.729,3677,8.272,3678,5.729,3679,5.729,3680,5.011,3681,5.729,3682,5.729,3683,5.729,3684,5.729,3685,5.729,3686,9.708,3687,8.974,3688,5.729,3689,5.729,3690,5.729,3691,5.729,3692,5.729]],["title/classes/BoardResponse.html",[0,0.232,2931,5.694]],["body/classes/BoardResponse.html",[0,0.28,2,0.918,3,0.019,4,0.019,5,0.01,7,0.124,27,0.528,29,0.645,30,0.001,31,0.461,32,0.178,33,0.567,34,2.178,47,0.883,95,0.159,101,0.014,103,0.001,104,0.001,127,1.328,145,2.085,165,0.83,364,2.254,376,1.884,467,3.44,469,3.616,475,4.026,618,3.368,966,4.19,1011,4.161,1397,4.288,2742,5.986,2745,6.747,2747,4.25,2883,5.39,2884,5.638,2885,5.638,2931,10.725,2932,9.998,3234,9.52,3693,8.235,3694,7.593,3695,8.235,3696,8.235,3697,8.235,3698,6.809,3699,8.235,3700,8.235,3701,8.235,3702,5.471,3703,6.897,3704,5.471]],["title/classes/BoardResponseMapper.html",[0,0.232,2935,5.947]],["body/classes/BoardResponseMapper.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,27,0.355,29,0.674,30,0.001,31,0.482,32,0.148,33,0.416,34,1.464,35,1.042,95,0.162,99,1.436,100,2.881,101,0.014,103,0.001,104,0.001,187,1.244,217,1.12,227,1.13,234,1.943,305,2.451,591,3.74,627,3.672,731,3.4,806,3.503,974,5.102,975,6.043,1397,2.881,1410,4.856,1750,4.835,2384,5.157,2627,3.616,2655,6.691,2769,5.407,2823,7.625,2931,10.536,2935,9.535,2936,7.206,2957,7.955,3047,6.128,3234,6.397,3549,7.955,3694,5.102,3698,6.332,3705,10.901,3706,10.078,3707,7.206,3708,8.104,3709,5.717,3710,7.526,3711,8.605,3712,8.605,3713,8.605,3714,6.951,3715,6.128,3716,8.605,3717,8.605]],["title/controllers/BoardSubmissionController.html",[481,2.611,2724,5.947]],["body/controllers/BoardSubmissionController.html",[0,0.209,3,0.015,4,0.015,5,0.007,7,0.093,8,1.051,27,0.359,29,0.681,30,0.001,31,0.487,32,0.184,33,0.421,35,1.053,36,1.866,95,0.167,100,2.059,101,0.01,103,0,104,0,111,2.024,112,2.651,127,0.77,187,0.889,206,4.427,216,1.867,217,1.314,221,2.014,227,0.638,264,4.243,364,1.585,376,1.407,447,2.549,481,2.361,483,2.932,491,6.083,498,5.971,502,6.812,506,7.185,509,6.324,513,6.248,538,3.92,543,4.427,552,3.968,553,6.119,554,7.936,555,3.197,556,3.271,558,2.95,561,3.297,563,5.215,564,4.533,1016,3.055,1019,5.053,1392,6.815,2627,2.584,2644,4.664,2716,7.906,2717,8.156,2718,8.456,2724,7.61,2727,2.95,2728,5.378,2729,5.684,2730,5.684,2783,6.052,2849,5.01,2850,3.685,2900,6.468,2904,6.629,2905,4.685,2908,7.872,2910,4.967,2923,8.156,2925,5.215,2928,4.47,2930,3.297,2937,4.967,2947,4.967,2948,4.967,3090,3.763,3195,3.816,3282,5.467,3339,4.366,3718,10.097,3719,6.149,3720,4.91,3721,8.456,3722,9.334,3723,6.149,3724,9.602,3725,6.149,3726,6.149,3727,6.149,3728,6.149,3729,6.149,3730,9.602,3731,9.602,3732,6.149,3733,6.149,3734,6.149,3735,7.286,3736,6.149,3737,6.149,3738,5.15,3739,6.149,3740,6.149,3741,5.378,3742,6.149,3743,5.105,3744,6.149,3745,5.684,3746,6.149,3747,6.149,3748,6.149,3749,6.149,3750,5.684]],["title/classes/BoardTaskResponse.html",[0,0.232,3438,5.694]],["body/classes/BoardTaskResponse.html",[0,0.227,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,27,0.551,29,0.521,30,0.001,31,0.691,32,0.182,33,0.647,34,2.029,47,0.944,83,3.942,95,0.135,101,0.011,103,0.001,104,0.001,127,1.152,165,0.72,364,2.411,375,4.981,376,1.523,379,2.388,467,3.473,469,2.923,564,4.373,591,5.184,592,5.403,618,2.722,620,4.295,622,4.295,966,3.387,2037,3.906,2095,2.641,2627,2.798,2649,2.968,2655,7.172,2732,10.559,2733,10.559,2742,4.839,2745,7.234,3262,5.399,3438,9.989,3451,7.362,3457,8.044,3751,6.657,3752,6.799,3753,6.538,3754,6.657,3755,6.657,3756,6.657,3757,6.657,3758,6.657,3759,6.657,3760,6.657,3761,6.657,3762,6.657,3763,8.824,3764,6.657,3765,6.657,3766,5.213]],["title/classes/BoardTaskStatusMapper.html",[0,0.232,3767,5.947]],["body/classes/BoardTaskStatusMapper.html",[0,0.33,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,8,1.419,27,0.4,29,0.76,30,0.001,31,0.543,32,0.132,33,0.469,35,1.175,95,0.151,99,1.619,100,3.932,101,0.016,103,0.001,104,0.001,217,1.263,227,1.006,234,1.575,564,3.557,627,3.875,975,6.51,982,4.837,3763,10.576,3767,10.271,3768,11.743,3769,9.703,3770,10.271,3771,8.719,3772,9.703,3773,9.703]],["title/classes/BoardTaskStatusResponse.html",[0,0.232,3763,5.694]],["body/classes/BoardTaskStatusResponse.html",[0,0.26,2,0.852,3,0.018,4,0.018,5,0.009,7,0.115,27,0.54,29,0.599,30,0.001,31,0.428,32,0.178,33,0.37,55,2.767,95,0.098,101,0.013,103,0.001,104,0.001,127,1.265,165,0.791,347,2.598,364,2.34,376,1.748,467,3.637,966,3.888,2649,5.929,2655,7.073,2732,10.413,2733,10.413,3763,10.472,3774,7.064,3775,8.44,3776,8.736,3777,8.184,3778,8.184,3779,8.905,3780,8.44,3781,7.064,3782,7.642,3783,7.642,3784,7.642,3785,7.642,3786,7.642,3787,7.642,3788,6.4,3789,7.064,3790,6.4,3791,6.173,3792,7.064,3793,7.064]],["title/classes/BoardUrlParams.html",[0,0.232,2899,5.947]],["body/classes/BoardUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2627,4.964,2899,10.332,3499,11.092,3794,9.798,3795,5.749,3796,9.798]],["title/classes/BruteForceError.html",[0,0.232,1740,5.947]],["body/classes/BruteForceError.html",[0,0.256,2,0.838,3,0.018,4,0.018,5,0.009,7,0.113,8,1.206,27,0.546,29,0.589,30,0.001,31,0.421,32,0.186,33,0.542,35,0.91,47,0.912,55,2.754,95,0.128,101,0.013,103,0.001,104,0.001,127,0.941,165,0.782,187,1.087,204,4.053,216,2.557,364,2.265,380,1.597,404,1.799,406,2.444,511,3.796,558,3.605,564,2.755,596,3.9,1013,5.471,1016,2.638,1142,5.192,1180,3.234,1216,5.111,1395,8.223,1396,6.387,1397,4,1398,7.136,1402,4.848,1403,4.165,1404,4.848,1405,4.848,1406,4.848,1407,4.848,1408,4.848,1409,4.503,1410,4.241,1416,4.721,1740,8.732,1765,11.818,3797,11.211,3798,7.514,3799,9.983,3800,9.983,3801,6.946,3802,7.514,3803,7.514]],["title/injectables/BsonConverter.html",[105,0.91,3804,5.694]],["body/injectables/BsonConverter.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.235,27,0.422,29,0.801,30,0.001,31,0.573,32,0.139,33,0.494,35,1.467,95,0.131,101,0.013,103,0.001,104,0.001,105,1.368,107,1.878,187,1.126,217,1.331,227,1.06,264,4.297,379,2.317,734,4.437,778,9.012,1345,5.124,1630,9.707,2284,12.344,3804,8.562,3805,7.79,3806,9.451,3807,9.451,3808,10.224,3809,7.79,3810,10.224,3811,11.011,3812,9.488,3813,9.487,3814,9.007,3815,11.201,3816,12.117,3817,10.224,3818,7.79,3819,10.224,3820,7.79,3821,7.79,3822,8.942,3823,7.79]],["title/classes/Builder.html",[0,0.232,2114,4.589]],["body/classes/Builder.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,8,1.396,27,0.515,29,0.74,30,0.001,31,0.529,32,0.157,33,0.457,35,1.144,101,0.016,103,0.001,104,0.001,127,1.184,165,0.905,216,2.309,227,0.98,661,5.247,667,6.165,692,5.135,2049,6.713,2114,7.801,2115,10.456,3824,9.453,3825,11.558,3826,11.558,3827,11.558,3828,9.453,3829,11.558]],["title/classes/BusinessError.html",[0,0.232,1395,4.169]],["body/classes/BusinessError.html",[0,0.34,2,0.673,3,0.014,4,0.014,5,0.007,7,0.091,8,1.037,9,4.711,27,0.507,29,0.473,30,0.001,31,0.338,32,0.184,33,0.483,35,0.731,47,0.853,55,1.85,59,2.675,95,0.14,101,0.01,103,0,104,0,127,1.076,145,1.529,165,0.673,187,0.873,204,4.34,216,2.505,217,0.786,227,0.626,234,1.623,359,2.105,364,2.096,375,3.272,376,1.381,379,2.709,404,1.548,406,1.964,467,3.018,564,3.149,661,3.61,795,3.702,806,2.458,966,3.072,1013,4.987,1016,3.015,1142,6.079,1180,4.952,1216,4.684,1345,2.396,1395,5.266,1396,7.287,1397,4.209,1398,6.931,1403,3.347,1409,7.372,1410,6.145,1415,3.702,1416,6.281,1423,7.127,1539,7.512,1695,3.844,2051,4.893,2139,3.896,2578,3.83,2747,4.433,3580,3.497,3708,8.094,3830,6.038,3831,6.938,3832,6.938,3833,5.895,3834,6.544,3835,5.467,3836,9.524,3837,9.632,3838,8.589,3839,6.038,3840,6.038,3841,6.038,3842,6.038,3843,6.038,3844,6.038,3845,6.038,3846,5.281,3847,5.582,3848,5.582,3849,6.544,3850,7.94,3851,8.589,3852,6.038,3853,6.038]],["title/injectables/CacheService.html",[105,0.91,3854,5.694]],["body/injectables/CacheService.html",[0,0.334,3,0.023,4,0.023,5,0.012,7,0.148,8,1.429,27,0.405,30,0.001,35,1.189,95,0.163,101,0.016,103,0.001,104,0.001,105,1.582,107,2.368,187,1.42,227,1.018,1530,7.301,2130,4.29,2131,4.801,2132,4.628,3854,9.907,3855,9.821,3856,13.177,3857,9.821,3858,11.104,3859,5.493,3860,9.821,3861,7.483,3862,9.079,3863,8.59,3864,9.821]],["title/modules/CacheWrapperModule.html",[425,1.812,1545,5.493]],["body/modules/CacheWrapperModule.html",[0,0.268,3,0.019,4,0.019,5,0.009,30,0.001,47,0.734,95,0.172,101,0.013,103,0.001,104,0.001,150,2.724,187,1.137,204,2.669,217,1.492,227,1.067,334,0.845,425,3.055,427,2.841,428,3.057,429,3.147,430,3.134,431,3.121,432,4.219,433,4.334,438,4.82,442,4.117,443,3.082,444,3.008,449,4.082,837,5.601,839,3.751,883,4.365,1467,2.511,1545,10.809,2007,8.311,2130,3.436,2131,3.845,2132,3.706,2356,3.231,2357,5.223,3580,3.202,3854,11.755,3858,6.88,3859,4.399,3861,8.736,3863,6.88,3865,7.866,3866,7.866,3867,7.866,3868,7.866,3869,10.289,3870,10.289,3871,6.88,3872,6.159,3873,8.057,3874,8.617,3875,7.866,3876,7.866,3877,7.866,3878,9.511,3879,7.271,3880,7.866,3881,6.88,3882,7.271,3883,6.88,3884,6.88,3885,7.271]],["title/classes/CalendarEventDto.html",[0,0.232,3886,5.694]],["body/classes/CalendarEventDto.html",[0,0.33,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,27,0.52,29,0.758,30,0.001,31,0.542,32,0.171,33,0.468,47,0.935,100,3.241,101,0.016,103,0.001,104,0.001,127,1.212,165,0.918,1397,4.224,2747,4.996,3886,11.247,3887,13.113,3888,9.68,3889,8.658,3890,9.82,3891,11.726,3892,9.68,3893,9.68,3894,8.948,3895,8.948]],["title/injectables/CalendarMapper.html",[105,0.91,3896,5.694]],["body/injectables/CalendarMapper.html",[0,0.321,3,0.022,4,0.022,5,0.011,7,0.142,8,1.394,27,0.389,29,0.739,30,0.001,31,0.528,32,0.128,33,0.456,35,1.142,95,0.16,101,0.016,103,0.001,104,0.001,105,1.544,107,2.273,187,1.364,217,1.227,227,0.978,234,1.531,630,9.323,1397,3.158,3886,10.884,3889,7.921,3896,9.666,3897,9.431,3898,11.542,3899,10.884,3900,9.431,3901,7.618,3902,9.431,3903,8.718,3904,8.718,3905,8.718,3906,7.618,3907,9.431,3908,9.431,3909,7.185,3910,9.431]],["title/modules/CalendarModule.html",[425,1.812,3911,5.694]],["body/modules/CalendarModule.html",[0,0.315,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.015,103,0.001,104,0.001,187,1.336,425,3.293,427,3.337,428,3.589,429,3.696,430,3.68,431,3.664,432,4.547,433,4.67,442,4.559,443,3.619,444,3.532,449,3.664,1155,5.365,3896,11.304,3911,11.663,3912,9.236,3913,9.236,3914,9.236,3915,12.377,3916,9.236,3917,7.691,3918,9.236,3919,8.538]],["title/injectables/CalendarService.html",[105,0.91,3915,5.947]],["body/injectables/CalendarService.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.098,8,1.091,26,2.661,27,0.487,29,0.814,30,0.001,31,0.582,32,0.161,33,0.503,34,1.103,35,1.093,36,1.937,39,2.432,47,0.872,55,2.238,95,0.171,99,1.082,101,0.011,103,0.001,104,0.001,105,1.208,107,1.563,111,2.64,112,2.29,127,0.812,150,3.891,154,5.147,165,0.707,167,2.387,185,3.51,187,0.938,193,10.334,215,2.07,216,2.367,217,1.175,227,0.937,234,1.687,238,5.812,250,8.703,254,5.673,255,5.673,270,5.673,305,1.848,363,4.128,576,5.865,1154,8.547,1155,3.767,1157,4.245,1265,4.941,1270,3.845,1353,4.36,1354,4.618,1355,5.079,1631,5.673,1820,4.024,2022,6.432,2033,4.531,2130,2.833,2131,3.17,2132,3.056,2292,7.918,2293,7.564,2308,5.995,2316,5.995,2317,5.995,2338,5.995,2579,4.618,3859,3.627,3886,5.431,3896,10.512,3899,5.431,3903,5.995,3904,5.995,3905,5.995,3915,7.9,3919,5.995,3920,6.486,3921,10.392,3922,9.032,3923,5.995,3924,9.032,3925,9.032,3926,11.238,3927,6.486,3928,9.078,3929,6.486,3930,6.486,3931,6.486,3932,6.486,3933,9.032,3934,6.486,3935,6.486,3936,6.486,3937,4.821,3938,6.486,3939,6.486,3940,6.486]],["title/classes/Card.html",[0,0.232,2818,3.873]],["body/classes/Card.html",[0,0.196,2,0.643,3,0.014,4,0.014,5,0.01,7,0.087,8,1.004,27,0.542,29,0.973,30,0.001,31,0.696,32,0.175,33,0.601,35,1.532,36,1.783,47,0.806,55,2.614,59,1.797,95,0.156,101,0.016,103,0,104,0,112,2.148,116,2.59,148,3.624,165,0.651,200,1.797,208,2.156,209,1.907,217,0.751,221,1.336,227,1.106,334,0.62,347,1.971,363,5.292,404,1.756,595,2.784,596,3.789,661,3.494,687,2.46,692,3.106,728,3.18,806,4.794,884,3.918,1345,2.289,1397,3.943,1790,5.245,1793,6.289,1865,3.787,2280,3.287,2557,6.279,2627,2.425,2749,7.669,2752,5.921,2753,5.921,2754,5.921,2755,5.524,2756,5.921,2758,3.834,2759,5.098,2760,6.258,2762,5.809,2763,5.098,2764,6.134,2766,4.031,2767,4.388,2769,6.124,2770,4.031,2772,5.921,2774,4.031,2776,3.834,2804,5.039,2818,6.076,2826,5.442,2829,5.442,2832,5.442,2835,5.365,2838,5.224,2846,8.218,2847,4.289,2848,2.785,2849,2.496,2850,3.458,3248,7.598,3941,5.334,3942,5.77,3943,5.77,3944,5.334,3945,4.195,3946,4.195,3947,4.195,3948,4.832,3949,5.77,3950,5.047,3951,5.77,3952,5.77,3953,5.77,3954,5.77,3955,5.77,3956,3.626,3957,5.706,3958,4.518,3959,7.686,3960,5.334,3961,5.159,3962,5.334,3963,5.334,3964,5.047,3965,5.334]],["title/controllers/CardController.html",[481,2.611,2722,5.947]],["body/controllers/CardController.html",[0,0.129,3,0.009,4,0.009,5,0.005,7,0.057,8,0.727,10,3.032,27,0.412,29,0.782,30,0.001,31,0.559,32,0.189,33,0.483,35,1.208,36,2.561,95,0.14,100,1.264,101,0.006,103,0,104,0,111,0.757,112,2.817,163,1.162,187,0.546,206,1.921,215,1.205,216,1.113,217,1.363,221,2.31,227,0.624,234,1.22,264,3.936,364,1.818,376,0.864,447,1.565,481,1.449,483,1.8,491,6.336,498,4.133,502,7.412,506,7.818,509,8.354,513,6.694,529,2.617,538,2.713,543,4.765,552,2.436,553,6.348,554,8.324,555,1.963,556,2.008,558,1.811,561,2.024,563,5.982,564,4.834,770,2.238,883,2.555,1016,2.114,1392,7.069,1397,2.016,1750,2.671,2553,3.202,2556,3.049,2644,5.351,2715,6.291,2716,5.882,2722,5.267,2727,1.811,2783,6.277,2818,5.686,2900,7.42,2902,4.864,2904,7.605,2905,7.135,2908,7.522,2910,6.924,2923,9.797,2924,6.924,2925,5.138,2928,2.744,2929,2.171,2930,2.024,2937,3.049,2947,6.924,2948,6.924,2951,3.302,3242,6.531,3248,3.885,3282,6.833,3405,4.133,3545,3.49,3966,3.775,3967,6.944,3968,6.022,3969,7.512,3970,6.944,3971,7.512,3972,7.512,3973,3.775,3974,10.988,3975,7.498,3976,3.775,3977,5.723,3978,5.723,3979,5.723,3980,3.775,3981,4.377,3982,3.49,3983,3.775,3984,3.775,3985,3.775,3986,8.572,3987,3.775,3988,3.775,3989,3.775,3990,7.512,3991,7.498,3992,3.775,3993,3.775,3994,3.775,3995,3.775,3996,3.775,3997,7.498,3998,3.775,3999,3.775,4000,3.775,4001,7.498,4002,3.775,4003,3.775,4004,3.775,4005,3.775,4006,3.775,4007,2.372,4008,4.864,4009,2.403,4010,6.57,4011,4.588,4012,4.588,4013,3.775,4014,3.775,4015,3.162,4016,3.049,4017,3.775,4018,5.267,4019,3.775,4020,6.022,4021,3.775,4022,6.022,4023,3.49,4024,3.775,4025,3.775,4026,9.365,4027,3.775,4028,3.302,4029,3.775,4030,3.775,4031,3.775,4032,3.775,4033,3.775,4034,3.775,4035,3.775,4036,3.775,4037,2.403,4038,5.811,4039,3.302,4040,3.302,4041,3.302,4042,3.302,4043,3.302,4044,3.775,4045,4.715,4046,3.775,4047,3.302]],["title/classes/CardIdsParams.html",[0,0.232,3991,5.947]],["body/classes/CardIdsParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.171,47,0.956,95,0.15,101,0.016,103,0.001,104,0.001,145,2.434,165,0.914,364,1.75,369,2.133,374,3.068,376,2.198,379,2.178,467,3.063,770,7.947,1000,4.753,1858,6.115,2450,5.475,3991,10.212,4048,10.793,4049,9.611,4050,9.611,4051,7.763,4052,6.851,4053,9.611]],["title/classes/CardListResponse.html",[0,0.232,4010,5.947]],["body/classes/CardListResponse.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,27,0.479,29,0.747,30,0.001,31,0.534,32,0.17,33,0.461,95,0.149,101,0.016,103,0.001,104,0.001,127,1.456,145,2.416,163,4.117,165,0.911,364,1.738,376,2.183,467,3.05,966,4.855,1006,6.667,1011,4.821,1026,5.29,4010,11.7,4048,11.589,4054,9.542,4055,10.541,4056,9.542,4057,9.542]],["title/entities/CardNode.html",[380,1.445,3168,5.324]],["body/entities/CardNode.html",[0,0.302,3,0.021,4,0.021,5,0.011,7,0.134,27,0.366,30,0.001,32,0.151,55,2.614,95,0.168,96,2.426,101,0.019,103,0.001,104,0.001,165,0.87,208,3.314,217,1.154,227,0.92,240,3.849,334,0.953,364,1.616,380,2.361,381,2.951,398,2.613,404,2.002,405,2.364,617,4.917,1790,4.692,2577,5.006,2578,3.955,2818,6.33,3143,5.82,3155,6.66,3168,8.701,3222,5.438,3241,9.719,3248,8.207,3280,6.088,3391,5.805,3596,6.758,3598,6.813,3619,5.504,4058,10.272,4059,5.646,4060,8.2,4061,5.646,4062,9.719,4063,7.428,4064,8.2,4065,8.2]],["title/interfaces/CardNodeProps.html",[334,0.731,4062,5.947]],["body/interfaces/CardNodeProps.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.151,55,2.744,95,0.168,96,2.437,101,0.019,103,0.001,104,0.001,165,0.873,208,3.328,217,1.159,227,0.924,240,3.535,334,0.957,336,2.132,380,2.368,398,2.625,404,2.191,405,2.374,617,4.939,1790,4.705,2577,5.028,2578,3.972,2818,6.348,3143,5.836,3155,6.678,3168,6.977,3222,5.463,3241,9.746,3248,8.463,3280,6.115,3391,5.831,3596,6.788,3598,7.455,3619,5.528,4058,8.236,4059,5.671,4061,5.671,4062,10.634,4063,7.461,4064,8.236,4065,8.236]],["title/interfaces/CardProps.html",[334,0.731,3964,5.947]],["body/interfaces/CardProps.html",[0,0.258,3,0.018,4,0.018,5,0.012,7,0.114,30,0.001,32,0.153,36,1.623,47,0.889,55,2.685,95,0.168,101,0.019,103,0.001,104,0.001,112,1.668,148,2.33,165,0.786,200,2.358,208,2.828,209,2.502,217,0.985,221,1.752,227,1.242,334,0.813,336,1.812,347,1.531,404,2.028,687,3.227,728,3.837,806,5.216,1345,3.003,1397,4.29,1790,5.263,1865,4.57,2280,4.312,2557,4.904,2627,3.181,2749,6.081,2759,4.641,2760,5.887,2763,4.641,2764,5.77,2772,5.391,2804,6.82,2818,6.41,2826,6.566,2829,6.566,2832,6.566,2835,6.474,2838,6.304,2846,9.062,2847,5.627,2848,3.654,2849,3.274,2850,4.537,3248,8.266,3941,6.998,3956,4.756,3957,6.886,3958,5.928,3959,9.275,3960,6.998,3961,6.226,3962,6.998,3963,6.998,3964,8.775,3965,6.998]],["title/classes/CardResponse.html",[0,0.232,4055,5.493]],["body/classes/CardResponse.html",[0,0.24,2,0.785,3,0.017,4,0.017,5,0.008,7,0.106,27,0.529,29,0.551,30,0.001,31,0.394,32,0.177,33,0.525,34,2.069,47,0.83,55,2.059,95,0.156,101,0.012,103,0.001,104,0.001,127,1.197,145,1.783,165,0.749,364,2.285,375,3.64,376,1.611,467,3.472,469,3.091,475,3.442,618,2.879,966,3.582,1011,3.558,1019,5.551,1041,6.804,1397,4.073,1858,5.006,2553,3.001,2556,8.764,2745,6.083,2747,3.634,2883,4.608,2884,5.083,2885,5.083,3248,7.849,3457,6.158,3694,7.213,3698,6.302,3702,4.678,3704,4.678,3977,7.281,3978,7.281,3979,7.281,4008,7.72,4009,4.482,4011,7.281,4012,7.281,4037,4.482,4038,7.549,4039,6.158,4040,6.158,4041,6.158,4042,6.158,4043,6.158,4055,9.827,4063,5.897,4066,7.041,4067,11.246,4068,7.041,4069,7.041,4070,7.041,4071,7.041,4072,7.041,4073,7.041,4074,9.086,4075,7.041,4076,6.158,4077,7.041,4078,6.509,4079,7.041]],["title/classes/CardResponseMapper.html",[0,0.232,4015,5.694]],["body/classes/CardResponseMapper.html",[0,0.307,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,8,1.357,27,0.372,29,0.707,30,0.001,31,0.506,32,0.123,33,0.437,34,1.536,35,1.093,95,0.157,99,1.507,100,3.023,101,0.015,103,0.001,104,0.001,217,1.175,227,0.936,234,1.986,591,3.924,627,3.753,974,5.354,975,6.229,980,6.879,1041,5.05,1397,3.023,1750,4.984,2303,3.66,2553,3.849,2818,7.501,3248,5.826,3694,5.354,3698,6.526,3715,6.43,4015,9.41,4016,7.293,4047,7.897,4055,10.34,4067,8.347,4074,9.41,4080,11.236,4081,11.236,4082,9.029,4083,7.897,4084,7.897,4085,7.562,4086,9.029,4087,9.029,4088,9.029]],["title/injectables/CardService.html",[105,0.91,3569,5.694]],["body/injectables/CardService.html",[0,0.178,3,0.012,4,0.012,5,0.006,7,0.079,8,0.934,10,3.121,12,3.541,26,2.495,27,0.509,29,0.966,30,0.001,31,0.691,32,0.168,33,0.597,34,0.889,35,1.462,36,2.859,47,0.656,49,2.055,55,2.449,59,2.408,83,2.365,95,0.146,99,0.872,101,0.009,103,0,104,0,105,1.034,107,1.259,111,2.28,112,3.043,127,0.968,187,0.755,216,1.702,217,1.413,221,2.947,227,0.955,234,1.763,305,1.488,591,2.271,592,2.367,734,2.976,770,3.097,806,2.127,883,3.28,1397,3.636,2303,2.118,2531,2.823,2627,2.195,2644,2.801,2655,6.259,2757,3.526,2818,7.947,3120,3.883,3121,7.944,3242,5.891,3248,7.007,3309,6.475,3339,5.706,3402,8.747,3405,5.307,3411,8.218,3415,4.375,3569,6.475,3572,8.747,4018,4.569,4084,4.569,4085,4.375,4089,5.224,4090,7.732,4091,7.732,4092,6.763,4093,5.224,4094,6.763,4095,10.792,4096,6.308,4097,5.224,4098,7.732,4099,5.224,4100,7.732,4101,5.224,4102,7.732,4103,5.224,4104,6.246,4105,7.732,4106,5.224,4107,7.732,4108,10.174,4109,5.224,4110,7.732,4111,5.224,4112,7.732,4113,5.224,4114,4.22,4115,5.224,4116,5.224,4117,5.224,4118,5.224,4119,5.224,4120,4.829,4121,3.419,4122,4.829,4123,5.224,4124,5.224,4125,5.224,4126,5.224,4127,7.732,4128,7.732,4129,7.732,4130,5.224]],["title/classes/CardSkeletonResponse.html",[0,0.232,4131,5.694]],["body/classes/CardSkeletonResponse.html",[0,0.292,2,0.957,3,0.02,4,0.02,5,0.01,7,0.13,27,0.493,29,0.673,30,0.001,31,0.481,32,0.162,33,0.415,47,0.776,55,2.345,72,4.932,95,0.11,101,0.014,103,0.001,104,0.001,127,1.364,144,2.994,165,0.853,364,1.983,376,1.964,379,1.946,467,3.136,475,4.197,946,7.125,966,4.369,1013,3.933,2504,8.294,2818,6.202,2883,5.62,2884,5.791,2885,5.791,3248,8.687,3427,7.472,4063,7.191,4104,10.478,4131,10.863,4132,12.57,4133,8.586,4134,8.586,4135,8.586,4136,10.887,4137,9.522,4138,10.887,4139,9.522,4140,7.125,4141,10.887,4142,10.064,4143,10.064,4144,8.586,4145,8.586]],["title/injectables/CardUc.html",[105,0.91,2716,5.324]],["body/injectables/CardUc.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.07,8,0.85,26,2.959,27,0.465,29,0.911,30,0.001,31,0.632,32,0.173,33,0.546,35,1.313,36,2.689,39,3.377,55,2.43,59,1.435,95,0.132,99,0.769,101,0.008,103,0,104,0,105,0.941,107,1.111,111,2.479,112,2.917,127,0.881,145,1.167,187,0.666,199,3.61,216,1.902,217,1.685,221,3.063,227,1.125,461,1.61,692,3.844,766,1.928,1041,2.578,1467,1.471,1695,2.934,1750,2.044,1798,7.512,1799,4.265,1813,6.803,1814,3.163,1884,5.862,1982,4.217,1984,3.609,1988,5.231,2356,3.506,2357,4.351,2401,3.35,2406,3.609,2553,4.623,2557,4.669,2716,5.51,2725,2.088,2818,5.442,3088,7.327,3115,8.201,3126,8.057,3242,5.361,3411,8.311,3569,9.448,3572,7.101,3961,4.366,3967,8.831,3970,4.26,4018,8.355,4045,8.493,4096,5.121,4104,7.716,4146,4.609,4147,7.89,4148,7.036,4149,8.535,4150,7.148,4151,3.723,4152,7.465,4153,4.609,4154,5.51,4155,4.609,4156,4.609,4157,4.609,4158,7.036,4159,9.397,4160,4.609,4161,7.036,4162,8.535,4163,4.609,4164,7.036,4165,4.609,4166,4.609,4167,9.553,4168,4.609,4169,4.031,4170,4.609,4171,7.278,4172,4.609,4173,7.036,4174,4.609,4175,4.609,4176,7.48,4177,4.609,4178,7.036,4179,6.505,4180,4.609,4181,7.89,4182,4.609,4183,4.031,4184,3.11,4185,4.609,4186,4.609,4187,4.609,4188,4.609,4189,4.609]],["title/classes/CardUrlParams.html",[0,0.232,3974,5.947]],["body/classes/CardUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2818,6.729,3795,5.749,3974,10.332,4104,10.244,4190,9.798,4191,9.798]],["title/classes/ChallengeParams.html",[0,0.232,4192,5.947]],["body/classes/ChallengeParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,355,4.733,361,6.529,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,470,4.927,479,7.248,4192,10.301,4193,9.75,4194,9.583,4195,9.75]],["title/classes/ChangeLanguageParams.html",[0,0.232,4196,5.694]],["body/classes/ChangeLanguageParams.html",[0,0.405,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,27,0.409,30,0.001,32,0.135,95,0.164,99,1.655,101,0.017,103,0.001,104,0.001,165,0.932,364,1.807,374,3.166,376,2.269,467,3.122,1031,3.108,1044,4.758,2888,6.011,4196,9.965,4197,9.918,4198,8.907,4199,10.072,4200,9.918,4201,9.918,4202,9.918]],["title/classes/Class.html",[0,0.318]],["body/classes/Class.html",[0,0.377,2,0.697,3,0.015,4,0.029,5,0.008,7,0.094,8,1.064,26,2.802,27,0.565,29,0.49,30,0.001,31,0.653,32,0.12,33,0.302,35,1.066,39,2.371,47,0.942,55,1.897,62,6.49,83,3.384,95,0.131,101,0.015,103,0.001,104,0.001,116,3.631,145,3.212,148,1.925,165,0.69,227,1.394,334,0.672,359,2.18,404,1.836,591,4.807,592,5.011,595,2.948,596,2.686,661,3.7,692,3.289,884,4.149,1787,5.114,1790,4.922,1793,6.575,1873,3.881,2545,3.326,2758,4.155,2776,4.155,2779,5.47,2781,5.47,2785,4.897,2786,4.897,4203,5.781,4204,8.139,4205,3.728,4206,7.876,4207,8.427,4208,8.04,4209,8.427,4210,6.95,4211,8.427,4212,8.427,4213,8.139,4214,6.254,4215,4.765,4216,6.254,4217,3.929,4218,6.254,4219,6.254,4220,6.254,4221,5.237,4222,6.254,4223,6.254,4224,6.254,4225,6.254,4226,6.254,4227,6.254,4228,6.254,4229,6.254,4230,6.254,4231,6.254,4232,6.254,4233,6.254,4234,6.254,4235,6.254,4236,6.254,4237,6.254,4238,6.254,4239,7.764,4240,5.237,4241,5.237,4242,5.237,4243,5.781,4244,8.139,4245,5.781,4246,5.781,4247,5.781,4248,5.781,4249,5.781,4250,5.781,4251,5.781,4252,5.781,4253,5.781,4254,5.781]],["title/entities/ClassEntity.html",[380,1.445,4255,4.943]],["body/entities/ClassEntity.html",[0,0.268,2,0.596,3,0.013,4,0.027,5,0.006,7,0.179,26,1.666,27,0.528,30,0.001,31,0.576,32,0.174,33,0.647,34,0.909,47,0.923,49,5.264,55,2.009,62,6.034,95,0.141,96,2.15,97,2.31,99,0.891,101,0.013,103,0,104,0,111,1.071,144,1.469,145,3.195,165,0.73,234,0.867,240,4.107,305,1.522,334,0.574,359,2.74,364,2.331,369,2.969,370,4.088,380,1.67,381,1.777,386,6.751,396,6.155,398,1.574,399,3.118,402,2.214,404,0.963,405,1.423,406,1.737,618,2.184,619,4.357,905,2.224,2095,2.119,4205,3.466,4206,7.324,4207,7.835,4208,7.967,4209,7.835,4210,6.887,4211,7.835,4212,7.835,4255,5.714,4256,4.938,4257,5.342,4258,5.342,4259,5.342,4260,5.342,4261,5.342,4262,6.583,4263,5.342,4264,8.583,4265,3.804,4266,5.342,4267,5.342,4268,5.342,4269,5.342,4270,5.342,4271,4.283,4272,3.238,4273,4.938,4274,7.81,4275,4.474,4276,9.507,4277,6.583,4278,4.938,4279,4.938,4280,4.474,4281,2.333,4282,3.167,4283,3.971,4284,7.266,4285,4.183,4286,4.938,4287,4.938,4288,7.266,4289,4.938,4290,7.266,4291,4.938,4292,4.938,4293,6.155,4294,3.971,4295,7.266,4296,4.938,4297,5.989,4298,3.883,4299,7.266,4300,4.938]],["title/classes/ClassEntityFactory.html",[0,0.232,4301,6.286]],["body/classes/ClassEntityFactory.html",[0,0.163,2,0.533,3,0.011,4,0.021,5,0.006,7,0.072,8,0.874,27,0.533,29,1.021,30,0.001,31,0.717,32,0.18,33,0.603,34,1.656,35,1.458,47,0.516,49,4.74,55,2.462,59,3.258,62,5.124,95,0.125,101,0.008,103,0,104,0,127,0.599,138,3.162,144,3.237,148,1.472,165,0.567,185,4.849,216,1.339,217,0.942,227,0.751,234,1.855,319,3.517,359,2.524,366,2.675,379,1.979,380,2.222,381,2.408,404,1.304,538,3.262,596,3.903,627,2.221,660,7.221,661,4.624,662,5.496,665,4.085,666,5.496,667,5.711,668,4.085,669,4.085,670,4.085,671,4.013,672,4.475,673,4.929,674,7.032,675,5.798,676,7.046,677,2.725,682,2.7,683,4.085,684,2.725,685,5.139,686,5.306,687,4.151,688,4.989,689,4.048,690,2.7,691,2.544,692,4.111,693,2.629,694,2.585,695,2.7,696,5.062,697,2.725,698,4.841,699,2.7,700,7.138,701,4.161,702,6.642,703,2.725,704,4.324,705,2.7,706,2.725,707,2.7,708,2.725,709,2.7,710,3.045,711,2.836,712,2.7,713,6.1,714,2.725,715,2.7,716,4.085,717,3.82,718,4.085,719,2.725,720,2.607,721,2.585,722,2.133,723,2.7,724,2.7,725,2.7,726,2.725,727,2.725,728,1.829,729,2.7,730,2.725,731,2.86,732,2.7,733,2.725,734,2.725,735,2.779,737,2.867,1858,2.506,2280,2.725,4205,1.612,4206,3.407,4207,3.645,4208,3.477,4209,3.645,4210,3.006,4211,3.645,4212,3.645,4255,3.477,4264,5.668,4274,4.006,4301,8.073,4302,4.784,4303,6.692,4304,6.692,4305,4.784,4306,4.006,4307,4.784,4308,4.784,4309,3.407,4310,3.645]],["title/classes/ClassFactory.html",[0,0.232,4311,6.286]],["body/classes/ClassFactory.html",[0,0.295,2,0.527,3,0.011,4,0.023,5,0.006,7,0.071,8,0.866,27,0.532,29,1.019,30,0.001,31,0.715,32,0.179,33,0.602,34,1.645,35,1.453,47,0.742,49,1.858,55,2.451,59,3.239,62,5.084,83,2.193,95,0.134,96,1.292,97,2.042,101,0.008,103,0,104,0,127,0.591,138,3.131,144,3.224,148,1.453,165,0.561,185,4.834,216,1.325,217,0.933,227,0.743,234,2.02,319,3.503,359,2.499,366,2.641,379,1.963,380,1.841,381,2.384,404,1.292,538,3.23,591,2.052,592,2.139,596,3.892,627,2.199,660,7.013,661,4.601,662,5.459,665,4.045,666,5.459,667,5.556,668,4.045,669,4.045,670,4.045,671,3.974,672,4.439,673,4.89,674,7.013,675,5.765,676,6.967,677,2.69,682,2.665,683,4.045,684,2.69,685,5.105,686,5.271,687,4.123,688,4.956,689,4.009,690,2.665,691,2.512,692,4.09,693,2.595,694,2.552,695,2.665,696,5.029,697,2.69,698,4.803,699,2.665,700,7.118,701,4.144,702,6.615,703,2.69,704,3.549,705,2.665,706,2.69,707,2.665,708,2.69,709,2.665,712,2.665,713,6.069,714,2.69,715,2.665,716,4.045,717,3.783,718,4.045,719,2.69,720,2.573,721,2.552,722,2.105,723,2.665,724,2.665,725,2.665,726,2.69,727,2.69,728,1.806,729,2.665,730,2.69,731,2.832,732,2.665,733,2.69,735,2.743,737,2.83,2280,2.69,3532,4.365,4121,7.672,4205,1.592,4206,3.363,4207,3.598,4208,3.433,4209,3.598,4210,2.967,4211,3.598,4212,3.598,4239,5.461,4240,3.955,4241,3.955,4303,6.626,4304,6.626,4309,3.363,4310,3.598,4311,8.009,4312,4.722,4313,6.17,4314,4.722,4315,3.433,4316,4.722,4317,4.722]],["title/classes/ClassInfoDto.html",[0,0.232,4318,5.324]],["body/classes/ClassInfoDto.html",[0,0.359,2,0.909,3,0.019,4,0.019,5,0.01,7,0.123,27,0.556,29,0.639,30,0.001,31,0.691,32,0.189,33,0.643,34,1.984,47,0.98,95,0.105,101,0.014,103,0.001,104,0.001,127,1.021,165,0.825,347,2.13,405,2.806,595,2.73,618,3.334,619,4.519,2095,3.234,2470,5.595,2578,3.635,4281,3.561,4318,9.997,4319,13.623,4320,7.536,4321,9.423,4322,9.77,4323,7.635,4324,7.239,4325,10.531,4326,8.152,4327,8.152,4328,8.152,4329,8.152,4330,8.152,4331,10.203,4332,8.152,4333,4.886,4334,7.536,4335,7.536,4336,7.536,4337,7.536,4338,6.211,4339,6.384,4340,7.536,4341,7.536]],["title/classes/ClassInfoResponse.html",[0,0.232,4342,5.694]],["body/classes/ClassInfoResponse.html",[0,0.256,2,0.838,3,0.018,4,0.018,5,0.009,7,0.113,27,0.546,29,0.589,30,0.001,31,0.669,32,0.188,33,0.631,34,1.907,47,0.974,95,0.128,101,0.013,103,0.001,104,0.001,127,0.941,145,1.903,165,0.782,347,2.019,364,2.376,375,4.969,376,1.719,405,2.66,467,3.423,595,2.516,618,3.073,619,4.165,1011,3.796,1031,2.354,2095,2.981,2213,5.884,2470,5.157,2578,3.35,2888,4.554,4281,3.282,4321,9.056,4322,9.389,4323,7.338,4324,6.957,4331,10.876,4333,4.503,4334,6.946,4335,6.946,4336,6.946,4337,6.946,4338,5.725,4339,5.884,4340,6.946,4341,6.946,4342,10.414,4343,12.398,4344,9.229,4345,7.514,4346,7.514,4347,7.514,4348,7.514,4349,6.572,4350,7.514,4351,7.514]],["title/classes/ClassInfoSearchListResponse.html",[0,0.232,4352,5.694]],["body/classes/ClassInfoSearchListResponse.html",[0,0.349,2,0.872,3,0.027,4,0.018,5,0.009,7,0.118,27,0.519,29,0.613,30,0.001,31,0.438,32,0.184,33,0.609,55,3.021,56,6.202,59,3.192,70,6.401,95,0.147,101,0.013,103,0.001,104,0.001,127,0.98,145,1.98,163,3.877,165,0.803,364,2.21,376,1.789,404,1.847,467,2.689,469,3.433,596,3.702,1005,7.299,1006,5.463,1007,8.077,1008,6.987,1009,5.839,1010,7.229,1011,3.951,1012,7.229,1013,5.237,1014,3.729,1015,4.373,1016,2.745,1017,5.463,1018,6.614,1019,5.953,1020,5.118,1021,4.159,1022,5.463,1023,5.463,1025,4.913,1026,4.335,4342,11.032,4343,9.475,4352,8.584,4353,6.549]],["title/classes/ClassMapper.html",[0,0.232,4354,5.947]],["body/classes/ClassMapper.html",[0,0.464,2,0.756,3,0.016,4,0.027,5,0.008,7,0.102,8,1.125,27,0.472,29,0.897,30,0.001,31,0.695,32,0.156,33,0.554,34,1.584,35,1.386,49,2.668,62,5.465,95,0.147,96,1.855,97,2.932,101,0.011,103,0.001,104,0.001,111,2.487,145,2.9,227,1.188,234,2.101,380,1.979,381,2.255,591,2.947,592,3.072,627,4.15,921,5.04,1790,2.863,1904,2.836,2367,4.438,2403,5.309,2408,4.737,4205,3.139,4206,6.632,4207,7.096,4208,6.77,4209,7.096,4210,5.852,4211,7.096,4212,7.096,4239,7.096,4240,5.678,4255,9.832,4310,5.166,4354,8.146,4355,6.78,4356,9.314,4357,9.314,4358,9.314,4359,9.314,4360,9.314,4361,6.78,4362,9.314,4363,6.78,4364,9.314,4365,6.78,4366,9.314,4367,6.78,4368,6.78,4369,4.375,4370,5.309,4371,6.78,4372,6.78,4373,6.78,4374,6.78,4375,6.78,4376,6.78,4377,6.78,4378,6.78,4379,5.93,4380,6.78,4381,6.78,4382,6.78,4383,5.678,4384,5.678,4385,5.93,4386,6.78,4387,6.78,4388,6.78,4389,6.78,4390,6.78,4391,6.78,4392,6.78,4393,6.78,4394,6.268,4395,6.78,4396,6.78,4397,6.78,4398,6.78,4399,6.78,4400,6.268,4401,6.78]],["title/modules/ClassModule.html",[425,1.812,4402,5.694]],["body/modules/ClassModule.html",[0,0.32,3,0.022,4,0.022,5,0.011,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.357,425,3.317,427,3.391,428,3.648,429,3.756,430,3.74,431,3.724,432,4.58,433,4.704,442,4.605,443,3.678,444,3.59,766,3.926,2531,5.073,4402,11.694,4403,9.387,4404,9.387,4405,9.387,4406,11.875,4407,11.348,4408,9.387]],["title/interfaces/ClassProps.html",[334,0.731,4241,5.694]],["body/interfaces/ClassProps.html",[0,0.348,3,0.015,4,0.029,5,0.008,7,0.095,26,2.96,30,0.001,31,0.654,32,0.183,33,0.662,39,1.692,47,0.981,55,2.387,62,6.852,83,3.886,95,0.131,101,0.015,103,0.001,104,0.001,116,1.957,145,3.216,165,0.692,227,1.395,334,0.675,336,1.504,359,2.191,404,1.841,591,5.076,592,5.29,1787,5.934,1790,3.73,1873,3.899,2545,3.342,2785,4.92,2786,4.92,4203,5.808,4205,3.936,4206,8.316,4207,8.898,4208,8.489,4209,8.898,4210,7.338,4211,8.898,4212,8.898,4213,5.808,4239,8.898,4240,5.262,4241,7.398,4242,5.262,4243,5.808,4244,8.166,4245,5.808,4246,5.808,4247,5.808,4248,5.808,4249,5.808,4250,5.808,4251,5.808,4252,5.808,4253,5.808,4254,5.808]],["title/injectables/ClassService.html",[105,0.91,4406,5.694]],["body/injectables/ClassService.html",[0,0.416,2,1.156,3,0.019,4,0.019,5,0.01,7,0.12,8,1.252,26,2.805,27,0.475,29,0.903,30,0.001,31,0.646,32,0.157,33,0.558,34,1.354,35,1.255,36,2.62,39,2.792,95,0.157,99,1.328,101,0.013,103,0.001,104,0.001,105,1.387,107,1.919,112,2.863,116,4.046,127,0.997,145,2.015,187,1.151,215,2.54,216,1.472,217,1.501,221,2.669,227,1.196,234,1.292,305,2.267,1127,5.066,1353,3.842,1790,3.36,1904,3.329,2367,5.209,2531,4.302,4205,2.682,4400,7.357,4406,8.683,4407,10.879,4409,7.959,4410,10.368,4411,8.375,4412,7.959,4413,7.959,4414,10.368,4415,7.959,4416,8.683,4417,7.959,4418,7.959,4419,7.357,4420,7.959,4421,7.959,4422,7.959,4423,7.959,4424,7.959,4425,7.959]],["title/classes/ClassSortParams.html",[0,0.232,4426,5.947]],["body/classes/ClassSortParams.html",[0,0.383,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,31,0.629,32,0.153,33,0.543,95,0.157,101,0.019,103,0.001,104,0.001,144,2.483,165,0.88,319,2.699,364,2.047,374,2.882,375,4.28,376,2.065,404,2.025,469,3.964,471,4.554,596,3.427,1031,3.521,1044,4.332,3015,9.093,4321,7.293,4426,9.827,4427,9.029,4428,7.293,4429,7.897,4430,10.636,4431,8.043,4432,13.167,4433,9.029,4434,7.897,4435,6.094,4436,7.562,4437,7.897,4438,9.029,4439,9.029]],["title/classes/ClassSourceOptions.html",[0,0.232,4239,5.181]],["body/classes/ClassSourceOptions.html",[0,0.317,2,1.037,3,0.022,4,0.031,5,0.011,7,0.14,27,0.511,29,0.728,30,0.001,31,0.521,32,0.156,33,0.45,47,0.816,101,0.019,103,0.001,104,0.001,127,1.165,145,2.355,165,0.896,227,0.964,334,0.999,405,3.049,595,4.446,661,5.209,884,5.392,1791,7.788,4239,8.719,4310,9.854,4440,11.956,4441,8.597,4442,11.826,4443,11.443,4444,9.3,4445,9.3,4446,8.597]],["title/classes/ClassSourceOptionsEntity.html",[0,0.232,4264,5.324]],["body/classes/ClassSourceOptionsEntity.html",[0,0.315,2,1.03,3,0.022,4,0.031,5,0.011,7,0.14,27,0.47,29,0.723,30,0.001,31,0.517,32,0.155,33,0.598,47,0.881,95,0.119,96,2.527,101,0.019,103,0.001,104,0.001,127,1.157,145,2.339,165,0.893,240,3.615,334,0.992,364,1.682,369,2.529,370,3.043,386,5.261,398,2.721,405,3.036,595,3.092,2574,5.881,4264,8.923,4310,9.83,4447,11.424,4448,8.538,4449,11.285,4450,11.395,4451,10.534,4452,8.538]],["title/interfaces/ClassSourceOptionsEntityProps.html",[334,0.731,4449,5.947]],["body/interfaces/ClassSourceOptionsEntityProps.html",[0,0.33,3,0.023,4,0.028,5,0.012,7,0.146,30,0.001,32,0.132,33,0.567,47,0.935,95,0.124,96,2.648,101,0.02,103,0.001,104,0.001,145,2.451,165,0.918,240,3.72,334,1.04,336,2.317,369,2.148,370,3.189,398,2.852,405,2.579,2574,6.052,4264,7.58,4310,10.232,4447,8.948,4448,8.948,4449,11.034,4451,10.84,4452,8.948]],["title/interfaces/ClassSourceOptionsProps.html",[334,0.731,4442,5.947]],["body/interfaces/ClassSourceOptionsProps.html",[0,0.336,3,0.023,4,0.028,5,0.012,7,0.149,30,0.001,32,0.134,33,0.574,47,0.941,101,0.02,103,0.001,104,0.001,145,2.499,165,0.929,227,1.023,334,1.06,336,2.362,405,2.63,595,3.973,661,4.148,1791,8.265,4239,7.52,4310,10.287,4440,9.124,4441,9.124,4442,11.544,4446,9.124]],["title/injectables/ClassesRepo.html",[105,0.91,4407,5.694]],["body/injectables/ClassesRepo.html",[0,0.443,2,1.242,3,0.018,4,0.018,5,0.009,7,0.112,8,1.195,26,2.757,27,0.49,29,0.931,30,0.001,31,0.666,32,0.162,33,0.575,35,1.348,36,2.731,39,1.997,49,2.918,62,4.352,95,0.164,96,2.029,97,3.208,99,1.238,101,0.012,103,0.001,104,0.001,105,1.324,107,1.788,112,2.948,127,0.929,187,1.073,206,3.774,215,2.367,216,1.371,217,1.658,221,2.578,227,1.026,234,1.607,380,1.576,921,5.513,1904,3.102,2355,6.835,3314,5.182,3319,5.999,4205,3.336,4255,8.097,4354,6.487,4407,8.289,4453,7.417,4454,9.897,4455,7.995,4456,9.897,4457,7.417,4458,9.897,4459,7.417,4460,8.289,4461,7.417,4462,9.897,4463,7.417,4464,9.897,4465,6.856,4466,6.903,4467,9.897,4468,7.417,4469,7.417,4470,7.417,4471,7.417,4472,7.417,4473,7.417,4474,7.417]],["title/injectables/CloseUserLoginMigrationUc.html",[105,0.91,4475,5.694]],["body/injectables/CloseUserLoginMigrationUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,8,1.108,26,2.678,27,0.434,29,0.824,30,0.001,31,0.589,32,0.143,33,0.509,35,1.111,36,1.968,39,1.787,47,0.473,95,0.153,99,1.107,101,0.011,103,0.001,104,0.001,105,1.227,107,1.599,111,2.532,112,2.318,127,1.149,145,1.68,167,2.442,204,2.251,216,2.099,217,1.55,221,2.852,227,1.177,234,1.49,305,2.614,347,2.295,355,5.173,461,2.889,766,2.775,843,2.928,1798,5.179,1799,4.021,1813,4.725,1884,6.827,1982,3.977,2725,3.006,4184,4.478,4205,4.015,4475,7.684,4476,5.06,4477,11.349,4478,5.36,4479,8.026,4480,11.349,4481,5.36,4482,8.774,4483,9.389,4484,10.203,4485,6.134,4486,9.176,4487,6.635,4488,9.176,4489,7.95,4490,6.635,4491,7.392,4492,4.932,4493,7.185,4494,5.055,4495,5.196,4496,5.557,4497,6.134,4498,8.237,4499,6.635,4500,5.557,4501,4.932,4502,8.026,4503,6.635,4504,8.026,4505,6.134,4506,6.134,4507,6.134,4508,5.055,4509,5.557]],["title/injectables/CollaborativeStorageAdapter.html",[105,0.91,4510,5.694]],["body/injectables/CollaborativeStorageAdapter.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.081,8,0.953,27,0.489,29,0.9,30,0.001,31,0.643,32,0.161,33,0.555,34,1.342,35,1.33,36,2.611,47,0.667,72,3.575,95,0.152,100,4.077,101,0.009,103,0,104,0,105,1.056,107,1.295,111,1.582,127,0.988,148,1.653,163,2.428,165,0.618,187,0.777,200,2.458,206,4.759,227,1.069,264,4.989,379,2.602,493,6.012,494,6.883,496,5.247,520,5.242,728,3.943,839,2.561,1467,1.714,1849,6.237,2255,5.619,2356,3.842,2357,4.696,2925,4.729,3579,6.114,3889,5.416,4510,6.608,4511,8.219,4512,10.651,4513,5.37,4514,5.736,4515,8.329,4516,10.198,4517,6.902,4518,6.374,4519,9.129,4520,6.902,4521,6.374,4522,6.374,4523,7.891,4524,6.374,4525,6.374,4526,5.37,4527,10.039,4528,8.635,4529,7.891,4530,6.374,4531,8.998,4532,5.37,4533,8.541,4534,6.374,4535,5.37,4536,7.891,4537,5.37,4538,6.374,4539,5.37,4540,7.891,4541,7.204,4542,8.074,4543,5.37,4544,5.866,4545,4.697,4546,4.205,4547,4.497,4548,6.608,4549,5.37,4550,4.697,4551,4.964,4552,3.992,4553,5.37,4554,5.37,4555,7.891,4556,5.37,4557,5.37,4558,5.37,4559,5.37]],["title/injectables/CollaborativeStorageAdapterMapper.html",[105,0.91,4528,5.694]],["body/injectables/CollaborativeStorageAdapterMapper.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,8,1.249,27,0.327,29,0.621,30,0.001,31,0.444,32,0.108,33,0.383,35,0.96,95,0.162,100,4.578,101,0.013,103,0.001,104,0.001,105,1.383,107,1.911,116,3.585,187,1.146,227,1.072,234,1.287,264,4.837,379,1.796,496,5.58,1849,6.633,1904,4.326,3579,5.088,3889,5.441,4466,6.007,4511,6.98,4515,9.854,4518,8.354,4528,8.661,4531,8.687,4533,7.57,4541,8.523,4542,9.553,4544,7.688,4545,6.934,4546,8.098,4547,6.639,4550,9.045,4552,5.893,4560,7.928,4561,10.342,4562,10.342,4563,7.928,4564,8.354,4565,8.354,4566,9.854,4567,6.404,4568,6.934,4569,6.934,4570,6.934,4571,4.32,4572,5.645,4573,7.928,4574,7.928,4575,7.928,4576,7.928,4577,7.928]],["title/modules/CollaborativeStorageAdapterModule.html",[425,1.812,4578,5.694]],["body/modules/CollaborativeStorageAdapterModule.html",[0,0.242,3,0.017,4,0.017,5,0.009,30,0.001,47,0.507,95,0.175,101,0.012,103,0.001,104,0.001,187,1.029,217,0.926,425,2.906,427,2.57,428,2.765,429,2.847,430,2.835,431,2.823,432,4.014,433,4.122,438,5.895,442,3.851,443,2.788,444,2.721,449,3.819,836,5.591,1155,4.133,1307,5.067,1467,2.271,1954,9.355,1955,5.959,2130,3.108,2131,3.478,2132,3.353,3568,7.907,3579,4.735,3859,3.98,3917,6.496,4510,11.417,4511,4.802,4512,6.224,4516,5.959,4527,5.748,4528,10.539,4548,9.135,4550,6.224,4551,6.578,4578,11.89,4579,7.115,4580,7.115,4581,7.115,4582,7.115,4583,9.355,4584,9.148,4585,11.633,4586,11.254,4587,7.115,4588,4.968,4589,7.115,4590,7.115,4591,6.578,4592,5.572,4593,3.595,4594,7.115,4595,9.625,4596,7.115,4597,7.115,4598,7.115]],["title/controllers/CollaborativeStorageController.html",[481,2.611,4599,5.947]],["body/controllers/CollaborativeStorageController.html",[0,0.36,3,0.016,4,0.016,5,0.008,7,0.101,8,1.115,27,0.276,29,0.524,30,0.001,31,0.375,32,0.091,33,0.324,35,0.81,36,1.979,95,0.163,101,0.011,103,0.001,104,0.001,111,1.341,187,0.967,200,3.547,204,3.131,215,2.135,216,1.237,227,0.694,234,1.498,264,5.021,364,1.219,367,3.19,376,1.53,379,3.003,447,2.773,461,2.605,481,2.569,483,3.19,491,5.603,496,5.216,498,6.334,502,5.726,506,6.04,509,6.708,511,4.663,513,6.037,520,7.566,524,5.308,535,4.948,543,4.695,552,4.317,554,7.507,555,3.478,556,3.558,561,3.587,564,4.175,843,2.952,1184,5.116,1467,2.135,1849,5.715,2356,2.748,2357,4.203,2451,7.455,2930,3.587,3579,6.077,4516,10.006,4525,8.534,4533,8.004,4567,7.455,4599,8.072,4600,6.447,4601,9.228,4602,6.69,4603,7.728,4604,6.69,4605,11.045,4606,9.538,4607,11.948,4608,9.2,4609,6.69,4610,6.69,4611,7.455,4612,9.228,4613,6.69,4614,7.031,4615,6.69,4616,6.69,4617,9.228,4618,6.334,4619,8.072,4620,7.728,4621,6.185,4622,6.185,4623,5.852,4624,6.185,4625,6.69,4626,6.69,4627,6.69,4628,6.69,4629,6.69,4630,6.69]],["title/modules/CollaborativeStorageModule.html",[425,1.812,4631,5.493]],["body/modules/CollaborativeStorageModule.html",[0,0.252,3,0.018,4,0.018,5,0.009,30,0.001,95,0.175,101,0.012,103,0.001,104,0.001,187,1.071,425,2.965,427,2.674,428,2.877,429,2.962,430,2.95,431,2.937,432,4.095,433,4.206,438,5.964,442,3.955,443,2.901,444,2.831,447,4.097,449,3.922,450,3.041,1467,2.363,1547,9.463,1878,6.88,1936,8.737,2725,3.354,3579,3.642,4512,8.646,4544,8.273,4548,6.2,4578,10.661,4599,9.734,4600,5.172,4620,11.488,4621,6.844,4622,6.844,4631,11.507,4632,7.403,4633,7.403,4634,7.403,4635,7.403,4636,10.661,4637,10.661,4638,10.661,4639,6.844,4640,7.403,4641,6.475,4642,6.844,4643,7.403,4644,6.475,4645,6.2,4646,6.844,4647,7.403,4648,7.403]],["title/injectables/CollaborativeStorageService.html",[105,0.91,4636,5.694]],["body/injectables/CollaborativeStorageService.html",[0,0.184,3,0.013,4,0.013,5,0.007,7,0.082,8,0.959,26,2.194,27,0.475,29,0.902,30,0.001,31,0.645,32,0.157,33,0.557,34,1.35,35,1.334,36,2.714,47,0.926,95,0.163,99,0.903,100,3.466,101,0.009,103,0,104,0,105,1.062,107,1.305,111,2.309,112,2.538,127,0.994,144,1.489,187,0.783,221,2.396,227,1.266,234,1.289,264,4.84,319,1.618,369,1.762,371,2.189,379,1.799,380,1.687,450,2.224,461,1.816,496,3.351,843,2.389,1467,1.728,1801,3.245,1849,5.194,1884,5.594,1936,8.168,1946,5.273,2356,3.86,2357,4.714,2725,2.452,3090,3.433,3579,2.663,3889,8.807,4466,4.61,4510,8.668,4515,6.412,4521,6.412,4522,6.412,4524,6.412,4525,7.592,4530,6.412,4531,8.475,4533,7.147,4534,6.412,4538,6.412,4542,8.105,4546,4.239,4548,4.534,4567,4.373,4600,8.314,4618,5.448,4636,6.647,4637,8.668,4644,10.409,4649,5.414,4650,7.938,4651,5.414,4652,8.847,4653,9.398,4654,8.22,4655,5.414,4656,5.414,4657,5.414,4658,7.938,4659,7.906,4660,5.414,4661,4.189,4662,6.647,4663,5.448,4664,5.414,4665,5.414,4666,8.562,4667,10.187,4668,5.414,4669,6.216,4670,6.647,4671,6.343,4672,7.338,4673,7.338,4674,4.534,4675,5.414,4676,5.414,4677,5.414,4678,5.414,4679,7.938,4680,5.414,4681,5.414,4682,5.414,4683,5.414,4684,5.414,4685,5.414,4686,5.414,4687,5.414,4688,5.414]],["title/injectables/CollaborativeStorageUc.html",[105,0.91,4620,5.694]],["body/injectables/CollaborativeStorageUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,8,1.11,27,0.491,29,0.934,30,0.001,31,0.668,32,0.162,33,0.576,35,1.375,36,2.761,47,0.879,95,0.158,101,0.011,103,0.001,104,0.001,105,1.229,107,1.602,111,1.842,112,2.32,127,1.151,187,0.961,216,1.699,227,1.178,234,1.492,264,4.424,379,1.506,461,2.101,496,4.795,766,3.843,1849,5.699,1946,6.103,3889,4.561,4521,7.421,4522,7.421,4524,7.421,4530,7.421,4531,8.999,4533,7.65,4534,7.421,4538,7.421,4544,7.826,4547,5.566,4600,8.613,4605,10.499,4606,9.511,4608,9.174,4618,6.305,4620,7.693,4623,5.813,4624,6.144,4636,9.511,4638,9.511,4641,5.813,4642,6.144,4644,5.813,4645,5.566,4669,7.193,4670,7.693,4671,7.665,4672,8.492,4673,8.492,4689,12.328,4690,6.646,4691,10.528,4692,6.646,4693,10.528,4694,6.646,4695,6.646,4696,6.646,4697,6.646,4698,6.646,4699,11.357,4700,6.646,4701,9.186,4702,8.492,4703,6.646,4704,6.646,4705,6.646,4706,6.646,4707,6.646,4708,6.646,4709,6.646]],["title/classes/Column.html",[0,0.232,2655,3.617]],["body/classes/Column.html",[0,0.222,2,0.726,3,0.015,4,0.015,5,0.008,7,0.098,8,1.093,27,0.543,29,0.984,30,0.001,31,0.704,32,0.177,33,0.608,35,1.551,36,1.941,47,0.844,55,1.95,59,2.027,95,0.134,101,0.017,103,0.001,104,0.001,112,2.294,116,2.819,148,3.641,165,0.709,208,2.431,217,0.847,221,1.506,227,1.079,334,0.699,347,2.106,363,5.762,404,1.876,595,3.031,596,3.908,661,3.804,687,2.773,692,3.382,728,2.488,806,3.685,884,4.265,1345,2.581,1397,4.1,1790,4.752,1793,6.717,1865,4.123,2557,6.441,2627,2.734,2655,5.986,2749,7.886,2752,6.446,2753,6.446,2754,6.446,2755,6.014,2756,6.446,2758,4.323,2759,5.55,2760,6.603,2762,6.324,2763,5.55,2764,6.473,2766,4.546,2767,4.778,2769,6.541,2770,4.546,2772,6.446,2774,4.546,2776,4.323,2804,5.486,2818,5.157,2843,5.449,3945,6.58,3946,4.73,3947,4.73,3948,5.449,3950,5.691,3956,4.088,3957,6.213,3958,5.095,3961,5.617,4710,6.015,4711,5.691,4712,6.015,4713,6.506,4714,6.506,4715,6.015,4716,6.015,4717,5.691,4718,6.015]],["title/classes/ColumnBoard.html",[0,0.232,2823,4.121]],["body/classes/ColumnBoard.html",[0,0.208,2,0.68,3,0.014,4,0.014,5,0.007,7,0.092,8,1.045,27,0.548,29,0.987,30,0.001,31,0.706,32,0.177,33,0.61,35,1.552,36,1.856,47,0.824,55,1.864,59,1.901,95,0.129,101,0.017,103,0,104,0,112,2.216,116,2.695,148,3.692,165,0.678,199,4.534,208,2.28,217,0.794,221,1.412,227,1.134,334,0.656,347,2.034,363,5.508,404,1.812,595,2.897,596,3.845,661,3.637,687,2.601,692,3.233,728,3.309,806,3.523,884,4.078,1345,2.421,1397,4.017,1790,4.619,1793,6.488,1865,3.942,2557,6.356,2627,2.565,2655,4.603,2749,7.772,2752,6.162,2753,6.162,2754,6.162,2755,5.749,2756,6.162,2758,4.054,2759,5.306,2760,6.419,2762,6.046,2763,5.306,2764,6.292,2766,4.263,2767,4.567,2769,6.318,2770,4.263,2772,6.162,2774,4.263,2776,4.054,2804,5.245,2823,6.631,2845,5.111,3329,8.721,3945,4.436,3946,4.436,3947,4.436,3948,5.111,3950,5.337,3956,3.834,3957,5.939,3958,4.779,3961,5.37,4719,10.678,4720,5.641,4721,6.102,4722,6.102,4723,5.641,4724,6.102,4725,6.102,4726,6.102,4727,6.102,4728,6.102,4729,6.102,4730,8,4731,5.641,4732,5.641,4733,5.641,4734,5.111,4735,5.641]],["title/injectables/ColumnBoardCopyService.html",[105,0.91,2973,5.694]],["body/injectables/ColumnBoardCopyService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.137,26,2.274,27,0.388,29,0.737,30,0.001,31,0.527,32,0.157,33,0.455,35,0.833,36,2.018,39,2.534,95,0.164,99,1.149,101,0.011,103,0.001,104,0.001,105,1.259,107,1.66,111,2.42,112,2.363,127,1.179,138,4.111,187,0.996,188,2.543,216,2.232,217,1.571,221,2.794,227,0.714,234,1.528,305,2.681,416,4.382,450,2.828,461,1.575,595,2.305,731,3.718,766,2.88,1353,3.323,1642,4.903,1852,2.907,1930,7.731,2384,5.641,2524,5.522,2531,3.721,2627,5.072,2823,6.5,2887,4.903,2960,5.391,2963,8.7,2973,7.882,2992,6.919,3009,4.173,3010,3.85,3016,8.232,3047,6.702,3062,6.364,3064,6.364,3066,5.391,3120,5.118,3121,8.706,3228,4.382,3293,10.683,3303,4.903,3304,8.232,3329,6.842,3576,9.654,4593,3.478,4736,9.913,4737,7.409,4738,10.724,4739,6.884,4740,9.412,4741,6.021,4742,6.884,4743,6.364,4744,6.884,4745,6.884,4746,6.884,4747,6.884,4748,3.816,4749,6.364,4750,6.884,4751,6.884,4752,6.884,4753,6.364,4754,6.884,4755,6.364,4756,5.561,4757,6.884,4758,6.884,4759,6.884,4760,6.884,4761,6.884,4762,6.884]],["title/classes/ColumnBoardFactory.html",[0,0.232,4763,6.286]],["body/classes/ColumnBoardFactory.html",[0,0.167,2,0.548,3,0.012,4,0.012,5,0.006,7,0.074,8,0.892,27,0.536,29,1.017,30,0.001,31,0.692,32,0.182,33,0.598,34,1.8,35,1.469,47,0.527,49,1.933,55,2.484,59,3.295,83,2.259,95,0.114,99,0.82,101,0.012,103,0,104,0,127,0.615,138,3.226,144,3.263,145,1.244,148,1.512,165,0.578,185,4.88,199,2.791,216,1.641,217,0.961,227,0.766,234,1.602,319,3.546,359,2.575,366,2.747,379,2.011,380,2.248,381,2.456,404,1.331,538,3.328,591,2.135,592,2.225,596,3.924,627,2.266,660,7.253,661,4.671,662,5.57,665,4.168,666,5.57,667,5.753,668,4.168,669,4.168,670,4.168,671,4.094,672,4.547,673,5.008,674,6.52,675,5.865,676,7.08,677,2.798,682,2.772,683,4.168,684,2.798,685,5.208,686,5.378,687,4.206,688,5.057,689,4.13,690,2.772,691,2.613,692,4.152,693,2.7,694,2.655,695,2.772,696,5.131,697,2.798,698,4.919,699,2.772,700,6.978,701,4.195,702,6.696,703,2.798,704,4.394,705,2.772,706,2.798,707,2.772,708,2.798,709,2.772,710,3.127,711,2.912,712,2.772,713,6.161,714,2.798,715,2.772,716,4.168,717,3.898,718,4.168,719,2.798,720,2.677,721,2.655,722,2.19,723,2.772,724,2.772,725,2.772,726,2.798,727,2.798,728,1.878,729,2.772,730,2.798,731,2.918,732,2.772,733,2.798,734,2.798,736,2.912,737,2.944,1397,1.645,2627,2.064,2655,2.613,2757,3.315,2823,2.977,2887,3.498,3066,3.846,4121,4.833,4734,4.114,4763,8.203,4764,7.385,4765,4.912,4766,9.869,4767,4.912,4768,4.912,4769,4.912]],["title/entities/ColumnBoardNode.html",[380,1.445,3174,5.181]],["body/entities/ColumnBoardNode.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,27,0.43,30,0.001,32,0.167,34,1.367,49,4.559,95,0.167,96,2.199,101,0.017,103,0.001,104,0.001,165,0.817,199,4.635,208,3.003,217,1.046,227,1.082,234,1.305,240,3.676,334,0.864,364,1.901,380,2.217,381,2.674,398,2.368,404,1.88,405,2.142,617,4.456,734,4.579,1790,4.406,2557,5.101,2577,4.537,2578,3.584,2627,4.87,2632,4.806,2887,8.252,3143,5.466,3155,6.255,3174,7.951,3222,4.928,3280,5.517,3329,8.423,3366,9.36,3368,10.135,3391,5.261,3596,6.124,3598,6.398,3619,4.988,4059,5.117,4061,5.117,4770,10.135,4771,7.951,4772,8.038,4773,6.255,4774,8.038,4775,9.647,4776,9.127,4777,9.647,4778,7.431,4779,6.732,4780,7.431,4781,7.431,4782,7.431]],["title/interfaces/ColumnBoardNodeProps.html",[334,0.731,4776,5.947]],["body/interfaces/ColumnBoardNodeProps.html",[0,0.283,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,32,0.16,34,1.415,49,4.198,95,0.169,96,2.276,101,0.018,103,0.001,104,0.001,165,0.836,199,4.968,208,3.108,217,1.083,227,1.106,234,1.351,240,3.737,334,0.894,336,1.991,380,2.267,398,2.451,404,2.123,405,2.217,617,4.612,734,4.74,1790,4.505,2557,5.216,2577,4.696,2578,3.71,2627,3.497,2632,4.914,2887,7.599,3143,5.589,3155,6.395,3174,6.339,3222,5.102,3280,5.71,3329,9.339,3366,6.721,3368,7.277,3391,5.446,3596,6.339,3598,7.222,3619,5.163,4059,5.296,4061,5.296,4770,7.277,4773,4.987,4775,9.864,4776,10.303,4777,9.864,4778,7.692,4779,6.968,4780,7.692,4781,7.692,4782,7.692]],["title/interfaces/ColumnBoardProps.html",[334,0.731,4734,5.694]],["body/interfaces/ColumnBoardProps.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.159,36,1.762,47,0.913,95,0.15,101,0.02,103,0.001,104,0.001,112,1.811,148,2.529,165,0.829,199,4.952,208,3.07,217,1.07,221,1.902,227,1.283,334,0.883,336,1.967,347,1.662,404,2.11,687,3.503,728,4.048,806,4.31,1345,3.261,1397,4.387,1790,3.47,1865,4.822,2557,5.175,2627,3.454,2655,5.631,2749,6.416,2759,5.039,2760,6.212,2763,5.039,2764,6.089,2772,5.853,2804,7.098,2823,7.098,2845,6.883,3329,9.525,3956,5.164,3957,7.266,3958,6.436,3961,6.569,4719,7.598,4720,7.598,4730,9.786,4731,7.598,4732,7.598,4733,7.598,4734,8.866,4735,7.598]],["title/injectables/ColumnBoardService.html",[105,0.91,3570,5.493]],["body/injectables/ColumnBoardService.html",[0,0.152,3,0.011,4,0.011,5,0.005,7,0.067,8,0.829,10,2.77,12,3.143,26,2.364,27,0.487,29,0.925,30,0.001,31,0.661,32,0.161,33,0.571,34,1.598,35,1.394,36,2.669,47,0.888,49,1.755,83,3.522,95,0.137,99,0.744,101,0.007,103,0,104,0,105,0.918,107,1.075,111,2.146,112,2.95,127,0.86,144,1.227,187,0.645,199,3.161,216,1.547,217,1.689,221,2.347,227,1.11,234,2.107,319,2.051,591,4.082,592,4.254,734,2.541,770,4.069,883,2.911,1345,1.77,1397,4.108,1865,2.032,2130,1.949,2131,2.18,2132,2.102,2280,2.541,2531,2.411,2553,2.925,2627,4.838,2655,4.449,2757,6.338,2818,4.765,2823,7.641,2835,6.542,2848,3.313,2892,4.124,3120,3.316,3121,7.48,3248,2.878,3310,6.344,3328,6.344,3329,8.764,3402,8.29,3499,6.002,3570,5.544,3574,9.009,3710,3.901,3859,2.495,4092,6.002,4096,2.391,4114,3.603,4121,6.147,4122,4.124,4736,11.146,4743,4.124,4783,4.461,4784,6.863,4785,6.863,4786,6.863,4787,4.461,4788,6.863,4789,4.461,4790,6.863,4791,4.461,4792,6.863,4793,4.461,4794,6.344,4795,6.863,4796,4.461,4797,6.863,4798,4.461,4799,4.461,4800,6.863,4801,4.461,4802,4.461,4803,6.863,4804,4.461,4805,4.461,4806,6.863,4807,4.461,4808,6.863,4809,4.461,4810,4.461,4811,4.461,4812,4.461,4813,4.461,4814,4.461,4815,4.461,4816,4.461,4817,4.461,4818,4.461,4819,9.391,4820,8.364,4821,4.461,4822,4.461,4823,4.461,4824,4.461,4825,6.863,4826,4.461,4827,4.461,4828,4.461,4829,4.461,4830,4.461,4831,4.461,4832,4.461,4833,4.461,4834,4.461,4835,4.461,4836,4.461,4837,4.461,4838,4.461,4839,6.863,4840,4.461,4841,4.461,4842,6.863,4843,6.863,4844,4.461,4845,4.461,4846,4.461,4847,4.461,4848,4.461,4849,4.461,4850,4.461,4851,4.461,4852,4.461,4853,4.461,4854,4.461,4855,6.863,4856,6.863,4857,4.461,4858,6.863,4859,6.863,4860,4.461,4861,4.461,4862,4.461,4863,6.863,4864,4.461,4865,3.061,4866,3.493,4867,4.461,4868,4.461,4869,4.461,4870,4.461,4871,4.124]],["title/entities/ColumnBoardTarget.html",[380,1.445,2656,4.842]],["body/entities/ColumnBoardTarget.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.118,26,2.422,27,0.471,30,0.001,32,0.155,47,0.815,49,4.494,95,0.162,96,2.135,101,0.017,103,0.001,104,0.001,144,2.146,148,3.15,165,0.802,214,2.461,227,1.062,234,1.267,240,4.099,319,2.333,364,2.081,369,1.732,371,3.15,380,2.175,381,2.596,398,2.299,399,4.061,400,3.444,404,1.406,405,2.08,406,2.538,687,3.327,734,4.446,806,3.178,1345,3.096,1397,4.06,1865,4.663,2545,4.151,2627,5.096,2628,9.495,2632,3.594,2645,6.516,2656,8.635,2735,7.799,2736,7.476,2747,4.028,2748,9.463,2823,6.204,3609,4.968,4771,5.946,4872,11.21,4873,7.805,4874,10.56,4875,7.805,4876,7.805,4877,7.805,4878,4.785,4879,10.237,4880,7.805,4881,7.805,4882,4.904,4883,5.036,4884,7.805,4885,7.805]],["title/injectables/ColumnBoardTargetService.html",[105,0.91,4886,5.694]],["body/injectables/ColumnBoardTargetService.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.11,8,1.181,26,2.744,27,0.455,29,0.865,30,0.001,31,0.618,32,0.15,33,0.534,34,1.663,35,1.184,36,2.53,95,0.158,96,2.675,97,3.15,99,1.215,101,0.012,103,0.001,104,0.001,105,1.308,107,1.756,111,2.365,112,2.792,127,0.912,187,1.053,215,2.324,216,1.808,217,1.602,221,2.731,227,1.145,234,1.182,398,2.146,1345,2.889,1397,3.696,1957,5.549,2355,6.785,2394,5.797,2627,4.958,2656,6.962,2702,5.316,2735,5.549,3319,6.689,3360,6.732,3381,5.883,3570,10.235,4874,6.732,4886,8.188,4887,11.797,4888,7.283,4889,9.777,4890,9.777,4891,7.283,4892,7.283,4893,9.777,4894,7.283,4895,10.203,4896,9.777,4897,7.283,4898,11.037,4899,7.283,4900,7.283,4901,9.777,4902,7.283,4903,7.283,4904,7.283,4905,7.283,4906,7.283,4907,7.283,4908,7.283]],["title/controllers/ColumnController.html",[481,2.611,2721,5.947]],["body/controllers/ColumnController.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.073,8,0.884,10,3.555,27,0.404,29,0.768,30,0.001,31,0.549,32,0.19,33,0.474,35,1.187,36,2.535,59,1.512,95,0.152,100,1.625,101,0.008,103,0,104,0,112,2.796,187,0.702,206,2.469,215,1.549,216,0.897,217,1.146,221,2.27,227,0.503,234,1.188,264,4.122,364,1.787,368,1.901,371,2.018,376,1.11,447,2.011,481,1.863,483,2.314,491,6.313,502,7.335,506,7.736,509,8.592,513,6.7,543,4.99,552,3.131,553,6.379,554,8.332,555,2.523,556,2.581,558,2.328,561,2.602,563,5.879,564,4.829,883,3.104,1016,2.569,1392,7.104,1397,2.45,2644,5.643,2655,5.598,2715,7.377,2721,6.4,2727,2.328,2783,6.308,2818,5.018,2900,7.291,2902,5.911,2904,7.473,2905,7.473,2908,7.736,2910,7.116,2923,8.937,2924,7.923,2925,4.386,2928,3.528,2929,2.791,2930,2.602,2937,3.92,2947,7.116,2948,7.116,2951,4.245,3234,3.607,3282,6.952,3405,5.022,4007,3.049,4015,4.064,4023,4.486,4028,4.245,4055,5.911,4095,6.4,4909,4.853,4910,8.809,4911,7.318,4912,8.809,4913,8.809,4914,4.853,4915,11.224,4916,10.58,4917,9.809,4918,4.853,4919,4.486,4920,4.853,4921,4.853,4922,4.853,4923,4.853,4924,4.853,4925,4.853,4926,8.579,4927,4.853,4928,4.853,4929,4.853,4930,4.853,4931,4.853,4932,6.765,4933,4.853,4934,4.853,4935,4.853,4936,4.853,4937,4.853,4938,9.809,4939,4.853,4940,4.853,4941,4.853,4942,4.853,4943,4.853,4944,4.853,4945,4.853,4946,4.853]],["title/entities/ColumnNode.html",[380,1.445,3171,5.493]],["body/entities/ColumnNode.html",[0,0.323,3,0.022,4,0.022,5,0.011,30,0.001,32,0.129,95,0.172,96,2.598,101,0.016,103,0.001,104,0.001,208,3.548,217,1.236,227,0.985,380,2.463,381,3.159,398,2.798,404,1.711,405,2.531,617,5.265,1790,5.282,2557,5.666,2577,5.36,2578,4.234,3143,6.071,3155,6.947,3171,9.363,3222,5.823,3233,10.715,3280,6.518,3596,7.236,3598,7.107,3619,5.893,4059,6.045,4061,6.045,4770,8.307,4947,9.497]],["title/interfaces/ColumnProps.html",[334,0.731,4717,5.947]],["body/interfaces/ColumnProps.html",[0,0.295,3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.149,36,1.857,47,0.927,95,0.154,101,0.02,103,0.001,104,0.001,112,1.909,148,2.665,165,0.857,208,3.235,217,1.127,221,2.004,227,1.245,334,0.93,336,2.073,347,1.752,404,2.163,687,3.691,728,3.312,806,4.456,1345,3.436,1397,4.447,1790,3.657,1865,4.986,2557,5.35,2627,3.64,2655,6.384,2749,6.634,2759,5.31,2760,6.423,2763,5.31,2764,6.295,2772,6.167,2804,7.274,2818,6.236,2843,7.253,3956,5.441,3957,7.512,3958,6.782,3961,6.792,4710,8.006,4715,8.006,4716,8.006,4717,9.574,4718,8.006]],["title/classes/ColumnResponse.html",[0,0.232,2932,5.493]],["body/classes/ColumnResponse.html",[0,0.28,2,0.916,3,0.019,4,0.019,5,0.01,7,0.124,27,0.528,29,0.644,30,0.001,31,0.46,32,0.178,33,0.566,34,2.177,47,0.882,95,0.159,101,0.014,103,0.001,104,0.001,127,1.326,145,2.081,165,0.829,364,2.253,376,1.88,467,3.438,469,3.608,475,4.017,618,3.361,966,4.182,1011,4.153,1397,4.285,2742,5.974,2745,6.739,2747,4.242,2818,4.682,2883,5.379,2884,5.631,2885,5.631,2932,10.338,3242,9.751,3694,7.589,3698,6.802,3702,5.46,3704,5.46,4131,10.358,4948,8.219,4949,8.219,4950,8.219,4951,8.219,4952,8.219,4953,8.219,4954,8.219,4955,8.219]],["title/classes/ColumnResponseMapper.html",[0,0.232,2936,5.694]],["body/classes/ColumnResponseMapper.html",[0,0.294,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,8,1.319,27,0.356,29,0.675,30,0.001,31,0.483,32,0.148,33,0.417,34,1.467,35,1.044,95,0.154,99,1.439,100,2.887,101,0.014,103,0.001,104,0.001,187,1.247,217,1.122,227,1.132,234,2.044,305,2.457,591,3.748,627,3.675,731,3.407,806,3.511,974,5.113,975,6.051,980,6.57,1397,2.887,1410,4.867,1750,4.842,2384,5.168,2655,6.908,2769,5.418,2818,6.823,2932,10.17,2936,9.142,3047,6.141,3242,6.57,3248,5.564,3694,5.113,3698,6.341,3708,6.41,3714,6.966,3715,6.141,4083,7.542,4085,7.222,4104,6.966,4131,9.142,4956,10.916,4957,10.916,4958,7.972,4959,7.542,4960,8.623,4961,8.623,4962,8.623,4963,8.623,4964,8.623]],["title/injectables/ColumnService.html",[105,0.91,3571,5.947]],["body/injectables/ColumnService.html",[0,0.223,3,0.015,4,0.015,5,0.008,7,0.099,8,1.098,10,3.67,12,4.165,26,2.393,27,0.506,29,0.961,30,0.001,31,0.687,32,0.167,33,0.593,34,1.114,35,1.435,36,2.829,47,0.745,49,2.577,55,2.25,59,2.04,83,2.782,95,0.152,99,1.093,101,0.011,103,0.001,104,0.001,105,1.216,107,1.579,111,1.313,112,3.021,127,0.82,187,0.947,215,2.09,216,1.681,217,1.359,221,2.84,227,0.943,234,1.832,591,2.846,592,2.967,734,3.731,883,3.857,1397,3.97,2531,3.539,2627,2.752,2655,7.388,2757,4.42,2823,7.628,3120,4.868,3121,8.573,3339,5.663,3402,9.356,3405,6.241,3411,9.116,3415,5.484,3571,7.953,4092,7.953,4094,7.953,4114,5.29,4121,4.286,4959,5.728,4965,6.549,4966,6.549,4967,6.549,4968,9.093,4969,6.549,4970,9.093,4971,6.549,4972,8.406,4973,9.093,4974,11.285,4975,6.549,4976,9.093,4977,6.549,4978,6.549,4979,6.549,4980,6.549,4981,6.549,4982,6.549,4983,6.549]],["title/classes/ColumnUrlParams.html",[0,0.232,4915,5.947]],["body/classes/ColumnUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2655,6.283,3795,5.749,4915,10.332,4972,11.723,4984,9.798,4985,9.798]],["title/entities/ColumnboardBoardElement.html",[380,1.445,2654,5.181]],["body/entities/ColumnboardBoardElement.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.142,27,0.388,30,0.001,32,0.128,95,0.16,96,2.574,101,0.016,103,0.001,104,0.001,165,0.903,364,1.714,380,2.449,381,3.13,398,2.772,404,1.695,405,2.507,617,5.216,2577,5.31,2627,5.236,2628,9.025,2651,8.207,2653,7.879,2654,8.781,2655,5.004,2656,9.247,2657,8.229,2702,5.851,3001,7.168,3044,9.652,4872,10.654,4986,9.409,4987,11.525,4988,9.409,4989,4.309,4990,8.229]],["title/injectables/CommonCartridgeExportService.html",[105,0.91,4991,5.694]],["body/injectables/CommonCartridgeExportService.html",[0,0.143,3,0.01,4,0.01,5,0.005,7,0.063,8,0.791,26,2.72,27,0.45,29,0.854,30,0.001,31,0.611,32,0.169,33,0.527,35,1.264,36,2.239,39,2.937,47,0.827,95,0.145,99,0.7,101,0.007,103,0,104,0,105,0.876,107,1.011,111,2.612,112,2.555,127,0.82,130,7.048,145,2.038,150,3.413,187,0.607,188,4.282,216,1.488,217,1.572,221,2.281,227,1.17,234,0.681,235,3.694,264,1.763,290,3.84,318,3.119,693,3.597,1397,3.882,1438,6.738,1750,2.903,1843,3.102,2114,6.652,2303,3.684,2633,5.687,2649,4.656,3013,3.389,3014,3.389,3105,4.166,3833,4.492,4324,4.061,4564,5.287,4991,5.481,4992,11.282,4993,7.194,4994,4.196,4995,8.047,4996,8.047,4997,5.725,4998,8.047,4999,6.545,5000,8.047,5001,4.196,5002,8.54,5003,8.31,5004,4.196,5005,4.196,5006,8.835,5007,7.368,5008,8.806,5009,4.196,5010,4.196,5011,4.196,5012,6.05,5013,4.196,5014,4.196,5015,6.238,5016,4.196,5017,3.967,5018,6.131,5019,6.545,5020,4.196,5021,6.545,5022,4.166,5023,4.196,5024,4.196,5025,7.038,5026,2.988,5027,4.196,5028,3.879,5029,3.389,5030,3.764,5031,4.196,5032,6.05,5033,4.196,5034,3.197,5035,4.196,5036,3.286,5037,4.196,5038,3.286,5039,4.196,5040,4.196,5041,4.196,5042,4.196,5043,2.368,5044,4.196,5045,4.196,5046,5.287,5047,6.545,5048,4.196,5049,3.514,5050,4.166,5051,4.196,5052,5.287,5053,4.196,5054,4.196,5055,3.764,5056,3.879,5057,3.119,5058,2.788,5059,2.832,5060,4.196,5061,4.196,5062,9.856,5063,6.545,5064,6.739,5065,6.545,5066,6.05,5067,8.047,5068,2.988,5069,5.725,5070,6.05,5071,6.05,5072,4.758,5073,4.196,5074,2.988,5075,4.196,5076,5.481,5077,5.725,5078,5.725,5079,2.988,5080,6.545,5081,6.545,5082,4.196,5083,3.879,5084,4.196,5085,4.196,5086,4.196,5087,4.196,5088,6.545,5089,4.196,5090,6.545,5091,4.196,5092,4.196,5093,3.879,5094,4.196,5095,4.196,5096,4.196]],["title/classes/CommonCartridgeFileBuilder.html",[0,0.232,5006,5.324]],["body/classes/CommonCartridgeFileBuilder.html",[0,0.263,2,0.581,3,0.012,4,0.012,5,0.015,7,0.079,8,0.932,27,0.498,29,0.72,30,0.001,31,0.515,32,0.138,33,0.444,35,1.113,36,1.971,47,0.725,95,0.151,101,0.017,103,0,104,0,111,2.653,112,2.026,127,0.967,144,2.794,165,0.604,214,2.898,215,1.663,216,2.464,217,1.478,227,1.178,234,2.132,319,3.037,334,0.829,595,3.077,667,5.142,701,2.728,1397,2.584,1438,4.979,1858,5.322,2114,6.858,2553,3.918,3195,4.789,4993,8.148,5006,6.043,5007,4.171,5008,5.296,5018,8.957,5030,6.239,5036,6.043,5038,6.043,5046,6.234,5050,7.231,5052,4.209,5059,5.209,5097,7.956,5098,7.956,5099,4.364,5100,9.177,5101,8.495,5102,7.742,5103,8.51,5104,7.134,5105,7.134,5106,4.209,5107,8.51,5108,7.717,5109,5.211,5110,5.211,5111,8.51,5112,5.211,5113,7.697,5114,9.177,5115,5.211,5116,9.497,5117,7.697,5118,5.211,5119,5.211,5120,4.209,5121,4.209,5122,3.97,5123,3.711,5124,6.015,5125,3.517,5126,6.043,5127,6.234,5128,4.08,5129,5.495,5130,4.08,5131,6.463,5132,4.209,5133,4.364,5134,4.364,5135,4.364,5136,8.51,5137,4.364,5138,6.463,5139,4.364,5140,4.364,5141,6.463,5142,4.364,5143,4.364,5144,4.364,5145,4.364,5146,4.364,5147,4.364,5148,4.364,5149,4.364,5150,4.364,5151,4.364,5152,4.364,5153,4.209,5154,4.364,5155,4.364,5156,4.364,5157,4.364,5158,4.364,5159,3.362,5160,4.364,5161,4.364,5162,4.364]],["title/classes/CommonCartridgeLtiResource.html",[0,0.232,5163,5.947]],["body/classes/CommonCartridgeLtiResource.html",[0,0.215,2,0.704,3,0.015,4,0.015,5,0.011,7,0.095,8,1.071,27,0.458,29,0.494,30,0.001,31,0.354,32,0.151,33,0.305,35,1.24,47,0.888,95,0.143,101,0.015,103,0.001,104,0.001,111,1.266,127,0.791,150,2.186,214,2.794,215,2.015,216,1.639,217,0.822,227,1.062,307,3.966,309,3.631,319,1.887,347,1.793,371,1.741,379,2.008,405,1.682,595,2.968,1180,3.815,1397,2.968,1438,5.719,2114,7.496,2303,4.502,3957,4.333,4993,7.89,5007,3.412,5008,6.083,5029,5.099,5030,5.891,5064,7.422,5076,5.287,5097,7.548,5098,7.548,5102,7.803,5122,4.81,5123,4.495,5124,6.703,5125,4.261,5159,7.166,5163,7.752,5164,9.797,5165,5.521,5166,8.02,5167,8.971,5168,10.267,5169,6.313,5170,5.836,5171,6.313,5172,6.313,5173,5.287,5174,5.836,5175,6.313,5176,6.313,5177,5.521,5178,6.313,5179,6.313,5180,6.313,5181,5.521,5182,5.521,5183,3.966,5184,5.521,5185,6.313,5186,5.521,5187,6.313,5188,7.422,5189,6.313,5190,6.313,5191,8.193,5192,6.313,5193,6.313,5194,6.313,5195,5.521,5196,8.863,5197,8.863,5198,8.863,5199,8.863,5200,8.863,5201,8.863,5202,8.863,5203,8.863,5204,8.863,5205,6.313,5206,6.313,5207,6.313,5208,6.313,5209,5.888,5210,8.863,5211,8.863,5212,8.863,5213,8.863,5214,6.313,5215,6.313,5216,6.313,5217,6.313,5218,6.313,5219,5.099,5220,5.099,5221,5.521]],["title/classes/CommonCartridgeManifestElement.html",[0,0.232,5126,5.324]],["body/classes/CommonCartridgeManifestElement.html",[0,0.232,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,8,1.13,27,0.386,29,0.535,30,0.001,31,0.382,32,0.127,33,0.33,35,0.826,47,0.487,95,0.155,101,0.016,103,0.001,104,0.001,111,2.303,127,1.172,214,2.95,216,2.124,217,0.888,227,0.97,234,2.018,307,4.289,309,3.926,319,2.04,405,1.819,595,3.133,1180,4.027,1438,6.889,2222,7.603,2553,4.551,4993,8.043,5008,4.685,5030,6.921,5050,7.66,5059,4.607,5076,5.717,5097,6.889,5098,6.889,5101,9.423,5123,4.861,5124,8.606,5125,4.607,5126,7.327,5127,9.721,5129,4.861,5159,7.411,5177,8.184,5181,8.184,5182,8.184,5183,5.879,5184,8.184,5219,7.558,5222,5.345,5223,11.486,5224,10.676,5225,10.618,5226,6.31,5227,6.826,5228,5.97,5229,5.97,5230,8.184,5231,5.97,5232,9.357,5233,6.826,5234,9.357,5235,9.357,5236,9.357,5237,9.357,5238,9.357,5239,6.826,5240,9.357,5241,6.826,5242,6.826,5243,6.826,5244,6.826,5245,9.357,5246,9.357,5247,9.357,5248,9.357,5249,9.357,5250,9.357,5251,6.826,5252,6.826,5253,6.826]],["title/classes/CommonCartridgeMetadataElement.html",[0,0.232,5228,5.947]],["body/classes/CommonCartridgeMetadataElement.html",[0,0.286,2,0.937,3,0.02,4,0.02,5,0.01,7,0.127,8,1.297,27,0.443,29,0.659,30,0.001,31,0.471,32,0.146,33,0.407,35,1.018,47,0.844,59,2.619,95,0.138,101,0.018,103,0.001,104,0.001,127,1.053,214,3.387,215,2.683,216,1.555,227,0.872,405,2.24,595,3.597,1180,4.623,1397,2.815,2222,8.429,3957,5.77,3981,6.111,4993,8.179,5007,4.544,5008,7.372,5030,6.808,5036,6.583,5038,6.583,5097,7.638,5098,7.638,5123,5.987,5124,7.747,5125,5.674,5159,8.048,5195,7.353,5222,6.583,5225,11.531,5226,7.772,5228,9.395,5254,8.407,5255,8.407,5256,8.407,5257,8.407,5258,8.407,5259,8.407,5260,10.742,5261,8.407,5262,8.407,5263,8.407,5264,8.407,5265,8.407,5266,8.407]],["title/classes/CommonCartridgeOrganizationBuilder.html",[0,0.232,5132,5.493]],["body/classes/CommonCartridgeOrganizationBuilder.html",[0,0.283,2,0.644,3,0.014,4,0.014,5,0.014,7,0.087,8,1.005,27,0.44,29,0.652,30,0.001,31,0.466,32,0.133,33,0.402,35,0.699,36,1.785,47,0.761,95,0.156,101,0.018,103,0,104,0,111,2.434,112,1.274,127,1.043,214,3.075,215,1.844,216,2.298,217,1.533,227,1.222,234,2.086,334,0.894,405,1.54,595,3.266,667,3.945,701,2.043,884,3.922,1397,2.787,1438,5.37,1858,4.359,2114,7.634,2553,4.158,3195,5.165,4993,7.973,5006,4.525,5007,4.498,5008,5.712,5018,9.25,5030,6.506,5036,6.517,5038,6.517,5046,6.723,5050,7.499,5052,4.668,5059,7.203,5097,7.298,5098,7.298,5099,4.839,5100,8.621,5101,7.638,5102,8.131,5103,8.938,5107,6.97,5111,9.473,5113,6.97,5114,9.516,5116,10.038,5117,6.97,5120,4.668,5121,4.668,5122,4.403,5123,4.115,5124,6.384,5125,3.9,5126,6.517,5127,6.723,5128,4.525,5129,5.927,5130,4.525,5131,8.169,5132,6.723,5133,4.839,5134,4.839,5135,4.839,5136,8.938,5137,4.839,5138,6.97,5139,4.839,5140,4.839,5141,6.97,5142,4.839,5143,4.839,5144,4.839,5145,4.839,5146,4.839,5147,4.839,5148,4.839,5149,4.839,5150,4.839,5151,4.839,5152,4.839,5153,4.668,5154,4.839,5155,4.839,5156,4.839,5157,4.839,5158,4.839,5159,3.729,5160,4.839,5161,4.839,5162,4.839,5267,7.694,5268,5.779,5269,5.779,5270,5.779,5271,5.779,5272,5.779,5273,5.779]],["title/classes/CommonCartridgeOrganizationItemElement.html",[0,0.232,5130,5.324]],["body/classes/CommonCartridgeOrganizationItemElement.html",[0,0.285,2,0.932,3,0.02,4,0.02,5,0.01,7,0.126,8,1.292,27,0.441,29,0.654,30,0.001,31,0.468,32,0.145,33,0.404,35,1.011,47,0.842,95,0.152,101,0.018,103,0.001,104,0.001,127,1.047,214,3.373,215,2.667,216,1.545,227,1.109,405,2.226,595,3.582,1180,4.605,1397,3.952,1438,7.615,2553,3.561,3195,7.982,3341,6.749,3957,5.734,4993,7.982,5007,4.516,5018,8.151,5030,6.153,5032,9.89,5050,5.318,5059,7.966,5066,7.724,5097,7.615,5098,7.615,5114,10.052,5124,7.725,5125,5.639,5129,5.95,5130,8.378,5159,8.03,5191,7.724,5219,6.749,5222,6.542,5274,8.355,5275,8.355,5276,8.355,5277,8.355]],["title/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.232,5229,5.947]],["body/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.299,2,0.98,3,0.021,4,0.021,5,0.011,7,0.133,8,1.335,27,0.456,29,0.689,30,0.001,31,0.492,32,0.12,33,0.425,35,1.064,95,0.113,101,0.015,103,0.001,104,0.001,127,1.101,214,3.484,215,2.806,216,1.626,227,0.912,905,3.661,1180,4.756,1438,7.131,3195,6.857,4993,7.868,5030,5.057,5059,8.558,5097,7.798,5098,7.798,5124,8.727,5125,5.934,5159,8.181,5222,6.885,5229,9.666,5230,10.571,5278,8.793,5279,8.128,5280,11.051,5281,8.128,5282,8.793,5283,6.885,5284,8.793,5285,8.128,5286,8.793,5287,8.793,5288,8.793]],["title/classes/CommonCartridgeResourceItemElement.html",[0,0.232,5128,5.324]],["body/classes/CommonCartridgeResourceItemElement.html",[0,0.23,2,0.755,3,0.016,4,0.016,5,0.008,7,0.102,8,1.124,27,0.495,29,0.53,30,0.001,31,0.379,32,0.144,33,0.327,35,1.287,47,0.663,95,0.163,101,0.016,103,0.001,104,0.001,111,2.131,127,0.848,165,0.729,214,2.933,216,1.966,227,1.102,234,1.858,305,1.928,347,1.882,405,2.479,595,2.266,1180,4.004,1345,2.686,2114,7.725,2280,3.856,2303,4.864,3195,7.693,4333,6.86,4993,8.391,5018,8.72,5025,8.137,5029,5.468,5030,7.13,5069,5.92,5077,5.92,5078,5.92,5097,7.999,5098,7.999,5102,9.141,5122,5.157,5123,4.82,5124,7.491,5125,4.568,5128,7.285,5129,9.346,5159,7.385,5163,5.92,5164,5.669,5166,8.963,5167,9.245,5168,8.6,5173,5.669,5174,6.257,5222,5.3,5289,8.902,5290,9.303,5291,6.769,5292,6.769,5293,6.769,5294,5.92,5295,7.515,5296,5.92,5297,8.6,5298,10.63,5299,6.769,5300,6.769,5301,6.769,5302,6.769,5303,6.769,5304,6.769,5305,6.769]],["title/classes/CommonCartridgeResourceWrapperElement.html",[0,0.232,5231,5.947]],["body/classes/CommonCartridgeResourceWrapperElement.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.471,29,0.727,30,0.001,31,0.52,32,0.126,33,0.449,35,1.123,95,0.119,101,0.015,103,0.001,104,0.001,127,1.162,214,3.603,215,2.962,216,1.716,227,0.962,1180,4.918,4993,8.019,5030,5.337,5097,7.99,5098,7.99,5124,8.844,5125,6.262,5129,9.203,5159,8.339,5222,7.266,5230,10.831,5231,9.995,5279,8.577,5281,8.577,5306,9.279,5307,11.427,5308,9.279,5309,9.279]],["title/classes/CommonCartridgeWebContentResource.html",[0,0.232,5294,5.947]],["body/classes/CommonCartridgeWebContentResource.html",[0,0.261,2,0.855,3,0.018,4,0.018,5,0.012,7,0.116,8,1.223,27,0.497,29,0.601,30,0.001,31,0.43,32,0.164,33,0.371,35,1.371,47,0.917,95,0.145,101,0.017,103,0.001,104,0.001,127,0.961,214,3.191,215,2.448,216,1.418,227,1.175,347,2.047,371,2.115,405,2.044,595,3.389,1180,4.356,1397,2.568,1438,6.53,2303,5.459,4993,8.259,5007,4.146,5008,6.946,5025,10.535,5028,9.356,5029,6.196,5030,6.515,5064,8.476,5069,6.709,5070,9.356,5071,7.091,5072,5.576,5097,8.079,5098,8.079,5123,5.463,5124,7.413,5125,5.177,5159,7.772,5165,6.709,5166,8.87,5167,9.729,5170,7.091,5173,6.424,5219,6.196,5220,6.196,5221,6.709,5294,8.852,5295,10.114,5310,7.091,5311,7.671,5312,7.671,5313,7.671,5314,7.671]],["title/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.232,5296,5.947]],["body/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.231,2,0.756,3,0.016,4,0.016,5,0.011,7,0.102,8,1.125,27,0.472,29,0.531,30,0.001,31,0.38,32,0.156,33,0.328,35,1.288,47,0.884,95,0.147,101,0.016,103,0.001,104,0.001,111,1.359,127,0.849,150,3.225,214,2.936,215,2.164,216,1.722,217,0.882,227,1.188,307,4.26,309,3.9,319,2.026,347,1.884,371,1.87,405,1.807,595,3.118,1180,4.009,1397,3.118,1438,6.01,2114,7.73,2280,6.839,2303,4.643,2702,3.055,3957,4.653,4993,8.03,5007,3.664,5008,6.392,5029,5.477,5030,6.119,5064,8.91,5076,5.678,5077,5.93,5078,5.93,5097,7.746,5098,7.746,5102,8.106,5122,5.166,5123,4.828,5124,6.963,5125,4.576,5153,7.523,5159,7.39,5165,5.93,5166,8.331,5167,9.252,5173,5.678,5177,8.146,5181,8.146,5182,8.146,5183,5.852,5184,8.146,5188,5.678,5195,5.93,5219,5.477,5220,5.477,5221,5.93,5295,9.698,5296,8.146,5297,10.588,5310,6.268,5315,6.78,5316,6.78,5317,6.78,5318,10.639,5319,6.78,5320,6.78,5321,6.78,5322,6.78,5323,9.314,5324,9.314,5325,6.78,5326,9.314,5327,6.78]],["title/modules/CommonToolModule.html",[425,1.812,5328,4.943]],["body/modules/CommonToolModule.html",[0,0.267,3,0.019,4,0.019,5,0.009,30,0.001,95,0.162,101,0.013,103,0.001,104,0.001,187,1.135,191,4.352,192,2.339,381,2.611,425,3.052,427,2.836,428,3.051,429,3.141,430,3.128,431,3.115,432,4.215,433,4.33,438,6.063,442,4.112,443,3.076,444,3.002,449,4.077,450,3.225,766,3.284,1467,2.506,1852,3.315,1854,5.215,1933,10.288,1959,4.278,2471,5.138,5328,10.347,5329,7.85,5330,7.85,5331,7.85,5332,7.85,5333,8.238,5334,10.837,5335,10.837,5336,10.837,5337,7.85,5338,6.341,5339,6.866,5340,7.85,5341,7.85,5342,7.85,5343,6.574]],["title/injectables/CommonToolService.html",[105,0.91,5334,5.324]],["body/injectables/CommonToolService.html",[0,0.276,3,0.019,4,0.019,5,0.01,7,0.123,8,1.269,27,0.433,29,0.823,30,0.001,31,0.588,32,0.143,33,0.508,35,1.271,95,0.168,101,0.014,103,0.001,104,0.001,105,1.405,107,1.957,111,2.334,139,7.403,140,7.015,158,6.584,187,1.174,192,2.42,199,3.069,200,3.627,201,5.924,227,1.207,334,0.872,347,2.124,1031,2.544,5334,8.225,5344,10.763,5345,6.559,5346,11.643,5347,10.504,5348,8.119,5349,8.119,5350,8.291,5351,10.504,5352,7.799,5353,11.643,5354,8.119,5355,8.119,5356,8.119,5357,10.504,5358,6.8,5359,7.506,5360,8.119,5361,8.119]],["title/injectables/CommonToolValidationService.html",[105,0.91,5335,5.324]],["body/injectables/CommonToolValidationService.html",[0,0.143,3,0.01,4,0.01,5,0.005,7,0.063,8,0.789,27,0.478,29,0.907,30,0.001,31,0.696,32,0.164,33,0.545,35,1.365,47,0.826,95,0.145,101,0.011,103,0,104,0,105,0.874,107,1.009,111,2.611,116,3.609,136,8.164,139,4.416,140,4.241,144,1.797,145,3.105,148,3.871,158,4.438,165,0.512,181,8.275,187,0.606,192,1.248,195,2.826,196,7.011,199,1.582,200,2.503,201,4.089,209,4.053,217,1.358,227,0.434,234,1.694,264,5.341,279,3.044,281,3.113,290,4.715,298,3.279,305,2.587,310,5.472,312,5.472,314,5.472,319,1.251,321,5.472,324,5.472,325,5.472,326,4.857,347,1.991,368,1.641,369,2.015,371,3.267,494,2.51,503,6.037,511,2.116,558,2.009,627,2.466,728,1.601,806,2.66,846,2.982,1031,1.312,1431,2.385,1904,1.751,2006,2.598,2035,2.263,2146,2.826,2257,2.538,3284,5.472,5335,5.117,5344,10.952,5362,3.279,5363,8.036,5364,6.534,5365,6.534,5366,6.534,5367,6.534,5368,6.534,5369,6.534,5370,6.534,5371,6.534,5372,6.534,5373,12.93,5374,4.187,5375,3.662,5376,6.534,5377,3.871,5378,6.534,5379,12.431,5380,4.187,5381,6.534,5382,4.187,5383,6.534,5384,4.187,5385,6.534,5386,4.187,5387,6.534,5388,12.263,5389,4.187,5390,6.534,5391,4.187,5392,6.534,5393,4.187,5394,4.187,5395,4.187,5396,4.187,5397,4.187,5398,4.187,5399,6.534,5400,4.187,5401,4.187,5402,4.187,5403,4.187,5404,3.871,5405,4.187,5406,2.598,5407,6.534,5408,4.187,5409,4.187,5410,4.187,5411,5.715,5412,6.534,5413,4.187,5414,4.187,5415,4.187,5416,4.187,5417,3.662,5418,4.187,5419,6.534,5420,4.187,5421,3.871,5422,6.534,5423,3.507,5424,3.507,5425,4.187,5426,4.187,5427,3.382,5428,4.187,5429,2.74]],["title/classes/ConsentRequestBody.html",[0,0.232,5430,5.694]],["body/classes/ConsentRequestBody.html",[0,0.286,2,0.653,3,0.014,4,0.014,5,0.007,7,0.088,27,0.514,30,0.001,32,0.169,33,0.656,34,1.429,47,0.844,55,2.117,95,0.126,101,0.01,103,0,104,0,116,1.823,165,0.658,204,4.135,247,3.292,277,3.391,339,7.981,340,4.729,342,8.594,344,9.544,345,7.694,347,1.699,361,5.952,364,2.271,368,5.111,369,2.181,370,4.297,371,3.832,373,4.504,374,1.869,376,1.339,379,2.433,404,1.514,461,1.922,467,2.817,470,3.514,471,4.352,502,3.633,506,3.831,564,2.146,565,4.188,596,3.468,728,4.106,1035,5.869,1142,2.711,1342,3.678,1421,4.255,1433,3.589,1820,7.343,1909,6.578,2075,3.217,2257,7.172,2450,3.335,2468,5.035,3580,4.371,4588,4.336,4669,6.578,5406,3.633,5430,7.036,5431,10.736,5432,10.073,5433,7.036,5434,7.036,5435,6.578,5436,5.854,5437,5.854,5438,6.431,5439,5.854,5440,4.903,5441,7.348,5442,5.598,5443,7.348,5444,7.766,5445,7.348,5446,5.854,5447,5.412,5448,7.766,5449,6.107,5450,9.925,5451,6.245,5452,7.766,5453,5.854,5454,8.407,5455,4.46,5456,5.12,5457,5.12,5458,5.12,5459,5.412,5460,3.831,5461,6.401,5462,5.869,5463,4.46,5464,4.729,5465,4.46,5466,4.903,5467,4.729,5468,5.412,5469,4.903,5470,5.412,5471,4.46,5472,5.412,5473,5.12,5474,4.903,5475,5.12,5476,5.412,5477,5.348,5478,6.786,5479,5.412]],["title/classes/ConsentResponse.html",[0,0.232,5480,5.493]],["body/classes/ConsentResponse.html",[0,0.337,2,0.552,3,0.012,4,0.012,5,0.006,7,0.075,27,0.536,29,0.388,30,0.001,31,0.277,32,0.177,33,0.666,34,1.686,47,0.954,70,5.258,72,3.367,77,6.76,95,0.127,101,0.008,103,0,104,0,127,0.621,137,7.368,144,2.044,145,1.882,150,2.573,165,0.582,199,3.371,339,7.368,346,7.098,347,1.503,349,5.016,355,4.481,356,9.288,357,7.801,359,2.591,361,7.273,364,2.347,367,5.317,368,3.883,369,2.357,370,3.673,371,3.514,374,1.581,376,1.133,379,2.695,461,2.551,467,3.413,470,4.146,471,5.223,522,5.82,1013,2.269,1795,4.017,1820,6.15,1865,3.385,1920,6.309,2241,5.016,2257,6.007,2450,5.081,3303,5.293,3433,3.461,3580,4.708,4051,4.002,4194,8.663,5442,5.646,5474,6.224,5477,6.309,5480,9.341,5481,4.954,5482,8.245,5483,8.245,5484,7.47,5485,7.47,5486,7.47,5487,7.205,5488,7.432,5489,4.954,5490,9.753,5491,4.954,5492,7.801,5493,7.432,5494,4.954,5495,7.432,5496,6.224,5497,4.954,5498,7.47,5499,8.245,5500,4.954,5501,4.954,5502,7.432,5503,6.501,5504,4.954,5505,7.432,5506,4.954,5507,7.47,5508,4.954,5509,7.432,5510,8.669,5511,6.689,5512,4.954,5513,4.954,5514,4.954,5515,6.871,5516,6.871,5517,4.954,5518,4.954,5519,4.333,5520,4.58,5521,4.58,5522,4.58]],["title/classes/ConsentSessionResponse.html",[0,0.232,5523,5.694]],["body/classes/ConsentSessionResponse.html",[0,0.349,2,0.87,3,0.018,4,0.018,5,0.009,7,0.118,27,0.5,29,0.611,30,0.001,31,0.64,32,0.165,33,0.637,34,1.741,47,1,95,0.131,101,0.013,103,0.001,104,0.001,127,0.978,145,3.421,165,0.802,339,7.61,361,6.98,364,2.081,367,4.881,374,2.491,376,1.785,379,2.589,467,3.181,471,4.149,1013,4.688,1518,8.135,1531,7.215,1820,6.352,3580,4.937,4194,9.377,5490,6.826,5523,8.573,5524,12.591,5525,7.215,5526,8.945,5527,9.463,5528,12.126,5529,7.805,5530,5.103,5531,9.463,5532,7.805,5533,7.805,5534,7.805,5535,7.805,5536,7.805]],["title/modules/ConsoleWriterModule.html",[425,1.812,3566,5.324]],["body/modules/ConsoleWriterModule.html",[0,0.327,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.39,425,3.351,427,3.472,428,3.735,429,3.845,430,3.829,431,3.813,432,4.628,433,4.753,442,4.672,443,3.766,444,3.675,3481,9.448,3491,6.038,3566,10.8,5537,9.611,5538,9.611,5539,9.611,5540,8.884,5541,7.763,5542,9.611,5543,8.406]],["title/injectables/ConsoleWriterService.html",[105,0.91,3481,4.517]],["body/injectables/ConsoleWriterService.html",[0,0.334,3,0.03,4,0.023,5,0.012,7,0.148,8,1.427,27,0.404,29,0.767,30,0.001,31,0.549,32,0.133,33,0.474,35,1.186,47,0.904,95,0.126,101,0.016,103,0.001,104,0.001,105,1.58,107,2.362,148,3.635,187,1.417,731,3.871,1187,4.672,1188,4.617,1189,4.617,2848,5.702,3481,7.848,3491,6.156,5540,10.92,5541,9.542,5544,9.798,5545,11.812,5546,9.798,5547,9.798]],["title/injectables/ContentElementFactory.html",[105,0.91,3574,5.493]],["body/injectables/ContentElementFactory.html",[0,0.203,3,0.014,4,0.014,5,0.01,7,0.09,8,1.027,27,0.491,29,0.466,30,0.001,31,0.333,32,0.155,33,0.288,34,1.946,35,1.44,49,2.341,83,3.956,95,0.164,101,0.01,103,0,104,0,105,1.137,107,1.434,111,2.71,150,2.06,167,2.189,187,0.86,200,1.853,208,2.223,209,1.966,217,1.489,227,1.234,234,2.253,305,1.695,307,3.738,309,6.579,319,1.778,591,4.972,592,5.182,667,4.028,734,3.389,1397,1.992,2280,3.389,2545,3.164,2553,5.875,2757,7.3,2826,5.562,2829,5.562,2832,5.562,2835,5.484,2838,5.34,2846,8.316,2847,4.422,2848,4.102,2849,2.573,2850,3.566,3228,3.787,3251,3.527,3253,3.527,3259,4.386,3262,3.048,3556,5.203,3574,6.865,4096,5.798,4121,7.487,4169,9.46,5209,7.904,5548,12.247,5549,5.949,5550,10.816,5551,9.998,5552,10.816,5553,10.816,5554,10.816,5555,8.498,5556,5.949,5557,5.949,5558,5.949,5559,5.949,5560,5.949,5561,5.949,5562,3.839,5563,5.949,5564,3.839,5565,5.949,5566,3.839,5567,5.949,5568,3.839,5569,5.949,5570,3.839,5571,5.949,5572,5.949]],["title/classes/ContentElementResponseFactory.html",[0,0.232,4016,5.493]],["body/classes/ContentElementResponseFactory.html",[0,0.265,2,0.869,3,0.018,4,0.018,5,0.012,7,0.118,8,1.235,27,0.422,29,0.61,30,0.001,31,0.436,32,0.155,33,0.377,35,0.943,95,0.173,99,1.3,100,2.608,101,0.013,103,0.001,104,0.001,111,2.288,144,2.142,165,0.801,187,1.126,200,2.426,209,2.574,217,1.331,227,0.808,234,1.265,305,2.219,319,2.328,627,3.963,975,5.668,1750,4.535,2021,7.201,2029,7.201,2051,4.437,2280,4.437,2547,8.484,2553,5.81,2554,7.789,2556,9.219,2557,5.923,2847,5.791,2848,3.76,2849,3.369,2850,4.669,3228,4.958,3709,8.359,4016,8.258,5573,11.412,5574,10.55,5575,10.224,5576,10.224,5577,10.224,5578,10.224,5579,10.224,5580,7.79,5581,6.1,5582,6.813,5583,6.813,5584,6.813,5585,6.813,5586,6.813,5587,10.224,5588,7.79,5589,7.79,5590,7.79,5591,6.813,5592,7.79]],["title/injectables/ContentElementService.html",[105,0.91,3572,5.055]],["body/injectables/ContentElementService.html",[0,0.207,3,0.014,4,0.014,5,0.007,7,0.092,8,1.043,10,3.485,12,3.955,26,2.316,27,0.494,29,0.939,30,0.001,31,0.671,32,0.174,33,0.58,34,1.035,35,1.397,36,2.786,55,2.162,95,0.158,99,1.015,101,0.01,103,0,104,0,105,1.155,107,1.467,111,2.19,112,2.989,127,1.082,187,0.88,216,2.02,217,1.422,221,2.853,227,1.041,234,1.402,305,1.733,883,3.663,982,3.033,2303,4.429,2531,3.288,2553,5.462,2627,2.557,2644,3.262,2818,7.022,2925,5.175,3120,4.523,3121,8.374,3339,5.483,3351,5.321,3402,9.164,3405,5.926,3411,8.826,3415,5.095,3572,6.419,3574,9.958,3575,9.958,4094,7.553,4096,5.857,4114,4.915,4159,4.915,4169,11.365,4181,10.1,5591,5.321,5593,11.396,5594,6.084,5595,6.084,5596,6.084,5597,8.635,5598,6.084,5599,8.635,5600,6.084,5601,8.635,5602,6.084,5603,8.635,5604,7.151,5605,6.084,5606,6.084,5607,5.321,5608,6.084,5609,4.523,5610,4.764,5611,5.624,5612,6.084,5613,6.084,5614,6.084,5615,6.084,5616,6.084,5617,6.084,5618,4.423,5619,6.084,5620,6.084,5621,6.084,5622,6.084,5623,6.084]],["title/injectables/ContentElementUpdateVisitor.html",[105,0.91,5607,5.947]],["body/injectables/ContentElementUpdateVisitor.html",[0,0.159,3,0.011,4,0.011,5,0.006,7,0.071,8,0.859,27,0.519,29,0.972,30,0.001,31,0.695,32,0.173,33,0.6,35,1.478,36,2.875,95,0.14,99,0.78,101,0.008,103,0,104,0,105,0.951,107,1.126,111,2.273,112,3.032,127,0.585,145,1.801,165,0.557,187,0.676,209,2.35,214,1.473,216,1.779,217,0.925,221,1.082,227,1.346,234,0.759,469,2.051,520,3.104,806,4.215,982,2.329,1865,2.128,1959,2.546,2303,4.196,2473,4.087,2553,5.484,2557,4.703,2616,8.106,2655,5.506,2764,4.09,2794,2.771,2818,5.897,2823,6.274,2826,6.775,2829,6.775,2832,6.775,2835,6.68,2838,6.504,2841,5.97,2846,3.397,2849,2.021,2852,5.955,2853,5.955,2854,5.955,2855,5.955,2856,5.955,2857,5.955,2858,5.955,2860,5.955,2861,5.955,2862,5.955,2863,5.955,2864,5.955,2865,5.955,2866,5.955,2867,5.955,2868,5.955,2869,5.955,2925,2.801,3033,4.32,3259,2.412,3448,6.686,3575,9.157,5593,11.771,5604,7.137,5607,6.22,5609,3.474,5610,3.659,5611,4.32,5624,4.673,5625,7.111,5626,7.111,5627,7.111,5628,7.111,5629,4.673,5630,3.207,5631,4.673,5632,4.673,5633,4.673,5634,4.673,5635,4.673,5636,4.673,5637,4.673,5638,4.673,5639,6.574,5640,4.673,5641,4.32,5642,3.913,5643,4.724,5644,4.724,5645,4.724,5646,4.724,5647,4.724,5648,4.673,5649,4.673,5650,4.673,5651,4.32,5652,4.673,5653,7.111,5654,4.32,5655,4.673,5656,4.673,5657,4.673,5658,4.673,5659,4.673,5660,4.673,5661,4.32,5662,4.673,5663,4.32,5664,4.673,5665,4.32,5666,4.673,5667,4.673,5668,4.673,5669,4.673,5670,4.32,5671,4.673,5672,4.673,5673,4.32,5674,4.673,5675,7.111,5676,4.32,5677,4.673,5678,7.111,5679,4.32,5680,4.673,5681,4.673,5682,7.111,5683,4.673,5684,3.775,5685,4.32,5686,4.673,5687,4.32,5688,4.673]],["title/classes/ContentElementUrlParams.html",[0,0.232,5689,5.947]],["body/classes/ContentElementUrlParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,1000,4.795,2553,5.02,3795,5.721,5689,10.301,5690,11.778,5691,9.013,5692,11.699,5693,9.013]],["title/classes/ContextExternalTool.html",[0,0.232,140,3.589]],["body/classes/ContextExternalTool.html",[0,0.244,2,0.798,3,0.017,4,0.017,5,0.009,7,0.108,8,1.167,27,0.54,29,0.958,30,0.001,31,0.401,32,0.175,33,0.591,34,1.86,35,0.866,47,0.872,55,2.635,95,0.157,101,0.016,103,0.001,104,0.001,127,0.896,140,5.098,165,0.757,181,7.557,192,2.132,194,4.682,199,2.704,200,4.355,201,3.64,214,3.046,227,0.742,334,0.769,404,1.741,405,2.574,595,2.395,596,2.182,1872,6.803,4038,4.439,5352,7.56,5694,7.611,5695,11.461,5696,5.602,5697,8.576,5698,5.959,5699,8.923,5700,8.923,5701,9.808,5702,8.93,5703,7.153,5704,7.153,5705,7.153,5706,9.46,5707,7.153,5708,5.2,5709,7.153,5710,5.602,5711,5.094,5712,5.45,5713,6.613,5714,6.613,5715,6.613,5716,6.613,5717,4.553,5718,4.909,5719,4.752,5720,5.2,5721,6.879,5722,5.318]],["title/injectables/ContextExternalToolAuthorizableService.html",[105,0.91,5723,5.493]],["body/injectables/ContextExternalToolAuthorizableService.html",[0,0.296,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,12,5.02,26,2.675,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,34,1.476,35,1.051,36,2.35,40,5.291,95,0.167,99,1.448,101,0.014,103,0.001,104,0.001,105,1.466,107,2.092,112,2.648,127,1.087,140,6.66,187,1.255,200,4.139,209,3.97,214,2.736,215,2.77,216,1.605,217,1.129,221,2.009,227,0.9,450,3.565,1868,8.854,1904,3.63,2725,3.932,3117,8.023,5336,10.407,5694,6.978,5723,8.854,5724,10.508,5725,8.023,5726,8.679,5727,8.679,5728,8.679]],["title/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.232,5729,5.694]],["body/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.011,7,0.138,27,0.467,29,0.717,30,0.001,31,0.513,32,0.167,33,0.443,95,0.146,101,0.015,103,0.001,104,0.001,127,1.146,145,2.317,163,4.068,165,0.887,199,3.459,200,4.006,209,4.251,364,1.667,376,2.093,467,2.973,1006,6.394,1009,6.455,1011,4.624,1026,5.073,1268,7.546,2130,5.618,2559,5.575,5729,9.489,5730,11.377,5731,11.028,5732,8.873,5733,8.46]],["title/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.232,5731,5.493]],["body/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.251,2,0.821,3,0.017,4,0.017,5,0.009,7,0.111,26,2.619,27,0.535,29,0.928,30,0.001,31,0.664,32,0.179,33,0.537,47,0.845,55,2.121,95,0.143,99,1.229,101,0.012,103,0.001,104,0.001,127,0.922,145,1.864,165,0.771,200,4.108,209,4.359,364,2.315,375,4.227,376,1.684,467,3.54,1011,3.72,1431,4.194,2095,2.921,2130,5.835,2559,5.975,5007,5.998,5719,4.891,5730,12.192,5731,9.977,5734,6.806,5735,7.754,5736,6.264,5737,8.067,5738,9.104,5739,9.849,5740,6.806,5741,6.806,5742,6.806,5743,9.279,5744,6.806,5745,6.806,5746,6.44,5747,6.166,5748,6.806,5749,7.363,5750,7.363,5751,6.806,5752,4.819,5753,6.806,5754,6.806,5755,5.765,5756,6.806]],["title/classes/ContextExternalToolContextParams.html",[0,0.232,5757,5.694]],["body/classes/ContextExternalToolContextParams.html",[0,0.373,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,27,0.452,30,0.001,32,0.149,47,0.782,95,0.154,101,0.014,103,0.001,104,0.001,145,2.198,165,0.859,197,8.479,198,4.216,200,4.139,209,3.97,316,6.18,364,1.996,368,4.945,369,2.801,370,3.958,371,3.48,374,2.77,376,1.985,467,3.152,1000,4.462,1031,2.72,1044,4.164,2536,7.564,2889,5.427,4773,7.2,5694,6.978,5757,9.179,5758,9.704,5759,8.679,5760,7.548,5761,7.591,5762,8.679,5763,8.679,5764,8.679,5765,8.679,5766,8.679,5767,7.591]],["title/entities/ContextExternalToolEntity.html",[380,1.445,5768,4.943]],["body/entities/ContextExternalToolEntity.html",[0,0.239,3,0.017,4,0.017,5,0.008,7,0.106,27,0.517,29,0.91,30,0.001,32,0.17,33,0.461,47,0.894,55,2.333,95,0.156,96,1.919,101,0.016,103,0.001,104,0.001,165,0.747,192,2.091,199,2.652,200,4.329,209,2.319,240,4.138,334,0.754,364,2.283,369,2.578,370,2.311,380,2.026,381,2.334,386,3.997,398,2.067,399,3.783,402,2.908,404,1.264,405,1.87,406,2.282,1530,5.216,1858,4.994,4265,4.996,4271,5.196,4272,4.252,4773,6.964,4989,4.96,5352,6.817,5694,7.447,5698,5.912,5717,4.466,5718,4.815,5719,4.661,5720,5.1,5721,4.996,5722,5.216,5760,7.3,5768,6.931,5769,10.737,5770,5.668,5771,9.73,5772,7.016,5773,10.162,5774,7.016,5775,7.016,5776,9.257,5777,7.016,5778,8.446,5779,7.016,5780,7.016,5781,5.876,5782,4.527,5783,7.985,5784,6.486,5785,6.486,5786,6.486,5787,6.137,5788,5.876,5789,5.668,5790,5.876]],["title/classes/ContextExternalToolFactory.html",[0,0.232,5791,6.286]],["body/classes/ContextExternalToolFactory.html",[0,0.159,2,0.522,3,0.011,4,0.011,5,0.006,7,0.071,8,0.86,27,0.531,29,1.025,30,0.001,31,0.705,32,0.18,33,0.6,34,1.466,35,1.45,47,0.834,49,1.843,55,2.444,59,3.399,95,0.14,96,1.281,97,2.026,101,0.008,103,0,104,0,127,0.587,138,3.112,140,2.472,144,3.359,145,2.183,148,1.441,165,0.558,181,4.596,185,4.825,188,1.73,197,2.943,200,2.685,201,2.383,209,1.548,216,1.317,217,0.927,227,0.739,234,1.157,264,1.968,316,3.335,319,3.494,359,2.484,366,2.619,379,1.954,380,1.832,381,2.37,404,1.284,538,3.21,596,3.886,627,2.186,660,7.001,661,4.587,662,5.437,665,4.02,666,5.437,667,5.542,668,4.02,669,4.02,670,4.02,671,3.949,672,4.417,673,4.865,674,6.425,675,5.745,676,6.956,677,2.668,682,2.643,683,4.02,684,2.668,685,5.084,686,5.249,687,4.106,688,4.936,689,3.984,690,2.643,691,2.491,692,4.077,693,2.574,694,2.531,695,2.643,696,5.008,697,2.668,698,4.779,699,2.643,700,7.105,701,4.134,702,6.599,703,2.668,704,3.527,705,2.643,706,2.668,707,2.643,708,2.668,709,2.643,712,2.643,713,6.05,714,2.668,715,2.643,716,4.02,717,3.76,718,4.02,719,2.668,720,2.552,721,2.531,722,2.088,723,2.643,724,2.643,725,2.643,726,2.668,727,2.668,728,1.791,729,2.643,730,2.668,731,2.814,732,2.643,733,2.668,735,2.72,736,2.777,737,2.807,905,2.966,4121,3.065,4205,3.678,4313,6.139,4315,3.405,5352,2.748,5697,3.065,5698,2.383,5699,5.427,5701,3.922,5791,7.969,5792,7.124,5793,3.783,5794,7.124,5795,7.124,5796,4.684,5797,7.002,5798,3.668,5799,3.161,5800,3.112,5801,4.684]],["title/classes/ContextExternalToolIdParams.html",[0,0.232,5802,5.181]],["body/classes/ContextExternalToolIdParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,47,0.837,95,0.151,101,0.016,103,0.001,104,0.001,165,0.92,200,4.087,209,3.881,364,1.767,368,4.601,369,2.606,370,3.196,371,3.238,374,3.097,376,2.22,467,3.081,478,6.91,1000,4.781,3267,7.063,5694,6.821,5758,9.486,5802,8.947,5803,8.126,5804,8.487]],["title/classes/ContextExternalToolIdParams-1.html",[0,0.193,905,2.354,5802,4.307]],["body/classes/ContextExternalToolIdParams-1.html",[0,0.403,2,1.095,3,0.023,4,0.023,5,0.012,7,0.148,26,2.691,27,0.405,30,0.001,32,0.133,95,0.163,99,1.639,101,0.016,103,0.001,104,0.001,165,0.927,200,3.685,209,3.91,364,1.789,374,3.135,376,2.247,467,3.104,478,6.994,1000,4.816,2559,5.359,3267,7.1,5802,9.013,5805,10.936,5806,7.139,5807,7.934]],["title/modules/ContextExternalToolModule.html",[425,1.812,5808,5.493]],["body/modules/ContextExternalToolModule.html",[0,0.257,3,0.018,4,0.018,5,0.009,30,0.001,95,0.164,101,0.013,103,0.001,104,0.001,187,1.093,192,2.252,200,3.729,209,3.312,425,2.996,427,2.73,428,2.936,429,3.023,430,3.01,431,2.998,432,4.137,433,4.249,438,5.999,442,4.009,443,2.961,444,2.89,449,3.976,766,3.161,1467,2.412,5030,4.346,5328,9.308,5338,6.103,5694,4.389,5723,11.115,5808,11.546,5809,7.556,5810,7.556,5811,7.556,5812,7.556,5813,9.756,5814,10.027,5815,9.006,5816,11.524,5817,11.524,5818,7.556]],["title/classes/ContextExternalToolPostParams.html",[0,0.232,5819,5.694]],["body/classes/ContextExternalToolPostParams.html",[0,0.379,2,0.824,3,0.017,4,0.017,5,0.009,7,0.112,27,0.525,29,0.871,30,0.001,32,0.182,33,0.574,47,0.907,55,2.127,95,0.159,101,0.012,103,0.001,104,0.001,165,0.773,192,2.202,197,6.986,198,3.589,200,4.339,209,4.294,364,2.318,369,1.64,374,2.359,375,4.235,376,1.69,467,3.244,470,4.13,471,4.507,1000,4.527,1044,3.545,2450,4.21,3469,7.031,4773,6.664,5352,6.524,5477,6.284,5694,7.546,5698,5.657,5758,10.494,5760,6.986,5767,6.463,5797,8.082,5819,8.268,5820,6.831,5821,7.975,5822,7.39,5823,7.39,5824,7.39,5825,5.372,5826,7.39,5827,9.422,5828,6.189,5829,6.189,5830,6.189,5831,7.39,5832,6.831,5833,6.831,5834,7.39,5835,4.643,5836,5.522,5837,5.63]],["title/interfaces/ContextExternalToolProps.html",[334,0.731,5701,5.694]],["body/interfaces/ContextExternalToolProps.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,29,0.992,30,0.001,32,0.176,33,0.59,34,2.077,47,0.943,55,2.727,95,0.163,101,0.017,103,0.001,104,0.001,140,4.192,165,0.811,181,8.17,192,2.367,194,5.199,199,3.002,200,3.588,201,4.041,214,2.504,227,0.824,334,0.853,336,1.901,404,1.431,405,2.117,1872,6.015,4038,4.929,5352,7.759,5694,4.614,5695,6.947,5696,6.22,5697,8.952,5698,6.442,5699,9.647,5700,6.052,5701,9.649,5706,10.228,5710,6.22,5711,5.656,5712,6.052,5713,7.343,5714,7.343,5715,7.343,5716,7.343,5717,5.056,5718,5.452,5719,5.277,5720,5.774,5721,7.374,5722,5.905]],["title/injectables/ContextExternalToolRepo.html",[105,0.91,5336,5.324]],["body/injectables/ContextExternalToolRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,10,2.384,12,2.705,18,2.985,26,2.419,27,0.532,29,1.018,30,0.001,31,0.718,32,0.179,33,0.62,34,1.68,35,1.54,36,2.585,40,2.851,47,0.527,95,0.157,96,1.616,97,1.594,101,0.006,103,0,104,0,105,0.79,107,0.888,111,2.53,112,2.826,116,2.302,127,0.462,140,5.869,148,1.134,158,1.801,165,0.289,187,0.533,197,6.518,199,2.232,200,3.852,201,3.005,216,1.092,217,1.447,221,1.367,227,1.231,234,1.684,277,2.983,305,1.683,307,3.711,309,4.863,316,4.206,319,1.765,359,2.059,380,1.966,381,1.226,398,1.086,404,1.064,450,1.514,529,2.567,595,1.234,596,3.677,661,3.107,878,4.127,884,2.783,885,4.675,915,2.043,935,3.086,945,3.223,1467,1.176,1530,2.74,1790,3.121,1904,1.542,2051,2.099,2139,2.378,2343,8.579,2345,4.206,2346,4.206,2347,4.206,2348,4.206,2349,4.127,2350,4.127,2351,4.206,2352,4.127,2353,4.206,2354,2.679,2355,4.863,2356,3.473,2357,3.851,2359,4.294,2360,2.624,2362,4.863,2363,2.624,2365,2.624,2367,2.412,2368,4.127,2369,2.624,2371,2.624,2373,4.206,2377,4.206,2379,3.987,2380,4.127,2382,2.624,2384,2.209,2385,2.26,2386,2.624,2388,2.624,2390,2.575,2391,2.624,2397,2.487,2408,2.575,2409,4.391,2431,4.947,2444,3.223,4205,1.242,4369,2.378,4466,3.431,4659,3.924,4661,3.118,4773,2.209,5336,4.625,5352,3.466,5697,6.056,5698,3.005,5699,4.5,5706,5.971,5760,2.316,5768,8.293,5771,4.947,5773,9.073,5778,2.679,5782,3.811,5783,8.27,5797,2.679,5800,4.911,5838,9.966,5839,3.223,5840,5.46,5841,5.907,5842,5.907,5843,5.907,5844,3.685,5845,5.46,5846,9.589,5847,3.685,5848,8.637,5849,5.907,5850,3.685,5851,5.46,5852,3.685,5853,4.947,5854,3.407,5855,3.685,5856,5.907,5857,3.685,5858,5.907,5859,3.685,5860,3.685,5861,3.685,5862,2.679,5863,2.679,5864,2.679,5865,2.679,5866,2.679,5867,2.679,5868,2.679,5869,2.679,5870,2.679,5871,3.685,5872,3.685,5873,3.685,5874,2.624,5875,4.206,5876,2.977,5877,3.223,5878,2.808,5879,3.685,5880,3.431,5881,3.407,5882,2.575,5883,5.907,5884,3.685,5885,3.685,5886,3.685,5887,3.685,5888,3.685,5889,3.407,5890,3.685,5891,3.685,5892,3.407,5893,3.685,5894,3.407,5895,3.407,5896,3.685,5897,3.685,5898,3.685,5899,3.685,5900,3.685,5901,3.685,5902,3.407,5903,3.407,5904,5.907,5905,5.46,5906,5.907,5907,5.907]],["title/classes/ContextExternalToolRequestMapper.html",[0,0.232,5908,5.947]],["body/classes/ContextExternalToolRequestMapper.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,8,1.262,27,0.431,29,0.908,30,0.001,31,0.65,32,0.158,33,0.505,34,1.37,35,1.265,95,0.158,101,0.013,103,0.001,104,0.001,111,2.325,144,2.215,181,7.484,192,2.4,194,5.272,200,4.189,209,3.833,227,1.203,367,3.841,627,3.999,982,4.015,5352,4.726,5694,6.737,5697,5.272,5698,4.098,5699,6.137,5797,5.855,5819,10.279,5827,9.69,5837,6.137,5874,5.736,5908,9.139,5909,10.722,5910,6.506,5911,10.449,5912,10.145,5913,10.449,5914,8.054,5915,10.145,5916,7.045,5917,8.054,5918,8.751,5919,7.045,5920,8.054,5921,8.054,5922,8.054,5923,8.054,5924,8.054,5925,7.446,5926,7.045,5927,6.745,5928,7.045]],["title/classes/ContextExternalToolResponse.html",[0,0.232,5929,5.493]],["body/classes/ContextExternalToolResponse.html",[0,0.232,2,0.759,3,0.016,4,0.016,5,0.008,7,0.103,27,0.542,29,0.898,30,0.001,31,0.381,32,0.181,33,0.581,34,1.813,47,0.948,55,2.011,95,0.137,101,0.011,103,0.001,104,0.001,127,0.852,144,1.871,145,1.723,165,0.731,192,2.027,197,7.552,198,3.304,200,4.384,319,2.033,364,2.359,375,4.578,376,1.556,467,3.522,618,2.782,1011,3.437,1016,2.388,1031,2.132,2888,4.123,4773,6.388,5352,6.253,5694,7.722,5698,5.422,5717,4.33,5719,4.52,5721,4.845,5736,6.015,5752,4.453,5758,10.739,5760,6.696,5787,5.95,5789,5.495,5797,7.747,5837,5.183,5929,9.709,5930,5.95,5931,7.541,5932,8.165,5933,5.95,5934,5.95,5935,5.95,5936,5.95,5937,8.982,5938,5.95,5939,5.95,5940,5.95,5941,5.183,5942,6.289,5943,6.803,5944,6.803,5945,6.803,5946,6.803,5947,5.95,5948,6.289,5949,5.95]],["title/classes/ContextExternalToolResponseMapper.html",[0,0.232,5950,5.694]],["body/classes/ContextExternalToolResponseMapper.html",[0,0.227,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,8,1.111,27,0.469,29,0.934,30,0.001,31,0.668,32,0.154,33,0.55,34,1.132,35,1.376,95,0.146,101,0.011,103,0.001,104,0.001,111,2.112,140,6.295,144,1.831,192,1.984,200,4.165,209,3.942,217,1.552,227,1.237,234,1.711,313,6.154,315,5.823,564,3.372,627,4.137,974,3.947,982,3.318,1016,3.229,1904,2.785,3707,5.575,3709,4.423,4466,6.601,4773,3.99,5352,3.906,5694,6.928,5698,4.679,5736,3.757,5760,4.183,5797,4.839,5827,9.087,5837,5.072,5909,11.026,5912,9.216,5916,5.823,5918,7.702,5927,5.575,5928,5.823,5929,9.635,5937,10.089,5950,7.702,5951,9.197,5952,9.197,5953,9.197,5954,9.197,5955,5.823,5956,9.197,5957,9.964,5958,6.657,5959,10.212,5960,9.197,5961,6.154,5962,6.154,5963,5.575,5964,6.154,5965,5.213,5966,4.651,5967,5.823,5968,6.657,5969,6.657,5970,6.657,5971,6.657,5972,8.502,5973,6.657,5974,6.657,5975,5.377,5976,6.154,5977,6.154,5978,5.823,5979,5.575,5980,6.154,5981,6.657]],["title/injectables/ContextExternalToolRule.html",[105,0.91,1887,5.694]],["body/injectables/ContextExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.178,27,0.454,29,0.863,30,0.001,31,0.617,32,0.16,33,0.533,35,1.181,95,0.163,101,0.012,103,0.001,104,0.001,105,1.305,107,1.749,116,3.942,127,0.909,140,6.938,187,1.049,199,4.164,200,3.942,201,3.692,214,2.288,215,2.316,216,1.342,217,0.944,227,1.011,347,2.56,380,2.83,461,3.078,806,4.485,1795,6.367,1823,7.854,1844,4.349,1861,7.838,1887,8.168,2002,4.682,2006,6.052,2013,6.48,3385,6.48,3386,4.898,3389,6.384,3392,4.898,3393,6.583,3394,7.25,5768,9.681,5782,4.682,5800,6.48,5982,11.78,5983,6.708,5984,6.708,5985,6.708,5986,6.708,5987,6.946,5988,7.256,5989,7.256]],["title/classes/ContextExternalToolScope.html",[0,0.232,5848,5.947]],["body/classes/ContextExternalToolScope.html",[0,0.217,2,0.711,3,0.015,4,0.015,5,0.008,7,0.096,8,1.078,26,2.782,27,0.534,29,0.953,30,0.001,31,0.681,32,0.176,33,0.588,34,1.751,35,1.473,95,0.143,99,1.064,101,0.011,103,0.001,104,0.001,111,2.439,144,1.753,145,3.476,148,1.961,165,0.699,197,7.007,200,3.789,227,1.156,277,5.227,319,1.905,347,2.082,404,1.608,450,2.618,529,2.77,596,3.581,2394,6.104,4773,6.17,5760,6.468,5768,4.632,5771,5.337,5782,4.112,5797,7.483,5799,4.301,5800,4.234,5838,10.852,5848,11.476,5990,5.574,5991,6.022,5992,6.022,5993,6.022,5994,8.922,5995,8.922,5996,8.922,5997,8.922,5998,6.022,5999,6.022,6000,4.374,6001,4.301,6002,4.374,6003,4.374,6004,8.922,6005,6.373,6006,8.922,6007,6.373,6008,8.922,6009,6.373,6010,8.922,6011,6.373,6012,4.301,6013,6.022,6014,4.374,6015,4.301,6016,4.374,6017,4.301,6018,7.527]],["title/classes/ContextExternalToolSearchListResponse.html",[0,0.232,6019,5.947]],["body/classes/ContextExternalToolSearchListResponse.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,27,0.469,29,0.72,30,0.001,31,0.515,32,0.168,33,0.445,95,0.146,101,0.015,103,0.001,104,0.001,127,1.152,145,2.328,163,4.073,165,0.89,199,3.475,200,4.256,209,4.076,364,1.675,376,2.103,467,2.981,1005,8.782,1006,6.423,1009,6.473,1011,4.645,1026,5.097,5694,7.163,5732,8.898,5758,9.962,5929,11.038,6019,9.938,6020,8.041]],["title/injectables/ContextExternalToolService.html",[105,0.91,5815,4.45]],["body/injectables/ContextExternalToolService.html",[0,0.213,3,0.015,4,0.015,5,0.008,7,0.095,8,1.065,12,4.037,26,2.635,27,0.513,29,0.974,30,0.001,31,0.696,32,0.169,33,0.601,35,1.465,36,2.803,95,0.15,99,1.045,101,0.01,103,0.001,104,0.001,105,1.179,107,1.51,112,3.045,127,0.785,140,7.147,187,0.906,199,2.367,200,4.285,209,2.913,215,1.999,216,1.158,217,1.518,221,2.877,227,1.148,450,2.573,529,2.722,1904,2.62,3267,3.503,5336,9.475,5345,5.06,5694,7.371,5697,7.919,5699,4.772,5724,11.1,5725,5.79,5737,6.407,5797,4.553,5815,5.769,5846,10.232,5874,4.46,5919,5.479,6021,8.815,6022,7.71,6023,8.815,6024,8.815,6025,8.815,6026,6.264,6027,8.815,6028,6.264,6029,8.815,6030,6.264,6031,8.815,6032,6.264,6033,8.815,6034,5.79,6035,8.815,6036,5.79,6037,8.815,6038,6.264,6039,8.671,6040,6.264,6041,6.264,6042,8.815,6043,6.264,6044,8.815,6045,6.264,6046,6.264]],["title/injectables/ContextExternalToolUc.html",[105,0.91,6047,5.694]],["body/injectables/ContextExternalToolUc.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.065,8,0.811,26,2.942,27,0.455,29,0.865,30,0.001,31,0.618,32,0.155,33,0.534,34,1.142,35,1.281,36,2.565,39,3.221,47,0.586,95,0.156,99,0.724,101,0.007,103,0,104,0,105,0.898,107,1.045,111,2.287,112,2.888,116,3.297,127,0.841,139,5.5,140,6.998,187,0.627,192,2.001,197,5.813,198,2.106,199,4.674,200,4.107,201,2.206,209,3.498,216,1.85,217,1.68,221,3.011,227,1.038,234,1.625,305,1.913,311,5.872,461,1.879,766,1.814,843,2.963,1345,1.72,1795,5.409,1801,2.599,1884,5.966,1904,1.814,1973,3.088,1978,3.395,1981,5.872,1982,2.599,1984,3.395,2725,1.964,3010,2.425,3267,6.174,4205,4.032,4773,5.545,5694,6.625,5697,4.394,5760,5.813,5815,7.225,5816,9.245,5874,3.088,5915,11.083,5965,3.395,5975,6.637,6022,5.872,6047,5.623,6048,11.406,6049,3.792,6050,7.595,6051,8.216,6052,6.207,6053,7.595,6054,7.595,6055,4.336,6056,7.868,6057,7.334,6058,4.008,6059,4.336,6060,4.336,6061,6.714,6062,4.336,6063,4.336,6064,6.37,6065,4.336,6066,6.714,6067,4.336,6068,4.336,6069,4.336,6070,4.336,6071,4.336,6072,3.223,6073,3.395,6074,2.69,6075,4.336,6076,8.216,6077,4.881,6078,6.714,6079,6.207,6080,4.336,6081,4.336,6082,8.091,6083,6.714,6084,6.207,6085,6.714,6086,3.502,6087,4.336,6088,6.207,6089,4.336,6090,4.336,6091,3.303,6092,9.251,6093,4.336,6094,4.336,6095,6.207,6096,4.336]],["title/injectables/ContextExternalToolValidationService.html",[105,0.91,5816,5.694]],["body/injectables/ContextExternalToolValidationService.html",[0,0.224,3,0.016,4,0.016,5,0.008,7,0.1,8,1.103,27,0.432,29,0.821,30,0.001,31,0.666,32,0.142,33,0.507,35,1.106,36,1.959,95,0.168,101,0.011,103,0.001,104,0.001,105,1.222,107,1.589,111,2.528,112,2.71,127,1.144,139,5.02,140,7.044,158,4.465,187,0.953,188,3.374,192,2.722,199,3.452,200,4.224,201,4.647,209,4.167,216,2.093,217,1.189,221,2.619,234,1.07,247,2.583,305,1.878,394,3.755,503,5.6,520,4.379,558,3.162,774,4.524,795,4.042,1904,2.757,1945,4.524,2257,5.536,3498,5.52,3832,5.325,3833,4.524,5022,4.196,5335,9.873,5362,5.162,5375,5.765,5377,6.093,5694,6.573,5699,5.022,5724,9.898,5815,8.048,5816,7.65,5965,5.162,5966,4.605,5967,5.765,6057,8.376,6064,4.196,6074,5.668,6077,4.792,6097,9.134,6098,5.978,6099,6.093,6100,7.73,6101,6.592,6102,9.134,6103,9.134,6104,6.592,6105,5.162,6106,5.325,6107,6.592,6108,6.592,6109,6.592,6110,6.093,6111,7.65,6112,6.093,6113,6.592,6114,6.592,6115,5.765,6116,6.093,6117,6.592,6118,6.592,6119,6.592,6120,6.592,6121,6.592,6122,6.592]],["title/classes/ContextRef.html",[0,0.232,5697,4.45]],["body/classes/ContextRef.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.513,29,0.735,30,0.001,31,0.526,32,0.184,33,0.454,34,2.117,47,0.821,95,0.121,101,0.016,103,0.001,104,0.001,127,1.176,165,0.901,197,7.82,198,4.559,200,4.041,405,3.067,595,3.143,618,3.839,619,5.203,2578,4.185,4333,5.626,5694,7.537,5695,11.349,5697,8.714,6123,8.677,6124,10.639,6125,8.677]],["title/classes/ContextRefParams.html",[0,0.232,6126,5.947]],["body/classes/ContextRefParams.html",[0,0.39,2,1.039,3,0.022,4,0.022,5,0.011,7,0.141,26,2.631,27,0.473,30,0.001,32,0.169,95,0.166,99,1.556,101,0.016,103,0.001,104,0.001,165,0.898,197,8.349,198,4.528,364,2.087,374,2.975,376,2.132,467,3.255,1000,4.666,1044,4.472,2559,5.621,4773,7.437,5760,7.796,5767,8.153,5805,11.471,5806,6.776,6126,10.023,6127,9.322,6128,9.322,6129,9.322,6130,9.322]],["title/injectables/ConverterUtil.html",[105,0.91,2250,5.694]],["body/injectables/ConverterUtil.html",[0,0.429,3,0.023,4,0.023,5,0.012,7,0.146,8,1.414,27,0.398,29,0.917,30,0.001,31,0.541,32,0.159,33,0.467,35,1.169,47,0.899,95,0.15,101,0.016,103,0.001,104,0.001,105,1.566,107,2.328,187,1.396,227,1.001,379,2.188,692,4.895,2250,9.806,4619,10.242,6131,9.657,6132,11.709,6133,11.709,6134,9.657,6135,9.657,6136,9.657,6137,8.927,6138,9.657]],["title/classes/CookiesDto.html",[0,0.232,6139,5.694]],["body/classes/CookiesDto.html",[0,0.333,2,1.09,3,0.023,4,0.023,5,0.012,7,0.148,27,0.522,29,0.766,30,0.001,31,0.547,32,0.172,33,0.473,47,0.938,101,0.016,103,0.001,104,0.001,127,1.224,165,0.924,405,3.143,595,3.272,6139,11.277,6140,9.774,6141,11.08,6142,11.08,6143,11.795,6144,9.774,6145,9.774,6146,9.774,6147,9.774,6148,9.774]],["title/classes/CopyApiResponse.html",[0,0.232,6149,5.324]],["body/classes/CopyApiResponse.html",[0,0.226,2,0.741,3,0.016,4,0.016,5,0.008,7,0.1,27,0.521,29,0.521,30,0.001,31,0.372,32,0.19,33,0.632,34,2.15,47,0.944,95,0.118,100,3.076,101,0.011,103,0.001,104,0.001,127,1.151,145,1.683,165,0.72,188,3.393,364,2.245,375,4.54,376,1.52,379,2.999,467,2.762,538,4.139,564,4.793,966,3.381,1011,4.642,1031,3.559,1041,6.667,1397,4.312,1403,5.836,1414,5.138,1582,10.084,2037,3.9,2524,6.664,2553,5.489,2578,2.963,2747,3.43,3007,9.334,3008,8.861,3009,4.028,3299,8.035,5283,7.193,6149,10.084,6150,10.785,6151,6.646,6152,7.193,6153,6.305,6154,6.103,6155,9.208,6156,6.646,6157,8.035,6158,6.646,6159,6.144,6160,8.492,6161,6.542,6162,6.646,6163,6.646,6164,8.492,6165,6.646,6166,6.646,6167,6.646,6168,6.646]],["title/classes/CopyFileDto.html",[0,0.232,6169,5.181]],["body/classes/CopyFileDto.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,26,2.775,27,0.524,29,0.693,30,0.001,31,0.712,32,0.173,33,0.586,34,2.062,47,0.791,95,0.142,99,1.477,101,0.015,103,0.001,104,0.001,127,1.109,145,2.81,163,2.724,165,0.869,336,2.118,618,3.619,1009,6.321,2095,3.511,3579,6.44,6169,8.454,6170,6.062,6171,13.09,6172,8.851,6173,8.053,6174,10.644,6175,11.097,6176,8.851,6177,8.851,6178,7.149,6179,7.149,6180,7.149,6181,7.149]],["title/classes/CopyFileListResponse.html",[0,0.232,6182,5.324]],["body/classes/CopyFileListResponse.html",[0,0.37,2,0.669,3,0.014,4,0.014,5,0.007,7,0.091,27,0.473,29,0.47,30,0.001,31,0.558,32,0.176,33,0.555,34,1.455,47,0.911,55,2.972,56,6.022,59,2.664,70,6.216,83,1.836,95,0.139,101,0.018,103,0,104,0,127,0.752,145,1.52,150,2.078,163,3.779,165,0.67,364,1.978,375,3.795,376,1.373,380,1.275,404,1.795,467,3.552,469,2.635,596,3.313,618,3.497,1007,7.696,1008,6.636,1009,6.186,1011,3.033,1013,4.563,1014,2.862,1015,4.783,1016,2.107,1017,4.194,1018,5.518,1019,4.968,1020,3.929,1021,3.193,1022,4.194,1023,4.194,1025,5.374,1026,4.741,1031,3.122,1356,4.849,1360,4.7,1487,3.357,2095,3.393,2745,6.342,2889,4.934,3578,3.098,3610,2.934,6170,3.961,6173,3.988,6178,4.849,6179,4.849,6180,4.849,6181,4.849,6182,6.697,6183,5.598,6184,5.027,6185,9.829,6186,6.002,6187,6.002,6188,5.126,6189,5.918,6190,8.174,6191,6.521,6192,8.073,6193,5.027,6194,4.849,6195,5.027,6196,3.244,6197,5.027,6198,4.194,6199,5.027,6200,5.027,6201,5.027,6202,4.7,6203,4.849,6204,5.027,6205,5.027,6206,4.274,6207,4.849,6208,3.988,6209,4.849,6210,4.363,6211,5.027,6212,5.027,6213,4.849,6214,5.027,6215,4.462,6216,3.327,6217,2.953,6218,3.929,6219,4.462]],["title/classes/CopyFileParams.html",[0,0.232,6220,4.667]],["body/classes/CopyFileParams.html",[0,0.456,2,0.717,3,0.015,4,0.021,5,0.011,7,0.097,26,2.587,27,0.37,30,0.001,32,0.166,39,1.732,47,0.963,95,0.161,99,1.074,101,0.022,103,0.001,104,0.001,150,2.228,165,0.703,204,2.183,214,2.028,334,0.691,347,1.817,364,1.636,369,1.428,373,4.815,374,2.054,375,4.266,376,1.472,377,5.967,379,1.458,380,1.367,467,3.636,469,2.825,470,5.105,471,4.54,565,3.207,1000,4.968,1001,6.712,1031,3.242,1044,3.087,1180,2.769,1270,3.815,1330,5.717,1331,4.211,1332,4.211,2702,5.308,2889,5.124,3610,3.145,4205,2.168,5836,6.589,6170,4.792,6183,6.772,6189,6.103,6217,3.165,6220,6.164,6221,4.495,6222,7.229,6223,5.948,6224,6.434,6225,8.107,6226,5.948,6227,6.434,6228,4.495,6229,8.107,6230,7.824,6231,7.824,6232,4.495,6233,4.416,6234,6.984,6235,4.416,6236,4.495,6237,4.342,6238,6.062,6239,4.274,6240,4.342,6241,4.416,6242,4.342,6243,4.342,6244,4.095,6245,4.495,6246,4.495,6247,4.495,6248,4.095,6249,4.095,6250,4.211,6251,4.274,6252,4.495]],["title/classes/CopyFileResponse.html",[0,0.232,6185,5.324]],["body/classes/CopyFileResponse.html",[0,0.382,2,0.72,3,0.015,4,0.015,5,0.008,7,0.097,27,0.462,29,0.506,30,0.001,31,0.661,32,0.166,33,0.501,34,1.908,47,0.956,55,2.7,56,5.38,70,5.553,83,1.975,95,0.144,101,0.019,103,0.001,104,0.001,127,0.808,150,2.235,163,3.63,165,0.705,364,1.888,375,4.272,376,1.476,380,1.371,404,1.622,467,3.607,469,2.834,618,3.681,1007,6.355,1008,4.865,1009,6.389,1015,3.61,1025,5.656,1026,4.99,1031,3.248,1356,5.214,1360,5.054,1487,3.61,2095,3.571,2742,4.692,2745,6.598,2889,5.133,3578,3.331,3610,3.155,6170,5.463,6173,6.886,6178,5.214,6179,5.214,6180,5.214,6181,5.214,6182,5.054,6183,7.719,6184,5.405,6185,10.012,6188,5.395,6189,6.111,6190,8.399,6191,6.784,6192,8.337,6193,5.405,6194,5.214,6195,5.405,6196,3.488,6197,5.405,6198,4.509,6199,5.405,6200,5.405,6201,5.405,6202,5.054,6203,5.214,6204,5.405,6205,5.405,6206,4.596,6207,5.214,6208,4.288,6209,5.214,6210,4.692,6211,5.405,6212,5.405,6213,5.214,6214,5.405,6215,4.798,6216,3.578,6217,3.175,6218,4.224,6219,4.798,6253,6.454,6254,6.454,6255,6.454,6256,6.454]],["title/classes/CopyFileResponseBuilder.html",[0,0.232,6257,6.286]],["body/classes/CopyFileResponseBuilder.html",[0,0.318,2,1.042,3,0.022,4,0.022,5,0.015,7,0.141,8,1.386,27,0.385,29,0.732,30,0.001,31,0.745,32,0.127,33,0.452,34,1.952,35,1.131,47,0.995,95,0.12,101,0.016,103,0.001,104,0.001,116,2.91,217,1.216,227,0.969,234,1.517,627,3.811,667,5.44,982,4.657,6170,5.315,6173,8.606,6185,10.599,6257,10.609,6258,11.476,6259,8.637,6260,11.476,6261,9.343]],["title/interfaces/CopyFiles.html",[334,0.731,6262,5.324]],["body/interfaces/CopyFiles.html",[3,0.022,4,0.022,5,0.014,7,0.139,30,0.001,32,0.155,47,1.021,55,1.985,95,0.118,101,0.022,103,0.001,104,0.001,163,3.502,165,0.891,334,1.385,336,2.205,1342,7.756,1344,6.031,1487,5.154,2145,5.79,6262,8.91,6263,7.216,6264,7.717,6265,10.414,6266,10.414,6267,5.866,6268,7.216,6269,6.438,6270,6.438,6271,6.438,6272,6.438,6273,6.698,6274,6.85,6275,6.562,6276,6.85,6277,6.85]],["title/classes/CopyFilesOfParentParamBuilder.html",[0,0.232,6278,5.947]],["body/classes/CopyFilesOfParentParamBuilder.html",[0,0.307,2,1.007,3,0.027,4,0.031,5,0.014,7,0.136,8,1.357,26,2.714,27,0.372,29,0.707,30,0.001,31,0.506,32,0.123,33,0.437,35,1.093,39,3.025,95,0.157,99,1.507,101,0.015,103,0.001,104,0.001,217,1.175,227,0.936,336,2.161,367,4.305,627,3.753,667,5.326,2702,5.768,3339,5.638,3578,5.799,3579,5.528,6170,5.204,6278,9.827,6279,11.236,6280,8.347,6281,11.236,6282,10.659,6283,8.347,6284,10.244,6285,8.347,6286,10.387]],["title/classes/CopyFilesOfParentParams.html",[0,0.232,6242,4.589]],["body/classes/CopyFilesOfParentParams.html",[0,0.458,2,0.731,3,0.016,4,0.022,5,0.011,7,0.099,26,2.603,27,0.27,30,0.001,32,0.161,39,1.766,47,0.959,95,0.162,99,1.095,101,0.022,103,0.001,104,0.001,150,2.271,165,0.713,204,2.226,214,2.068,334,0.705,347,1.841,364,1.195,369,1.456,373,4.88,374,2.094,375,4.302,376,1.5,377,6.048,379,1.486,380,1.394,467,3.645,469,2.88,470,5.136,471,4.578,565,3.27,1000,4.999,1001,6.769,1031,3.276,1044,3.147,1180,2.823,1270,3.889,1330,5.795,1331,4.293,1332,4.293,2702,5.346,2889,5.177,3610,3.206,4205,2.211,5836,6.635,6170,4.216,6183,5.958,6189,6.154,6217,3.227,6220,4.502,6221,4.583,6222,4.583,6225,8.157,6226,6.064,6228,4.583,6229,8.157,6230,7.89,6231,7.89,6232,4.583,6233,4.502,6234,7.056,6235,4.502,6236,4.583,6237,4.427,6238,6.144,6239,4.358,6240,4.427,6241,4.502,6242,6.144,6243,4.427,6244,4.175,6245,4.583,6246,4.583,6247,4.583,6248,4.175,6249,4.175,6250,4.293,6251,4.358,6252,4.583,6287,6.559]],["title/classes/CopyFilesOfParentPayload.html",[0,0.232,6243,4.589]],["body/classes/CopyFilesOfParentPayload.html",[0,0.455,2,0.704,3,0.015,4,0.026,5,0.011,7,0.095,26,2.641,27,0.422,30,0.001,32,0.169,39,2.758,47,0.953,95,0.16,99,1.054,101,0.022,103,0.001,104,0.001,150,2.186,165,0.694,204,2.142,214,1.99,334,0.678,347,1.793,364,1.866,369,1.401,373,4.752,374,2.015,375,4.231,376,1.444,377,5.888,379,1.431,380,1.341,467,3.628,469,2.771,470,5.074,471,4.502,565,3.147,1000,5.072,1001,6.657,1031,3.209,1044,3.029,1180,2.717,1270,3.743,1330,5.642,1331,4.132,1332,4.132,2702,5.271,2889,5.072,3610,3.086,4205,2.128,5836,6.967,6170,5.144,6183,7.269,6189,6.052,6217,3.106,6220,4.333,6221,4.41,6222,4.41,6225,8.276,6228,4.41,6229,8.059,6230,7.76,6231,7.76,6232,4.41,6233,4.333,6234,6.913,6235,4.333,6236,4.41,6237,4.261,6238,5.982,6239,4.194,6240,4.261,6241,4.333,6242,4.261,6243,5.982,6244,4.018,6245,4.41,6246,4.41,6247,4.41,6248,4.018,6249,4.018,6250,4.132,6251,4.194,6252,4.41,6288,6.313,6289,6.313,6290,6.313]],["title/injectables/CopyFilesService.html",[105,0.91,6291,5.694]],["body/injectables/CopyFilesService.html",[0,0.201,3,0.014,4,0.023,5,0.01,7,0.089,8,1.021,26,2.285,27,0.444,29,0.893,30,0.001,31,0.684,32,0.17,33,0.521,34,1.94,35,1.195,36,1.813,39,2.659,47,0.421,95,0.157,99,0.986,100,1.977,101,0.014,103,0,104,0,105,1.131,107,1.424,111,2.506,112,2.176,127,1.059,187,0.854,206,3.005,216,1.563,217,1.733,221,1.367,227,1.183,234,0.959,336,1.413,564,3.099,574,2.593,692,4.565,1041,3.303,1397,1.977,1582,4.624,1750,3.75,2702,3.809,2974,8.627,2992,6.955,3007,4.624,3008,4.39,3009,3.579,3010,3.303,3023,8.441,3024,8.269,3031,4.946,3578,3.048,3579,5.838,5429,5.533,5471,4.499,6169,9.311,6170,5.283,6173,6.56,6242,3.986,6278,5.165,6291,7.08,6292,10.545,6293,5.906,6294,9.874,6295,8.454,6296,7.815,6297,5.906,6298,8.702,6299,5.906,6300,5.906,6301,5.906,6302,8.454,6303,5.906,6304,9.874,6305,11.297,6306,8.454,6307,5.906,6308,5.906,6309,5.165,6310,5.459,6311,8.454,6312,5.906,6313,5.906,6314,8.636,6315,5.906,6316,5.906,6317,5.906,6318,5.906,6319,7.815,6320,5.906,6321,7.394,6322,5.906,6323,5.906,6324,4.39,6325,5.906,6326,5.906,6327,5.459,6328,5.906,6329,8.454,6330,5.906,6331,5.459,6332,4.624,6333,4.77,6334,5.165,6335,8.454,6336,5.906,6337,5.906]],["title/modules/CopyHelperModule.html",[425,1.812,6338,4.943]],["body/modules/CopyHelperModule.html",[0,0.327,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.39,425,3.351,427,3.472,428,3.735,429,3.845,430,3.829,431,3.813,432,4.628,433,4.753,442,4.672,443,3.766,444,3.675,2974,10.338,6150,8.049,6338,10.026,6339,9.611,6340,9.611,6341,9.611,6342,8.884,6343,9.611,6344,8.884,6345,9.611]],["title/injectables/CopyHelperService.html",[105,0.91,2974,4.943]],["body/injectables/CopyHelperService.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.128,26,1.442,27,0.439,29,0.835,30,0.001,31,0.712,32,0.145,33,0.515,35,1.29,47,0.923,95,0.147,101,0.011,103,0.001,104,0.001,105,1.249,107,1.64,144,1.871,187,0.984,217,1.616,227,1.319,234,1.105,247,2.666,319,2.033,359,2.372,472,6.301,564,4.552,905,3.887,1041,3.805,1787,3.952,1873,4.222,2035,3.677,2545,3.619,2974,6.786,2992,8.356,3008,7.923,3027,8.63,3031,5.697,3364,6.015,3687,6.289,6150,9.606,6332,8.346,6346,11.47,6347,6.803,6348,9.335,6349,9.335,6350,9.335,6351,9.335,6352,6.803,6353,10.658,6354,9.335,6355,9.606,6356,6.803,6357,9.335,6358,6.803,6359,6.289,6360,6.803,6361,9.335,6362,6.803,6363,5.697,6364,6.803,6365,4.52,6366,6.803,6367,5.697,6368,4.845,6369,6.803,6370,6.803,6371,6.803,6372,6.803,6373,10.658,6374,6.803,6375,5.057,6376,9.335,6377,6.803,6378,9.335,6379,6.803,6380,6.803,6381,6.803,6382,6.803,6383,6.803,6384,6.803,6385,6.803]],["title/classes/CopyMapper.html",[0,0.232,6386,5.493]],["body/classes/CopyMapper.html",[0,0.241,2,0.788,3,0.017,4,0.017,5,0.009,7,0.107,8,1.157,26,2.723,27,0.448,29,0.851,30,0.001,31,0.609,32,0.158,33,0.526,35,1.316,39,3.518,95,0.165,99,1.179,100,4.205,101,0.012,103,0.001,104,0.001,185,3.723,217,1.516,227,1.127,234,1.147,564,2.59,627,4.064,975,5.31,1397,2.366,2633,4.596,2647,5.056,2649,4.271,2992,7.859,3008,5.252,3023,5.533,5017,4.282,6149,9.125,6150,9.759,6332,7.501,6359,6.532,6386,7.738,6387,7.066,6388,9.58,6389,9.58,6390,9.58,6391,9.759,6392,7.066,6393,10.047,6394,9.58,6395,9.759,6396,7.066,6397,10.047,6398,9.58,6399,7.066,6400,7.066,6401,8.856,6402,7.066,6403,7.066,6404,7.066,6405,7.066,6406,7.066,6407,7.066,6408,9.58,6409,9.58,6410,5.917,6411,7.066,6412,7.066,6413,7.066,6414,9.58,6415,7.066,6416,7.066,6417,7.066,6418,7.066,6419,7.066,6420,8.856,6421,6.532]],["title/modules/CoreModule.html",[425,1.812,6422,4.517]],["body/modules/CoreModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,30,0.001,95,0.164,101,0.014,103,0.001,104,0.001,187,1.174,204,3.95,379,1.84,425,3.397,427,2.933,428,3.155,429,3.249,430,3.235,431,3.221,432,2.988,433,4.4,438,6.515,442,4.203,443,3.181,444,3.105,449,4.167,1415,4.978,2356,3.335,3835,6.686,4603,8.796,6422,9.285,6423,8.119,6424,8.119,6425,8.119,6426,10.55,6427,10.938,6428,10.938,6429,8.119,6430,8.225,6431,8.225,6432,8.796,6433,9.71,6434,7.338,6435,10.504,6436,7.48,6437,7.635,6438,10.504,6439,7.338,6440,9.187,6441,9.71,6442,10.504,6443,8.796,6444,6.559]],["title/classes/County.html",[0,0.232,6445,5.694]],["body/classes/County.html",[0,0.348,2,0.867,3,0.018,4,0.018,5,0.009,7,0.117,27,0.499,29,0.609,30,0.001,31,0.723,32,0.165,33,0.376,47,0.972,55,2.199,83,3.124,95,0.131,96,2.127,101,0.019,103,0.001,104,0.001,127,0.974,165,0.8,240,3.841,334,0.835,369,2.266,370,3.756,371,2.816,380,2.17,398,2.291,399,4.051,400,3.431,402,3.222,404,1.401,405,2.072,406,2.529,591,3.379,592,3.522,620,5.016,621,5.923,622,5.016,623,5.923,1858,4.072,2095,4.051,2574,5.27,4271,5.564,4281,3.396,5736,5.763,5752,5.088,6445,11.307,6446,10.999,6447,6.8,6448,9.972,6449,9.972,6450,8.931,6451,7.775,6452,7.775,6453,7.775,6454,7.775,6455,8.551,6456,8.931,6457,8.931,6458,6.8,6459,6.8,6460,6.8,6461,6.8,6462,6.8,6463,6.8,6464,5.336,6465,6.8,6466,6.8,6467,6.088]],["title/entities/Course.html",[188,2.511,380,1.445]],["body/entities/Course.html",[0,0.183,2,0.882,3,0.008,4,0.008,5,0.004,7,0.149,26,2.097,27,0.497,30,0.001,31,0.489,32,0.159,33,0.532,34,1.164,39,1.842,47,0.878,62,3.16,83,3.27,95,0.148,96,0.9,101,0.011,103,0,104,0,111,1.585,116,3.425,127,0.412,144,2.939,145,2.911,148,1.657,165,0.422,188,3.461,192,2.357,208,1.228,214,1.037,217,1.633,227,1.301,234,1.929,240,3.573,305,1.534,319,3.436,334,0.353,347,1.089,364,2.193,369,2.637,370,2.874,371,0.907,379,1.977,380,1.144,381,1.094,386,3.896,394,3.068,398,0.969,399,2.137,400,1.451,402,1.363,404,0.593,405,0.876,406,1.069,461,2.143,475,1.607,535,1.763,565,2.685,618,1.345,627,1.653,686,1.792,701,1.163,738,1.71,770,3.193,844,3.974,851,2.568,852,2.568,905,1.369,922,2.754,1031,2.143,1107,2.297,1353,2.6,1397,1.101,1843,2.553,1852,2.274,1858,2.821,1946,2.185,2075,1.807,2095,3.137,2632,5.294,2636,6.265,2640,3.727,2648,2.297,2650,2.04,3090,3.42,3146,2.185,3147,2.122,3319,1.993,3429,2.093,3590,3.04,3753,2.04,3777,3.525,3778,3.525,3981,2.39,4052,1.929,4205,1.815,4206,5.631,4221,2.754,4255,4.972,4281,2.353,4324,5.414,4748,1.823,4878,2.016,4989,2.467,6375,2.444,6436,2.342,6468,2.876,6469,6.572,6470,5.888,6471,6.213,6472,5.253,6473,5.068,6474,4.694,6475,6.213,6476,5.482,6477,5.525,6478,6.342,6479,4.979,6480,4.711,6481,3.288,6482,4.711,6483,3.288,6484,3.288,6485,4.711,6486,3.475,6487,3.288,6488,4.711,6489,3.288,6490,6.916,6491,2.754,6492,3.288,6493,4.711,6494,3.288,6495,4.711,6496,3.288,6497,2.876,6498,3.288,6499,2.876,6500,3.288,6501,3.288,6502,6.323,6503,3.288,6504,4.711,6505,3.288,6506,3.288,6507,3.288,6508,2.04,6509,2.876,6510,2.876,6511,3.264,6512,3.835,6513,2.876,6514,5.085,6515,2.876,6516,3.915,6517,2.656,6518,3.16,6519,2.185,6520,3.525,6521,2.016,6522,3.384,6523,1.839,6524,4.35,6525,4.35,6526,2.876,6527,2.656,6528,2.342,6529,2.876,6530,2.876,6531,2.754,6532,2.444,6533,2.876,6534,2.876,6535,2.575,6536,2.876,6537,3.302,6538,9.95,6539,4.871,6540,2.656,6541,3.635,6542,2.152,6543,2.04,6544,1.971,6545,2.656,6546,2.876,6547,2.876,6548,4.711,6549,4.711,6550,4.711,6551,6.387,6552,4.35,6553,4.103,6554,4.711,6555,4.004,6556,4.103,6557,2.444,6558,2.876,6559,2.876,6560,2.093,6561,3.578,6562,2.876,6563,2.876,6564,2.876,6565,4.711,6566,2.876,6567,2.876,6568,2.876,6569,2.876,6570,2.876,6571,2.876,6572,2.876,6573,5.525,6574,5.983,6575,2.876,6576,2.876,6577,2.876,6578,2.876,6579,2.876,6580,2.39,6581,2.876,6582,2.876,6583,2.876,6584,2.876,6585,2.876,6586,2.219,6587,2.876,6588,2.754,6589,2.876,6590,5.983,6591,4.711,6592,2.876,6593,2.876,6594,2.656,6595,2.656,6596,2.257,6597,2.876,6598,5.525,6599,2.876,6600,2.876,6601,2.876,6602,2.876]],["title/controllers/CourseController.html",[481,2.611,6603,5.947]],["body/controllers/CourseController.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.102,8,1.124,27,0.384,29,0.729,30,0.001,31,0.521,32,0.144,33,0.45,35,1.126,36,2.454,56,4.463,70,4.607,95,0.171,100,2.266,101,0.011,103,0.001,104,0.001,111,2.131,112,2.732,127,0.848,187,0.979,216,1.966,217,1.561,221,2.153,227,0.965,234,1.726,250,8.902,264,3.91,305,1.928,364,1.694,369,1.502,376,1.548,447,2.806,469,2.972,481,2.599,483,3.228,491,6.247,513,6.416,529,4.62,555,3.519,556,3.6,561,3.629,789,6.957,801,3.932,1008,5.028,1016,4.458,1028,7.996,1491,4.92,1750,4.715,2303,3.771,2644,4.988,2908,6.957,2930,3.629,3743,3.972,4748,5.157,4997,9.297,6603,8.137,6604,6.769,6605,9.826,6606,6.769,6607,10.011,6608,10.011,6609,9.303,6610,6.769,6611,6.257,6612,7.191,6613,6.769,6614,6.279,6615,5.669,6616,4.057,6617,8.902,6618,6.769,6619,8.902,6620,6.257,6621,6.769,6622,5.669,6623,5.92,6624,6.769,6625,6.769,6626,6.769,6627,6.769,6628,6.769,6629,5.3,6630,6.769,6631,6.769,6632,5.669,6633,6.769,6634,6.769,6635,6.769,6636,6.769,6637,6.769,6638,5.669,6639,6.769]],["title/injectables/CourseCopyService.html",[105,0.91,6640,5.493]],["body/injectables/CourseCopyService.html",[0,0.171,3,0.012,4,0.012,5,0.006,7,0.076,8,0.905,10,2.022,26,1.904,27,0.44,29,0.836,30,0.001,31,0.65,32,0.177,33,0.516,35,1.206,36,2.137,39,2.418,47,0.534,83,1.533,95,0.144,99,0.836,101,0.008,103,0,104,0,105,1.003,107,1.208,111,2.635,112,2.689,127,0.939,138,3.274,145,1.269,185,2.913,187,0.724,188,4.855,192,1.493,216,2.07,217,1.697,221,2.876,227,1.033,234,1.217,247,1.963,318,3.724,369,1.112,441,6.957,450,2.058,461,2.791,564,4.375,1041,4.192,1345,1.988,1397,1.677,1930,6.786,2018,3.923,2524,2.94,2627,3.774,2633,4.308,2681,4.047,2958,9.72,2960,3.923,2970,8.628,2974,8.437,2980,3.923,2981,4.631,2992,7.225,3000,10.351,3006,4.195,3007,3.923,3008,3.724,3009,3.036,3010,2.802,3016,7.854,3022,4.382,3023,3.923,3024,4.195,3050,3.817,3303,3.567,4324,3.109,4741,4.382,6332,3.923,6355,6.276,6367,7.52,6469,3.328,6470,3.381,6475,3.567,6478,3.642,6640,6.054,6641,11.197,6642,7.52,6643,7.495,6644,7.495,6645,7.495,6646,4.195,6647,9.376,6648,4.631,6649,5.01,6650,7.495,6651,9.966,6652,5.01,6653,7.495,6654,12.425,6655,11.197,6656,7.495,6657,5.01,6658,5.01,6659,8.619,6660,6.555,6661,4.631,6662,5.01,6663,5.01,6664,5.01,6665,5.01,6666,5.01,6667,4.631,6668,5.01,6669,5.01,6670,5.01,6671,5.01,6672,5.01,6673,7.495,6674,5.01,6675,7.495,6676,5.01,6677,4.195,6678,5.01,6679,5.01,6680,5.01,6681,5.01,6682,5.01,6683,5.01,6684,4.631,6685,5.01,6686,5.01,6687,5.01,6688,7.495,6689,5.01,6690,5.01,6691,5.01,6692,5.01,6693,5.01,6694,5.01]],["title/injectables/CourseCopyUC.html",[105,0.91,6695,5.694]],["body/injectables/CourseCopyUC.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.216,26,2.775,27,0.465,29,0.789,30,0.001,31,0.564,32,0.137,33,0.487,35,1.219,36,2.159,39,2.712,95,0.168,99,1.271,101,0.013,102,3.82,103,0.001,104,0.001,105,1.347,107,1.835,111,2.504,112,2.487,127,1.261,148,2.343,187,1.101,199,3.806,216,1.862,217,1.469,221,2.331,227,0.789,234,1.236,305,2.169,347,1.54,766,3.185,843,3.359,1308,6.839,1353,3.675,1750,4.467,1801,4.563,1820,6.249,1928,9.403,1973,5.421,2130,3.326,2131,4.922,2132,4.745,2133,6.41,2633,5.992,2725,3.449,2992,4.912,3009,4.614,3010,4.258,3649,5.319,6072,5.659,6640,10.572,6642,8.434,6695,8.434,6696,11.101,6697,6.659,6698,10.057,6699,7.613,6700,7.613,6701,7.613,6702,9.309,6703,7.613,6704,6.659,6705,7.613,6706,7.613,6707,6.376,6708,7.038,6709,7.613,6710,6.659,6711,6.659,6712,4.912]],["title/injectables/CourseExportUc.html",[105,0.91,6619,5.694]],["body/injectables/CourseExportUc.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.124,8,1.28,26,2.827,27,0.437,29,0.83,30,0.001,31,0.594,32,0.144,33,0.513,35,0.997,36,2.273,39,3.448,95,0.168,99,1.374,101,0.014,103,0.001,104,0.001,105,1.418,107,1.985,111,2.125,112,2.583,127,1.328,187,1.191,199,4.006,216,1.96,217,1.072,221,1.906,227,0.854,843,3.634,1801,4.936,1884,6.336,1928,9.692,1973,5.865,2633,5.085,2725,3.731,4991,10.366,4993,6.578,4997,9.271,5007,6.69,5008,8.495,5012,9.799,5030,4.737,6072,6.122,6619,8.877,6696,10.836,6707,6.897,6713,8.235,6714,8.235,6715,8.235,6716,10.6,6717,8.235,6718,8.235,6719,8.235,6720,8.235,6721,8.235,6722,8.235]],["title/classes/CourseFactory.html",[0,0.232,6723,5.694]],["body/classes/CourseFactory.html",[0,0.151,2,0.494,3,0.01,4,0.01,5,0.005,7,0.067,8,0.824,27,0.538,29,1.015,30,0.001,31,0.705,32,0.179,33,0.601,34,1.416,35,1.426,47,0.486,55,2.711,59,3.147,95,0.13,99,0.739,101,0.007,103,0,104,0,127,0.554,138,2.98,144,3.158,148,1.362,165,0.534,185,4.945,188,3.074,192,1.319,216,1.261,217,1.566,227,1.048,234,1.108,319,3.432,359,2.378,366,2.476,379,2.289,380,2.147,381,2.269,404,1.229,538,3.074,596,3.839,627,2.093,660,7.122,661,4.485,662,5.279,665,3.85,666,5.279,667,5.585,668,3.85,669,3.85,670,3.85,671,3.782,672,4.265,673,4.698,674,6.475,675,5.6,676,6.945,677,2.522,682,2.498,683,3.85,684,2.522,685,4.936,686,5.097,687,3.987,688,4.793,689,3.815,690,2.498,691,2.354,692,3.987,693,2.433,694,2.392,695,2.498,696,4.863,697,2.522,698,4.614,699,2.498,700,7.252,701,4.06,702,6.481,703,2.522,704,4.122,705,2.498,706,2.522,707,2.498,708,2.522,709,2.498,710,2.818,711,2.624,712,2.498,713,5.917,714,2.522,715,2.498,716,3.85,717,3.601,718,3.85,719,2.522,720,2.412,721,2.392,722,1.974,723,2.498,724,2.498,725,2.498,726,2.522,727,2.522,728,1.693,729,2.498,730,2.522,731,2.695,732,2.498,733,2.522,735,2.571,736,2.624,737,5.606,848,3.152,849,3.372,1763,3.218,3777,6.122,4324,4.233,6469,2.941,6476,4.286,6478,6.799,6524,3.575,6723,6.971,6724,4.426,6725,9.353,6726,6.306,6727,6.822,6728,4.426,6729,4.426,6730,6.306,6731,4.426,6732,4.092,6733,6.822,6734,4.426,6735,4.426,6736,3.466,6737,3.575,6738,8.324,6739,3.466,6740,5.071,6741,5.342,6742,4.092,6743,4.426,6744,4.426,6745,4.426,6746,3.466]],["title/entities/CourseGroup.html",[380,1.445,6518,3.99]],["body/entities/CourseGroup.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.187,26,2.418,27,0.47,30,0.001,31,0.639,32,0.172,39,1.807,47,0.813,62,3.939,95,0.168,96,1.836,101,0.015,103,0.001,104,0.001,116,2.881,144,1.846,145,2.342,148,2.066,165,0.829,188,4.897,192,3.399,204,2.277,208,2.508,214,2.116,217,0.874,227,0.696,234,1.502,240,3.357,309,3.861,319,2.006,334,0.994,364,2.077,380,1.965,381,2.233,398,1.978,399,3.67,400,2.962,402,2.782,404,1.21,405,1.789,406,2.183,461,2.116,844,5.195,957,3.721,1107,4.69,1166,3.22,1843,3.182,2095,2.663,2440,3.824,2471,4.393,2632,5.695,2633,4.437,2636,5.041,2640,3.658,2646,3.939,2648,4.69,2650,4.165,2663,4.393,2794,3.98,2849,2.903,3050,5.114,3427,4.607,4205,2.262,4281,2.932,4989,4.236,6152,5.256,6471,4.78,6476,7.166,6511,5.606,6518,5.427,6520,6.054,6521,4.116,6522,5.812,6523,3.754,6539,6.587,6543,4.165,6545,5.422,6560,4.273,6561,7.031,6598,5.422,6747,6.205,6748,5.871,6749,6.712,6750,6.712,6751,4.53,6752,6.205,6753,6.712,6754,6.712,6755,6.712,6756,7.746,6757,4.165,6758,4.459,6759,6.205,6760,6.205,6761,4.879,6762,6.205,6763,6.205,6764,6.205,6765,6.205,6766,6.205,6767,6.205]],["title/classes/CourseGroupFactory.html",[0,0.232,6768,6.286]],["body/classes/CourseGroupFactory.html",[0,0.168,2,0.55,3,0.012,4,0.012,5,0.006,7,0.074,8,0.894,27,0.536,29,1.027,30,0.001,31,0.713,32,0.181,33,0.608,34,1.513,35,1.471,47,0.528,55,2.666,59,3.301,95,0.136,99,0.823,101,0.008,103,0,104,0,127,0.618,138,3.235,144,3.266,148,1.517,165,0.58,185,4.884,188,1.821,216,1.369,217,1.157,227,0.768,319,3.55,359,2.582,366,2.757,379,2.015,380,2.252,381,2.463,404,1.334,538,3.337,596,3.927,627,2.272,660,7.258,661,4.677,662,5.58,665,4.179,666,5.58,667,5.759,668,4.179,669,4.179,670,4.179,671,4.105,672,4.557,673,5.019,674,6.527,675,5.874,676,7.085,677,2.808,682,2.782,683,4.179,684,2.808,685,5.218,686,5.388,687,4.214,688,5.066,689,4.142,690,2.782,691,2.622,692,4.158,693,2.709,694,2.665,695,2.782,696,5.14,697,2.808,698,4.93,699,2.782,700,7.185,701,4.199,702,6.703,703,2.808,704,4.404,705,2.782,706,2.808,707,2.782,708,2.808,709,2.782,710,3.138,711,2.923,712,2.782,713,6.17,714,2.808,715,2.782,716,4.179,717,3.908,718,4.179,719,2.808,720,2.687,721,2.665,722,2.198,723,2.782,724,2.782,725,2.782,726,2.808,727,2.808,728,1.885,729,2.782,730,2.808,731,2.926,732,2.782,733,2.808,735,2.864,736,2.923,737,2.955,848,3.511,849,3.756,6476,4.653,6518,4.345,6723,4.129,6726,6.845,6730,6.845,6732,4.557,6742,4.557,6756,4.129,6768,8.221,6769,4.93,6770,4.93,6771,4.557,6772,4.93,6773,4.557]],["title/injectables/CourseGroupRepo.html",[105,0.91,1929,5.324]],["body/injectables/CourseGroupRepo.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,10,3.772,12,4.28,13,6.794,18,4.722,26,2.697,27,0.525,29,0.973,30,0.001,31,0.696,32,0.169,33,0.601,34,1.159,35,1.504,36,2.778,39,1.835,40,4.511,42,6.794,47,0.761,49,2.681,95,0.147,96,1.864,97,2.947,98,4.041,99,1.137,101,0.011,103,0.001,104,0.001,105,1.25,107,1.643,112,3.004,187,0.985,188,3.452,217,1.388,221,2.657,227,1.19,234,1.106,380,1.448,381,3.109,404,1.684,596,3.501,692,5.016,877,7.465,883,3.965,884,4.404,885,5.39,908,4.178,909,4.229,910,4.178,911,4.229,913,4.178,914,4.229,915,3.778,921,5.066,1929,7.319,3675,4.677,5880,6.667,6471,8.174,6476,4.282,6518,6.735,6774,6.815,6775,8.64,6776,8.64,6777,6.815,6778,7.121,6779,6.815,6780,6.815,6781,6.815,6782,5.192,6783,6.815,6784,9.346]],["title/injectables/CourseGroupRule.html",[105,0.91,1888,5.493]],["body/injectables/CourseGroupRule.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,8,1.206,27,0.462,29,0.878,30,0.001,31,0.628,32,0.162,33,0.542,35,1.208,95,0.16,101,0.013,103,0.001,104,0.001,105,1.335,107,1.811,111,1.506,116,3.982,127,0.941,187,1.087,199,4.515,214,2.369,215,2.398,216,1.846,217,1.555,227,1.035,347,2.416,380,2.815,461,3.068,806,3.059,1795,6.457,1798,5.634,1799,6.795,1813,5.351,1823,7.933,1826,8.732,1844,4.503,1861,7.24,1888,8.064,1889,9.698,2002,6.441,2006,6.195,2013,4.992,3385,6.632,3386,5.071,3389,6.534,3392,5.071,3393,6.738,6476,4.721,6518,7.774,6785,11.946,6786,7.514,6787,7.514,6788,7.514,6789,7.514,6790,6.572,6791,6.572,6792,6.292,6793,6.572]],["title/injectables/CourseGroupService.html",[105,0.91,6794,6.286]],["body/injectables/CourseGroupService.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.126,8,1.291,26,2.835,27,0.486,29,0.924,30,0.001,31,0.66,32,0.16,33,0.57,35,1.293,36,2.666,39,2.877,95,0.151,98,4.944,99,1.391,101,0.014,103,0.001,104,0.001,105,1.429,107,2.01,112,2.899,116,4.097,127,1.044,187,1.206,215,2.661,216,1.542,217,1.391,221,2.729,227,1.108,450,3.425,1929,9.737,2531,5.775,5880,7.223,6471,8.396,6518,4.892,6794,9.877,6795,8.338,6796,10.685,6797,10.685,6798,7.293,6799,8.338,6800,10.685,6801,8.338,6802,10.685,6803,8.338,6804,10.685,6805,8.338,6806,8.338,6807,8.338]],["title/classes/CourseMapper.html",[0,0.232,6623,5.947]],["body/classes/CourseMapper.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,8,1.398,27,0.391,29,0.742,30,0.001,31,0.531,32,0.129,33,0.458,35,1.147,95,0.149,99,1.581,100,3.876,101,0.016,103,0.001,104,0.001,188,4.931,217,1.506,227,0.983,234,1.538,627,3.835,982,4.723,6623,10.124,6808,9.475,6809,11.575,6810,11.575,6811,9.475,6812,10.901,6813,9.475,6814,9.475,6815,9.475,6816,9.475,6817,9.475,6818,9.475,6819,9.475,6820,9.475,6821,9.475]],["title/classes/CourseMetadataListResponse.html",[0,0.232,6622,5.694]],["body/classes/CourseMetadataListResponse.html",[0,0.307,2,0.721,3,0.015,4,0.015,5,0.008,7,0.098,26,1.911,27,0.487,29,0.506,30,0.001,31,0.362,32,0.177,33,0.571,34,1.909,47,0.894,55,2.948,56,5.863,59,2.807,70,6.052,83,3.913,95,0.133,99,1.079,101,0.015,103,0.001,104,0.001,127,1.129,145,1.637,163,3.632,165,0.706,188,3.832,240,2.051,364,2.044,375,4.275,376,1.479,379,2.842,404,1.624,467,3.207,469,2.838,475,3.16,596,3.423,618,2.644,728,2.472,1007,7.689,1008,6.606,1009,5.134,1011,3.266,1013,4.751,1014,3.083,1015,3.616,1016,2.27,1017,4.517,1018,5.815,1019,5.234,1020,4.231,1021,5.518,1022,4.517,1023,4.517,1025,4.062,1026,3.584,1397,3.951,1588,4.517,2241,4.363,2553,4.784,2747,3.336,2884,3.439,2885,3.439,3753,6.437,6469,4.295,6470,7.002,6475,7.388,6478,7.541,6551,5.222,6553,4.925,6555,4.806,6596,7.12,6622,7.547,6812,10.503,6822,8.331,6823,5.976,6824,6.465,6825,6.465,6826,5.222,6827,5.062,6828,7.702,6829,5.062,6830,5.976,6831,5.062,6832,5.062,6833,4.062,6834,4.699,6835,5.222]],["title/classes/CourseMetadataResponse.html",[0,0.232,6812,5.694]],["body/classes/CourseMetadataResponse.html",[0,0.288,2,0.66,3,0.014,4,0.014,5,0.007,7,0.089,26,2.287,27,0.516,29,0.463,30,0.001,31,0.331,32,0.173,33,0.591,34,2.127,47,0.974,55,2.129,56,4.06,59,3.078,70,4.191,83,4.214,95,0.127,99,0.987,101,0.014,103,0,104,0,127,1.06,163,2.604,165,0.663,188,4.386,240,2.685,364,2.227,375,4.109,376,1.353,379,2.77,404,1.066,467,3.115,469,2.597,475,4.137,618,2.419,728,3.236,1007,5.189,1008,3.196,1009,3.369,1013,4.94,1021,5.737,1025,3.716,1026,3.279,1397,4.376,1403,5.478,1588,5.913,2241,5.712,2341,4.631,2553,5.33,2747,3.052,2884,4.501,2885,4.501,3753,7.586,6469,5.622,6470,8.251,6475,8.706,6478,8.887,6551,4.777,6553,4.506,6555,4.397,6596,8.391,6622,4.953,6812,9.559,6822,11.767,6823,5.467,6826,4.777,6827,4.631,6828,8.581,6829,6.627,6830,7.823,6831,6.627,6832,6.627,6833,5.317,6834,6.152,6835,6.836,6836,5.914,6837,5.914,6838,5.914,6839,5.914,6840,5.914,6841,5.914,6842,5.914,6843,5.914]],["title/entities/CourseNews.html",[380,1.445,6844,5.055]],["body/entities/CourseNews.html",[0,0.344,3,0.012,4,0.022,5,0.006,7,0.171,9,3.609,26,2.143,27,0.213,30,0.001,31,0.429,32,0.137,34,0.877,47,0.877,83,2.343,95,0.155,96,2.499,101,0.018,103,0,104,0,165,0.846,188,3.374,192,3.219,208,1.927,227,0.535,234,1.483,240,3.717,334,0.554,364,0.939,369,2.6,370,3.86,380,2.295,381,1.715,398,1.519,399,3.038,400,2.276,404,1.822,405,2.694,406,1.677,461,2.471,571,5.74,574,4.011,595,1.727,617,5.064,627,1.582,672,4.681,731,3.609,769,4.541,843,2.276,844,5.155,854,3.843,1031,2.4,1187,4.356,1188,4.764,1189,4.305,1190,4.554,1191,4.978,1397,3.059,1415,4.696,1843,3.63,1849,2.588,1865,3.488,1941,3.283,1959,2.81,2303,3.703,2577,5.156,2632,4.207,2646,3.026,2702,5.792,2747,2.662,3427,3.539,3429,3.283,3430,3.603,3432,3.673,3433,3.603,3434,3.834,3448,3.162,3584,3.481,3609,3.283,4205,1.738,4297,3.929,4298,3.749,4989,4.184,5057,3.834,5072,3.749,5618,6.641,6216,2.859,6434,3.603,6521,3.162,6523,2.884,6544,3.091,6757,4.752,6844,5.693,6845,4.166,6846,5.157,6847,4.642,6848,4.166,6849,6.791,6850,5.894,6851,4.166,6852,8.862,6853,5.088,6854,4.937,6855,5.693,6856,5.693,6857,6.711,6858,7.526,6859,4.166,6860,5.454,6861,4.166,6862,3.929,6863,3.929,6864,4.942,6865,4.166,6866,3.929,6867,3.929,6868,4.166,6869,3.834,6870,4.166,6871,3.058,6872,3.162,6873,3.929,6874,4.166,6875,4.166,6876,7.153,6877,4.166,6878,7.379,6879,4.166,6880,4.166,6881,5.835,6882,3.929,6883,6.382,6884,4.038,6885,5.012,6886,3.929,6887,3.749,6888,3.929,6889,4.166]],["title/classes/CourseQueryParams.html",[0,0.232,6608,5.947]],["body/classes/CourseQueryParams.html",[0,0.394,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.391,30,0.001,32,0.129,95,0.16,101,0.021,103,0.001,104,0.001,165,0.907,364,1.726,368,4.535,369,2.569,370,3.813,371,3.192,374,3.024,376,2.167,379,2.147,467,3.037,470,4.842,472,6.395,1031,3.627,1500,8.604,4993,5.879,5007,7.215,5008,9.162,5030,5.45,6608,10.124,6890,9.475,6891,9.475,6892,9.475,6893,9.475]],["title/injectables/CourseRepo.html",[105,0.91,1930,4.121]],["body/injectables/CourseRepo.html",[0,0.225,3,0.01,4,0.01,5,0.005,7,0.064,8,0.798,10,2.667,12,3.027,18,3.339,26,2.844,27,0.491,29,0.912,30,0.001,31,0.652,32,0.17,33,0.563,34,1.124,35,1.409,36,2.705,39,3.491,40,3.19,56,3.171,58,4.265,59,3.088,83,1.3,95,0.127,96,1.162,98,2.519,99,0.709,101,0.007,103,0,104,0,105,0.884,107,1.024,112,2.943,138,3.997,144,1.169,187,0.614,188,4.394,217,1.729,221,2.43,227,1.276,234,1.61,277,4.422,319,1.27,347,1.337,369,1.467,371,1.172,380,0.903,381,2.199,398,1.252,404,1.462,596,2.791,692,4.527,701,4.006,877,6.429,883,2.804,884,3.114,885,4.098,908,2.605,909,2.637,910,2.605,911,2.637,913,2.605,914,2.637,915,2.355,964,4.536,1930,4.006,1944,4.536,2144,5.165,2394,3.919,2633,3.171,2801,3.026,3675,2.916,3680,3.716,3778,5.989,4324,5.679,4455,6.552,4460,3.558,4659,6.08,4748,5.819,5880,6.097,5882,6.394,6018,6.691,6471,3.026,6476,4.153,6477,5.667,6478,4.804,6612,3.961,6782,3.237,6894,3.928,6895,6.609,6896,7.095,6897,6.609,6898,6.11,6899,6.11,6900,4.249,6901,7.475,6902,6.641,6903,4.249,6904,4.249,6905,4.249,6906,6.11,6907,4.249,6908,4.249,6909,6.11,6910,4.249,6911,4.249,6912,6.03,6913,10.405,6914,3.928,6915,6.11,6916,7.664,6917,3.928,6918,3.928,6919,3.928,6920,6.11,6921,6.11,6922,3.432,6923,3.928,6924,3.928,6925,3.928,6926,5.781,6927,6.11,6928,6.11,6929,6.11,6930,8.004,6931,4.804,6932,4.804,6933,7.498,6934,3.928,6935,3.716,6936,3.928,6937,3.928,6938,3.928]],["title/injectables/CourseRule.html",[105,0.91,1889,5.055]],["body/injectables/CourseRule.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.117,8,1.233,27,0.47,29,0.893,30,0.001,31,0.639,32,0.165,33,0.551,35,1.236,95,0.155,101,0.013,103,0.001,104,0.001,105,1.366,107,1.874,116,4.02,127,0.974,187,1.124,188,4.93,199,4.576,214,2.451,215,2.481,216,1.438,217,1.484,227,1.059,347,2.449,380,2.836,461,3.117,806,3.165,1795,6.544,1798,6.435,1799,6.189,1814,5.336,1823,8.009,1844,4.66,1861,7.338,1889,7.59,2002,6.588,2006,6.336,2013,5.165,3385,6.784,3386,5.247,3389,6.683,3392,5.247,3393,6.892,4324,6.336,6476,4.885,6477,7.134,6939,7.775,6940,7.775,6941,7.775,6942,7.775,6943,7.775]],["title/classes/CourseScope.html",[0,0.232,6913,5.947]],["body/classes/CourseScope.html",[0,0.238,2,0.509,3,0.011,4,0.011,5,0.006,7,0.069,8,0.844,26,2.818,27,0.5,29,0.846,30,0.001,31,0.605,32,0.162,33,0.523,34,0.777,35,1.361,36,2.317,39,3.48,40,2.204,56,3.352,58,4.509,83,1.397,95,0.132,96,1.249,98,2.708,99,0.762,101,0.008,103,0,104,0,105,0.935,111,2.167,112,2.382,144,1.256,148,1.405,165,0.547,187,0.66,188,4.154,217,1.747,221,2.501,227,1.298,234,1.664,277,5.169,319,1.365,347,2.073,369,1.013,371,1.259,398,1.345,404,1.529,529,1.985,596,3.126,701,3.362,877,4.1,885,2.307,964,4.796,1930,2.768,1944,4.796,2144,5.366,2394,6.075,2633,3.352,2801,3.252,3675,3.134,3680,3.994,3778,6.223,4324,5.9,4455,3.689,4659,4.642,4748,5.991,5880,6.277,5882,6.643,5991,4.716,5992,4.716,5993,4.716,5998,4.716,5999,4.716,6000,3.134,6001,3.082,6002,3.134,6003,3.134,6012,3.082,6013,4.716,6014,3.134,6015,3.082,6016,3.134,6017,3.082,6018,6.916,6471,3.252,6476,4.39,6477,5.93,6478,5.079,6612,4.188,6782,3.479,6894,4.222,6896,3.994,6899,4.222,6901,4.976,6902,5.144,6906,4.222,6909,4.222,6912,6.309,6913,11.399,6914,6.46,6915,6.46,6916,7.962,6917,6.46,6918,6.46,6919,8.789,6920,6.46,6921,6.46,6922,3.689,6923,6.46,6924,4.222,6925,4.222,6926,6.112,6927,6.46,6928,6.46,6929,6.46,6930,8.316,6931,5.079,6932,5.079,6933,7.846,6934,4.222,6935,3.994,6936,4.222,6937,4.222,6938,4.222,6944,6.988,6945,6.988,6946,6.988,6947,6.988,6948,4.567,6949,4.567,6950,4.567,6951,4.567,6952,4.567]],["title/injectables/CourseService.html",[105,0.91,130,4.589]],["body/injectables/CourseService.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.198,12,4.544,26,2.928,27,0.511,29,0.971,30,0.001,31,0.694,32,0.169,33,0.599,35,1.441,36,2.835,39,3.005,95,0.143,98,4.414,99,1.242,101,0.012,103,0.001,104,0.001,105,1.327,107,1.794,112,3.026,116,3.971,127,0.932,130,6.696,187,1.077,188,3.665,215,2.376,216,1.377,217,1.452,221,2.755,227,1.234,450,3.058,1930,7.214,2531,5.362,2633,3.571,4455,8.014,4460,8.309,4748,6.872,5880,6.913,6798,6.511,6953,7.444,6954,9.922,6955,9.922,6956,7.444,6957,9.922,6958,7.444,6959,7.444,6960,9.922,6961,7.444,6962,9.922,6963,7.444,6964,7.444,6965,11.16,6966,7.444,6967,7.444,6968,7.444]],["title/injectables/CourseUc.html",[105,0.91,6617,5.694]],["body/injectables/CourseUc.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.134,8,1.344,26,2.699,27,0.459,29,0.872,30,0.001,31,0.623,32,0.151,33,0.538,35,1.076,36,2.386,39,2.394,59,2.769,95,0.163,98,5.271,99,1.484,101,0.015,103,0.001,104,0.001,105,1.488,107,2.143,127,1.113,187,1.286,188,3.283,215,2.837,216,1.644,227,0.922,450,3.652,469,3.903,592,4.027,701,4.501,1028,8.893,1930,8.104,2144,5.017,4431,5.585,6612,5.328,6617,9.319,6646,7.445,6667,8.218,6969,8.89,6970,11.127,6971,8.89,6972,11.127,6973,8.89,6974,6.961]],["title/classes/CourseUrlParams.html",[0,0.232,6607,5.947]],["body/classes/CourseUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,188,4.363,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2633,6.084,3795,5.749,6607,10.332,6975,9.798,6976,9.798]],["title/classes/CreateCardBodyParams.html",[0,0.232,4916,5.947]],["body/classes/CreateCardBodyParams.html",[0,0.394,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.39,30,0.001,32,0.128,33,0.559,95,0.16,99,1.578,101,0.016,103,0.001,104,0.001,165,0.905,364,1.722,368,3.704,369,2.771,371,3.187,374,3.017,375,4.403,376,2.162,471,4.685,1031,3.622,1044,4.535,2450,6.584,4095,10.92,4096,7.152,4916,10.109,5477,7.357,6977,11.558,6978,8.738,6979,7.679,6980,9.453,6981,9.453]],["title/classes/CreateContentElementBodyParams.html",[0,0.232,3975,5.947]],["body/classes/CreateContentElementBodyParams.html",[0,0.365,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,27,0.442,30,0.001,32,0.186,33,0.519,55,2.685,95,0.152,99,1.4,101,0.014,103,0.001,104,0.001,165,0.84,319,3.206,364,1.954,368,4.883,369,2.381,370,4.106,371,3.633,374,2.678,375,4.086,376,1.919,379,2.431,467,2.814,471,4.348,1031,3.361,1044,4.025,1184,5.947,2303,4.793,2553,5.313,2767,6.578,2889,5.312,3470,5.974,3475,6.099,3975,9.383,4045,9.26,4096,7.18,5478,8.665,6979,5.574,6982,11.826,6983,7.026,6984,8.39,6985,9.917,6986,9.383,6987,8.39,6988,8.39,6989,8.39]],["title/interfaces/CreateJwtParams.html",[334,0.731,6990,5.947]],["body/interfaces/CreateJwtParams.html",[0,0.249,3,0.017,4,0.017,5,0.009,7,0.11,30,0.001,32,0.179,33,0.662,47,1.013,85,8.184,95,0.126,101,0.012,103,0.001,104,0.001,116,3.053,165,0.768,217,1.538,227,1.016,334,0.785,336,1.749,565,4.885,627,3.007,1568,5.724,1570,5.433,1593,6.121,1605,4.334,1609,5.569,1613,4.536,1738,7.124,1749,7.286,4508,7.467,6161,8.774,6990,9.671,6991,6.757,6992,9.648,6993,10.319,6994,9.648,6995,11.725,6996,10.622,6997,9.06,6998,6.757,6999,6.757,7000,6.757,7001,6.757,7002,8.572,7003,6.757,7004,9.06,7005,9.06,7006,6.757,7007,6.393,7008,6.393,7009,6.757,7010,9.06,7011,6.757,7012,6.757,7013,6.757,7014,6.757,7015,6.757,7016,5.724,7017,5.724,7018,6.393,7019,6.757,7020,6.757,7021,6.757,7022,6.757]],["title/interfaces/CreateJwtPayload.html",[334,0.731,1719,5.324]],["body/interfaces/CreateJwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.181,33,0.598,39,3.444,47,1.017,48,5.823,55,2.277,85,7.974,101,0.018,103,0.001,104,0.001,165,0.828,334,1.136,336,1.963,347,2.649,355,3.296,404,1.478,461,1.876,575,4.916,722,3.657,956,5.368,1609,6.249,1613,5.09,1719,9.162,1739,5.962,1749,6.097,1852,4.464,1946,5.449,2449,8.778,3110,6.16,4205,4.165,5058,5.449,6161,5.841,6992,6.423,6994,6.423,7016,6.423,7017,6.423,7023,7.582,7024,7.582,7025,9.983,7026,6.869,7027,5.09,7028,7.582,7029,7.174,7030,7.174]],["title/classes/CreateNewsParams.html",[0,0.232,7031,5.493]],["body/classes/CreateNewsParams.html",[0,0.328,2,0.793,3,0.017,4,0.017,5,0.009,7,0.107,27,0.503,30,0.001,32,0.166,33,0.465,34,1.637,47,0.933,83,2.945,95,0.15,99,1.187,100,3.223,101,0.012,103,0.001,104,0.001,165,0.754,364,2.224,374,2.271,375,3.666,376,1.628,379,2.966,380,2.849,467,3.203,469,3.124,470,4.563,471,3.902,475,3.478,999,6.127,1000,3.919,1031,2.23,1035,6.725,1044,3.414,1184,5.336,1397,4.088,1770,5.591,1944,6.606,2303,4.949,2702,5.266,2736,6.3,2884,5.12,2885,5.12,3259,3.672,6153,6.606,6850,7.038,6853,7.247,6857,6.467,6858,7.859,7031,7.775,7032,12.584,7033,6.224,7034,7.537,7035,7.621,7036,7.115,7037,6.578,7038,5.959,7039,6.127,7040,8.061,7041,7.333,7042,6.578,7043,6.578,7044,7.439,7045,7.115,7046,7.115,7047,6.997,7048,7.115,7049,5.748,7050,7.115,7051,7.333,7052,6.578,7053,6.578]],["title/classes/CreateSubmissionItemBodyParams.html",[0,0.232,7054,5.947]],["body/classes/CreateSubmissionItemBodyParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.131,95,0.15,101,0.016,103,0.001,104,0.001,165,0.914,347,2.646,364,1.75,368,4.575,369,2.591,373,6.259,374,3.068,376,2.198,379,2.178,467,3.063,2849,5.657,3264,8.123,7054,10.212,7055,9.143,7056,11.675,7057,8.884,7058,8.406,7059,10.212,7060,9.431,7061,8.884]],["title/classes/CurrentUserMapper.html",[0,0.232,7062,5.055]],["body/classes/CurrentUserMapper.html",[0,0.223,2,0.729,3,0.015,4,0.015,5,0.008,7,0.099,8,1.097,27,0.465,29,0.883,30,0.001,31,0.632,32,0.153,33,0.545,34,1.112,35,1.365,39,3.037,47,0.977,48,6.215,59,3.251,85,8.117,95,0.158,99,1.091,101,0.011,103,0.001,104,0.001,227,1.169,231,3.624,234,1.062,305,1.863,334,0.702,369,1.451,371,1.803,461,3.017,491,6.31,496,3.835,503,4.009,513,3.303,558,3.137,627,4.125,738,5.426,1719,8.173,1739,8.614,1742,5.475,2449,4.487,3110,5.621,3391,4.279,3743,3.836,4205,3.801,4756,5.281,5987,4.656,7025,9.11,7062,6.752,7063,11.85,7064,5.719,7065,9.083,7066,9.083,7067,10.437,7068,9.083,7069,9.083,7070,6.538,7071,9.083,7072,6.538,7073,6.538,7074,5.907,7075,9.11,7076,6.538,7077,7.758,7078,9.083,7079,6.538,7080,6.13,7081,5.281,7082,6.538,7083,5.281,7084,6.538,7085,6.538,7086,5.719,7087,6.538,7088,4.981,7089,6.538,7090,6.044,7091,6.538,7092,6.538,7093,6.538,7094,6.538,7095,6.538,7096,6.538,7097,6.538,7098,5.719,7099,6.538,7100,6.538]],["title/interfaces/CustomLtiProperty.html",[334,0.731,7101,5.947]],["body/interfaces/CustomLtiProperty.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.084,26,1.711,30,0.001,31,0.533,32,0.129,47,0.965,49,3.176,95,0.134,96,2.208,97,2.396,101,0.019,103,0,104,0,116,2.514,144,2.878,145,2.044,150,1.918,165,0.632,216,1.024,227,0.574,234,0.9,236,3.251,240,4.367,319,3.325,334,0.595,336,1.326,347,2.25,369,2.967,370,4.518,371,3.687,380,1.715,394,4.599,398,1.632,399,3.203,400,2.445,402,2.296,404,0.998,405,1.476,406,1.802,540,5.868,701,1.959,853,2.859,1019,4.689,1031,3.486,1498,3.358,1602,6.654,1618,3.218,1858,2.902,2035,6.012,2095,2.198,2362,3.186,2545,2.947,2632,2.551,3110,2.762,4281,2.42,6196,2.994,6527,4.475,6540,4.475,7101,8.33,7102,5.121,7103,6.761,7104,7.693,7105,7.463,7106,7.463,7107,5.121,7108,5.121,7109,7.463,7110,5.121,7111,5.121,7112,6.233,7113,7.463,7114,7.463,7115,5.121,7116,4.118,7117,4.338,7118,3.575,7119,4.338,7120,3.575,7121,6.761,7122,3.575,7123,4.338,7124,4.338,7125,4.118,7126,5.121,7127,5.121,7128,4.475,7129,4.338,7130,5.121,7131,3.945,7132,4.338,7133,3.527,7134,4.118,7135,3.321,7136,3.481,7137,4.027,7138,4.475,7139,4.338,7140,4.64,7141,4.64,7142,5.121,7143,4.221,7144,4.475,7145,4.64,7146,5.121,7147,4.221,7148,4.475,7149,4.338,7150,4.475,7151,4.221,7152,4.475,7153,4.64,7154,5.121,7155,4.64,7156,5.121,7157,4.64,7158,5.121,7159,5.121,7160,5.121,7161,5.121,7162,4.64,7163,5.121,7164,4.64,7165,5.121,7166,4.221,7167,4.475,7168,3.871,7169,4.118,7170,4.64,7171,5.121,7172,4.118,7173,4.475]],["title/classes/CustomLtiPropertyDO.html",[0,0.232,7174,5.694]],["body/classes/CustomLtiPropertyDO.html",[0,0.336,2,0.823,3,0.017,4,0.017,5,0.009,7,0.111,26,2.091,27,0.458,29,0.578,30,0.001,31,0.552,32,0.151,33,0.357,47,1.011,95,0.143,101,0.016,103,0.001,104,0.001,127,0.924,144,3.571,150,2.554,165,0.772,236,4.328,347,2.5,404,1.329,1618,4.284,1872,5.728,2035,6.873,2095,2.926,2545,3.923,3110,3.677,4385,6.451,6196,3.987,7104,7.965,7112,6.454,7117,5.776,7118,4.759,7119,5.776,7120,4.759,7122,4.759,7123,5.776,7124,5.776,7125,5.483,7129,5.776,7131,5.253,7132,5.776,7133,4.695,7134,5.483,7135,4.421,7137,7.168,7139,5.776,7141,6.177,7143,5.62,7145,6.177,7147,5.62,7149,5.776,7151,5.62,7153,6.177,7155,6.177,7157,6.177,7162,6.177,7164,6.177,7166,5.62,7168,5.153,7170,6.177,7172,5.483,7174,9.303,7175,6.819,7176,9.116,7177,9.861,7178,7.376,7179,6.451,7180,5.62,7181,5.776,7182,6.889,7183,5.776,7184,5.776,7185,6.819,7186,6.819,7187,6.819,7188,6.819,7189,6.819,7190,6.819,7191,6.819,7192,6.451,7193,6.819,7194,6.819,7195,6.819,7196,6.819,7197,6.819,7198,6.819,7199,6.819,7200,6.819,7201,6.819,7202,6.819,7203,6.819,7204,6.819]],["title/classes/CustomParameter.html",[0,0.232,136,4.328]],["body/classes/CustomParameter.html",[0,0.256,2,0.839,3,0.018,4,0.018,5,0.009,7,0.114,27,0.563,29,0.59,30,0.001,31,0.67,32,0.189,33,0.649,47,0.981,95,0.097,101,0.013,103,0.001,104,0.001,127,0.943,136,7.92,146,7.702,165,0.783,195,7.574,196,7.991,277,4.529,319,3.354,331,7.143,347,2.022,379,2.543,405,2.663,471,4.549,595,2.52,1031,2.359,2095,2.987,2578,3.356,4281,3.288,4333,4.512,5429,7.345,5698,5.709,5717,4.792,5718,5.166,6541,5.081,6542,4.927,7205,12.713,7206,7.528,7207,8.342,7208,9.995,7209,7.528,7210,7.528,7211,7.528,7212,7.528,7213,7.528,7214,7.528,7215,7.528,7216,7.528,7217,7.528,7218,6.959,7219,6.959,7220,6.304,7221,6.304,7222,5.081,7223,6.081,7224,6.584,7225,6.584,7226,6.584,7227,6.584,7228,6.584,7229,6.584]],["title/classes/CustomParameterEntity.html",[0,0.232,7230,5.493]],["body/classes/CustomParameterEntity.html",[0,0.22,2,0.72,3,0.015,4,0.015,5,0.008,7,0.097,27,0.548,29,0.506,30,0.001,31,0.628,32,0.185,33,0.628,47,0.956,95,0.116,96,1.766,101,0.011,103,0.001,104,0.001,127,0.808,146,7.114,165,0.705,195,6.996,196,7.381,198,3.135,240,4.217,277,4.183,319,3.098,331,6.598,347,1.821,364,2.396,369,2.838,370,3.694,379,2.349,386,6.389,398,1.902,405,2.399,471,4.202,595,2.161,1031,3.928,2095,2.561,2559,6.076,2574,4.646,2578,2.878,4281,2.819,4333,3.868,5429,6.784,5698,5.274,5717,4.108,5718,4.43,6541,4.356,6542,4.224,7207,7.705,7218,5.967,7219,5.967,7220,5.405,7221,5.405,7222,4.356,7223,5.214,7224,5.645,7225,5.645,7226,5.645,7227,5.645,7228,5.645,7229,5.645,7230,9.527,7231,13.413,7232,13.413,7233,6.454,7234,9.002,7235,6.454,7236,6.454,7237,6.454,7238,6.454,7239,6.454,7240,6.454,7241,6.454,7242,6.454,7243,6.454]],["title/classes/CustomParameterEntry.html",[0,0.232,181,4.387]],["body/classes/CustomParameterEntry.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,27,0.517,29,0.747,30,0.001,31,0.731,32,0.17,33,0.606,47,0.93,101,0.016,103,0.001,104,0.001,127,1.195,144,3.448,165,0.911,181,8.631,290,7.657,405,3.098,595,3.195,2095,3.786,4281,4.168,7181,7.472,7205,12.063,7244,9.542,7245,11.625,7246,9.542,7247,7.991]],["title/classes/CustomParameterEntryEntity.html",[0,0.232,5776,5.181]],["body/classes/CustomParameterEntryEntity.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,27,0.508,29,0.72,30,0.001,31,0.721,32,0.168,33,0.596,47,0.919,95,0.118,96,2.515,101,0.015,103,0.001,104,0.001,127,1.152,144,3.392,165,0.89,240,4.199,290,7.559,364,2.07,398,2.709,405,3.028,595,3.078,2095,3.648,2574,5.864,4281,4.016,5776,10.084,7181,7.199,7247,7.7,7248,12.882,7249,9.194,7250,11.363,7251,9.194]],["title/classes/CustomParameterEntryParam.html",[0,0.232,5827,5.181]],["body/classes/CustomParameterEntryParam.html",[0,0.392,2,1.049,3,0.022,4,0.022,5,0.011,7,0.142,27,0.475,30,0.001,31,0.698,32,0.157,33,0.557,47,0.926,95,0.148,101,0.016,103,0.001,104,0.001,144,3.427,165,0.903,200,3.881,290,7.311,364,2.099,374,3.003,375,4.39,376,2.152,467,3.024,470,5.212,471,4.672,2584,6.573,5825,6.839,5827,8.781,7252,7.731,7253,11.518,7254,9.409,7255,9.409,7256,9.409]],["title/classes/CustomParameterEntryResponse.html",[0,0.232,5937,5.324]],["body/classes/CustomParameterEntryResponse.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,27,0.505,29,0.709,30,0.001,31,0.717,32,0.166,33,0.592,47,0.913,95,0.116,101,0.015,103,0.001,104,0.001,127,1.134,144,3.368,165,0.881,200,3.99,290,7.517,364,2.049,375,4.286,376,2.07,405,2.998,467,3.361,595,3.03,2095,3.59,4281,3.953,5937,10.317,7181,7.086,7247,7.579,7252,7.949,7253,11.842,7257,9.049,7258,11.252,7259,9.049,7260,9.049]],["title/classes/CustomParameterFactory.html",[0,0.232,7261,5.694]],["body/classes/CustomParameterFactory.html",[0,0.259,2,0.429,3,0.009,4,0.009,5,0.005,7,0.058,8,0.738,27,0.509,29,0.988,30,0.001,31,0.691,32,0.178,33,0.57,34,1.04,35,1.399,47,0.436,55,2.358,59,3.135,95,0.121,101,0.016,103,0,104,0,127,0.482,136,4.842,138,2.67,144,3.011,146,2.64,148,1.184,150,1.332,154,3.484,158,1.881,165,0.479,185,5.055,195,2.597,196,2.74,200,1.198,201,1.957,209,1.271,216,1.13,217,1.586,227,1.223,236,2.257,238,4.254,277,3.815,278,2.931,279,4.444,281,2.86,290,2.257,319,3.272,326,2.86,331,2.449,359,2.131,366,2.152,371,2.389,379,1.724,380,1.616,381,2.033,404,1.561,461,0.88,471,1.559,538,2.754,596,3.717,627,1.876,660,6.697,661,4.23,662,4.89,665,3.45,666,4.89,667,5.19,668,3.45,669,3.45,670,3.45,671,3.389,672,3.897,673,4.293,674,6.352,675,5.24,676,6.672,677,2.192,682,2.171,683,3.45,684,2.192,685,4.573,686,4.722,687,3.693,688,4.44,689,3.419,690,2.171,691,2.046,692,3.76,693,2.114,694,2.079,695,2.171,696,4.504,697,2.192,698,4.216,699,2.171,700,7.463,701,3.871,702,6.179,703,2.192,704,3.027,705,2.171,706,2.192,707,2.171,708,2.192,709,2.171,712,2.171,713,5.579,714,2.192,715,2.171,716,3.45,717,3.226,718,3.45,719,2.192,720,2.097,721,2.079,722,1.715,723,2.171,724,2.171,725,2.171,726,2.192,727,2.192,728,1.471,729,2.171,730,2.192,731,2.415,732,2.171,733,2.192,735,2.235,736,2.281,737,5.193,905,1.602,1431,2.192,1618,3.551,2035,3.304,2558,2.797,2565,2.133,2568,2.688,4313,6.732,4315,2.797,5007,2.079,5530,3.047,5698,1.957,5736,2.171,5793,3.108,5798,3.013,5799,2.597,7112,2.518,7118,2.482,7120,2.482,7122,2.482,7133,2.449,7135,2.306,7261,6.37,7262,5.347,7263,6.113,7264,5.347,7265,3.847,7266,2.797,7267,4.544,7268,3.013,7269,2.797,7270,2.64,7271,2.387,7272,3.365,7273,3.365,7274,3.365,7275,6.653,7276,5.119,7277,3.365,7278,3.705,7279,3.108,7280,2.797,7281,2.931,7282,3.365,7283,2.86,7284,3.365,7285,3.365,7286,3.222,7287,3.365,7288,3.365,7289,2.597,7290,3.365,7291,3.365,7292,3.365,7293,2.64,7294,3.365,7295,3.365,7296,3.222,7297,3.365,7298,2.74,7299,4.657,7300,5.347,7301,6.653,7302,5.347,7303,5.347,7304,3.365,7305,3.222,7306,3.013,7307,5.119,7308,3.365,7309,3.365,7310,3.365,7311,3.365,7312,3.365,7313,5.347,7314,3.365,7315,3.222,7316,2.518,7317,3.222,7318,3.365,7319,3.365,7320,3.365,7321,3.365]],["title/classes/CustomParameterPostParams.html",[0,0.232,7322,5.493]],["body/classes/CustomParameterPostParams.html",[0,0.326,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,27,0.552,30,0.001,31,0.608,32,0.186,33,0.632,47,0.971,95,0.139,101,0.012,103,0.001,104,0.001,165,0.749,198,3.426,277,4.382,331,6.912,347,1.935,364,2.438,373,5.13,374,2.251,375,4.637,376,1.613,379,2.461,467,3.368,470,5.37,471,5.294,1001,6.508,1044,3.384,2559,6.12,5429,7.107,5698,5.525,5825,8.464,7207,8.072,7322,7.729,7323,13.509,7324,7.053,7325,8.273,7326,7.053,7327,7.053,7328,7.729,7329,7.053,7330,5.374,7331,7.053,7332,9.094,7333,7.053,7334,7.053,7335,7.053,7336,7.053,7337,7.053,7338,9.094,7339,7.053,7340,7.053,7341,9.094,7342,7.053,7343,7.053,7344,7.053,7345,7.053,7346,7.053]],["title/classes/CustomParameterResponse.html",[0,0.232,5743,5.324]],["body/classes/CustomParameterResponse.html",[0,0.227,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,27,0.551,29,0.521,30,0.001,31,0.637,32,0.186,33,0.632,47,0.962,95,0.118,101,0.011,103,0.001,104,0.001,127,0.834,165,0.72,198,3.233,277,4.253,331,6.707,347,1.86,364,2.411,375,4.981,376,1.523,379,2.388,405,2.451,467,3.473,471,4.271,595,2.229,1031,3.302,2095,2.641,2559,6.109,2578,2.968,2888,6.386,4281,2.908,4333,3.99,5429,6.896,5698,5.361,5717,4.237,5718,4.569,5743,9.34,6541,4.493,6542,4.357,7207,7.833,7220,5.575,7221,5.575,7222,4.493,7223,5.377,7224,5.823,7225,5.823,7226,5.823,7227,5.823,7228,5.823,7229,5.823,7325,8.028,7332,9.989,7338,9.989,7341,9.989,7347,13.484,7348,6.657,7349,9.197,7350,6.657,7351,6.657,7352,6.657,7353,6.657,7354,6.657,7355,6.657,7356,6.657,7357,6.657,7358,6.657,7359,6.657,7360,6.657]],["title/controllers/DashboardController.html",[481,2.611,7361,5.947]],["body/controllers/DashboardController.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.119,27,0.437,29,0.83,30,0.001,31,0.593,32,0.144,33,0.512,35,1.282,36,2.653,55,2.665,95,0.159,100,4.244,101,0.011,103,0.001,104,0.001,112,2.888,185,4.808,187,0.972,215,2.146,216,1.243,217,1.61,221,2.452,227,1.098,264,4.451,364,1.929,376,1.538,447,2.787,481,2.582,483,3.206,491,6.525,513,6.768,529,2.922,543,5.389,552,4.338,555,3.496,556,3.576,561,3.605,1271,7.265,2908,6.061,2930,3.605,3743,5.434,4150,8.871,6605,8.56,6611,6.216,7361,8.099,7362,6.724,7363,7.171,7364,10.592,7365,6.724,7366,6.724,7367,11.087,7368,9.558,7369,9.26,7370,6.724,7371,6.724,7372,8.127,7373,9.982,7374,9.26,7375,6.724,7376,5.881,7377,6.724,7378,8.871,7379,6.724,7380,5.123,7381,6.724,7382,6.724,7383,6.724,7384,6.724,7385,10.592,7386,8.099,7387,6.724,7388,6.724,7389,6.724,7390,6.724,7391,6.724,7392,6.724,7393,6.724,7394,6.216]],["title/classes/DashboardEntity.html",[0,0.232,7395,4.943]],["body/classes/DashboardEntity.html",[0,0.17,2,0.334,3,0.007,4,0.007,5,0.004,7,0.125,8,0.603,26,2.458,27,0.516,29,0.876,30,0.001,31,0.626,32,0.17,33,0.541,34,1.757,35,1.443,39,2.013,47,0.85,55,2.651,83,0.918,95,0.082,101,0.017,103,0,104,0,111,2.653,127,0.376,144,1.373,145,1.893,148,3.568,165,0.391,187,0.434,214,0.946,217,1.688,227,1.345,234,1.615,247,2.929,305,1.827,334,0.322,347,1.512,405,0.799,415,2.698,416,1.909,595,2.147,618,3.394,619,2.767,627,2.294,905,2.67,1041,1.678,1166,3.982,1271,4.758,1397,3.181,1680,5.695,1695,3.178,1750,3.315,1865,2.92,2341,3.909,2545,1.595,2553,4.661,2630,6.694,2643,1.742,2644,1.608,2686,2.18,2747,3.858,2767,5.623,3234,4.766,3364,3.619,3433,2.096,3609,3.178,3703,6.951,3753,3.098,4150,4.181,4878,1.839,6363,2.512,6470,2.024,6512,9.355,6516,3.629,6596,3.426,6828,6.149,7372,5.323,7395,3.629,7396,2.623,7397,4.992,7398,6.538,7399,4.992,7400,4.992,7401,6.538,7402,6.26,7403,7.504,7404,4.992,7405,6.038,7406,4.992,7407,4.992,7408,4.992,7409,4.992,7410,4.992,7411,4.992,7412,6.538,7413,2.999,7414,2.999,7415,2.999,7416,2.999,7417,2.999,7418,4.366,7419,2.999,7420,2.23,7421,2.999,7422,4.366,7423,2.999,7424,4.615,7425,4.366,7426,9.547,7427,2.999,7428,9.709,7429,2.999,7430,2.999,7431,6.827,7432,2.999,7433,4.366,7434,9.547,7435,2.999,7436,2.999,7437,4.366,7438,2.999,7439,4.366,7440,2.999,7441,4.366,7442,2.999,7443,4.366,7444,2.999,7445,4.366,7446,2.999,7447,4.366,7448,2.999,7449,2.999,7450,4.366,7451,2.999,7452,4.366,7453,2.23,7454,4.366,7455,2.623,7456,4.366,7457,4.366,7458,4.366,7459,2.623,7460,4.366,7461,2.623,7462,4.366,7463,2.623,7464,3.629,7465,8.756,7466,2.623,7467,4.366,7468,2.623,7469,4.366,7470,2.623,7471,4.366,7472,2.623,7473,2.623,7474,2.623,7475,2.623,7476,2.623,7477,4.366,7478,2.623,7479,4.366,7480,2.512,7481,4.366,7482,2.623,7483,2.096,7484,4.366,7485,2.623,7486,2.623,7487,2.623,7488,2.623,7489,2.423,7490,2.623,7491,4.366,7492,2.623,7493,2.285,7494,2.623,7495,2.623,7496,2.623,7497,2.623,7498,2.623,7499,2.623,7500,2.623,7501,2.623,7502,2.623,7503,4.366,7504,4.366,7505,2.512,7506,5.608,7507,2.623,7508,4.366,7509,2.623,7510,2.623,7511,2.623,7512,2.623,7513,2.623,7514,2.623,7515,2.623,7516,2.623,7517,2.623,7518,2.623,7519,2.623,7520,2.623,7521,2.623,7522,2.623,7523,2.623,7524,2.623,7525,2.623,7526,2.623,7527,2.623,7528,2.623,7529,2.623,7530,2.623,7531,2.623,7532,4.366,7533,2.623,7534,2.623,7535,2.623,7536,4.366,7537,4.366,7538,2.623,7539,2.623,7540,2.623,7541,2.623,7542,2.623,7543,2.623,7544,2.623,7545,5.608,7546,2.623,7547,2.623]],["title/entities/DashboardGridElementModel.html",[380,1.445,7548,5.324]],["body/entities/DashboardGridElementModel.html",[0,0.31,3,0.016,4,0.016,5,0.008,7,0.179,27,0.489,30,0.001,32,0.154,33,0.44,34,2.018,39,2.451,47,0.846,49,2.581,55,2.645,95,0.152,96,2.49,97,2.837,101,0.019,103,0.001,104,0.001,127,0.822,144,1.804,145,2.305,165,0.713,188,3.362,234,1.697,240,3.895,319,1.96,334,0.978,364,2.161,369,2.633,370,2.161,380,2.222,381,2.182,386,3.737,398,1.933,399,4.148,402,3.773,404,1.64,405,1.748,406,2.961,461,2.583,618,3.723,619,3.636,1397,4.111,1843,4.315,2462,8.209,2630,7.454,2632,4.815,2634,7.965,2636,5.697,2638,7.353,2640,3.575,2642,4.768,2646,3.849,2747,3.385,4272,3.976,4989,3.004,6508,4.07,6523,3.669,6864,4.232,7363,7.911,7548,8.187,7549,5.493,7550,9.918,7551,9.918,7552,6.559,7553,6.559,7554,6.559,7555,6.559,7556,6.559,7557,6.559,7558,6.559,7559,7.353,7560,6.767,7561,5.493,7562,7.624,7563,5.493,7564,5.493,7565,5.493,7566,5.493,7567,5.493,7568,5.299,7569,5.493,7570,5.493,7571,7.353,7572,6.617,7573,5.493,7574,4.583,7575,5.493,7576,5.493,7577,5.493,7578,5.493,7579,5.493]],["title/interfaces/DashboardGridElementModelProperties.html",[334,0.731,7559,5.493]],["body/interfaces/DashboardGridElementModelProperties.html",[0,0.315,3,0.016,4,0.016,5,0.008,7,0.181,30,0.001,32,0.168,33,0.552,34,2.196,39,2.491,47,0.921,49,2.641,55,2.781,95,0.154,96,2.53,97,2.903,101,0.019,103,0.001,104,0.001,127,0.841,145,1.7,165,0.724,188,4.213,234,1.502,240,3.618,334,0.994,336,1.606,369,2.349,370,2.211,380,2.249,398,1.978,399,4.199,402,3.834,404,1.667,405,1.789,406,3.008,461,2.609,618,3.783,619,3.721,1397,4.242,1843,4.384,2462,7.693,2630,7.77,2632,4.26,2634,7.047,2636,5.041,2638,5.422,2640,3.658,2642,4.879,2646,3.939,2747,3.464,4272,4.068,4989,3.074,6508,4.165,6523,3.754,6864,4.331,7363,8.111,7548,7.243,7549,5.621,7550,10.235,7551,10.235,7559,8.549,7560,8.478,7561,5.621,7562,7.746,7563,5.621,7564,5.621,7565,5.621,7566,5.621,7567,5.621,7568,5.422,7569,5.621,7570,5.621,7571,7.472,7572,6.724,7573,5.621,7574,4.69,7575,5.621,7576,5.621,7577,5.621,7578,5.621,7579,5.621]],["title/classes/DashboardGridElementResponse.html",[0,0.232,7580,5.493]],["body/classes/DashboardGridElementResponse.html",[0,0.313,2,0.583,3,0.012,4,0.012,5,0.006,7,0.079,27,0.518,29,0.409,30,0.001,31,0.293,32,0.175,33,0.616,34,2.282,47,0.944,55,2.191,83,2.365,95,0.099,101,0.015,103,0,104,0,127,1.274,145,1.958,165,0.606,240,2.453,364,2.247,376,1.195,379,3.021,380,1.11,467,3.498,469,2.294,475,5.558,538,4.148,618,3.764,728,2.957,966,2.658,1011,2.64,1013,5.389,1021,4.113,1041,2.922,1166,4.881,1271,4.922,1397,4.399,1588,5.402,2553,5.749,2745,5.859,2747,3.99,2767,5.37,2884,6.048,2885,6.048,3753,7.497,6469,6.115,6470,7.33,6555,3.883,6596,8.292,6826,6.246,6827,6.055,6828,9.15,6829,7.208,6832,6.055,6833,4.858,6834,5.62,6835,6.246,6860,3.72,7363,4.858,7372,5.506,7380,5.891,7464,7.894,7572,6.691,7580,9.505,7581,4.569,7582,9.499,7583,9.095,7584,9.095,7585,5.224,7586,5.224,7587,5.224,7588,8.772,7589,6.763,7590,5.224,7591,5.224,7592,5.224,7593,5.224,7594,4.569,7595,5.224,7596,5.224,7597,5.224,7598,4.569,7599,4.569,7600,4.569,7601,4.569,7602,4.569]],["title/classes/DashboardGridSubElementResponse.html",[0,0.232,7588,5.493]],["body/classes/DashboardGridSubElementResponse.html",[0,0.336,2,0.657,3,0.014,4,0.014,5,0.007,7,0.089,27,0.47,29,0.461,30,0.001,31,0.33,32,0.166,33,0.285,34,2.309,47,0.956,55,1.817,83,1.801,95,0.108,101,0.016,103,0,104,0,127,1.348,145,1.491,165,0.661,240,1.868,364,1.961,376,1.347,379,3.059,380,1.251,467,3.562,469,2.585,475,5.57,538,3.801,618,4.031,728,2.252,966,2.996,1013,4.515,1021,3.132,1041,3.293,1166,4.047,1271,3.748,1397,4.49,1588,4.114,2553,5.753,2745,6.275,2747,4.354,2767,4.452,2884,6.06,2885,6.06,3753,7.75,6469,6.549,6470,6.653,6555,4.377,6596,8.571,6826,6.815,6827,6.606,6828,9.203,6829,7.719,6832,4.611,6833,3.7,6834,4.28,6835,4.756,6860,4.193,7363,5.301,7372,4.193,7380,6.427,7464,7.166,7572,7.166,7580,8.696,7581,5.15,7582,8.622,7583,8.256,7584,8.256,7588,9.863,7589,5.15,7594,5.15,7598,5.15,7599,5.15,7600,5.15,7601,5.15,7602,5.15,7603,5.888,7604,5.888,7605,5.888,7606,5.888,7607,5.888]],["title/classes/DashboardMapper.html",[0,0.232,7376,5.947]],["body/classes/DashboardMapper.html",[0,0.258,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.464,29,0.881,30,0.001,31,0.63,32,0.153,33,0.544,34,1.288,35,1.362,95,0.129,99,1.263,100,4.012,101,0.013,103,0.001,104,0.001,111,2.568,145,1.917,163,2.33,217,1.559,227,1.167,234,1.827,627,4.121,975,5.562,982,3.773,1397,2.535,2222,5.391,2767,3.995,3753,4.697,6410,6.34,6470,5.109,6516,8.71,6596,5.195,7363,6.304,7376,8.775,7380,9.129,7395,8.71,7402,6.34,7431,9.129,7572,5.503,7580,9.679,7583,6.34,7584,6.34,7588,9.09,7608,7.57,7609,10.033,7610,10.033,7611,10.033,7612,7.57,7613,10.033,7614,7.57,7615,10.033,7616,7.57,7617,7.57,7618,7.57,7619,7.57,7620,7.57,7621,7.57,7622,7.57,7623,7.57,7624,7.57,7625,7.57,7626,7.57,7627,7.57,7628,7.57,7629,10.033,7630,7.57,7631,10.033,7632,7.57,7633,7.57,7634,7.57,7635,7.57,7636,7.57]],["title/entities/DashboardModelEntity.html",[380,1.445,7560,5.055]],["body/entities/DashboardModelEntity.html",[0,0.321,3,0.016,4,0.016,5,0.008,7,0.182,27,0.389,30,0.001,32,0.128,34,2.054,39,2.89,47,0.823,49,2.713,55,2.485,95,0.155,96,2.578,97,2.983,101,0.019,103,0.001,104,0.001,127,0.864,144,1.897,145,1.746,165,0.738,188,3.48,234,1.743,240,3.659,319,2.061,334,1.012,364,1.716,369,2.56,370,2.272,380,2.281,381,2.294,398,2.032,399,4.258,402,3.906,404,1.698,405,1.838,406,3.065,461,2.852,618,3.853,619,3.823,1397,3.862,1843,5.088,2462,8.386,2630,6.744,2632,4.943,2634,8.178,2636,5.849,2638,5.571,2640,3.758,2642,5.013,2646,4.046,2747,3.559,4272,4.18,4989,3.158,6508,4.279,6523,3.857,6864,4.45,7363,7.834,7548,7.379,7549,5.775,7550,9.318,7551,9.318,7559,7.611,7560,7.979,7561,5.775,7562,7.891,7563,5.775,7564,5.775,7565,5.775,7566,5.775,7567,5.775,7568,5.571,7569,5.775,7570,5.775,7571,7.611,7572,8.386,7573,5.775,7574,4.818,7575,5.775,7576,5.775,7577,5.775,7578,7.891,7579,5.775,7637,6.896,7638,6.375,7639,6.896]],["title/injectables/DashboardModelMapper.html",[105,0.91,7640,5.324]],["body/injectables/DashboardModelMapper.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.808,27,0.502,29,0.953,30,0.001,31,0.681,32,0.168,33,0.588,34,1.138,35,1.446,36,2.807,39,1.162,47,0.308,95,0.105,96,1.181,99,0.72,101,0.007,103,0,104,0,105,0.895,107,1.041,111,2.477,112,3.005,127,0.541,145,1.093,187,0.624,188,4.319,216,0.798,217,1.733,221,2.93,227,1.298,234,1.499,284,2.333,305,1.23,380,1.422,398,1.272,461,1.874,1271,2.748,1353,2.084,1680,3.289,1750,2.968,1865,3.048,2222,3.074,2355,5.309,2362,2.483,2397,2.914,2630,6.275,2642,3.138,2794,6.753,3314,3.016,3319,4.056,3583,3.381,6512,6.573,6517,3.487,6595,3.487,6828,4.593,7363,7.762,7372,3.074,7395,8.012,7431,9.536,7465,7.821,7480,3.616,7548,8.919,7550,3.487,7551,3.487,7560,9.411,7568,3.487,7572,3.138,7640,5.24,7641,4.317,7642,8.194,7643,8.194,7644,6.692,7645,6.692,7646,6.692,7647,6.692,7648,8.194,7649,6.692,7650,6.692,7651,8.194,7652,4.317,7653,4.317,7654,4.317,7655,12.517,7656,4.317,7657,4.317,7658,6.692,7659,4.317,7660,6.692,7661,4.317,7662,9.241,7663,6.692,7664,4.317,7665,6.692,7666,4.317,7667,4.317,7668,4.317,7669,6.692,7670,4.317,7671,6.692,7672,4.317,7673,4.317,7674,4.317,7675,9.988,7676,6.692,7677,4.317,7678,4.317,7679,4.317,7680,4.317,7681,4.317,7682,4.317,7683,4.317,7684,4.317,7685,4.317,7686,4.317,7687,4.317,7688,4.317,7689,4.317,7690,4.317,7691,4.317,7692,4.317,7693,3.991,7694,4.317,7695,6.692,7696,4.317,7697,6.692,7698,4.317,7699,4.317,7700,4.317,7701,6.692,7702,4.317,7703,6.692,7704,4.317,7705,6.692,7706,4.317,7707,4.317,7708,4.317,7709,6.692,7710,6.692,7711,4.317,7712,4.317,7713,4.317,7714,3.776,7715,4.317,7716,4.317,7717,4.317,7718,4.317,7719,4.317,7720,4.317,7721,3.776,7722,6.692,7723,4.317,7724,4.317]],["title/injectables/DashboardRepo.html",[105,0.91,7725,5.324]],["body/injectables/DashboardRepo.html",[0,0.308,3,0.015,4,0.015,5,0.008,7,0.098,8,1.092,9,3.061,26,2.793,27,0.487,29,0.926,30,0.001,31,0.662,32,0.161,33,0.572,34,1.538,35,1.361,36,2.854,39,3.028,49,2.556,95,0.144,96,1.777,97,2.81,99,1.084,101,0.015,103,0.001,104,0.001,105,1.21,107,1.566,112,2.959,127,0.814,187,0.939,206,5.292,214,2.048,216,1.672,217,1.693,221,2.907,227,1.269,234,1.055,334,0.698,380,1.921,461,1.486,661,2.73,722,2.896,877,3.812,1852,2.743,2355,6.468,2397,4.384,3314,4.538,3319,5.48,6828,4.458,7128,7.304,7363,7.691,7395,9.309,7431,6.889,7560,4.829,7640,8.806,7662,7.909,7721,5.682,7725,7.08,7726,6.005,7727,8.359,7728,7.909,7729,8.359,7730,6.496,7731,9.615,7732,6.496,7733,9.097,7734,6.496,7735,8.359,7736,6.496,7737,9.615,7738,6.496,7739,6.005,7740,6.005,7741,8.359,7742,6.005,7743,5.682,7744,7.572,7745,4.949,7746,8.359,7747,6.005,7748,8.359,7749,6.005,7750,9.615,7751,6.005,7752,8.359,7753,6.005,7754,6.005]],["title/classes/DashboardResponse.html",[0,0.232,7380,5.181]],["body/classes/DashboardResponse.html",[0,0.342,2,0.68,3,0.014,4,0.014,5,0.007,7,0.092,27,0.415,29,0.478,30,0.001,31,0.342,32,0.157,33,0.295,34,2.321,47,0.938,55,1.864,83,1.867,95,0.111,101,0.017,103,0,104,0,127,1.37,145,2.191,165,0.678,240,1.936,364,1.576,376,1.396,379,3.092,380,1.839,467,3.58,469,2.679,475,5.646,538,4.531,618,4.112,728,2.334,966,3.105,1011,3.083,1013,2.795,1021,3.246,1041,4.84,1166,4.152,1271,3.884,1397,4.353,1588,4.263,2553,5.606,2745,6.4,2747,4.466,2767,4.567,2884,6.144,2885,6.144,3753,7.445,6469,5.749,6470,6.786,6555,4.536,6596,8.234,6826,6.99,6827,6.776,6828,8.924,6829,6.776,6832,4.779,6833,3.834,6834,4.436,6835,4.929,6860,6.162,7363,6.874,7372,4.346,7380,8.801,7464,7.309,7572,8.397,7580,9.331,7581,5.337,7582,8.794,7583,8.421,7584,8.421,7588,8.838,7589,5.337,7598,5.337,7599,5.337,7600,5.337,7601,5.337,7602,5.337,7755,6.102,7756,6.102,7757,6.102]],["title/injectables/DashboardUc.html",[105,0.91,7378,5.694]],["body/injectables/DashboardUc.html",[0,0.216,3,0.015,4,0.015,5,0.008,7,0.096,8,1.073,26,2.944,27,0.483,29,0.917,30,0.001,31,0.68,32,0.159,33,0.566,35,1.346,36,2.604,39,3.652,47,0.732,95,0.15,99,1.057,101,0.011,103,0.001,104,0.001,105,1.188,107,1.527,111,2.348,112,2.85,127,1.113,148,1.949,185,3.987,187,0.916,216,1.642,217,1.524,221,2.886,227,1.064,234,1.028,305,1.804,369,1.405,450,2.601,511,3.2,722,2.823,839,3.02,1930,7.557,2144,3.574,2644,4.762,2688,5.303,2767,5.415,4431,3.979,4435,4.274,4748,3.51,6926,5.539,7363,7.996,7378,7.439,7386,9.728,7395,8.085,7426,9.314,7434,10.442,7465,4.959,7505,5.303,7725,6.956,7728,7.769,7733,7.769,7744,9.314,7758,6.333,7759,10.26,7760,10.26,7761,8.883,7762,6.333,7763,6.333,7764,6.333,7765,6.333,7766,6.333,7767,6.333,7768,6.333,7769,8.883,7770,6.333,7771,6.333,7772,5.854,7773,4.825,7774,6.333,7775,6.333,7776,6.333,7777,6.333,7778,10.26,7779,8.883,7780,8.883,7781,6.333,7782,6.333,7783,6.333,7784,6.333]],["title/classes/DashboardUrlParams.html",[0,0.232,7367,5.947]],["body/classes/DashboardUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,3795,5.749,7363,7.422,7367,10.332,7386,11.092,7785,9.798,7786,9.798]],["title/classes/DatabaseManagementConsole.html",[0,0.232,7787,5.694]],["body/classes/DatabaseManagementConsole.html",[0,0.198,2,0.647,3,0.014,4,0.014,5,0.007,7,0.088,8,1.008,27,0.441,29,0.766,30,0.001,31,0.548,32,0.133,33,0.517,35,1.184,36,2.53,47,0.414,95,0.126,101,0.02,103,0,104,0,111,1.163,112,2.793,127,0.727,145,2.987,163,2.569,215,1.852,217,1.619,221,2.475,227,1.014,334,0.623,347,1.689,364,1.781,368,4.19,369,1.288,371,2.949,379,2.951,443,3.271,701,4.762,721,4.512,1843,4.635,1948,7.071,2139,6.309,2794,3.441,3264,3.517,3282,5.246,3478,5.076,3480,4.86,3481,7.104,3484,6.744,3486,7.899,3490,8.538,3491,6.719,3492,3.441,3494,4.545,3495,5.464,3578,2.995,5541,4.688,5543,5.076,7787,6.992,7788,10.474,7789,7.718,7790,8.349,7791,8.638,7792,9.52,7793,5.804,7794,7.718,7795,9.922,7796,8.956,7797,5.804,7798,7.718,7799,7.916,7800,5.804,7801,8.872,7802,8.423,7803,5.387,7804,6.361,7805,5.804,7806,5.076,7807,4.86,7808,7.718,7809,8.147,7810,6.557,7811,7.718,7812,5.076,7813,7.718,7814,7.718,7815,5.365,7816,5.365,7817,5.365,7818,8.956,7819,7.718,7820,9.039,7821,3.983,7822,7.302,7823,5.365,7824,5.365,7825,5.076]],["title/controllers/DatabaseManagementController.html",[481,2.611,7826,5.947]],["body/controllers/DatabaseManagementController.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.197,27,0.511,29,0.873,30,0.001,31,0.624,32,0.152,33,0.539,35,1.5,36,2.834,47,0.909,95,0.127,101,0.012,103,0.001,104,0.001,112,3.025,187,1.075,215,2.372,217,0.967,221,2.294,227,1.285,264,3.123,347,2.255,364,2.257,447,3.08,481,2.853,483,3.543,529,3.23,2929,4.274,3494,5.819,6614,6.688,7789,10.994,7791,9.607,7792,8.731,7802,8.288,7807,6.223,7825,8.667,7826,8.667,7827,12.744,7828,7.43,7829,7.43,7830,9.909,7831,9.16,7832,9.909,7833,7.43,7834,9.909,7835,7.43,7836,10.402,7837,9.909,7838,7.43,7839,6.869,7840,9.909,7841,7.43,7842,7.43,7843,9.909,7844,7.43,7845,11.149,7846,9.909,7847,7.43,7848,7.43,7849,7.43,7850,7.43,7851,7.43,7852,7.43,7853,7.43,7854,7.43,7855,7.43]],["title/modules/DatabaseManagementModule.html",[425,1.812,7856,5.694]],["body/modules/DatabaseManagementModule.html",[0,0.328,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.393,425,3.355,427,3.48,428,3.744,429,3.855,430,3.838,431,3.822,432,4.632,433,4.758,442,4.678,443,3.775,444,3.684,1948,5.774,7856,11.556,7857,9.634,7858,9.634,7859,9.634,7860,11.491,7861,8.906,7862,8.906,7863,8.068]],["title/injectables/DatabaseManagementService.html",[105,0.91,7860,5.493]],["body/injectables/DatabaseManagementService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.081,8,0.952,27,0.528,29,0.953,30,0.001,31,0.696,32,0.165,33,0.589,35,1.504,36,2.871,47,0.981,95,0.141,96,2.157,97,2.32,99,0.895,101,0.009,103,0,104,0,105,1.055,107,1.293,111,1.58,112,3.052,127,0.672,187,0.776,215,1.712,216,0.992,217,1.667,221,2.746,227,1.288,247,3.662,369,2.074,398,1.58,779,8.161,884,3.715,948,4.086,1345,3.708,1750,3.497,1843,5.77,2355,5.926,2395,5.321,3314,3.747,3319,4.778,3811,6.368,3822,8.175,5083,4.958,6885,6.118,7791,8.323,7795,6.173,7804,7.851,7831,7.287,7836,10.378,7839,7.287,7860,6.368,7861,11.977,7864,4.691,7865,7.883,7866,7.287,7867,7.883,7868,7.883,7869,7.883,7870,10.304,7871,7.883,7872,5.363,7873,7.883,7874,5.363,7875,7.883,7876,5.363,7877,7.883,7878,5.363,7879,7.883,7880,5.363,7881,7.883,7882,5.363,7883,5.363,7884,7.883,7885,5.363,7886,5.363,7887,5.363,7888,5.363,7889,5.363,7890,5.363,7891,5.363,7892,5.363,7893,9.347,7894,7.883,7895,5.363,7896,5.363,7897,5.363,7898,5.363,7899,7.883,7900,5.363,7901,5.363,7902,5.363,7903,7.883,7904,5.363,7905,5.363,7906,5.363,7907,5.363,7908,5.363,7909,5.363,7910,5.363]],["title/classes/DeleteFilesConsole.html",[0,0.232,7911,5.947]],["body/classes/DeleteFilesConsole.html",[0,0.265,2,0.869,3,0.018,4,0.018,5,0.012,7,0.118,8,1.235,27,0.422,29,0.801,30,0.001,31,0.573,32,0.139,33,0.494,35,0.943,36,2.192,55,2.71,83,2.383,95,0.147,101,0.013,103,0.001,104,0.001,111,1.562,112,2.515,127,0.976,144,2.142,215,2.486,217,1.014,221,1.803,234,1.265,319,2.328,364,1.419,379,2.586,1015,4.357,1021,4.143,1467,2.486,1763,7.432,1959,5.571,2356,4.688,2357,5.519,2727,3.737,3486,6.292,3490,8.316,3491,7.613,3492,4.619,3578,6.253,5339,10.598,6532,9.354,7911,8.942,7912,11.412,7913,7.79,7914,9.451,7915,7.79,7916,10.815,7917,7.79,7918,10.224,7919,11.295,7920,11.295,7921,9.982,7922,9.557,7923,11.412,7924,7.79,7925,11.412,7926,7.79,7927,6.1,7928,7.201,7929,7.201,7930,6.813,7931,7.79,7932,7.79,7933,7.79,7934,7.79,7935,4.958]],["title/injectables/DeleteFilesUc.html",[105,0.91,7916,5.694]],["body/injectables/DeleteFilesUc.html",[0,0.172,3,0.012,4,0.012,5,0.011,7,0.076,8,0.91,27,0.48,29,0.838,30,0.001,31,0.599,32,0.153,33,0.517,35,1.295,36,2.144,47,0.643,55,1.941,58,4.858,83,2.757,95,0.149,99,0.841,101,0.008,103,0.001,104,0,105,1.007,107,1.215,111,2.69,112,2.819,116,2.807,127,0.943,144,1.386,165,0.59,187,0.729,204,1.71,216,1.667,217,1.665,221,2.692,227,0.935,234,1.623,247,4.397,319,1.507,369,2,371,1.39,380,1.071,432,1.855,444,1.928,500,5.168,549,3.46,784,2.725,798,3.167,905,3.135,1178,4.858,1369,2.747,1467,1.609,2035,2.725,2145,3.167,2356,3.702,2357,4.554,2401,3.664,2406,3.947,2531,2.725,3364,5.642,3578,5.159,3580,3.669,6269,3.522,6270,6.297,6271,3.522,6272,3.522,6334,6.586,7914,6.961,7916,6.306,7919,8.744,7927,5.896,7929,4.66,7930,4.409,7935,3.209,7936,11.956,7937,5.041,7938,9.997,7939,6.586,7940,7.53,7941,7.53,7942,9.997,7943,5.041,7944,9.066,7945,9.74,7946,7.53,7947,7.53,7948,7.953,7949,5.041,7950,6.306,7951,9.357,7952,7.53,7953,8.861,7954,5.041,7955,7.53,7956,5.041,7957,7.53,7958,5.041,7959,5.041,7960,7.53,7961,4.222,7962,4.409,7963,4.072,7964,4.66,7965,5.041,7966,5.041,7967,9.013,7968,9.997,7969,9.997,7970,5.041,7971,9.013,7972,5.041,7973,5.041,7974,5.041,7975,9.013,7976,5.041,7977,5.041,7978,5.041,7979,7.53,7980,5.041,7981,5.041,7982,3.747,7983,5.041,7984,5.041,7985,5.041,7986,5.041,7987,5.041,7988,5.041,7989,5.041,7990,4.222,7991,5.041,7992,4.66,7993,5.041,7994,4.66,7995,3.747,7996,4.66,7997,4.66,7998,5.041,7999,5.041,8000,5.041,8001,7.53,8002,4.66,8003,5.041,8004,6.586,8005,5.041,8006,5.041,8007,5.041,8008,5.041,8009,5.041]],["title/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.232,8010,5.324]],["body/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.378,2,1.377,3,0.017,4,0.017,5,0.009,7,0.111,27,0.509,29,0.577,30,0.001,31,0.412,32,0.173,33,0.597,47,0.791,95,0.126,99,1.229,101,0.019,102,5.946,103,0.001,104,0.001,127,0.922,138,3.216,150,2.549,165,0.771,234,1.924,347,2.245,404,2,460,6.383,564,4.069,574,5.202,596,3.385,701,3.924,843,5.609,1016,4.16,1178,4.751,2037,4.32,2049,5.728,2439,6.953,6196,3.979,8010,9.672,8011,8.69,8012,7.376,8013,6.44,8014,8.084,8015,10.328,8016,9.279,8017,7.363,8018,5.609,8019,7.363,8020,6.806,8021,8.965,8022,6.806,8023,6.806,8024,6.166,8025,5.473,8026,6.166,8027,5.947,8028,6.44,8029,7.956,8030,8.614,8031,6.166,8032,5.243,8033,5.053,8034,5.053,8035,5.352,8036,6.166]],["title/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.232,8029,5.493]],["body/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.378,2,1.378,3,0.017,4,0.017,5,0.009,7,0.111,27,0.51,29,0.578,30,0.001,31,0.413,32,0.168,33,0.598,47,0.846,95,0.127,99,1.231,101,0.019,102,5.951,103,0.001,104,0.001,127,0.924,150,3.846,165,0.772,234,1.925,347,2.247,404,2.002,460,6.389,564,4.072,574,5.206,596,3.388,701,2.608,843,5.612,1016,4.163,1178,4.759,2037,4.328,2049,5.733,2439,6.958,6196,3.987,8010,7.722,8011,8.698,8012,7.379,8013,6.451,8014,8.089,8015,10.332,8016,9.286,8018,5.62,8020,6.819,8021,8.973,8022,6.819,8023,6.819,8024,6.177,8025,5.483,8026,6.177,8027,5.958,8028,6.451,8029,9.983,8030,8.625,8031,6.177,8032,5.253,8033,5.062,8034,5.062,8035,5.362,8036,6.177,8037,9.861]],["title/classes/DoBaseFactory.html",[0,0.232,4313,4.842]],["body/classes/DoBaseFactory.html",[0,0.173,2,0.566,3,0.012,4,0.012,5,0.006,7,0.077,8,0.915,27,0.534,29,1.024,30,0.001,31,0.698,32,0.18,33,0.603,34,1.826,35,1.483,47,0.646,49,1.998,55,2.511,59,3.343,95,0.116,96,1.389,97,2.197,101,0.008,103,0,104,0,127,0.636,138,3.308,144,3.368,148,1.563,165,0.593,185,4.845,216,1.4,217,0.661,227,0.527,234,0.825,319,3.581,359,2.64,366,2.841,369,1.127,379,2.052,380,2.281,381,2.519,404,1.364,538,3.412,596,3.95,627,2.323,660,7.294,661,4.73,662,5.663,665,4.274,666,5.663,667,5.68,668,4.274,669,4.274,670,4.274,671,4.198,672,4.639,673,5.109,674,6.185,675,5.95,676,7.064,677,2.893,682,2.867,683,4.274,684,2.893,685,5.296,686,5.468,687,4.277,688,5.142,689,4.235,690,2.867,691,2.702,692,4.477,693,2.791,694,2.745,695,2.867,696,5.217,697,2.893,698,5.019,699,2.867,700,7.231,701,4.408,702,7.036,703,2.893,704,3.749,705,2.867,706,2.893,707,2.867,708,2.893,709,4.274,712,2.867,713,6.239,714,2.893,715,2.867,716,4.274,717,3.996,718,4.274,719,2.893,720,2.768,721,2.745,722,2.265,723,2.867,724,2.867,725,2.867,726,2.893,727,2.893,728,1.942,729,2.867,730,2.893,731,3.577,732,2.867,733,2.893,735,2.95,736,3.012,1187,2.422,1188,2.393,1189,2.393,1190,2.532,1191,2.768,2045,3.549,2139,3.277,2510,4.695,4121,3.324,4313,5.392,4315,3.692,8038,5.079,8039,5.079,8040,5.079,8041,5.079]],["title/classes/DomainObject.html",[0,0.232,1790,2.871]],["body/classes/DomainObject.html",[0,0.296,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,9,4.09,26,2.547,27,0.52,29,0.68,30,0.001,31,0.486,32,0.149,33,0.42,34,2.147,35,1.051,95,0.111,101,0.018,103,0.001,104,0.001,116,3.931,127,1.087,165,0.859,208,3.242,214,3.456,217,1.129,227,1.137,334,0.932,405,2.921,595,4.357,661,5.049,692,5.042,884,5.165,1787,6.978,1788,12.03,1789,7.591,1790,4.628,1791,9.179,1792,8.023,1793,8.143,1794,10.132,7403,7.268,8042,10.961,8043,8.679,8044,8.679]],["title/classes/DomainObjectFactory.html",[0,0.232,8045,6.286]],["body/classes/DomainObjectFactory.html",[0,0.167,2,0.547,3,0.012,4,0.012,5,0.006,7,0.074,8,0.891,27,0.53,29,1.017,30,0.001,31,0.692,32,0.179,33,0.598,34,1.89,35,1.469,47,0.632,55,2.483,59,3.294,95,0.127,101,0.008,103,0,104,0,127,0.615,138,3.223,144,3.262,148,1.51,165,0.578,185,4.803,187,0.709,216,1.364,234,0.797,305,1.398,319,3.544,359,3.092,366,2.744,379,2.009,380,1.884,381,2.454,404,1.777,538,3.324,573,3.738,574,2.154,596,3.923,627,2.264,660,7.252,661,4.669,662,5.566,665,4.164,666,5.566,667,5.751,668,4.164,669,4.164,670,4.164,671,4.09,672,4.544,673,5.004,674,6.106,675,5.862,676,7.019,677,2.795,682,2.769,683,4.164,684,2.795,685,5.205,686,5.375,687,4.204,688,5.054,689,4.126,690,2.769,691,2.609,692,4.431,693,2.696,694,2.652,695,2.769,696,5.127,697,2.795,698,4.916,699,2.769,700,7.178,701,4.29,702,6.976,703,2.795,704,3.653,705,2.769,706,2.795,707,2.769,708,2.795,709,4.164,712,2.769,713,6.159,714,2.795,715,2.769,716,4.164,717,3.894,718,4.164,719,2.795,720,4.832,721,3.988,722,2.187,723,2.769,724,2.769,725,2.769,726,2.795,727,2.795,728,2.821,729,2.769,730,2.795,731,3.897,732,2.769,733,2.795,735,2.85,736,2.909,1187,3.518,1188,3.477,1189,3.477,1190,3.678,1191,4.021,1271,3.123,1787,4.285,1790,3.115,1873,3.044,1904,2.052,2045,3.428,2139,3.166,2614,3.566,2615,3.494,3813,3.367,6250,3.211,8045,6.82,8046,4.906,8047,4.906,8048,4.906,8049,7.378,8050,3.566]],["title/classes/DownloadFileParams.html",[0,0.232,6237,4.589]],["body/classes/DownloadFileParams.html",[0,0.456,2,0.717,3,0.015,4,0.021,5,0.011,7,0.097,26,2.655,27,0.37,30,0.001,32,0.166,39,1.732,47,0.963,95,0.161,99,1.074,101,0.022,103,0.001,104,0.001,150,2.228,165,0.703,204,2.183,214,2.028,334,0.691,347,1.817,364,1.636,369,1.428,373,4.815,374,2.054,375,4.266,376,1.472,377,5.967,379,1.458,380,1.367,467,3.636,469,2.825,470,5.105,471,4.54,565,3.207,1000,4.968,1001,6.712,1031,3.242,1044,3.087,1180,2.769,1270,3.815,1330,5.717,1331,4.211,1332,4.211,2702,4.663,2889,5.124,3610,3.145,4205,2.168,5821,5.197,5836,6.589,6170,4.792,6183,6.772,6189,6.103,6217,3.165,6220,4.416,6221,4.495,6222,4.495,6223,5.948,6225,7.827,6228,4.495,6229,8.107,6230,7.824,6231,7.824,6232,4.495,6233,4.416,6234,7.951,6235,4.416,6236,4.495,6237,6.062,6238,7.559,6239,4.274,6240,4.342,6241,4.416,6242,4.342,6243,4.342,6244,4.095,6245,4.495,6246,4.495,6247,4.495,6248,4.095,6249,4.095,6250,4.211,6251,4.274,6252,4.495,8051,6.434,8052,6.434]],["title/classes/DtoCreator.html",[0,0.232,8053,5.947]],["body/classes/DtoCreator.html",[0,0.206,2,0.423,3,0.009,4,0.009,5,0.005,7,0.057,8,0.73,27,0.518,29,0.853,30,0.001,31,0.629,32,0.176,33,0.527,34,1.027,35,1.393,95,0.128,99,0.632,100,2.876,101,0.006,103,0,104,0,105,0.808,111,2.708,127,0.943,138,2.638,165,0.473,187,0.548,188,3.466,216,1.117,217,1.708,227,1.259,234,0.981,347,1.738,369,1.34,371,1.665,461,2.814,564,3.665,591,2.625,592,2.736,806,1.543,843,1.672,966,1.928,1041,5.248,1233,2.601,1397,2.022,1750,4.652,1798,3.409,1799,2.297,1814,2.601,1884,5.071,2130,1.655,2131,1.852,2132,1.786,2303,4.053,2553,3.662,2627,5.711,2647,3.974,2649,4.855,2651,8.953,2654,4.602,2656,5.362,2659,1.775,2667,7.858,2725,1.717,2735,2.887,2736,2.48,3001,2.887,3036,8.207,3037,5.058,3041,5.058,3044,3.173,3063,3.314,3441,3.173,3451,2.647,3452,2.381,3455,3.173,3753,2.351,3771,5.707,3859,2.119,4466,4.374,5049,3.173,6365,5.003,6916,7.194,7420,8.343,7574,2.647,7714,3.314,8053,6.586,8054,11.729,8055,3.503,8056,9.525,8057,9.506,8058,6.04,8059,6.04,8060,6.04,8061,7.941,8062,7.941,8063,6.04,8064,6.04,8065,6.04,8066,6.04,8067,6.04,8068,3.789,8069,3.789,8070,3.789,8071,3.789,8072,5.583,8073,10.86,8074,3.789,8075,8.373,8076,5.583,8077,3.789,8078,5.583,8079,3.789,8080,3.789,8081,3.789,8082,3.789,8083,5.583,8084,3.789,8085,5.583,8086,3.789,8087,5.583,8088,3.789,8089,5.583,8090,3.789,8091,2.755,8092,5.283,8093,5.283,8094,3.503,8095,3.503,8096,3.314,8097,5.583,8098,3.503,8099,5.583,8100,5.583,8101,3.503,8102,3.503,8103,3.503,8104,3.503,8105,3.503,8106,3.503,8107,3.503,8108,3.503,8109,3.503,8110,3.503,8111,5.583,8112,3.314,8113,3.503,8114,3.503,8115,3.503,8116,3.503,8117,6.961,8118,3.503,8119,3.503,8120,3.503,8121,3.314,8122,3.314,8123,5.583,8124,3.503,8125,3.503,8126,3.314,8127,3.314,8128,3.173,8129,3.314,8130,3.314,8131,3.503,8132,3.503,8133,3.503,8134,3.503,8135,3.503,8136,3.503,8137,3.314,8138,3.503,8139,3.503,8140,3.503,8141,3.503,8142,3.503,8143,3.503,8144,3.503,8145,3.503,8146,3.173,8147,3.503,8148,3.061,8149,3.503,8150,3.503,8151,3.503]],["title/injectables/DurationLoggingInterceptor.html",[105,0.91,8152,6.286]],["body/injectables/DurationLoggingInterceptor.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.129,8,1.311,27,0.448,29,0.85,30,0.001,31,0.608,32,0.148,33,0.525,35,1.035,95,0.161,101,0.014,103,0.001,104,0.001,105,1.452,107,2.061,127,1.071,187,1.236,199,3.231,214,2.696,215,2.729,217,1.113,227,0.887,379,1.938,691,5.775,731,4.714,1157,5.596,1159,6.514,1467,2.729,1944,5.868,2159,9.496,2292,9.09,2356,4.46,2357,5.717,2969,5.771,4508,8.272,6437,7.892,6444,8.77,8152,10.037,8153,11.931,8154,7.904,8155,10.037,8156,9.496,8157,8.55,8158,9.496,8159,10.978,8160,10.978,8161,8.55,8162,9.496,8163,7.904,8164,8.55,8165,8.55,8166,8.55,8167,8.55,8168,8.55]],["title/classes/ElementContentBody.html",[0,0.232,8169,4.589]],["body/classes/ElementContentBody.html",[0,0.457,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,9,2.771,27,0.242,30,0.001,31,0.638,32,0.188,47,0.812,83,1.799,95,0.138,99,0.981,101,0.022,103,0,104,0,144,3.132,150,2.036,163,1.81,165,0.66,240,1.865,364,1.071,369,1.305,374,1.877,375,3.752,376,1.345,379,2.232,404,2.052,467,3.596,470,4.764,471,3.993,524,4.847,999,5.364,1000,3.431,1031,1.842,1044,2.821,1770,3.415,2303,4.616,2553,4.586,2848,2.838,2849,2.543,2888,3.564,2889,4.173,3251,3.486,3253,3.486,3259,5.084,3262,3.013,3267,3.288,4009,3.743,4037,3.743,4038,7.066,4096,6.353,5562,6.356,5564,6.356,5566,6.356,5568,6.356,5570,6.356,5604,3.848,5643,6.544,5644,6.544,5645,6.544,5646,6.544,5647,6.544,5835,3.694,5836,6.826,6979,3.906,7039,3.743,8169,8.426,8170,5.784,8171,4.035,8172,5.88,8173,5.88,8174,6.544,8175,6.544,8176,4.035,8177,6.544,8178,3.605,8179,3.968,8180,6.544,8181,6.544,8182,3.906,8183,3.906,8184,3.906,8185,3.906,8186,4.035,8187,4.035,8188,4.035,8189,4.035,8190,4.035]],["title/controllers/ElementController.html",[481,2.611,2723,5.947]],["body/controllers/ElementController.html",[0,0.15,3,0.01,4,0.01,5,0.005,7,0.067,8,0.821,10,3.35,27,0.385,29,0.731,30,0.001,31,0.523,32,0.188,33,0.451,35,1.13,36,2.459,95,0.147,100,1.476,101,0.007,103,0,104,0,111,0.883,112,2.736,187,0.637,206,3.459,215,1.407,216,1.257,217,1.312,221,2.16,227,0.705,234,1.104,264,4.237,364,1.7,368,1.727,369,1.509,376,1.008,447,1.827,481,1.692,483,2.101,491,6.186,502,7.116,506,7.505,509,8.336,513,6.593,543,4.748,552,2.844,553,6.111,554,8.198,555,2.291,556,2.344,558,2.114,561,2.363,563,5.593,564,4.747,883,2.884,1016,3.276,1041,2.465,1392,6.805,2303,4.319,2553,4.541,2556,3.56,2644,5.405,2716,6.5,2717,6.705,2723,5.947,2727,2.114,2728,3.855,2783,6.043,2841,2.735,2849,4.036,2850,4.075,2900,6.937,2902,7.538,2904,7.11,2905,7.11,2908,7.505,2910,5.492,2923,9.505,2925,4.075,2928,3.203,2929,2.535,2930,2.363,2937,3.56,2947,5.492,2948,5.492,3195,4.219,3282,6.694,3339,3.412,3405,4.666,3602,5.324,3738,3.691,3743,4.871,3745,4.074,3750,4.074,3977,3.358,3978,3.358,3979,3.358,3981,4.942,3982,4.074,4007,2.769,4008,5.492,4009,2.805,4011,3.358,4012,3.358,4016,3.56,4028,3.855,4037,2.805,4038,6.257,4039,3.855,4040,3.855,4041,3.855,4042,3.855,4043,3.855,4047,3.855,4147,7.673,4150,6.952,4919,4.074,4932,6.285,5689,10.998,7054,8.819,8174,4.517,8175,4.517,8177,5.515,8180,5.515,8181,5.515,8182,6.199,8191,4.407,8192,7.673,8193,8.301,8194,4.407,8195,4.407,8196,4.407,8197,4.407,8198,4.407,8199,4.407,8200,6.799,8201,4.407,8202,4.407,8203,4.407,8204,8.162,8205,4.407,8206,4.407,8207,4.407,8208,4.407,8209,4.407,8210,4.407,8211,4.407,8212,5.492,8213,4.407,8214,4.407,8215,4.407,8216,9.331,8217,4.407,8218,4.407,8219,4.407,8220,4.407,8221,4.407,8222,4.407,8223,4.407,8224,4.407,8225,4.407,8226,4.407,8227,4.407]],["title/injectables/ElementUc.html",[105,0.91,2717,5.493]],["body/injectables/ElementUc.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.984,26,2.858,27,0.434,29,0.824,30,0.001,31,0.59,32,0.152,33,0.509,35,1.161,36,2.257,39,3.14,59,1.747,95,0.155,99,0.936,101,0.009,103,0,104,0,105,1.09,107,1.352,111,2.471,112,2.769,127,1.02,187,0.811,199,3.079,216,2.067,217,1.518,221,2.853,227,0.995,234,1.557,305,2.733,347,1.94,461,1.863,766,2.347,839,2.675,883,2.38,982,2.796,1019,3.258,1345,2.226,1410,3.166,1467,1.79,1798,6.957,1799,3.4,1813,3.995,1814,3.85,1884,6.503,1953,3.919,1982,3.362,1988,7.13,2146,3.786,2303,4.267,2356,4.943,2553,5.129,2557,5.145,2717,6.58,2725,2.541,2757,3.786,2838,6.027,2841,5.952,2849,5.044,2850,5.749,3088,5.801,3091,9.03,3097,8.243,3115,8.747,3126,7.511,3129,4.531,3154,4.906,3195,5.055,3264,6.38,3397,4.906,3572,7.825,3573,9.72,3708,7.825,3714,6.58,3961,3.481,4151,4.531,4152,8.39,4154,4.393,4159,7.748,4176,6.379,4179,5.186,4183,4.906,4184,3.786,5604,6.889,5692,8.867,8192,8.867,8228,5.61,8229,8.146,8230,5.61,8231,5.61,8232,5.61,8233,5.61,8234,8.146,8235,5.61,8236,4.906,8237,5.186,8238,5.61,8239,5.61,8240,5.61,8241,5.61,8242,5.61,8243,5.186,8244,4.531,8245,5.61,8246,5.61,8247,8.146,8248,5.61,8249,5.61,8250,5.61,8251,5.186,8252,4.274,8253,5.61,8254,5.61]],["title/modules/EncryptionModule.html",[425,1.812,8255,4.943]],["body/modules/EncryptionModule.html",[0,0.287,3,0.02,4,0.02,5,0.01,30,0.001,47,0.602,95,0.166,101,0.014,103,0.001,104,0.001,187,1.221,217,1.099,227,0.875,234,1.371,425,3.16,427,3.05,428,3.281,429,3.378,430,3.364,431,3.35,432,3.963,433,4.07,438,6.182,442,4.31,443,3.308,444,3.229,449,4.273,687,3.599,789,8.887,801,4.904,836,6.256,837,7.67,839,5.136,1467,2.695,2035,5.821,2356,5.301,2357,6.011,8255,9.592,8256,8.443,8257,8.443,8258,8.443,8259,8.817,8260,10.374,8261,7.804,8262,7.384,8263,8.443,8264,11.86,8265,8.443,8266,8.443,8267,8.443,8268,7.804,8269,8.443]],["title/classes/EntityNotFoundError.html",[0,0.232,510,4.943]],["body/classes/EntityNotFoundError.html",[0,0.263,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,8,1.227,27,0.541,29,0.604,30,0.001,31,0.432,32,0.185,33,0.549,35,0.934,47,0.918,55,1.662,59,2.403,95,0.13,101,0.013,103,0.001,104,0.001,127,0.966,165,0.796,187,1.116,204,4.096,216,2.516,364,2.285,380,2.159,404,1.831,406,2.509,510,7.385,511,5.133,564,2.828,596,3.929,885,5.739,1013,5.529,1016,2.709,1142,5.261,1180,5.195,1216,4.451,1395,8.266,1396,7.48,1397,4.042,1398,7.23,1402,4.978,1403,4.277,1404,4.978,1405,4.978,1406,4.978,1407,4.978,1408,4.978,1409,4.624,1410,4.354,1411,6.041,1412,6.461,1416,4.847,3801,7.132,8270,10.159,8271,7.715,8272,7.715,8273,7.715,8274,7.715]],["title/classes/ErrorLoggable.html",[0,0.232,8275,5.493]],["body/classes/ErrorLoggable.html",[0,0.335,2,0.654,3,0.014,4,0.014,5,0.007,7,0.089,8,1.016,27,0.488,29,0.842,30,0.001,31,0.602,32,0.166,33,0.52,35,1.19,47,0.766,95,0.152,101,0.01,103,0,104,0,111,2.643,127,0.734,144,3.128,165,0.659,187,0.848,204,4.473,214,2.651,215,1.871,216,1.987,217,1.48,227,1.228,240,3.608,319,1.752,347,1.701,369,1.866,374,2.684,468,4.736,503,6.587,535,3.143,558,2.813,661,2.464,704,2.903,722,2.614,731,3.323,806,2.387,953,3.837,1180,4.232,1187,4.01,1188,3.963,1189,3.963,1190,4.192,1191,3.195,1192,4.024,1193,3.957,1216,3.295,1267,3.895,1268,3.595,1345,3.337,1354,4.175,1392,7.677,1401,7.356,1414,3.279,1415,3.595,1464,4.529,1465,5.075,1469,5.32,1905,3.553,2222,4.175,2362,3.372,2702,3.789,3831,4.736,4662,4.91,7773,4.467,8275,6.793,8276,5.863,8277,9.834,8278,8.41,8279,8.41,8280,8.41,8281,5.863,8282,5.863,8283,9.834,8284,5.863,8285,8.41,8286,5.863,8287,5.863,8288,5.585,8289,5.807,8290,8.41,8291,5.863,8292,8.41,8293,5.863,8294,5.863,8295,5.863,8296,5.863,8297,8.41,8298,5.863,8299,5.863,8300,10.744,8301,5.863,8302,5.863,8303,4.467,8304,5.863,8305,8.41,8306,5.863,8307,5.863,8308,8.41,8309,5.863,8310,4.096,8311,5.42,8312,4.358,8313,4.91,8314,5.863,8315,5.863,8316,5.863,8317,5.863,8318,5.863,8319,5.863,8320,8.41,8321,5.863,8322,5.863,8323,5.863,8324,5.863]],["title/injectables/ErrorLogger.html",[105,0.91,8325,5.694]],["body/injectables/ErrorLogger.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,27,0.513,29,0.975,30,0.001,31,0.697,32,0.169,33,0.602,35,1.447,72,3.41,95,0.16,101,0.013,103,0.001,104,0.001,105,1.337,107,1.815,111,1.509,127,0.943,148,4.079,187,1.089,204,3.391,216,1.392,217,1.556,336,1.801,427,2.719,574,3.305,839,3.59,1216,4.684,1464,6.477,2356,4.609,2969,5.081,6426,6.081,7803,4.857,8325,9.398,8326,12.791,8327,7.528,8328,9.995,8329,9.995,8330,9.995,8331,10.456,8332,7.528,8333,9.995,8334,7.528,8335,9.995,8336,7.528,8337,9.995,8338,7.528,8339,9.995,8340,7.528,8341,6.584,8342,7.827,8343,6.081,8344,6.959,8345,6.584,8346,11.052,8347,7.528,8348,7.528,8349,7.528,8350,7.528]],["title/classes/ErrorMapper.html",[0,0.232,8351,5.947]],["body/classes/ErrorMapper.html",[0,0.295,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.322,27,0.357,29,0.678,30,0.001,31,0.485,32,0.118,33,0.419,35,1.048,95,0.154,101,0.014,103,0.001,104,0.001,187,1.252,204,4.507,227,0.898,234,2.047,502,5.374,506,5.668,627,3.683,1353,6.087,1354,6.167,1355,6.782,1384,7.575,2643,7.324,2783,7.558,8351,9.574,8352,8.66,8353,11.095,8354,8.66,8355,10.186,8356,8.66,8357,10.946,8358,5.754,8359,12.002,8360,8.66,8361,8.66,8362,6.782,8363,8.66,8364,8.66]],["title/modules/ErrorModule.html",[425,1.812,6426,5.493]],["body/modules/ErrorModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.165,101,0.015,103,0.001,104,0.001,187,1.309,319,3.363,379,2.051,425,3.263,427,3.269,428,3.517,429,3.621,430,3.606,431,3.59,432,4.14,433,3.42,438,6.292,442,4.502,443,3.546,444,3.461,449,4.464,836,5.256,2356,3.717,3281,7.475,3492,6.671,6426,10.849,6439,7.861,6443,10.728,7810,6.899,8365,9.049,8366,9.049,8367,9.049,8368,10.401,8369,6.819,8370,6.895,8371,9.423,8372,9.049,8373,9.049,8374,6.895]],["title/classes/ErrorResponse.html",[0,0.232,1409,4.075]],["body/classes/ErrorResponse.html",[0,0.239,2,0.782,3,0.017,4,0.017,5,0.008,7,0.106,27,0.517,29,0.55,30,0.001,31,0.393,32,0.189,33,0.524,47,0.987,55,2.617,59,2.185,95,0.09,101,0.012,103,0.001,104,0.001,127,1.194,165,0.747,187,1.015,204,4.426,216,2.559,309,5.484,379,2.454,394,5.431,565,5.792,577,5.381,1016,3.347,1142,6.125,1180,5.229,1216,5.023,1396,7.534,1397,4.293,1409,5.714,1410,3.96,1421,8.446,1422,7.087,1423,6.24,1430,6.817,1431,6.619,1433,5.846,1435,8.339,1437,8.814,1438,6.152,1439,8.814,1539,6.137,2578,3.128,2747,3.621,3848,6.486,3849,5.346,3850,6.486,8375,7.016,8376,7.016,8377,9.534,8378,7.016,8379,7.016,8380,7.016,8381,7.016]],["title/classes/ErrorUtils.html",[0,0.232,1354,4.842]],["body/classes/ErrorUtils.html",[0,0.255,2,0.835,3,0.018,4,0.018,5,0.009,7,0.113,8,1.203,27,0.492,29,0.934,30,0.001,31,0.668,32,0.135,33,0.577,35,1.444,47,0.798,59,2.332,95,0.144,101,0.012,103,0.001,104,0.001,145,2.522,187,1.083,204,4.783,227,1.237,234,1.215,334,0.804,371,2.064,379,2.703,558,3.591,627,4.216,806,4.856,1345,4.733,1354,7.091,1395,7.314,3708,8.867,3837,5.862,8382,7.486,8383,9.958,8384,9.958,8385,12.42,8386,9.958,8387,9.958,8388,7.486,8389,9.039,8390,9.958,8391,7.486,8392,9.958,8393,7.486,8394,9.99,8395,9.958,8396,7.486,8397,7.486,8398,11.928,8399,7.486]],["title/injectables/EtherpadService.html",[105,0.91,8400,5.947]],["body/injectables/EtherpadService.html",[0,0.272,3,0.019,4,0.019,5,0.01,7,0.12,8,1.254,26,2.592,27,0.428,29,0.813,30,0.001,31,0.581,32,0.157,33,0.502,35,0.965,36,2.226,39,2.795,47,0.944,94,3.873,95,0.157,101,0.017,103,0.001,104,0.001,105,1.389,107,1.922,111,1.599,112,2.544,127,0.999,163,3.195,187,1.153,204,3.522,215,2.545,216,1.475,217,1.502,221,1.846,227,1.077,234,1.295,371,2.199,766,3.336,784,4.31,883,3.383,1369,4.346,1397,4.094,1467,2.545,2356,4.742,2357,5.569,2545,4.242,2633,5.866,8400,9.08,8401,7.975,8402,10.382,8403,6.975,8404,9.448,8405,7.975,8406,10.382,8407,7.975,8408,7.372,8409,6.975,8410,10.382,8411,7.975,8412,7.975,8413,7.975,8414,7.975,8415,7.372,8416,7.975,8417,7.372,8418,5.679]],["title/classes/ExternalGroupDto.html",[0,0.232,8419,5.181]],["body/classes/ExternalGroupDto.html",[0,0.279,2,0.913,3,0.019,4,0.019,5,0.01,7,0.124,27,0.556,29,0.641,30,0.001,31,0.692,32,0.188,33,0.565,47,0.933,83,3.778,95,0.136,101,0.014,103,0.001,104,0.001,127,1.025,165,0.827,200,2.549,405,2.813,595,2.741,854,5.865,1166,3.927,2095,3.247,2578,3.649,3090,5.055,4281,3.575,4333,4.906,6871,4.853,6872,5.019,8178,7.166,8419,9.739,8420,11.417,8421,7.567,8422,10.223,8423,10.559,8424,8.185,8425,8.185,8426,8.185,8427,8.905,8428,8.185,8429,8.185,8430,9.153,8431,8.185,8432,6.855,8433,7.567,8434,6.41,8435,7.159,8436,7.159,8437,7.159,8438,7.159,8439,7.159,8440,8.185,8441,8.185]],["title/classes/ExternalGroupUserDto.html",[0,0.232,8430,5.324]],["body/classes/ExternalGroupUserDto.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.515,29,0.742,30,0.001,31,0.531,32,0.17,33,0.458,47,0.825,95,0.122,99,1.581,101,0.016,103,0.001,104,0.001,127,1.187,165,0.907,405,3.084,595,3.172,1166,6.245,4571,7.401,8420,10.901,8430,10.454,8442,8.759,8443,8.303,8444,10.7,8445,8.759,8446,8.287,8447,9.475,8448,8.759,8449,8.759]],["title/classes/ExternalSchoolDto.html",[0,0.232,8450,5.055]],["body/classes/ExternalSchoolDto.html",[0,0.318,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.534,29,0.732,30,0.001,31,0.726,32,0.176,33,0.601,47,0.965,101,0.016,103,0.001,104,0.001,127,1.17,165,0.899,405,3.058,595,3.128,854,6.233,2095,3.707,4281,4.081,6871,5.54,6872,5.729,8420,11.136,8450,9.885,8451,9.343,8452,7.804,8453,11.476,8454,9.343,8455,9.343,8456,6.945,8457,7.547]],["title/classes/ExternalSource.html",[0,0.232,8458,4.589]],["body/classes/ExternalSource.html",[0,0.33,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,27,0.52,29,0.758,30,0.001,31,0.542,32,0.171,33,0.468,47,0.935,48,5.945,101,0.016,103,0.001,104,0.001,127,1.212,165,0.918,405,3.125,417,7.036,418,7.58,595,3.241,854,6.331,6871,5.739,6872,5.935,8458,9.064,8459,13.113,8460,9.68,8461,11.726,8462,9.68]],["title/classes/ExternalSourceEntity.html",[0,0.232,8463,5.324]],["body/classes/ExternalSourceEntity.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,27,0.503,29,0.702,30,0.001,31,0.502,32,0.166,33,0.434,47,0.87,95,0.144,96,2.453,101,0.019,103,0.001,104,0.001,127,1.123,165,0.876,240,3.869,334,0.964,364,2.038,398,2.642,405,2.981,595,3.003,854,6.408,2574,5.775,3104,5.785,4989,5.125,6751,6.053,6871,5.318,6872,5.499,8463,8.762,8464,11.805,8465,8.291,8466,11.169,8467,11.189,8468,8.969,8469,7.102,8470,6.667,8471,7.023,8472,7.511]],["title/interfaces/ExternalSourceEntityProps.html",[334,0.731,8466,5.947]],["body/interfaces/ExternalSourceEntityProps.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.157,47,0.926,95,0.148,96,2.574,101,0.019,103,0.001,104,0.001,165,0.903,240,3.656,334,1.011,336,2.252,398,2.772,405,2.507,854,6.686,2574,5.948,3104,6.036,4989,5.278,6871,5.579,6872,5.769,8463,7.368,8464,8.698,8465,8.698,8466,10.898,8469,7.328,8470,6.994,8471,7.368,8472,7.879]],["title/classes/ExternalSourceResponse.html",[0,0.232,8473,5.694]],["body/classes/ExternalSourceResponse.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.513,29,0.735,30,0.001,31,0.526,32,0.169,33,0.454,47,0.925,48,5.865,95,0.121,101,0.016,103,0.001,104,0.001,127,1.176,165,0.901,364,2.096,376,2.147,405,3.067,417,6.823,418,7.35,467,3.493,595,3.143,854,6.246,6871,5.566,6872,5.755,8473,11.151,8474,12.975,8475,9.387,8476,11.509,8477,9.387]],["title/classes/ExternalTool.html",[0,0.232,158,3.324]],["body/classes/ExternalTool.html",[0,0.198,2,0.65,3,0.014,4,0.014,5,0.007,7,0.088,8,1.012,27,0.552,29,0.953,30,0.001,31,0.682,32,0.181,33,0.642,34,1.667,35,1.187,47,0.955,55,2.445,95,0.146,101,0.014,103,0,104,0,127,0.73,136,6.821,150,3.71,154,5.809,158,4.094,165,0.656,194,3.815,198,2.831,214,2.64,227,1.016,236,6.287,334,0.626,347,2.39,404,1.509,405,2.232,595,1.952,596,1.778,627,3.626,1872,6.224,2043,4.708,2044,4.881,2095,2.313,2558,7.789,2559,6.065,2562,9.049,2565,3.231,4281,2.546,5007,5.791,5352,5.751,5696,4.564,5700,8.164,5702,5.388,5708,4.237,5710,4.564,5711,4.151,5712,4.441,5719,3.872,5720,4.237,5736,6.047,5752,3.815,5755,6.558,6196,3.15,6467,4.564,7135,6.422,7136,3.662,7168,4.072,7169,4.333,7172,4.333,7173,4.708,7268,8.391,7269,8.589,7270,8.109,7289,3.934,7293,4,7316,7.013,8478,11.709,8479,8.375,8480,8.375,8481,8.375,8482,5.829,8483,5.829,8484,5.829,8485,5.829,8486,5.829,8487,5.829,8488,5.829,8489,5.829,8490,7.742,8491,5.829,8492,7.742,8493,5.829,8494,5.098,8495,5.388,8496,5.098,8497,7.742]],["title/classes/ExternalToolConfig.html",[0,0.232,2562,5.055]],["body/classes/ExternalToolConfig.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,9,4.413,27,0.513,29,0.734,30,0.001,31,0.525,32,0.184,33,0.453,47,0.819,95,0.12,101,0.016,103,0.001,104,0.001,127,1.173,165,0.9,198,4.549,209,4.285,238,6.954,405,3.062,595,3.136,2559,5.873,2561,7.843,2562,9.891,2563,8.657,2565,6.893,2569,6.669,2578,4.175,2579,6.669,4333,5.613,8498,12.965,8499,11.492]],["title/classes/ExternalToolConfigCreateParams.html",[0,0.232,2583,4.943]],["body/classes/ExternalToolConfigCreateParams.html",[0,0.334,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,9,6.524,27,0.487,30,0.001,32,0.183,47,0.842,95,0.126,101,0.016,103,0.001,104,0.001,165,0.925,198,4.759,209,4.191,238,7.093,2559,5.745,2565,7.03,2582,9.057,2583,8.587,8500,12.682,8501,9.798,8502,9.798]],["title/classes/ExternalToolConfigEntity.html",[0,0.232,2575,5.493]],["body/classes/ExternalToolConfigEntity.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,9,5.251,27,0.501,29,0.698,30,0.001,31,0.499,32,0.184,33,0.431,47,0.795,95,0.143,96,2.437,101,0.015,103,0.001,104,0.001,127,1.116,165,0.873,198,4.327,209,4.21,238,6.8,240,3.857,364,2.03,369,1.977,398,2.625,405,2.969,595,2.983,1031,3.81,2559,5.771,2565,6.74,2569,6.344,2572,7.461,2574,5.751,2575,10.594,2578,3.972,2579,6.344,3432,6.344,4333,5.34,8503,12.739,8504,11.143,8505,8.909]],["title/classes/ExternalToolConfigResponse.html",[0,0.232,2593,5.493]],["body/classes/ExternalToolConfigResponse.html",[0,0.334,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,9,6.524,27,0.487,30,0.001,32,0.183,47,0.842,95,0.126,101,0.016,103,0.001,104,0.001,165,0.925,198,4.759,209,4.191,238,7.093,2559,5.745,2565,7.03,2592,7.914,2593,9.542,8506,12.682,8507,9.798,8508,9.798]],["title/injectables/ExternalToolConfigurationService.html",[105,0.91,8509,5.493]],["body/injectables/ExternalToolConfigurationService.html",[0,0.192,3,0.013,4,0.013,5,0.007,7,0.085,8,0.986,26,2.235,27,0.461,29,0.877,30,0.001,31,0.627,32,0.152,33,0.541,35,1.276,95,0.161,99,0.939,101,0.009,103,0,104,0,105,1.092,107,1.356,111,1.128,116,4.074,127,0.705,136,5.196,139,7.365,140,6.161,145,1.424,148,1.731,154,2.576,158,6.69,167,3.004,187,0.813,192,1.676,194,3.682,195,7.114,198,2.732,199,2.126,200,2.542,201,4.153,209,4.156,216,1.04,217,1.605,227,1.249,276,6.594,277,4.254,290,3.301,291,5.2,347,2.132,369,1.248,839,2.682,1014,5.026,1744,3.93,1904,2.353,2559,5.288,5966,3.93,8509,6.594,8510,8.894,8511,5.2,8512,9.607,8513,9.607,8514,8.163,8515,8.163,8516,5.2,8517,8.03,8518,5.625,8519,7.32,8520,5.625,8521,10.346,8522,5.625,8523,7.76,8524,10.331,8525,5.625,8526,8.881,8527,5.625,8528,5.813,8529,8.163,8530,8.881,8531,5.625,8532,8.163,8533,5.625,8534,5.625,8535,5.625,8536,5.625,8537,5.625,8538,9.219,8539,5.625,8540,6.836,8541,5.625,8542,5.625,8543,5.625,8544,8.163,8545,5.625,8546,4.711,8547,5.625,8548,5.625,8549,5.625,8550,4.92,8551,5.625,8552,5.625,8553,11.192,8554,5.625,8555,5.625,8556,5.625]],["title/injectables/ExternalToolConfigurationUc.html",[105,0.91,8557,5.694]],["body/injectables/ExternalToolConfigurationUc.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.756,26,2.929,27,0.44,29,0.836,30,0.001,31,0.598,32,0.15,33,0.516,34,0.674,35,1.234,36,2.593,39,3.202,95,0.16,99,0.661,100,1.326,101,0.007,103,0,104,0,105,0.837,107,0.955,111,2.425,112,2.842,116,3.767,127,0.784,139,6.972,140,6.009,158,5.565,187,0.573,192,1.864,195,2.673,197,5.533,198,1.924,199,4.908,200,2.743,201,3.183,209,4.107,216,1.885,217,1.651,221,2.876,227,0.913,234,1.016,279,4.547,281,4.65,284,4.19,305,1.782,766,1.657,839,1.889,843,2.76,1014,3.697,1268,3.835,1795,6.428,1801,2.374,1904,1.657,1953,2.767,2559,5.011,2644,2.123,2725,1.794,3010,2.215,3129,3.199,3267,4.925,4205,3.728,4661,3.301,4773,5.278,5737,5.635,5760,5.533,5815,6.984,5966,2.767,6056,8.223,6057,7.09,6064,6.487,6073,3.101,6074,3.882,6077,2.879,6082,5.471,6086,3.199,6095,5.783,6100,6.249,6112,3.661,8509,8.62,8521,5.783,8523,6.262,8524,5.239,8526,7.167,8528,4.454,8530,5.783,8538,5.471,8550,3.464,8557,5.239,8558,10.226,8559,3.661,8560,7.167,8561,6.781,8562,7.167,8563,5.783,8564,7.752,8565,7.752,8566,3.101,8567,7.933,8568,3.961,8569,3.661,8570,3.961,8571,3.464,8572,3.961,8573,3.961,8574,3.961,8575,6.255,8576,3.661,8577,3.961,8578,3.961,8579,3.961,8580,3.961,8581,3.661,8582,3.661,8583,3.661,8584,6.255,8585,6.255,8586,4.766,8587,5.783,8588,3.661,8589,3.961,8590,3.961,8591,6.255,8592,7.752,8593,3.199,8594,5.783,8595,5.783,8596,5.783,8597,3.961,8598,3.961,8599,6.255,8600,3.961,8601,3.961,8602,6.255,8603,3.961,8604,6.255,8605,3.961,8606,3.464,8607,5.783,8608,4.547,8609,5.783,8610,5.783,8611,5.471]],["title/classes/ExternalToolContentBody.html",[0,0.232,5643,4.517]],["body/classes/ExternalToolContentBody.html",[0,0.457,2,0.66,3,0.014,4,0.014,5,0.007,7,0.089,9,2.791,27,0.244,30,0.001,31,0.64,32,0.186,33,0.41,47,0.847,83,1.812,95,0.139,99,0.988,101,0.022,103,0,104,0,144,3.141,150,2.051,163,1.823,165,0.664,240,1.879,364,1.079,369,1.314,374,1.891,375,3.767,376,1.355,379,1.92,404,2.058,467,3.599,470,4.777,471,4.009,524,3.407,999,5.393,1000,3.449,1031,1.856,1044,2.842,1770,3.44,2303,4.629,2553,4.216,2848,2.859,2849,2.562,2889,2.933,3251,3.512,3253,3.512,3259,5.104,3262,3.035,3267,5.531,4009,3.77,4037,3.77,4038,7.086,4096,5.787,5562,6.382,5564,6.382,5566,6.382,5568,6.382,5570,6.382,5604,3.877,5643,7.171,5644,6.571,5645,6.571,5646,6.571,5647,6.571,5835,3.722,5836,6.841,6979,3.935,7039,3.77,8169,8.255,8170,5.814,8171,4.065,8174,6.571,8175,6.571,8176,4.065,8177,6.571,8178,3.632,8179,3.998,8180,6.571,8181,6.571,8182,3.935,8183,3.935,8184,3.935,8185,3.935,8186,4.065,8187,4.065,8188,4.065,8189,4.065,8190,4.065,8612,5.923,8613,5.923]],["title/classes/ExternalToolCreateParams.html",[0,0.232,8614,5.694]],["body/classes/ExternalToolCreateParams.html",[0,0.35,2,0.709,3,0.015,4,0.015,5,0.008,7,0.096,27,0.515,29,0.806,30,0.001,31,0.681,32,0.182,33,0.588,47,0.867,95,0.156,101,0.011,103,0.001,104,0.001,144,2.829,145,1.611,150,3.561,154,5.104,165,0.698,198,3.09,209,4.211,236,6.035,240,2.018,347,2.254,364,2.274,369,2.283,373,5.514,374,2.031,375,4.245,376,1.455,467,3.078,470,4.662,471,4.518,731,3.521,1431,3.625,2384,5.341,2450,3.625,2559,5.772,2565,3.527,2568,4.445,2580,9.477,2583,6.478,2584,4.445,3047,6.346,4008,5.14,4009,4.05,4037,4.05,4038,6.383,5477,5.673,5736,5.805,5825,6.478,5828,5.328,5829,5.328,5830,5.328,5835,3.998,5836,5.753,7135,6.165,7289,4.294,7293,4.367,7322,9.477,7330,6.79,8183,5.921,8184,4.227,8185,5.921,8614,7.464,8615,10.292,8616,5.14,8617,9.333,8618,9.826,8619,5.565,8620,5.882,8621,6.363,8622,6.363,8623,5.882,8624,5.565,8625,6.363,8626,6.363,8627,6.363,8628,5.882,8629,6.363,8630,5.882,8631,6.363,8632,6.363]],["title/classes/ExternalToolElement.html",[0,0.232,2826,4.45]],["body/classes/ExternalToolElement.html",[0,0.224,2,0.734,3,0.016,4,0.016,5,0.008,7,0.099,8,1.102,27,0.545,29,0.963,30,0.001,31,0.688,32,0.175,33,0.594,35,1.555,36,1.956,47,0.847,55,1.965,59,2.05,95,0.117,101,0.017,103,0.001,104,0.001,112,2.308,116,2.842,144,2.509,145,2.864,148,3.656,165,0.715,208,2.459,209,3.461,221,1.523,227,1.086,334,0.707,347,2.118,363,5.808,371,1.815,404,1.887,595,3.055,596,3.919,661,3.834,687,2.805,692,3.409,728,2.517,806,2.679,884,4.299,1345,2.611,1790,3.852,1793,6.758,1865,4.156,2557,6.008,2627,2.766,2749,7.906,2752,6.497,2753,6.497,2754,6.497,2755,7.513,2756,6.497,2758,4.372,2759,5.594,2760,6.636,2762,6.374,2763,5.594,2764,6.504,2766,4.598,2767,4.815,2769,6.58,2770,4.598,2774,4.598,2776,4.372,2804,5.53,2826,7.402,3267,6.325,3945,4.784,3946,4.784,3947,4.784,3956,4.135,8633,9.681,8634,4.686,8635,6.581,8636,6.084,8637,6.581,8638,6.581,8639,5.756,8640,6.581,8641,5.756,8642,8.434,8643,6.084,8644,6.084,8645,6.084,8646,5.756,8647,6.084]],["title/classes/ExternalToolElementContent.html",[0,0.232,8648,5.694]],["body/classes/ExternalToolElementContent.html",[0,0.364,2,0.93,3,0.02,4,0.02,5,0.01,7,0.126,27,0.441,29,0.653,30,0.001,31,0.467,32,0.169,33,0.403,34,1.418,47,0.917,95,0.151,99,1.391,101,0.018,103,0.001,104,0.001,127,1.044,165,0.837,167,3.932,209,3.897,364,1.519,368,4.186,369,2.76,370,3.52,376,1.907,405,3.142,467,3.451,475,4.076,595,2.792,618,3.41,619,4.622,1011,4.213,1031,2.613,2303,3.38,2578,3.717,2884,4.435,2885,4.435,2889,4.129,3267,6.594,3436,5.825,3448,5.112,3694,4.944,3698,6.206,3702,5.539,3704,5.539,4011,8.141,4096,6.321,4333,4.997,5570,5.38,6866,6.352,8648,11.015,8649,10.9,8650,6.735,8651,8.338,8652,7.708,8653,7.708,8654,7.708]],["title/classes/ExternalToolElementContentBody.html",[0,0.232,8181,4.517]],["body/classes/ExternalToolElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.314,5566,6.314,5568,6.314,5570,6.905,5604,3.804,5643,7.109,5644,6.502,5645,6.502,5646,6.502,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,6.502,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,6.502,8181,7.109,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,8656,5.812,8657,5.812]],["title/entities/ExternalToolElementNodeEntity.html",[380,1.445,3177,5.324]],["body/entities/ExternalToolElementNodeEntity.html",[0,0.294,3,0.02,4,0.02,5,0.01,7,0.13,27,0.356,30,0.001,32,0.117,33,0.528,95,0.167,96,2.359,101,0.018,103,0.001,104,0.001,140,6.645,165,0.855,200,3.4,208,3.221,209,3.608,217,1.122,227,0.894,334,0.926,364,1.571,369,2.423,370,2.841,380,2.32,381,2.868,398,2.541,404,1.967,405,2.298,617,4.78,1790,4.609,2553,4.653,2557,5.336,2577,4.867,2578,3.845,3143,5.718,3155,6.543,3177,8.548,3222,5.287,3247,9.548,3391,5.644,3598,6.693,3619,5.351,4059,5.489,4061,5.489,4989,5,5768,9.152,5769,7.222,5800,5.729,8658,10.091,8659,8.623,8660,7.542,8661,7.972,8662,9.548,8663,7.972,8664,7.972,8665,7.972]],["title/interfaces/ExternalToolElementNodeEntityProps.html",[334,0.731,8662,5.947]],["body/interfaces/ExternalToolElementNodeEntityProps.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.118,33,0.531,95,0.167,96,2.384,101,0.018,103,0.001,104,0.001,140,6.877,165,0.861,200,3.423,208,3.256,209,2.881,217,1.134,227,0.904,334,0.936,336,2.086,369,1.934,370,2.871,380,2.335,398,2.568,404,2.169,405,2.323,617,4.832,1790,4.641,2553,3.715,2557,5.372,2577,4.919,2578,3.886,3143,5.757,3155,6.587,3177,6.826,3222,5.344,3247,9.613,3391,5.705,3598,7.381,3619,5.409,4059,5.548,4061,5.548,4989,5.034,5768,9.472,5769,7.3,5800,5.791,8658,8.058,8661,8.058,8662,10.529,8663,8.058,8664,8.058,8665,8.058]],["title/interfaces/ExternalToolElementProps.html",[334,0.731,8646,5.947]],["body/interfaces/ExternalToolElementProps.html",[0,0.298,3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.15,33,0.533,36,1.877,47,0.93,95,0.142,101,0.02,103,0.001,104,0.001,112,1.929,144,2.408,145,2.791,148,2.694,165,0.863,208,3.27,209,2.893,221,2.026,227,1.251,334,0.941,336,2.095,347,1.771,371,2.414,404,2.173,687,3.732,728,3.348,806,3.564,1345,3.473,1865,5.02,2627,3.679,2749,6.679,2755,5.816,2759,5.368,2760,6.466,2763,5.368,2764,6.339,2804,7.31,2826,7.894,3267,7.297,3956,5.501,8633,8.093,8634,6.234,8642,10.188,8643,8.093,8644,8.093,8645,8.093,8646,9.639,8647,8.093]],["title/classes/ExternalToolElementResponse.html",[0,0.232,4011,5.181]],["body/classes/ExternalToolElementResponse.html",[0,0.348,2,0.869,3,0.018,4,0.018,5,0.009,7,0.118,27,0.519,29,0.61,30,0.001,31,0.436,32,0.184,33,0.377,34,1.941,47,0.864,95,0.147,99,1.3,101,0.017,103,0.001,104,0.001,127,0.976,165,0.801,167,2.866,209,4.268,364,2.207,368,3.052,369,2.269,370,2.566,376,1.782,405,3.041,467,3.503,475,3.808,595,2.608,618,3.185,619,4.318,1031,2.441,2303,4.626,2578,3.473,2883,5.098,2884,5.438,2885,5.438,2888,4.721,2889,5.063,3267,4.357,3436,5.442,3448,4.776,3694,6.767,3698,6.629,3702,5.175,3704,5.175,4011,9.587,4096,6.746,4333,4.669,5570,6.597,6866,5.935,8648,10.147,8649,11.938,8652,7.201,8653,7.201,8654,7.201,8666,7.201,8667,7.79,8668,7.201,8669,7.79,8670,7.201]],["title/classes/ExternalToolElementResponseMapper.html",[0,0.232,5582,5.947]],["body/classes/ExternalToolElementResponseMapper.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,8,1.221,27,0.496,29,0.792,30,0.001,31,0.566,32,0.164,33,0.489,34,1.302,35,1.37,95,0.145,99,1.278,100,2.564,101,0.013,103,0.001,104,0.001,111,2.269,116,2.385,165,0.792,167,2.817,209,4.135,214,3.187,217,0.996,227,1.173,234,1.954,347,2.045,591,3.328,627,3.944,806,3.117,974,4.54,975,5.604,978,6.185,980,5.833,1750,4.484,2051,4.362,2303,3.104,2547,8.412,2550,7.915,2551,7.915,2553,5.671,2554,7.701,2826,8.707,3267,4.282,3694,4.54,3698,5.871,3715,5.452,4011,9.17,4096,4.105,5183,7.11,5570,4.94,5581,5.995,5582,11.463,8648,8.465,8671,12.512,8672,9.17,8673,6.697,8674,6.185,8675,11.316,8676,6.185,8677,6.185,8678,6.185,8679,7.656]],["title/entities/ExternalToolEntity.html",[380,1.445,8680,4.842]],["body/entities/ExternalToolEntity.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.097,27,0.536,29,0.812,30,0.001,31,0.581,32,0.179,33,0.618,47,0.912,55,1.939,95,0.144,96,1.766,101,0.015,103,0.001,104,0.001,150,3.589,154,5.136,165,0.705,216,1.193,236,6.082,240,4.217,290,3.787,347,2.268,364,2.366,369,2.919,370,3.885,380,1.913,381,2.147,386,5.905,394,5.128,398,1.902,399,3.571,402,2.675,404,1.163,405,1.72,406,2.099,1431,3.677,1858,4.715,2043,5.214,2044,5.405,2095,2.561,2559,5.959,2570,9.059,4265,6.41,4271,5.649,4272,3.912,4281,2.819,5007,5.602,5719,4.288,5720,4.692,5736,5.85,5752,4.224,5755,5.054,5770,5.214,6196,3.488,6467,5.054,7135,6.212,7136,4.055,7168,4.509,7169,4.798,7172,4.798,7173,5.214,7230,9.059,8496,5.645,8680,6.41,8681,13.155,8682,8.68,8683,9.059,8684,9.059,8685,6.454,8686,6.454,8687,6.454,8688,6.454,8689,6.454,8690,6.454,8691,6.454,8692,6.454,8693,6.454,8694,6.454,8695,7.539,8696,6.454,8697,6.454,8698,6.454]],["title/classes/ExternalToolEntityFactory.html",[0,0.232,8699,6.286]],["body/classes/ExternalToolEntityFactory.html",[0,0.136,2,0.446,3,0.009,4,0.009,5,0.005,7,0.06,8,0.761,27,0.533,29,1.004,30,0.001,31,0.718,32,0.181,33,0.586,34,1.326,35,1.382,47,0.791,55,2.306,59,2.999,95,0.114,101,0.013,103,0,104,0,127,0.501,138,2.752,144,3.052,146,2.743,148,1.23,150,1.384,154,4.053,165,0.493,185,4.891,195,2.697,196,2.846,200,1.245,209,3.539,216,1.165,217,1.394,227,1.11,234,1.437,236,2.345,238,4.95,277,1.613,279,2.905,290,2.345,319,3.494,326,2.971,331,2.544,359,2.196,366,2.235,369,0.887,371,2.15,379,2.005,380,2.046,381,2.095,404,1.135,461,0.914,471,1.62,538,2.838,596,3.751,627,1.933,660,6.985,661,4.299,662,4.995,665,3.555,666,4.995,667,5.412,668,3.555,669,3.555,670,3.555,671,3.492,672,3.995,673,4.401,674,6.424,675,5.338,676,6.803,677,2.276,682,2.255,683,3.555,684,2.276,685,4.671,686,4.823,687,3.772,688,4.535,689,3.523,690,2.255,691,2.125,692,3.822,693,2.196,694,2.16,695,2.255,696,4.601,697,2.276,698,4.323,699,2.255,700,7.173,701,3.923,702,6.262,703,2.276,704,3.861,705,2.255,706,2.276,707,2.255,708,2.276,709,2.255,710,2.544,711,2.369,712,2.255,713,5.671,714,2.276,715,2.255,716,3.555,717,3.325,718,3.555,719,2.276,720,2.178,721,2.16,722,1.782,723,2.255,724,2.255,725,2.255,726,2.276,727,2.276,728,1.528,729,2.255,730,2.276,731,2.489,732,2.255,733,2.276,735,2.321,736,2.369,737,5.772,905,1.664,1618,3.659,2035,3.405,2047,3.694,2565,2.215,2568,5.448,2570,6.299,5007,2.16,5429,4.123,5530,3.14,5698,2.033,5736,2.255,5782,2.578,5799,2.697,7112,2.615,7118,2.578,7120,4.065,7121,3.347,7122,2.578,7133,2.544,7135,2.395,7207,2.971,7230,5.088,7266,2.905,7271,2.48,7289,2.697,7296,3.347,7298,2.846,7299,4.799,7305,3.347,7315,7.411,7317,3.347,8680,4.486,8682,3.347,8683,5.088,8684,5.088,8695,5.275,8699,7.208,8700,10.23,8701,3.996,8702,8.85,8703,8.181,8704,5.823,8705,5.823,8706,3.996,8707,3.996,8708,3.996,8709,5.823,8710,3.996,8711,6.299,8712,3.996,8713,8.85,8714,3.996,8715,3.996,8716,3.228,8717,3.347,8718,3.996,8719,3.996,8720,3.996,8721,3.996]],["title/classes/ExternalToolFactory.html",[0,0.232,7307,5.694]],["body/classes/ExternalToolFactory.html",[0,0.253,2,0.414,3,0.009,4,0.009,5,0.004,7,0.056,8,0.718,27,0.521,29,0.998,30,0.001,31,0.701,32,0.179,33,0.584,34,1.011,35,1.35,47,0.424,55,2.516,59,3.368,95,0.119,101,0.016,103,0,104,0,127,0.465,136,3.785,138,2.597,144,2.974,146,2.55,148,1.144,150,1.287,154,3.404,158,1.816,165,0.466,185,4.99,195,2.508,196,2.646,200,1.157,201,1.891,209,1.228,216,1.099,217,1.572,227,1.211,236,2.18,238,4.157,277,3.75,278,2.831,279,4.322,281,2.762,290,2.18,319,3.232,326,2.762,331,2.365,359,2.073,366,2.078,371,2.343,379,1.684,380,1.579,381,1.978,404,1.531,461,0.85,471,1.506,538,2.679,596,3.685,627,1.825,660,6.639,661,4.165,662,4.795,665,3.356,666,4.795,667,5.125,668,3.356,669,3.356,670,3.356,671,3.296,672,3.809,673,4.195,674,6.286,675,5.151,676,6.618,677,2.117,682,2.097,683,3.356,684,2.117,685,4.484,686,4.63,687,3.621,688,4.353,689,3.326,690,2.097,691,1.976,692,3.703,693,2.042,694,2.008,695,2.097,696,4.417,697,2.117,698,4.12,699,2.097,700,7.553,701,3.823,702,6.103,703,2.117,704,2.944,705,2.097,706,2.117,707,2.097,708,2.117,709,2.097,712,2.097,713,5.495,714,2.117,715,2.097,716,3.356,717,3.138,718,3.356,719,2.117,720,2.025,721,2.008,722,1.657,723,2.097,724,2.097,725,2.097,726,2.117,727,2.117,728,1.421,729,2.097,730,2.117,731,2.349,732,2.097,733,2.117,735,2.158,736,2.203,737,5.092,905,1.547,1431,2.117,1618,3.454,2035,3.214,2558,2.701,2565,2.06,2568,2.596,4313,6.617,4315,2.701,5007,2.008,5530,2.964,5698,1.891,5736,2.097,5793,3.002,5798,2.91,5799,2.508,7112,2.432,7118,2.398,7120,2.398,7122,2.398,7133,2.365,7135,2.227,7261,4.98,7262,8.127,7264,3.25,7266,2.701,7267,4.42,7268,2.91,7269,2.701,7270,2.55,7271,2.306,7272,3.25,7273,3.25,7274,3.25,7275,6.501,7276,4.98,7277,3.25,7278,3.604,7279,3.002,7280,2.701,7281,2.831,7282,3.25,7283,2.762,7284,3.25,7285,3.25,7286,3.112,7287,3.25,7288,3.25,7289,2.508,7290,3.25,7291,3.25,7292,3.25,7293,2.55,7294,3.25,7295,3.25,7296,3.112,7297,3.25,7298,2.646,7299,4.53,7300,5.201,7301,6.501,7302,5.201,7303,5.201,7304,3.25,7305,3.112,7306,2.91,7307,6.225,7308,5.201,7309,3.25,7310,5.201,7311,3.25,7312,5.201,7313,8.669,7314,3.25,7315,7.114,7316,2.432,7317,3.112,7318,3.25,7319,3.25,7320,3.25,7321,3.25,8703,5.497,8705,5.497,8722,5.946,8723,3.716,8724,3.716,8725,3.716,8726,3.716]],["title/classes/ExternalToolIdParams.html",[0,0.232,8727,5.947]],["body/classes/ExternalToolIdParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,209,3.904,364,1.785,368,4.628,369,2.621,370,3.228,371,3.257,374,3.127,376,2.241,467,3.099,478,6.977,1000,4.809,2559,5.351,5735,8.86,5803,8.205,5804,8.569,8615,9.542,8727,10.332]],["title/classes/ExternalToolLogo.html",[0,0.232,8728,5.694]],["body/classes/ExternalToolLogo.html",[0,0.323,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.516,29,0.744,30,0.001,31,0.532,32,0.17,33,0.459,47,0.827,101,0.016,103,0.001,104,0.001,127,1.19,165,0.908,209,4.306,2559,5.902,6275,8.909,6996,9.707,7316,8.188,8478,11.395,8494,8.307,8728,11.38,8729,9.497,8730,11.591,8731,11.591,8732,9.497,8733,9.497,8734,9.497,8735,8.78]],["title/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.232,8736,5.947]],["body/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.229,2,0.751,3,0.016,4,0.016,5,0.008,7,0.102,8,1.12,27,0.533,29,0.528,30,0.001,31,0.377,32,0.182,33,0.513,35,1.122,47,0.883,55,1.451,59,2.098,95,0.136,101,0.011,103,0.001,104,0.001,111,1.35,127,0.844,163,2.073,165,0.726,187,0.974,200,3.302,204,3.875,209,4.091,214,2.923,215,2.15,216,2.498,227,0.698,364,2.181,404,1.671,406,2.19,558,3.231,564,2.469,596,3.776,798,7.176,1013,5.231,1016,2.365,1142,4.91,1180,2.899,1216,4.475,1395,8.039,1396,6.039,1397,3.824,1398,6.748,1402,4.346,1403,3.733,1404,4.346,1405,4.346,1406,4.346,1407,4.346,1408,4.346,1409,4.037,1410,7.292,1416,4.232,1464,5.701,1465,5.471,1467,2.15,1469,5.656,2559,4.803,2681,9.226,5736,5.983,5752,4.408,7316,8.101,8288,5.512,8289,5.73,8736,8.109,8737,8.564,8738,4.287,8739,6.226,8740,4.796,8741,5.891,8742,9.271,8743,7.489,8744,5.64,8745,3.952,8746,4.129,8747,6.735]],["title/classes/ExternalToolLogoFetchedLoggable.html",[0,0.232,8748,5.947]],["body/classes/ExternalToolLogoFetchedLoggable.html",[0,0.304,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,8,1.348,27,0.46,29,0.699,30,0.001,31,0.5,32,0.152,33,0.432,35,1.081,47,0.868,95,0.115,101,0.015,103,0.001,104,0.001,127,1.118,163,2.748,200,2.781,209,4.214,214,3.518,215,2.85,216,1.651,227,0.926,1216,3.499,1460,7.81,1464,5.605,1465,6.281,1467,2.85,1469,6.313,2559,5.514,5736,6.869,5752,5.844,7316,8.344,8288,6.327,8289,6.578,8737,9.831,8739,8.254,8743,10.299,8748,9.759,8749,8.929,8750,8.929,8751,8.929]],["title/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.232,8752,5.947]],["body/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.294,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,8,1.319,27,0.45,29,0.675,30,0.001,31,0.483,32,0.148,33,0.417,35,1.044,47,0.854,95,0.14,101,0.014,103,0.001,104,0.001,127,1.08,163,2.654,187,1.247,200,2.686,209,4.161,214,3.442,215,2.752,216,1.595,227,0.894,404,1.967,406,2.805,511,6.361,1216,3.379,1464,6.111,1465,6.182,1467,2.752,1469,6.234,2559,5.426,2644,6.422,5735,8.368,5747,7.222,7316,8.24,8288,6.227,8289,6.474,8737,9.675,8738,5.489,8745,5.06,8746,5.287,8752,9.548,8753,7.972,8754,7.222,8755,7.222,8756,8.623]],["title/classes/ExternalToolLogoService.html",[0,0.232,8567,5.055]],["body/classes/ExternalToolLogoService.html",[0,0.162,2,0.531,3,0.011,4,0.011,5,0.006,7,0.072,8,0.871,26,2.059,27,0.47,29,0.894,30,0.001,31,0.639,32,0.155,33,0.552,34,1.227,35,1.33,36,2.355,47,0.921,95,0.16,99,0.795,101,0.008,103,0,104,0,111,2.459,112,2.652,127,0.903,145,2.46,148,2.22,154,2.181,158,6.093,187,0.689,200,1.483,204,2.954,209,4.119,216,1.796,217,1.68,221,2.015,227,1.219,234,1.908,247,1.865,305,3.129,696,5.71,784,2.573,806,3.545,839,2.27,1016,1.672,1154,7.971,1155,2.765,1156,5.495,1157,3.116,1180,2.049,1268,2.919,1369,2.595,1464,2.193,1467,1.52,1904,1.992,2022,5.136,2033,3.326,2356,4.687,2559,5.324,3708,5.362,5736,2.687,6100,6.996,6106,3.846,6275,6.917,6996,9.841,7316,6.358,7453,3.539,8510,8.953,8516,4.401,8517,7.401,8519,6.634,8567,5.362,8593,3.846,8682,6.04,8728,8.741,8736,4.164,8748,4.164,8752,4.164,8757,4.761,8758,7.213,8759,7.213,8760,7.213,8761,7.213,8762,7.213,8763,7.213,8764,4.761,8765,7.213,8766,4.761,8767,7.213,8768,4.761,8769,4.761,8770,7.213,8771,4.761,8772,7.213,8773,4.761,8774,7.213,8775,4.761,8776,2.595,8777,7.213,8778,4.761,8779,4.401,8780,6.309,8781,9.979,8782,4.761,8783,4.761,8784,7.213,8785,4.761,8786,4.761,8787,4.401,8788,4.761,8789,4.761,8790,4.164,8791,4.164,8792,4.761,8793,4.761,8794,4.761,8795,4.761,8796,4.401,8797,4.761,8798,6.668,8799,4.761,8800,7.213,8801,3.39,8802,8.707,8803,4.761,8804,4.761,8805,3.213,8806,4.761,8807,3.728,8808,4.761,8809,4.761,8810,4.761,8811,4.761,8812,7.213,8813,4.761,8814,4.164,8815,4.761,8816,4.761,8817,7.213,8818,4.761,8819,4.761,8820,4.761,8821,4.761,8822,4.761]],["title/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.232,8780,5.947]],["body/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.226,2,0.74,3,0.016,4,0.016,5,0.008,7,0.1,8,1.108,27,0.531,29,0.52,30,0.001,31,0.372,32,0.182,33,0.509,35,1.111,47,0.879,55,2.445,95,0.135,101,0.011,103,0.001,104,0.001,111,1.84,127,1.149,145,2.663,163,2.042,165,0.719,187,0.96,200,3.276,204,3.851,209,4.072,214,2.893,216,2.492,227,0.688,364,2.17,404,1.653,406,2.158,558,3.183,564,2.432,596,3.758,1013,5.198,1015,6.891,1016,2.329,1142,4.872,1180,2.856,1216,4.447,1395,8.012,1396,5.992,1397,3.8,1398,6.695,1402,4.281,1403,3.678,1404,4.281,1405,4.281,1406,4.281,1407,4.281,1408,4.281,1409,3.977,1410,3.745,1416,4.169,1417,5.196,1464,5.675,1465,5.429,1467,2.118,1469,5.62,2559,4.765,5735,7.349,5747,5.557,7316,8.064,8288,5.468,8289,5.685,8737,8.497,8738,4.223,8740,4.725,8745,3.893,8746,4.068,8753,6.134,8780,8.026,8823,11.39,8824,9.926,8825,6.635,8826,9.176,8827,6.635]],["title/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.232,8781,5.947]],["body/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.234,2,0.765,3,0.016,4,0.016,5,0.015,7,0.104,8,1.134,27,0.535,30,0.001,32,0.188,33,0.454,35,1.137,47,0.763,55,1.478,95,0.137,101,0.011,103,0.001,104,0.001,127,1.341,165,0.735,187,0.992,200,3.334,204,3.906,209,4.114,214,2.96,216,2.462,227,0.711,364,2.196,404,1.692,406,2.231,558,3.292,564,2.515,596,3.797,1013,5.272,1016,2.409,1142,4.958,1180,2.953,1216,4.51,1395,8.071,1396,6.098,1397,3.854,1398,6.814,1402,4.427,1403,3.803,1404,4.427,1405,4.427,1406,4.427,1407,4.427,1408,4.427,1409,4.112,1410,3.872,1416,4.311,1417,5.373,1464,5.733,1465,5.525,1467,2.19,1469,5.7,1642,6.687,2559,4.85,3578,4.846,7316,8.147,7773,9.484,8288,5.565,8289,5.786,8737,8.647,8738,4.367,8740,4.886,8741,6.001,8745,4.026,8746,4.207,8781,8.213,8828,9.39,8829,9.39,8830,8.68]],["title/modules/ExternalToolModule.html",[425,1.812,5813,5.181]],["body/modules/ExternalToolModule.html",[0,0.232,3,0.016,4,0.016,5,0.008,30,0.001,95,0.169,101,0.011,103,0.001,104,0.001,187,0.987,209,2.256,425,2.845,427,2.466,428,2.653,429,2.731,430,2.72,431,2.708,432,3.929,433,4.035,438,5.823,442,3.744,443,2.675,444,2.61,449,3.712,450,2.804,766,2.855,1155,3.965,1467,2.179,2559,3.092,3917,6.315,4588,3.523,5030,3.926,5328,9.035,5338,5.514,5813,10.939,6100,8.302,8255,9.035,8509,10.938,8567,9.635,8831,6.826,8832,6.826,8833,6.826,8834,6.826,8835,9.733,8836,9.47,8837,11.34,8838,11.34,8839,10.409,8840,10.409,8841,10.409,8842,6.826,8843,4.535,8844,4.769,8845,5.717]],["title/injectables/ExternalToolParameterValidationService.html",[105,0.91,8839,5.694]],["body/injectables/ExternalToolParameterValidationService.html",[0,0.136,3,0.009,4,0.009,5,0.005,7,0.06,8,0.76,27,0.491,29,0.949,30,0.001,31,0.688,32,0.167,33,0.576,35,1.414,36,1.896,72,1.807,95,0.137,101,0.007,103,0,104,0,105,0.841,107,0.961,111,2.725,112,2.253,127,0.788,136,8.676,144,2.142,158,5.711,167,2.314,187,0.577,194,2.61,195,2.692,198,1.937,200,1.242,209,4.113,216,1.163,217,1.15,221,1.456,227,1.329,234,1.967,264,3.715,276,3.222,277,1.61,278,4.792,290,7.722,298,8.378,305,3.251,319,2.327,327,5.814,328,3.687,347,2.63,369,2.461,371,2.147,503,6.799,504,2.61,558,1.913,577,2.251,696,5.314,731,1.576,784,2.155,795,2.445,1127,4.004,1187,1.902,1188,1.879,1189,1.879,1369,2.173,1431,6.317,1904,1.668,2146,2.692,2257,2.417,2362,2.294,2559,5.489,3284,7.403,5335,8.378,5362,3.123,5404,3.687,5406,2.475,5421,3.687,5423,5.267,5424,5.267,5429,5.097,6100,6.267,6105,3.123,6106,3.222,6111,5.267,6439,4.394,8510,9.231,8566,3.123,8801,2.84,8839,5.267,8846,6.29,8847,6.29,8848,6.29,8849,6.29,8850,6.29,8851,6.29,8852,6.29,8853,6.29,8854,6.29,8855,6.29,8856,3.488,8857,6.29,8858,3.687,8859,6.29,8860,3.988,8861,6.29,8862,3.988,8863,6.29,8864,3.988,8865,6.29,8866,3.988,8867,6.29,8868,3.988,8869,6.29,8870,3.687,8871,6.29,8872,3.988,8873,6.29,8874,3.988,8875,6.29,8876,3.687,8877,3.988,8878,3.988,8879,3.988,8880,5.933,8881,3.988,8882,3.988,8883,3.988,8884,3.988,8885,3.988,8886,3.988,8887,2.899,8888,3.988,8889,3.988,8890,3.039,8891,3.988,8892,3.988,8893,3.988,8894,3.039,8895,3.988,8896,3.988,8897,3.988,8898,3.988,8899,3.988,8900,3.488,8901,3.988,8902,3.687,8903,3.988,8904,6.29,8905,3.988,8906,6.29,8907,3.988,8908,3.988,8909,3.988,8910,7.199,8911,3.988,8912,3.988,8913,3.988,8914,3.988,8915,6.29,8916,6.29]],["title/interfaces/ExternalToolProps.html",[334,0.731,7268,5.324]],["body/interfaces/ExternalToolProps.html",[0,0.227,3,0.016,4,0.016,5,0.008,7,0.101,29,0.934,30,0.001,31,0.668,32,0.18,33,0.64,34,1.933,47,0.996,55,2.569,95,0.153,101,0.015,103,0.001,104,0.001,136,7.592,150,4.13,154,5.901,158,3.254,165,0.72,194,4.357,198,3.233,214,2.099,227,1.093,236,6.998,334,0.715,336,1.593,347,2.606,404,1.2,405,1.774,627,2.822,1872,5.342,2043,5.377,2044,5.575,2095,2.641,2558,8.67,2559,3.016,2562,7.833,2565,3.69,4281,2.908,5007,6.446,5352,5.396,5696,5.213,5700,5.072,5710,5.213,5711,4.741,5712,5.072,5719,4.423,5720,4.839,5736,6.732,5752,4.357,5755,7.202,6196,3.598,6467,5.213,7135,7.149,7136,4.183,7168,4.651,7169,4.949,7172,4.949,7173,5.377,7268,8.251,7269,8.966,7270,8.465,7289,4.493,7293,4.569,7316,7.806,8478,5.823,8490,6.154,8492,6.154,8494,5.823,8495,6.154,8496,5.823,8497,8.502]],["title/entities/ExternalToolPseudonymEntity.html",[380,1.445,8917,4.842]],["body/entities/ExternalToolPseudonymEntity.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,26,2.238,27,0.482,30,0.001,32,0.159,34,1.392,39,3.442,47,0.833,49,5.239,95,0.159,96,2.888,97,3.54,99,1.366,101,0.018,103,0.001,104,0.001,165,0.916,167,3.012,200,2.549,209,4.224,240,4.152,334,0.879,364,2.129,380,2.244,381,2.723,394,6.658,398,2.412,399,4.189,402,3.393,404,1.475,405,2.181,406,2.662,415,4.424,416,5.21,618,3.347,619,5.853,4272,4.961,8776,6.966,8917,7.519,8918,11.416,8919,7.567,8920,7.102,8921,7.159,8922,8.185,8923,8.185,8924,8.185,8925,8.842,8926,5.438,8927,6.612,8928,6.855,8929,5.95,8930,6.41]],["title/injectables/ExternalToolPseudonymRepo.html",[105,0.91,8931,5.694]],["body/injectables/ExternalToolPseudonymRepo.html",[0,0.151,3,0.01,4,0.01,5,0.005,7,0.067,8,0.825,13,4.963,26,2.805,27,0.496,29,0.943,30,0.001,31,0.674,32,0.164,33,0.582,34,0.754,35,1.427,36,2.8,39,3.241,42,4.963,47,0.594,49,1.743,56,2.126,58,2.859,59,1.38,95,0.143,96,1.212,97,1.917,99,0.74,101,0.007,103,0,104,0,105,0.913,107,1.068,112,2.947,127,0.555,145,1.122,167,3.444,187,0.641,209,4.048,215,1.414,216,0.819,217,1.711,221,2.471,227,1.27,234,2.018,277,3.362,380,2.441,381,3.113,450,1.82,529,1.926,591,1.926,592,2.007,661,4.487,701,2.945,921,6.957,1008,3.69,1014,4.463,1790,4.698,1904,1.854,2355,5.383,2379,2.991,2390,3.096,2403,3.47,2408,4.77,2422,3.711,2794,4.048,3314,3.096,3319,4.138,3381,3.579,4369,2.859,4383,3.711,4384,3.711,5882,3.096,6612,2.656,6902,5.672,6931,3.221,6932,3.221,8776,6.559,8917,8.57,8920,7.725,8925,7.837,8926,4.536,8931,5.718,8932,12.247,8933,4.431,8934,6.312,8935,5.972,8936,6.312,8937,6.312,8938,6.312,8939,5.718,8940,5.972,8941,6.312,8942,4.431,8943,6.312,8944,4.431,8945,5.972,8946,4.431,8947,4.431,8948,6.312,8949,4.431,8950,6.312,8951,4.431,8952,6.312,8953,7.837,8954,4.431,8955,5.202,8956,4.431,8957,6.312,8958,4.431,8959,6.312,8960,4.431,8961,5.202,8962,5.972,8963,4.431,8964,4.431,8965,5.972,8966,9.344,8967,6.828,8968,4.431,8969,3.876,8970,4.096,8971,4.431,8972,4.096,8973,4.431,8974,3.876,8975,4.096,8976,5.972,8977,4.431,8978,4.431,8979,4.096,8980,4.096,8981,4.096,8982,4.096,8983,4.096,8984,4.096,8985,3.711,8986,4.431,8987,4.431,8988,4.431,8989,3.876,8990,4.431,8991,3.876]],["title/injectables/ExternalToolRepo.html",[105,0.91,8840,5.694]],["body/injectables/ExternalToolRepo.html",[0,0.132,3,0.009,4,0.009,5,0.005,7,0.059,8,0.743,10,2.482,12,2.817,18,3.108,26,2.328,27,0.534,29,1.006,30,0.001,31,0.729,32,0.177,33,0.621,34,1.3,35,1.543,36,2.682,40,1.871,47,0.72,55,0.835,56,1.86,58,2.502,59,1.208,95,0.152,96,1.682,97,1.677,99,0.647,101,0.006,103,0,104,0,105,0.823,107,0.935,111,2.201,112,2.931,127,0.486,148,1.193,154,2.817,158,5.879,165,0.304,167,3.894,200,1.208,201,1.973,216,1.137,217,1.628,221,2.014,227,1.226,234,1.241,277,3.085,359,2.144,380,2.462,381,2.046,398,1.142,404,1.108,450,1.592,529,1.685,595,1.298,596,3.724,661,3.213,701,2.703,878,4.297,884,2.898,885,4.794,915,2.149,935,3.247,944,3.584,964,2.661,1008,3.324,1014,4.149,1467,1.237,1790,4.992,2051,2.209,2144,3.471,2343,8.669,2345,4.38,2346,4.38,2347,4.38,2348,4.38,2349,4.297,2350,4.297,2351,4.38,2352,4.297,2353,4.38,2354,2.818,2355,5.005,2356,3.574,2357,3.963,2359,4.471,2360,2.761,2362,5.005,2363,2.761,2365,2.761,2367,5.003,2368,4.297,2369,2.761,2371,2.761,2373,4.38,2377,4.38,2379,4.151,2380,4.297,2382,2.761,2384,2.324,2385,2.377,2386,2.761,2388,2.761,2390,4.297,2391,2.761,2397,2.617,2408,4.297,2409,6.469,2565,4.824,4431,2.436,4435,2.617,4492,2.882,4661,3.246,5530,3.066,5782,2.502,5799,2.617,5839,3.391,5853,5.151,5854,3.584,5862,2.818,5863,2.818,5864,2.818,5865,2.818,5866,2.818,5867,2.818,5868,2.818,5869,2.818,5870,2.818,5876,3.132,5877,3.391,5878,2.954,5882,2.709,6612,2.324,6902,5.274,6912,4.572,6931,2.818,6932,2.818,7271,3.816,8680,8.693,8695,8.457,8840,5.151,8961,4.686,8985,3.247,8989,3.391,8991,3.391,8992,8.863,8993,6.15,8994,5.151,8995,6.15,8996,3.877,8997,3.584,8998,6.63,8999,3.877,9000,6.15,9001,3.877,9002,5.151,9003,3.877,9004,6.15,9005,3.584,9006,3.584,9007,2.954,9008,3.584,9009,3.391,9010,3.877,9011,5.379,9012,3.877,9013,6.15,9014,3.877,9015,3.584,9016,3.877,9017,3.877,9018,3.877,9019,5.379,9020,3.877,9021,3.877]],["title/classes/ExternalToolRepoMapper.html",[0,0.232,5876,5.493]],["body/classes/ExternalToolRepoMapper.html",[0,0.134,2,0.439,3,0.009,4,0.009,5,0.005,7,0.059,8,0.752,27,0.498,29,0.972,30,0.001,31,0.722,32,0.179,33,0.584,34,0.67,35,1.462,95,0.131,101,0.007,103,0,104,0,136,7.027,144,1.712,150,2.156,154,5.531,158,5.204,181,7.333,187,0.569,192,1.173,200,1.939,201,2.003,209,2.058,227,1.252,234,1.989,236,3.653,238,5.686,264,2.617,275,5.446,277,2.513,298,4.876,305,1.774,307,3.912,309,5.847,319,2.623,331,3.963,379,1.411,380,0.837,471,2.524,627,4.236,731,2.46,1618,3.617,1852,1.663,2035,3.365,2349,4.35,2350,4.35,2377,4.434,2379,2.658,2380,4.35,2384,3.732,2531,3.365,2558,8.46,2565,2.183,2568,4.35,2570,8.917,3047,4.434,4369,2.541,4370,3.083,5007,3.365,5209,6.754,5411,5.446,5417,5.446,5423,5.214,5424,5.214,5427,5.029,5429,4.075,5530,3.104,5698,3.168,5736,3.514,5776,8.658,5782,2.541,5798,3.083,5799,2.658,5876,5.029,7118,4.017,7120,4.017,7122,4.017,7133,3.963,7135,3.732,7207,4.628,7230,8.917,7269,8.46,7270,7.988,7271,3.864,7289,4.202,7293,4.273,7298,4.434,7316,2.577,8680,6.251,8682,3.298,8683,8.917,8684,8.917,8695,6.468,8900,5.446,8910,5.756,8992,10.262,9022,3.937,9023,6.226,9024,6.226,9025,6.226,9026,6.226,9027,6.226,9028,6.226,9029,6.226,9030,6.226,9031,6.226,9032,6.226,9033,6.226,9034,3.937,9035,8.777,9036,6.226,9037,3.937,9038,6.226,9039,3.937,9040,6.226,9041,3.937,9042,5.756,9043,6.226,9044,3.937,9045,6.226,9046,3.937,9047,3.937,9048,3.937,9049,6.226,9050,3.937,9051,6.226,9052,3.937,9053,6.226,9054,3.937,9055,5.446,9056,6.226,9057,3.937,9058,2.541,9059,3.937,9060,3.937,9061,3.937,9062,3.444,9063,3.937,9064,3.937,9065,3.937,9066,3.937,9067,6.226,9068,3.444,9069,3.937,9070,3.937,9071,3.937,9072,3.64,9073,3.64,9074,3.937,9075,8.777,9076,8.777,9077,6.226,9078,6.226,9079,5.756,9080,6.226,9081,6.226,9082,6.226,9083,6.226,9084,6.226,9085,6.226,9086,6.226,9087,3.937,9088,3.937,9089,3.937,9090,3.937,9091,3.444,9092,3.64,9093,3.937,9094,3.937,9095,3.937,9096,3.64,9097,3.64,9098,3.937,9099,6.226,9100,6.226,9101,6.226,9102,6.226,9103,5.756,9104,5.756,9105,5.756]],["title/injectables/ExternalToolRequestMapper.html",[105,0.91,9106,5.694]],["body/injectables/ExternalToolRequestMapper.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.063,8,0.787,27,0.488,29,0.96,30,0.001,31,0.704,32,0.164,33,0.572,34,0.709,35,1.432,55,1.951,95,0.14,99,0.696,101,0.007,103,0,104,0,105,0.871,107,1.005,111,2.609,116,3.244,144,1.791,145,2.029,146,2.862,150,2.255,154,2.983,158,2.038,167,1.534,185,1.62,187,0.603,195,2.814,196,2.969,198,2.025,209,3.985,217,1.465,227,1.27,236,3.822,277,1.683,278,3.177,279,3.031,281,3.1,310,3.492,312,3.492,314,3.492,319,2.395,321,3.492,324,3.492,325,3.492,326,3.1,331,2.654,379,0.945,471,1.69,806,3.688,905,3.772,982,2.078,1180,3.449,1750,2.889,1904,1.744,2559,5.462,2580,8.413,2727,2,3015,5.958,5007,6.085,5429,2.729,5530,2.078,5698,2.122,5711,2.969,5736,3.676,5910,3.368,5918,3.492,5926,3.647,5927,3.492,7135,3.904,7207,3.1,7306,3.265,7322,7.938,7332,3.492,7338,3.492,7341,3.492,8614,8.23,8617,8.23,8618,7.586,8717,3.492,8998,6.902,9106,5.455,9107,11.146,9108,6.513,9109,6.513,9110,6.513,9111,6.513,9112,8.015,9113,8.015,9114,8.015,9115,8.015,9116,6.021,9117,6.513,9118,6.513,9119,4.17,9120,7.01,9121,6.513,9122,7.586,9123,4.17,9124,6.513,9125,4.17,9126,12.567,9127,9.827,9128,6.513,9129,4.17,9130,9.827,9131,4.17,9132,4.17,9133,9.059,9134,4.17,9135,8.23,9136,4.17,9137,9.059,9138,4.17,9139,4.17,9140,9.059,9141,4.17,9142,7.586,9143,4.17,9144,9.059,9145,6.021,9146,7.586,9147,4.17,9148,5.261,9149,7.094,9150,6.513,9151,8.23,9152,4.17,9153,7.01,9154,3.855,9155,3.855,9156,3.855,9157,3.855,9158,3.855,9159,3.855,9160,3.855,9161,3.647,9162,3.855,9163,3.647,9164,3.855,9165,3.855,9166,3.855,9167,3.855,9168,3.855,9169,3.855,9170,3.855,9171,10.939,9172,6.513,9173,4.17,9174,4.17,9175,4.17,9176,8.374,9177,6.513,9178,4.17,9179,4.17,9180,4.17,9181,4.17,9182,4.17,9183,4.17,9184,4.17,9185,6.513,9186,4.17,9187,4.17,9188,4.17,9189,4.17,9190,4.17,9191,4.17,9192,4.17,9193,4.17,9194,4.17,9195,4.17,9196,4.17,9197,4.17,9198,4.17,9199,4.17,9200,4.17,9201,4.17,9202,4.17,9203,4.17,9204,3.647,9205,6.513,9206,3.647,9207,4.17]],["title/classes/ExternalToolResponse.html",[0,0.232,9208,5.493]],["body/classes/ExternalToolResponse.html",[0,0.234,2,0.768,3,0.016,4,0.016,5,0.008,7,0.104,27,0.549,29,0.903,30,0.001,31,0.646,32,0.181,33,0.584,34,1.824,47,0.926,55,2.027,95,0.138,101,0.011,103,0.001,104,0.001,127,0.862,150,3.713,154,5.279,165,0.737,236,6.292,347,2.332,364,2.399,375,4.598,376,1.575,467,3.621,618,2.815,1016,2.417,1431,3.922,2043,5.561,2095,2.731,2559,6.094,2590,8.981,5007,5.796,5719,4.574,5736,6.052,5743,8.397,5746,6.021,5752,4.506,5755,5.391,5930,6.021,5931,7.603,5932,6.021,5933,6.021,5934,6.021,5935,6.021,5936,6.021,5938,6.021,5939,6.021,5940,6.021,5941,5.245,5947,6.021,5949,6.021,6196,3.721,7135,6.427,7168,4.81,7172,5.118,9208,9.75,9209,12.435,9210,9.412,9211,8.981,9212,8.981,9213,6.021,9214,6.884,9215,6.884,9216,6.884,9217,6.884,9218,6.884]],["title/injectables/ExternalToolResponseMapper.html",[105,0.91,9219,5.493]],["body/injectables/ExternalToolResponseMapper.html",[0,0.195,3,0.014,4,0.014,5,0.007,7,0.086,8,0.997,27,0.464,29,0.919,30,0.001,31,0.678,32,0.16,33,0.545,34,0.972,35,1.363,95,0.145,101,0.01,103,0,104,0,105,1.104,107,1.377,111,2.53,136,7.168,146,3.921,150,1.978,154,2.617,158,5.504,187,0.826,194,3.739,195,3.856,196,4.068,198,2.775,209,3.878,217,1.382,227,1.217,234,1.724,236,3.352,274,4.997,275,4.997,276,4.615,277,2.306,278,4.353,279,4.153,281,4.247,310,4.784,312,4.784,314,4.784,321,4.784,324,4.784,325,4.784,326,4.247,331,3.637,379,1.295,471,2.316,627,4.122,806,3.361,974,3.387,982,2.848,1180,4.171,1904,2.39,2558,8.185,2559,5.316,2590,9.43,5007,3.088,5429,3.739,5698,2.907,5736,3.224,5743,8.313,7135,3.424,7207,4.247,7269,8.185,7270,7.286,7306,4.474,7325,4.353,7332,4.784,7338,4.784,7341,4.784,8593,4.615,8609,5.281,8717,4.784,8801,4.068,8880,4.353,9107,10.848,9154,5.281,9155,5.281,9156,5.281,9157,5.281,9158,5.281,9159,5.281,9160,5.281,9161,4.997,9162,5.281,9163,4.997,9164,5.281,9165,5.281,9166,5.281,9167,5.281,9168,5.281,9169,5.281,9170,5.281,9171,10.409,9176,7.631,9208,8.576,9211,9.43,9212,9.43,9219,6.668,9220,8.255,9221,8.255,9222,8.255,9223,8.255,9224,8.255,9225,8.255,9226,5.713,9227,11.735,9228,8.255,9229,5.713,9230,8.255,9231,5.713,9232,8.255,9233,5.713,9234,8.255,9235,5.713,9236,6.913,9237,5.713,9238,5.713,9239,5.713,9240,5.713,9241,5.713,9242,4.997,9243,5.713,9244,5.713,9245,5.713,9246,5.713,9247,5.713,9248,5.713,9249,5.713,9250,5.713,9251,5.713,9252,5.713,9253,5.713]],["title/classes/ExternalToolScope.html",[0,0.232,9011,5.947]],["body/classes/ExternalToolScope.html",[0,0.241,2,0.789,3,0.017,4,0.017,5,0.009,7,0.107,8,1.158,27,0.539,29,0.955,30,0.001,31,0.742,32,0.178,33,0.589,35,1.161,47,0.896,95,0.123,101,0.012,103,0.001,104,0.001,111,2.519,144,1.947,145,3.392,148,2.178,154,3.242,165,0.751,227,1.128,277,5.347,319,2.115,347,2.541,404,1.728,529,3.076,596,3.717,958,5.928,2394,6.45,5530,5.422,5782,4.567,5990,6.191,5991,6.473,5992,6.473,5993,6.473,5998,6.473,5999,6.473,6000,4.858,6001,4.777,6002,4.858,6003,4.858,6012,4.777,6013,6.473,6014,4.858,6015,4.777,6016,4.858,6017,4.777,6018,7.342,7135,6.52,7271,4.392,8680,5.04,8992,9.766,9011,8.389,9254,9.591,9255,8.866,9256,9.591,9257,9.591,9258,7.078,9259,8.866,9260,7.078,9261,9.591,9262,7.078,9263,6.543]],["title/classes/ExternalToolSearchListResponse.html",[0,0.232,9264,5.694]],["body/classes/ExternalToolSearchListResponse.html",[0,0.265,2,0.869,3,0.018,4,0.018,5,0.009,7,0.118,27,0.519,29,0.61,30,0.001,31,0.436,32,0.184,33,0.608,55,3.02,56,6.195,59,3.184,70,6.395,95,0.147,101,0.013,103,0.001,104,0.001,127,0.976,145,1.972,163,3.872,165,0.801,200,2.426,209,3.379,364,2.207,376,1.782,404,1.842,467,2.682,469,3.42,596,3.696,1005,7.28,1006,5.442,1007,8.07,1008,6.98,1009,5.824,1011,3.936,1013,5.227,1014,3.714,1015,4.357,1016,2.735,1017,5.442,1018,6.597,1019,5.938,1020,5.098,1021,4.143,1022,5.442,1023,5.442,1025,4.894,1026,4.318,2559,4.632,6020,6.813,9208,10.631,9209,9.451,9264,8.562,9265,7.201,9266,7.201]],["title/classes/ExternalToolSearchParams.html",[0,0.232,9122,5.694]],["body/classes/ExternalToolSearchParams.html",[0,0.382,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,31,0.737,32,0.153,33,0.618,34,1.909,47,0.912,95,0.144,101,0.015,103,0.001,104,0.001,165,0.879,200,3.984,209,4.349,364,2.044,374,2.875,375,4.655,376,2.061,379,2.543,470,5.112,471,4.953,1403,6.22,2559,5.536,3580,4.568,5438,7.344,5530,6.091,8615,9.871,9122,9.397,9267,7.88,9268,11.22,9269,9.009,9270,7.88]],["title/interfaces/ExternalToolSearchQuery.html",[334,0.731,8998,5.181]],["body/interfaces/ExternalToolSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.739,32,0.173,33,0.663,47,0.978,101,0.016,103,0.001,104,0.001,165,0.929,209,3.262,334,1.06,336,2.362,347,2.573,1005,7.028,5530,6.579,7135,7.911,8998,9.039,9271,9.87,9272,8.632]],["title/injectables/ExternalToolService.html",[105,0.91,6100,4.169]],["body/injectables/ExternalToolService.html",[0,0.13,3,0.009,4,0.009,5,0.005,7,0.058,8,0.732,12,2.777,26,2.228,27,0.485,29,0.921,30,0.001,31,0.67,32,0.16,33,0.569,34,1.031,35,1.424,36,2.723,40,2.926,47,0.802,59,1.186,95,0.156,99,0.635,101,0.006,103,0,104,0,105,0.811,107,0.918,111,2.546,112,2.923,127,0.759,139,4.734,145,1.913,154,1.744,158,6.607,187,0.551,192,1.135,198,1.849,200,2.353,201,1.937,206,3.843,209,3.888,216,2.017,217,1.582,221,2.883,227,1.131,234,0.984,284,3.277,305,1.727,444,2.318,450,1.564,529,2.635,701,3.045,784,3.277,839,1.815,1014,2.891,1369,3.304,1467,1.215,1583,2.492,1904,1.593,1933,7.812,2357,4.786,2362,3.487,2412,3.859,2531,2.058,2559,5.423,4588,1.965,5336,8.229,5345,3.075,5462,5.277,5530,4.293,5711,2.711,5851,3.52,6064,3.859,6100,3.717,6365,4.028,6902,5.22,7267,4.507,7270,5.911,8259,2.83,8510,9.121,8528,2.711,8546,3.188,8776,2.075,8838,8.8,8840,8.39,8841,7.213,8843,4.028,8844,2.66,8880,2.901,8998,6.562,9055,6.607,9058,2.457,9236,3.188,9273,6.062,9274,5.302,9275,5.302,9276,6.062,9277,6.062,9278,7.554,9279,5.302,9280,6.062,9281,7.554,9282,3.807,9283,7.639,9284,7.554,9285,6.261,9286,3.807,9287,6.062,9288,3.807,9289,6.062,9290,3.807,9291,6.062,9292,3.807,9293,3.807,9294,6.062,9295,3.807,9296,6.062,9297,3.807,9298,3.807,9299,3.807,9300,6.062,9301,6.983,9302,3.807,9303,9.714,9304,6.062,9305,3.807,9306,3.807,9307,8.744,9308,10.018,9309,3.807,9310,8.613,9311,2.711,9312,3.807,9313,3.807,9314,3.075,9315,3.52,9316,5.604,9317,3.807,9318,3.52,9319,5.604,9320,6.062,9321,3.807,9322,3.807,9323,3.807,9324,3.807,9325,3.807,9326,3.807,9327,3.807,9328,3.807,9329,6.062,9330,6.062,9331,6.062,9332,6.062,9333,3.807,9334,3.807,9335,3.807,9336,3.807,9337,3.33,9338,3.807,9339,3.807,9340,3.807,9341,3.807,9342,2.981,9343,3.807,9344,3.807,9345,3.807,9346,3.807,9347,6.062,9348,3.807,9349,3.807,9350,3.807,9351,3.807,9352,3.807,9353,3.807,9354,3.807,9355,3.807,9356,3.807,9357,3.807,9358,3.807,9359,3.807,9360,3.807,9361,3.807,9362,3.807,9363,3.807,9364,3.807]],["title/injectables/ExternalToolServiceMapper.html",[105,0.91,8841,5.694]],["body/injectables/ExternalToolServiceMapper.html",[0,0.311,3,0.022,4,0.022,5,0.011,7,0.138,8,1.367,27,0.377,29,0.715,30,0.001,31,0.689,32,0.124,33,0.442,35,1.105,47,0.877,95,0.158,101,0.015,103,0.001,104,0.001,105,1.514,107,2.201,187,1.321,209,3.739,227,0.947,277,3.685,1518,6.503,1519,7.376,1904,3.82,2559,5.126,5526,7.15,7134,6.788,7270,8.82,8510,8.621,8841,9.476,8843,6.067,9055,10.753,9079,8.441,9307,9.14,9311,6.503,9365,9.131,9366,11.315,9367,11.315,9368,9.131,9369,9.131,9370,9.131,9371,8.441,9372,9.131,9373,7.987,9374,9.131,9375,9.131,9376,8.441,9377,8.441]],["title/classes/ExternalToolSortingMapper.html",[0,0.232,9009,5.947]],["body/classes/ExternalToolSortingMapper.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,8,1.359,10,3.652,27,0.373,29,0.709,30,0.001,31,0.63,32,0.123,33,0.438,35,1.095,95,0.165,96,2.476,99,1.51,101,0.015,103,0.001,104,0.001,145,2.291,158,4.423,201,4.604,209,3.718,217,1.178,227,0.938,398,2.666,627,3.757,1167,4.973,4428,7.31,5782,5.839,6912,9.984,7271,6.982,8680,6.444,8992,9.423,9009,9.841,9149,10.031,9378,9.049,9379,11.252,9380,11.252,9381,9.049,9382,8.365,9383,9.049,9384,8.365,9385,8.365,9386,10.401,9387,8.365]],["title/injectables/ExternalToolUc.html",[105,0.91,9388,5.694]],["body/injectables/ExternalToolUc.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.925,26,2.932,27,0.483,29,0.918,30,0.001,31,0.656,32,0.159,33,0.567,35,1.37,36,2.785,39,3.155,47,0.651,95,0.15,99,0.861,100,1.727,101,0.009,103,0,104,0,105,1.024,107,1.243,111,2.349,112,2.967,127,0.959,154,2.362,158,6.407,187,0.746,209,3.341,216,1.869,217,1.629,221,3.058,227,1.12,234,1.243,461,2.09,529,3.971,701,3.575,766,2.157,843,5.311,1014,3.652,1884,6.333,1904,2.157,1982,3.091,2559,5.453,2562,5.693,2725,2.336,4052,5.36,5007,2.787,5711,3.673,6049,4.511,6064,4.875,6100,6.939,6902,6.128,8558,11.127,8566,4.038,8567,8.711,8776,6.701,8796,7.08,8814,6.698,8837,8.467,8998,7.703,9120,10.528,9153,8.843,9236,4.319,9274,6.698,9275,6.698,9279,6.698,9303,4.767,9388,6.414,9389,7.658,9390,8.445,9391,7.08,9392,9.135,9393,5.157,9394,7.658,9395,5.157,9396,7.658,9397,5.157,9398,7.658,9399,5.157,9400,5.157,9401,5.157,9402,7.658,9403,5.157,9404,7.658,9405,5.157,9406,10.802,9407,10.802,9408,7.658,9409,5.157,9410,5.157,9411,5.157,9412,7.658,9413,5.157,9414,5.157,9415,7.08,9416,5.157,9417,5.157,9418,5.157,9419,4.319]],["title/classes/ExternalToolUpdateParams.html",[0,0.232,9151,5.694]],["body/classes/ExternalToolUpdateParams.html",[0,0.345,2,0.691,3,0.015,4,0.015,5,0.007,7,0.094,27,0.522,29,0.794,30,0.001,31,0.675,32,0.182,33,0.583,34,1.725,47,0.902,95,0.155,101,0.01,103,0.001,104,0.001,144,2.788,145,1.569,150,3.511,154,5.045,165,0.685,198,3.01,209,4.253,236,5.949,240,1.966,347,2.228,364,2.305,369,2.25,373,5.436,374,1.978,375,4.196,376,1.417,467,3.163,470,4.86,471,4.465,731,3.456,1431,3.53,2384,5.243,2450,3.53,2559,5.83,2565,3.435,2568,4.329,2580,9.384,2583,6.359,2584,6.112,3047,6.229,4008,5.005,4009,3.944,4037,3.944,4038,6.292,5477,5.568,5736,5.722,5825,6.359,5828,5.189,5829,5.189,5830,5.189,5835,3.893,5836,5.671,7135,6.077,7289,4.182,7293,4.253,7322,9.384,7330,6.665,8183,5.812,8184,4.117,8185,5.812,8615,10.395,8619,5.42,8620,5.728,8628,5.728,8630,5.728,9135,9.225,9142,9.729,9151,7.326,9420,5.189,9421,6.196,9422,5.42,9423,6.196,9424,5.42,9425,6.196,9426,6.196,9427,6.196,9428,5.728,9429,6.196,9430,6.196,9431,6.196]],["title/injectables/ExternalToolValidationService.html",[105,0.91,8837,5.694]],["body/injectables/ExternalToolValidationService.html",[0,0.18,3,0.012,4,0.012,5,0.006,7,0.08,8,0.94,27,0.47,29,0.894,30,0.001,31,0.639,32,0.16,33,0.552,34,1.574,35,1.32,36,2.597,47,0.66,72,2.388,95,0.152,101,0.009,103,0,104,0,105,1.041,107,1.271,111,2.615,112,2.846,127,0.975,148,2.396,154,3.565,158,6.713,167,3.405,187,0.762,200,2.882,209,4.412,216,1.89,217,0.686,221,2.641,227,0.547,234,1.852,290,4.567,305,3.25,503,6.995,558,2.529,576,2.975,577,2.975,696,4.811,795,3.232,839,2.514,1127,4.955,1618,4.521,1904,2.205,2559,5.346,3580,3.768,5164,4.415,5362,4.128,6100,6.995,6106,4.259,6111,7.75,8510,8.991,8517,7.786,8519,7.786,8566,4.128,8567,8.773,8776,4.242,8790,4.611,8801,5.543,8814,4.611,8837,6.519,8839,9.883,8856,4.611,8858,4.874,8870,4.874,8880,8.305,8902,4.874,9236,6.519,9301,4.874,9315,4.874,9316,4.874,9318,8.555,9432,7.784,9433,7.784,9434,7.784,9435,7.784,9436,7.784,9437,7.784,9438,7.784,9439,5.272,9440,7.784,9441,7.784,9442,5.272,9443,7.784,9444,5.272,9445,5.272,9446,5.272,9447,7.784,9448,5.272,9449,5.272,9450,7.784,9451,5.272,9452,7.784,9453,5.272,9454,5.272,9455,5.272,9456,7.784,9457,5.272,9458,5.272,9459,5.272,9460,5.272,9461,5.272,9462,5.272,9463,5.272,9464,5.272,9465,5.272]],["title/injectables/ExternalToolVersionService.html",[105,0.91,8838,5.694]],["body/injectables/ExternalToolVersionService.html",[0,0.163,3,0.011,4,0.011,5,0.006,7,0.072,8,0.874,27,0.485,29,0.921,30,0.001,31,0.659,32,0.16,33,0.569,35,1.424,95,0.112,101,0.008,103,0,104,0,105,0.967,107,1.152,111,2.709,136,9.032,148,2.226,158,5.584,187,0.691,194,3.127,209,3.98,217,1.71,227,1.311,288,6.686,298,7.62,302,6.686,347,2.613,905,1.989,1904,1.999,2559,5.456,5411,4.179,5417,4.179,5423,4.001,5424,4.001,8510,9.176,8838,6.057,9466,4.778,9467,7.232,9468,7.232,9469,7.232,9470,7.232,9471,7.232,9472,7.232,9473,7.232,9474,7.232,9475,7.232,9476,13.136,9477,4.778,9478,8.726,9479,7.232,9480,4.778,9481,7.232,9482,13.136,9483,4.778,9484,7.232,9485,4.778,9486,7.232,9487,4.778,9488,7.232,9489,4.778,9490,7.232,9491,4.778,9492,7.232,9493,8.726,9494,4.778,9495,4.778,9496,4.778,9497,7.232,9498,4.778,9499,4.778,9500,4.778,9501,4.778,9502,7.232,9503,7.232,9504,7.232,9505,4.778,9506,4.778,9507,4.778,9508,4.778,9509,4.778,9510,4.778,9511,11.06,9512,4.778,9513,12.044,9514,7.232,9515,4.778,9516,4.778,9517,4.778,9518,4.778,9519,4.778,9520,4.778,9521,4.778,9522,4.778,9523,4.778,9524,4.778,9525,4.778,9526,4.778,9527,4.778,9528,9.732,9529,9.732,9530,9.732,9531,4.778,9532,4.778,9533,4.778]],["title/classes/ExternalUserDto.html",[0,0.232,9534,4.943]],["body/classes/ExternalUserDto.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.547,29,0.674,30,0.001,31,0.482,32,0.18,33,0.665,47,0.972,95,0.111,99,1.436,101,0.014,103,0.001,104,0.001,127,1.078,165,0.854,405,2.905,595,2.881,851,5.706,852,5.706,853,6.176,854,6.005,3110,5.965,4571,6.521,6871,5.102,6872,5.276,7149,6.738,7150,6.951,8420,11.28,8442,7.955,8444,7.955,8445,7.955,9534,9.435,9535,10.901,9536,8.605,9537,8.605,9538,5.717,9539,6.255,9540,5.717,9541,6.255,9542,6.556,9543,6.951]],["title/injectables/FeathersAuthProvider.html",[105,0.91,1890,5.493]],["body/injectables/FeathersAuthProvider.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.012,26,2.953,27,0.487,29,0.925,30,0.001,31,0.662,32,0.161,33,0.571,35,1.374,36,2.76,39,3.278,47,0.809,49,3.857,95,0.138,96,1.595,97,2.521,99,0.973,101,0.01,103,0,104,0,105,1.12,107,1.405,111,1.965,112,2.97,127,0.73,167,2.145,187,0.843,192,1.737,215,1.86,217,1.675,221,2.627,227,1.225,234,0.946,305,1.661,334,0.626,371,1.607,461,2.849,529,2.533,766,4.1,1125,3.456,1167,3.203,1193,3.934,1849,5.695,1890,6.765,1902,5.098,2395,5.652,2644,4.49,4205,3.825,6850,7.854,6857,7.006,7035,7.486,8050,6.088,8403,5.098,8404,8.589,9544,11.253,9545,5.388,9546,8.375,9547,9.061,9548,7.325,9549,8.375,9550,9.061,9551,5.829,9552,8.375,9553,5.829,9554,5.388,9555,5.829,9556,8.375,9557,5.829,9558,8.375,9559,5.829,9560,5.829,9561,5.829,9562,8.375,9563,8.375,9564,8.375,9565,5.829,9566,5.829,9567,5.829,9568,8.375,9569,8.375,9570,6.558,9571,6.765,9572,5.829,9573,4.881,9574,5.829,9575,5.829,9576,5.829,9577,7.325,9578,5.388,9579,5.829,9580,5.829]],["title/injectables/FeathersAuthorizationService.html",[105,0.91,1885,5.694]],["body/injectables/FeathersAuthorizationService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.011,26,2.873,27,0.442,29,0.839,30,0.001,31,0.6,32,0.146,33,0.518,35,1.373,36,2.532,39,3.352,47,0.842,95,0.126,99,0.971,101,0.01,103,0,104,0,105,1.119,107,1.403,112,2.794,127,0.729,187,0.842,215,1.858,217,1.394,221,2.625,227,0.868,234,1.358,247,2.28,264,5.408,305,2.383,380,2.509,381,3.562,461,2.944,538,4.825,770,4.96,843,2.568,1184,6.547,1586,5.091,1849,6.99,1885,7.006,1890,9.54,1905,3.528,2004,5.742,2299,4.702,3281,5.558,6850,8.304,6857,8.078,6881,6.374,7035,9.103,9544,10.486,9581,5.82,9582,9.794,9583,8.366,9584,9.794,9585,5.82,9586,5.82,9587,5.82,9588,5.82,9589,6.374,9590,7.734,9591,8.366,9592,5.82,9593,5.82,9594,5.82,9595,7.734,9596,5.82,9597,5.82,9598,5.82,9599,5.82,9600,5.82,9601,5.82,9602,5.82,9603,3.705,9604,5.82,9605,5.82,9606,7.734,9607,5.82,9608,5.82,9609,5.82,9610,8.366,9611,5.82,9612,5.82]],["title/interfaces/FeathersError.html",[334,0.731,8394,5.694]],["body/interfaces/FeathersError.html",[3,0.024,4,0.024,5,0.012,7,0.151,30,0.001,32,0.189,47,0.98,55,2.752,101,0.017,103,0.001,104,0.001,165,0.935,204,4.049,334,1.071,336,2.385,404,2.151,1142,6.133,8394,9.995,9613,9.967,9614,9.967,9615,12.241]],["title/modules/FeathersModule.html",[425,1.812,1883,5.493]],["body/modules/FeathersModule.html",[0,0.302,3,0.021,4,0.021,5,0.011,30,0.001,95,0.143,101,0.015,103,0.001,104,0.001,187,1.283,367,5.299,379,2.01,425,3.49,427,4.383,428,3.447,429,3.549,430,3.534,431,3.519,432,4.465,433,4.586,442,4.446,443,3.475,444,3.392,535,5.957,704,5.502,766,4.648,1141,6.813,1883,10.953,1905,7.354,2487,7.073,8404,10.233,8409,7.758,9616,8.87,9617,8.87,9618,8.87,9619,8.87,9620,8.701,9621,7.5,9622,8.976,9623,8.976,9624,9.306,9625,9.306,9626,9.719]],["title/injectables/FeathersRosterService.html",[105,0.91,9627,5.181]],["body/injectables/FeathersRosterService.html",[0,0.104,3,0.007,4,0.007,5,0.004,7,0.046,8,0.611,26,2.271,27,0.472,29,0.897,30,0.001,31,0.662,32,0.165,33,0.554,34,0.86,35,1.36,36,2.67,47,0.957,51,3.665,55,0.656,72,2.29,95,0.147,99,0.508,101,0.005,103,0,104,0,105,0.676,107,0.734,111,2.667,112,2.902,127,0.633,130,6.455,139,4.146,140,3.982,158,6.134,163,3.296,167,1.86,187,0.44,188,4.059,190,2.263,197,1.913,200,2.35,201,3.297,216,1.669,217,1.692,221,2.962,227,1.14,234,1.466,247,1.98,284,4.523,305,2.149,316,3.599,318,2.263,334,0.899,347,0.616,379,0.69,427,1.826,461,1.156,574,2.219,688,2.59,738,1.583,766,3.156,1166,3.62,1905,3.064,2210,5.908,2280,1.735,2439,2.966,2468,3.03,2633,3.62,3090,1.317,4205,1.704,4324,4.021,4571,3.532,4572,2.168,4593,1.538,4737,5.243,4748,4.64,5034,2.32,5209,2.023,5462,3.531,5697,4.241,5735,5.271,5799,2.055,5800,3.358,5815,6.26,5875,3.599,5966,2.127,6039,4.817,6057,6.354,6074,4.021,6077,2.213,6091,3.851,6100,5.864,6473,2.936,6476,4.072,6477,2.127,6580,2.213,6629,2.384,7074,5.441,7080,3.412,7271,3.137,7803,3.261,8369,1.845,8528,2.168,8586,2.32,8608,2.213,8776,4.919,8801,5.373,8917,3.599,8920,7.218,8926,5.012,8939,4.233,8955,3.851,9627,3.851,9628,9.403,9629,2.46,9630,4.083,9631,4.083,9632,4.083,9633,3.599,9634,4.083,9635,5.055,9636,5.055,9637,5.055,9638,4.421,9639,5.055,9640,5.055,9641,5.055,9642,5.055,9643,5.055,9644,5.055,9645,5.055,9646,2.46,9647,6.564,9648,3.045,9649,4.083,9650,3.045,9651,3.045,9652,4.083,9653,3.045,9654,4.083,9655,3.045,9656,4.083,9657,8.391,9658,3.045,9659,4.083,9660,3.045,9661,4.083,9662,3.045,9663,4.083,9664,3.045,9665,4.083,9666,3.045,9667,7.839,9668,4.083,9669,3.045,9670,4.083,9671,3.045,9672,4.083,9673,3.045,9674,2.127,9675,2.213,9676,2.46,9677,3.958,9678,5.908,9679,3.958,9680,4.083,9681,4.083,9682,6.761,9683,4.083,9684,2.46,9685,4.083,9686,2.46,9687,2.46,9688,4.083,9689,2.46,9690,2.46,9691,4.083,9692,2.46,9693,2.46,9694,2.46,9695,2.46,9696,2.46,9697,2.46,9698,2.46,9699,2.46,9700,2.46,9701,2.46,9702,5.235,9703,2.46,9704,2.46,9705,2.46,9706,2.46,9707,2.46,9708,2.46,9709,2.46,9710,2.46,9711,2.46,9712,2.46,9713,2.46,9714,4.083,9715,2.46,9716,2.384,9717,2.46,9718,3.358,9719,2.055,9720,2.384,9721,2.384,9722,2.46,9723,4.083,9724,2.46,9725,4.083,9726,2.46,9727,2.384,9728,2.46,9729,2.46,9730,2.46,9731,2.46,9732,2.46,9733,2.46,9734,2.46,9735,2.384,9736,2.384]],["title/interfaces/FeathersService.html",[334,0.731,9737,5.947]],["body/interfaces/FeathersService.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.089,27,0.463,29,0.813,30,0.001,31,0.581,32,0.16,33,0.502,34,1.533,35,1.256,36,2.621,47,0.8,59,3.495,95,0.144,101,0.019,102,5.206,103,0.001,104,0.001,105,1.205,111,1.296,163,1.99,167,2.379,185,5.049,187,0.935,217,1.173,227,0.67,234,1.05,235,6.334,264,4.36,277,3.637,305,1.842,334,0.695,336,1.547,367,5.627,425,1.723,427,2.335,535,6.327,569,4.437,704,3.201,722,2.882,731,3.56,766,5.351,839,3.083,883,3.823,960,4.437,1127,4.115,1141,7.236,1180,3.879,1187,4.297,1188,4.246,1189,4.246,1190,4.492,1191,4.911,1422,4.806,1798,3.649,1905,6.288,2045,6.296,2461,3.918,2487,4.115,3835,5.736,4661,5.923,5183,5.662,6616,3.875,8370,4.925,8404,4.699,8887,4.699,9620,5.062,9621,4.363,9622,5.222,9623,5.222,9624,5.414,9625,5.414,9626,5.654,9737,9.816,9738,10.374,9739,5.654,9740,8.331,9741,12.497,9742,6.465,9743,10.374,9744,8.331,9745,6.465,9746,8.331,9747,6.465,9748,5.654,9749,5.976,9750,5.976,9751,5.976,9752,5.976,9753,5.976,9754,8.331,9755,5.976,9756,5.414,9757,5.062,9758,5.976,9759,5.976,9760,5.976,9761,5.976]],["title/injectables/FeathersServiceProvider.html",[105,0.91,8404,4.943]],["body/injectables/FeathersServiceProvider.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.119,27,0.437,29,0.725,30,0.001,31,0.519,32,0.155,33,0.448,34,1.144,35,0.814,36,2.271,47,0.814,95,0.147,101,0.019,102,5.315,103,0.001,104,0.001,105,1.239,107,1.621,111,1.348,127,0.842,167,2.474,185,4.435,187,0.972,217,1.205,227,0.697,234,1.092,235,5.226,264,4.451,277,3.737,305,1.915,334,0.722,367,6.25,379,1.524,425,1.792,427,3.345,535,6.119,569,6.355,576,3.795,704,4.585,722,2.998,731,3.659,766,5.402,839,3.206,960,4.615,1127,4.28,1141,6.998,1180,3.986,1187,4.416,1188,4.364,1189,4.364,1190,4.616,1191,5.046,1422,4.998,1798,3.795,1905,6.917,2045,6.47,2461,4.075,2487,5.894,3835,5.894,4661,3.549,5183,5.818,6616,4.03,8370,5.123,8404,6.731,8887,4.888,9620,7.251,9621,6.25,9622,7.48,9623,7.48,9624,7.755,9625,7.755,9626,8.099,9737,9.982,9738,9.792,9739,5.881,9740,6.216,9741,11.065,9743,8.56,9744,6.216,9746,6.216,9748,5.881,9749,6.216,9750,6.216,9751,6.216,9752,6.216,9753,8.56,9754,8.56,9755,6.216,9756,5.631,9757,5.265,9758,6.216,9759,6.216,9760,6.216,9761,6.216,9762,9.26,9763,6.724,9764,6.724,9765,6.724]],["title/entities/FederalStateEntity.html",[380,1.445,6464,4.667]],["body/entities/FederalStateEntity.html",[0,0.341,3,0.018,4,0.018,5,0.009,7,0.114,27,0.494,30,0.001,31,0.698,32,0.163,33,0.485,47,0.975,55,1.628,83,3.066,95,0.129,96,2.067,101,0.019,103,0.001,104,0.001,165,0.785,240,3.952,334,0.812,364,2.181,369,2.657,370,3.944,371,3.302,380,2.129,381,2.513,386,5.708,398,2.226,399,3.976,400,3.334,402,3.132,404,1.362,405,2.013,406,2.457,591,3.284,592,3.423,620,4.875,621,5.757,622,4.875,623,5.757,1858,5.248,2095,3.976,2574,5.171,4265,5.381,4271,5.461,4281,3.301,5736,6.757,5752,4.945,6445,10.723,6446,10.897,6447,6.609,6448,6.609,6449,6.609,6450,6.609,6455,8.392,6456,10.472,6457,10.472,6458,6.609,6459,6.609,6460,6.609,6461,6.609,6462,6.609,6463,6.609,6464,6.877,6465,6.609,6466,6.609,6467,5.917,9766,7.556,9767,7.556,9768,7.556,9769,7.556]],["title/injectables/FederalStateRepo.html",[105,0.91,9770,5.694]],["body/injectables/FederalStateRepo.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.215,10,4.059,12,4.606,18,5.082,26,2.132,27,0.529,29,0.978,30,0.001,31,0.733,32,0.17,33,0.604,34,1.293,35,1.511,36,2.676,40,3.668,47,0.804,49,3.957,95,0.154,96,2.079,99,1.268,101,0.013,103,0.001,104,0.001,105,1.345,107,1.832,112,2.826,187,1.099,227,1.043,380,1.615,381,3.346,398,2.239,404,1.812,596,3.66,692,5.111,877,7.676,883,4.267,884,4.739,885,6.306,908,4.659,909,4.715,910,4.659,911,4.715,912,5.411,913,4.659,914,4.715,915,4.212,3675,5.215,6464,6.903,8994,8.423,9002,8.423,9770,8.423,9771,11.274,9772,7.599,9773,7.599,9774,7.599,9775,7.599]],["title/injectables/FederalStateService.html",[105,0.91,9776,5.694]],["body/injectables/FederalStateService.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.134,8,1.344,27,0.459,29,0.872,30,0.001,31,0.68,32,0.151,33,0.538,35,1.076,36,2.386,47,0.866,95,0.156,99,1.484,101,0.015,103,0.001,104,0.001,105,1.488,107,2.143,112,2.677,127,1.113,187,1.286,215,2.837,216,1.644,217,1.157,221,2.058,227,0.922,450,3.652,883,3.771,1852,3.753,1904,3.719,1961,6.211,3813,6.101,4323,5.818,6464,7.637,9770,11.198,9776,9.319,9777,7.95,9778,12.146,9779,8.89,9780,11.127,9781,8.89,9782,8.89,9783,11.127,9784,8.89,9785,7.445,9786,6.773,9787,7.95,9788,8.89]],["title/interfaces/File.html",[5,0.008,334,0.731]],["body/interfaces/File.html",[3,0.022,4,0.022,5,0.015,7,0.139,30,0.001,32,0.155,47,1.016,55,1.985,95,0.118,101,0.022,103,0.001,104,0.001,163,4.076,165,0.891,334,1.385,336,2.205,1342,8.322,1344,6.031,1487,7.21,2145,5.79,6262,7.216,6263,7.216,6264,7.717,6265,7.444,6266,7.444,6267,5.866,6268,7.216,6269,6.438,6270,6.438,6271,6.438,6272,6.438,6273,6.698,6274,6.85,6275,6.562,6276,6.85,6277,6.85]],["title/classes/FileContentBody.html",[0,0.232,5644,4.517]],["body/classes/FileContentBody.html",[0,0.456,2,0.651,3,0.014,4,0.014,5,0.007,7,0.088,9,2.751,27,0.346,30,0.001,31,0.636,32,0.186,47,0.868,83,1.786,95,0.138,99,0.974,101,0.022,103,0,104,0,144,3.123,150,2.021,163,1.796,165,0.657,240,1.852,364,1.527,369,1.295,374,1.863,375,3.737,376,1.335,379,1.9,404,2.046,467,3.593,470,4.75,471,3.976,524,3.357,999,5.336,1000,3.413,1031,1.829,1044,2.8,1770,3.39,2303,4.603,2553,4.57,2584,5.857,2848,2.818,2849,2.525,2889,2.89,3251,5.817,3253,5.817,3259,5.063,3262,2.991,3267,3.265,4009,3.716,4037,3.716,4038,7.047,4096,5.748,5562,6.33,5564,6.33,5566,6.33,5568,6.33,5570,6.33,5604,3.82,5643,6.517,5644,7.123,5645,6.517,5646,6.517,5647,6.517,5835,3.668,5836,6.811,6979,3.878,7039,3.716,8169,8.219,8170,6.733,8171,4.006,8174,6.517,8175,6.517,8176,4.006,8177,6.517,8178,3.579,8179,3.94,8180,6.517,8181,6.517,8182,3.878,8183,3.878,8184,3.878,8185,3.878,8186,4.006,8187,4.006,8188,4.006,8189,4.006,8190,4.006,9789,5.837,9790,5.837]],["title/classes/FileDto.html",[0,0.232,6324,5.055]],["body/classes/FileDto.html",[0,0.309,2,1.011,3,0.021,4,0.021,5,0.016,7,0.137,27,0.529,29,0.71,30,0.001,31,0.718,32,0.174,33,0.439,47,0.914,95,0.145,101,0.015,103,0.001,104,0.001,127,1.136,163,3.772,165,0.883,214,3.552,1026,5.028,1342,7.701,1344,5.936,1487,6.855,2095,3.598,3580,3.693,6170,6.106,6206,6.459,6324,9.801,9791,9.07,9792,11.267,9793,9.07,9794,9.07,9795,9.07,9796,9.07,9797,6.026,9798,9.07,9799,7.933,9800,8.384]],["title/classes/FileDto-1.html",[0,0.193,905,2.354,6324,4.202]],["body/classes/FileDto-1.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,26,2.761,27,0.537,29,0.681,30,0.001,31,0.707,32,0.177,33,0.421,34,2.046,47,0.783,95,0.154,99,1.452,101,0.015,103,0.001,104,0.001,127,1.089,165,0.86,336,2.081,405,2.925,595,2.912,618,3.557,619,4.822,2095,3.451,3579,6.542,3610,5.878,4281,3.799,6170,6.159,6189,6.553,6202,6.811,6208,5.778,6217,5.916,6324,8.159,8358,5.778,9801,8.698,9802,10.577,9803,10.976,9804,8.698,9805,8.698,9806,8.698,9807,6.466,9808,7.607]],["title/classes/FileDtoBuilder.html",[0,0.232,9809,6.286]],["body/classes/FileDtoBuilder.html",[0,0.257,2,0.841,3,0.018,4,0.018,5,0.016,7,0.114,8,1.209,27,0.463,29,0.88,30,0.001,31,0.717,32,0.153,33,0.543,35,1.36,47,0.957,95,0.154,101,0.013,103,0.001,104,0.001,116,3.498,163,4.081,217,1.557,227,1.165,234,1.224,627,4.118,667,4.744,1016,3.943,1342,8.204,1344,6.55,1487,7.158,2022,8.52,2033,5.269,6170,5.541,6324,9.857,9809,9.251,9810,10.464,9811,7.542,9812,10.008,9813,10.008,9814,10.008,9815,7.542,9816,10.008,9817,7.542,9818,10.008,9819,12.451,9820,7.542,9821,6.972,9822,7.542,9823,7.542,9824,7.542,9825,7.542,9826,7.542,9827,6.972,9828,7.542,9829,6.596]],["title/classes/FileElement.html",[0,0.232,2829,4.45]],["body/classes/FileElement.html",[0,0.214,2,0.7,3,0.015,4,0.015,5,0.008,7,0.095,8,1.066,27,0.55,29,0.974,30,0.001,31,0.696,32,0.175,33,0.601,35,1.562,36,1.892,47,0.933,55,1.901,59,1.954,95,0.113,101,0.017,103,0.001,104,0.001,112,2.25,116,2.748,144,3.046,148,3.726,165,0.691,208,2.344,221,1.452,227,1.149,334,0.674,347,2.065,363,5.617,371,1.73,404,1.839,595,2.955,596,3.873,661,3.708,687,2.674,692,3.297,728,3.375,806,2.554,884,4.158,1345,2.489,1790,3.726,1793,6.586,1865,4.019,2557,5.917,2627,2.636,2749,7.822,2752,6.284,2753,6.284,2754,6.284,2755,7.358,2756,6.284,2758,4.168,2759,5.41,2760,6.499,2762,6.165,2763,5.41,2764,6.37,2766,4.383,2767,4.657,2769,6.414,2770,4.383,2774,4.383,2776,4.168,2804,5.348,2829,7.249,3251,6.567,3253,6.567,3945,4.56,3946,4.56,3947,4.56,3956,3.942,8634,4.467,8636,5.799,8639,5.487,8641,5.487,9830,10.789,9831,6.273,9832,6.273,9833,6.273,9834,6.273,9835,6.273,9836,5.799,9837,6.273,9838,5.799,9839,8.157,9840,5.799,9841,8.157,9842,5.799,9843,5.799,9844,5.799,9845,5.487,9846,5.799]],["title/classes/FileElementContent.html",[0,0.232,9847,5.694]],["body/classes/FileElementContent.html",[0,0.361,2,0.92,3,0.02,4,0.02,5,0.01,7,0.125,27,0.484,29,0.646,30,0.001,31,0.462,32,0.178,33,0.399,34,1.996,47,0.914,95,0.151,99,1.377,101,0.018,103,0.001,104,0.001,127,1.47,165,0.831,364,1.933,376,1.888,467,3.582,475,4.034,618,3.375,966,4.199,1031,2.586,2303,4.756,2578,3.679,2884,4.389,2885,4.389,2889,4.086,3251,7.598,3253,7.598,3436,5.765,3448,5.06,3694,6.957,3698,6.165,3702,5.482,3704,5.482,3977,8.087,4096,6.291,5562,5.325,8650,6.666,9847,10.985,9848,11.451,9849,7.218,9850,7.629,9851,6.911,9852,6.911]],["title/classes/FileElementContentBody.html",[0,0.232,8174,4.517]],["body/classes/FileElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.905,5564,6.314,5566,6.314,5568,6.314,5570,6.314,5604,3.804,5643,6.502,5644,7.109,5645,6.502,5646,6.502,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,7.109,8175,6.502,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,6.502,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,9853,5.812,9854,5.812]],["title/entities/FileElementNode.html",[380,1.445,3180,5.324]],["body/entities/FileElementNode.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.129,27,0.448,30,0.001,32,0.148,47,0.945,95,0.161,96,2.344,101,0.018,103,0.001,104,0.001,165,0.852,208,3.201,217,1.115,227,0.888,240,4.112,334,0.921,364,1.98,380,2.31,381,2.85,398,2.524,404,1.959,405,2.283,617,4.75,1790,5.042,2553,5.09,2557,5.314,2577,4.836,2578,3.82,3143,5.695,3155,6.516,3180,8.513,3222,5.253,3243,9.509,3251,7.448,3253,7.448,3598,6.666,3619,5.317,4059,5.454,4061,5.454,9851,7.176,9852,7.176,9855,11.04,9856,7.921,9857,7.494,9858,9.509,9859,7.921,9860,7.921,9861,7.921]],["title/interfaces/FileElementNodeProps.html",[334,0.731,9858,5.947]],["body/interfaces/FileElementNodeProps.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.149,47,0.974,95,0.162,96,2.384,101,0.018,103,0.001,104,0.001,165,0.861,208,3.256,217,1.134,227,0.904,240,3.818,334,0.936,336,2.086,380,2.335,398,2.568,404,2.169,405,2.323,617,4.832,1790,5.083,2553,3.715,2557,5.372,2577,4.919,2578,3.886,3143,5.757,3155,6.587,3180,6.826,3222,5.344,3243,9.613,3251,7.726,3253,7.726,3598,7.381,3619,5.409,4059,5.548,4061,5.548,9851,7.3,9852,7.3,9855,8.058,9858,10.529,9859,8.058,9860,8.058,9861,8.058]],["title/interfaces/FileElementProps.html",[334,0.731,9845,5.947]],["body/interfaces/FileElementProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.161,36,1.799,47,0.984,95,0.138,101,0.02,103,0.001,104,0.001,112,1.849,144,2.95,148,2.582,165,0.84,208,3.134,221,1.942,227,1.292,334,0.901,336,2.008,347,1.697,371,2.314,404,2.131,687,3.576,728,4.102,806,3.416,1345,3.329,1865,4.886,2627,3.526,2749,6.502,2755,5.574,2759,5.144,2760,6.294,2763,5.144,2764,6.17,2804,7.167,2829,7.74,3251,7.637,3253,7.637,3956,5.271,8634,5.974,9830,7.756,9839,9.917,9840,7.756,9841,9.917,9842,7.756,9843,7.756,9844,7.756,9845,9.383,9846,7.756]],["title/classes/FileElementResponse.html",[0,0.232,3977,5.181]],["body/classes/FileElementResponse.html",[0,0.349,2,0.872,3,0.018,4,0.018,5,0.009,7,0.118,27,0.519,29,0.613,30,0.001,31,0.438,32,0.185,33,0.378,34,2.143,47,0.865,95,0.147,99,1.305,101,0.017,103,0.001,104,0.001,127,1.432,165,0.803,364,2.21,376,1.789,467,3.546,475,3.822,618,3.198,966,3.979,1031,2.45,2303,5.107,2578,3.487,2883,5.118,2884,5.452,2885,5.452,2888,4.739,2889,5.075,3251,6.779,3253,6.779,3436,5.463,3448,4.795,3694,7.47,3698,6.641,3702,5.195,3704,5.195,3977,9.599,4096,6.754,5562,6.614,9847,10.163,9848,11.951,9851,6.549,9852,6.549,9862,6.84,9863,6.84,9864,6.84,9865,6.84,9866,6.84]],["title/classes/FileElementResponseMapper.html",[0,0.232,5583,5.947]],["body/classes/FileElementResponseMapper.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.498,29,0.797,30,0.001,31,0.57,32,0.164,33,0.492,34,1.315,35,1.376,95,0.146,99,1.29,100,2.588,101,0.013,103,0.001,104,0.001,111,2.279,116,2.408,165,0.797,214,3.207,217,1.006,227,1.179,234,1.961,347,2.057,591,3.36,627,3.954,806,3.147,974,4.583,975,5.639,978,6.244,980,5.889,1750,4.512,2051,4.403,2303,3.133,2547,8.452,2550,7.965,2551,7.965,2553,5.682,2554,7.75,2829,8.725,3251,4.583,3253,4.583,3694,4.583,3698,5.908,3715,5.504,3977,9.204,4096,4.144,5183,7.144,5562,4.988,5581,6.053,5583,11.49,8672,9.204,8673,6.761,8674,6.244,8676,6.244,8677,6.244,8678,6.244,9847,8.519,9867,12.551,9868,11.369,9869,7.73,9870,7.73]],["title/entities/FileEntity.html",[380,1.445,7953,5.181]],["body/entities/FileEntity.html",[0,0.12,3,0.008,4,0.008,5,0.01,7,0.154,26,2.385,27,0.528,30,0.001,31,0.507,32,0.176,33,0.627,47,0.919,49,4.309,55,2.085,83,2.961,95,0.136,96,1.559,97,1.524,99,0.588,101,0.01,103,0,104,0,111,0.707,116,2.234,144,2.488,145,3.018,148,1.754,165,0.446,204,1.196,217,0.459,227,1.004,234,1.778,240,4.063,305,1.004,319,2.704,334,0.379,347,1.451,359,1.987,364,2.333,369,2.948,370,4.297,371,3.172,380,1.211,381,1.172,386,6.04,398,1.038,399,2.261,404,0.635,405,0.939,406,1.146,500,5.655,573,2.685,591,1.532,592,1.597,620,2.274,621,4.341,622,2.274,623,4.341,701,1.246,775,5.052,905,1.467,957,1.954,1015,5.059,1031,1.786,1843,1.67,1849,4.135,1858,2.985,1904,1.474,2035,1.905,2095,1.398,2578,1.571,2632,4.691,3339,2.859,3578,2.941,3579,2.803,3610,2.785,4262,4.772,4265,4.058,4271,3.909,4272,2.136,4275,2.951,4280,2.951,4281,1.539,4333,2.112,4588,1.819,4771,6.892,4989,2.61,5007,1.905,6198,2.462,6216,3.159,6270,6.32,6491,2.951,6751,2.379,6854,1.905,7047,2.562,7948,6.724,7950,6.9,7953,4.341,8004,7.206,9808,3.082,9871,3.258,9872,5.465,9873,6.631,9874,6.631,9875,5.108,9876,6.277,9877,7.616,9878,7.206,9879,5.989,9880,6.9,9881,7.616,9882,7.616,9883,7.616,9884,3.524,9885,3.524,9886,7.616,9887,3.524,9888,4.236,9889,3.524,9890,3.524,9891,3.524,9892,3.524,9893,3.524,9894,3.524,9895,3.524,9896,3.524,9897,7.307,9898,3.524,9899,7.206,9900,3.524,9901,8.228,9902,3.524,9903,3.524,9904,3.524,9905,3.524,9906,5.267,9907,3.524,9908,3.524,9909,3.524,9910,3.524,9911,5.267,9912,3.524,9913,2.462,9914,2.62,9915,3.258,9916,3.258,9917,6.274,9918,5.267,9919,3.258,9920,8.362,9921,3.258,9922,3.258,9923,2.685,9924,3.258,9925,2.51,9926,6.631,9927,4.341,9928,5.267,9929,5.267,9930,5.267,9931,3.258,9932,3.258,9933,3.258,9934,4.236,9935,3.258,9936,3.258,9937,3.258,9938,5.794,9939,6.631,9940,3.258,9941,3.258,9942,2.951,9943,5.267,9944,3.258,9945,3.258,9946,3.258,9947,3.258,9948,3.258,9949,3.258,9950,5.267,9951,3.258,9952,5.267,9953,2.685,9954,5.267,9955,3.258,9956,2.562,9957,2.562,9958,3.258,9959,3.258,9960,3.258,9961,3.258,9962,2.685,9963,2.685,9964,2.76,9965,3.258,9966,3.258,9967,3.258,9968,5.267,9969,3.258]],["title/interfaces/FileEntityProps.html",[334,0.731,9917,5.947]],["body/interfaces/FileEntityProps.html",[0,0.129,3,0.009,4,0.009,5,0.01,7,0.159,26,2.713,30,0.001,31,0.561,32,0.182,33,0.662,47,0.96,49,3.697,55,2.348,83,3.597,95,0.14,96,1.656,97,1.644,99,0.634,101,0.01,103,0,104,0,111,0.762,116,2.35,145,3.076,148,1.863,165,0.474,204,1.289,217,0.495,227,1.038,234,1.77,240,4.027,305,1.083,334,0.408,336,0.909,347,2.124,359,1.325,369,2.763,370,4.144,371,2.76,380,1.286,398,1.12,399,2.402,404,0.685,405,1.013,406,1.236,500,6.449,573,2.895,591,3.74,592,3.898,620,2.452,621,4.612,622,2.452,623,4.612,701,1.344,775,4.626,905,1.582,957,2.107,1015,5.598,1031,1.897,1843,1.801,1849,4.715,1858,1.99,1904,1.59,2035,2.054,2095,1.508,2578,1.694,2632,4.61,3339,1.907,3578,3.124,3579,2.978,3610,4.593,4271,4.111,4272,2.303,4275,3.182,4280,3.182,4281,1.66,4333,2.278,4588,1.961,4989,2.772,5007,2.054,6198,2.655,6216,5.209,6270,6.994,6854,2.054,7047,2.762,7948,7.441,7950,7.869,7953,2.895,8004,8.218,9808,3.324,9871,3.513,9872,2.895,9873,3.513,9874,3.513,9875,2.706,9876,7.159,9877,8.686,9878,8.218,9879,6.83,9880,7.869,9881,8.686,9882,8.686,9883,8.686,9886,9.254,9888,2.825,9897,8.086,9899,8.218,9901,8.482,9906,3.513,9911,3.513,9913,2.655,9914,2.825,9915,3.513,9916,3.513,9917,7.526,9918,8.686,9919,3.513,9920,8.686,9921,3.513,9922,3.513,9923,2.895,9924,3.513,9925,2.706,9926,6.974,9927,4.612,9928,5.596,9929,5.596,9930,5.596,9931,3.513,9932,3.513,9933,3.513,9934,4.5,9935,3.513,9936,3.513,9937,3.513,9938,6.094,9939,6.974,9940,3.513,9941,3.513,9942,3.182,9943,5.596,9944,3.513,9945,3.513,9946,3.513,9947,3.513,9948,3.513,9949,3.513,9950,5.596,9951,3.513,9952,5.596,9953,2.895,9954,5.596,9955,3.513,9956,2.762,9957,2.762,9958,3.513,9959,3.513,9960,3.513,9961,3.513,9962,2.895,9963,2.895,9964,2.976,9965,3.513,9966,3.513,9967,3.513,9968,5.596,9969,3.513]],["title/classes/FileParamBuilder.html",[0,0.232,6309,5.947]],["body/classes/FileParamBuilder.html",[0,0.31,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,26,2.72,27,0.375,29,0.712,30,0.001,31,0.509,32,0.124,33,0.44,35,1.1,95,0.158,99,1.517,101,0.015,103,0.001,104,0.001,217,1.468,227,0.943,336,2.175,627,3.765,667,5.348,3339,6.157,3578,4.691,3579,6.49,3610,4.443,4205,3.803,6170,5.226,6217,5.551,6280,8.403,6282,9.608,6283,8.403,6286,10.43,6309,9.869,9970,10.43,9971,11.283,9972,11.861,9973,7.613,9974,9.09,9975,9.09,9976,9.09]],["title/classes/FileParams.html",[0,0.232,6235,4.667]],["body/classes/FileParams.html",[0,0.458,2,0.728,3,0.015,4,0.021,5,0.014,7,0.099,26,2.599,27,0.269,30,0.001,32,0.161,39,1.758,47,0.972,95,0.161,99,1.089,101,0.022,103,0.001,104,0.001,150,2.26,165,0.711,204,2.215,214,2.058,334,0.701,347,1.835,364,1.189,369,1.449,373,4.864,374,2.083,375,4.293,376,1.493,377,6.027,379,1.479,380,1.387,467,3.643,469,2.866,470,5.128,471,4.568,565,4.522,1000,4.991,1001,6.754,1011,3.298,1031,3.268,1044,3.132,1180,2.809,1270,3.87,1330,5.775,1331,4.272,1332,4.272,2702,4.699,2889,5.164,3610,3.191,4205,2.2,5836,6.624,6170,4.202,6183,5.938,6189,6.141,6217,3.211,6220,4.48,6221,4.56,6222,4.56,6225,7.868,6228,4.56,6229,8.144,6230,7.873,6231,7.873,6232,4.56,6233,4.48,6234,7.038,6235,6.227,6236,4.56,6237,4.406,6238,6.123,6239,4.337,6240,4.406,6241,4.48,6242,4.406,6243,4.406,6244,4.155,6245,4.56,6246,4.56,6247,4.56,6248,4.155,6249,4.155,6250,4.272,6251,4.337,6252,4.56,9977,6.528,9978,6.528]],["title/classes/FilePermissionEntity.html",[0,0.232,9897,5.493]],["body/classes/FilePermissionEntity.html",[0,0.24,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,10,4.699,26,2.028,27,0.529,29,0.552,30,0.001,31,0.395,32,0.148,33,0.341,49,4.272,95,0.15,96,2.617,97,3.051,99,1.177,101,0.016,103,0.001,104,0.001,127,0.883,144,3.202,145,2.948,165,0.749,234,1.145,240,4.246,319,3.48,334,0.758,347,2.355,364,2.286,369,2.899,370,3.152,371,3.211,386,4.018,398,2.078,405,2.55,595,2.362,883,4.94,1031,2.998,1804,7.057,1805,7.736,1904,2.95,2574,4.938,6491,5.907,9897,7.729,9979,10.938,9980,6.52,9981,10.184,9982,10.764,9983,10.184,9984,9.568,9985,7.053,9986,7.053,9987,7.053,9988,10.764,9989,7.053,9990,7.053,9991,6.52,9992,6.52,9993,6.52,9994,6.52,9995,8.369,9996,6.169,9997,8.369,9998,6.169,9999,8.369,10000,6.169,10001,8.369,10002,6.169]],["title/interfaces/FilePermissionEntityProps.html",[334,0.731,9983,5.947]],["body/interfaces/FilePermissionEntityProps.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,10,5.019,26,2.533,30,0.001,32,0.174,33,0.641,49,3.928,95,0.153,96,2.731,97,3.25,99,1.254,101,0.017,103,0.001,104,0.001,145,3.025,165,0.782,234,1.22,240,4.055,334,0.807,336,1.798,347,2.781,369,2.651,370,3.289,371,2.753,398,2.214,405,2.002,883,5.275,1031,3.128,1804,7.537,1805,8.261,1904,3.143,2574,5.152,9897,6.069,9979,6.292,9980,6.946,9981,10.876,9982,11.495,9983,9.806,9988,11.495,9991,6.946,9992,6.946,9993,6.946,9994,6.946,9995,8.732,9996,6.572,9997,8.732,9998,6.572,9999,8.732,10000,6.572,10001,8.732,10002,6.572]],["title/entities/FileRecord.html",[380,1.445,6188,4.075]],["body/entities/FileRecord.html",[0,0.27,3,0.008,4,0.008,5,0.008,7,0.15,26,2.485,27,0.454,30,0.001,31,0.58,32,0.153,33,0.384,34,0.921,39,0.891,47,0.86,49,4.215,55,1.48,83,3.035,95,0.133,96,1.481,97,1.432,99,0.552,101,0.017,103,0,104,0,116,3.879,145,2.512,148,2.443,165,0.538,187,0.479,188,1.223,192,2.048,204,2.331,217,1.525,227,1.339,234,1.833,240,3.872,247,1.297,305,0.943,334,0.738,347,2.007,359,2.768,364,2.007,369,2.202,370,2.884,371,1.493,379,0.75,380,2.199,381,1.101,398,0.975,399,2.148,402,1.372,404,0.596,405,1.443,406,1.077,461,0.757,564,2.519,574,2.377,576,3.056,591,1.439,592,1.499,701,2.429,770,3.21,775,4.213,905,1.378,938,3.936,946,3.544,1015,5.257,1031,3.109,1180,2.33,1185,2.357,1255,3.655,1350,3.856,1487,5.257,1750,2.402,1852,2.286,1945,3.716,2037,1.942,2038,3.783,2095,3.15,2268,1.886,2440,3.085,2574,2.794,2632,3.656,2643,1.923,2649,1.476,2659,1.551,2849,1.432,3090,1.432,3143,1.734,3339,2.717,3353,2.272,3364,3.056,3610,4.849,3720,1.868,3814,4.025,4205,3.344,4215,2.522,4217,2.08,4265,2.357,4271,2.951,4281,1.446,4282,1.963,4748,1.835,4771,5.235,5043,1.868,5055,1.904,6170,5.227,6188,4.758,6189,4.771,6190,3.856,6191,5.196,6198,2.312,6206,2.357,6208,2.199,6210,4.995,6216,3.809,6217,5.27,6218,5.196,6511,2.006,6739,2.592,6740,4.025,6854,2.926,9807,2.461,9872,5.235,9875,5.653,9879,4.995,9913,2.312,9923,2.522,9927,2.522,9953,4.125,9956,2.406,9957,2.406,9962,2.522,9963,2.522,10003,2.674,10004,4.24,10005,6.216,10006,5.55,10007,6.216,10008,3.31,10009,7.072,10010,3.31,10011,3.31,10012,3.31,10013,3.31,10014,3.06,10015,3.06,10016,3.31,10017,3.31,10018,3.31,10019,3.31,10020,3.31,10021,6.508,10022,3.31,10023,3.31,10024,2.674,10025,2.522,10026,4.24,10027,2.461,10028,3.936,10029,3.936,10030,3.936,10031,2.08,10032,4.374,10033,4.374,10034,4.374,10035,4.374,10036,4.374,10037,4.374,10038,4.24,10039,5.358,10040,4.374,10041,2.522,10042,4.025,10043,2.461,10044,4.125,10045,2.522,10046,4.125,10047,5.38,10048,2.357,10049,2.592,10050,2.406,10051,2.406,10052,2.674,10053,2.674,10054,2.522,10055,2.461,10056,2.522,10057,2.674,10058,2.674,10059,2.674,10060,2.674,10061,2.674,10062,2.674,10063,2.674,10064,2.674,10065,2.674,10066,2.674,10067,7.592,10068,2.674,10069,2.674,10070,4.374,10071,2.674,10072,2.674,10073,4.374,10074,4.374,10075,4.374,10076,2.674,10077,2.674,10078,2.674,10079,2.674,10080,2.674,10081,2.674,10082,2.674,10083,4.374,10084,5.55,10085,2.592,10086,2.674,10087,4.374,10088,2.592,10089,2.674,10090,4.374,10091,2.674,10092,5.55,10093,5.55,10094,2.592,10095,5.55,10096,2.674,10097,2.674,10098,2.674,10099,2.674,10100,2.674,10101,2.674,10102,2.674,10103,2.592,10104,2.674,10105,2.674,10106,2.674,10107,2.674,10108,2.674,10109,2.674,10110,2.674,10111,2.674,10112,2.674]],["title/classes/FileRecordFactory.html",[0,0.232,10113,6.286]],["body/classes/FileRecordFactory.html",[0,0.165,2,0.539,3,0.011,4,0.011,5,0.009,7,0.073,8,0.882,27,0.534,29,1.014,30,0.001,31,0.701,32,0.179,33,0.595,34,1.495,35,1.463,47,0.52,49,1.902,55,2.471,59,3.273,95,0.135,101,0.008,103,0,104,0,127,0.606,138,3.188,144,3.247,148,1.488,165,0.572,185,4.862,216,1.349,217,1.144,227,0.757,234,1.706,319,3.529,359,2.544,366,2.704,379,1.992,380,2.233,381,2.428,404,1.315,538,3.288,596,3.912,627,2.239,660,7.234,661,4.643,662,5.526,665,4.119,666,5.526,667,5.728,668,4.119,669,4.119,670,4.119,671,4.046,672,4.504,673,4.961,674,6.489,675,5.825,676,7.06,677,2.755,682,2.729,683,4.119,684,2.755,685,5.167,686,5.335,687,4.173,688,5.017,689,4.081,690,2.729,691,2.572,692,4.128,693,2.657,694,2.613,695,2.729,696,5.09,697,2.755,698,4.873,699,2.729,700,7.155,701,4.175,702,6.664,703,2.755,704,4.352,705,2.729,706,2.755,707,2.729,708,2.755,709,2.729,710,3.078,711,2.867,712,2.729,713,6.125,714,2.755,715,2.729,716,4.119,717,3.852,718,4.119,719,2.755,720,2.635,721,2.613,722,2.156,723,2.729,724,2.729,725,2.729,726,2.755,727,2.755,728,1.849,729,2.729,730,2.755,731,2.883,732,2.729,733,2.755,734,2.755,735,2.809,736,2.867,737,2.898,1015,2.704,1180,2.081,1344,3.165,1358,3.078,1487,2.704,3610,2.364,4121,5.753,4205,1.63,6188,2.898,6189,2.635,6216,2.68,6217,2.379,6218,3.165,6741,3.786,7018,4.229,8358,3.212,9827,4.47,9879,3.515,10021,5.425,10046,3.684,10113,8.126,10114,4.835,10115,9.791,10116,4.835,10117,4.229,10118,6.746,10119,4.47,10120,4.835,10121,4.835,10122,4.835]],["title/classes/FileRecordListResponse.html",[0,0.232,6219,5.055]],["body/classes/FileRecordListResponse.html",[0,0.37,2,0.669,3,0.014,4,0.014,5,0.007,7,0.091,27,0.473,29,0.47,30,0.001,31,0.558,32,0.176,33,0.555,34,1.455,47,0.911,55,2.972,56,6.022,59,2.664,70,6.216,83,1.836,95,0.139,101,0.018,103,0,104,0,127,0.752,145,1.52,150,2.078,163,3.779,165,0.67,364,1.978,375,3.795,376,1.373,380,1.275,404,1.795,467,3.552,469,2.635,596,3.313,618,3.497,1007,7.696,1008,6.636,1009,6.186,1011,3.033,1013,4.563,1014,2.862,1015,4.783,1016,2.107,1017,4.194,1018,5.518,1019,4.968,1020,3.929,1021,3.193,1022,4.194,1023,4.194,1025,5.374,1026,4.741,1031,3.122,1356,4.849,1360,4.7,1487,3.357,2095,3.393,2745,6.342,2889,4.934,3578,3.098,3610,2.934,6170,3.961,6173,3.988,6178,4.849,6179,4.849,6180,4.849,6181,4.849,6182,4.7,6183,5.598,6184,5.027,6185,8.988,6188,5.126,6189,5.918,6190,8.174,6191,6.521,6192,9.128,6193,5.027,6194,4.849,6195,5.027,6196,3.244,6197,5.027,6198,4.194,6199,5.027,6200,5.027,6201,5.027,6202,4.7,6203,4.849,6204,5.027,6205,5.027,6206,4.274,6207,4.849,6208,3.988,6209,4.849,6210,4.363,6211,5.027,6212,5.027,6213,4.849,6214,5.027,6215,4.462,6216,3.327,6217,2.953,6218,3.929,6219,6.358,10123,6.002,10124,6.002]],["title/classes/FileRecordMapper.html",[0,0.232,10125,6.286]],["body/classes/FileRecordMapper.html",[0,0.245,2,0.802,3,0.017,4,0.017,5,0.009,7,0.109,8,1.171,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,35,1.328,55,2.863,56,5.631,59,3.02,70,5.812,95,0.124,101,0.012,103,0.001,104,0.001,145,1.821,217,1.528,227,1.137,234,1.781,380,1.528,564,2.637,627,4.079,982,3.585,1008,6.344,1016,3.404,1330,6.171,1750,3.19,6170,5.436,6188,7.863,6191,4.707,6192,9.109,6219,8.153,6239,8.141,9810,10.266,10039,4.854,10048,6.904,10085,5.632,10088,7.592,10094,5.632,10125,8.962,10126,7.192,10127,9.695,10128,10.138,10129,8.962,10130,9.695,10131,7.192,10132,9.83,10133,6.648,10134,7.192,10135,8.962,10136,7.192,10137,6.648,10138,6.648,10139,6.29,10140,7.192,10141,6.648,10142,5.025,10143,9.695,10144,10.967,10145,10.967,10146,7.192,10147,7.192,10148,7.192,10149,10.967,10150,7.192]],["title/classes/FileRecordParams.html",[0,0.232,6225,4.517]],["body/classes/FileRecordParams.html",[0,0.455,2,0.701,3,0.015,4,0.021,5,0.011,7,0.095,26,2.693,27,0.421,30,0.001,32,0.169,39,1.692,47,0.952,95,0.16,99,1.049,101,0.022,103,0.001,104,0.001,150,2.176,165,0.692,204,2.132,214,1.981,334,0.675,347,1.787,364,1.861,369,1.394,373,4.736,374,2.005,375,4.222,376,1.437,377,5.869,379,1.424,380,1.335,467,3.626,469,2.759,470,5.066,471,4.493,565,3.132,1000,4.931,1001,6.643,1031,3.201,1044,3.014,1180,2.704,1270,3.725,1330,5.623,1331,4.112,1332,4.112,2702,4.603,2888,3.808,2889,5.488,3610,4.994,4205,3.443,5821,7.136,5836,6.531,6170,5.133,6183,7.254,6189,6.6,6217,5.026,6220,4.312,6221,4.39,6222,4.39,6225,8.046,6228,4.39,6229,8.046,6230,7.744,6231,7.744,6232,4.39,6233,4.312,6234,6.895,6235,4.312,6236,4.39,6237,4.241,6238,5.962,6239,4.174,6240,4.241,6241,4.312,6242,4.241,6243,4.241,6244,4,6245,4.39,6246,4.39,6247,4.39,6248,4,6249,4,6250,4.112,6251,4.174,6252,4.39,10151,6.283,10152,6.283,10153,6.283,10154,6.283]],["title/injectables/FileRecordRepo.html",[105,0.91,10155,5.947]],["body/injectables/FileRecordRepo.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.069,8,0.84,10,2.808,12,3.186,18,3.515,26,2.88,27,0.522,29,0.979,30,0.001,31,0.7,32,0.17,33,0.604,34,1.613,35,1.513,36,2.848,40,2.192,47,0.603,49,2.737,56,2.179,58,2.93,59,2.953,95,0.131,98,2.693,99,0.758,101,0.008,103,0,104,0,105,0.931,107,1.095,111,2.162,112,3.046,187,0.657,217,1.694,221,2.68,227,1.231,234,1.751,277,4.889,351,2.279,380,1.478,381,2.314,404,1.254,450,1.865,591,1.974,596,2.892,692,4.603,701,4.603,877,6.585,883,2.952,884,3.278,885,4.273,908,2.784,909,2.818,910,2.784,911,2.818,912,3.234,913,2.784,914,2.818,915,2.517,964,3.117,1646,2.54,1750,4.783,1941,2.891,2144,3.927,2439,2.665,3610,5.486,4205,3.195,4431,2.853,4435,3.065,4661,2.397,5880,4.041,5882,4.861,6170,5.611,6188,7.385,6612,2.722,6902,7.671,6931,3.301,6932,3.301,6974,3.556,10048,4.955,10155,6.085,10156,4.541,10157,8.458,10158,6.957,10159,8.458,10160,8.458,10161,6.957,10162,6.432,10163,6.957,10164,6.957,10165,4.541,10166,9.816,10167,4.541,10168,6.957,10169,4.541,10170,4.541,10171,4.541,10172,4.541,10173,4.541,10174,6.957,10175,4.541,10176,6.432,10177,4.541,10178,6.957,10179,4.541,10180,6.957,10181,4.541,10182,4.541,10183,4.541,10184,8.458,10185,4.541,10186,4.541,10187,8.458,10188,4.541,10189,4.541,10190,4.198,10191,4.541,10192,4.541,10193,4.541,10194,4.541]],["title/classes/FileRecordResponse.html",[0,0.232,6192,5.055]],["body/classes/FileRecordResponse.html",[0,0.356,2,0.616,3,0.013,4,0.013,5,0.007,7,0.083,27,0.537,29,0.433,30,0.001,31,0.622,32,0.18,33,0.46,34,1.778,47,0.953,55,2.644,56,5.014,70,5.175,83,2.465,95,0.134,101,0.017,103,0,104,0,127,0.692,150,3.293,163,3.216,165,0.631,364,2.348,375,3.981,376,1.264,380,1.174,404,1.452,467,3.611,469,2.426,618,3.295,1007,5.83,1008,4.354,1009,5.417,1015,5.318,1025,5.062,1026,4.466,1031,2.98,1356,4.463,1360,4.326,1487,5.318,2095,3.196,2742,4.016,2745,6.053,2888,5.763,2889,5.744,3578,2.851,3610,4.648,6170,6.094,6173,3.671,6178,4.463,6179,4.463,6180,4.463,6181,4.463,6182,4.326,6183,8.612,6184,4.627,6185,8.701,6188,6.66,6189,6.527,6190,9.057,6191,7.272,6192,8.26,6193,6.747,6194,4.463,6195,4.627,6196,2.986,6197,4.627,6198,3.86,6199,4.627,6200,4.627,6201,4.627,6202,4.326,6203,4.463,6204,4.627,6205,4.627,6206,3.934,6207,4.463,6208,3.671,6209,4.463,6210,4.016,6211,4.627,6212,4.627,6213,4.463,6214,6.747,6215,7.069,6216,5.271,6217,4.678,6218,6.224,6219,4.107,10195,5.525,10196,5.525,10197,5.525,10198,5.525,10199,5.525,10200,5.525,10201,5.525,10202,5.525,10203,5.525,10204,5.525,10205,5.525,10206,5.525]],["title/classes/FileRecordScope.html",[0,0.232,10166,5.947]],["body/classes/FileRecordScope.html",[0,0.215,2,0.704,3,0.015,4,0.015,5,0.008,7,0.095,8,1.071,26,2.776,27,0.54,29,0.976,30,0.001,31,0.698,32,0.176,33,0.602,34,1.074,35,1.508,47,0.73,49,2.484,95,0.143,96,1.727,97,2.73,99,1.054,101,0.011,103,0.001,104,0.001,111,2.432,144,2.438,148,1.943,165,0.694,167,3.261,217,0.822,227,1.213,234,1.439,277,5.216,319,2.649,347,2.072,351,4.448,369,1.967,380,1.341,404,1.597,450,2.593,529,3.852,596,3.568,1350,4.495,2394,6.073,3610,3.086,4205,2.128,4465,5.836,5991,5.982,5992,5.982,5993,5.982,5998,5.982,5999,5.982,6000,4.333,6001,4.261,6002,4.333,6003,4.333,6012,4.261,6013,5.982,6014,4.333,6015,4.261,6016,4.333,6017,4.261,6018,7.496,6170,5.618,6188,3.784,6218,5.801,6238,5.982,9875,4.495,9879,4.589,10007,4.943,10166,11.686,10207,12.13,10208,5.099,10209,8.863,10210,8.863,10211,8.863,10212,7.752,10213,8.863,10214,8.863,10215,6.313,10216,8.863,10217,5.521,10218,8.863,10219,8.863,10220,5.836,10221,7.752,10222,6.313,10223,8.863,10224,5.521,10225,6.313,10226,5.521,10227,5.836]],["title/classes/FileRecordSecurityCheck.html",[0,0.232,10021,5.055]],["body/classes/FileRecordSecurityCheck.html",[0,0.242,2,0.388,3,0.008,4,0.008,5,0.007,7,0.153,26,2.518,27,0.397,29,0.272,30,0.001,31,0.567,32,0.122,33,0.344,34,0.959,39,0.937,47,0.87,49,3.535,55,1.214,83,3.228,95,0.135,96,1.542,97,1.504,99,0.581,101,0.017,103,0,104,0,116,3.919,127,0.436,144,2.471,145,2.565,148,2.516,165,0.557,187,0.503,188,1.285,192,1.68,204,2.412,217,1.546,227,1.35,234,1.929,240,3.955,247,1.363,305,0.991,319,2.685,334,0.764,347,2.049,359,1.966,364,1.637,369,1.814,370,2.342,371,0.959,380,1.909,398,1.025,399,2.237,402,1.442,404,0.627,405,1.894,406,1.131,461,0.796,564,3.294,574,1.527,576,3.182,591,3.09,592,3.221,595,1.165,701,2.514,770,2.063,775,5.013,905,1.448,938,2.529,946,2.277,1015,4.573,1031,3.306,1180,1.497,1185,2.477,1255,3.805,1350,5.822,1487,4.573,1750,2.501,1852,2.381,1945,2.387,2037,2.041,2038,3.939,2095,3.244,2268,1.982,2440,1.982,2574,2.91,2632,3.766,2643,2.02,2649,1.551,2659,1.63,2849,1.504,3090,1.504,3143,1.822,3339,1.746,3353,2.387,3364,1.963,3610,4.952,3720,1.963,3814,2.586,4205,3.414,4215,2.65,4217,2.186,4271,3.073,4281,1.52,4282,2.063,4748,1.928,5043,1.963,5055,2.001,6170,4.692,6188,4.261,6189,4.456,6190,4.015,6191,5.881,6198,2.43,6206,2.477,6208,2.311,6210,5.168,6216,3.941,6217,4.984,6218,3.69,6511,2.108,6739,2.724,6740,4.191,6854,1.88,9807,2.586,9872,2.65,9875,4.015,9879,2.529,9913,2.43,9923,2.65,9927,2.65,9953,4.296,9956,2.529,9957,2.529,9962,2.65,9963,2.65,10003,2.81,10004,2.724,10005,4.415,10006,2.81,10007,4.415,10009,6.605,10021,6.679,10024,2.81,10025,2.65,10026,4.415,10027,2.586,10028,4.099,10029,4.099,10030,4.099,10031,2.186,10032,4.554,10033,4.554,10034,4.554,10035,4.554,10036,4.554,10037,4.554,10038,6.403,10039,6.493,10040,5.743,10041,4.296,10042,4.191,10043,2.586,10044,4.296,10045,2.65,10046,4.296,10047,5.567,10048,2.477,10049,2.724,10050,2.529,10051,2.529,10052,2.81,10053,2.81,10054,2.65,10055,2.586,10056,2.65,10057,2.81,10058,2.81,10059,2.81,10060,2.81,10061,2.81,10062,2.81,10063,2.81,10064,2.81,10065,2.81,10066,2.81,10067,7.771,10068,2.81,10069,2.81,10070,4.554,10071,2.81,10072,2.81,10073,4.554,10074,4.554,10075,4.554,10076,2.81,10077,2.81,10078,2.81,10079,2.81,10080,2.81,10081,2.81,10082,2.81,10083,4.554,10084,5.743,10085,2.724,10086,2.81,10087,4.554,10088,2.724,10089,2.81,10090,4.554,10091,2.81,10092,5.743,10093,5.743,10094,2.724,10095,5.743,10096,2.81,10097,2.81,10098,2.81,10099,2.81,10100,2.81,10101,2.81,10102,2.81,10103,2.724,10104,2.81,10105,2.81,10106,2.81,10107,2.81,10108,2.81,10109,2.81,10110,2.81,10111,2.81,10112,2.81,10228,5.638,10229,3.479,10230,3.479,10231,3.479,10232,3.479]],["title/classes/FileResponseBuilder.html",[0,0.232,10233,5.947]],["body/classes/FileResponseBuilder.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.015,7,0.142,8,1.39,27,0.387,29,0.735,30,0.001,31,0.746,32,0.128,33,0.454,35,1.136,47,0.888,95,0.148,101,0.016,103,0.001,104,0.001,116,2.924,163,2.889,217,1.222,227,0.973,334,1.008,627,3.819,667,5.455,3580,3.822,6170,5.33,6259,8.677,6273,9.432,9797,6.236,9799,8.21,9810,10.066,10233,10.066,10234,11.509,10235,9.387,10236,9.483,10237,10.066]],["title/classes/FileSecurityCheckEntity.html",[0,0.232,9901,5.493]],["body/classes/FileSecurityCheckEntity.html",[0,0.25,2,0.818,3,0.017,4,0.017,5,0.009,7,0.111,27,0.524,29,0.575,30,0.001,31,0.411,32,0.161,33,0.536,47,0.88,83,3.62,95,0.142,96,2.007,101,0.016,103,0.001,104,0.001,127,0.919,144,3.393,145,2.805,165,0.77,234,1.921,240,4.234,319,3.687,334,0.788,364,2.247,398,2.161,405,2.618,564,4.338,591,4.815,592,5.018,595,2.456,775,7.255,1031,3.471,1350,8.426,1904,3.069,2037,4.304,2038,6.864,2574,5.071,9901,7.936,9913,5.125,9914,9.64,9979,10.86,10039,7.986,10041,7.485,10042,7.303,10043,5.453,10044,7.485,10045,5.589,10238,6.781,10239,10.349,10240,9.825,10241,7.336,10242,7.336,10243,7.336,10244,10.938,10245,9.082,10246,7.336]],["title/interfaces/FileSecurityCheckEntityProps.html",[334,0.731,10239,5.947]],["body/interfaces/FileSecurityCheckEntityProps.html",[0,0.283,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,32,0.16,33,0.636,47,0.953,83,3.264,95,0.151,96,2.276,101,0.018,103,0.001,104,0.001,145,2.983,165,0.836,234,1.732,240,4.075,334,0.894,336,1.991,398,2.451,405,2.217,564,4.71,591,3.616,592,3.769,775,7.222,1031,3.344,1350,9.149,1904,3.48,2037,4.882,2038,7.455,2574,5.507,9901,6.721,9913,5.813,9914,6.185,9979,6.968,10039,8.671,10041,6.339,10042,7.932,10043,6.185,10044,8.13,10045,6.339,10238,7.692,10239,10.303,10244,11.877,10245,7.692]],["title/controllers/FileSecurityController.html",[481,2.611,10247,5.947]],["body/controllers/FileSecurityController.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.235,27,0.422,29,0.801,30,0.001,31,0.573,32,0.155,33,0.494,35,1.238,47,0.921,95,0.166,100,2.608,101,0.013,103,0.001,104,0.001,112,2.846,187,1.126,215,2.486,216,1.44,217,1.014,221,2.366,227,0.808,234,1.265,264,3.274,351,6.314,364,1.862,367,5.778,376,1.782,447,3.229,481,3.925,543,3.963,555,4.05,1345,3.091,1357,7.201,1360,6.1,1491,5.662,2727,3.737,3578,4.02,4007,4.894,6170,5.286,6239,8.05,6614,5.257,6615,6.524,6616,4.669,6638,6.524,9914,5.791,10132,9.557,10247,8.942,10248,11.412,10249,7.79,10250,10.224,10251,10.224,10252,7.79,10253,9.354,10254,7.79,10255,7.79,10256,7.79,10257,7.79,10258,7.79,10259,11.412,10260,10.55,10261,7.79,10262,7.79,10263,7.79,10264,7.79,10265,7.201,10266,7.79,10267,7.79,10268,7.79,10269,7.79,10270,7.79,10271,7.79,10272,7.79]],["title/injectables/FileSystemAdapter.html",[105,0.91,10273,5.694]],["body/injectables/FileSystemAdapter.html",[0,0.152,3,0.011,4,0.011,5,0.015,7,0.068,8,0.831,27,0.498,29,0.875,30,0.001,31,0.625,32,0.157,33,0.54,35,1.461,36,2.671,47,0.986,95,0.13,101,0.007,103,0,104,0,105,0.92,107,1.079,111,1.68,112,2.903,127,1.05,165,0.539,187,0.647,217,1.395,221,2.35,227,1.112,264,4.692,379,2.132,494,6.907,565,5.745,574,1.965,576,7.329,795,4.218,884,3.242,1035,4.807,1583,4.503,1804,4.17,1805,4.571,1857,5.242,1858,3.604,2139,4.439,2255,6.699,2266,6.36,2303,3.813,2401,3.253,2412,4.38,2440,2.55,2616,3.505,2794,6.833,2801,6.699,2848,5.927,3280,3.072,3510,6.36,3578,3.551,3812,5.388,7796,5.762,7821,8.551,10273,5.762,10274,11.35,10275,11.35,10276,4.475,10277,9.91,10278,6.88,10279,6.88,10280,6.88,10281,8.381,10282,8.381,10283,6.88,10284,8.381,10285,8.381,10286,6.88,10287,6.88,10288,4.475,10289,5.762,10290,10.654,10291,6.88,10292,4.475,10293,3.848,10294,9.408,10295,10.154,10296,6.88,10297,6.36,10298,5.242,10299,8.697,10300,11.524,10301,6.88,10302,4.475,10303,3.41,10304,8.381,10305,4.475,10306,6.36,10307,9.91,10308,8.381,10309,4.475,10310,7.748,10311,7.748,10312,8.697,10313,9.408,10314,6.88,10315,4.475,10316,6.36,10317,6.36,10318,5.558,10319,8.381,10320,4.475,10321,6.88,10322,4.475,10323,4.475,10324,6.88,10325,4.475,10326,4.137,10327,6.36,10328,4.475,10329,4.475,10330,4.475,10331,8.381,10332,4.475,10333,4.475,10334,4.475,10335,4.475,10336,4.475,10337,6.88,10338,4.475,10339,4.475,10340,3.505,10341,4.475,10342,4.475,10343,4.475]],["title/modules/FileSystemModule.html",[425,1.812,10344,5.694]],["body/modules/FileSystemModule.html",[0,0.327,3,0.023,4,0.023,5,0.014,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.39,425,3.351,427,3.472,428,3.735,429,3.845,430,3.829,431,3.813,432,4.628,433,4.753,442,4.672,443,3.766,444,3.675,10273,11.91,10274,8.884,10275,8.884,10344,11.55,10345,9.611,10346,9.611,10347,9.611,10348,9.611,10349,9.611]],["title/classes/FileUrlParams.html",[0,0.232,6233,4.667]],["body/classes/FileUrlParams.html",[0,0.454,2,0.698,3,0.015,4,0.021,5,0.011,7,0.095,26,2.565,27,0.421,30,0.001,32,0.169,33,0.426,39,1.687,47,0.966,95,0.16,99,1.045,101,0.022,103,0.001,104,0.001,150,3.531,165,0.69,204,2.125,214,1.975,334,0.673,347,1.783,364,1.858,369,1.39,373,4.726,374,1.999,375,4.216,376,1.433,377,5.856,379,1.419,380,1.331,467,3.625,469,2.75,470,5.061,471,4.487,565,3.122,1000,4.926,1001,6.634,1011,5.153,1031,3.196,1044,3.005,1180,3.794,1270,6.047,1330,5.611,1331,4.1,1332,4.1,2702,4.596,2889,5.05,3610,3.062,4205,2.111,5836,6.524,6170,5.126,6183,7.244,6189,6.032,6217,3.081,6220,4.299,6221,4.376,6222,4.376,6225,7.75,6228,4.376,6229,8.038,6230,7.733,6231,7.733,6232,4.376,6233,6.05,6234,7.873,6235,4.299,6236,4.376,6237,4.228,6238,5.949,6239,4.161,6240,4.228,6241,4.299,6242,4.228,6243,4.228,6244,3.987,6245,4.376,6246,4.376,6247,4.376,6248,3.987,6249,3.987,6250,4.1,6251,4.161,6252,4.376,10350,8.815,10351,6.264,10352,6.264,10353,6.264,10354,6.264]],["title/modules/FilesModule.html",[425,1.812,10355,5.694]],["body/modules/FilesModule.html",[0,0.303,3,0.021,4,0.021,5,0.011,30,0.001,95,0.172,101,0.015,103,0.001,104,0.001,187,1.286,425,3.237,427,3.211,428,3.455,429,3.557,430,3.542,431,3.527,432,4.47,433,3.36,438,6.264,442,4.452,443,3.483,444,3.4,449,4.415,1467,2.837,2531,4.805,2727,4.265,7911,9.732,7916,11.198,7920,7.775,7944,10.801,7945,11.198,7964,8.218,10355,11.792,10356,8.89,10357,8.89,10358,8.89,10359,8.89]],["title/injectables/FilesRepo.html",[105,0.91,7944,5.493]],["body/injectables/FilesRepo.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,8,0.982,10,3.281,12,3.723,18,4.108,26,2.662,27,0.518,29,0.965,30,0.001,31,0.69,32,0.167,33,0.596,34,1.383,35,1.455,36,2.692,40,2.7,49,3.768,55,2.51,56,2.684,58,6.783,83,2.93,95,0.154,96,2.224,97,2.419,99,0.934,101,0.009,103,0,104,0,105,1.088,107,1.348,112,2.951,116,3.911,127,0.701,187,0.809,216,1.034,217,1.603,221,2.217,227,1.09,234,1.32,380,1.727,381,2.704,398,1.648,404,1.465,577,3.157,596,3.207,692,4.828,701,2.874,877,7.054,883,3.449,884,3.831,885,4.839,908,3.43,909,3.471,910,3.43,911,3.471,912,3.984,913,3.43,914,3.471,915,3.101,919,4.262,964,3.839,1849,2.807,1904,2.34,2354,4.066,2355,6.046,2359,5.91,2397,3.776,3578,6.013,3637,4.519,4659,3.716,5878,4.262,7810,6.445,7919,9.195,7930,7.111,7944,6.567,7950,4.685,7953,8.009,8050,4.066,9876,4.262,9878,4.893,9888,4.158,9899,4.893,9981,4.893,10360,5.594,10361,8.13,10362,8.13,10363,8.13,10364,5.594,10365,8.13,10366,5.594,10367,5.594,10368,8.13,10369,5.594,10370,5.594,10371,8.13,10372,5.594,10373,5.594,10374,7.515,10375,4.519,10376,8.13,10377,5.594,10378,5.594,10379,7.111,10380,5.171,10381,5.594,10382,5.594,10383,5.594,10384,5.594,10385,5.594,10386,5.594]],["title/injectables/FilesService.html",[105,0.91,10387,6.286]],["body/injectables/FilesService.html",[0,0.25,3,0.017,4,0.017,5,0.009,7,0.111,8,1.188,26,2.923,27,0.509,29,0.967,30,0.001,31,0.691,32,0.168,33,0.597,35,1.433,36,2.827,39,3.188,95,0.152,99,1.226,101,0.012,103,0.001,104,0.001,105,1.316,107,1.772,112,3.02,127,0.921,187,1.063,215,2.346,216,1.359,217,1.28,221,2.741,227,1.317,247,4.639,380,1.562,381,3.272,2531,5.993,6798,6.428,7944,9.565,7953,5.599,10387,9.093,10388,7.349,10389,9.837,10390,9.837,10391,9.837,10392,9.837,10393,7.349,10394,9.837,10395,7.349,10396,9.837,10397,7.349,10398,9.837,10399,7.349,10400,9.837,10401,7.349,10402,9.837,10403,10.946,10404,9.837,10405,7.349,10406,9.837,10407,9.837,10408,7.349]],["title/modules/FilesStorageAMQPModule.html",[425,1.812,10409,5.947]],["body/modules/FilesStorageAMQPModule.html",[0,0.304,3,0.021,4,0.021,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.291,425,3.243,427,3.226,428,3.47,429,3.573,430,3.558,431,3.543,432,4.479,433,3.375,438,6.271,442,4.465,443,3.499,444,3.415,449,4.427,481,3.428,1359,6.803,1467,2.85,3578,4.608,3579,4.393,6170,4.135,6422,8.893,10409,12.323,10410,8.929,10411,8.929,10412,8.929,10413,10.813,10414,11.708,10415,8.254,10416,6.238,10417,8.254]],["title/modules/FilesStorageApiModule.html",[425,1.812,10418,5.324]],["body/modules/FilesStorageApiModule.html",[0,0.284,3,0.02,4,0.02,5,0.01,30,0.001,95,0.174,101,0.014,103,0.001,104,0.001,187,1.206,425,3.142,427,3.012,428,3.24,429,3.336,430,3.322,431,3.308,432,4.339,433,3.151,442,4.275,443,3.267,444,3.188,446,5.239,447,4.429,449,4.239,481,3.201,1155,4.843,1359,6.352,1507,8.738,1923,9.777,2727,4,3578,4.303,3579,4.102,3917,7.211,6170,3.862,6422,8.738,10247,10.313,10260,12.159,10413,10.625,10416,5.825,10417,7.708,10418,11.027,10419,8.338,10420,8.338,10421,8.338,10422,11.791,10423,6.529,10424,6.735,10425,6.735]],["title/injectables/FilesStorageClientAdapterService.html",[105,0.91,6298,4.842]],["body/injectables/FilesStorageClientAdapterService.html",[0,0.241,3,0.023,4,0.017,5,0.012,7,0.107,8,1.158,26,2.472,27,0.481,29,0.913,30,0.001,31,0.653,32,0.158,33,0.564,35,1.317,36,2.694,95,0.168,99,1.181,100,2.37,101,0.012,103,0.001,104,0.001,105,1.283,107,1.706,111,1.419,112,2.92,127,0.887,187,1.024,206,3.601,215,2.259,216,1.309,217,1.635,221,2.518,227,1.128,264,4.031,336,1.694,367,3.375,1016,3.819,1467,2.259,2356,3.94,2357,5.311,2969,4.777,3578,3.653,3579,6.59,3610,3.46,6169,5.393,6170,5.644,6282,9.131,6284,9.766,6285,6.543,6298,6.83,6324,5.262,9973,5.928,10426,11.266,10427,7.078,10428,7.747,10429,8.389,10430,8.866,10431,10.878,10432,9.766,10433,7.078,10434,9.591,10435,7.078,10436,9.591,10437,7.078,10438,9.591,10439,7.078,10440,6.543,10441,7.078,10442,7.078,10443,12.565,10444,7.078,10445,7.078,10446,9.591,10447,7.078]],["title/classes/FilesStorageClientMapper.html",[0,0.232,9973,5.694]],["body/classes/FilesStorageClientMapper.html",[0,0.204,2,0.667,3,0.014,4,0.014,5,0.007,7,0.09,8,1.031,27,0.492,29,0.934,30,0.001,31,0.702,32,0.17,33,0.576,34,1.452,35,1.443,47,0.709,95,0.139,99,0.999,100,3.331,101,0.01,103,0,104,0,217,1.632,227,1.343,234,1.761,305,2.431,336,1.432,380,2.304,627,4.215,806,4.05,1016,3.807,1642,6.077,2268,5.667,2647,4.504,2649,3.805,2849,3.691,3579,6.614,3610,2.925,5941,4.56,6169,8.263,6170,5.682,6173,3.976,6174,10.274,6182,4.686,6189,6.835,6192,4.449,6217,4.199,6219,4.449,6324,9.625,8358,3.976,9213,5.234,9802,10.504,9970,11.341,9972,10.025,9973,7.147,10448,5.985,10449,8.534,10450,8.534,10451,8.534,10452,8.534,10453,8.534,10454,8.534,10455,8.534,10456,5.985,10457,8.534,10458,5.985,10459,8.534,10460,5.985,10461,8.534,10462,5.985,10463,8.534,10464,5.985,10465,8.534,10466,5.985,10467,10.845,10468,5.985,10469,5.985,10470,5.985,10471,5.985,10472,5.985,10473,5.985,10474,5.985,10475,5.985,10476,5.985,10477,5.985,10478,5.985,10479,5.985,10480,8.534,10481,5.985,10482,5.985,10483,5.985]],["title/modules/FilesStorageClientModule.html",[425,1.812,3567,5.055]],["body/modules/FilesStorageClientModule.html",[0,0.281,3,0.02,4,0.02,5,0.01,30,0.001,95,0.168,101,0.014,103,0.001,104,0.001,187,1.193,425,3.127,427,2.981,428,3.207,429,3.302,430,3.288,431,3.274,432,4.318,433,4.435,438,6.145,442,4.247,443,3.233,444,3.156,449,4.211,1467,2.634,3009,5.002,3010,4.615,3567,10.527,3579,5.772,6170,3.822,6291,11.673,6298,9.926,6310,7.629,6338,9.535,6344,7.629,10432,10.985,10440,7.629,10484,8.252,10485,8.252,10486,8.252,10487,8.252,10488,8.252,10489,7.629,10490,7.629,10491,9.284]],["title/injectables/FilesStorageConsumer.html",[105,0.91,10414,5.947]],["body/injectables/FilesStorageConsumer.html",[0,0.192,3,0.013,4,0.023,5,0.007,7,0.085,8,0.986,26,2.235,27,0.435,29,0.826,30,0.001,31,0.59,32,0.143,33,0.51,35,1.163,36,2.503,39,1.515,95,0.166,96,1.539,99,0.939,100,1.883,101,0.009,103,0,104,0,105,1.092,107,1.356,111,2.113,112,2.771,116,3.916,127,1.022,145,2.433,187,0.813,206,2.862,216,1.776,217,1.519,221,2.59,227,0.996,231,7.08,364,1.75,398,1.657,731,2.222,957,3.118,1008,5.696,1016,3.7,1187,2.682,1188,2.651,1189,2.651,1190,2.804,1191,3.066,1216,4.13,1312,5.962,1314,7.532,1351,3.93,1352,3.63,1467,1.795,1798,5.422,1959,3.066,2356,3.946,2357,4.801,2475,3.861,2614,4.089,2615,4.006,2702,3.678,4171,7.32,4645,4.711,6170,5.183,6225,7.002,6243,7.114,6885,6.288,7804,8.03,9829,7.139,10048,5.813,10414,7.139,10428,8.514,10429,8.403,10491,4.92,10492,11.192,10493,5.625,10494,9.607,10495,5.625,10496,9.776,10497,10.085,10498,5.625,10499,5.2,10500,8.881,10501,8.952,10502,10.21,10503,9.607,10504,5.625,10505,5.2,10506,5.625,10507,5.625,10508,5.625,10509,7.546,10510,9.743,10511,11.192,10512,4.182,10513,5.2,10514,4.405,10515,4.286,10516,4.286,10517,4.92,10518,4.92,10519,5.2,10520,5.625,10521,8.163,10522,5.625,10523,8.163,10524,5.625,10525,5.625,10526,8.163,10527,8.163,10528,5.625,10529,5.625,10530,5.625,10531,5.625]],["title/classes/FilesStorageMapper.html",[0,0.232,10518,5.947]],["body/classes/FilesStorageMapper.html",[0,0.289,2,0.661,3,0.014,4,0.014,5,0.007,7,0.09,8,1.024,27,0.49,29,0.931,30,0.001,31,0.666,32,0.17,33,0.575,35,1.439,55,2.744,56,5.182,59,2.641,70,5.348,95,0.153,101,0.01,103,0,104,0,185,2.305,187,0.858,208,2.216,217,1.592,227,1.232,234,1.855,305,1.69,334,0.637,380,1.26,627,4.21,982,2.957,1008,5.838,1016,2.977,1489,4.312,1973,7.049,3228,5.398,3364,4.786,3524,5.188,3610,2.899,4205,1.999,5835,3.727,6072,4.409,6170,5.667,6188,7.918,6189,5.886,6192,7.358,6203,4.791,6209,4.791,6217,2.918,6219,7.358,6225,7.591,6237,7.29,6238,4.003,6240,7.712,6614,6.681,6615,9.569,6638,4.968,6707,4.968,10048,6.039,10128,9.15,10129,7.84,10133,5.483,10135,7.84,10137,5.483,10138,5.483,10139,5.188,10141,5.483,10236,8.229,10237,5.188,10518,7.417,10532,12.236,10533,5.932,10534,8.481,10535,7.417,10536,8.481,10537,8.481,10538,8.481,10539,5.932,10540,7.417,10541,5.932,10542,5.932,10543,5.932,10544,8.481,10545,5.932,10546,8.481,10547,5.932,10548,5.932,10549,5.932,10550,5.483,10551,5.932,10552,5.932,10553,5.932,10554,5.932,10555,5.483,10556,5.932,10557,5.483,10558,5.932,10559,5.932,10560,5.932,10561,5.932,10562,4.968,10563,5.932,10564,5.932,10565,5.932,10566,5.932,10567,5.932,10568,5.932,10569,5.932,10570,5.932]],["title/modules/FilesStorageModule.html",[425,1.812,10413,5.493]],["body/modules/FilesStorageModule.html",[0,0.202,3,0.014,4,0.014,5,0.007,30,0.001,32,0.081,47,0.814,55,1.276,87,2.972,95,0.175,96,2.317,99,0.988,101,0.01,103,0,104,0,154,2.713,187,0.857,217,1.287,234,0.962,347,1.198,369,1.314,380,1.259,381,1.97,398,1.745,425,2.635,427,2.14,428,2.302,429,2.37,430,2.36,431,2.35,432,3.972,433,3.738,438,5.565,442,3.39,443,2.321,444,2.265,449,4.282,461,1.355,511,2.993,574,2.6,701,2.995,717,3.126,722,2.641,731,2.34,778,5.718,801,3.44,885,4.28,953,3.877,1187,2.824,1188,2.791,1189,2.791,1190,2.952,1267,3.935,1268,3.632,1295,4.96,1308,3.59,1310,4.784,1312,3.675,1314,3.822,1323,4.138,1328,4.96,1359,4.513,1467,1.891,1507,7.171,1646,3.313,1852,2.501,1878,5.834,2130,2.587,2131,2.895,2132,2.791,2133,3.77,2531,3.201,2644,3.175,3578,3.057,3580,2.411,4639,5.475,4645,4.96,4865,4.065,5460,3.877,5511,3.998,6170,2.743,6188,5.078,6267,3.77,6422,7.171,9797,3.935,9925,4.218,10021,6.298,10155,10.39,10413,11.352,10418,8.452,10491,5.181,10496,11.061,10497,11.061,10519,5.475,10571,5.923,10572,5.923,10573,5.923,10574,5.923,10575,8.46,10576,7.541,10577,6.298,10578,6.298,10579,4.306,10580,6.454,10581,4.218,10582,4.306,10583,6.298,10584,5.923,10585,7.095,10586,4.96,10587,5.475,10588,4.403,10589,6.158,10590,6.158,10591,6.158,10592,4.306,10593,4.138,10594,5.181,10595,4.96,10596,5.923,10597,5.923,10598,5.923,10599,5.181,10600,5.923,10601,5.923,10602,5.923,10603,4.96,10604,6.454,10605,4.403,10606,4.403,10607,4.306,10608,4.784,10609,4.403,10610,4.513,10611,5.181]],["title/injectables/FilesStorageProducer.html",[105,0.91,10432,5.694]],["body/injectables/FilesStorageProducer.html",[0,0.201,3,0.014,4,0.014,5,0.007,7,0.089,8,1.02,26,2.284,27,0.504,29,0.996,30,0.001,31,0.684,32,0.173,33,0.591,35,1.436,36,2.543,47,0.846,55,1.27,95,0.157,99,0.984,101,0.01,103,0,104,0,105,1.13,107,1.421,111,1.182,112,2.879,127,1.058,148,1.815,187,0.853,216,1.824,217,1.284,221,2.284,227,1.023,231,7.566,336,1.411,367,4.027,404,1.522,596,3.009,661,5.251,692,3.155,789,7.995,801,3.425,1016,4.289,1312,3.659,1314,3.805,1337,4.763,1338,8.818,1345,3.351,1351,4.12,1352,3.805,1467,1.882,1798,6.695,2356,4.053,2357,4.907,3579,5.609,3901,6.822,3937,4.384,4171,9.038,6170,5.28,10426,10.539,10428,6.822,10429,7.386,10430,7.807,10432,7.072,10499,7.807,10501,6.278,10505,7.807,10512,6.278,10514,4.618,10515,4.493,10516,4.493,10517,5.158,10612,5.897,10613,9.934,10614,7.386,10615,7.386,10616,5.897,10617,8.435,10618,5.897,10619,5.897,10620,8.445,10621,8.435,10622,5.897,10623,5.158,10624,5.451,10625,5.158,10626,5.451,10627,5.158,10628,5.451,10629,4.939,10630,5.451,10631,5.897,10632,5.897,10633,5.897,10634,5.897,10635,5.897,10636,5.897,10637,5.897,10638,5.897,10639,5.897,10640,5.897,10641,5.897]],["title/modules/FilesStorageTestModule.html",[425,1.812,10642,5.947]],["body/modules/FilesStorageTestModule.html",[0,0.243,3,0.017,4,0.017,5,0.009,8,0.861,27,0.294,29,0.558,30,0.001,31,0.399,32,0.097,33,0.345,35,0.863,59,2.22,95,0.174,99,1.19,101,0.012,103,0.001,104,0.001,187,1.031,217,1.421,227,0.739,380,1.515,381,2.371,425,3.116,427,2.575,428,2.77,429,2.852,430,2.84,431,2.828,432,4.303,433,2.694,438,5.899,442,3.856,443,2.793,444,2.726,447,4.525,449,4.847,627,2.957,701,3.407,1297,5.182,1298,6.614,1301,7.253,1359,7.342,1467,2.275,1507,8.365,1878,6.805,2725,3.229,3578,3.679,3579,5.371,6170,4.463,6188,5.776,6422,8.365,10416,4.98,10418,9.86,10423,5.582,10576,8.797,10583,7.164,10587,6.589,10642,12.303,10643,7.128,10644,7.128,10645,8.535,10646,6.235,10647,8.694,10648,7.128,10649,5.182,10650,5.758,10651,5.182,10652,5.758,10653,5.97,10654,7.164]],["title/classes/FilterImportUserParams.html",[0,0.232,10655,5.694]],["body/classes/FilterImportUserParams.html",[0,0.314,2,1.377,3,0.016,4,0.016,5,0.008,7,0.101,27,0.522,30,0.001,32,0.175,33,0.661,47,0.945,95,0.172,101,0.018,103,0.001,104,0.001,165,0.722,347,1.864,364,2.305,369,2.046,373,4.942,374,2.132,375,4.911,376,1.528,469,2.932,470,4.995,471,5.226,496,4.457,577,5.957,851,5.033,852,5.033,1001,7.157,1031,3.566,1044,3.204,1602,6.44,2450,5.251,2461,5.587,3105,5.868,3106,5.202,4476,5.749,5406,5.72,5477,7.244,7810,5.652,10655,7.72,10656,11.919,10657,5.593,10658,7.374,10659,7.244,10660,6.679,10661,6.679,10662,9.758,10663,6.679,10664,6.679,10665,6.679,10666,6.679,10667,6.679,10668,11.039,10669,6.174,10670,6.679,10671,6.679,10672,6.679,10673,11.039,10674,6.679,10675,6.679,10676,9.218,10677,6.44,10678,4.756,10679,6.397,10680,6.679,10681,6.679]],["title/classes/FilterNewsParams.html",[0,0.232,10682,5.493]],["body/classes/FilterNewsParams.html",[0,0.355,2,0.895,3,0.019,4,0.019,5,0.01,7,0.121,27,0.477,30,0.001,32,0.157,33,0.63,34,1.773,47,0.874,95,0.157,99,1.339,101,0.013,103,0.001,104,0.001,165,0.816,347,2.108,364,2.109,373,5.587,374,2.561,375,4.668,376,1.835,377,6.924,379,2.878,470,4.36,471,4.968,475,3.921,1000,4.243,1031,2.514,1044,3.849,1184,5.777,2702,5.522,2736,6.821,2884,5.543,2885,5.543,6850,7.47,6857,7.531,6858,7.416,6901,7.422,7033,7.017,7035,8.088,7037,7.416,7042,7.416,7044,7.801,7047,7.576,7053,7.416,10682,8.419,10683,12.255,10684,9.351,10685,7.017,10686,8.419,10687,8.728,10688,8.022,10689,8.022,10690,7.416,10691,7.747,10692,8.022]],["title/classes/FilterUserParams.html",[0,0.232,10693,5.694]],["body/classes/FilterUserParams.html",[0,0.397,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,27,0.395,30,0.001,31,0.704,32,0.13,33,0.564,47,0.831,95,0.15,101,0.016,103,0.001,104,0.001,144,3.206,165,0.913,364,1.746,374,3.06,375,4.441,376,2.193,470,4.877,471,4.726,494,6.988,851,5.559,852,5.559,1001,6.988,4476,5.198,7810,7.148,10656,10.777,10657,8.029,10662,8.863,10693,9.764,10694,9.588]],["title/classes/ForbiddenLoggableException.html",[0,0.232,1978,5.324]],["body/classes/ForbiddenLoggableException.html",[0,0.286,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,8,1.296,26,2.642,27,0.442,29,0.657,30,0.001,31,0.47,32,0.161,33,0.406,35,1.016,39,3.184,47,0.843,95,0.165,99,1.4,101,0.014,103,0.001,104,0.001,111,2.371,127,1.344,163,2.582,187,1.213,199,4.469,214,3.382,216,2.187,217,1.092,227,0.87,404,1.933,406,2.729,415,4.534,885,6.297,945,7.338,1216,4.203,1464,5.446,1469,6.172,1795,6.736,1798,4.735,1799,5.085,1978,8.4,2783,7.088,8288,6.48,8738,5.34,8745,4.923,8746,5.144,10695,11.826,10696,6.777,10697,7.756,10698,8.39,10699,7.026,10700,7.026,10701,8.39,10702,8.39,10703,8.39]],["title/classes/ForbiddenOperationError.html",[0,0.232,507,5.694]],["body/classes/ForbiddenOperationError.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,8,1.221,27,0.54,29,0.6,30,0.001,31,0.429,32,0.185,33,0.547,35,0.927,47,0.916,55,1.649,59,3.148,95,0.13,101,0.013,103,0.001,104,0.001,127,0.959,165,0.792,187,1.107,204,4.361,216,2.513,364,2.279,404,1.821,406,2.49,507,8.465,564,2.807,596,3.92,1013,5.512,1016,2.688,1142,5.241,1180,5.18,1216,4.903,1395,8.253,1396,7.466,1397,4.03,1398,7.203,1402,4.94,1403,4.244,1404,4.94,1405,4.94,1406,4.94,1407,4.94,1408,4.94,1409,4.589,1410,4.321,1411,5.995,1416,4.811,1817,7.915,4611,6.185,10704,10.108,10705,7.656,10706,7.656,10707,7.656,10708,8.465,10709,7.701,10710,7.078]],["title/controllers/FwuLearningContentsController.html",[481,2.611,10711,5.694]],["body/controllers/FwuLearningContentsController.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.113,8,1.204,27,0.309,29,0.587,30,0.001,31,0.42,32,0.136,33,0.363,35,0.908,36,2.138,95,0.167,101,0.013,103,0.001,104,0.001,112,2.469,185,4.353,187,1.085,215,2.394,216,1.387,217,1.458,221,1.736,227,0.778,234,1.619,264,4.19,305,2.137,363,4.774,364,1.366,367,5.692,369,1.664,376,1.715,447,3.108,481,2.879,483,3.576,555,3.899,556,3.989,561,4.021,576,4.233,1016,4.363,1308,4.545,1353,3.62,1410,4.233,1489,5.452,2130,3.276,2131,3.666,2132,3.534,2303,4.042,2930,4.021,3524,6.56,3859,4.194,6614,8.388,6615,6.281,6616,4.495,6632,6.281,6638,6.281,10253,8.874,10265,6.933,10711,8.35,10712,7.808,10713,10.005,10714,9.971,10715,7.5,10716,8.35,10717,7.5,10718,10.441,10719,9.971,10720,7.5,10721,9.048,10722,6.56,10723,6.56,10724,7.5,10725,7.5,10726,7.5,10727,7.5,10728,7.5,10729,7.5,10730,8.534,10731,7.5,10732,7.5,10733,7.5,10734,7.5,10735,7.5,10736,7.5,10737,6.933,10738,7.5,10739,7.5,10740,7.5,10741,7.5,10742,7.5,10743,7.5,10744,7.5,10745,7.5]],["title/modules/FwuLearningContentsModule.html",[425,1.812,10746,5.947]],["body/modules/FwuLearningContentsModule.html",[0,0.221,3,0.015,4,0.015,5,0.008,30,0.001,32,0.088,47,0.462,87,3.255,94,4.387,95,0.177,96,2.471,99,1.082,101,0.011,103,0.001,104,0.001,154,2.97,187,0.938,217,0.844,234,1.053,369,1.439,381,2.157,398,1.911,425,2.769,427,2.343,428,2.52,429,2.595,430,2.584,431,2.573,432,3.824,433,2.451,438,5.731,442,3.614,443,2.541,444,2.48,447,3.744,449,3.583,461,2.377,496,3.813,511,3.277,574,2.847,701,3.193,722,2.892,731,2.562,778,6.096,801,3.767,844,4.114,885,4.564,953,4.245,1155,3.767,1187,3.093,1188,3.056,1189,3.056,1190,3.233,1267,4.309,1268,3.976,1467,2.07,1507,8.128,1646,3.627,1852,2.738,1878,6.612,2644,3.477,2725,2.938,3580,2.64,3917,6.096,4865,4.451,5460,4.245,5511,4.377,6267,4.128,6422,8.128,8358,4.309,8469,4.881,9797,4.309,9925,4.618,10416,4.531,10575,8.712,10577,6.714,10578,6.714,10579,4.714,10580,6.881,10581,4.618,10582,4.714,10588,8.783,10589,6.565,10590,6.565,10591,6.565,10592,4.714,10593,4.531,10595,5.431,10603,5.431,10604,6.881,10605,4.821,10606,4.821,10607,4.714,10608,5.239,10609,4.821,10610,4.941,10611,5.673,10711,8.703,10712,5.079,10713,9.252,10716,5.431,10721,9.882,10722,5.673,10723,5.673,10746,12.135,10747,6.486,10748,6.486,10749,6.486,10750,5.995,10751,6.486,10752,5.749,10753,5.995,10754,5.995,10755,5.995,10756,5.673]],["title/modules/FwuLearningContentsTestModule.html",[425,1.812,10757,5.947]],["body/modules/FwuLearningContentsTestModule.html",[0,0.22,3,0.015,4,0.015,5,0.008,8,0.782,27,0.267,29,0.507,30,0.001,31,0.363,32,0.088,33,0.313,35,0.784,59,2.017,94,4.382,95,0.177,99,1.081,101,0.011,103,0.001,104,0.001,154,2.966,187,0.936,217,1.351,227,0.671,381,2.154,425,2.992,427,2.339,428,2.516,429,2.591,430,2.58,431,2.569,432,4.345,433,2.447,438,5.728,442,3.61,443,2.537,444,2.476,447,4.655,449,4.685,461,2.064,496,3.809,627,2.768,701,3.19,801,3.761,844,4.109,1155,3.761,1297,4.707,1298,6.192,1301,6.898,1467,2.067,1507,8.124,1878,6.609,2725,2.933,3580,2.636,3917,6.089,6267,4.122,6422,8.124,8358,4.302,8469,4.876,9797,4.302,10416,4.524,10423,5.07,10576,8.543,10582,4.707,10588,8.778,10592,4.707,10593,4.524,10595,5.423,10603,5.423,10645,8.25,10646,5.663,10647,8.348,10649,4.707,10650,5.23,10651,4.707,10652,5.23,10654,6.707,10711,8.695,10712,7.065,10713,9.825,10716,5.423,10721,9.877,10722,5.663,10723,5.663,10750,8.34,10752,5.743,10754,5.986,10755,5.986,10756,5.663,10757,12.25,10758,6.475,10759,6.475,10760,6.475,10761,6.089,10762,6.475]],["title/injectables/FwuLearningContentsUc.html",[105,0.91,10721,5.493]],["body/injectables/FwuLearningContentsUc.html",[0,0.289,3,0.02,4,0.02,5,0.01,7,0.128,8,1.306,27,0.446,29,0.847,30,0.001,31,0.606,32,0.147,33,0.523,35,1.028,47,0.943,59,2.646,95,0.161,101,0.014,103,0.001,104,0.001,105,1.447,107,2.048,111,2.168,112,2.622,127,1.355,187,1.229,216,1.571,217,1.106,221,1.966,227,0.881,576,4.795,839,4.051,1016,3.797,1265,8.239,1345,3.371,1467,2.712,2356,4.442,2357,5.703,2969,5.734,3580,3.459,9797,5.644,10712,9.315,10713,10.517,10716,7.115,10721,8.735,10730,9.54,10756,7.431,10763,11.895,10764,8.496,10765,9.609,10766,9.308,10767,8.496,10768,8.496,10769,8.496,10770,8.496,10771,8.496,10772,8.496]],["title/interfaces/GetFile.html",[334,0.731,6273,4.943]],["body/interfaces/GetFile.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.177,33,0.66,47,1.02,55,2.583,95,0.111,101,0.021,103,0.001,104,0.001,163,4,165,0.856,334,1.354,336,2.068,1342,8.166,1344,5.656,1487,4.833,2145,5.43,6262,6.767,6263,6.767,6264,7.237,6265,6.981,6266,6.981,6267,5.501,6268,6.767,6269,6.038,6270,6.038,6271,6.038,6272,6.038,6273,7.946,6274,9.366,6275,8.973,6276,9.366,6277,9.366]],["title/interfaces/GetFileResponse.html",[334,0.731,10236,5.181]],["body/interfaces/GetFileResponse.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,31,0.703,32,0.183,33,0.659,47,1.016,55,2.572,95,0.153,101,0.018,103,0.001,104,0.001,163,3.866,165,0.852,334,1.168,336,2.051,380,1.821,565,4.271,982,4.271,1342,7.892,1344,5.608,6170,3.968,6188,7.158,6244,7.602,6274,9.337,6275,8.945,6276,9.337,6277,9.337,10236,8.283,10730,6.528,10773,7.921,10774,6.921,10775,7.494,10776,6.369,10777,6.228]],["title/classes/GetFwuLearningContentParams.html",[0,0.232,10718,5.947]],["body/classes/GetFwuLearningContentParams.html",[0,0.399,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,27,0.399,30,0.001,32,0.132,47,0.836,95,0.151,101,0.016,103,0.001,104,0.001,165,0.918,364,1.763,374,3.09,376,2.214,467,3.077,470,4.905,472,7.915,1001,7.028,10712,9.183,10713,10.268,10718,10.256,10778,11.726,10779,9.68,10780,12.615,10781,9.68,10782,11.726,10783,11.726,10784,9.68,10785,9.68,10786,9.68]],["title/interfaces/GlobalConstants.html",[334,0.731,10787,6.286]],["body/interfaces/GlobalConstants.html",[3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.17,33,0.63,47,0.998,95,0.122,101,0.016,103,0.001,104,0.001,150,3.288,165,0.908,217,1.509,334,1.02,336,2.273,1948,5.692,10589,9.711,10590,9.711,10591,9.711,10787,11.566,10788,9.497,10789,11.591,10790,9.497,10791,11.591]],["title/classes/GlobalErrorFilter.html",[0,0.232,8371,5.694]],["body/classes/GlobalErrorFilter.html",[0,0.163,2,0.532,3,0.011,4,0.011,5,0.006,7,0.072,8,0.873,27,0.496,29,0.921,30,0.001,31,0.674,32,0.16,33,0.569,35,1.424,95,0.162,100,1.598,101,0.008,103,0,104,0,111,2.708,127,0.598,145,1.208,148,2.993,187,0.69,204,4.383,214,2.278,215,1.523,216,0.882,217,1.709,227,1.219,234,1.854,334,0.513,558,2.29,692,4.107,731,1.885,806,2.942,845,3.469,846,3.398,1016,4.535,1142,4.504,1187,2.276,1188,2.249,1189,2.249,1216,3.811,1322,8.942,1345,2.867,1353,3.488,1354,3.398,1369,5.3,1392,4.877,1395,5.963,1397,3.256,1409,7.577,1418,4.174,1421,3.469,1464,5.652,1467,1.523,2143,4.174,2356,2.968,2969,3.221,3341,3.855,3708,7.23,3884,6.32,4611,3.855,4773,5.226,6616,2.86,8275,3.855,8325,8.145,8343,3.855,8355,3.855,8369,2.892,8371,6.051,8394,8.145,9615,4.412,10512,6.482,10513,4.412,10792,12.273,10793,4.412,10794,8.72,10795,7.226,10796,7.226,10797,7.226,10798,7.226,10799,7.226,10800,9.726,10801,7.226,10802,4.772,10803,6.68,10804,11.419,10805,4.772,10806,7.226,10807,4.772,10808,7.226,10809,4.772,10810,7.226,10811,4.772,10812,7.226,10813,4.772,10814,7.226,10815,4.772,10816,4.772,10817,7.226,10818,4.772,10819,4.772,10820,5.837,10821,4.772,10822,4.772,10823,4.772,10824,4.772,10825,4.772,10826,4.772,10827,4.772,10828,4.772,10829,4.772,10830,4.772,10831,4.772,10832,4.772,10833,4.772,10834,4.772,10835,4.772,10836,4.772,10837,4.772,10838,4.772,10839,4.772,10840,4.772,10841,4.772,10842,7.226,10843,4.772,10844,4.772,10845,4.772,10846,7.226,10847,4.772,10848,4.772,10849,4.772,10850,4.772,10851,4.772,10852,4.772,10853,4.772,10854,4.772,10855,4.772]],["title/classes/GlobalValidationPipe.html",[0,0.232,10856,5.947]],["body/classes/GlobalValidationPipe.html",[0,0.389,2,0.87,3,0.018,4,0.018,5,0.009,27,0.322,30,0.001,32,0.155,95,0.131,100,4.216,101,0.013,103,0.001,104,0.001,127,1.431,144,2.815,163,2.402,165,0.611,185,3.033,187,1.129,204,2.648,234,1.267,319,3.059,364,1.865,368,3.058,369,2.867,371,2.152,374,3.267,379,1.769,404,1.845,406,2.538,467,2.048,503,7.004,529,3.392,558,3.744,574,4.494,685,5.403,722,3.48,728,2.985,783,4.73,951,5.946,957,4.327,1020,5.108,1273,8.016,1308,6.204,1392,5.268,1415,7.72,1423,5.108,1430,4.579,1854,5.185,1959,4.253,2051,5.832,2146,5.268,2222,5.558,2468,4.678,2702,4.613,3282,4.904,3495,6.7,3502,5.802,4565,8.269,5159,5.036,5183,4.904,6439,7.152,8275,6.304,8887,5.673,9342,6.112,10856,8.953,10857,10.237,10858,7.805,10859,10.56,10860,11.423,10861,7.805,10862,8.016,10863,7.215,10864,7.805,10865,7.805,10866,7.805,10867,7.805,10868,6.826,10869,7.805,10870,6.826,10871,7.805,10872,7.215,10873,7.805,10874,7.805,10875,7.805,10876,7.805,10877,6.304]],["title/classes/GridElement.html",[0,0.232,7465,5.324]],["body/classes/GridElement.html",[0,0.174,2,0.343,3,0.007,4,0.007,5,0.004,7,0.127,8,0.616,26,2.572,27,0.505,29,0.817,30,0.001,31,0.584,32,0.168,33,0.555,34,1.828,35,1.39,39,1.372,47,0.89,55,2.584,83,0.941,95,0.084,101,0.017,103,0,104,0,111,2.374,127,0.385,138,2.226,144,1.795,145,2.432,148,3.592,165,0.399,187,0.445,214,1.607,217,1.695,227,1.35,234,1.632,247,2.974,305,1.859,319,0.919,334,0.33,347,1.835,405,1.358,415,2.754,416,1.957,595,1.706,618,3.441,619,2.825,627,3.458,905,2.717,1041,1.72,1166,4.609,1271,4.832,1397,3.773,1680,4.972,1695,3.244,1750,3.367,1865,4.376,2341,2.408,2545,1.636,2553,4.581,2630,7.334,2643,1.786,2644,1.649,2686,2.235,2747,3.918,2767,4.441,3234,2.286,3364,2.876,3433,2.148,3609,3.244,3703,7.047,3753,3.162,4878,1.885,6363,2.575,6470,2.075,6512,9.516,6516,3.705,6596,3.498,6828,5.21,7372,5.406,7395,2.235,7396,2.69,7398,2.69,7401,2.69,7402,2.575,7403,7.597,7405,2.484,7412,4.457,7418,2.69,7422,2.69,7425,2.69,7426,7.597,7428,9.001,7431,5.783,7433,2.69,7434,7.047,7437,2.69,7439,2.69,7441,2.69,7443,2.69,7445,2.69,7447,2.69,7450,2.69,7452,4.457,7453,2.286,7454,7.36,7455,6.639,7456,5.708,7457,7.36,7458,5.708,7459,4.457,7460,7.36,7461,4.457,7462,5.708,7463,2.69,7464,3.705,7465,9.501,7466,5.708,7467,4.457,7468,2.69,7469,4.457,7470,2.69,7471,4.457,7472,2.69,7473,4.457,7474,4.457,7475,4.457,7476,4.457,7477,4.457,7478,2.69,7479,4.457,7480,2.575,7481,4.457,7482,2.69,7483,2.148,7484,4.457,7485,2.69,7486,2.69,7487,2.69,7488,4.457,7489,2.484,7490,2.69,7491,4.457,7492,2.69,7493,2.343,7494,2.69,7495,2.69,7496,2.69,7497,2.69,7498,2.69,7499,2.69,7500,2.69,7501,2.69,7502,2.69,7503,4.457,7504,4.457,7505,2.575,7506,5.708,7507,2.69,7508,4.457,7509,2.69,7510,2.69,7511,2.69,7512,2.69,7513,2.69,7514,2.69,7515,2.69,7516,2.69,7517,2.69,7518,2.69,7519,2.69,7520,2.69,7521,2.69,7522,2.69,7523,2.69,7524,2.69,7525,2.69,7526,2.69,7527,2.69,7528,2.69,7529,2.69,7530,2.69,7531,2.69,7532,4.457,7533,2.69,7534,2.69,7535,2.69,7536,4.457,7537,4.457,7538,2.69,7539,2.69,7540,2.69,7541,2.69,7542,2.69,7543,2.69,7544,2.69,7545,5.708,7546,2.69,7547,2.69,10878,4.711,10879,5.096,10880,5.096,10881,5.096,10882,5.096,10883,4.711,10884,4.711,10885,4.711,10886,3.075,10887,3.075,10888,3.075,10889,3.075,10890,3.075,10891,3.075,10892,2.843,10893,3.075,10894,3.075,10895,3.075,10896,3.075,10897,3.075,10898,3.075,10899,3.075,10900,3.075,10901,3.075,10902,3.075,10903,3.075,10904,3.075]],["title/classes/Group.html",[0,0.232,1166,3.262]],["body/classes/Group.html",[0,0.234,2,0.765,3,0.016,4,0.016,5,0.008,7,0.104,8,1.134,26,1.991,27,0.549,29,0.735,30,0.001,31,0.697,32,0.176,33,0.454,34,1.167,35,1.393,47,0.821,83,2.873,95,0.148,99,1.145,101,0.016,103,0.001,104,0.001,116,2.925,145,2.378,148,3.543,165,0.735,208,2.563,227,1.291,247,2.688,334,0.737,347,2.165,359,2.392,404,1.929,461,2.449,595,3.144,596,2.864,661,3.946,692,3.508,738,3.567,884,4.425,1166,5.522,1787,5.454,1790,5.09,1793,6.907,1873,4.257,2758,4.558,2776,4.558,3090,4.979,3092,6.343,3112,7.585,4204,8.68,4215,5.227,4242,5.746,5220,5.542,7074,6.029,8427,8.156,8458,8.602,10905,6.343,10906,9.39,10907,10.641,10908,8.77,10909,8.68,10910,9.474,10911,6.861,10912,6.861,10913,8.68,10914,6.861,10915,6.861,10916,6.861,10917,6.861,10918,6.861,10919,6.861,10920,6.861,10921,5.373,10922,6.861,10923,5.542,10924,5.746,10925,5.746,10926,6.343,10927,6.343,10928,6.343,10929,6.001,10930,6.343,10931,6.343,10932,6.001,10933,5.746,10934,6.343]],["title/modules/GroupApiModule.html",[425,1.812,10935,5.493]],["body/modules/GroupApiModule.html",[0,0.269,3,0.019,4,0.019,5,0.01,30,0.001,95,0.175,101,0.013,103,0.001,104,0.001,187,1.142,191,4.377,192,2.353,425,3.061,427,2.853,428,3.069,429,3.16,430,3.146,431,3.133,432,4.227,433,2.984,442,4.127,443,3.094,444,3.02,446,4.961,447,4.276,449,4.093,481,3.032,1547,9.636,1548,9.056,1566,6.379,1567,5.419,1878,7.006,2725,3.577,2727,3.788,3568,8.144,4402,10.856,4593,3.99,5333,8.251,10935,11.504,10936,7.896,10937,7.896,10938,7.896,10939,10.471,10940,10.856,10941,7.896,10942,10.048,10943,7.3,10944,7.896]],["title/controllers/GroupController.html",[481,2.611,10942,5.947]],["body/controllers/GroupController.html",[0,0.345,2,0.975,3,0.015,4,0.015,5,0.007,7,0.094,8,1.057,27,0.361,29,0.685,30,0.001,31,0.49,32,0.186,33,0.423,34,1.054,35,1.059,36,2.362,95,0.168,99,1.034,100,2.075,101,0.01,103,0.001,104,0.001,112,2.657,116,3.755,145,2.215,185,3.94,187,0.896,192,1.847,206,3.153,215,1.978,216,1.146,217,1.434,221,2.025,227,0.907,264,3.676,364,1.593,376,1.417,447,2.568,469,2.72,481,2.379,483,2.955,491,6.096,513,6.395,529,4.407,538,3.942,553,6.145,554,7.786,555,3.221,556,3.296,561,3.322,563,5.243,564,4.42,1014,4.171,1016,3.867,1028,7.696,1166,4.864,1409,7.227,1410,3.497,1744,4.329,2627,3.676,2727,2.973,2900,4.606,2930,3.322,3090,3.783,3743,3.636,4318,4.852,4352,8.491,4411,8.19,4426,9.634,4618,6.004,6473,5.889,6612,5.243,7088,4.721,9148,8.19,9204,5.42,9638,8.868,10940,8.491,10942,7.651,10945,6.196,10946,6.196,10947,6.196,10948,6.196,10949,11.015,10950,8.748,10951,11.015,10952,6.196,10953,6.196,10954,6.196,10955,9.634,10956,6.196,10957,6.196,10958,6.196,10959,6.196,10960,6.196,10961,6.85,10962,8.491,10963,5.42,10964,6.196,10965,6.196,10966,8.086,10967,6.196,10968,6.196,10969,7.651,10970,7.651,10971,6.196,10972,6.196,10973,6.196,10974,6.196,10975,6.196,10976,6.196]],["title/classes/GroupDomainMapper.html",[0,0.232,10977,5.947]],["body/classes/GroupDomainMapper.html",[0,0.185,2,0.606,3,0.013,4,0.013,5,0.007,7,0.082,8,0.962,27,0.476,29,0.903,30,0.001,31,0.684,32,0.166,33,0.558,34,1.354,35,1.396,39,1.464,48,2.561,95,0.133,96,1.487,97,2.351,99,0.907,101,0.009,103,0,104,0,145,2.921,217,1.622,227,1.196,234,1.792,380,2.204,461,1.821,496,3.361,595,1.82,619,3.013,627,4.162,844,2.476,854,3.995,1166,5.296,1180,3.426,1904,2.274,2355,7.288,3090,3.443,3104,2.462,3319,7.784,4281,2.374,4369,3.507,4370,4.256,4466,7.546,4666,4.041,5059,3.669,6514,7.709,8178,3.333,8427,4.141,8458,8.669,8463,9.331,8469,2.938,8940,6.963,10908,4.141,10910,9.419,10923,8.917,10924,4.552,10925,4.552,10929,4.754,10977,6.963,10978,11.916,10979,5.436,10980,7.961,10981,7.961,10982,9.42,10983,7.961,10984,7.961,10985,7.961,10986,5.436,10987,8.377,10988,7.961,10989,5.436,10990,7.961,10991,5.436,10992,5.436,10993,5.436,10994,7.961,10995,9.568,10996,5.436,10997,7.961,10998,5.436,10999,4.552,11000,7.376,11001,5.436,11002,7.359,11003,6.963,11004,5.436,11005,5.436,11006,8.239,11007,7.961,11008,7.961,11009,5.436,11010,4.754,11011,5.436,11012,5.436,11013,5.436,11014,7.961,11015,5.436,11016,5.436,11017,5.436,11018,7.961,11019,5.436,11020,5.436,11021,5.436,11022,5.436,11023,5.436,11024,5.436,11025,5.436,11026,5.436,11027,5.436,11028,4.552,11029,5.436,11030,5.436,11031,5.436,11032,5.436,11033,5.436,11034,5.436]],["title/entities/GroupEntity.html",[380,1.445,6514,5.055]],["body/entities/GroupEntity.html",[0,0.362,3,0.016,4,0.016,5,0.008,7,0.102,26,1.975,27,0.511,30,0.001,31,0.641,32,0.181,33,0.6,34,1.153,47,0.759,95,0.163,96,1.855,101,0.018,103,0.001,104,0.001,165,0.73,240,3.375,334,0.728,364,2.259,369,2.872,370,4.086,380,1.979,381,2.255,398,1.998,399,3.695,402,2.81,404,1.222,405,1.807,406,2.205,618,2.773,619,5.163,783,4.109,844,5.468,1031,3.589,1166,4.468,1858,4.878,2095,2.69,2545,3.606,2578,3.023,3090,4.954,4265,7.576,4271,6.242,4272,4.109,4281,2.962,4333,4.064,4989,4.266,5059,7.73,6473,3.938,6514,6.924,6523,3.792,6751,4.576,8434,5.309,8435,5.93,8458,7.73,8463,9.401,10987,7.523,10995,9.401,10999,9.592,11000,9.401,11006,10.018,11010,5.93,11035,6.268,11036,6.78,11037,6.78,11038,6.78,11039,6.78,11040,6.78,11041,6.78,11042,6.268,11043,6.268,11044,4.737,11045,6.268,11046,5.678,11047,6.268,11048,6.268,11049,6.268,11050,6.268]],["title/interfaces/GroupEntityProps.html",[334,0.731,10987,5.493]],["body/interfaces/GroupEntityProps.html",[0,0.368,3,0.017,4,0.017,5,0.008,7,0.105,26,2.458,30,0.001,31,0.679,32,0.185,33,0.63,34,1.972,47,0.827,95,0.164,96,1.909,101,0.018,103,0.001,104,0.001,165,0.744,240,3.014,334,0.75,336,1.67,369,2.573,370,3.558,380,2.019,398,2.056,399,3.769,402,2.893,404,1.258,405,1.86,406,2.27,618,2.854,619,5.267,783,4.23,844,5.699,1031,3.384,1166,4.558,1858,3.656,2095,2.769,2545,3.713,2578,3.112,3090,5.246,4271,6.318,4272,4.23,4281,3.049,4333,4.183,4989,4.351,5059,8.186,6473,4.054,6514,5.189,6523,3.904,8434,5.466,8435,6.105,8458,8.186,8463,9.798,10987,8.724,10995,9.798,10999,10.157,11000,9.798,11006,10.608,11010,6.105,11035,6.452,11042,6.452,11043,6.452,11044,4.877,11045,6.452,11046,5.845,11047,6.452,11048,6.452,11049,6.452,11050,6.452]],["title/classes/GroupIdParams.html",[0,0.232,10955,5.947]],["body/classes/GroupIdParams.html",[0,0.403,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.406,30,0.001,32,0.134,34,2.015,47,0.845,95,0.152,101,0.016,103,0.001,104,0.001,165,0.928,364,1.793,368,4.642,369,2.629,370,3.243,371,3.267,374,3.142,376,2.252,467,3.108,1000,4.823,4429,8.611,5803,8.245,7464,9.238,10955,10.362,11051,11.847,11052,9.101]],["title/modules/GroupModule.html",[425,1.812,10939,5.493]],["body/modules/GroupModule.html",[0,0.32,3,0.022,4,0.022,5,0.011,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.357,425,3.317,427,3.391,428,3.648,429,3.756,430,3.74,431,3.724,432,4.58,433,4.704,442,4.605,443,3.678,444,3.59,766,3.926,2531,5.073,10939,11.28,11053,9.387,11054,9.387,11055,9.387,11056,11.454,11057,11.348,11058,9.387]],["title/interfaces/GroupNameIdTuple.html",[334,0.731,11059,5.694]],["body/interfaces/GroupNameIdTuple.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.551,32,0.161,39,2.651,47,1.013,101,0.02,103,0.001,104,0.001,165,0.928,334,1.273,336,2.356,348,6.444,350,8.245,361,5.458,853,5.081,4205,3.318,5698,6.71,6473,5.719,11059,10.643,11060,9.101,11061,11.535,11062,8.611]],["title/interfaces/GroupProps.html",[334,0.731,10923,5.493]],["body/interfaces/GroupProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,26,2.49,30,0.001,31,0.687,32,0.188,33,0.635,34,1.998,47,0.936,83,3.864,95,0.151,99,1.202,101,0.016,103,0.001,104,0.001,145,2.458,148,2.987,165,0.76,208,2.692,227,1.31,247,2.823,334,0.774,336,1.724,347,1.963,359,2.512,404,1.978,461,1.648,738,3.746,1166,5.266,1787,6.376,1790,4.098,1873,4.471,3090,5.303,3112,7.841,4242,6.034,5220,5.82,7074,5.084,8427,9.342,8458,9.071,10905,6.66,10907,6.66,10908,9.342,10909,6.66,10910,9.596,10913,6.66,10923,7.841,10924,9.837,10925,9.837,10926,6.66,10927,6.66,10928,6.66,10929,6.301,10930,6.66,10931,6.66,10932,6.301,10933,6.034,10934,6.66]],["title/injectables/GroupRepo.html",[105,0.91,11057,5.694]],["body/injectables/GroupRepo.html",[0,0.172,3,0.012,4,0.012,5,0.006,7,0.076,8,0.91,10,3.042,12,3.452,18,3.808,26,2.639,27,0.48,29,0.911,30,0.001,31,0.652,32,0.166,33,0.563,34,1.702,35,1.359,36,2.744,40,3.638,47,0.643,48,4.714,49,1.986,95,0.149,96,1.381,97,2.183,99,0.842,101,0.008,103,0,104,0,105,1.008,107,1.217,112,2.958,116,4.18,127,0.632,167,4.132,187,0.73,215,1.611,216,0.933,217,1.746,221,2.768,227,1.31,234,1.889,369,1.12,371,1.392,380,2.472,381,2.507,461,1.724,595,3.349,854,3.782,1166,6.062,1790,4.741,1904,2.111,2355,5.753,2367,6.547,2403,5.902,2408,5.266,2410,8.338,2422,4.227,2438,6.592,2545,2.685,3090,2.183,3104,2.287,3314,3.526,3319,4.568,3338,6.592,3381,4.077,4205,2.54,4411,6.088,4416,6.312,5059,3.407,6514,9.089,7074,5.24,8458,3.407,8969,4.415,8976,6.592,10923,9.07,10977,4.415,10987,6.088,10999,4.227,11002,4.666,11057,6.312,11063,5.047,11064,6.967,11065,6.967,11066,5.047,11067,5.047,11068,6.967,11069,5.047,11070,5.047,11071,6.967,11072,5.047,11073,5.047,11074,5.047,11075,5.047,11076,10.003,11077,10.003,11078,10.003,11079,7.537,11080,5.047,11081,5.047,11082,5.047,11083,7.537,11084,9.019,11085,5.047,11086,5.047,11087,5.047,11088,5.047,11089,5.047,11090,5.047]],["title/classes/GroupResponse.html",[0,0.232,10962,5.694]],["body/classes/GroupResponse.html",[0,0.264,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,27,0.542,29,0.607,30,0.001,31,0.677,32,0.187,33,0.607,34,1.936,47,0.919,95,0.155,101,0.013,103,0.001,104,0.001,127,0.97,145,1.961,165,0.798,200,2.412,364,2.348,375,4.784,376,1.772,467,3.448,618,3.167,1011,3.913,1031,2.427,1166,5.46,1249,5.901,2095,3.073,2578,3.453,2888,4.694,3090,4.922,8434,6.065,8458,7.681,8473,9.53,10908,8.67,10962,10.518,11046,6.486,11091,7.745,11092,8.908,11093,10.185,11094,7.745,11095,7.745,11096,7.745,11097,11.61,11098,7.745,11099,10.125,11100,7.745,11101,7.745,11102,7.745,11103,7.745,11104,6.774,11105,6.774,11106,7.159,11107,6.486,11108,7.159,11109,7.159]],["title/classes/GroupResponseMapper.html",[0,0.232,10963,5.947]],["body/classes/GroupResponseMapper.html",[0,0.232,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,8,1.13,27,0.44,29,0.836,30,0.001,31,0.674,32,0.164,33,0.516,34,1.816,35,1.292,47,0.487,48,3.217,55,2.677,56,5.511,59,2.914,70,5.688,95,0.148,99,1.139,100,2.286,101,0.011,103,0.001,104,0.001,111,2.14,145,1.728,217,1.566,227,1.107,234,1.954,461,1.561,496,2.882,627,4.035,851,3.255,852,3.255,854,3.426,974,4.047,1014,5.477,1016,3.285,1180,2.938,1744,4.769,1904,2.855,3090,2.952,4318,8.995,4321,5.514,4322,5.717,4323,4.468,4324,4.236,4342,10.078,4352,10.078,4466,6.672,8427,5.201,8458,4.607,8473,7.836,9163,5.97,10908,5.201,10961,8.995,10962,10.078,10963,8.184,11003,5.97,11097,6.31,11099,7.836,11110,11.486,11111,10.676,11112,9.357,11113,9.357,11114,6.826,11115,6.31,11116,9.357,11117,9.357,11118,6.826,11119,6.826,11120,9.357,11121,6.826,11122,6.31,11123,6.826,11124,9.357,11125,6.826,11126,6.826,11127,6.826,11128,6.826,11129,6.826,11130,6.826,11131,6.826,11132,6.826,11133,6.826,11134,6.826,11135,6.826,11136,6.826,11137,6.826,11138,6.826,11139,6.826,11140,6.826,11141,6.826,11142,6.826,11143,6.826,11144,6.826,11145,6.826,11146,6.826]],["title/classes/GroupRoleUnknownLoggable.html",[0,0.232,11147,5.947]],["body/classes/GroupRoleUnknownLoggable.html",[0,0.305,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,8,1.35,27,0.461,29,0.701,30,0.001,31,0.501,32,0.122,33,0.433,35,1.083,95,0.143,101,0.015,103,0.001,104,0.001,127,1.121,163,2.754,214,3.523,215,2.856,216,1.655,227,0.928,461,2.047,496,5.144,1166,4.293,1216,3.506,1345,3.55,1464,5.611,1465,6.288,1467,2.856,1469,6.318,1646,5.005,3049,6.505,7027,5.553,8288,6.334,8289,6.585,8443,5.945,11147,9.773,11148,12.183,11149,8.949,11150,8.949,11151,10.307,11152,8.949,11153,10.329,11154,8.949,11155,8.949,11156,6.505,11157,8.949,11158,8.949,11159,8.949]],["title/injectables/GroupRule.html",[105,0.91,1891,5.694]],["body/injectables/GroupRule.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.12,8,1.248,27,0.474,29,0.901,30,0.001,31,0.644,32,0.166,33,0.556,35,1.25,95,0.162,99,1.32,101,0.013,103,0.001,104,0.001,105,1.382,107,1.907,116,4.04,127,0.991,187,1.144,199,4.346,214,2.494,215,2.525,216,1.463,217,1.344,227,1.071,347,2.623,369,1.756,461,3.099,806,3.221,1166,6.427,1790,5.578,1795,6.588,1823,8.048,1861,7.388,1891,8.65,2002,6.664,2006,6.409,2013,5.256,3385,6.862,3386,5.34,3389,6.76,3392,5.34,3393,6.971,3394,5.882,5987,5.634,11160,7.912,11161,7.912,11162,7.912,11163,7.912,11164,7.912,11165,10.329]],["title/injectables/GroupService.html",[105,0.91,11056,5.493]],["body/injectables/GroupService.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.018,10,3.401,12,3.86,18,4.258,26,2.821,27,0.515,29,0.978,30,0.001,31,0.699,32,0.173,33,0.604,34,1.83,35,1.477,36,2.875,40,4.068,47,0.702,48,5.069,95,0.152,99,0.981,101,0.01,103,0,104,0,105,1.127,107,1.417,112,3.055,116,4.317,127,0.736,167,3.625,187,0.85,214,1.854,215,1.877,216,1.087,217,1.542,221,2.825,227,1.229,234,0.955,305,1.675,461,1.345,854,2.951,1166,6.707,1876,7.058,1904,2.46,2531,3.178,2725,2.664,4205,1.982,4411,6.807,4416,7.058,6473,4.895,7074,5.635,8369,3.564,9674,4.108,9675,4.274,11056,6.807,11057,9.924,11064,7.79,11065,7.79,11068,7.79,11071,7.79,11166,5.88,11167,8.427,11168,5.88,11169,5.88,11170,8.427,11171,5.88,11172,5.88,11173,5.88,11174,5.88,11175,5.88,11176,8.427,11177,5.88,11178,8.427,11179,5.88,11180,8.427,11181,5.88,11182,5.88,11183,5.88,11184,5.88,11185,8.427,11186,5.88,11187,5.88]],["title/injectables/GroupUc.html",[105,0.91,10940,5.694]],["body/injectables/GroupUc.html",[0,0.278,2,0.386,3,0.008,4,0.008,5,0.004,7,0.052,8,0.678,26,2.798,27,0.461,29,0.876,30,0.001,31,0.653,32,0.152,33,0.541,35,1.317,36,2.717,39,2.195,47,0.684,48,3.338,55,2.513,56,5.221,59,1.078,70,5.214,95,0.157,99,0.578,100,1.159,101,0.006,103,0,104,0,105,0.751,107,0.834,111,2.677,112,2.881,116,2.989,127,0.703,129,5.058,132,4.571,144,0.952,145,2.666,187,0.5,189,3.112,191,1.918,192,2.111,216,1.947,217,1.738,221,3.01,227,1.21,234,1.15,247,2.2,284,5.187,319,1.034,461,2.489,496,2.371,766,1.448,843,1.527,1014,4.576,1166,6.204,1566,2.795,1567,2.375,1801,2.074,1884,5.464,1904,1.448,1982,3.365,1988,4.174,2686,2.516,2725,1.568,3015,5.266,3104,4.06,3364,3.998,4154,4.397,4176,2.71,4205,3.235,4318,9.546,4323,4.637,4324,3.484,4406,8.466,4411,4.535,4416,4.702,4431,6.616,4435,3.789,4466,4.735,4541,3.923,4552,2.573,4593,1.749,4652,7.515,4737,5.872,6473,3.261,7074,3.711,7464,5.15,9638,4.911,10293,3.14,10752,3.574,10820,2.795,10910,5.266,10940,4.702,10943,3.199,10961,4.397,11056,7.752,11107,2.898,11122,5.19,11188,3.461,11189,5.615,11190,7.084,11191,5.615,11192,5.615,11193,5.615,11194,5.615,11195,3.461,11196,7.199,11197,8.166,11198,3.461,11199,5.615,11200,3.461,11201,8.151,11202,3.461,11203,3.461,11204,3.461,11205,3.461,11206,5.615,11207,3.461,11208,5.615,11209,3.461,11210,5.615,11211,3.461,11212,5.615,11213,3.461,11214,5.615,11215,3.461,11216,3.199,11217,4.637,11218,3.027,11219,7.239,11220,3.027,11221,3.461,11222,3.461,11223,3.461,11224,2.71,11225,5.19,11226,3.461,11227,3.461,11228,3.461,11229,3.461,11230,3.461,11231,3.461,11232,3.461,11233,3.461,11234,3.461,11235,5.615,11236,8.151,11237,8.151,11238,3.461,11239,3.461,11240,3.461,11241,3.461,11242,3.199,11243,3.461,11244,3.461,11245,3.461,11246,3.461,11247,3.461,11248,3.461,11249,3.461,11250,3.461,11251,3.461,11252,3.461,11253,3.461,11254,7.535,11255,5.615,11256,3.461,11257,3.199,11258,3.199,11259,3.461,11260,3.461,11261,3.461,11262,3.461,11263,3.461,11264,3.461,11265,2.898,11266,3.461,11267,5.19,11268,3.461,11269,3.461,11270,3.461,11271,5.615,11272,3.461,11273,3.461,11274,3.461,11275,3.461]],["title/classes/GroupUcMapper.html",[0,0.232,11220,5.947]],["body/classes/GroupUcMapper.html",[0,0.405,2,0.737,3,0.016,4,0.016,5,0.008,7,0.1,8,1.106,27,0.433,29,0.822,30,0.001,31,0.707,32,0.172,33,0.508,34,1.786,35,1.271,59,2.852,95,0.158,99,1.104,100,2.214,101,0.011,103,0.001,104,0.001,116,3.271,217,1.549,227,1.089,234,1.705,627,4.007,1166,6.342,1249,6.975,1567,4.539,1904,2.766,2470,4.539,3090,2.86,3104,4.757,3147,4.267,4277,5.538,4318,10.226,4321,7.395,4322,7.667,4323,7.417,4324,7.384,4331,5.784,4466,7.15,4571,3.604,7074,6.232,8458,4.463,9718,4.394,10752,7.214,10961,9.318,11104,8.007,11105,5.784,11107,5.538,11216,6.113,11217,7.417,11219,10.549,11220,8.007,11242,6.113,11254,10.476,11267,10.476,11276,11.333,11277,6.613,11278,9.155,11279,10.5,11280,9.155,11281,9.155,11282,6.613,11283,6.613,11284,6.613,11285,9.155,11286,6.613,11287,6.613,11288,6.613,11289,6.613,11290,6.613,11291,6.613,11292,6.613,11293,6.613,11294,9.155,11295,6.613,11296,6.613,11297,6.613,11298,6.613,11299,6.613,11300,6.613,11301,6.613,11302,6.613]],["title/classes/GroupUser.html",[0,0.232,10910,5.055]],["body/classes/GroupUser.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,26,2.838,27,0.517,29,0.749,30,0.001,31,0.536,32,0.171,33,0.463,39,3.379,95,0.123,99,1.596,101,0.016,103,0.001,104,0.001,127,1.198,165,0.912,405,3.102,415,5.17,416,6.088,595,3.203,4666,9.329,10910,9.95,11303,13.059,11304,8.842,11305,11.642,11306,9.565,11307,8.366,11308,8.366]],["title/classes/GroupUserEntity.html",[0,0.232,10995,5.324]],["body/classes/GroupUserEntity.html",[0,0.304,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.502,29,0.699,30,0.001,31,0.5,32,0.165,33,0.432,95,0.143,96,2.443,101,0.019,103,0.001,104,0.001,127,1.118,165,0.874,334,0.959,364,2.032,398,2.631,405,2.973,461,3.167,496,5.846,595,2.99,1844,5.352,2181,6.491,2574,5.759,4989,5.574,6751,7.531,7574,6.238,10995,8.737,11309,10.677,11310,7.478,11311,11.151,11312,11.158,11313,8.929,11314,6.491,11315,6.803]],["title/interfaces/GroupUserEntityProps.html",[334,0.731,11311,5.947]],["body/interfaces/GroupUserEntityProps.html",[0,0.319,3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.156,95,0.148,96,2.562,101,0.019,103,0.001,104,0.001,165,0.9,334,1.006,336,2.241,398,2.759,405,2.495,461,3.229,496,5.96,1844,5.613,2181,6.807,2574,5.931,4989,5.695,7574,6.543,10995,7.333,11309,7.843,11310,7.843,11311,10.875,11314,6.807,11315,7.135]],["title/classes/GroupUserResponse.html",[0,0.232,11099,5.694]],["body/classes/GroupUserResponse.html",[0,0.291,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,27,0.534,29,0.668,30,0.001,31,0.478,32,0.176,33,0.413,34,2.027,47,0.944,95,0.139,99,1.424,101,0.014,103,0.001,104,0.001,127,1.069,165,0.849,364,2.284,376,1.952,461,1.952,467,3.57,496,5.032,618,3.489,738,4.436,851,5.683,852,5.683,1031,2.674,2181,6.202,2888,5.171,3146,5.668,3147,5.505,4571,7.055,9538,5.668,9540,5.668,11099,10.842,11316,13.232,11317,6.892,11318,10.023,11319,10.843,11320,8.532,11321,8.532,11322,8.532,11323,8.532]],["title/interfaces/GroupUsers.html",[334,0.731,11324,5.055]],["body/interfaces/GroupUsers.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.984,55,2.651,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,5.563,4511,6.177,6473,5.316,11324,8.423,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,6.803]],["title/classes/GroupValidPeriodEntity.html",[0,0.232,11000,5.324]],["body/classes/GroupValidPeriodEntity.html",[0,0.311,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.507,29,0.715,30,0.001,31,0.511,32,0.167,33,0.442,83,4.118,95,0.117,96,2.498,101,0.019,103,0.001,104,0.001,127,1.144,165,0.886,240,4.19,334,0.981,364,2.061,398,2.69,405,3.015,595,3.057,783,7.789,2574,5.839,8178,7.879,8436,7.987,8437,7.987,8438,7.987,8439,7.987,11000,8.86,11309,10.762,11338,8.441,11339,11.24,11340,11.315,11341,9.131]],["title/interfaces/GroupValidPeriodEntityProps.html",[334,0.731,11339,5.947]],["body/interfaces/GroupValidPeriodEntityProps.html",[0,0.33,3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.159,83,4.264,95,0.124,96,2.648,101,0.02,103,0.001,104,0.001,165,0.918,240,4.002,334,1.04,336,2.317,398,2.852,405,2.579,783,5.867,2574,6.052,8178,8.234,8436,8.466,8437,8.466,8438,8.466,8439,8.466,11000,7.58,11309,8.107,11338,8.948,11339,11.034]],["title/interfaces/GroupfoldersCreated.html",[334,0.731,11337,5.055]],["body/interfaces/GroupfoldersCreated.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,2.188,47,0.96,55,2.847,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,5.316,11324,6.803,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,8.423]],["title/interfaces/GroupfoldersFolder.html",[334,0.731,11335,5.055]],["body/interfaces/GroupfoldersFolder.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.96,55,2.847,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,5.316,11324,6.803,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,8.423,11336,9.799,11337,6.803]],["title/classes/GuardAgainst.html",[0,0.232,11342,5.947]],["body/classes/GuardAgainst.html",[0,0.287,2,0.941,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,27,0.348,29,0.844,30,0.001,31,0.473,32,0.146,33,0.408,35,1.304,101,0.014,103,0.001,104,0.001,144,3.771,145,3.341,167,4.856,227,0.875,264,4.526,305,2.405,379,1.913,627,3.639,692,4.93,1129,6.195,1345,3.35,2299,10.091,4670,9.02,8050,7.829,8369,7.572,11342,9.42,11343,10.77,11344,8.443,11345,10.77,11346,10.77,11347,12.905,11348,8.443,11349,9.956,11350,8.206,11351,8.434,11352,9.42,11353,10.77]],["title/controllers/H5PEditorController.html",[481,2.611,11354,5.947]],["body/controllers/H5PEditorController.html",[0,0.224,3,0.016,4,0.016,5,0.008,7,0.099,8,1.101,27,0.376,30,0.001,32,0.187,35,1.103,47,0.468,72,2.976,95,0.145,101,0.011,103,0.001,104,0.001,112,2.707,187,0.95,217,0.855,227,1.274,364,1.66,376,1.503,447,2.723,481,2.523,483,3.133,502,7.969,506,7.396,538,2.96,553,6.342,554,8.193,555,3.416,556,3.495,558,3.152,561,3.522,563,5.462,564,4.708,627,2.796,1016,3.968,1125,3.896,1345,3.616,1353,5.051,1392,7.062,1397,3.504,2145,4.128,2468,7.362,2643,6.078,2783,6.272,2900,6.775,2904,6.944,2905,6.944,3100,9.923,3578,4.703,5072,8.629,6430,7.137,8362,8.849,10303,5.006,11354,7.971,11355,9.152,11356,10.464,11357,6.57,11358,9.152,11359,11.301,11360,11.301,11361,13.04,11362,9.114,11363,9.114,11364,6.57,11365,6.57,11366,6.57,11367,6.57,11368,6.57,11369,6.57,11370,6.074,11371,6.57,11372,7.451,11373,6.57,11374,6.57,11375,6.57,11376,9.114,11377,6.57,11378,6.57,11379,6.074,11380,6.57,11381,6.57,11382,6.57,11383,6.57,11384,6.57,11385,6.57,11386,6.57,11387,6.57,11388,9.114,11389,6.57]],["title/modules/H5PEditorModule.html",[425,1.812,11390,5.694]],["body/modules/H5PEditorModule.html",[0,0.238,3,0.017,4,0.017,5,0.008,30,0.001,32,0.095,47,0.498,87,3.503,94,4.615,95,0.175,96,2.599,99,1.165,101,0.012,103,0.001,104,0.001,154,3.197,187,1.009,217,1.509,234,1.133,369,1.549,381,2.322,398,2.056,425,2.878,427,2.521,428,2.713,429,2.793,430,2.781,431,2.769,432,4.266,433,2.638,442,3.801,443,2.735,444,2.669,447,4.477,449,4.285,461,2.471,496,4.011,511,3.527,574,3.064,701,3.359,722,3.112,731,2.758,778,6.412,801,4.054,844,4.327,885,4.8,953,4.568,1187,3.328,1188,3.289,1189,3.289,1190,3.479,1267,4.637,1268,4.28,1467,2.228,1507,8.313,1646,3.904,1852,2.947,1878,6.763,2356,5.14,2644,3.742,2725,3.162,4865,4.79,5460,4.568,5511,4.711,6422,8.313,8469,5.135,9925,4.97,10416,4.877,10577,7.062,10578,7.062,10579,5.074,10580,7.238,10581,4.97,10582,5.074,10589,6.906,10590,6.906,10591,6.906,10592,5.074,10593,4.877,10595,5.845,10604,7.238,10605,5.189,10606,5.189,10607,5.074,10608,5.638,10609,5.189,10610,5.318,10611,6.105,10752,6.047,10753,6.452,11354,9.447,11355,6.105,11358,6.105,11390,11.381,11391,6.98,11392,6.98,11393,6.98,11394,6.452,11395,6.98,11396,6.98,11397,6.98,11398,6.98]],["title/modules/H5PEditorTestModule.html",[425,1.812,11399,5.947]],["body/modules/H5PEditorTestModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,8,0.839,27,0.286,29,0.544,30,0.001,31,0.389,32,0.094,33,0.336,35,0.841,59,2.163,94,4.598,95,0.173,99,1.159,101,0.012,103,0.001,104,0.001,187,1.004,217,1.402,227,0.72,381,2.31,425,3.083,427,2.508,428,2.698,429,2.778,430,2.767,431,2.755,432,4.257,433,2.624,438,5.853,442,3.788,443,2.721,444,2.655,447,4.465,449,4.803,461,2.166,496,3.997,627,2.905,701,3.347,844,4.312,1297,5.048,1298,6.497,1301,7.156,1467,2.216,1503,9.783,1507,8.3,1878,6.752,2725,3.146,3100,7.647,6422,8.3,8358,4.613,10416,4.851,10423,5.437,10576,8.729,10645,8.458,10646,6.073,10647,8.6,10649,5.048,10650,5.609,10651,5.048,10652,5.609,10653,5.815,10654,7.037,10752,6.026,11355,8.28,11358,6.073,11390,10.463,11394,8.752,11399,12.336,11400,6.944,11401,6.944,11402,6.944,11403,6.944,11404,6.944]],["title/interfaces/HtmlMailContent.html",[334,0.731,1497,5.055]],["body/interfaces/HtmlMailContent.html",[3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,31,0.489,32,0.15,33,0.532,47,1.021,77,5.56,101,0.015,103,0.001,104,0.001,165,0.862,334,1.452,336,2.091,404,2.35,1482,8.181,1483,6.655,1484,8.957,1485,8.385,1486,6.655,1487,4.886,1488,8.181,1489,6.35,1490,6.655,1491,6.35,1492,9.403,1493,6.655,1494,8.181,1495,9.934,1496,9.934,1497,8.957,1498,6.67,1499,6.494,1500,6.494,1501,6.655,1502,6.655]],["title/injectables/HydraOauthUc.html",[105,0.91,11405,5.694]],["body/injectables/HydraOauthUc.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.077,8,0.919,27,0.482,29,0.788,30,0.001,31,0.564,32,0.153,33,0.487,35,1.1,36,2.419,39,1.376,47,0.985,55,1.957,56,2.452,59,2.37,95,0.163,99,0.853,100,2.547,101,0.009,103,0,104,0,105,1.018,107,1.232,111,2.572,112,2.704,127,0.953,144,2.499,165,0.596,187,0.739,204,3.827,216,2.22,217,1.521,221,2.779,227,0.942,234,1.475,247,2.981,305,2.167,319,2.716,334,0.549,347,1.034,359,1.782,369,1.134,498,3.508,529,2.222,564,3.331,661,3.819,731,2.019,907,5.221,982,2.548,1016,2.671,1142,5.225,1187,2.437,1188,2.409,1189,2.409,1270,3.031,1353,2.467,1467,1.631,1605,6.928,1820,4.721,1907,7.116,2022,7.663,2033,3.571,2130,2.233,2131,2.499,2132,2.409,2356,3.733,2357,4.585,3859,2.859,3928,6.145,6141,4.471,6142,4.471,7131,7.168,8823,4.725,9829,4.471,11405,6.371,11406,12.005,11407,5.111,11408,9.087,11409,9.087,11410,10.066,11411,7.608,11412,9.087,11413,7.608,11414,4.471,11415,8.595,11416,9.785,11417,5.111,11418,7.608,11419,5.111,11420,5.111,11421,5.111,11422,10.066,11423,7.608,11424,5.111,11425,7.033,11426,5.111,11427,5.111,11428,5.111,11429,5.863,11430,6.371,11431,4.725,11432,5.418,11433,4.725,11434,4.471,11435,5.53,11436,4.725,11437,4.471,11438,5.111,11439,4.471,11440,9.305,11441,7.608,11442,7.033,11443,5.111,11444,5.111,11445,5.111,11446,7.608,11447,7.61,11448,5.111,11449,5.111,11450,5.111,11451,5.111,11452,5.111,11453,7.608,11454,4.725,11455,4.471,11456,4.281,11457,5.111,11458,5.111,11459,4.281,11460,5.111,11461,5.111,11462,5.111,11463,7.608,11464,5.111,11465,5.111]],["title/classes/HydraRedirectDto.html",[0,0.232,11430,5.694]],["body/classes/HydraRedirectDto.html",[0,0.299,2,0.978,3,0.021,4,0.021,5,0.011,7,0.133,27,0.549,29,0.687,30,0.001,31,0.491,32,0.181,33,0.424,47,0.787,55,2.377,95,0.142,101,0.015,103,0.001,104,0.001,127,1.099,165,0.864,405,2.941,595,2.938,1016,4.239,1205,7.087,2022,8.598,2033,6.13,3928,9.753,6139,10.111,11430,10.934,11447,10.111,11454,11.161,11455,10.56,11456,10.111,11466,8.773,11467,8.773,11468,8.773,11469,8.773,11470,8.773,11471,8.773,11472,8.773,11473,8.11,11474,8.773,11475,8.773,11476,8.773,11477,8.773,11478,8.773,11479,8.773,11480,8.773,11481,8.773,11482,8.773]],["title/injectables/HydraSsoService.html",[105,0.91,11416,5.694]],["body/injectables/HydraSsoService.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.068,8,0.836,27,0.462,29,0.842,30,0.001,31,0.602,32,0.152,33,0.52,35,1.233,36,2.593,47,0.956,95,0.167,99,0.753,100,1.51,101,0.008,103,0,104,0,105,0.926,107,1.087,111,2.424,112,2.611,127,0.867,144,1.24,145,1.142,148,1.388,150,1.562,165,0.542,187,0.652,209,2.288,216,2.07,217,1.678,221,1.602,227,1.057,234,1.534,277,2.793,305,1.285,319,1.348,331,6.013,450,1.853,460,2.594,511,2.279,529,1.961,576,2.546,661,3.539,774,3.096,839,2.151,905,1.878,1142,2.089,1154,7.823,1155,2.62,1157,2.952,1322,6.595,1353,2.177,1467,1.44,1518,3.212,1521,3.945,1586,3.945,1613,2.799,1642,3.212,1695,2.871,1907,3.532,1946,2.997,2022,3.212,2033,3.151,2130,1.97,2131,2.205,2132,2.125,2142,3.353,2292,5.274,2293,3.777,2322,4.17,2327,3.945,2356,3.46,2357,4.303,3859,2.523,3928,9.044,4492,3.353,4584,6.867,4588,2.328,4866,6.595,5530,2.248,6139,9.921,6141,6.054,6142,6.054,6614,6.376,7125,5.145,7131,3.212,7182,4.836,7278,2.734,8259,3.353,8805,3.044,8844,3.151,9285,6.867,9314,3.644,11416,5.797,11425,4.17,11429,6.939,11430,8.533,11431,4.17,11440,6.399,11447,9.676,11455,3.945,11456,9.006,11473,4.17,11483,4.511,11484,6.922,11485,6.922,11486,6.922,11487,6.922,11488,4.511,11489,7.367,11490,4.511,11491,6.922,11492,6.922,11493,4.511,11494,6.922,11495,4.511,11496,6.922,11497,4.511,11498,6.922,11499,4.511,11500,4.511,11501,6.922,11502,4.511,11503,4.511,11504,3.437,11505,4.511,11506,5.797,11507,3.777,11508,4.511,11509,4.511,11510,3.353,11511,3.353,11512,3.353,11513,3.437,11514,4.511,11515,4.511,11516,4.511,11517,4.511,11518,6.922,11519,4.511,11520,4.511,11521,4.511,11522,4.511,11523,6.922,11524,4.511,11525,4.511,11526,3.777,11527,4.17,11528,4.511,11529,4.511,11530,7.911,11531,4.511,11532,4.511,11533,4.511,11534,6.922,11535,4.511,11536,4.511,11537,4.511,11538,6.922,11539,4.511,11540,4.511,11541,4.511,11542,4.511,11543,4.511,11544,4.511,11545,4.511,11546,4.511,11547,4.511,11548,4.511,11549,4.511,11550,4.511,11551,4.511,11552,6.922,11553,4.511,11554,4.511,11555,4.511,11556,6.922,11557,3.096,11558,4.511,11559,4.511,11560,2.997,11561,3.777,11562,3.096,11563,4.511,11564,4.511,11565,3.096,11566,4.511,11567,4.511,11568,2.766,11569,4.511,11570,4.511,11571,3.532,11572,3.044,11573,4.511,11574,4.511,11575,4.511]],["title/interfaces/IAccountConfig.html",[334,0.731,11576,5.947]],["body/interfaces/IAccountConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.165,55,2.79,101,0.017,103,0.001,104,0.001,165,0.953,334,1.106,336,2.465,347,2.62,445,9.52,1764,11.707,11576,10.644,11577,6.951,11578,12.373]],["title/interfaces/IBbbSettings.html",[334,0.731,2249,5.493]],["body/interfaces/IBbbSettings.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.173,47,1.005,101,0.02,103,0.001,104,0.001,165,0.932,217,1.291,334,1.066,336,2.374,1322,10.352,2049,5.119,2246,10.679,2247,11.563,2249,9.612,2252,8.675,11579,9.918,11580,8.675,11581,9.918]],["title/interfaces/ICalendarEvent.html",[334,0.731,3899,5.694]],["body/interfaces/ICalendarEvent.html",[3,0.024,4,0.024,5,0.012,7,0.154,30,0.001,32,0.176,47,0.864,101,0.017,103,0.001,104,0.001,138,5.292,163,4.109,165,0.949,334,1.098,336,2.446,563,6.125,1271,6.505,3889,7.014,3899,10.145,3906,8.256,3909,7.787,11582,10.22,11583,10.22]],["title/interfaces/IClassEntityProps.html",[334,0.731,4274,5.694]],["body/interfaces/IClassEntityProps.html",[0,0.277,2,0.625,3,0.013,4,0.028,5,0.007,7,0.182,26,2.23,30,0.001,31,0.626,32,0.178,33,0.659,34,1.789,47,0.961,49,5.423,55,2.266,62,6.556,95,0.143,96,2.226,97,2.423,99,0.935,101,0.014,103,0,104,0,111,1.123,144,1.541,145,3.231,165,0.751,234,0.91,240,4.1,305,1.596,334,0.602,336,1.341,359,1.953,369,2.788,370,4.059,380,1.729,398,1.65,399,3.229,402,2.322,404,1.009,405,1.493,406,1.822,618,2.291,619,4.511,905,2.333,2095,2.223,4205,3.766,4206,7.956,4207,8.513,4208,8.473,4209,8.513,4210,7.324,4211,8.513,4212,8.513,4255,4.072,4256,5.178,4264,9.127,4271,4.435,4272,3.395,4273,5.178,4274,8.809,4275,4.691,4276,9.724,4277,6.815,4278,5.178,4279,5.178,4280,4.691,4281,2.447,4282,3.321,4283,4.164,4284,7.523,4285,4.387,4286,5.178,4287,5.178,4288,7.523,4289,5.178,4290,7.523,4291,5.178,4292,5.178,4293,6.373,4294,4.164,4295,7.523,4296,5.178,4297,6.2,4298,4.072,4299,7.523,4300,5.178]],["title/interfaces/ICleanOptions.html",[334,0.731,11584,5.493]],["body/interfaces/ICleanOptions.html",[0,0.16,3,0.011,4,0.011,5,0.006,7,0.071,10,1.901,30,0.001,32,0.064,33,0.346,36,2.438,47,0.51,52,3.392,53,3.425,55,2.449,70,4.284,72,3.241,78,8.697,95,0.124,101,0.008,103,0,104,0,111,1.937,112,2.696,127,0.59,145,1.812,165,0.56,204,1.598,216,1.6,217,1.352,221,2.776,227,0.897,234,1.162,247,2.804,264,3.636,305,1.342,319,3.105,334,0.929,336,1.127,346,2.999,347,0.953,368,4.071,371,3.23,379,2.817,403,4.683,432,1.734,461,1.078,529,2.048,575,2.824,627,1.446,701,4.019,768,3.233,773,5.507,798,2.96,803,2.923,894,6.289,905,2.979,907,5.938,1037,3.589,1125,2.793,1129,4.115,1414,2.635,1467,1.504,1639,5.507,1646,4.002,1772,5.603,1920,2.999,1948,4.289,1959,2.567,2130,2.058,2147,3.689,2356,1.935,2357,3.259,2450,2.684,2800,5.662,3090,5.066,3481,4.754,3489,3.291,3490,8.844,3491,6.528,3492,2.793,5451,3.502,5880,7.484,6431,3.689,7027,2.923,7044,2.999,7325,7.916,7799,6.044,7809,7.916,8252,3.589,8310,3.291,10142,4.999,11351,3.689,11584,6.988,11585,2.684,11586,2.888,11587,3.945,11588,3.945,11589,7.566,11590,5.992,11591,6.431,11592,3.689,11593,3.689,11594,5.992,11595,3.945,11596,3.945,11597,8.392,11598,3.945,11599,3.945,11600,5.78,11601,5.451,11602,3.945,11603,3.589,11604,3.689,11605,3.945,11606,3.945,11607,3.945,11608,8.701,11609,3.425,11610,3.945,11611,3.945,11612,7.245,11613,3.083,11614,5.839,11615,3.355,11616,4.911,11617,3.502,11618,3.945,11619,3.945,11620,3.945,11621,8.091,11622,3.945,11623,3.945,11624,3.945,11625,8.091,11626,3.945,11627,3.945,11628,3.945,11629,8.091,11630,8.091,11631,3.689,11632,3.945,11633,3.945,11634,3.945,11635,3.425,11636,3.805,11637,5.201,11638,3.945,11639,3.945,11640,3.945,11641,3.945,11642,3.945,11643,5.095,11644,3.689,11645,3.689,11646,3.945,11647,3.945,11648,3.945,11649,3.945,11650,3.945,11651,3.945,11652,3.945,11653,3.945,11654,3.945,11655,3.945,11656,3.945,11657,3.805]],["title/interfaces/ICollaborativeStorageStrategy.html",[334,0.731,4527,5.493]],["body/interfaces/ICollaborativeStorageStrategy.html",[3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.506,29,0.961,30,0.001,31,0.687,32,0.167,33,0.593,35,1.485,36,2.882,47,0.826,95,0.134,100,4.106,101,0.013,103,0.001,104,0.001,264,3.378,334,1.245,336,1.924,379,2.365,494,7.351,496,4.893,520,6.933,1849,5.237,2051,5.945,3889,5.517,4511,8.578,4521,8.43,4522,8.43,4524,8.43,4525,8.43,4527,8.43,4530,8.43,4531,9.443,4533,7.61,4534,8.43,4538,8.43,4544,5.975,4546,6.294,4547,6.732,4566,9.907,4567,6.493,11658,8.038,11659,10.436,11660,9.127,11661,8.038,11662,8.038,11663,8.038,11664,9.647,11665,8.038,11666,10.436]],["title/interfaces/ICollectionFilePath.html",[334,0.731,11667,6.286]],["body/interfaces/ICollectionFilePath.html",[0,0.09,3,0.006,4,0.021,5,0.01,7,0.04,10,1.065,27,0.109,30,0.001,31,0.432,32,0.061,33,0.283,35,1.016,36,1.919,47,0.895,55,0.966,83,1.372,95,0.143,96,0.722,97,1.142,99,0.441,101,0.013,103,0,104,0,105,0.6,111,2.499,112,2.164,127,0.331,144,0.726,145,0.668,163,2.754,165,0.351,187,0.382,204,0.896,216,1.274,217,1.715,221,2.938,227,1.292,234,0.949,247,1.757,264,3.244,284,2.423,305,0.752,331,1.68,334,0.284,336,0.632,347,0.907,369,0.995,381,0.878,433,0.998,449,1.047,494,1.582,504,1.728,520,1.754,535,1.415,538,2.02,565,2.235,576,2.531,577,2.531,674,1.451,731,1.043,734,4.397,767,2.44,774,1.812,778,1.782,789,3.825,801,1.533,839,1.259,846,1.88,851,2.138,852,2.138,853,2.314,883,2.479,905,2.869,964,1.812,1129,1.518,1187,1.259,1188,1.244,1189,1.244,1190,1.316,1191,1.439,1192,1.812,1193,1.782,1345,2.319,1462,2.309,1467,0.843,1602,1.844,1618,1.533,1630,6.845,1843,5.466,1865,1.202,1944,1.812,1947,4.577,1948,5.884,2015,4.577,2051,1.504,2130,1.153,2131,1.29,2132,1.244,2133,1.68,2139,1.703,2241,1.782,2303,1.07,2355,2.579,2356,1.084,2357,2.042,2401,1.919,2406,2.067,2440,1.504,2461,2.717,2487,5.341,2794,4.975,2801,3.193,2848,4.739,2925,1.582,2997,2.211,3104,2.031,3319,1.6,3495,2.935,3504,2.44,3541,3.622,3578,4.331,3804,4.894,3806,2.44,3807,2.44,3811,7.607,3813,1.812,3815,4.145,3822,7.826,4205,0.89,4428,2.132,4517,3.922,4618,1.812,5022,5.341,5471,2.011,6234,1.782,6314,2.309,6365,2.979,6434,3.133,6901,1.88,7044,2.854,7128,2.132,7299,2.011,7483,1.844,7791,2.132,7792,2.067,7795,8.749,7796,5.77,7799,5.392,7802,3.333,7810,3.583,7821,4.729,7822,5.112,7836,10.344,7860,4.721,7866,6.369,7948,4.345,7996,2.44,7997,2.44,8259,3.333,8260,3.922,8469,4.535,8844,1.844,9285,4.248,9314,2.132,9603,1.68,10273,4.894,10290,4.145,10293,3.269,10303,4.453,10307,2.44,10312,8.705,10316,2.44,10375,3.622,10649,1.919,10678,1.88,11527,2.44,11667,7.757,11668,2.64,11669,2.44,11670,2.44,11671,2.64,11672,2.64,11673,7.718,11674,5.844,11675,3.922,11676,8.391,11677,5.844,11678,6.89,11679,2.64,11680,2.64,11681,2.44,11682,2.64,11683,2.64,11684,2.64,11685,2.309,11686,2.64,11687,4.484,11688,2.64,11689,8.391,11690,4.484,11691,4.484,11692,2.64,11693,2.64,11694,2.64,11695,2.44,11696,2.64,11697,2.64,11698,6.89,11699,2.64,11700,2.64,11701,2.64,11702,2.64,11703,2.64,11704,2.64,11705,2.64,11706,2.64,11707,2.64,11708,2.64,11709,5.844,11710,2.64,11711,6.89,11712,2.64,11713,2.64,11714,1.638,11715,2.64,11716,4.484,11717,4.484,11718,2.64,11719,2.64,11720,2.64,11721,4.484,11722,2.64,11723,2.64,11724,2.64,11725,4.484,11726,3.922,11727,4.484,11728,4.484,11729,2.64,11730,2.64,11731,2.64,11732,2.64,11733,2.64,11734,2.64,11735,2.64,11736,2.64,11737,2.64,11738,2.64,11739,2.64,11740,6.89,11741,2.64,11742,3.755,11743,4.894,11744,2.64,11745,4.484,11746,4.484,11747,2.64,11748,4.484,11749,2.64,11750,4.484,11751,2.64,11752,2.64,11753,2.64,11754,5.844,11755,2.64,11756,2.64,11757,2.067,11758,2.44,11759,2.64,11760,2.64,11761,2.64,11762,3.259,11763,2.211,11764,2.64,11765,2.64,11766,2.64,11767,2.64,11768,2.64,11769,4.484,11770,2.64,11771,2.64,11772,2.64,11773,2.64,11774,1.68,11775,2.64,11776,2.64,11777,2.64,11778,2.64,11779,3.622,11780,2.64,11781,2.64,11782,2.64,11783,2.64,11784,1.962,11785,2.64,11786,2.64,11787,2.64,11788,2.64,11789,2.64,11790,4.484,11791,2.64,11792,2.64,11793,5.844,11794,2.64,11795,2.64,11796,2.64,11797,2.64,11798,2.309,11799,2.64,11800,2.64,11801,3.622,11802,3.622,11803,3.622,11804,2.64,11805,5.403,11806,2.64,11807,2.44,11808,2.309,11809,2.64,11810,2.64,11811,2.64,11812,3.922,11813,2.64,11814,2.64,11815,2.64,11816,2.64,11817,2.64,11818,2.64,11819,2.64,11820,2.64,11821,5.844,11822,2.64,11823,2.64,11824,2.64,11825,2.64,11826,2.64,11827,4.484,11828,3.333,11829,4.484,11830,2.64,11831,4.145,11832,4.484,11833,2.64,11834,4.484,11835,5.844,11836,2.64,11837,2.309,11838,2.44,11839,2.44,11840,2.64,11841,2.64,11842,2.44,11843,1.962,11844,2.44,11845,2.64,11846,2.64,11847,2.64,11848,2.64,11849,2.64,11850,2.64]],["title/interfaces/ICommonCartridgeConfig.html",[334,0.731,11851,5.947]],["body/interfaces/ICommonCartridgeConfig.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,101,0.018,103,0.001,104,0.001,165,0.965,334,1.129,336,2.516,347,2.643,5097,6.784,5098,6.784,11851,10.774,11852,10.513,11853,12.456]],["title/interfaces/ICommonCartridgeElement.html",[334,0.731,5124,4.45]],["body/interfaces/ICommonCartridgeElement.html",[3,0.025,4,0.025,5,0.013,7,0.157,8,1.477,27,0.428,30,0.001,35,1.256,101,0.017,103,0.001,104,0.001,334,1.115,336,2.484,1180,5.261,4993,7.586,5097,7.888,5098,7.888,5124,8.001,5159,8.658,11854,10.378,11855,10.378]],["title/interfaces/ICommonCartridgeFile.html",[334,0.731,5166,5.324]],["body/interfaces/ICommonCartridgeFile.html",[3,0.024,4,0.024,5,0.012,7,0.152,8,1.448,27,0.494,30,0.001,35,1.451,47,0.855,101,0.017,103,0.001,104,0.001,334,1.079,336,2.403,347,2.425,2303,5.381,4993,7.953,5097,8.27,5098,8.27,5166,9.387,5167,10.723,11856,10.042,11857,10.042,11858,10.042]],["title/interfaces/ICommonCartridgeFileBuilder.html",[334,0.731,5100,5.493]],["body/interfaces/ICommonCartridgeFileBuilder.html",[0,0.288,3,0.014,4,0.014,5,0.014,7,0.089,8,1.02,27,0.407,29,0.661,30,0.001,31,0.473,32,0.134,33,0.408,35,1.194,36,2.115,47,0.768,95,0.157,101,0.018,103,0,104,0,111,2.449,112,1.3,127,0.739,214,2.662,215,1.882,216,2.31,217,1.544,227,1.23,234,2.096,334,0.907,336,1.411,595,3.303,667,5.404,701,2.085,1397,2.828,1438,5.449,1858,4.423,2114,6.659,2553,4.205,3195,5.24,4993,7.893,5006,4.618,5007,4.564,5008,5.796,5018,9.307,5030,6.557,5036,6.613,5038,6.613,5046,6.822,5050,6.857,5052,4.763,5059,5.7,5097,6.951,5098,6.951,5099,4.939,5100,9.582,5101,7.726,5102,6.434,5103,7.072,5104,7.807,5105,7.807,5107,7.072,5111,8.262,5113,8.262,5114,9.582,5116,9.867,5117,8.262,5120,4.763,5121,4.763,5122,4.493,5123,4.199,5124,6.457,5125,3.98,5126,6.613,5127,6.822,5128,4.618,5129,6.014,5130,4.618,5131,7.072,5132,4.763,5133,4.939,5134,4.939,5135,4.939,5136,9.021,5137,4.939,5138,7.072,5139,4.939,5140,4.939,5141,7.072,5142,4.939,5143,4.939,5144,4.939,5145,4.939,5146,4.939,5147,4.939,5148,4.939,5149,4.939,5150,4.939,5151,4.939,5152,4.939,5153,4.763,5154,4.939,5155,4.939,5156,4.939,5157,4.939,5158,4.939,5159,3.805,5160,4.939,5161,4.939,5162,4.939,11859,5.897,11860,5.897,11861,5.897]],["title/interfaces/ICommonCartridgeOrganizationBuilder.html",[334,0.731,5116,5.493]],["body/interfaces/ICommonCartridgeOrganizationBuilder.html",[0,0.298,3,0.015,4,0.015,5,0.012,7,0.093,8,1.055,27,0.255,29,0.485,30,0.001,31,0.347,32,0.119,33,0.299,35,0.749,36,1.874,47,0.785,95,0.159,101,0.018,103,0.001,104,0.001,111,2.483,112,1.364,127,0.775,214,2.755,215,1.975,216,2.339,217,1.568,227,1.25,234,2.117,334,0.939,336,1.481,595,2.926,667,4.142,701,2.187,1397,2.926,1438,5.638,1858,4.577,2114,6.837,2553,4.318,3195,5.422,4993,7.686,5006,4.845,5007,4.723,5008,5.997,5018,9.437,5030,6.678,5036,6.842,5038,6.842,5046,7.058,5050,7.007,5052,4.998,5059,5.898,5097,5.638,5098,5.638,5099,5.181,5100,8.892,5101,7.933,5102,6.657,5103,7.318,5107,7.318,5111,8.484,5113,7.318,5114,8.892,5116,10.219,5117,7.318,5120,4.998,5121,4.998,5122,4.714,5123,4.406,5124,6.63,5125,4.176,5126,6.842,5127,7.058,5128,4.845,5129,6.222,5130,4.845,5131,8.484,5132,4.998,5133,5.181,5134,5.181,5135,5.181,5136,9.219,5137,5.181,5138,7.318,5139,5.181,5140,5.181,5141,7.318,5142,5.181,5143,5.181,5144,5.181,5145,5.181,5146,5.181,5147,5.181,5148,5.181,5149,5.181,5150,5.181,5151,5.181,5152,5.181,5153,4.998,5154,5.181,5155,5.181,5156,5.181,5157,5.181,5158,5.181,5159,3.992,5160,5.181,5161,5.181,5162,5.181,5267,8.078,11862,6.187]],["title/interfaces/IComponentEtherpadProperties.html",[334,0.731,11863,4.842]],["body/interfaces/IComponentEtherpadProperties.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.143,26,2.167,30,0.001,31,0.39,32,0.147,47,0.972,55,2.202,95,0.156,96,1.242,101,0.021,103,0,104,0,111,1.395,116,1.414,145,1.762,150,3.886,165,0.545,187,0.657,188,3.775,208,1.696,214,1.432,217,1.627,227,1.296,234,1.539,240,3.242,247,1.779,305,1.982,334,1.244,336,1.087,347,1.407,369,1.877,370,1.496,371,1.919,379,2.443,380,1.478,398,1.338,399,2.76,400,2.004,402,1.882,404,0.818,405,1.21,406,1.477,461,1.039,535,3.73,687,1.936,769,4.125,806,1.849,1031,1.423,1167,2.496,1345,1.802,1353,2.192,1397,3.758,1843,2.152,1865,3.169,2095,1.802,2303,4.371,2627,1.908,2632,3.895,2633,2.179,2636,3.792,2640,2.475,2645,4.429,2646,2.665,2647,4.464,2649,3.771,2650,4.317,2659,2.127,2663,4.554,2767,3.672,2848,4.083,3339,4.244,3452,5.314,3471,6.023,3580,1.849,3607,3.173,3608,3.173,4052,4.082,4217,2.853,4281,1.984,4878,2.784,4882,2.853,4883,2.93,4989,2.08,5015,6.506,5026,3.234,5043,2.563,5050,4.429,5055,6.827,5068,3.234,5074,3.234,5079,3.234,5630,7.4,6365,5.619,6368,6.023,6486,2.93,6508,2.818,6518,5.997,6519,3.017,6520,4.554,6522,4.371,6560,4.429,6561,4.622,6586,4.696,6757,2.818,6758,3.017,8418,4.955,10761,4.696,11863,6.023,11864,3.301,11865,5.384,11866,3.301,11867,4.861,11868,6.689,11869,4.955,11870,3.234,11871,4.955,11872,4.955,11873,4.955,11874,3.301,11875,4.955,11876,3.017,11877,4.955,11878,4.955,11879,3.301,11880,3.301,11881,3.301,11882,3.173,11883,3.173,11884,3.301,11885,3.301,11886,3.301,11887,5.058,11888,5.909,11889,3.173,11890,5.058,11891,3.301,11892,3.301,11893,3.301,11894,3.117,11895,3.301,11896,3.301,11897,5.058,11898,3.301,11899,3.301,11900,6.891,11901,6.148,11902,3.234,11903,3.301,11904,3.301,11905,3.301,11906,3.301,11907,3.301,11908,3.301,11909,3.301,11910,3.301,11911,3.301,11912,3.301,11913,3.301,11914,3.117,11915,3.301,11916,3.301]],["title/interfaces/IComponentGeogebraProperties.html",[334,0.731,11873,4.842]],["body/interfaces/IComponentGeogebraProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.182,30,0.001,31,0.394,32,0.13,47,0.959,55,2.217,95,0.156,96,1.262,101,0.021,103,0,104,0,111,1.412,116,1.437,145,1.783,150,3.31,165,0.552,187,0.667,188,3.802,208,1.724,214,1.455,217,1.633,227,1.301,234,1.552,240,3.265,247,1.808,305,2.006,334,1.25,336,1.104,347,1.424,369,1.896,370,1.52,371,1.942,379,1.936,380,1.496,398,1.359,399,2.794,400,2.036,402,1.912,404,0.831,405,1.229,406,1.501,461,1.055,535,3.776,687,1.967,769,4.176,806,1.878,1031,1.446,1167,2.536,1345,1.831,1353,2.227,1397,3.2,1843,2.187,1865,3.208,2095,1.831,2303,4.398,2627,1.939,2632,3.934,2633,2.214,2636,3.838,2640,2.514,2645,4.483,2646,2.707,2647,4.508,2649,3.808,2650,4.37,2659,2.161,2663,4.609,2767,3.717,2848,4.123,3339,4.286,3452,5.367,3471,6.082,3580,1.878,3607,3.223,3608,3.223,4052,4.132,4217,2.899,4281,2.015,4878,2.829,4882,2.899,4883,2.977,4989,2.113,5015,6.56,5026,3.286,5043,2.604,5050,4.483,5055,6.859,5068,3.286,5074,3.286,5079,3.286,5630,7.447,6365,5.675,6368,6.082,6486,2.977,6508,2.863,6518,6.04,6519,3.065,6520,4.609,6522,4.425,6560,4.483,6561,4.679,6586,4.753,6757,2.863,6758,3.065,8418,5.015,10761,4.753,11863,5.015,11864,3.354,11865,5.437,11866,3.354,11867,4.92,11868,6.737,11869,5.015,11870,3.286,11871,5.015,11872,5.015,11873,6.082,11874,6.948,11875,5.015,11876,3.065,11877,5.015,11878,5.015,11879,3.354,11880,3.354,11881,3.354,11882,3.223,11883,3.223,11884,3.354,11885,3.354,11886,3.354,11887,5.119,11888,5.967,11889,3.223,11890,5.119,11891,3.354,11892,3.354,11893,3.354,11894,3.167,11895,3.354,11896,3.354,11897,5.119,11898,3.354,11899,3.354,11900,6.948,11901,6.209,11902,3.286,11903,3.354,11904,3.354,11905,3.354,11906,3.354,11907,3.354,11908,3.354,11909,3.354,11910,3.354,11911,3.354,11912,3.354,11913,3.354,11914,3.167,11915,3.354,11916,3.354]],["title/interfaces/IComponentInternalProperties.html",[334,0.731,11878,4.842]],["body/interfaces/IComponentInternalProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.182,30,0.001,31,0.394,32,0.13,47,0.959,55,2.217,95,0.156,96,1.262,101,0.021,103,0,104,0,111,1.412,116,1.437,145,1.783,150,3.908,165,0.552,187,0.667,188,3.802,208,1.724,214,1.455,217,1.633,227,1.301,234,1.552,240,3.265,247,1.808,305,2.006,334,1.25,336,1.104,347,1.424,369,1.896,370,1.52,371,1.942,379,1.936,380,1.496,398,1.359,399,2.794,400,2.036,402,1.912,404,0.831,405,1.229,406,1.501,461,1.055,535,3.776,687,1.967,769,4.176,806,1.878,1031,1.446,1167,2.536,1345,1.831,1353,2.227,1397,3.2,1843,2.187,1865,3.208,2095,1.831,2303,4.398,2627,1.939,2632,3.934,2633,2.214,2636,3.838,2640,2.514,2645,4.483,2646,2.707,2647,4.508,2649,3.808,2650,4.37,2659,2.161,2663,4.609,2767,3.717,2848,4.123,3339,4.286,3452,5.367,3471,6.082,3580,1.878,3607,3.223,3608,3.223,4052,4.132,4217,2.899,4281,2.015,4878,2.829,4882,2.899,4883,2.977,4989,2.113,5015,6.56,5026,3.286,5043,2.604,5050,4.483,5055,6.859,5068,3.286,5074,3.286,5079,3.286,5630,7.447,6365,5.675,6368,6.082,6486,2.977,6508,2.863,6518,6.04,6519,3.065,6520,4.609,6522,4.425,6560,4.483,6561,4.679,6586,4.753,6757,2.863,6758,3.065,8418,5.015,10761,4.753,11863,5.015,11864,3.354,11865,5.437,11866,3.354,11867,4.92,11868,6.737,11869,5.015,11870,3.286,11871,5.015,11872,5.015,11873,5.015,11874,3.354,11875,5.015,11876,3.065,11877,5.015,11878,6.082,11879,3.354,11880,3.354,11881,3.354,11882,3.223,11883,3.223,11884,3.354,11885,3.354,11886,3.354,11887,5.119,11888,5.967,11889,3.223,11890,5.119,11891,3.354,11892,3.354,11893,3.354,11894,3.167,11895,3.354,11896,3.354,11897,5.119,11898,3.354,11899,3.354,11900,6.948,11901,6.209,11902,3.286,11903,3.354,11904,3.354,11905,3.354,11906,3.354,11907,3.354,11908,3.354,11909,3.354,11910,3.354,11911,3.354,11912,3.354,11913,3.354,11914,3.167,11915,3.354,11916,3.354]],["title/interfaces/IComponentLernstoreProperties.html",[334,0.731,11875,4.842]],["body/interfaces/IComponentLernstoreProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.18,30,0.001,31,0.394,32,0.147,47,0.949,55,2.215,95,0.156,96,1.259,101,0.021,103,0,104,0,111,1.409,116,1.434,138,3.071,145,1.78,150,3.306,165,0.551,187,0.666,188,3.798,208,1.72,214,1.451,217,1.632,227,1.3,234,1.55,240,3.262,247,1.804,305,2.003,334,1.249,336,1.102,347,1.422,369,1.893,370,1.516,371,1.939,379,1.933,380,1.494,398,1.356,399,2.789,400,2.031,402,1.908,404,0.83,405,1.227,406,1.497,461,1.053,535,3.769,687,1.962,769,4.168,806,1.874,1031,1.442,1167,2.53,1345,1.826,1353,2.222,1397,3.197,1843,2.182,1865,3.202,2095,1.826,2303,4.394,2627,1.935,2632,3.928,2633,2.208,2636,3.831,2640,2.509,2645,4.475,2646,2.701,2647,4.502,2649,3.803,2650,4.363,2659,2.157,2663,4.601,2767,3.71,2848,4.117,3339,4.28,3452,5.359,3471,6.074,3580,1.874,3607,3.216,3608,3.216,4052,4.125,4217,2.892,4281,2.011,4878,2.822,4882,2.892,4883,2.97,4989,2.108,5015,6.552,5026,3.278,5043,2.598,5050,6.546,5055,6.854,5068,3.278,5074,3.278,5079,3.278,5630,7.44,6365,5.667,6368,6.074,6486,2.97,6508,2.856,6518,6.034,6519,3.058,6520,4.601,6522,4.417,6560,4.475,6561,4.671,6586,4.745,6757,2.856,6758,3.058,8418,5.006,10761,4.745,11863,5.006,11864,3.346,11865,5.429,11866,3.346,11867,4.912,11868,6.73,11869,5.006,11870,3.278,11871,5.006,11872,5.006,11873,5.006,11874,3.346,11875,6.074,11876,3.058,11877,5.006,11878,5.006,11879,3.346,11880,3.346,11881,3.346,11882,3.216,11883,3.216,11884,3.346,11885,3.346,11886,3.346,11887,5.11,11888,5.959,11889,3.216,11890,5.11,11891,3.346,11892,3.346,11893,3.346,11894,3.159,11895,3.346,11896,3.346,11897,5.11,11898,3.346,11899,3.346,11900,6.94,11901,6.2,11902,3.278,11903,3.346,11904,3.346,11905,3.346,11906,3.346,11907,3.346,11908,3.346,11909,3.346,11910,3.346,11911,3.346,11912,3.346,11913,3.346,11914,3.159,11915,3.346,11916,3.346]],["title/interfaces/IComponentNexboardProperties.html",[334,0.731,11877,4.842]],["body/interfaces/IComponentNexboardProperties.html",[0,0.153,3,0.011,4,0.011,5,0.005,7,0.143,26,2.159,30,0.001,31,0.387,32,0.152,47,0.977,55,2.194,95,0.155,96,1.233,101,0.021,103,0,104,0,111,1.386,116,1.403,145,1.751,150,3.875,165,0.542,187,0.652,188,3.762,208,1.683,214,1.42,217,1.624,227,1.294,234,1.533,240,3.231,247,1.765,305,1.97,334,1.241,336,1.078,347,1.399,369,1.868,370,1.484,371,1.907,379,2.436,380,1.469,398,1.327,399,2.744,400,1.988,402,1.867,404,0.812,405,1.201,406,1.465,461,1.031,535,3.708,687,1.92,769,4.1,806,1.834,1031,1.412,1167,2.476,1345,1.788,1353,2.175,1397,3.747,1843,2.136,1865,3.15,2095,1.788,2303,4.357,2627,3.968,2632,3.876,2633,2.162,2636,3.769,2640,2.455,2645,4.402,2646,2.644,2647,4.442,2649,3.753,2650,4.291,2659,2.111,2663,4.526,2767,3.65,2848,4.063,3339,4.224,3452,5.288,3471,5.993,3580,1.834,3607,3.148,3608,3.148,4052,4.058,4217,2.831,4281,1.968,4878,2.762,4882,2.831,4883,2.907,4989,2.063,5015,6.479,5026,3.208,5043,2.543,5050,4.402,5055,6.812,5068,3.208,5074,3.208,5079,3.208,5630,7.377,6365,5.592,6368,5.993,6486,2.907,6508,2.796,6518,5.976,6519,2.993,6520,4.526,6522,4.345,6560,4.402,6561,4.594,6586,4.668,6757,2.796,6758,2.993,8418,4.925,10761,4.668,11863,4.925,11864,3.275,11865,5.357,11866,3.275,11867,4.832,11868,6.666,11869,4.925,11870,3.208,11871,4.925,11872,4.925,11873,4.925,11874,3.275,11875,4.925,11876,2.993,11877,5.993,11878,4.925,11879,3.275,11880,3.275,11881,3.275,11882,3.148,11883,3.148,11884,3.275,11885,3.275,11886,3.275,11887,5.027,11888,5.88,11889,3.148,11890,5.027,11891,3.275,11892,3.275,11893,3.275,11894,3.092,11895,3.275,11896,3.275,11897,5.027,11898,3.275,11899,3.275,11900,6.863,11901,6.118,11902,3.208,11903,3.275,11904,3.275,11905,3.275,11906,3.275,11907,3.275,11908,3.275,11909,3.275,11910,3.275,11911,3.275,11912,3.275,11913,3.275,11914,3.092,11915,3.275,11916,3.275]],["title/interfaces/IComponentTextProperties.html",[334,0.731,11872,4.842]],["body/interfaces/IComponentTextProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.182,30,0.001,31,0.394,32,0.13,47,0.959,55,2.217,95,0.156,96,1.262,101,0.021,103,0,104,0,111,1.412,116,1.437,145,1.783,150,3.31,165,0.552,187,0.667,188,3.802,208,1.724,214,1.455,217,1.633,227,1.301,234,1.552,240,3.265,247,1.808,305,2.006,334,1.25,336,1.104,347,1.424,369,1.896,370,1.52,371,1.942,379,1.936,380,1.496,398,1.359,399,2.794,400,2.036,402,1.912,404,0.831,405,1.229,406,1.501,461,1.055,535,3.776,687,1.967,769,4.176,806,1.878,1031,1.446,1167,2.536,1345,1.831,1353,2.227,1397,3.2,1843,2.187,1865,3.208,2095,1.831,2303,4.398,2627,1.939,2632,3.934,2633,2.214,2636,3.838,2640,2.514,2645,4.483,2646,2.707,2647,4.508,2649,3.808,2650,4.37,2659,2.161,2663,4.609,2767,3.717,2848,5.238,3339,4.286,3452,5.367,3471,6.082,3580,1.878,3607,3.223,3608,3.223,4052,4.132,4217,2.899,4281,2.015,4878,2.829,4882,2.899,4883,2.977,4989,2.113,5015,6.56,5026,3.286,5043,2.604,5050,4.483,5055,6.859,5068,3.286,5074,3.286,5079,3.286,5630,7.447,6365,5.675,6368,6.082,6486,2.977,6508,2.863,6518,6.04,6519,3.065,6520,4.609,6522,4.425,6560,4.483,6561,4.679,6586,4.753,6757,2.863,6758,3.065,8418,5.015,10761,4.753,11863,5.015,11864,3.354,11865,5.437,11866,3.354,11867,4.92,11868,6.737,11869,5.015,11870,3.286,11871,5.015,11872,6.082,11873,5.015,11874,3.354,11875,5.015,11876,3.065,11877,5.015,11878,5.015,11879,3.354,11880,3.354,11881,3.354,11882,3.223,11883,3.223,11884,3.354,11885,3.354,11886,3.354,11887,5.119,11888,5.967,11889,3.223,11890,5.119,11891,3.354,11892,3.354,11893,3.354,11894,3.167,11895,3.354,11896,3.354,11897,5.119,11898,3.354,11899,3.354,11900,6.948,11901,6.209,11902,3.286,11903,3.354,11904,3.354,11905,3.354,11906,3.354,11907,3.354,11908,3.354,11909,3.354,11910,3.354,11911,3.354,11912,3.354,11913,3.354,11914,3.167,11915,3.354,11916,3.354]],["title/interfaces/IContextExternalToolProperties.html",[334,0.731,5783,5.694]],["body/interfaces/IContextExternalToolProperties.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,29,0.977,30,0.001,32,0.174,33,0.58,47,0.947,55,2.583,95,0.16,96,2.075,101,0.017,103,0.001,104,0.001,165,0.787,192,2.26,199,2.866,200,3.735,209,2.507,240,3.957,334,0.815,336,1.815,369,2.229,370,2.498,380,2.134,398,2.234,399,3.985,402,3.144,404,1.367,405,2.021,406,2.467,1530,5.638,1858,3.973,4271,5.474,4272,4.597,4773,7.476,4989,4.601,5352,7.319,5694,4.405,5698,6.346,5717,4.828,5718,5.205,5719,5.039,5720,5.513,5721,5.401,5722,5.638,5760,7.837,5768,5.513,5769,6.352,5770,6.126,5771,10.446,5773,10.91,5776,9.766,5778,9.067,5781,6.352,5782,4.894,5783,9.433,5784,7.011,5785,7.011,5786,7.011,5787,6.634,5788,6.352,5789,6.126,5790,6.352]],["title/interfaces/ICopyFileDO.html",[334,0.731,10515,5.181]],["body/interfaces/ICopyFileDO.html",[3,0.018,4,0.024,5,0.009,7,0.115,10,3.061,26,2.876,30,0.001,31,0.699,32,0.153,33,0.486,34,2.122,39,2.042,47,0.958,55,1.634,83,2.32,95,0.129,99,1.266,101,0.022,103,0.001,104,0.001,165,0.787,188,2.801,192,2.26,204,3.408,217,0.987,334,1.288,336,1.815,461,1.735,538,3.417,1015,4.242,1031,3.53,1255,6.78,1487,4.242,2130,3.313,2131,3.707,2132,3.574,2524,4.45,2649,3.382,2659,3.553,2702,3.417,2849,3.28,3090,3.28,3143,3.973,3339,5.652,3353,5.205,3578,5.813,3610,4.91,3720,4.28,3859,4.242,4205,2.556,4748,4.204,5043,4.28,5055,4.362,6173,7.966,6189,6.138,6191,6.575,6215,5.638,6216,4.204,6217,4.942,6218,4.964,10028,7.302,10029,7.302,10030,7.302,10031,4.765,10501,5.638,10514,5.939,10515,7.653,10516,5.778,10617,5.939,10621,8.82,11917,6.352,11918,6.352,11919,6.352,11920,6.352,11921,6.352,11922,6.352]],["title/interfaces/ICopyFileDomainObjectProps.html",[334,0.731,6174,5.694]],["body/interfaces/ICopyFileDomainObjectProps.html",[3,0.023,4,0.023,5,0.014,7,0.146,26,2.925,30,0.001,31,0.733,32,0.171,33,0.565,34,2.227,47,0.898,95,0.124,99,1.608,101,0.016,103,0.001,104,0.001,145,3.188,165,0.916,334,1.035,336,2.305,359,3.359,1904,4.03,3579,4.739,6170,4.462,6173,8.697,6174,9.792,11923,8.906,11924,8.906]],["title/interfaces/ICopyFilesOfParentParams.html",[334,0.731,10617,5.324]],["body/interfaces/ICopyFilesOfParentParams.html",[3,0.018,4,0.03,5,0.009,7,0.115,10,3.073,26,2.817,30,0.001,31,0.564,32,0.153,34,1.713,39,3.233,47,0.933,55,1.64,83,2.329,95,0.129,99,1.271,101,0.022,103,0.001,104,0.001,165,0.789,188,2.812,192,2.269,204,3.417,217,0.991,334,1.29,336,1.822,461,1.741,538,3.43,1015,4.258,1031,3.536,1255,6.797,1487,4.258,2130,3.326,2131,3.721,2132,3.587,2524,4.467,2649,3.394,2659,3.566,2702,5.411,2849,3.293,3090,3.293,3143,3.988,3339,5.663,3353,5.225,3578,5.824,3610,4.922,3720,4.297,3859,4.258,4205,2.566,4748,4.22,5043,4.297,5055,4.379,6173,5.058,6189,6.15,6191,6.591,6215,5.659,6216,4.22,6217,4.954,6218,4.983,10028,7.32,10029,7.32,10030,7.32,10031,4.783,10501,5.659,10514,5.961,10515,5.8,10516,5.8,10617,7.886,10621,10.249,11917,6.376,11918,6.376,11919,6.376,11920,6.376,11921,6.376,11922,6.376]],["title/interfaces/ICopyFilesRequestInfo.html",[334,0.731,6284,5.694]],["body/interfaces/ICopyFilesRequestInfo.html",[3,0.028,4,0.032,5,0.015,7,0.146,26,2.78,30,0.001,32,0.171,39,3.531,95,0.151,99,1.615,101,0.016,103,0.001,104,0.001,165,0.918,334,1.04,336,2.317,367,5.592,2702,5.908,3579,4.762,6170,4.483,6282,10.816,6284,9.82,11923,8.948,11925,8.466]],["title/interfaces/ICoreModuleConfig.html",[334,0.731,11926,5.694]],["body/interfaces/ICoreModuleConfig.html",[3,0.025,4,0.025,5,0.013,30,0.001,95,0.157,101,0.017,103,0.001,104,0.001,334,1.121,336,2.496,404,2.21,425,2.78,558,5.005,2356,4.285,11577,7.041,11926,10.269,11927,10.432,11928,10.907,11929,10.907]],["title/interfaces/ICourseGroupProperties.html",[334,0.731,6756,5.694]],["body/interfaces/ICourseGroupProperties.html",[0,0.239,3,0.017,4,0.017,5,0.008,7,0.189,26,2.463,30,0.001,31,0.681,32,0.174,33,0.461,39,1.889,47,0.866,62,4.117,95,0.17,96,1.919,101,0.016,103,0.001,104,0.001,116,2.97,145,1.777,148,2.159,165,0.848,188,5.024,192,2.841,204,2.381,208,2.621,214,2.212,217,0.913,227,0.728,234,1.139,240,3.024,309,4.035,334,1.024,336,1.679,380,2.026,398,2.067,399,3.783,400,3.096,402,2.908,404,1.264,405,1.87,406,2.282,461,2.658,844,4.933,957,3.89,1107,4.902,1166,3.366,1843,3.326,2095,2.784,2440,3.997,2471,4.592,2632,4.987,2633,3.366,2636,3.824,2640,3.824,2646,4.117,2648,4.902,2650,4.354,2663,4.592,2794,4.16,2849,3.035,3050,5.346,3427,4.815,4205,2.365,4281,3.065,4989,4.367,6152,5.494,6471,4.996,6476,7.634,6511,5.778,6518,4.117,6520,6.24,6521,4.302,6522,5.99,6523,3.924,6539,4.996,6543,4.354,6545,5.668,6560,4.466,6561,7.195,6598,5.668,6747,6.486,6756,9.069,6757,4.354,6758,4.661,6759,6.486,6760,6.486,6761,5.1,6762,6.486,6763,6.486,6764,6.486,6765,6.486,6766,6.486,6767,6.486]],["title/interfaces/ICourseProperties.html",[334,0.731,6524,5.493]],["body/interfaces/ICourseProperties.html",[0,0.196,2,1.016,3,0.008,4,0.008,5,0.004,7,0.155,26,2.171,30,0.001,31,0.545,32,0.17,33,0.635,34,1.231,39,1.949,47,0.909,62,2.095,83,3.6,95,0.151,96,0.977,101,0.012,103,0,104,0,111,1.664,116,3.518,127,0.447,145,2.465,148,1.772,165,0.451,188,3.067,192,2.714,208,1.334,214,1.126,217,1.659,227,1.322,234,1.73,240,3.38,305,1.641,319,2.163,334,0.384,336,0.855,347,1.165,369,2.365,370,3,371,0.985,379,2.206,380,1.224,394,3.281,398,1.052,399,2.285,400,1.576,402,1.48,404,0.643,405,0.952,406,1.161,461,2.692,475,1.746,535,1.915,565,2.871,618,1.46,627,1.767,686,1.946,701,1.263,738,1.857,770,3.415,844,4.435,851,2.746,852,2.746,905,1.487,922,2.991,1031,2.268,1107,2.495,1353,2.78,1397,1.196,1843,2.73,1852,2.432,1858,1.87,1946,2.372,2075,1.963,2095,3.294,2632,4.484,2636,5.306,2640,3.944,2648,2.495,2650,2.216,3090,3.591,3146,2.372,3147,2.304,3319,2.164,3429,2.273,3753,2.216,3777,3.769,3778,3.769,3981,2.596,4052,2.095,4205,1.204,4206,5.154,4221,2.991,4255,6.62,4281,2.516,4324,6.041,4748,1.98,4878,2.19,4989,2.638,6375,2.655,6436,2.543,6468,3.123,6469,7.079,6470,6.571,6471,5.154,6472,6.05,6473,5.655,6474,2.451,6475,6.933,6476,6.117,6477,6.363,6478,7.077,6480,3.123,6482,3.123,6485,3.123,6486,2.304,6488,3.123,6490,7.966,6493,3.123,6495,3.123,6504,3.123,6508,2.216,6509,3.123,6510,3.123,6511,3.49,6512,4.101,6513,3.123,6514,6.77,6515,3.123,6516,4.186,6517,2.885,6518,3.379,6519,2.372,6520,3.769,6521,2.19,6522,3.619,6523,1.997,6524,5.846,6525,4.652,6526,3.123,6527,2.885,6528,2.543,6529,3.123,6530,3.123,6531,2.991,6532,2.655,6533,3.123,6534,3.123,6535,2.796,6536,3.123,6537,3.531,6538,10.158,6539,5.154,6540,2.885,6541,3.887,6542,2.337,6543,2.216,6544,2.14,6545,2.885,6546,3.123,6547,3.123,6548,5.037,6549,5.037,6550,5.037,6551,6.707,6552,4.652,6553,4.388,6554,5.037,6555,4.281,6556,4.388,6557,2.655,6558,3.123,6559,3.123,6560,2.273,6561,3.826,6562,3.123,6563,3.123,6564,3.123,6565,5.037,6566,3.123,6567,3.123,6568,3.123,6569,3.123,6570,3.123,6571,3.123,6572,3.123,6573,5.846,6574,6.33,6575,3.123,6576,3.123,6577,3.123,6578,3.123,6579,3.123,6580,2.596,6581,3.123,6582,3.123,6583,3.123,6584,3.123,6585,3.123,6586,2.41,6587,3.123,6588,2.991,6589,3.123,6590,6.33,6591,5.037,6592,3.123,6593,3.123,6594,2.885,6595,2.885,6596,2.451,6597,3.123,6598,5.846,6599,3.123,6600,3.123,6601,3.123,6602,3.123]],["title/interfaces/ICreateNews.html",[334,0.731,11930,5.493]],["body/interfaces/ICreateNews.html",[3,0.019,4,0.019,5,0.01,7,0.12,26,2.443,30,0.001,32,0.187,33,0.557,34,1.351,47,0.926,83,3.525,95,0.157,101,0.021,103,0.001,104,0.001,138,4.523,165,0.811,188,4.255,192,2.367,334,1.395,336,1.901,347,1.607,379,1.8,380,1.688,696,4.13,844,4.717,1031,2.489,1397,4.088,2303,4.949,2385,4.87,2702,5.705,3642,6.947,4533,4.929,4748,4.403,6847,6.276,6849,5.905,6850,7.434,6853,8.111,6857,6.14,6858,7.533,7035,8.049,10031,4.991,10684,6.416,11930,8.365,11931,7.343,11932,9.572,11933,7.343,11934,7.343,11935,7.343,11936,5.277,11937,6.652,11938,6.416]],["title/interfaces/ICurrentUser.html",[334,0.731,491,3.345]],["body/interfaces/ICurrentUser.html",[3,0.017,4,0.017,5,0.009,7,0.11,26,3.011,30,0.001,32,0.176,33,0.571,34,2.01,39,3.181,47,0.521,48,5.567,72,3.311,85,7.623,94,4.761,95,0.094,99,1.22,101,0.016,103,0.001,104,0.001,165,0.768,200,3.838,334,1.053,336,1.749,347,2.565,348,4.784,355,4.443,369,2.815,404,1.317,461,3.083,491,5.44,496,4.138,522,7.675,575,5.874,728,2.795,770,5.811,1193,6.615,2449,6.727,2468,5.874,3090,5.486,3104,4.44,3110,5.889,3281,6.511,4205,4.275,5058,6.511,5406,4.536,5438,4.784,5442,5.583,7025,9.544,7026,8.208,7027,4.536,7075,5.904,7077,5.433,7098,10.334,11939,6.757,11940,9.06,11941,5.904,11942,6.757,11943,6.757,11944,5.433]],["title/interfaces/IDashboardModelProperties.html",[334,0.731,7571,5.493]],["body/interfaces/IDashboardModelProperties.html",[0,0.324,3,0.017,4,0.017,5,0.008,7,0.183,30,0.001,32,0.147,33,0.459,34,2.216,39,2.558,47,0.892,49,2.746,55,2.497,95,0.156,96,2.599,97,3.019,101,0.019,103,0.001,104,0.001,127,0.874,145,1.767,165,0.744,188,3.509,234,1.543,240,3.678,334,1.021,336,1.67,369,2.397,370,2.299,380,2.295,398,2.056,399,4.285,402,3.938,404,1.712,405,1.86,406,3.09,461,3.022,618,3.885,619,3.869,1397,3.882,1843,4.503,2462,7.851,2630,6.786,2632,4.375,2634,7.238,2636,5.177,2638,5.638,2640,3.804,2642,5.074,2646,4.096,2747,3.602,4272,4.23,4989,3.197,6508,4.331,6523,3.904,6864,4.504,7363,7.62,7548,9.079,7549,5.845,7550,9.365,7551,9.365,7559,7.674,7560,7.062,7561,5.845,7562,7.956,7563,5.845,7564,5.845,7565,5.845,7566,5.845,7567,5.845,7568,5.638,7569,5.845,7570,5.845,7571,8.724,7572,8.816,7573,5.845,7574,4.877,7575,5.845,7576,5.845,7577,5.845,7578,5.845,7579,5.845]],["title/interfaces/IDashboardRepo.html",[334,0.731,7744,5.694]],["body/interfaces/IDashboardRepo.html",[0,0.322,3,0.016,4,0.016,5,0.008,7,0.105,8,1.144,9,3.272,26,2.83,27,0.444,29,0.844,30,0.001,31,0.603,32,0.146,33,0.521,34,1.61,35,1.304,36,2.862,39,3.115,49,2.732,95,0.149,96,1.9,97,3.003,99,1.159,101,0.016,103,0.001,104,0.001,105,1.266,112,2.55,187,1.004,206,3.533,214,2.189,216,1.751,217,1.717,221,2.959,227,1.296,234,1.127,334,0.746,336,1.662,380,1.475,461,1.588,661,2.918,722,3.096,877,4.074,1852,2.932,2355,5.445,2397,4.687,3319,4.209,6828,4.766,7363,7.85,7395,9.082,7431,7.213,7560,5.162,7640,7.413,7662,8.28,7721,6.073,7725,5.437,7726,6.419,7727,8.752,7728,8.28,7729,8.752,7731,9.958,7733,9.421,7735,6.419,7737,9.958,7739,6.419,7740,6.419,7741,8.752,7742,6.419,7743,6.073,7744,9.021,7745,5.29,7746,8.752,7747,6.419,7748,8.752,7749,6.419,7750,9.958,7751,6.419,7752,8.752,7753,6.419,7754,6.419,11945,6.944,11946,6.944,11947,6.944]],["title/interfaces/IEncryptionService.html",[334,0.731,9285,4.943]],["body/interfaces/IEncryptionService.html",[3,0.023,4,0.023,5,0.012,7,0.145,8,1.408,27,0.481,29,0.913,30,0.001,31,0.653,32,0.158,33,0.564,35,1.411,47,1.005,101,0.021,103,0.001,104,0.001,163,3.588,217,1.517,334,1.03,336,2.294,8259,7.127,8260,8.386,9285,8.475,11948,9.588,11949,10.197,11950,9.764,11951,10.777,11952,9.588,11953,10.777,11954,9.588,11955,9.588,11956,9.588]],["title/interfaces/IEntity.html",[334,0.731,2455,5.324]],["body/interfaces/IEntity.html",[3,0.023,4,0.023,5,0.012,7,0.144,30,0.001,32,0.158,34,2.221,47,0.895,49,5.138,83,3.562,95,0.149,96,2.617,97,4.137,101,0.021,103,0.001,104,0.001,165,0.912,192,2.85,334,1.348,336,2.289,404,2.098,591,4.157,592,4.333,844,5.303,1167,7.177,2455,10.226,6511,5.797,11044,6.683,11957,8.366,11958,8.01]],["title/interfaces/IEntityWithSchool.html",[334,0.731,6511,4.121]],["body/interfaces/IEntityWithSchool.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.132,34,1.647,47,0.69,49,4.614,83,3.588,95,0.151,96,2.648,97,4.187,101,0.021,103,0.001,104,0.001,165,0.918,192,3.908,334,1.355,336,2.317,404,2.273,591,4.207,592,4.385,844,5.973,1167,5.32,2455,10.268,6511,7.107,11044,6.763,11957,8.466,11958,8.107]],["title/interfaces/IEntityWithTimestamps.html",[334,0.731,11958,5.694]],["body/interfaces/IEntityWithTimestamps.html",[3,0.023,4,0.023,5,0.011,7,0.144,30,0.001,32,0.158,34,1.619,47,0.679,49,4.567,83,4.16,95,0.149,96,2.604,97,4.117,101,0.021,103,0.001,104,0.001,165,0.909,192,2.837,334,1.345,336,2.278,404,2.257,591,5.667,592,5.907,844,5.287,1167,5.232,2455,10.21,6511,5.77,11044,6.651,11957,8.326,11958,9.721]],["title/interfaces/IError.html",[334,0.731,8355,5.493]],["body/interfaces/IError.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,33,0.575,47,0.909,55,2.746,101,0.02,103,0.001,104,0.001,165,0.932,204,4.325,334,1.278,336,2.374,404,2.144,564,4.847,692,3.705,1216,5.297,8355,10.298,10512,7.373,11959,8.675,11960,9.169]],["title/interfaces/IErrorType.html",[334,0.731,3836,5.947]],["body/interfaces/IErrorType.html",[3,0.024,4,0.024,5,0.012,7,0.151,30,0.001,32,0.189,47,1.006,101,0.017,103,0.001,104,0.001,165,0.936,216,2.365,334,1.073,336,2.391,1397,4.437,1416,8.327,3836,10.454,11961,9.992,11962,9.992]],["title/interfaces/IExternalToolPseudonymEntityProps.html",[334,0.731,8925,5.694]],["body/interfaces/IExternalToolPseudonymEntityProps.html",[0,0.282,3,0.02,4,0.02,5,0.01,7,0.125,26,2.63,30,0.001,32,0.169,33,0.515,34,2.11,39,3.536,47,0.885,49,5.376,95,0.159,96,2.911,97,3.584,99,1.383,101,0.018,103,0.001,104,0.001,165,0.921,167,3.049,200,2.581,209,3.517,240,3.935,334,0.89,336,1.983,380,2.261,394,6.697,398,2.441,399,4.222,402,3.435,404,1.493,405,2.208,406,2.695,415,4.478,416,5.275,618,3.389,619,5.9,4272,5.022,8776,7.156,8917,5.901,8918,7.66,8919,7.66,8920,7.38,8925,9.846,8926,5.505,8927,6.693,8928,6.939,8929,6.023,8930,6.489]],["title/interfaces/IFederalStateProperties.html",[334,0.731,6455,5.694]],["body/interfaces/IFederalStateProperties.html",[0,0.345,3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,31,0.72,32,0.175,33,0.489,47,0.994,55,1.652,83,3.934,95,0.13,96,2.098,101,0.019,103,0.001,104,0.001,165,0.793,240,3.821,334,0.824,336,1.836,369,2.246,370,3.731,371,2.791,380,2.151,398,2.26,399,4.015,400,3.385,402,3.18,404,1.382,405,2.044,406,2.495,591,5.235,592,5.456,620,4.95,621,5.844,622,4.95,623,5.844,1858,4.018,2095,4.015,2574,5.223,4271,5.515,4281,3.351,5736,7.066,5752,5.021,6445,10.981,6446,6.709,6447,6.709,6448,6.709,6449,6.709,6450,6.709,6455,9.486,6456,10.951,6457,10.951,6458,6.709,6459,6.709,6460,6.709,6461,6.709,6462,6.709,6463,6.709,6464,5.265,6465,6.709,6466,6.709,6467,6.007]],["title/interfaces/IFileDO.html",[334,0.731,10516,5.181]],["body/interfaces/IFileDO.html",[3,0.017,4,0.023,5,0.008,7,0.106,10,2.837,26,2.658,30,0.001,31,0.681,32,0.18,33,0.462,34,2.068,39,1.893,47,0.995,55,2.335,83,3.316,95,0.123,99,1.173,101,0.022,103,0.001,104,0.001,165,0.748,188,2.596,192,2.095,204,3.239,217,0.915,334,1.249,336,1.682,461,1.608,538,3.167,1015,6.503,1031,3.397,1255,6.443,1487,6.503,2130,3.07,2131,3.436,2132,3.312,2524,4.124,2649,3.134,2659,3.293,2702,3.167,2849,3.04,3090,3.04,3143,3.681,3339,5.439,3353,4.824,3578,5.594,3610,5.943,3720,3.967,3859,3.931,4205,2.369,4748,3.896,5043,3.967,5055,4.042,6173,4.67,6189,6.625,6191,7.61,6215,8.643,6216,6.446,6217,5.981,6218,7.61,10028,6.939,10029,6.939,10030,6.939,10031,4.416,10501,5.225,10514,5.504,10515,5.355,10516,7.273,10617,5.504,10621,8.488,11917,5.886,11918,5.886,11919,5.886,11920,5.886,11921,5.886,11922,5.886]],["title/interfaces/IFileDomainObjectProps.html",[334,0.731,9802,5.694]],["body/interfaces/IFileDomainObjectProps.html",[3,0.023,4,0.023,5,0.011,7,0.144,26,2.918,30,0.001,31,0.73,32,0.177,34,2.218,47,0.893,95,0.149,99,1.589,101,0.016,103,0.001,104,0.001,165,0.909,334,1.023,336,2.278,359,3.319,1904,3.982,3579,4.683,3610,6.373,6170,4.409,6189,7.105,6217,6.414,8358,6.325,9802,9.721,11924,8.8,11963,8.8]],["title/interfaces/IFileRecordParams.html",[334,0.731,10621,5.324]],["body/interfaces/IFileRecordParams.html",[3,0.018,4,0.024,5,0.009,7,0.115,10,3.073,26,2.878,30,0.001,31,0.564,32,0.153,34,1.713,39,2.05,47,0.933,55,1.64,83,2.329,95,0.129,99,1.271,101,0.022,103,0.001,104,0.001,165,0.789,188,2.812,192,2.269,204,3.417,217,0.991,334,1.29,336,1.822,461,1.741,538,3.43,1015,4.258,1031,3.536,1255,6.797,1487,4.258,2130,3.326,2131,3.721,2132,3.587,2524,4.467,2649,3.394,2659,3.566,2702,3.43,2849,3.293,3090,3.293,3143,3.988,3339,5.663,3353,5.225,3578,5.824,3610,6.105,3720,4.297,3859,4.258,4205,4.047,4748,4.22,5043,4.297,5055,4.379,6173,5.058,6189,6.806,6191,6.591,6215,5.659,6216,4.22,6217,6.144,6218,4.983,10028,7.32,10029,7.32,10030,7.32,10031,4.783,10501,5.659,10514,5.961,10515,5.8,10516,5.8,10617,5.961,10621,9.403,11917,6.376,11918,6.376,11919,6.376,11920,6.376,11921,6.376,11922,6.376]],["title/interfaces/IFileRecordProperties.html",[334,0.731,10046,5.181]],["body/interfaces/IFileRecordProperties.html",[0,0.245,3,0.008,4,0.008,5,0.007,7,0.154,26,2.735,30,0.001,31,0.614,32,0.153,33,0.399,34,0.972,39,0.952,47,0.892,49,3.565,55,1.778,83,3.248,95,0.136,96,1.563,97,1.53,99,0.59,101,0.017,103,0,104,0,116,3.932,145,2.583,148,2.541,165,0.563,187,0.511,188,1.306,192,1.703,204,2.439,217,1.553,227,1.353,234,1.87,240,3.784,247,1.386,305,1.008,334,0.772,336,0.846,347,2.063,359,1.992,369,1.832,370,2.368,371,0.975,380,1.926,398,1.042,399,2.267,402,1.466,404,0.637,405,1.523,406,1.15,461,0.809,564,2.636,574,1.553,576,3.225,591,1.537,592,1.602,701,2.542,770,2.097,775,4.408,905,1.473,938,2.571,946,2.315,1015,5.705,1031,3.196,1180,1.522,1185,2.518,1255,3.857,1350,4.069,1487,5.705,1750,2.535,1852,2.413,1945,2.427,2037,2.075,2038,3.992,2095,3.275,2268,2.015,2440,2.015,2574,2.949,2632,3.802,2643,2.054,2649,1.577,2659,1.657,2849,1.53,3090,1.53,3143,1.852,3339,1.775,3353,2.427,3364,1.996,3610,5.505,3720,1.996,3814,2.629,4205,3.796,4215,2.694,4217,2.222,4271,3.114,4281,1.545,4282,2.097,4748,1.96,5043,1.996,5055,2.034,6170,1.638,6188,4.309,6189,5.282,6190,4.069,6191,5.403,6198,2.471,6206,2.518,6208,2.35,6210,5.226,6216,5.373,6217,5.54,6218,5.931,6511,2.143,6739,2.769,6740,4.248,6854,1.911,9807,2.629,9872,2.694,9875,4.069,9879,2.571,9913,2.471,9923,2.694,9927,2.694,9953,4.354,9956,2.571,9957,2.571,9962,2.694,9963,2.694,10003,2.857,10004,2.769,10005,4.475,10006,2.857,10007,4.475,10009,8.24,10021,6.137,10024,2.857,10025,2.694,10026,4.475,10027,2.629,10028,4.154,10029,4.154,10030,4.154,10031,2.222,10032,4.616,10033,4.616,10034,4.616,10035,4.616,10036,4.616,10037,4.616,10038,4.475,10039,5.572,10040,4.616,10041,2.694,10042,4.248,10043,2.629,10044,4.354,10045,2.694,10046,5.478,10047,5.63,10048,2.518,10049,2.769,10050,2.571,10051,2.571,10052,2.857,10053,2.857,10054,2.694,10055,2.629,10056,2.694,10057,2.857,10058,2.857,10059,2.857,10060,2.857,10061,2.857,10062,2.857,10063,2.857,10064,2.857,10065,2.857,10066,2.857,10067,7.83,10068,2.857,10069,2.857,10070,4.616,10071,2.857,10072,2.857,10073,4.616,10074,4.616,10075,4.616,10076,2.857,10077,2.857,10078,2.857,10079,2.857,10080,2.857,10081,2.857,10082,2.857,10083,4.616,10084,5.808,10085,2.769,10086,2.857,10087,4.616,10088,2.769,10089,2.857,10090,4.616,10091,2.857,10092,5.808,10093,5.808,10094,2.769,10095,5.808,10096,2.857,10097,2.857,10098,2.857,10099,2.857,10100,2.857,10101,2.857,10102,2.857,10103,2.769,10104,2.857,10105,2.857,10106,2.857,10107,2.857,10108,2.857,10109,2.857,10110,2.857,10111,2.857,10112,2.857]],["title/interfaces/IFileRecordSecurityCheckProperties.html",[334,0.731,10038,5.324]],["body/interfaces/IFileRecordSecurityCheckProperties.html",[0,0.251,3,0.009,4,0.009,5,0.007,7,0.156,26,2.552,30,0.001,31,0.552,32,0.115,33,0.476,34,1,39,0.987,47,0.899,49,3.631,55,1.267,83,3.014,95,0.138,96,1.609,97,1.585,99,0.612,101,0.017,103,0,104,0,116,3.959,145,2.621,148,2.594,165,0.577,187,0.53,188,1.354,192,1.753,204,2.499,217,1.567,227,1.361,234,1.889,240,3.819,247,1.436,305,1.044,334,0.791,336,0.877,347,2.093,359,2.05,369,1.87,370,2.426,371,1.011,380,1.961,398,1.08,399,2.333,402,1.519,404,0.66,405,1.567,406,1.192,461,0.838,564,3.611,574,1.609,576,3.319,591,1.593,592,1.66,701,2.604,770,2.173,775,4.516,905,1.526,938,2.664,946,2.399,1015,4.714,1031,3.243,1180,1.577,1185,2.61,1255,3.969,1350,6.571,1487,4.714,1750,2.608,1852,2.483,1945,2.516,2037,2.151,2038,4.109,2095,3.344,2268,2.088,2440,2.088,2574,3.035,2632,3.882,2643,2.129,2649,1.634,2659,1.717,2849,1.585,3090,1.585,3143,1.92,3339,1.839,3353,2.516,3364,2.069,3610,5.059,3720,2.069,3814,2.725,4205,3.488,4215,2.793,4217,2.303,4271,3.205,4281,1.601,4282,2.173,4748,2.032,5043,2.069,5055,2.108,6170,1.698,6188,4.414,6189,4.593,6190,4.188,6191,6.447,6198,2.561,6206,2.61,6208,2.435,6210,5.354,6216,4.083,6217,5.092,6218,3.849,6511,2.221,6739,2.87,6740,4.372,6854,1.981,9807,2.725,9872,2.793,9875,4.188,9879,2.664,9913,2.561,9923,2.793,9927,2.793,9953,4.481,9956,2.664,9957,2.664,9962,2.793,9963,2.793,10003,2.961,10004,2.87,10005,4.605,10006,2.961,10007,4.605,10009,6.808,10021,6.266,10024,2.961,10025,2.793,10026,4.605,10027,2.725,10028,4.275,10029,4.275,10030,4.275,10031,2.303,10032,4.751,10033,4.751,10034,4.751,10035,4.751,10036,4.751,10037,4.751,10038,5.767,10039,6.986,10040,4.751,10041,2.793,10042,4.372,10043,2.725,10044,4.481,10045,2.793,10046,4.481,10047,5.767,10048,2.61,10049,2.87,10050,2.664,10051,2.664,10052,2.961,10053,2.961,10054,2.793,10055,2.725,10056,2.793,10057,2.961,10058,2.961,10059,2.961,10060,2.961,10061,2.961,10062,2.961,10063,2.961,10064,2.961,10065,2.961,10066,2.961,10067,7.957,10068,2.961,10069,2.961,10070,4.751,10071,2.961,10072,2.961,10073,4.751,10074,4.751,10075,4.751,10076,2.961,10077,2.961,10078,2.961,10079,2.961,10080,2.961,10081,2.961,10082,2.961,10083,4.751,10084,5.949,10085,2.87,10086,2.961,10087,4.751,10088,2.87,10089,2.961,10090,4.751,10091,2.961,10092,5.949,10093,5.949,10094,2.87,10095,5.949,10096,2.961,10097,2.961,10098,2.961,10099,2.961,10100,2.961,10101,2.961,10102,2.961,10103,2.87,10104,2.961,10105,2.961,10106,2.961,10107,2.961,10108,2.961,10109,2.961,10110,2.961,10111,2.961,10112,2.961]],["title/interfaces/IFileRequestInfo.html",[334,0.731,6282,5.324]],["body/interfaces/IFileRequestInfo.html",[3,0.023,4,0.023,5,0.012,7,0.147,26,2.933,30,0.001,32,0.172,95,0.151,99,1.627,101,0.016,103,0.001,104,0.001,165,0.923,334,1.047,336,2.333,367,4.649,3579,4.797,3610,6.425,4205,4.43,6170,4.516,6189,7.163,6217,6.467,6282,9.223,8358,6.478,11925,8.528,11963,9.013]],["title/interfaces/IFileStorageConfig.html",[334,0.731,11964,6.286]],["body/interfaces/IFileStorageConfig.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,32,0.158,47,0.93,55,2.954,95,0.149,101,0.021,103,0.001,104,0.001,154,3.696,165,0.82,217,1.656,334,0.867,336,1.931,347,2.484,404,1.885,1359,6.149,2130,3.525,2131,3.945,2132,3.803,2133,5.137,2145,5.071,2469,5.207,3580,3.286,6170,3.738,6267,7.39,6268,6.32,6269,5.638,6270,5.638,6271,5.638,6272,5.638,9797,5.362,10416,5.638,11614,5.447,11926,9.723,11964,10.732,11965,8.07,11966,12.726,11967,12.726,11968,12.726,11969,10.732,11970,9.672,11971,6.519,11972,7.461,11973,6.519,11974,8.07,11975,10.463,11976,6.759,11977,7.461,11978,10.463,11979,8.07,11980,7.059,11981,7.461,11982,8.07,11983,8.07,11984,8.07,11985,8.07,11986,8.07,11987,8.07,11988,8.07]],["title/interfaces/IFilesStorageClientConfig.html",[334,0.731,10629,5.694]],["body/interfaces/IFilesStorageClientConfig.html",[3,0.025,4,0.025,5,0.013,7,0.158,30,0.001,32,0.142,55,2.805,101,0.017,103,0.001,104,0.001,165,0.96,334,1.121,336,2.496,3579,6.032,3580,4.247,6170,4.831,10629,10.269,11577,7.041,11976,11.256,11989,10.432]],["title/interfaces/IFindOptions.html",[334,0.731,6902,4.121]],["body/interfaces/IFindOptions.html",[3,0.023,4,0.023,5,0.012,7,0.145,30,0.001,32,0.171,33,0.632,55,2.511,56,4.6,70,4.748,101,0.022,103,0.001,104,0.001,165,0.913,334,1.253,336,2.294,696,4.985,1031,3.004,2144,7.377,3654,9.764,4431,6.024,6612,7.834,6902,7.066,8961,9.958,9149,10.235,10375,9.418,11990,8.863,11991,8.863]],["title/interfaces/IGridElement.html",[334,0.731,7428,5.694]],["body/interfaces/IGridElement.html",[0,0.192,3,0.008,4,0.008,5,0.004,7,0.136,8,0.68,26,2.428,27,0.417,29,0.64,30,0.001,31,0.457,32,0.156,33,0.395,34,1.635,35,1.225,39,1.516,47,0.87,55,2.658,83,1.062,95,0.091,101,0.018,103,0,104,0,111,2.341,144,1.548,145,2.068,148,3.707,165,0.441,187,0.502,214,1.095,217,1.725,227,1.375,234,1.712,247,3.2,305,2.023,334,0.373,336,0.831,347,1.944,405,0.925,415,3.043,416,2.21,595,1.163,618,3.671,619,3.121,627,2.506,687,3.482,905,2.957,1041,1.942,1166,4.307,1271,5.199,1397,3.39,1680,5.41,1695,3.584,1750,3.623,1865,3.72,2341,2.719,2545,1.847,2553,4.772,2630,7.034,2643,2.017,2644,1.862,2686,2.524,2747,4.215,2767,4.738,3234,2.581,3364,3.178,3433,2.426,3609,3.584,3703,7.518,3753,3.494,4878,2.129,6363,2.908,6470,2.344,6512,9.36,6516,4.093,6596,3.864,6828,5.606,7372,5.817,7395,2.524,7396,3.037,7398,3.037,7401,3.037,7402,2.908,7403,8.05,7405,2.805,7412,4.925,7418,3.037,7422,3.037,7425,3.037,7426,8.05,7428,9.376,7431,6.223,7433,3.037,7434,7.518,7437,3.037,7439,3.037,7441,3.037,7443,3.037,7445,3.037,7447,3.037,7450,3.037,7452,4.925,7453,2.581,7454,7.852,7455,7.144,7456,4.925,7457,7.852,7458,6.211,7459,4.925,7460,7.852,7461,4.925,7462,6.211,7463,3.037,7464,4.093,7465,9.143,7466,3.037,7467,4.925,7468,3.037,7469,4.925,7470,3.037,7471,4.925,7472,3.037,7473,3.037,7474,3.037,7475,3.037,7476,3.037,7477,4.925,7478,3.037,7479,4.925,7480,2.908,7481,4.925,7482,3.037,7483,2.426,7484,4.925,7485,3.037,7486,3.037,7487,3.037,7488,4.925,7489,2.805,7490,3.037,7491,4.925,7492,3.037,7493,2.646,7494,3.037,7495,3.037,7496,3.037,7497,3.037,7498,3.037,7499,3.037,7500,3.037,7501,3.037,7502,3.037,7503,4.925,7504,4.925,7505,2.908,7506,6.211,7507,3.037,7508,4.925,7509,3.037,7510,3.037,7511,3.037,7512,3.037,7513,3.037,7514,3.037,7515,3.037,7516,3.037,7517,3.037,7518,3.037,7519,3.037,7520,3.037,7521,3.037,7522,3.037,7523,3.037,7524,3.037,7525,3.037,7526,3.037,7527,3.037,7528,3.037,7529,3.037,7530,3.037,7531,3.037,7532,4.925,7533,3.037,7534,3.037,7535,3.037,7536,4.925,7537,4.925,7538,3.037,7539,3.037,7540,3.037,7541,3.037,7542,3.037,7543,3.037,7544,3.037,7545,6.211,7546,3.037,7547,3.037,10878,5.205,10883,5.205,10884,5.205,10885,5.205,10892,3.21,11992,3.473,11993,3.473,11994,3.473,11995,3.473,11996,3.473,11997,3.473,11998,3.473]],["title/interfaces/IIdentityManagementConfig.html",[334,0.731,11999,5.694]],["body/interfaces/IIdentityManagementConfig.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.174,101,0.017,103,0.001,104,0.001,165,0.939,334,1.079,336,2.403,347,2.855,11585,5.72,11999,10.04,12000,7.863,12001,10.042,12002,12.271,12003,12.271,12004,12.271]],["title/interfaces/IImportUserProperties.html",[334,0.731,12005,5.694]],["body/interfaces/IImportUserProperties.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,30,0.001,31,0.404,32,0.178,33,0.593,47,0.98,49,1.871,95,0.141,96,1.301,101,0.016,103,0,104,0,111,0.953,145,1.825,165,0.86,167,2.652,192,3.584,200,1.481,214,1.499,217,1.132,227,0.747,234,0.772,240,3.726,247,3.409,305,1.355,334,0.774,336,1.138,347,1.964,355,2.896,369,2.607,370,2.374,371,1.311,380,1.531,394,5.943,398,1.401,399,2.859,400,2.098,402,1.971,404,0.857,405,1.267,406,1.547,444,1.819,461,2.953,472,3.21,575,2.85,577,4.911,701,1.681,728,1.819,844,4.752,851,4.975,852,4.975,853,5.886,854,5.509,905,1.98,1031,3.042,1166,2.281,1804,5.274,1852,2.008,2257,2.882,2283,4.159,2462,6.325,2463,3.983,2630,4.528,2632,4.805,2634,5.49,2642,3.457,2710,4.159,2925,2.85,3104,4.726,3110,2.37,4205,1.603,4210,6.898,4293,3.724,4294,3.535,4309,5.132,4571,2.592,4989,3.985,5987,3.386,6511,4.368,6521,2.916,6523,2.66,6543,2.951,6864,3.068,6871,2.82,6872,2.916,7483,3.322,7574,5.035,8469,5.638,8470,3.535,8471,3.724,9538,3.159,9539,3.457,9540,3.159,9541,3.457,9542,3.623,9543,3.841,9718,3.159,9719,3.21,10298,3.623,10658,7.289,10659,5.972,10677,5.035,10678,3.386,10679,2.882,10687,3.983,11310,3.983,11314,3.457,12005,7.287,12006,4.396,12007,7.948,12008,8.95,12009,7.041,12010,8.868,12011,8.169,12012,3.623,12013,4.159,12014,4.159,12015,4.396,12016,3.983,12017,3.386,12018,4.396,12019,4.396,12020,4.396,12021,4.396,12022,4.396,12023,4.396,12024,4.396,12025,4.396,12026,6.035,12027,4.396,12028,6.035,12029,3.983,12030,5.821,12031,4.396,12032,4.396,12033,4.396,12034,3.983,12035,3.623,12036,4.396,12037,4.396,12038,4.396,12039,4.396,12040,3.983,12041,3.983,12042,5.49,12043,5.357,12044,6.303,12045,4.396,12046,4.396,12047,4.396,12048,3.841,12049,6.035,12050,4.396]],["title/interfaces/IImportUserScope.html",[334,0.731,12051,5.493]],["body/interfaces/IImportUserScope.html",[2,1.386,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,31,0.466,32,0.184,33,0.681,47,1,95,0.107,101,0.02,103,0.001,104,0.001,165,0.836,334,1.146,336,1.991,347,2.383,472,8.386,496,5.246,577,4.696,851,6.126,852,6.126,1031,2.607,1602,7.455,6523,4.653,7810,5.102,10658,8.681,10659,8.528,10677,7.455,10678,5.925,10679,5.043,12011,9.73,12051,8.619,12052,7.692,12053,10.406,12054,7.692,12055,6.721]],["title/interfaces/IInterceptorConfig.html",[334,0.731,11928,5.694]],["body/interfaces/IInterceptorConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.165,55,2.982,101,0.017,103,0.001,104,0.001,165,0.953,334,1.106,336,2.465,11577,6.951,11928,10.191,11973,10.812,11976,11.209,12056,10.298]],["title/interfaces/IJsonAccount.html",[334,0.731,12057,5.947]],["body/interfaces/IJsonAccount.html",[3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.19,33,0.554,39,3.485,47,1.006,48,6.099,51,6.287,87,6.496,101,0.016,103,0.001,104,0.001,138,5.654,165,0.898,334,1.001,336,2.231,1167,7.114,11585,5.31,11586,5.715,12057,10.023,12058,8.617,12059,9.322,12060,10.594]],["title/interfaces/IJsonUser.html",[334,0.731,12061,5.947]],["body/interfaces/IJsonUser.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.186,47,1.006,101,0.016,103,0.001,104,0.001,138,5.122,165,0.918,334,1.04,336,2.317,851,6.253,852,6.253,853,6.767,1167,7.206,11585,5.514,11586,5.935,12058,8.948,12060,8.948,12061,10.256,12062,9.68]],["title/interfaces/IKeycloakConfigurationInputFiles.html",[334,0.731,12063,5.694]],["body/interfaces/IKeycloakConfigurationInputFiles.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.163,47,0.982,101,0.02,103,0.001,104,0.001,165,0.94,217,1.31,334,1.082,336,2.409,2130,4.397,2268,5.735,11585,5.735,11586,6.172,12063,10.055,12064,10.067,12065,10.067,12066,12.281,12067,12.281,12068,8.805,12069,10.067]],["title/interfaces/IKeycloakSettings.html",[334,0.731,12070,5.694]],["body/interfaces/IKeycloakSettings.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.184,47,1.012,51,4.581,87,5.792,101,0.019,103,0.001,104,0.001,138,5.042,165,0.904,217,1.227,238,7.269,334,1.013,336,2.257,5530,6.646,7995,9.661,11560,6.265,11580,8.248,11585,5.372,11586,5.782,12070,9.666,12071,9.431,12072,10.884,12073,7.898,12074,9.431]],["title/interfaces/ILearnroom.html",[334,0.731,6512,4.842]],["body/interfaces/ILearnroom.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.136,95,0.129,101,0.02,103,0.001,104,0.001,148,3.689,165,0.939,334,1.288,336,2.403,687,5.11,2545,5.341,2645,6.392,4882,6.309,4883,6.479,6512,8.537,6516,8.714,6594,10.723,12075,9.283]],["title/interfaces/ILearnroomElement.html",[334,0.731,2645,4.328]],["body/interfaces/ILearnroomElement.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.161,95,0.127,101,0.02,103,0.001,104,0.001,148,3.651,165,0.929,334,1.275,336,2.362,687,5.626,2545,5.25,2645,7.552,4882,8.293,4883,8.516,6512,7.028,6516,8.625,6594,7.972,12075,9.124]],["title/interfaces/ILegacyLogger.html",[334,0.731,12076,5.947]],["body/interfaces/ILegacyLogger.html",[3,0.018,4,0.018,5,0.009,7,0.112,8,1.195,27,0.511,29,0.97,30,0.001,31,0.693,32,0.173,33,0.599,35,1.499,39,1.997,47,1.012,59,3.967,72,4.484,101,0.017,102,4.967,103,0.001,104,0.001,145,1.878,148,4.159,150,2.568,185,2.882,199,5.267,204,3.779,234,1.607,235,4.186,334,0.797,336,1.775,367,3.537,529,3.224,1216,4.851,1345,5.159,1421,7.194,2356,4.065,5460,6.478,8310,6.915,12076,8.657,12077,12.737,12078,7.417,12079,8.657,12080,8.657,12081,9.149,12082,7.417,12083,9.149,12084,10.297,12085,7.417,12086,9.149,12087,10.395,12088,7.417,12089,9.149,12090,7.417,12091,9.149,12092,7.417]],["title/interfaces/ILessonParent.html",[334,0.731,6520,4.45]],["body/interfaces/ILessonParent.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,8,0.85,26,2.299,27,0.19,30,0.001,31,0.394,32,0.116,35,0.558,47,0.949,55,2.216,95,0.156,96,1.261,101,0.021,103,0,104,0,111,1.411,116,1.435,145,1.782,150,3.308,187,0.666,188,3.8,208,1.722,214,1.453,217,1.632,227,1.301,234,1.551,240,3.264,247,1.806,305,2.005,334,1.25,336,1.103,347,1.423,369,1.894,370,1.518,371,1.94,379,1.934,380,1.495,398,1.358,399,2.792,400,2.034,402,1.91,404,0.83,405,1.228,406,1.499,461,1.054,535,3.772,687,1.964,769,4.172,806,1.876,1031,1.444,1167,2.533,1345,1.828,1353,2.225,1397,3.198,1843,2.184,1865,3.205,2095,1.828,2303,4.396,2627,1.937,2632,3.931,2633,2.211,2636,3.835,2640,2.511,2645,4.479,2646,2.704,2647,4.505,2649,3.806,2650,4.366,2659,2.159,2663,4.605,2767,3.714,2848,4.12,3339,4.283,3452,5.363,3471,6.078,3580,1.876,3607,3.22,3608,3.22,4052,4.129,4217,2.896,4281,2.013,4878,2.826,4882,2.896,4883,2.974,4989,2.111,5015,6.556,5026,3.282,5043,2.601,5050,4.479,5055,6.856,5068,3.282,5074,3.282,5079,3.282,5630,7.443,6365,5.671,6368,6.078,6486,2.974,6508,2.86,6518,6.037,6519,3.062,6520,5.586,6522,4.421,6560,6.549,6561,4.675,6586,4.749,6757,2.86,6758,3.062,8418,5.011,10761,4.749,11863,5.011,11864,3.35,11865,5.433,11866,3.35,11867,4.916,11868,6.734,11869,5.011,11870,3.282,11871,5.011,11872,5.011,11873,5.011,11874,3.35,11875,5.011,11876,3.062,11877,5.011,11878,5.011,11879,3.35,11880,3.35,11881,3.35,11882,3.22,11883,3.22,11884,3.35,11885,3.35,11886,3.35,11887,5.115,11888,5.963,11889,3.22,11890,5.115,11891,3.35,11892,3.35,11893,3.35,11894,3.163,11895,3.35,11896,3.35,11897,5.115,11898,3.35,11899,3.35,11900,6.944,11901,6.204,11902,3.282,11903,3.35,11904,3.35,11905,3.35,11906,3.35,11907,3.35,11908,3.35,11909,3.35,11910,3.35,11911,3.35,11912,3.35,11913,3.35,11914,3.163,11915,3.35,11916,3.35,12093,4.609]],["title/interfaces/ILessonProperties.html",[334,0.731,11867,4.751]],["body/interfaces/ILessonProperties.html",[0,0.149,3,0.01,4,0.01,5,0.005,7,0.14,26,2.128,30,0.001,31,0.562,32,0.163,33,0.513,47,0.951,55,2.383,95,0.154,96,1.194,101,0.021,103,0,104,0,111,1.353,116,1.359,145,1.709,150,3.214,165,0.529,187,0.631,188,4.427,208,1.63,214,1.376,217,1.612,227,1.284,234,1.507,240,3.184,247,1.71,305,1.922,334,1.228,336,1.044,347,1.878,369,1.831,370,1.438,371,1.861,379,1.869,380,1.434,398,1.286,399,2.677,400,1.926,402,1.809,404,0.786,405,1.163,406,1.419,461,0.998,535,3.618,687,1.86,769,4.001,806,1.777,1031,1.367,1167,2.398,1345,1.731,1353,2.107,1397,3.108,1843,2.069,1865,3.073,2095,1.731,2303,4.302,2627,1.834,2632,3.799,2633,2.094,2636,3.677,2640,2.378,2645,4.295,2646,2.561,2647,4.354,2649,3.678,2650,4.187,2659,2.044,2663,4.416,2767,5.298,2848,3.982,3339,4.14,3452,6.668,3471,5.875,3580,1.777,3607,3.049,3608,3.049,4052,3.959,4217,2.742,4281,1.906,4878,2.676,4882,2.742,4883,2.816,4989,1.999,5015,7.283,5026,3.108,5043,2.463,5050,4.295,5055,6.748,5068,3.108,5074,3.108,5079,3.108,5630,7.283,6365,5.481,6368,5.875,6486,2.816,6508,2.708,6518,7.032,6519,2.899,6520,4.416,6522,4.24,6560,4.295,6561,4.483,6586,4.554,6757,2.708,6758,2.899,8418,4.805,10761,6.775,11863,4.805,11864,3.172,11865,6.389,11866,3.172,11867,5.764,11868,7.481,11869,4.805,11870,3.108,11871,4.805,11872,4.805,11873,4.805,11874,3.172,11875,4.805,11876,2.899,11877,4.805,11878,4.805,11879,3.172,11880,3.172,11881,3.172,11882,3.049,11883,3.049,11884,3.172,11885,3.172,11886,3.172,11887,4.905,11888,5.764,11889,3.049,11890,4.905,11891,3.172,11892,3.172,11893,3.172,11894,2.995,11895,3.172,11896,3.172,11897,4.905,11898,3.172,11899,3.172,11900,6.748,11901,5.997,11902,3.108,11903,3.172,11904,3.172,11905,3.172,11906,3.172,11907,3.172,11908,3.172,11909,3.172,11910,3.172,11911,3.172,11912,3.172,11913,3.172,11914,2.995,11915,3.172,11916,3.172]],["title/interfaces/ILoggerConfig.html",[334,0.731,11929,5.694]],["body/interfaces/ILoggerConfig.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,47,0.933,101,0.018,103,0.001,104,0.001,165,0.966,334,1.132,336,2.523,11577,7.114,11929,10.332,11971,10.893,12094,10.541]],["title/interfaces/IMaterialProperties.html",[334,0.731,12095,5.324]],["body/interfaces/IMaterialProperties.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,30,0.001,32,0.181,33,0.557,47,1.028,95,0.121,96,1.88,101,0.019,103,0.001,104,0.001,150,4.177,165,0.736,240,4.266,334,1.151,336,1.645,379,2.734,380,1.998,398,2.025,399,3.73,400,3.033,404,1.238,405,1.831,406,2.235,460,3.953,1397,4.039,1843,3.258,2747,3.547,3580,4.911,3609,4.375,6196,3.715,6541,4.639,6542,4.498,7136,4.318,11865,4.375,11868,4.498,11876,8.014,12095,8.39,12096,5.756,12097,8.967,12098,9.744,12099,9.744,12100,9.744,12101,9.744,12102,9.744,12103,9.744,12104,5.756,12105,4.996,12106,5.756,12107,5.756,12108,5.552,12109,5.756,12110,5.756,12111,5.756,12112,5.756,12113,5.756,12114,5.756,12115,5.756,12116,5.756,12117,5.756,12118,5.756,12119,5.756,12120,5.756,12121,5.756]],["title/interfaces/IMigrationOptions.html",[334,0.731,11600,5.493]],["body/interfaces/IMigrationOptions.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.07,10,1.862,30,0.001,32,0.116,33,0.525,36,2.42,47,0.682,52,3.338,53,3.354,55,2.431,70,5.373,72,3.19,78,8.661,95,0.123,101,0.008,103,0,104,0,111,1.916,112,2.681,127,0.578,145,1.783,165,0.552,204,1.565,216,1.579,217,1.34,221,2.76,227,0.886,234,1.143,247,2.759,264,3.59,305,1.314,319,3.077,334,0.918,336,1.104,346,2.937,347,1.728,368,4.033,371,3.209,379,2.803,403,4.609,432,1.698,461,1.055,529,4.155,575,2.765,627,1.416,701,3.99,768,3.167,773,5.437,798,2.899,803,2.863,894,6.209,905,2.932,907,5.862,1037,3.515,1125,2.736,1129,4.051,1414,2.58,1467,1.473,1639,5.437,1646,3.939,1772,5.515,1920,2.937,1948,4.221,1959,2.514,2130,2.015,2147,3.613,2356,1.895,2357,3.208,2450,2.628,2800,5.59,3090,5.033,3481,4.679,3489,3.223,3490,8.807,3491,6.468,3492,2.736,5451,3.43,5880,7.454,6431,3.613,7027,2.863,7044,2.937,7325,7.843,7799,5.967,7809,7.843,8252,3.515,8310,3.223,10142,4.92,11351,3.613,11584,5.689,11585,2.628,11586,2.829,11587,3.864,11588,3.864,11589,3.613,11590,5.898,11591,6.349,11592,3.613,11593,3.613,11594,5.898,11595,3.864,11596,3.864,11597,8.315,11598,3.864,11599,3.864,11600,6.899,11601,7.843,11602,3.864,11603,3.515,11604,3.613,11605,3.864,11606,3.864,11607,3.864,11608,8.621,11609,3.354,11610,3.864,11611,3.864,11612,7.153,11613,3.02,11614,5.765,11615,3.286,11616,4.833,11617,3.43,11618,3.864,11619,3.864,11620,3.864,11621,8.005,11622,3.864,11623,3.864,11624,3.864,11625,8.005,11626,3.864,11627,3.864,11628,3.864,11629,8.005,11630,8.005,11631,3.613,11632,3.864,11633,3.864,11634,3.864,11635,3.354,11636,3.727,11637,5.119,11638,3.864,11639,3.864,11640,3.864,11641,3.864,11642,3.864,11643,5.015,11644,3.613,11645,3.613,11646,3.864,11647,3.864,11648,3.864,11649,3.864,11650,3.864,11651,3.864,11652,3.864,11653,3.864,11654,3.864,11655,3.864,11656,3.864,11657,3.727]],["title/interfaces/INameMatch.html",[334,0.731,12055,5.493]],["body/interfaces/INameMatch.html",[2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,31,0.724,32,0.155,33,0.553,47,0.976,95,0.119,101,0.021,103,0.001,104,0.001,165,0.895,334,1.228,336,2.221,347,1.877,472,6.262,496,3.918,577,6.449,851,5.905,852,5.905,1031,2.908,1602,7.984,6523,5.189,7810,7.006,10658,6.483,10659,6.368,10677,7.984,10678,6.607,10679,5.624,12011,8.948,12051,7.495,12052,8.577,12053,9.57,12054,8.577,12055,9.231]],["title/interfaces/INewsProperties.html",[334,0.731,6852,5.324]],["body/interfaces/INewsProperties.html",[0,0.327,3,0.011,4,0.026,5,0.006,7,0.165,9,3.348,26,2.587,30,0.001,31,0.398,32,0.173,33,0.565,34,0.794,47,0.94,83,2.942,95,0.15,96,2.353,101,0.017,103,0,104,0,165,0.81,188,2.624,192,3.48,208,1.744,227,0.484,234,1.397,240,3.595,334,0.501,336,1.117,369,2.419,370,3.59,380,2.199,398,1.375,399,2.819,400,2.06,404,1.733,405,2.562,406,1.518,461,2.737,571,5.405,574,3.777,595,1.563,617,4.769,627,1.432,672,4.408,731,3.399,769,5.701,843,2.06,844,5.32,854,5.192,1031,2.226,1187,4.102,1188,4.531,1189,4.053,1190,4.288,1191,4.688,1397,3.649,1415,4.356,1843,3.368,1849,2.342,1865,3.236,1941,2.971,1959,2.543,2303,4.418,2577,4.855,2632,3.962,2646,2.739,2702,5.736,2747,2.409,3427,3.203,3429,2.971,3430,3.261,3432,3.324,3433,3.261,3434,3.47,3448,2.862,3584,3.15,3609,2.971,4205,1.573,4297,3.556,4298,3.393,4989,3.94,5057,3.47,5072,3.393,5618,7.923,6216,2.587,6434,3.261,6521,2.862,6523,2.61,6544,2.797,6757,2.896,6844,3.47,6845,3.77,6847,4.306,6848,3.77,6849,7.691,6850,5.55,6851,3.77,6852,8.873,6853,6.874,6854,5.891,6855,7.148,6856,7.691,6857,6.462,6858,7.394,6859,3.77,6860,5.059,6861,3.77,6862,3.556,6863,3.556,6864,4.584,6865,3.77,6866,3.556,6867,3.556,6868,3.77,6869,3.47,6870,3.77,6871,2.767,6872,2.862,6873,3.556,6874,3.77,6875,3.77,6876,6.736,6877,3.77,6878,6.949,6879,3.77,6880,3.77,6881,5.413,6882,3.556,6883,6.01,6884,3.655,6885,4.65,6886,3.556,6887,3.393,6888,3.556,6889,3.77]],["title/interfaces/INewsScope.html",[334,0.731,11938,5.493]],["body/interfaces/INewsScope.html",[3,0.019,4,0.019,5,0.01,7,0.123,26,2.468,30,0.001,32,0.185,33,0.632,34,1.381,47,0.749,83,2.484,95,0.158,101,0.021,103,0.001,104,0.001,138,4.588,165,0.823,188,4.301,192,2.42,334,1.403,336,1.943,347,2.355,379,1.84,380,1.725,696,4.221,844,4.784,1031,2.544,1397,2.719,2303,3.291,2385,4.978,2702,5.745,3642,9.187,4533,5.038,4748,4.501,6847,6.366,6849,6.036,6850,7.513,6853,5.394,6857,6.228,6858,7.44,7035,8.601,10031,5.101,10684,9.945,11930,6.559,11931,7.506,11932,7.506,11933,7.506,11934,7.506,11935,7.506,11936,5.394,11937,6.8,11938,8.485]],["title/interfaces/IPagination.html",[334,0.731,8961,5.181]],["body/interfaces/IPagination.html",[3,0.023,4,0.023,5,0.012,7,0.145,30,0.001,32,0.171,33,0.632,55,2.934,56,6.27,70,6.472,101,0.022,103,0.001,104,0.001,165,0.913,334,1.253,336,2.294,696,4.985,1031,3.004,2144,5.411,3654,9.764,4431,6.024,6612,5.746,6902,5.811,8961,9.572,9149,9.129,10375,9.418,11990,8.863,11991,8.863]],["title/interfaces/IParentInfo.html",[334,0.731,10047,5.324]],["body/interfaces/IParentInfo.html",[0,0.252,3,0.009,4,0.009,5,0.007,7,0.157,26,2.675,30,0.001,31,0.553,32,0.115,34,1.005,39,0.992,47,0.86,49,3.641,55,1.272,83,3.021,95,0.138,96,1.616,97,1.594,99,0.615,101,0.017,103,0,104,0,116,3.963,145,2.627,148,2.602,165,0.579,187,0.533,188,1.361,192,1.76,204,2.508,217,1.569,227,1.362,234,1.892,240,3.824,247,1.444,305,1.05,334,0.794,336,0.882,347,2.098,359,2.059,369,1.876,370,2.435,371,1.016,380,1.966,398,1.086,399,2.344,402,1.528,404,0.664,405,1.574,406,1.199,461,0.843,564,2.71,574,1.618,576,3.334,591,1.602,592,1.67,701,2.614,770,2.185,775,4.532,905,1.535,938,2.679,946,2.412,1015,4.729,1031,3.25,1180,1.586,1185,2.624,1255,3.987,1350,4.206,1487,4.729,1750,2.62,1852,2.494,1945,2.529,2037,2.162,2038,4.127,2095,3.355,2268,2.099,2440,2.099,2574,3.048,2632,3.894,2643,2.141,2649,1.643,2659,1.726,2849,1.594,3090,1.594,3143,1.93,3339,1.849,3353,2.529,3364,2.08,3610,5.576,3720,2.08,3814,2.74,4205,3.845,4215,2.808,4217,2.316,4271,3.219,4281,1.61,4282,2.185,4748,2.043,5043,2.08,5055,2.12,6170,1.707,6188,4.431,6189,5.382,6190,4.206,6191,5.534,6198,2.575,6206,2.624,6208,2.448,6210,5.373,6216,4.098,6217,5.612,6218,3.866,6511,2.234,6739,2.886,6740,4.391,6854,1.992,9807,2.74,9872,2.808,9875,4.206,9879,2.679,9913,2.575,9923,2.808,9927,2.808,9953,4.5,9956,2.679,9957,2.679,9962,2.808,9963,2.808,10003,2.977,10004,2.886,10005,4.625,10006,2.977,10007,4.625,10009,6.83,10021,6.285,10024,2.977,10025,2.808,10026,4.625,10027,2.74,10028,4.294,10029,4.294,10030,4.294,10031,2.316,10032,4.771,10033,4.771,10034,4.771,10035,4.771,10036,4.771,10037,4.771,10038,4.625,10039,5.707,10040,4.771,10041,2.808,10042,4.391,10043,2.74,10044,4.5,10045,2.808,10046,4.5,10047,6.621,10048,2.624,10049,2.886,10050,2.679,10051,2.679,10052,2.977,10053,2.977,10054,2.808,10055,2.74,10056,2.808,10057,2.977,10058,2.977,10059,2.977,10060,2.977,10061,2.977,10062,2.977,10063,2.977,10064,2.977,10065,2.977,10066,2.977,10067,7.977,10068,2.977,10069,2.977,10070,4.771,10071,2.977,10072,2.977,10073,4.771,10074,4.771,10075,4.771,10076,2.977,10077,2.977,10078,2.977,10079,2.977,10080,2.977,10081,2.977,10082,2.977,10083,4.771,10084,5.971,10085,2.886,10086,2.977,10087,4.771,10088,2.886,10089,2.977,10090,4.771,10091,2.977,10092,5.971,10093,5.971,10094,2.886,10095,5.971,10096,2.977,10097,2.977,10098,2.977,10099,2.977,10100,2.977,10101,2.977,10102,2.977,10103,2.886,10104,2.977,10105,2.977,10106,2.977,10107,2.977,10108,2.977,10109,2.977,10110,2.977,10111,2.977,10112,2.977]],["title/interfaces/IRelatedResourceProperties.html",[334,0.731,12102,5.493]],["body/interfaces/IRelatedResourceProperties.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,30,0.001,32,0.137,33,0.58,47,1.021,95,0.129,96,2.079,101,0.02,103,0.001,104,0.001,150,3.483,165,0.788,240,4.34,334,1.211,336,1.818,379,2.279,380,2.137,398,2.239,399,3.99,400,3.353,404,1.369,405,2.025,406,2.471,460,4.37,1397,3.368,1843,3.602,2747,3.922,3580,4.095,3609,4.837,6196,4.107,6541,5.129,6542,4.973,7136,4.774,11865,4.837,11868,4.973,11876,6.682,12095,7.876,12096,6.364,12097,7.477,12098,8.124,12099,8.124,12100,8.124,12101,8.124,12102,9.693,12103,9.107,12104,6.364,12105,5.524,12106,10.049,12107,10.049,12108,6.138,12109,6.364,12110,6.364,12111,6.364,12112,6.364,12113,6.364,12114,6.364,12115,6.364,12116,6.364,12117,6.364,12118,6.364,12119,6.364,12120,6.364,12121,6.364]],["title/interfaces/IRepoLoader.html",[334,0.731,12122,5.947]],["body/interfaces/IRepoLoader.html",[0,0.216,3,0.015,4,0.015,5,0.008,7,0.096,26,1.887,30,0.001,32,0.151,33,0.43,36,1.362,49,2.499,95,0.16,99,1.06,101,0.011,103,0.001,104,0.001,105,1.191,111,2.702,112,1.4,127,0.796,165,0.697,187,0.919,200,1.979,216,2.451,217,1.159,221,2.06,227,0.923,234,1.445,305,1.81,334,0.682,336,1.52,347,2.079,359,4.088,369,1.976,441,6.675,450,2.609,1554,7.18,1787,5.171,1872,5.171,1873,3.942,1929,8.721,1930,6.75,1931,7.289,1932,5.131,1933,8.279,1934,8.485,1935,7.781,1936,7.644,1957,4.84,1973,7.318,2531,7.48,3115,7.471,3228,4.044,3364,5.024,4659,7.79,5343,5.32,5723,8.996,5800,4.22,6074,3.942,12122,9.741,12123,5.872,12124,10.295,12125,5.131,12126,5.872,12127,5.872,12128,5.872,12129,5.872,12130,5.872,12131,5.872,12132,5.872,12133,5.872,12134,5.872,12135,5.872,12136,5.872,12137,5.872,12138,5.872,12139,5.872,12140,5.872,12141,5.872,12142,5.872,12143,5.872,12144,5.872,12145,5.872,12146,5.872,12147,5.872,12148,5.872,12149,5.872,12150,5.872,12151,5.872,12152,5.872,12153,5.872,12154,5.872,12155,5.872,12156,5.872,12157,8.229]],["title/interfaces/IRetryOptions.html",[334,0.731,11597,5.493]],["body/interfaces/IRetryOptions.html",[0,0.159,3,0.011,4,0.011,5,0.006,7,0.07,10,1.882,30,0.001,32,0.096,33,0.465,36,2.429,47,0.506,52,3.365,53,3.389,55,2.576,70,4.257,72,3.216,78,8.679,95,0.123,101,0.008,103,0,104,0,111,1.927,112,2.689,127,0.584,145,1.797,165,0.556,204,1.582,216,1.59,217,1.346,221,2.768,227,0.891,234,1.153,247,2.781,264,3.612,305,1.328,319,3.091,334,0.923,336,1.116,346,2.967,347,0.943,368,4.052,371,3.219,379,2.81,403,4.646,432,1.715,461,1.066,529,2.026,575,2.794,627,1.43,701,4.005,768,3.2,773,5.472,798,2.929,803,2.893,894,6.249,905,2.956,907,5.9,1037,3.552,1125,2.764,1129,4.083,1414,2.607,1467,1.488,1639,5.472,1646,3.97,1772,5.559,1920,2.967,1948,4.255,1959,2.541,2130,2.036,2147,3.651,2356,1.915,2357,3.233,2450,2.656,2800,5.626,3090,5.049,3481,4.716,3489,3.257,3490,8.825,3491,6.498,3492,2.764,5451,3.466,5880,7.469,6431,3.651,7027,2.893,7044,2.967,7325,7.879,7799,6.006,7809,7.879,8252,3.552,8310,3.257,10142,4.959,11351,3.651,11584,5.734,11585,2.656,11586,2.858,11587,3.904,11588,3.904,11589,3.651,11590,5.945,11591,6.39,11592,3.651,11593,3.651,11594,5.945,11595,3.904,11596,3.904,11597,8.8,11598,8.048,11599,8.048,11600,5.734,11601,5.408,11602,3.904,11603,3.552,11604,3.651,11605,3.904,11606,3.904,11607,3.904,11608,8.661,11609,3.389,11610,3.904,11611,3.904,11612,7.199,11613,3.051,11614,5.802,11615,3.32,11616,4.872,11617,3.466,11618,3.904,11619,3.904,11620,3.904,11621,8.048,11622,3.904,11623,3.904,11624,3.904,11625,8.048,11626,3.904,11627,3.904,11628,3.904,11629,8.048,11630,8.048,11631,3.651,11632,3.904,11633,3.904,11634,3.904,11635,3.389,11636,3.766,11637,5.16,11638,3.904,11639,3.904,11640,3.904,11641,3.904,11642,3.904,11643,5.055,11644,3.651,11645,3.651,11646,3.904,11647,3.904,11648,3.904,11649,3.904,11650,3.904,11651,3.904,11652,3.904,11653,3.904,11654,3.904,11655,3.904,11656,3.904,11657,3.766]],["title/interfaces/IRoleProperties.html",[334,0.731,12158,5.947]],["body/interfaces/IRoleProperties.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.12,30,0.001,31,0.71,32,0.157,33,0.591,47,0.739,95,0.148,96,2.177,101,0.017,103,0.001,104,0.001,116,2.479,165,0.812,217,1.501,227,0.825,234,1.872,240,3.658,305,2.267,334,1.114,336,1.905,380,2.45,394,5.907,398,2.345,399,4.114,400,3.512,402,3.299,404,1.434,405,2.121,406,2.589,496,5.35,843,5.591,1019,4.623,1843,3.773,1849,6.732,2095,3.158,2636,4.337,2640,5.65,3110,6.475,4052,4.67,4281,3.477,4571,6.904,7150,6.429,9934,7.708,9964,8.119,12158,10.087,12159,7.357,12160,6.665,12161,6.429,12162,6.665,12163,6.429,12164,7.357,12165,6.665,12166,7.357,12167,9.585,12168,7.357,12169,8.683,12170,6.429]],["title/interfaces/ISchoolExternalToolProperties.html",[334,0.731,12171,5.694]],["body/interfaces/ISchoolExternalToolProperties.html",[0,0.275,3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,32,0.167,33,0.507,55,2.648,95,0.164,96,2.212,101,0.017,103,0.001,104,0.001,165,0.821,192,3.795,200,3.62,209,4.208,240,3.323,334,0.869,336,1.935,369,2.325,380,2.226,398,2.382,399,4.156,402,3.352,404,1.457,405,2.155,406,2.63,844,5.942,1858,4.236,4271,5.709,4272,4.901,4989,5.322,5352,7.472,5721,5.759,5722,6.011,5770,6.532,5776,9.94,5778,5.878,5781,6.772,5782,5.218,6543,5.018,6544,4.847,7252,5.018,8680,9.068,11044,5.65,12030,6.532,12171,9.732,12172,7.476,12173,11.138,12174,7.476,12175,7.476,12176,7.476,12177,7.476,12178,7.476]],["title/interfaces/ISchoolProperties.html",[334,0.731,12179,5.324]],["body/interfaces/ISchoolProperties.html",[0,0.307,3,0.012,4,0.012,5,0.006,7,0.136,30,0.001,31,0.6,32,0.174,33,0.655,47,0.962,83,3.06,95,0.144,96,1.381,101,0.018,102,2.533,103,0,104,0,145,1.278,165,0.706,167,1.857,234,0.82,240,4.059,334,0.542,336,1.208,347,2.271,355,2.028,359,1.76,369,2.921,370,4.301,371,2.078,380,1.601,398,1.487,400,2.227,402,2.092,404,0.91,405,1.345,406,1.642,483,2.407,844,2.299,854,5.635,1031,1.582,1167,5.498,1183,3.526,1843,2.392,1849,2.533,2095,2.003,2395,5.087,2574,4.655,2632,5.359,2636,2.751,2640,4.107,2641,5.902,3105,4.797,3106,4.254,4271,4.107,4281,2.205,4323,7.006,4338,3.846,4339,5.902,4491,6.968,4989,4.131,6464,7.706,6472,7.111,6486,3.257,6537,4.621,6556,5.742,6557,3.752,6871,2.993,6872,4.621,8452,6.726,8456,3.752,8457,6.088,8469,5.785,8470,3.752,9787,7.349,10031,3.171,10293,6.508,10752,7.147,11571,5.902,12179,7.063,12180,4.227,12181,8.155,12182,7.781,12183,7.346,12184,7.622,12185,8.649,12186,4.077,12187,4.077,12188,4.227,12189,4.077,12190,4.227,12191,4.227,12192,6.312,12193,4.227,12194,4.227,12195,4.227,12196,4.227,12197,4.227,12198,4.227,12199,4.227,12200,4.227,12201,7.286,12202,4.227,12203,4.227,12204,7.286,12205,4.227,12206,4.227,12207,4.227,12208,3.526,12209,5.902,12210,3.752,12211,4.077,12212,4.227,12213,6.312,12214,3.846,12215,4.227,12216,4.227,12217,6.088,12218,4.077,12219,3.594,12220,4.227]],["title/interfaces/ISchoolYearProperties.html",[334,0.731,12221,5.947]],["body/interfaces/ISchoolYearProperties.html",[0,0.307,3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.737,32,0.166,47,0.912,83,4.207,95,0.144,96,2.464,101,0.019,103,0.001,104,0.001,165,0.879,214,2.84,240,4.057,334,0.968,336,2.156,380,2.384,398,2.654,400,3.975,402,3.734,404,1.623,405,2.401,406,2.93,2095,3.574,2395,7.573,4281,3.935,6475,9.37,6552,7.277,6553,6.864,10752,5.734,12221,11.187,12222,8.328,12223,11.019,12224,7.88,12225,8.328,12226,8.328]],["title/interfaces/IScopeInfo.html",[334,0.731,12227,5.493]],["body/interfaces/IScopeInfo.html",[3,0.023,4,0.023,5,0.012,7,0.147,26,2.782,30,0.001,32,0.178,47,1.001,95,0.125,99,1.619,101,0.016,103,0.001,104,0.001,165,0.92,334,1.042,336,2.322,1397,4.394,2049,5.008,2072,8.468,9571,10.601,12227,9.486,12228,8.97,12229,9.703,12230,13.123]],["title/interfaces/IServerConfig.html",[334,0.731,804,5.324]],["body/interfaces/IServerConfig.html",[3,0.018,4,0.018,5,0.009,7,0.117,30,0.001,32,0.181,47,0.951,52,4.834,55,2.454,95,0.169,101,0.019,103,0.001,104,0.001,154,4.671,165,0.799,217,1.327,334,0.834,336,1.857,347,2.542,404,1.838,802,5.641,803,4.815,804,8.92,1031,2.432,1125,6.047,1358,4.939,1564,5.912,1764,6.787,2130,3.39,2131,3.793,2132,3.656,2133,4.939,2141,7.173,3579,3.817,3580,3.159,4593,3.921,4993,4.815,10416,5.421,10629,9.539,11576,9.963,11578,9.427,11614,6.883,11635,7.413,11851,9.963,11853,7.173,11926,9.539,11971,6.268,11972,7.173,11973,6.268,11976,6.498,11977,7.173,11999,9.539,12002,7.173,12003,7.173,12004,7.173,12231,7.76,12232,9.201,12233,12.567,12234,12.567,12235,7.76,12236,10.198,12237,7.76,12238,7.173,12239,7.76,12240,7.76,12241,7.76,12242,7.76,12243,7.173,12244,7.76,12245,6.498,12246,7.76,12247,7.76,12248,5.326]],["title/interfaces/IShareTokenProperties.html",[334,0.731,12249,5.694]],["body/interfaces/IShareTokenProperties.html",[0,0.239,3,0.017,4,0.017,5,0.008,7,0.164,26,2.805,30,0.001,32,0.17,33,0.606,34,1.196,49,5.205,83,3.557,95,0.156,96,2.611,97,3.04,101,0.016,103,0.001,104,0.001,145,2.417,165,0.748,199,2.656,227,0.99,234,1.55,240,3.857,247,2.754,334,0.755,336,1.682,351,6.101,369,2.405,370,3.571,380,2.028,385,8.206,398,2.071,399,3.787,402,2.913,404,1.267,405,1.873,406,2.286,411,5.355,412,5.886,421,5.504,422,5.886,701,2.485,1031,3.397,2632,4.396,3339,3.527,3366,5.678,3610,5.943,4272,4.26,4773,7.287,4779,5.886,5760,7.639,5788,5.886,5789,5.678,5790,5.886,6208,4.67,6217,5.981,6474,4.824,9807,5.225,9875,5.005,9880,5.886,9956,5.109,9957,5.109,10054,5.355,10056,5.355,12249,9.078,12250,6.497,12251,6.497,12252,9.821,12253,8.344,12254,9.52,12255,6.497,12256,4.67,12257,4.6,12258,6.497,12259,6.497]],["title/interfaces/IStorageProviderProperties.html",[334,0.731,12260,5.947]],["body/interfaces/IStorageProviderProperties.html",[0,0.289,3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.176,33,0.522,47,1.013,95,0.153,96,2.319,101,0.018,103,0.001,104,0.001,165,0.846,240,4.099,334,0.911,336,2.029,369,1.881,370,2.793,380,2.295,398,2.498,399,4.285,400,3.741,402,3.514,404,1.528,405,2.259,406,2.757,2632,3.905,6269,9.028,6271,9.028,6272,9.229,7948,6.302,11675,7.415,12260,10.394,12261,7.837,12262,11.945,12263,9.044,12264,7.837,12265,7.837,12266,7.837,12267,7.837,12268,7.837,12269,7.837,12270,7.837,12271,7.837,12272,7.837]],["title/interfaces/ISubmissionProperties.html",[334,0.731,12273,5.694]],["body/interfaces/ISubmissionProperties.html",[0,0.166,3,0.012,4,0.012,5,0.006,7,0.159,26,2.236,30,0.001,32,0.175,33,0.614,34,0.829,47,0.864,55,2.118,62,2.861,72,2.209,95,0.152,96,1.334,101,0.012,103,0,104,0,111,1.472,116,3.452,145,2.237,165,0.77,187,0.705,192,3.143,208,1.822,217,1.703,227,1.228,234,1.434,240,3.516,305,1.389,334,0.524,336,1.167,347,2.598,369,2.182,370,3.239,371,2.025,380,1.561,394,4.184,398,1.437,399,2.914,400,2.152,402,2.021,404,0.879,405,1.299,406,1.586,461,2.867,738,2.535,844,5.049,957,2.703,1107,3.407,1129,2.805,1142,2.258,1353,3.545,1843,2.311,1942,3.347,1944,3.347,1950,3.472,1959,2.657,2632,4.857,2636,2.657,2640,2.657,2649,5.663,2650,3.026,2849,3.176,3106,6.492,3429,3.104,3430,3.407,3720,2.752,3775,7.119,3780,7.119,3788,6.151,3790,6.151,4205,1.644,4989,3.364,6216,4.071,6518,7.241,6519,3.24,6521,2.99,6523,2.727,6539,3.472,6543,3.026,6544,2.923,6864,3.146,7044,3.104,8894,8.036,11882,3.407,11883,3.407,11888,5.131,11889,3.407,12105,7.667,12273,7.399,12274,4.508,12275,9.75,12276,9.633,12277,4.265,12278,4.508,12279,4.508,12280,4.508,12281,4.508,12282,4.508,12283,4.508,12284,3.939,12285,4.508,12286,4.508,12287,4.508,12288,4.084,12289,4.508,12290,4.508,12291,4.508,12292,4.508,12293,4.508,12294,4.508,12295,9.75,12296,4.508,12297,4.508,12298,4.508,12299,4.508,12300,4.508,12301,4.508,12302,9.089,12303,4.508,12304,6.568,12305,3.939,12306,10.247,12307,6.789,12308,4.084,12309,6.789,12310,4.265,12311,3.545,12312,3.818,12313,4.508,12314,4.508,12315,4.508,12316,4.508,12317,6.789,12318,6.789,12319,4.508,12320,4.508,12321,4.508,12322,4.508,12323,6.568,12324,3.939,12325,4.084,12326,6.789]],["title/interfaces/ISystemProperties.html",[334,0.731,12327,5.181]],["body/interfaces/ISystemProperties.html",[0,0.317,3,0.01,4,0.01,5,0.005,7,0.066,26,1.439,30,0.001,32,0.173,33,0.626,47,1.023,83,2.536,95,0.12,96,1.203,101,0.017,103,0,104,0,150,3.686,165,0.532,208,1.643,216,0.813,240,4.464,277,1.775,334,0.472,336,1.052,347,0.889,359,1.533,369,2.978,370,4.42,371,1.213,379,0.996,380,1.761,398,1.296,399,2.693,400,1.94,402,1.823,404,0.792,405,1.172,406,1.43,496,1.857,722,1.961,775,2.696,783,2.665,1031,2.598,1141,2.696,1498,2.665,1581,3.131,1613,2.729,2072,2.837,2097,3.269,2574,3.503,2578,1.961,4271,3.699,4309,4.833,4333,2.636,4588,3.503,5530,3.383,5698,5.125,5717,2.799,5718,3.018,6196,3.668,7136,2.763,7222,2.968,7278,4.114,8469,2.377,8805,2.968,9787,2.878,10293,2.459,11429,7.887,11510,3.269,11511,3.269,11512,3.269,11513,3.35,11557,3.018,11560,2.921,11562,3.018,11565,3.018,11568,2.696,11572,2.968,11613,2.878,12035,3.35,12219,3.131,12327,6.316,12328,3.552,12329,6.692,12330,8.886,12331,8.54,12332,6.329,12333,7.037,12334,6.592,12335,2.921,12336,2.921,12337,3.552,12338,4.658,12339,5.046,12340,3.443,12341,5.046,12342,3.35,12343,3.35,12344,3.35,12345,3.35,12346,3.443,12347,3.35,12348,3.35,12349,3.35,12350,3.443,12351,5.046,12352,3.443,12353,3.35,12354,3.443,12355,3.35,12356,3.35,12357,3.35,12358,3.443,12359,4.658,12360,3.552,12361,3.552,12362,3.552,12363,3.552,12364,3.552,12365,3.552,12366,3.552,12367,3.552,12368,3.552,12369,3.552,12370,3.552,12371,3.552,12372,3.443,12373,3.552,12374,3.552,12375,3.552,12376,3.552,12377,3.552,12378,3.552,12379,3.552,12380,3.552,12381,3.552,12382,3.552,12383,3.552,12384,3.552,12385,3.552,12386,3.552,12387,3.552,12388,3.552,12389,3.552,12390,3.269,12391,3.552,12392,3.552,12393,3.552,12394,3.552,12395,3.552,12396,3.552,12397,3.552,12398,3.552,12399,3.552,12400,3.552,12401,3.552,12402,3.552,12403,3.552,12404,3.552,12405,3.35,12406,3.552,12407,3.269,12408,3.443,12409,3.35,12410,3.443,12411,3.35,12412,3.35,12413,3.443,12414,3.35,12415,3.443,12416,3.35,12417,3.197,12418,3.197,12419,3.197,12420,3.269,12421,3.35,12422,3.552,12423,3.35,12424,3.552,12425,3.552,12426,3.552,12427,3.552,12428,3.552,12429,3.35,12430,3.443,12431,3.35,12432,3.443]],["title/interfaces/ITargetGroupProperties.html",[334,0.731,12103,5.493]],["body/interfaces/ITargetGroupProperties.html",[0,0.254,3,0.018,4,0.018,5,0.009,7,0.113,30,0.001,32,0.152,33,0.617,47,1.023,95,0.128,96,2.044,101,0.02,103,0.001,104,0.001,150,3.444,165,0.779,240,4.328,334,1.201,336,1.788,379,2.254,380,2.113,398,2.201,399,3.946,400,3.297,404,1.346,405,1.991,406,2.43,460,6.856,1397,3.33,1843,3.542,2747,3.856,3580,4.049,3609,4.756,6196,4.038,6541,5.043,6542,4.89,7136,4.695,11865,4.756,11868,4.89,11876,6.608,12095,7.788,12096,6.257,12097,7.394,12098,8.034,12099,8.034,12100,8.034,12101,8.034,12102,9.031,12103,9.628,12104,9.982,12105,8.665,12106,6.257,12107,6.257,12108,6.036,12109,6.257,12110,6.257,12111,6.257,12112,6.257,12113,6.257,12114,6.257,12115,6.257,12116,6.257,12117,6.257,12118,6.257,12119,6.257,12120,6.257,12121,6.257]],["title/interfaces/ITask.html",[334,0.731,12433,5.324]],["body/interfaces/ITask.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,31,0.688,32,0.177,33,0.651,47,0.978,55,2.501,83,3.989,95,0.104,99,1.347,101,0.02,103,0.001,104,0.001,111,1.618,165,0.82,188,4.288,192,2.405,334,1.367,336,1.931,347,2.637,379,2.783,404,2.092,461,2.656,844,4.766,2633,5.019,2647,5.522,2659,3.781,2849,4.525,3259,6.339,3262,6.294,3720,4.555,3752,7.926,3771,5.362,3775,5.447,3776,5.638,3777,5.282,3778,5.282,3779,5.747,3780,5.447,5017,6.341,6854,4.362,7935,5.137,12433,9.965,12434,6.519,12435,8.929,12436,5.999,12437,5.999,12438,5.747,12439,5.999,12440,5.867]],["title/interfaces/ITaskCreate.html",[334,0.731,12437,5.055]],["body/interfaces/ITaskCreate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.161,33,0.605,47,0.986,55,2.557,83,3.299,95,0.109,99,1.412,101,0.021,103,0.001,104,0.001,111,1.696,165,0.845,188,4.385,192,2.521,334,1.387,336,2.025,347,2.67,379,1.917,404,2.253,461,2.716,844,4.912,2633,6.195,2647,5.692,2659,3.963,2849,4.664,3259,5.566,3262,4.335,3720,4.775,3752,5.459,3771,5.621,3775,5.71,3776,5.911,3777,5.537,3778,5.537,3779,6.025,3780,5.71,5017,7.827,6854,4.573,7935,5.385,12433,10.112,12434,6.834,12435,6.15,12436,6.289,12437,8.017,12438,6.025,12439,6.289,12440,6.15]],["title/interfaces/ITaskParent.html",[334,0.731,6522,4.272]],["body/interfaces/ITaskParent.html",[0,0.184,3,0.008,4,0.008,5,0.004,7,0.174,8,0.651,26,1.988,27,0.136,30,0.001,31,0.184,32,0.14,34,0.917,35,0.399,47,0.706,55,1.162,83,2.671,95,0.15,96,0.901,101,0.015,103,0,104,0,111,2.415,116,3.582,145,2.004,148,2.436,165,0.62,167,1.212,187,0.476,188,3.225,192,0.982,214,1.038,217,1.775,227,1.345,234,1.677,240,3.392,247,2.113,305,1.536,334,0.579,336,0.788,347,2.279,369,2.442,370,3.089,371,3.172,379,0.746,380,1.146,398,0.97,399,2.14,400,1.453,402,1.365,404,0.594,405,0.878,406,1.071,461,2.719,564,3.629,687,1.404,728,1.26,738,1.712,783,1.996,806,2.196,844,3.119,905,3.296,957,1.826,1019,1.913,1107,2.301,1345,1.307,1353,1.59,1583,2.156,1750,1.461,1843,1.561,1852,1.391,1865,2.456,1948,3.232,2037,1.933,2095,1.307,2487,2.097,2632,4.022,2633,3.797,2636,2.939,2640,1.795,2645,3.433,2646,1.933,2647,2.846,2648,2.301,2649,4.768,2659,1.543,2663,5.715,2849,3.777,3106,1.859,3259,2.783,3262,2.763,3339,4.706,3429,2.097,3451,4.784,3720,5.587,3721,2.758,3752,2.125,3771,5.801,3775,3.64,3776,6.101,3777,5.18,3778,6.137,3779,6.678,3780,3.64,3791,6.394,4052,1.933,4205,1.11,4217,2.069,4281,1.439,4882,2.069,4883,2.125,4989,2.47,5017,1.996,6469,4.549,6508,2.044,6511,3.269,6522,4.303,6523,1.842,6535,2.579,6539,2.345,6541,2.223,6542,2.156,6543,2.044,6544,1.974,6560,5.038,6757,2.044,6758,2.188,6831,2.579,6854,1.78,6864,2.125,6869,2.448,7935,5.038,8091,2.394,9603,2.097,11044,2.301,11894,2.261,11914,2.261,12048,2.661,12284,2.661,12304,5.884,12305,2.661,12323,5.884,12324,2.661,12435,2.394,12438,3.84,12439,2.448,12440,2.394,12441,2.881,12442,3.294,12443,2.881,12444,2.758,12445,2.881,12446,2.881,12447,2.881,12448,2.881,12449,2.881,12450,5.989,12451,5.531,12452,5.362,12453,2.881,12454,2.881,12455,2.758,12456,2.881,12457,2.881,12458,2.881,12459,2.758,12460,8.202,12461,2.881,12462,2.509,12463,2.661,12464,4.717,12465,6.923,12466,4.356,12467,6.923,12468,2.881,12469,2.881,12470,2.881,12471,4.717,12472,2.881,12473,2.881,12474,2.881,12475,2.881,12476,2.881,12477,2.881,12478,2.881,12479,2.881,12480,2.881,12481,2.881,12482,2.881,12483,2.881,12484,4.717,12485,2.881,12486,2.881,12487,2.509,12488,2.881,12489,2.881,12490,2.881,12491,2.881,12492,2.881,12493,2.881,12494,4.717,12495,2.881,12496,2.881,12497,4.717,12498,2.881,12499,4.717,12500,2.579,12501,2.758,12502,2.881,12503,6.923,12504,5.989,12505,4.516,12506,2.661,12507,5.989,12508,2.881,12509,5.989,12510,2.758,12511,4.717,12512,2.881,12513,2.881,12514,2.881,12515,5.989,12516,2.881,12517,4.717,12518,2.758,12519,2.881,12520,2.881,12521,6.923,12522,2.881,12523,2.881,12524,2.881,12525,2.881,12526,2.881,12527,2.881,12528,2.881,12529,4.717,12530,2.881,12531,2.881,12532,4.717,12533,2.881,12534,2.881,12535,2.881,12536,2.881,12537,2.758,12538,2.881,12539,6.923,12540,2.881,12541,2.881,12542,2.881,12543,2.881,12544,2.881,12545,2.881,12546,2.881,12547,2.881,12548,2.881,12549,2.881]],["title/interfaces/ITaskProperties.html",[334,0.731,12438,4.842]],["body/interfaces/ITaskProperties.html",[3,0.018,4,0.018,5,0.009,7,0.114,30,0.001,31,0.422,32,0.184,33,0.672,47,0.912,55,2.417,83,3.058,95,0.097,99,1.256,101,0.02,103,0.001,104,0.001,111,2.397,165,0.783,188,4.896,192,3.563,334,1.337,336,1.801,347,2.782,379,1.706,404,2.154,461,2.985,844,5.445,2633,4.795,2647,6.31,2659,5.601,2849,5.171,3259,5.159,3262,3.857,3720,6.747,3752,4.857,3771,5.001,3775,5.081,3776,5.259,3777,4.927,3778,4.927,3779,5.361,3780,5.081,5017,6.058,6854,6.461,7935,7.61,12433,9.744,12434,6.081,12435,5.472,12436,5.596,12437,5.596,12438,7.118,12439,8.887,12440,8.69]],["title/interfaces/ITaskStatus.html",[334,0.731,3771,4.517]],["body/interfaces/ITaskStatus.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,31,0.453,32,0.18,47,0.93,55,2.93,83,3.205,95,0.104,99,1.35,101,0.021,103,0.001,104,0.001,111,1.621,165,0.821,188,4.292,192,2.41,334,1.368,336,1.935,347,2.811,379,1.833,404,2.094,461,2.658,844,4.772,2633,5.026,2647,5.529,2659,3.788,2849,4.531,3259,5.407,3262,4.144,3720,4.564,3752,5.218,3771,6.96,3775,8.297,3776,8.588,3777,8.045,3778,8.045,3779,8.754,3780,8.297,5017,6.349,6854,4.371,7935,5.147,12433,9.626,12434,6.532,12435,5.878,12436,6.011,12437,6.011,12438,5.759,12439,6.011,12440,5.878]],["title/interfaces/ITaskUpdate.html",[334,0.731,12436,5.055]],["body/interfaces/ITaskUpdate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.161,33,0.605,47,0.986,55,2.557,83,3.299,95,0.109,99,1.412,101,0.021,103,0.001,104,0.001,111,1.696,165,0.845,188,4.385,192,2.521,334,1.387,336,2.025,347,2.67,379,1.917,404,2.253,461,2.716,844,4.912,2633,6.195,2647,5.692,2659,3.963,2849,4.664,3259,5.566,3262,4.335,3720,4.775,3752,5.459,3771,5.621,3775,5.71,3776,5.911,3777,5.537,3778,5.537,3779,6.025,3780,5.71,5017,7.827,6854,4.573,7935,5.385,12433,10.112,12434,6.834,12435,6.15,12436,8.017,12437,6.289,12438,6.025,12439,6.289,12440,6.15]],["title/interfaces/ITeamProperties.html",[334,0.731,12550,5.324]],["body/interfaces/ITeamProperties.html",[0,0.329,3,0.017,4,0.017,5,0.009,7,0.108,30,0.001,31,0.685,32,0.131,33,0.467,39,1.926,47,0.835,62,4.197,72,3.241,95,0.157,96,2.643,101,0.02,103,0.001,104,0.001,111,1.434,144,3.008,165,0.757,192,2.879,227,1.134,234,1.161,240,3.064,334,1.038,336,1.712,369,1.587,380,2.053,398,2.108,399,3.833,400,3.157,402,2.965,404,1.289,405,2.574,406,2.327,415,5.911,461,2.997,496,5.322,728,4.183,844,5.741,1858,3.747,2095,2.838,2181,5.2,2574,5.645,2632,3.294,3584,4.828,4205,2.411,4271,5.264,4281,3.125,4282,6.485,4285,8.565,4989,5.602,6521,4.386,6523,4.001,6544,4.287,6847,4.336,6885,4.682,10050,5.2,10051,5.2,11314,5.2,11315,5.45,11936,4.752,12550,8.565,12551,5.991,12552,8.891,12553,9.331,12554,5.602,12555,7.803,12556,5.991,12557,5.991,12558,5.991,12559,5.991,12560,5.991,12561,5.602,12562,5.991,12563,5.991]],["title/interfaces/ITeamUserProperties.html",[334,0.731,12555,5.493]],["body/interfaces/ITeamUserProperties.html",[0,0.327,3,0.017,4,0.017,5,0.009,7,0.107,30,0.001,31,0.538,32,0.148,39,1.909,47,0.685,62,4.16,72,3.212,95,0.157,96,2.627,101,0.019,103,0.001,104,0.001,111,1.421,144,2.994,165,0.752,192,3.634,227,1.129,234,1.151,240,3.046,334,1.032,336,1.697,369,1.574,380,2.04,398,2.089,399,3.81,400,3.129,402,2.939,404,1.278,405,2.559,406,2.306,415,5.885,461,3.137,496,5.709,728,4.164,844,5.956,1858,3.714,2095,2.813,2181,5.154,2574,5.619,2632,3.265,3584,4.786,4205,2.39,4271,5.233,4281,3.097,4282,6.456,4285,8.526,4989,5.585,6521,4.347,6523,3.966,6544,4.25,6847,4.297,6885,4.641,10050,5.154,10051,5.154,11314,5.154,11315,5.402,11936,4.711,12550,7.519,12551,5.938,12552,6.98,12553,8.952,12554,5.552,12555,8.795,12556,5.938,12557,5.938,12558,5.938,12559,5.938,12560,5.938,12561,5.552,12562,5.938,12563,5.938]],["title/interfaces/IToolFeatures.html",[334,0.731,8517,5.181]],["body/interfaces/IToolFeatures.html",[0,0.3,3,0.021,4,0.021,5,0.011,7,0.133,30,0.001,32,0.178,47,0.905,55,2.733,95,0.113,101,0.02,103,0.001,104,0.001,108,5.118,165,0.867,217,1.147,319,2.634,334,0.947,336,2.109,347,2.845,627,2.704,2130,3.849,2131,4.307,2132,4.152,3859,4.928,8517,9.217,8519,8.431,8791,11.434,8824,11.434,11577,5.947,12564,12.085,12565,12.085,12566,12.085,12567,8.146,12568,7.38,12569,8.146,12570,8.146,12571,8.146,12572,8.146,12573,7.38]],["title/interfaces/IToolLaunchParams.html",[155,5.324,334,0.731]],["body/interfaces/IToolLaunchParams.html",[3,0.023,4,0.023,5,0.012,7,0.144,30,0.001,32,0.17,95,0.161,101,0.016,103,0.001,104,0.001,108,5.543,139,7.639,140,7.336,155,9.103,158,6.795,165,0.911,192,2.844,199,3.606,200,3.905,201,6.379,210,6.245,334,1.025,336,2.284,12574,8.821,12575,9.542]],["title/interfaces/IToolLaunchStrategy.html",[212,5.694,334,0.731]],["body/interfaces/IToolLaunchStrategy.html",[3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,26,2.72,27,0.465,29,0.884,30,0.001,31,0.632,32,0.153,33,0.546,35,1.366,36,2.419,39,2.448,95,0.158,99,1.517,101,0.015,103,0.001,104,0.001,108,7.127,122,9.449,123,9.449,155,10.047,160,9.538,170,7.613,171,9.449,175,8.737,185,4.768,208,3.396,209,3.004,210,8.398,211,7.613,212,9.449,334,0.977,336,2.175,12574,11.342,12576,9.09,12577,9.09,12578,11.283,12579,9.09]],["title/interfaces/IUserConfig.html",[334,0.731,12232,5.493]],["body/interfaces/IUserConfig.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,47,0.933,101,0.018,103,0.001,104,0.001,165,0.966,334,1.132,336,2.523,11577,7.114,12232,9.965,12238,12.466,12580,10.541]],["title/interfaces/IUserProperties.html",[334,0.731,12581,5.493]],["body/interfaces/IUserProperties.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.195,30,0.001,32,0.177,33,0.648,34,0.849,47,0.995,83,3.905,95,0.137,96,1.365,101,0.015,103,0,104,0,116,1.555,165,0.908,192,3.553,214,1.574,217,1.166,227,0.518,234,1.455,240,4.225,305,1.422,334,0.803,336,1.194,347,2.012,369,2.864,370,4.251,380,1.904,394,2.843,398,1.47,399,2.965,400,2.202,402,2.069,404,0.899,405,1.33,406,1.623,461,1.142,496,4.498,844,5.093,851,5.332,852,5.332,853,5.771,854,5.611,1019,2.899,1031,1.564,1180,4.281,1843,2.366,1849,4.496,1850,4.365,2632,4.126,2636,2.72,2640,4.073,3090,2.159,3110,5.942,4052,2.929,4198,7.443,4199,8.116,4205,1.682,4210,7.026,4293,3.908,4294,3.71,4989,3.423,6511,4.53,6521,3.06,6543,3.097,6544,2.991,6871,2.959,6872,3.06,7299,5.694,9538,3.316,9539,3.628,9540,3.316,9541,3.628,9542,3.803,9543,4.032,9876,8.116,9938,4.032,9942,4.18,11801,4.032,11802,4.032,11803,4.032,12040,4.18,12160,4.18,12161,4.032,12162,4.18,12163,4.032,12165,4.18,12169,6.259,12170,4.032,12183,7.311,12209,3.908,12210,3.71,12554,3.908,12581,7.237,12582,4.614,12583,8.342,12584,8.116,12585,7.919,12586,8.342,12587,6.909,12588,6.909,12589,6.909,12590,4.18,12591,4.18,12592,4.614,12593,4.18,12594,4.614,12595,4.18,12596,4.614,12597,4.18,12598,4.614,12599,4.18,12600,4.614,12601,4.614,12602,6.909]],["title/interfaces/IVideoConferenceSettings.html",[334,0.731,12603,5.947]],["body/interfaces/IVideoConferenceSettings.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.172,47,0.903,95,0.126,101,0.02,103,0.001,104,0.001,165,0.924,217,1.272,334,1.05,336,2.339,347,2.562,1308,7.973,2049,5.044,2065,8.071,2249,10.627,8012,5.466,11580,8.549,12603,10.317,12604,9.774,12605,11.506,12606,9.035,12607,9.774]],["title/classes/IdParams.html",[0,0.232,12608,5.947]],["body/classes/IdParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,34,2.286,47,0.837,95,0.151,101,0.016,103,0.001,104,0.001,165,0.92,361,6.51,364,1.767,368,4.601,369,2.606,370,3.869,371,3.238,374,3.097,376,2.22,379,2.199,467,3.081,470,4.912,479,7.213,3580,4.781,5442,6.69,12608,10.271,12609,9.703,12610,9.703]],["title/interfaces/IdToken.html",[334,0.731,348,4.45]],["body/interfaces/IdToken.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.716,32,0.182,33,0.675,39,3.444,47,1.021,101,0.019,103,0.001,104,0.001,165,0.879,334,1.205,336,2.156,348,7.344,350,7.545,361,4.994,853,6.601,4205,4.311,5698,4.584,6473,7.429,11059,10.711,11060,8.328,11061,7.88,11062,11.187]],["title/classes/IdTokenCreationLoggableException.html",[0,0.232,12611,5.947]],["body/classes/IdTokenCreationLoggableException.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.671,30,0.001,31,0.48,32,0.148,33,0.414,34,1.457,35,1.037,39,3.382,47,0.945,59,2.669,95,0.14,101,0.014,103,0.001,104,0.001,111,1.718,127,1.073,163,2.637,187,1.239,209,2.832,214,3.428,215,2.735,216,2.01,217,1.115,227,0.888,351,6.303,361,6.62,404,1.959,406,2.787,415,4.631,511,4.329,1216,4.679,1353,5.765,1464,5.5,1467,2.735,1469,6.22,3502,9.337,5527,7.921,5530,5.953,7773,6.528,8288,6.209,8745,5.027,8746,5.253,12338,5.881,12611,9.509,12612,11.942,12613,8.568,12614,8.568,12615,8.568,12616,8.568,12617,7.176,12618,7.921]],["title/injectables/IdTokenService.html",[105,0.91,12619,5.694]],["body/injectables/IdTokenService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.009,27,0.441,29,0.838,30,0.001,31,0.681,32,0.145,33,0.517,34,0.989,35,1.185,36,2.294,39,2.25,47,0.961,95,0.163,99,0.97,101,0.01,103,0,104,0,105,1.118,107,1.401,111,2.579,112,2.602,127,1.047,137,7.275,145,2.871,158,4.085,187,0.84,201,2.957,209,2.762,216,1.979,217,1.583,221,2.732,227,1.11,234,0.944,305,1.656,334,0.624,348,3.804,351,4.194,361,6.284,450,2.387,461,1.912,738,4.345,853,2.999,1852,2.454,1936,8.347,1961,4.061,3502,4.32,4205,1.959,4568,5.083,4570,5.083,4592,4.551,4593,2.937,4737,7.064,4756,4.695,5442,3.311,5530,6.062,5698,2.957,6473,5.684,6847,7.154,7074,5.938,7182,5.839,7271,3.606,7745,4.428,8540,4.867,8920,5.628,9647,8.347,9736,4.551,11059,9.494,11061,5.083,11062,8.559,11936,6.502,12611,5.083,12619,6.999,12620,10.48,12621,5.373,12622,8.357,12623,8.357,12624,8.357,12625,5.812,12626,9.535,12627,5.812,12628,8.357,12629,5.812,12630,8.357,12631,5.812,12632,8.357,12633,5.812,12634,5.812,12635,5.812,12636,5.812,12637,4.695,12638,5.083,12639,8.357,12640,5.373,12641,5.373,12642,5.812,12643,5.812,12644,5.812,12645,5.812,12646,4.551,12647,8.357,12648,5.812,12649,5.812,12650,5.812,12651,5.812,12652,5.812,12653,7.726]],["title/modules/IdentityManagementModule.html",[425,1.812,817,5.324]],["body/modules/IdentityManagementModule.html",[0,0.273,3,0.019,4,0.019,5,0.01,30,0.001,95,0.174,101,0.013,103,0.001,104,0.001,187,1.158,425,3.082,427,2.892,428,3.111,429,3.204,430,3.19,431,3.176,432,3.83,433,4.371,442,4.165,443,3.137,444,3.062,449,4.13,773,5.096,788,10.849,803,6.459,817,10.868,836,6.046,1155,4.65,2800,8.015,3917,7.025,7862,7.401,7863,8.717,8255,9.458,8374,7.93,11585,4.561,12000,6.269,12654,8.006,12655,8.006,12656,8.006,12657,10.189,12658,10.51,12659,10.517,12660,7.401,12661,8.717,12662,6.467,12663,7.003,12664,8.006,12665,8.717,12666,10.409,12667,8.717]],["title/classes/IdentityManagementOauthService.html",[0,0.232,12659,5.324]],["body/classes/IdentityManagementOauthService.html",[0,0.252,2,0.824,3,0.017,4,0.017,5,0.009,7,0.112,8,1.193,9,6.363,27,0.458,29,0.579,30,0.001,31,0.414,32,0.1,33,0.357,35,1.635,36,2.728,47,0.941,51,5.764,78,9.191,87,6.385,94,5.764,95,0.095,101,0.012,103,0.001,104,0.001,145,2.5,154,6.122,204,2.507,264,4.149,369,2.191,371,2.723,379,1.675,494,5.917,803,7.364,1129,6.825,1178,6.37,1588,6.898,1605,7.036,2299,5.969,2461,7.495,5442,7.615,7995,7.339,11352,8.635,11585,6.76,11615,8.451,12000,9.293,12659,7.731,12668,6.831,12669,10.97,12670,10.97,12671,9.127,12672,7.39,12673,7.39,12674,9.127,12675,7.39,12676,5.63,12677,7.39]],["title/classes/IdentityManagementService.html",[0,0.232,788,5.493]],["body/classes/IdentityManagementService.html",[0,0.126,2,0.414,3,0.009,4,0.009,5,0.004,7,0.056,8,0.717,9,6.437,27,0.481,29,0.931,30,0.001,31,0.686,32,0.164,33,0.575,34,2.167,35,1.574,36,2.805,39,2.667,47,0.984,51,4.122,55,1.279,56,1.779,59,1.849,70,1.837,85,6.972,87,6.142,94,6.797,95,0.048,98,2.199,99,0.619,101,0.01,103,0,104,0,144,3.27,145,1.88,163,1.827,167,2.185,234,1.378,264,5.309,347,0.75,379,2.59,403,7.072,461,2.615,484,5.193,485,5.193,493,4.524,500,5.824,511,3,524,6.215,549,7.416,693,3.263,701,3.501,728,3.787,750,2.996,788,4.796,803,5.266,883,2.519,1005,4.228,1184,6.591,1396,4.834,1588,4.148,1857,6.466,1858,3.11,1947,8.462,2412,3.779,2794,5.032,2800,5.554,2801,7.695,2925,5.086,4052,6.34,4517,5.193,4669,4.649,7864,3.244,11585,6.773,11726,5.193,11742,7.107,12000,9.31,12678,5.489,12679,5.489,12680,5.489,12681,5.489,12682,7.845,12683,6.863,12684,6.863,12685,5.489,12686,5.489,12687,5.489,12688,9.614,12689,3.709,12690,10.806,12691,5.937,12692,3.709,12693,5.489,12694,3.709,12695,8.486,12696,5.489,12697,5.489,12698,3.709,12699,5.489,12700,5.937,12701,3.709,12702,5.489,12703,7.845,12704,3.709,12705,3.709,12706,3.429,12707,9.989,12708,3.709,12709,8.582,12710,11.57,12711,3.429,12712,7.845,12713,3.709,12714,5.937,12715,3.709,12716,5.937,12717,3.709,12718,2.904]],["title/entities/ImportUser.html",[380,1.445,12017,4.842]],["body/entities/ImportUser.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,27,0.509,30,0.001,31,0.375,32,0.174,33,0.446,47,0.945,49,1.699,95,0.136,96,1.181,101,0.015,103,0,104,0,111,0.866,144,2.253,145,2.075,165,0.828,167,2.462,192,3.394,200,1.345,214,1.361,217,1.066,227,0.694,234,0.701,240,3.971,247,3.211,305,1.23,319,2.449,334,0.719,347,1.657,355,2.689,364,2.25,369,2.778,370,3.041,371,1.845,380,1.422,381,1.436,394,5.69,398,1.272,399,2.655,400,1.905,402,1.789,404,0.778,405,1.15,406,1.404,444,1.651,461,2.896,472,2.914,575,2.588,577,5.209,701,1.526,728,2.559,844,3.732,851,4.401,852,4.401,853,5.453,854,5.012,905,1.798,1031,2.892,1166,2.071,1804,6.053,1852,1.823,2257,2.617,2283,3.776,2462,7.26,2463,3.616,2630,5.148,2632,5.076,2634,7.032,2642,3.138,2710,3.776,2925,4.011,3104,4.181,3110,3.336,4205,2.255,4210,6.275,4293,3.381,4294,3.209,4309,4.765,4571,2.353,4771,3.289,4989,3.753,5987,3.074,6499,3.776,6511,4.056,6521,2.647,6523,2.415,6543,2.679,6751,4.516,6864,4.318,6871,2.56,6872,2.647,7483,3.016,7574,4.675,8469,4.429,8470,3.209,8471,3.381,9538,2.868,9539,3.138,9540,2.868,9541,3.138,9542,3.289,9543,3.487,9718,2.868,9719,2.914,10298,3.289,10658,6.449,10659,5.624,10677,4.675,10678,3.074,10679,2.617,10687,5.604,11310,3.616,11314,3.138,12005,5.604,12006,11.571,12007,7.032,12008,8.678,12009,6.23,12010,8.068,12011,7.228,12012,3.289,12013,3.776,12014,3.776,12015,3.991,12016,3.616,12017,4.765,12018,3.991,12019,3.991,12020,3.991,12021,3.991,12022,3.991,12023,3.991,12024,3.991,12025,3.991,12026,5.604,12027,3.991,12028,5.604,12029,3.616,12030,7.456,12031,3.991,12032,3.991,12033,3.991,12034,3.616,12035,3.289,12036,3.991,12037,3.991,12038,3.991,12039,3.991,12040,5.604,12041,3.616,12042,7.032,12043,6.861,12044,7.167,12045,3.991,12046,6.186,12047,3.991,12048,3.487,12049,5.604,12050,3.991,12719,4.317,12720,4.317,12721,4.317,12722,4.317,12723,4.317,12724,4.317,12725,4.317,12726,4.317,12727,6.692,12728,4.317,12729,4.317,12730,4.317,12731,4.317,12732,4.317]],["title/controllers/ImportUserController.html",[481,2.611,12733,5.947]],["body/controllers/ImportUserController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.814,10,1.759,27,0.471,29,0.895,30,0.001,31,0.64,32,0.155,33,0.553,35,1.383,36,2.771,56,4.451,59,1.358,70,4.594,95,0.151,99,0.728,100,1.46,101,0.007,103,0,104,0,111,0.874,112,2.978,185,4.122,187,0.63,215,1.391,216,1.247,217,1.707,221,2.645,227,1.04,234,1.095,264,3.899,277,4.281,347,1.667,364,2.081,376,0.997,447,1.807,461,0.997,469,1.914,481,1.674,483,2.079,491,6.672,513,6.876,529,5.208,543,4.195,552,2.813,555,2.266,556,2.319,561,2.337,701,3.28,1008,3.644,1016,4.206,1028,7.727,1345,1.73,1750,3.657,2908,6.943,2929,2.507,2930,2.337,4476,5.229,5880,3.916,6612,7.181,6902,4.997,9148,6.659,10655,7.77,10693,7.77,12017,3.104,12733,5.897,12734,11.728,12735,4.359,12736,4.359,12737,6.742,12738,8.244,12739,8.244,12740,8.244,12741,6.742,12742,8.244,12743,8.244,12744,8.244,12745,4.359,12746,6.742,12747,4.359,12748,4.359,12749,7.77,12750,4.359,12751,4.359,12752,6.742,12753,4.359,12754,4.359,12755,10.479,12756,6.742,12757,4.359,12758,4.359,12759,6.233,12760,4.359,12761,4.359,12762,8.115,12763,6.742,12764,4.359,12765,4.359,12766,8.577,12767,6.742,12768,4.359,12769,4.359,12770,8.115,12771,6.742,12772,4.359,12773,3.813,12774,4.359,12775,4.359,12776,3.651,12777,4.03,12778,3.813,12779,8.577,12780,3.813,12781,4.03,12782,3.651,12783,3.521,12784,5.646,12785,4.359,12786,4.359,12787,3.521,12788,3.813,12789,4.359,12790,4.359,12791,4.359,12792,4.359,12793,5.646,12794,4.359,12795,4.359,12796,4.359,12797,4.359,12798,8.244,12799,4.359,12800,8.244,12801,4.359,12802,4.359,12803,4.359,12804,4.359,12805,4.359,12806,4.359,12807,4.359,12808,4.03,12809,4.359,12810,4.359,12811,4.359,12812,4.359,12813,4.359,12814,4.359,12815,4.359]],["title/classes/ImportUserFactory.html",[0,0.232,12816,6.286]],["body/classes/ImportUserFactory.html",[0,0.159,2,0.522,3,0.011,4,0.011,5,0.006,7,0.071,8,0.86,27,0.531,29,1.017,30,0.001,31,0.695,32,0.179,33,0.6,34,1.466,35,1.45,47,0.615,55,2.444,59,3.228,95,0.14,99,0.782,101,0.008,103,0,104,0,127,0.587,138,3.112,144,3.215,148,1.441,165,0.558,185,4.825,192,1.396,216,1.317,217,0.927,227,0.739,319,3.494,359,2.484,366,2.619,371,1.292,379,1.954,380,2.202,381,2.37,404,1.284,461,2.739,538,3.21,596,3.886,627,2.186,660,7.194,661,4.587,662,5.437,665,4.02,666,5.437,667,5.677,668,4.02,669,4.02,670,4.02,671,3.949,672,4.417,673,4.865,674,6.235,675,5.745,676,7.019,677,2.668,682,2.643,683,4.02,684,2.668,685,5.084,686,5.249,687,4.106,688,4.936,689,3.984,690,2.643,691,3.789,692,4.077,693,2.574,694,2.531,695,2.643,696,5.008,697,2.668,698,4.779,699,2.643,700,7.105,701,4.134,702,6.599,703,2.668,704,4.269,705,2.643,706,2.668,707,2.643,708,2.668,709,2.643,710,2.981,711,2.777,712,2.643,713,6.05,714,2.668,715,2.643,716,4.02,717,3.76,718,4.02,719,2.668,720,2.552,721,2.531,722,2.088,723,2.643,724,2.643,725,2.643,726,2.668,727,2.668,728,1.791,729,2.643,730,2.668,731,3.406,732,2.643,733,2.668,735,2.72,736,2.777,737,2.807,775,2.872,851,2.233,852,2.233,853,2.417,854,2.35,1187,2.233,1188,2.207,1189,2.207,1190,2.335,1191,2.552,1192,3.214,1345,1.858,3104,2.122,3846,6.231,4210,2.943,4571,2.552,6736,3.668,6737,3.783,6746,3.668,9719,3.161,9913,3.272,10658,3.272,12005,3.922,12007,3.568,12008,5.427,12009,3.161,12010,7.781,12011,5.578,12017,3.335,12816,7.969,12817,7.124,12818,4.684,12819,7.124,12820,4.684,12821,6.585,12822,4.096,12823,4.684,12824,4.684,12825,4.684,12826,4.684,12827,4.684,12828,4.684,12829,4.096,12830,4.684]],["title/classes/ImportUserListResponse.html",[0,0.232,12782,5.694]],["body/classes/ImportUserListResponse.html",[0,0.338,2,0.948,3,0.014,4,0.014,5,0.007,7,0.09,27,0.472,29,0.466,30,0.001,31,0.476,32,0.178,33,0.553,34,1.012,47,0.816,55,2.912,56,5.708,59,2.647,70,5.891,94,2.89,95,0.153,101,0.014,103,0,104,0,127,0.745,145,1.506,163,3.521,165,0.666,167,2.189,192,1.773,200,3.563,208,2.223,347,1.203,355,2.391,364,1.97,369,2.2,371,1.641,374,1.899,375,3.237,376,1.361,379,2.838,404,1.531,405,1.585,461,2.865,467,3.344,469,2.612,470,4.524,475,2.908,496,2.512,538,2.681,577,3.358,596,3.299,717,3.14,731,2.35,851,4.052,852,4.052,1000,3.46,1007,7.509,1008,6.43,1009,4.841,1011,3.006,1013,4.541,1014,2.837,1015,3.327,1016,2.089,1017,4.156,1018,5.484,1019,4.936,1020,3.894,1021,3.164,1022,4.156,1023,4.156,1025,3.738,1026,3.298,1031,1.864,1187,2.837,1188,2.803,1189,2.803,1190,2.965,1191,3.242,1639,3.787,1865,2.71,1950,4.237,2045,4.156,2884,3.164,2885,3.164,3104,4.9,3105,3.787,3106,3.358,3110,2.965,4476,3.789,5022,3.787,5477,3.787,7810,3.648,9538,3.952,9539,4.325,9540,3.952,9541,4.325,10293,4.753,10658,4.156,10659,4.083,10678,4.237,10679,3.606,10691,4.422,11317,4.806,11714,3.692,12007,4.533,12009,4.015,12028,4.982,12029,4.982,12782,7.117,12783,10.116,12831,7.433,12832,5.949,12833,5.949,12834,7.764,12835,5.5,12836,7.554,12837,5.5,12838,5.5,12839,4.982,12840,4.982,12841,4.982,12842,4.982,12843,5.5,12844,5.5,12845,7.856,12846,5.5,12847,4.806,12848,5.5,12849,5.5,12850,4.659,12851,5.5]],["title/classes/ImportUserMapper.html",[0,0.232,12773,5.947]],["body/classes/ImportUserMapper.html",[0,0.221,2,0.724,3,0.015,4,0.015,5,0.008,7,0.098,8,1.092,27,0.429,29,0.815,30,0.001,31,0.583,32,0.141,33,0.503,35,1.259,95,0.161,99,1.084,100,3.765,101,0.011,103,0.001,104,0.001,145,2.634,167,3.827,187,0.939,217,1.539,227,1.166,234,1.468,305,1.851,307,4.082,309,5.201,319,1.941,369,2.007,461,2.068,496,2.743,529,2.823,558,3.116,627,3.991,851,3.098,852,3.098,975,5.012,982,3.238,1750,4.011,2643,5.252,3015,7.732,4476,5.014,5209,4.316,7064,5.682,9116,8.359,9145,8.359,9148,7.304,9149,8.806,9204,5.682,10655,9.418,10658,4.538,10659,4.458,12007,4.949,12009,4.384,12017,8.717,12051,9.084,12749,9.418,12773,7.909,12776,5.44,12778,7.909,12783,9.084,12808,6.005,12847,5.247,12852,11.246,12853,9.042,12854,9.042,12855,6.496,12856,6.496,12857,9.042,12858,6.496,12859,5.087,12860,6.005,12861,5.44,12862,5.682,12863,6.496,12864,6.496,12865,6.496,12866,6.496,12867,6.496,12868,6.496,12869,6.496,12870,6.496,12871,6.496,12872,6.496,12873,6.496,12874,6.496,12875,6.005,12876,9.042,12877,6.496,12878,6.496,12879,6.005,12880,6.496,12881,6.496,12882,6.005,12883,6.496,12884,6.496,12885,6.496,12886,6.496,12887,6.496,12888,6.496,12889,6.496,12890,6.496,12891,6.496,12892,6.496,12893,6.496,12894,6.496,12895,6.496,12896,6.496,12897,6.496,12898,6.496]],["title/classes/ImportUserMatchMapper.html",[0,0.232,12861,5.694]],["body/classes/ImportUserMatchMapper.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,27,0.449,29,0.854,30,0.001,31,0.611,32,0.148,33,0.527,35,1.32,95,0.14,99,1.436,101,0.014,103,0.001,104,0.001,227,1.346,305,2.451,307,5.407,309,6.27,319,2.572,529,3.74,577,7.326,627,4.069,982,4.289,4476,5.335,7810,5.276,10668,11.63,12010,10.712,12053,10.021,12861,9.13,12899,8.605,12900,10.901,12901,10.901,12902,10.901,12903,8.605,12904,10.901,12905,8.605,12906,10.466,12907,8.605,12908,7.955,12909,8.605,12910,7.955,12911,8.605,12912,7.955,12913,6.738,12914,8.605,12915,8.605,12916,8.605,12917,8.605]],["title/modules/ImportUserModule.html",[425,1.812,12918,5.493]],["body/modules/ImportUserModule.html",[0,0.257,3,0.018,4,0.018,5,0.009,30,0.001,52,3.575,94,3.663,95,0.17,101,0.013,103,0.001,104,0.001,187,1.091,191,4.181,192,2.248,200,2.349,425,3.188,427,2.724,428,2.931,429,3.018,430,3.005,431,2.992,432,4.133,433,3.782,437,9.113,438,5.995,441,7.67,442,4.004,443,2.955,444,2.884,447,4.148,449,3.971,450,3.098,461,1.725,823,9.303,836,4.381,1467,2.407,1554,8.941,1820,4.68,1878,6.917,1920,4.801,2280,4.296,2630,4.739,2794,4.472,3090,3.262,4476,3.363,5333,8.146,7801,5.906,10862,5.906,12733,9.824,12779,11.831,12780,6.596,12781,6.972,12918,11.504,12919,7.542,12920,7.542,12921,7.542,12922,11.193,12923,7.542,12924,7.542,12925,7.542,12926,7.542,12927,5.176]],["title/injectables/ImportUserRepo.html",[105,0.91,12922,5.947]],["body/injectables/ImportUserRepo.html",[0,0.172,3,0.012,4,0.012,5,0.006,7,0.076,8,0.91,10,3.039,12,3.449,18,3.804,26,2.119,27,0.504,29,0.936,30,0.001,31,0.67,32,0.163,33,0.578,34,1.533,35,1.447,36,2.743,40,3.635,49,1.983,56,2.418,58,3.253,59,2.345,94,3.657,95,0.144,96,2.06,97,2.18,98,2.989,99,0.841,101,0.008,103,0,104,0,105,1.007,107,1.215,111,1.807,112,2.972,144,1.386,167,4.4,187,0.729,192,2.979,217,1.591,221,2.692,227,1.109,234,1.463,277,3.039,305,1.436,319,1.507,369,1.119,380,1.071,381,2.505,398,1.485,404,1.357,461,2.796,496,2.128,529,3.917,596,3.049,692,4.719,701,4.227,807,4.66,844,5.298,877,6.824,883,3.194,884,3.548,885,4.554,908,3.091,909,3.128,910,3.091,911,3.128,913,3.091,914,3.128,915,2.795,919,3.841,964,3.46,1639,4.793,1947,3.947,2144,4.25,2394,5.928,3090,2.18,3110,3.753,3427,3.46,3846,6.586,5022,3.209,5880,4.373,5882,3.522,6612,3.021,6901,6.418,6902,7.049,6912,5.597,6930,6.586,6931,3.664,6932,3.664,12016,6.306,12017,7.992,12051,8.075,12875,4.66,12913,3.947,12922,6.586,12928,5.041,12929,7.53,12930,9.013,12931,9.013,12932,7.53,12933,7.53,12934,5.041,12935,5.041,12936,5.041,12937,5.041,12938,5.041,12939,5.041,12940,7.53,12941,5.041,12942,6.586,12943,5.041,12944,7.883,12945,5.041,12946,5.041,12947,5.041,12948,5.041,12949,5.041,12950,5.041,12951,5.041,12952,5.041,12953,5.041,12954,5.041,12955,5.041,12956,5.041,12957,5.041,12958,5.041,12959,5.041,12960,5.041,12961,5.041,12962,5.041,12963,5.041,12964,5.041,12965,7.53,12966,5.041,12967,7.53,12968,5.041,12969,5.041,12970,5.041,12971,5.041,12972,5.041,12973,5.041]],["title/classes/ImportUserResponse.html",[0,0.232,12783,5.493]],["body/classes/ImportUserResponse.html",[0,0.321,2,1.05,3,0.013,4,0.013,5,0.007,7,0.082,27,0.514,29,0.426,30,0.001,31,0.528,32,0.178,33,0.456,34,1.354,47,0.904,55,2.029,56,3.819,70,3.942,94,3.867,95,0.153,101,0.013,103,0,104,0,127,0.681,144,1.495,163,2.45,165,0.624,167,2,192,1.62,200,3.947,208,2.031,319,1.625,347,1.61,355,3.199,364,2.226,369,2.301,371,2.195,374,1.735,375,3.032,376,1.243,379,2.825,404,0.979,405,2.121,461,3.026,467,3.271,469,2.386,470,4.338,475,2.657,479,7.003,496,2.295,538,3.587,577,5.317,595,1.82,717,2.869,731,2.148,851,5.264,852,5.264,1000,3.241,1007,4.881,1008,2.938,1009,3.096,1013,4.314,1025,3.415,1026,3.013,1031,2.495,1187,2.592,1188,2.561,1189,2.561,1190,2.709,1191,2.962,1403,3.013,1639,5.068,1865,3.626,1950,3.871,2045,3.798,2884,4.234,2885,4.234,3104,5.398,3105,5.068,3106,4.493,3110,3.968,4476,5.649,5022,5.068,5477,5.068,7043,5.025,7810,4.881,9538,3.611,9539,3.951,9540,3.611,9541,3.951,10293,5.8,10658,6.581,10659,6.465,10678,5.669,10679,4.825,10691,5.918,11317,4.391,11714,4.94,12007,7.177,12009,6.358,12028,4.552,12029,4.552,12782,4.552,12783,9.87,12831,11.083,12834,8.644,12835,5.025,12836,8.41,12837,5.025,12838,5.025,12839,4.552,12840,4.552,12841,4.552,12842,4.552,12843,5.025,12844,5.025,12845,7.359,12846,5.025,12847,7.609,12848,7.359,12849,7.359,12850,4.256,12851,5.025,12974,5.436,12975,5.436,12976,5.436,12977,5.436,12978,5.436,12979,5.436,12980,5.436,12981,5.436,12982,5.436]],["title/classes/ImportUserScope.html",[0,0.232,12944,5.947]],["body/classes/ImportUserScope.html",[0,0.148,2,0.75,3,0.01,4,0.01,5,0.005,7,0.066,8,0.812,27,0.523,29,0.955,30,0.001,31,0.71,32,0.17,33,0.589,34,1.144,35,1.475,39,1.17,47,0.882,49,1.71,95,0.136,96,1.84,97,1.879,99,0.725,101,0.007,103,0,104,0,111,2.124,144,1.85,148,1.337,165,0.527,167,3.027,192,2.452,217,1.438,227,1.3,234,1.336,247,1.703,277,4.831,305,2.344,307,2.73,309,5.761,319,2.459,347,1.664,355,2.703,369,2.533,398,1.28,404,1.212,461,2.527,472,4.539,496,1.835,529,1.889,558,2.085,577,5.654,596,3.056,701,3.275,779,6.885,844,4.219,851,3.207,852,3.207,1174,6.733,1852,4.473,1854,6.153,1939,4.699,2384,5.551,2394,5.94,4205,1.464,4210,2.73,4309,4.789,4571,5.773,4661,3.549,5209,5.466,5406,4.173,5429,6.062,5991,4.539,5992,4.539,5993,4.539,5998,4.539,5999,4.539,6000,2.982,6001,2.933,6002,2.982,6003,2.982,6012,2.933,6013,4.539,6014,2.982,6015,2.933,6016,2.982,6017,2.933,6018,8.225,6901,4.789,7810,4.123,9718,4.468,9719,4.539,10658,5.748,10659,2.982,10677,3.036,10679,2.634,12007,3.311,12008,6.268,12009,5.553,12012,5.124,12017,3.094,12053,7.756,12859,3.403,12908,4.017,12910,4.017,12912,4.017,12913,5.266,12944,11.296,12983,4.345,12984,6.725,12985,6.725,12986,6.725,12987,6.725,12988,6.725,12989,6.725,12990,6.725,12991,6.725,12992,6.725,12993,6.725,12994,4.345,12995,6.725,12996,4.345,12997,6.725,12998,4.345,12999,6.725,13000,4.345,13001,6.217,13002,6.725,13003,4.345,13004,6.725,13005,4.345,13006,6.725,13007,4.345,13008,6.725,13009,4.345,13010,6.725,13011,4.345,13012,3.639,13013,4.017,13014,4.345,13015,4.017,13016,4.345,13017,4.345,13018,6.725,13019,4.345,13020,8.101,13021,8.562,13022,4.345,13023,6.725,13024,6.725,13025,6.725,13026,6.725,13027,4.345,13028,4.345,13029,4.345,13030,4.345,13031,4.345,13032,4.345,13033,4.345,13034,6.725,13035,4.345,13036,4.345,13037,5.432,13038,4.345,13039,4.345,13040,4.017]],["title/classes/ImportUserUrlParams.html",[0,0.232,12755,5.947]],["body/classes/ImportUserUrlParams.html",[0,0.393,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.389,30,0.001,32,0.128,34,1.963,47,0.823,95,0.148,101,0.016,103,0.001,104,0.001,165,0.904,200,3.595,359,4.024,364,1.718,368,4.522,369,2.561,370,3.802,371,3.183,374,3.01,376,2.157,379,2.137,461,2.973,467,3.028,472,7.79,769,6.843,1000,4.699,3795,5.533,4476,5.146,12017,8.219,12755,10.095,12831,10.095,12847,10.075,13041,9.431,13042,9.431]],["title/interfaces/InlineAttachment.html",[334,0.731,1488,5.055]],["body/interfaces/InlineAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,31,0.496,32,0.12,47,1.017,77,5.634,101,0.015,103,0.001,104,0.001,165,0.869,334,1.456,336,2.118,404,2.359,1482,8.249,1483,6.743,1484,9.448,1485,9.973,1486,6.743,1487,4.95,1488,9.011,1489,6.434,1490,9.683,1491,6.434,1492,9.011,1493,6.743,1494,8.249,1495,8.454,1496,8.454,1497,8.249,1498,6.725,1499,6.579,1500,6.579,1501,6.743,1502,6.743]],["title/modules/InterceptorModule.html",[425,1.812,6427,5.694]],["body/modules/InterceptorModule.html",[0,0.294,3,0.02,4,0.02,5,0.01,30,0.001,95,0.162,101,0.014,103,0.001,104,0.001,163,3.364,187,1.25,217,1.125,227,0.896,234,1.403,379,1.958,425,2.913,427,3.122,432,3.18,558,4.146,704,6.239,728,4.18,789,8.247,801,5.019,836,6.349,837,6.154,839,4.121,1852,3.649,1959,4.709,2268,6.227,2471,7.154,3495,7.154,3937,8.913,6098,7.154,6427,9.154,6439,7.637,6440,10.487,6444,8.83,8370,6.584,8374,6.584,11372,6.154,11714,6.783,11928,7.237,13043,8.642,13044,8.83,13045,12.6,13046,9.154,13047,10.487,13048,7.989,13049,8.642]],["title/interfaces/IntrospectResponse.html",[334,0.731,13050,5.947]],["body/interfaces/IntrospectResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.189,33,0.694,47,1.025,51,5.85,55,2.901,101,0.013,103,0.001,104,0.001,165,0.793,277,4.861,334,0.824,336,1.836,337,5.359,347,2.291,359,3.949,1518,8.577,6161,8.577,6992,9.431,6994,9.431,7016,9.431,7017,9.431,11613,7.883,13050,8.852,13051,7.671,13052,11.134,13053,12.044,13054,12.044,13055,12.044,13056,12.044]],["title/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.232,13057,5.947]],["body/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.283,2,0.926,3,0.02,4,0.02,5,0.01,7,0.125,8,1.287,27,0.439,29,0.65,30,0.001,31,0.465,32,0.145,33,0.402,35,1.005,47,0.937,72,3.762,95,0.137,101,0.014,103,0.001,104,0.001,111,1.665,127,1.04,145,2.98,163,2.555,187,1.201,214,3.36,215,2.65,216,1.97,227,0.861,234,1.348,367,3.959,404,1.92,406,2.701,1216,3.253,1464,5.42,1465,6.073,1467,2.65,1469,6.148,1904,3.473,2049,6.073,2072,7.593,2074,10.793,2643,6.835,3144,6.502,3281,5.516,7773,6.326,8288,6.118,8289,6.36,8738,5.285,8745,4.872,8746,5.091,8754,6.954,8755,6.954,11944,8.748,13057,9.321,13058,11.768,13059,11.768,13060,8.303,13061,8.303,13062,6.502,13063,7.262,13064,8.303,13065,8.303]],["title/classes/IservMapper.html",[0,0.232,13066,5.947]],["body/classes/IservMapper.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.852,30,0.001,31,0.669,32,0.148,33,0.526,35,1.316,95,0.14,99,1.43,100,2.869,101,0.014,103,0.001,104,0.001,189,6.963,227,1.127,234,1.765,627,4.065,851,4.086,852,4.086,853,4.422,854,5.456,3110,4.271,4571,6.845,7074,6.79,8450,9.337,8452,5.384,9534,9.131,12009,8.478,13066,9.509,13067,11.942,13068,8.568,13069,10.05,13070,10.05,13071,10.872,13072,8.568,13073,6.921,13074,10.872,13075,8.568,13076,8.568,13077,7.921,13078,7.921,13079,8.568,13080,8.568,13081,8.568,13082,7.921]],["title/injectables/IservProvisioningStrategy.html",[105,0.91,13083,5.694]],["body/injectables/IservProvisioningStrategy.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.008,27,0.467,29,0.838,30,0.001,31,0.599,32,0.145,33,0.517,34,0.987,35,1.294,36,2.53,47,0.841,95,0.165,99,0.969,100,1.943,101,0.01,103,0,104,0,105,1.117,107,1.399,111,1.163,112,2.6,127,0.727,128,4.688,129,6.636,132,5.387,145,2.708,163,1.786,167,3.072,187,0.839,189,4.628,191,3.217,192,1.73,215,1.852,216,1.544,217,1.674,221,2.475,227,1.175,234,1.588,247,2.274,305,2.378,348,5.464,369,1.288,404,1.504,406,1.888,461,2.592,596,2.983,775,3.558,798,3.646,853,4.309,1570,4.314,1605,3.441,1630,4.219,1739,6.069,2139,5.387,2268,3.306,3104,2.629,4205,1.956,4571,5.329,4593,2.932,4661,3.063,4737,7.061,5987,4.133,7074,4.373,7080,5.635,8443,3.856,8450,6.206,9534,6.069,10921,8.374,11432,5.945,11714,5.181,12009,5.635,12034,4.86,12332,7.413,12334,6.4,12335,3.856,12336,3.856,13066,5.076,13083,6.992,13084,5.804,13085,8.349,13086,6.538,13087,5.804,13088,6.744,13089,8.243,13090,5.804,13091,8.349,13092,5.804,13093,6.744,13094,7.949,13095,5.804,13096,5.804,13097,5.076,13098,6.361,13099,5.076,13100,5.365,13101,5.804,13102,5.804,13103,5.365,13104,9.778,13105,5.076,13106,5.365,13107,8.349,13108,5.804,13109,5.365,13110,5.804,13111,5.804,13112,5.804,13113,5.804,13114,5.804,13115,5.804,13116,5.804,13117,5.804,13118,6.744,13119,5.804,13120,6.992,13121,5.804,13122,6.744,13123,5.076,13124,5.365,13125,5.804,13126,5.804,13127,5.804,13128,5.804,13129,5.804,13130,5.804,13131,5.076]],["title/injectables/JwtAuthGuard.html",[105,0.91,13132,5.947]],["body/injectables/JwtAuthGuard.html",[0,0.357,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.017,103,0.001,104,0.001,105,1.645,107,2.528,187,1.516,404,2.216,1562,7.795,13132,10.757,13133,10.486,13134,10.486,13135,12.299,13136,9.694]],["title/interfaces/JwtConstants.html",[334,0.731,1571,5.694]],["body/interfaces/JwtConstants.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.173,39,2.399,47,0.987,85,7.19,95,0.114,101,0.019,103,0.001,104,0.001,138,4.867,165,0.873,217,1.45,334,0.957,336,2.132,369,1.977,772,9.746,1568,6.977,1571,10.669,1609,6.788,1611,8.236,1613,5.528,1615,7.461,1618,7.618,1749,6.623,1852,3.762,1905,5.4,2449,6.115,2794,5.283,6161,6.344,6992,6.977,6994,6.977,7016,6.977,7017,6.977,13137,8.909,13138,13.115,13139,11.143,13140,8.909,13141,8.909,13142,7.197,13143,7.461,13144,7.461,13145,8.909,13146,8.909,13147,8.909,13148,7.792,13149,8.909,13150,8.909]],["title/classes/JwtExtractor.html",[0,0.232,13151,5.947]],["body/classes/JwtExtractor.html",[0,0.296,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,27,0.358,29,0.68,30,0.001,31,0.614,32,0.118,33,0.42,35,1.051,47,0.9,95,0.154,101,0.014,103,0.001,104,0.001,167,4.033,217,1.129,227,1.137,351,6.029,367,5.729,535,5.876,627,3.686,731,4.33,1187,5.227,1188,5.165,1189,5.165,1190,5.988,1191,6.547,1192,8.245,1193,7.398,1204,6.796,1605,5.146,6616,5.202,11456,9.179,11530,9.179,13151,9.587,13152,10.132,13153,8.679,13154,10.961,13155,10.961,13156,8.679,13157,12.014,13158,6.796,13159,8.679,13160,10.961]],["title/interfaces/JwtPayload.html",[334,0.731,1739,4.943]],["body/interfaces/JwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.178,39,2.854,47,1.012,48,3.881,55,2.824,85,5.314,101,0.018,103,0.001,104,0.001,165,0.83,334,1.139,336,1.971,347,2.144,355,3.309,404,1.91,461,1.884,575,4.936,722,3.672,956,5.39,1609,8.076,1613,6.578,1719,9.179,1739,7.706,1749,9.201,1852,5.226,1946,5.471,2449,7.275,3110,4.105,4205,2.776,5058,5.471,6161,8.814,6992,9.692,6994,9.692,7016,9.692,7017,9.692,7023,7.613,7024,7.613,7025,6.652,7026,6.897,7027,5.11,7028,7.613,7029,7.203,7030,9.271]],["title/injectables/JwtStrategy.html",[105,0.91,1550,5.947]],["body/injectables/JwtStrategy.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.213,27,0.414,29,0.787,30,0.001,31,0.563,32,0.137,33,0.486,35,0.918,36,2.154,85,4.894,95,0.173,101,0.013,103,0.001,104,0.001,105,1.344,107,1.828,112,2.482,127,0.95,187,1.097,204,2.573,206,3.859,215,2.421,216,1.402,217,1.307,221,1.755,227,0.786,231,6.244,234,1.231,305,2.161,334,0.815,371,2.091,404,1.81,406,2.467,461,1.735,491,3.731,496,3.202,513,5.076,685,4.003,784,4.099,1129,6.478,1369,4.133,1370,6.674,1550,8.786,1551,10.354,1562,5.638,1571,6.352,1572,6.634,1576,6.634,1605,7.11,1619,7.011,1739,8.716,1742,6.352,1749,7.467,1852,3.202,2004,5.205,2801,5.401,3837,5.939,4519,5.205,5427,6.126,6098,6.575,7062,5.638,9603,4.828,10868,6.634,11613,4.964,13151,6.634,13158,5.939,13161,7.584,13162,8.413,13163,7.584,13164,7.584,13165,10.045,13166,7.584,13167,6.352,13168,7.584,13169,7.584,13170,7.584,13171,7.584,13172,7.584,13173,7.584,13174,7.584,13175,7.584,13176,7.584,13177,7.584,13178,7.584,13179,7.584,13180,7.584,13181,7.584]],["title/classes/JwtTestFactory.html",[0,0.232,7007,5.947]],["body/classes/JwtTestFactory.html",[0,0.262,2,0.857,3,0.018,4,0.018,5,0.009,7,0.116,8,1.224,27,0.418,29,0.602,30,0.001,31,0.43,32,0.154,33,0.372,35,1.227,47,0.984,59,2.394,85,7.315,95,0.13,101,0.013,103,0.001,104,0.001,116,3.156,185,2.987,217,1.569,227,1.051,334,0.826,565,5.051,627,3.948,1568,6.018,1570,5.713,1593,6.436,1605,4.557,1609,5.856,1613,4.769,1738,7.366,1749,7.533,4508,7.721,6161,7.216,6990,10.542,6991,7.105,6992,7.935,6993,8.487,6994,7.935,6995,10.481,6996,10.492,6997,9.368,6998,7.105,6999,7.105,7000,7.105,7001,7.105,7002,8.863,7003,7.105,7004,9.368,7005,9.368,7006,7.105,7007,8.863,7008,10.542,7009,9.368,7010,9.368,7011,7.105,7012,7.105,7013,7.105,7014,7.105,7015,7.105,7016,6.018,7017,6.018,7018,6.722,7019,7.105,7020,7.105,7021,7.105,7022,7.105,13182,10.134,13183,7.686,13184,7.686]],["title/injectables/JwtValidationAdapter.html",[105,0.91,1551,5.493]],["body/injectables/JwtValidationAdapter.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.095,8,1.071,27,0.458,29,0.87,30,0.001,31,0.622,32,0.151,33,0.537,34,1.889,35,1.24,36,2.601,47,0.99,85,7.548,94,4.305,95,0.156,101,0.011,103,0.001,104,0.001,105,1.186,107,1.522,111,1.777,112,2.848,127,1.11,187,0.913,216,1.639,217,1.153,221,2.371,264,3.725,368,3.473,371,1.741,379,1.431,691,5.907,731,3.502,839,3.01,1129,5.098,1187,4.226,1188,4.176,1189,4.176,1190,4.418,1191,4.83,1192,6.083,1530,4.693,1551,7.159,1563,5.521,1605,7.539,1749,10.01,1770,5.148,1854,5.888,1905,3.826,2007,7.159,2471,7.269,3090,3.833,3812,6.94,3854,10.433,3858,5.521,3861,4.81,3863,5.521,3871,5.521,3872,9.161,3873,6.94,7030,7.752,10868,7.752,11774,5.642,12013,7.752,13152,10.815,13185,6.313,13186,8.863,13187,8.863,13188,8.863,13189,6.313,13190,6.313,13191,8.863,13192,8.863,13193,6.313,13194,8.863,13195,6.313,13196,8.863,13197,8.193,13198,8.863,13199,8.863,13200,6.313,13201,6.313,13202,6.313,13203,6.313,13204,6.313,13205,8.863,13206,6.313,13207,6.313,13208,6.313,13209,8.863,13210,8.863,13211,6.313,13212,6.313,13213,6.313]],["title/classes/KeycloakAdministration.html",[0,0.232,13214,6.286]],["body/classes/KeycloakAdministration.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.355,30,0.001,47,1,51,5.295,87,6.313,95,0.14,101,0.014,103,0.001,104,0.001,144,2.366,165,0.854,238,6.097,319,3.258,347,2.205,627,3.672,2130,3.759,2131,4.206,2132,4.055,2294,7.206,3859,4.813,5530,6.271,7995,8.104,11560,7.242,11577,5.808,11585,6.21,11586,6.684,12070,10.87,12072,9.13,12073,10.021,12245,9.13,12662,8.806,13214,10.078,13215,10.901,13216,10.901,13217,10.901,13218,10.901,13219,10.901,13220,10.901,13221,8.605,13222,6.738]],["title/modules/KeycloakAdministrationModule.html",[425,1.812,12657,5.324]],["body/modules/KeycloakAdministrationModule.html",[0,0.304,3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,154,4.089,187,1.291,425,3.243,427,3.226,428,3.47,429,3.573,430,3.558,431,3.543,432,4.479,433,4.6,442,4.465,443,3.499,444,3.415,447,3.701,773,5.684,836,5.186,1307,6.358,2294,7.478,3580,4.543,10679,6.763,11585,5.087,11586,5.475,12073,9.344,12657,10.634,12662,7.213,13222,6.992,13223,8.929,13224,8.929,13225,8.929,13226,10.242,13227,8.929,13228,10.315,13229,6.638,13230,8.254,13231,8.254,13232,7.478,13233,7.478,13234,6.803,13235,8.929]],["title/injectables/KeycloakAdministrationService.html",[105,0.91,13226,4.943]],["body/injectables/KeycloakAdministrationService.html",[0,0.184,3,0.013,4,0.013,5,0.007,7,0.12,8,0.956,27,0.535,29,0.422,30,0.001,31,0.302,32,0.108,33,0.261,34,0.917,35,1.506,36,2.466,47,0.82,55,1.161,95,0.12,101,0.009,103,0,104,0,105,1.059,107,1.3,111,2.57,112,2.934,116,4.338,127,0.991,144,2.177,148,2.436,165,0.62,187,0.78,216,1.463,217,1.432,221,2.822,227,1.264,234,1.285,238,3.016,247,3.674,319,2.365,369,1.197,371,1.487,627,2.877,784,2.914,839,2.571,1369,2.938,1370,3.582,1761,7.316,1763,5.753,2130,2.355,2294,4.516,3580,3.222,5530,2.688,7278,3.268,10679,4.797,11585,7.462,11586,8.031,12070,8.651,12072,4.516,12073,4.516,13222,4.222,13226,5.753,13228,9.55,13229,4.008,13230,4.984,13231,4.984,13236,9.98,13237,5.392,13238,9.376,13239,9.376,13240,10.33,13241,10.33,13242,10.33,13243,10.33,13244,10.33,13245,10.33,13246,10.33,13247,10.33,13248,10.33,13249,4.984,13250,9.376,13251,7.914,13252,7.316,13253,5.392,13254,5.392,13255,5.392,13256,5.392,13257,5.392,13258,5.392,13259,5.392,13260,5.392,13261,5.392,13262,7.914,13263,5.392,13264,5.392,13265,5.392,13266,5.392,13267,5.392,13268,5.392,13269,5.392,13270,7.914,13271,5.392,13272,5.392,13273,5.392,13274,7.914,13275,6.393,13276,7.914,13277,9.376,13278,4.984,13279,4.984,13280,5.392,13281,5.392,13282,4.984,13283,4.716,13284,5.392,13285,5.392,13286,5.392,13287,9.376,13288,7.914,13289,5.392]],["title/classes/KeycloakConfiguration.html",[0,0.232,13232,5.694]],["body/classes/KeycloakConfiguration.html",[0,0.33,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,95,0.125,101,0.016,103,0.001,104,0.001,144,2.669,165,0.92,319,3.51,627,3.875,2130,4.239,2268,5.528,11577,6.549,11585,6.69,11586,7.2,12063,10.576,12066,10.856,12067,10.856,13222,7.598,13232,9.835,13290,10.271,13291,12.629,13292,11.743,13293,11.743,13294,9.703,13295,8.487]],["title/modules/KeycloakConfigurationModule.html",[425,1.812,13296,5.694]],["body/modules/KeycloakConfigurationModule.html",[0,0.229,3,0.016,4,0.016,5,0.008,30,0.001,95,0.177,101,0.011,103,0.001,104,0.001,154,3.074,187,0.971,425,2.82,427,2.425,428,2.609,429,2.686,430,2.674,431,2.663,432,3.894,433,4,437,8.806,438,5.793,442,3.701,443,2.63,444,2.567,447,3.834,449,3.67,773,5.888,836,3.899,1307,4.78,1467,2.142,1548,8.639,1564,5.114,1567,4.607,2130,2.932,2268,3.824,3489,4.69,3566,9.683,8255,8.989,8844,4.69,11585,3.824,11586,4.116,11591,9.192,11592,5.256,11593,5.256,11604,10.109,12068,8.09,12657,9.683,12662,5.422,12663,5.871,13222,5.256,13232,5.621,13233,8.863,13290,5.871,13295,5.871,13296,11.876,13297,6.712,13298,6.712,13299,6.712,13300,6.712,13301,11.308,13302,10.811,13303,10.356,13304,6.712,13305,9.256,13306,6.712,13307,6.712,13308,7.746,13309,6.205,13310,6.205,13311,6.205,13312,6.205,13313,6.712,13314,6.712,13315,5.621,13316,6.712]],["title/injectables/KeycloakConfigurationService.html",[105,0.91,13301,5.694]],["body/injectables/KeycloakConfigurationService.html",[0,0.09,3,0.006,4,0.006,5,0.003,7,0.04,8,0.544,10,1.817,27,0.461,29,0.77,30,0.001,31,0.587,32,0.134,33,0.476,34,1.828,35,1.354,36,2.399,47,0.862,59,0.826,74,2.142,95,0.141,101,0.004,103,0,104,0,105,0.602,107,0.639,111,2.595,112,2.841,116,3.063,127,0.564,154,3.852,187,0.384,200,0.826,206,3.516,216,1.278,217,1.716,221,3.102,227,0.803,235,4.368,247,1.039,264,1.892,355,1.066,369,1.867,371,2.134,379,0.601,394,1.511,403,1.736,461,1.341,500,3.089,524,2.589,575,1.589,576,4.368,731,3.728,773,3.733,789,5.869,801,1.54,804,2.077,805,2.142,883,2.488,905,2.442,1031,0.831,1187,4.5,1188,4.446,1189,4.446,1308,1.607,1318,2.32,1750,1.996,1798,4.747,1946,2.99,2255,1.888,2280,1.511,2385,1.626,2450,2.564,2925,2.698,2929,2.589,3104,2.039,4007,1.666,4564,2.142,4588,1.369,5530,2.244,5880,4.495,6161,3.205,6993,4.911,7034,2.077,7280,3.272,7283,1.971,7928,2.452,8511,2.452,8890,2.021,10677,1.853,10679,5.098,11459,6.481,11568,2.76,11585,6.481,11586,6.975,11774,2.865,11941,4.737,12072,8.525,12329,6.534,12331,4.828,12407,1.971,12710,5.421,13226,5.023,13229,6.253,13234,2.021,13236,2.021,13275,8.223,13278,2.452,13279,2.452,13282,2.452,13283,2.32,13301,3.77,13308,7.51,13309,2.452,13310,2.452,13317,9.95,13318,4.501,13319,6.911,13320,6.911,13321,6.911,13322,6.911,13323,4.501,13324,4.501,13325,4.501,13326,6.911,13327,4.501,13328,4.501,13329,4.501,13330,4.501,13331,2.221,13332,7.51,13333,2.652,13334,3.77,13335,4.501,13336,2.652,13337,9.436,13338,2.652,13339,2.652,13340,2.652,13341,2.652,13342,4.501,13343,8.414,13344,2.652,13345,4.501,13346,2.652,13347,8.968,13348,4.501,13349,2.652,13350,2.652,13351,5.864,13352,4.501,13353,2.652,13354,5.864,13355,4.501,13356,8.411,13357,6.388,13358,2.652,13359,4.501,13360,5.864,13361,4.501,13362,2.652,13363,4.501,13364,2.652,13365,2.652,13366,2.652,13367,2.652,13368,2.652,13369,4.501,13370,2.652,13371,2.652,13372,2.452,13373,2.652,13374,2.142,13375,2.652,13376,2.452,13377,4.501,13378,9.689,13379,2.32,13380,3.937,13381,6.044,13382,5.864,13383,4.737,13384,5.864,13385,8.904,13386,4.501,13387,4.501,13388,7.739,13389,4.501,13390,7.739,13391,2.652,13392,8.411,13393,2.652,13394,2.652,13395,2.652,13396,4.501,13397,4.501,13398,4.501,13399,4.501,13400,2.652,13401,4.501,13402,2.452,13403,2.32,13404,2.652,13405,2.652,13406,5.129,13407,5.129,13408,4.501,13409,4.501,13410,2.32,13411,2.652,13412,2.32,13413,2.452,13414,4.161,13415,2.452,13416,2.652,13417,2.652,13418,4.501,13419,4.501,13420,4.501,13421,3.429,13422,2.652,13423,2.652,13424,2.652,13425,2.652,13426,2.652,13427,2.652,13428,4.501,13429,2.652,13430,5.864,13431,5.864,13432,2.652,13433,5.864,13434,2.652,13435,5.864,13436,2.652,13437,2.652,13438,4.501,13439,2.652,13440,4.501,13441,4.501,13442,4.501,13443,6.911,13444,2.652,13445,2.652,13446,4.501,13447,2.652,13448,4.161,13449,2.652,13450,2.652,13451,5.864,13452,4.501,13453,5.864,13454,4.501,13455,2.652,13456,2.652,13457,4.501,13458,2.652,13459,4.501,13460,2.652,13461,2.652,13462,2.652,13463,2.652,13464,2.652,13465,2.652,13466,4.501,13467,4.501,13468,2.652,13469,2.652,13470,4.501,13471,2.652,13472,2.452,13473,2.652,13474,2.452,13475,4.501,13476,2.652,13477,2.652,13478,2.652,13479,2.652,13480,2.652,13481,2.652,13482,2.652,13483,2.652]],["title/injectables/KeycloakConfigurationUc.html",[105,0.91,11591,5.055]],["body/injectables/KeycloakConfigurationUc.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.101,8,1.117,27,0.51,29,0.829,30,0.001,31,0.593,32,0.144,33,0.512,35,1.448,36,2.843,55,2.664,59,3.296,70,3.324,95,0.154,101,0.011,103,0.001,104,0.001,105,1.237,107,1.618,111,2.286,112,3.032,116,4.206,127,1.159,187,0.971,216,2.109,221,2.64,227,1.24,347,2.141,773,4.273,1129,6.56,7799,7.968,8559,6.205,8576,6.205,10142,6.462,11585,7.218,11586,7.769,11589,5.256,11591,6.876,11601,8.689,11637,8.291,11643,6.587,13226,8.291,13233,8.863,13234,5.114,13236,5.114,13301,9.551,13302,10.611,13303,10.611,13311,6.205,13312,6.205,13315,5.621,13331,5.621,13334,7.746,13484,12.67,13485,10.583,13486,6.712,13487,6.712,13488,8.551,13489,6.712,13490,6.712,13491,9.25,13492,6.712,13493,6.712,13494,6.712,13495,6.712,13496,6.712,13497,6.712,13498,6.712,13499,6.712,13500,6.712,13501,6.712]],["title/classes/KeycloakConsole.html",[0,0.232,11604,5.324]],["body/classes/KeycloakConsole.html",[0,0.118,2,0.386,3,0.008,4,0.008,5,0.004,7,0.052,8,0.678,10,1.395,27,0.449,29,0.825,30,0.001,31,0.566,32,0.137,33,0.489,35,1.223,36,2.543,47,0.581,52,3.356,53,4.079,55,2.512,70,3.506,72,3.691,78,8.727,95,0.105,101,0.006,103,0,104,0,111,2.11,112,2.85,127,0.703,144,1.543,145,2.429,148,1.064,165,0.439,204,1.173,216,1.309,217,1.166,221,2.518,227,0.734,234,0.911,247,2.198,264,2.976,305,0.985,319,3.252,334,0.761,346,2.201,347,0.699,364,1.632,368,3.959,371,3.083,379,2.848,403,4.634,432,2.065,461,1.283,529,1.503,575,2.072,627,2.173,687,1.474,692,1.292,701,4.309,768,3.851,773,5.702,798,2.172,803,2.146,894,5.147,905,3.392,907,6.584,1037,2.634,1125,3.327,1129,5.517,1414,1.934,1467,1.104,1639,6.106,1646,4.557,1772,4.394,1920,2.201,1948,4.883,1959,3.058,2130,2.451,2147,4.394,2356,2.908,2357,3.711,2450,3.196,2800,5.332,3090,5.044,3481,5.413,3486,7.235,3489,2.416,3490,8.546,3491,6.027,3492,2.05,5451,4.171,5880,7.233,6431,4.394,7027,2.146,7044,2.201,7325,7.699,7799,7.06,7809,7.699,8252,2.634,8310,2.416,10142,6.258,11351,2.708,11584,4.532,11585,6.369,11586,6.855,11587,9.363,11588,2.896,11589,2.708,11590,5.93,11591,7.512,11592,2.708,11593,2.708,11594,4.699,11595,2.896,11596,2.896,11597,8.789,11598,2.896,11599,2.896,11600,4.532,11601,4.275,11602,2.896,11603,2.634,11604,4.394,11605,2.896,11606,5.93,11607,4.699,11608,9.363,11609,4.079,11610,4.699,11611,4.699,11612,9.112,11613,3.672,11614,6.475,11615,3.995,11616,5.592,11617,4.171,11618,2.896,11619,2.896,11620,4.699,11621,6.823,11622,2.896,11623,2.896,11624,4.699,11625,6.823,11626,2.896,11627,2.896,11628,2.896,11629,6.823,11630,6.823,11631,4.394,11632,4.699,11633,2.896,11634,2.896,11635,4.079,11636,4.532,11637,6.511,11638,4.699,11639,2.896,11640,2.896,11641,2.896,11642,4.699,11643,6.379,11644,2.708,11645,2.708,11646,4.699,11647,2.896,11648,2.896,11649,2.896,11650,2.896,11651,2.896,11652,2.896,11653,4.699,11654,2.896,11655,2.896,11656,2.896,11657,4.532,13502,5.611,13503,3.458,13504,3.458,13505,3.458,13506,3.458,13507,3.458,13508,3.458,13509,3.458,13510,3.458,13511,3.458,13512,3.458,13513,3.458,13514,3.458]],["title/injectables/KeycloakIdentityManagementOauthService.html",[105,0.91,12665,5.694]],["body/injectables/KeycloakIdentityManagementOauthService.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.984,27,0.481,29,0.638,30,0.001,31,0.456,32,0.143,33,0.394,35,1.274,36,2.501,47,0.922,51,3.957,87,5.61,95,0.161,101,0.009,103,0,104,0,105,1.09,107,1.352,111,2.412,112,2.769,127,1.02,145,2.665,148,2.507,150,1.942,163,2.507,165,0.638,187,0.811,216,1.946,217,1.566,221,2.22,227,1.209,234,0.911,235,3.166,277,2.264,369,1.245,404,1.468,406,1.824,596,2.926,773,3.571,784,3.032,789,7.875,801,3.258,803,6.937,839,2.675,853,2.895,1016,2.86,1142,2.598,1154,8.407,1155,3.258,1156,6.207,1157,3.671,1270,3.326,1318,4.906,1369,3.057,1370,3.727,1518,3.995,1519,4.531,1520,4.906,1613,3.481,2303,2.274,2800,7.317,2929,3.226,4588,2.895,5442,3.196,5530,4.781,7278,4.937,7280,4.078,8259,4.17,8805,3.786,8844,3.919,9285,7.652,9314,4.531,11489,8.39,11507,6.822,11557,3.85,11560,3.727,11561,4.698,11562,3.85,11565,3.85,11568,4.995,11572,6.474,11585,5.996,12659,9.132,12661,4.698,12665,6.822,12668,5.186,12669,9.731,12670,9.731,12671,7.531,12674,7.531,12676,8.02,13226,7.652,13234,4.274,13236,4.274,13374,4.531,13414,7.531,13415,5.186,13515,9.207,13516,9.592,13517,10.526,13518,5.61,13519,8.146,13520,8.146,13521,5.61,13522,5.61,13523,5.61,13524,5.61,13525,11.662,13526,5.61,13527,5.61,13528,5.61,13529,5.61,13530,5.61,13531,5.61,13532,5.61,13533,5.61,13534,5.61,13535,5.61,13536,5.61,13537,5.61,13538,5.61,13539,5.61,13540,5.61,13541,5.61,13542,5.61,13543,5.61,13544,5.186,13545,5.186,13546,4.906,13547,5.186,13548,5.61,13549,5.61]],["title/injectables/KeycloakIdentityManagementService.html",[105,0.91,12667,5.694]],["body/injectables/KeycloakIdentityManagementService.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.665,27,0.493,29,0.95,30,0.001,31,0.66,32,0.167,33,0.57,34,2.177,35,1.427,36,2.762,39,2.906,47,0.983,51,4.61,59,1.715,87,5.7,94,3.904,95,0.122,98,2.004,99,0.564,101,0.006,103,0,104,0,105,0.737,107,0.815,111,1.903,112,2.971,116,1.715,127,0.423,144,2.61,145,0.856,167,2.026,187,0.489,215,1.079,216,0.625,217,1.596,221,3.044,227,1.241,234,1.694,247,2.158,305,2.973,369,1.222,371,1.519,403,5.261,404,0.992,406,1.099,461,2.171,484,4.817,485,4.817,510,2.457,511,4.472,521,4.449,558,1.621,575,2.025,596,3.465,643,3.922,701,2.464,738,1.757,750,8.085,756,2.956,758,3.124,759,2.956,760,2.956,773,2.151,784,1.826,788,9.665,851,3.324,852,3.324,853,3.597,905,2.293,1008,2.976,1308,3.338,1345,1.341,1369,1.842,1370,3.659,2257,3.338,2800,5.793,3146,2.245,3147,2.18,3526,2.73,3906,2.73,7863,2.83,7864,2.956,10679,2.048,11585,4.579,12646,2.646,12667,4.612,12678,5.091,12679,5.091,12680,5.091,12681,5.091,12682,7.43,12683,6.443,12684,6.443,12685,5.091,12686,5.091,12687,5.091,12688,7.43,12693,5.091,12696,5.091,12697,5.091,12699,5.091,12702,5.091,12703,7.43,12706,3.124,12707,9.252,12709,8.774,12711,3.124,12712,8.182,12718,2.646,13226,5.843,13229,2.512,13234,2.575,13236,2.575,13249,3.124,13252,5.091,13275,6.493,13515,7.03,13550,5.507,13551,5.507,13552,3.379,13553,3.379,13554,5.507,13555,3.379,13556,5.507,13557,7.742,13558,3.379,13559,5.507,13560,3.379,13561,3.379,13562,3.379,13563,5.507,13564,3.379,13565,3.379,13566,3.379,13567,3.379,13568,3.379,13569,5.507,13570,3.379,13571,5.507,13572,3.379,13573,2.956,13574,10.435,13575,3.379,13576,5.507,13577,5.507,13578,5.507,13579,2.956,13580,2.956,13581,2.956,13582,3.379,13583,5.507,13584,5.507,13585,3.379,13586,3.379,13587,3.379,13588,5.507,13589,3.379,13590,6.97,13591,3.379,13592,6.97,13593,5.507,13594,5.507,13595,3.379,13596,8.038,13597,5.507,13598,5.507,13599,3.379,13600,3.379,13601,2.956,13602,3.379,13603,3.379,13604,3.379,13605,3.379,13606,3.379,13607,3.379,13608,3.379,13609,3.379,13610,3.379,13611,5.507,13612,5.507,13613,6.97,13614,6.97,13615,3.379,13616,2.956,13617,5.091,13618,3.124,13619,3.379,13620,3.379,13621,3.379,13622,3.379,13623,3.379,13624,3.379,13625,3.379,13626,3.379,13627,3.379,13628,3.379]],["title/controllers/KeycloakManagementController.html",[481,2.611,13305,5.947]],["body/controllers/KeycloakManagementController.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.331,30,0.001,35,1.263,36,2.238,55,2.248,72,4.728,78,7.821,95,0.149,101,0.013,103,0.001,104,0.001,111,1.611,112,2.554,187,1.162,215,2.566,216,1.93,221,2.682,227,1.082,234,1.305,305,2.29,364,1.464,432,3.84,447,3.332,481,3.086,483,3.833,784,4.344,905,3.347,1125,6.187,1369,4.38,1370,5.34,1467,2.566,2299,6.493,2356,3.302,2357,4.753,2800,6.83,2929,4.623,3090,5.304,6154,6.933,10677,7.291,11585,5.945,11586,6.398,11591,7.758,11592,6.294,11593,6.294,11631,9.604,13305,9.127,13629,10.436,13630,7.431,13631,8.038,13632,12.264,13633,10.436,13634,8.038,13635,10.436,13636,10.436,13637,8.43,13638,8.43,13639,10.436,13640,9.647,13641,10.436,13642,11.587,13643,8.038,13644,8.038,13645,8.038,13646,8.038,13647,8.038,13648,8.038,13649,8.038,13650,8.038]],["title/injectables/KeycloakMigrationService.html",[105,0.91,13303,5.694]],["body/injectables/KeycloakMigrationService.html",[0,0.196,3,0.014,4,0.014,5,0.007,7,0.087,8,1.001,27,0.401,29,0.762,30,0.001,31,0.545,32,0.145,33,0.47,34,1.41,35,1.003,36,2.282,51,4.723,55,1.785,66,7.282,70,4.815,87,2.883,94,5.17,95,0.151,101,0.01,103,0,104,0,105,1.109,107,1.385,111,2.357,112,2.591,127,1.038,144,2.28,187,0.831,216,1.798,217,1.615,221,2.872,227,1.008,234,0.933,247,4.422,305,1.637,319,1.717,369,1.839,371,2.286,403,6.967,639,7.068,643,6.924,648,4.812,651,9.84,731,3.275,773,3.657,784,3.105,798,3.61,818,9.235,894,4.177,905,4.049,907,3.943,983,4.812,1018,5.348,1021,4.409,1068,4.812,1083,4.641,1187,3.952,1188,3.906,1189,3.906,1308,3.482,1369,3.131,1370,5.507,1467,1.834,1568,4.499,1732,4.271,2246,4.641,2356,3.994,2357,4.848,2925,3.444,3906,4.641,7995,4.271,8312,4.271,10679,3.482,10709,4.378,11459,6.941,11585,6.064,11586,6.526,11601,8.598,11643,5.902,12718,4.499,13226,7.738,13229,4.271,13234,4.378,13236,4.378,13275,4.641,13303,6.941,13317,9.31,13331,4.812,13334,6.941,13385,5.025,13557,7.25,13573,5.025,13579,5.025,13580,5.025,13581,5.025,13601,5.025,13616,5.025,13651,4.812,13652,7.662,13653,5.746,13654,7.662,13655,5.746,13656,8.289,13657,5.746,13658,4.812,13659,5.746,13660,9.723,13661,5.746,13662,5.746,13663,8.289,13664,5.311,13665,5.746,13666,5.746,13667,5.746,13668,7.662,13669,5.311,13670,7.662,13671,5.311,13672,5.311,13673,5.311,13674,7.662,13675,7.662,13676,9.723,13677,5.746,13678,5.311,13679,5.746,13680,5.746,13681,5.746]],["title/modules/KeycloakModule.html",[425,1.812,12658,5.493]],["body/modules/KeycloakModule.html",[0,0.278,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.181,425,3.111,427,2.951,428,3.174,429,3.269,430,3.255,431,3.241,432,4.297,433,4.413,438,6.128,442,4.219,443,3.201,444,3.124,449,4.184,773,5.2,803,5.069,1155,4.745,1467,2.607,2800,6.901,3917,7.117,7863,6.841,8255,9.509,8844,5.707,11585,4.653,12657,10.244,12658,11.426,12661,6.841,12662,6.598,12663,7.145,12665,11.656,12667,11.656,13233,8.831,13682,8.169,13683,8.169,13684,8.169,13685,8.169,13686,8.169]],["title/classes/KeycloakSeedService.html",[0,0.232,13302,5.694]],["body/classes/KeycloakSeedService.html",[0,0.161,2,0.527,3,0.011,4,0.011,5,0.006,7,0.071,8,0.867,10,1.908,27,0.452,29,0.679,30,0.001,31,0.486,32,0.132,33,0.419,34,1.22,35,1.26,36,2.625,51,4.211,55,1.545,87,2.372,94,4.211,95,0.151,101,0.008,103,0,104,0,111,2.529,112,2.867,116,2.7,127,0.899,144,1.973,163,2.208,187,0.684,216,1.603,217,1.642,221,3.056,227,1.18,247,4.077,319,1.413,369,2.148,371,1.304,394,2.693,403,4.696,461,2.506,511,2.389,643,5.109,648,3.959,731,4.111,738,2.458,773,3.009,839,2.254,851,2.254,852,2.254,853,2.44,874,5.109,894,5.215,905,3.61,907,3.245,1068,3.959,1083,3.819,1124,9.619,1130,4.37,1187,4.962,1188,4.903,1189,4.903,1308,2.865,1467,1.509,1568,3.702,2130,2.065,2146,3.191,2246,3.819,2257,2.865,2268,2.693,2356,3.561,2357,4.409,3090,4.923,3146,3.141,3147,3.05,3526,3.819,3906,3.819,6573,3.819,7799,6.762,7995,3.514,10142,5.012,10277,6.632,10310,6.632,10311,6.632,10326,4.37,10679,2.865,11459,8.106,11585,6.484,11586,6.979,11589,5.618,12057,9.101,12061,9.101,12063,8.106,12068,4.135,12646,3.702,12718,3.702,13222,3.702,13226,7.036,13229,3.514,13234,3.602,13236,3.602,13275,7.003,13295,4.135,13302,6.008,13317,9.955,13331,3.959,13334,6.008,13385,7.583,13406,4.135,13407,4.135,13488,6.632,13557,6.275,13573,4.135,13579,4.135,13580,4.135,13581,4.135,13601,6.275,13616,4.135,13618,4.37,13652,6.632,13654,6.632,13664,4.37,13668,6.632,13669,4.37,13670,6.632,13671,4.37,13672,4.37,13673,4.37,13674,6.632,13675,6.632,13678,4.37,13687,4.728,13688,9.679,13689,9.679,13690,8.67,13691,4.728,13692,4.728,13693,4.728,13694,4.728,13695,4.728,13696,4.728,13697,4.728,13698,7.174,13699,4.728,13700,4.728,13701,4.728,13702,8.67,13703,4.728,13704,4.728,13705,4.728,13706,4.728,13707,4.728,13708,9.679,13709,4.728,13710,4.728,13711,4.37,13712,4.728,13713,4.728,13714,4.728,13715,4.728,13716,4.728,13717,4.728,13718,4.728,13719,7.174,13720,4.728]],["title/classes/LdapAlreadyPersistedException.html",[0,0.232,13721,5.493]],["body/classes/LdapAlreadyPersistedException.html",[0,0.408,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.414,29,0.593,30,0.001,31,0.424,32,0.103,33,0.366,35,0.916,47,0.889,52,5.334,55,1.631,59,2.358,95,0.129,101,0.02,103,0.001,104,0.001,127,0.948,187,1.095,192,3.354,214,3.778,227,1.167,383,4.955,404,2.246,461,2.574,795,6.151,1127,4.819,1216,4.409,1464,5.741,1465,6.434,1467,2.416,1469,6.344,2643,5.827,4476,5.017,8288,6.481,8289,6.738,8369,6.081,8389,10.349,12927,5.195,13721,8.104,13722,9.424,13723,5.627,13724,10.07,13725,10.034,13726,7.57,13727,10.034,13728,7.57,13729,6.34,13730,6.34,13731,6.115,13732,8.402,13733,5.503,13734,6.115]],["title/classes/LdapAuthorizationBodyParams.html",[0,0.232,13735,5.694]],["body/classes/LdapAuthorizationBodyParams.html",[0,0.382,2,1.002,3,0.021,4,0.021,5,0.011,7,0.136,27,0.527,30,0.001,32,0.174,47,0.98,48,5.752,51,5.93,87,6.126,95,0.144,101,0.015,103,0.001,104,0.001,165,0.878,364,2.328,374,2.869,376,2.056,467,3.45,470,5.107,1000,4.97,1001,7.317,4205,4.114,5806,8.145,7328,9.051,13735,9.383,13736,13.15,13737,7.862,13738,8.309,13739,8.989,13740,8.989,13741,8.989]],["title/classes/LdapConfig.html",[0,0.232,12330,4.943]],["body/classes/LdapConfig.html",[0,0.302,2,0.448,3,0.009,4,0.009,5,0.005,7,0.061,26,1.658,27,0.508,29,0.315,30,0.001,31,0.225,32,0.173,33,0.643,47,1.015,83,3.137,95,0.114,96,1.099,101,0.016,103,0,104,0,127,0.503,138,1.754,150,3.342,165,0.495,208,1.5,216,1.447,240,4.438,277,1.621,334,0.431,347,1.279,359,1.4,364,2.211,369,3.05,370,4.363,371,1.107,379,0.91,380,1.662,386,6.8,398,1.183,399,2.509,400,1.772,402,1.665,404,0.724,405,1.07,406,1.306,496,1.696,722,1.791,775,2.462,783,2.434,1031,2.451,1141,2.462,1498,2.434,1581,2.86,1613,2.492,2072,2.591,2097,2.985,2574,3.264,2578,1.791,4271,3.446,4309,4.503,4333,2.407,4588,4.58,5530,3.152,5698,3.218,5717,2.556,5718,2.756,6196,3.418,7136,2.523,7222,2.711,7278,3.833,8469,2.171,8805,2.711,9787,5.12,10293,2.246,11429,6.615,11510,2.985,11511,2.985,11512,2.985,11513,3.06,11557,2.756,11560,2.668,11562,2.756,11565,2.756,11568,2.462,11572,2.711,11613,5.12,12035,3.06,12219,2.86,12327,4.818,12328,3.244,12329,4.201,12330,8.08,12331,7.163,12332,3.974,12333,4.418,12334,5.12,12335,2.668,12336,2.668,12337,3.244,12338,4.34,12339,4.701,12340,3.145,12341,4.701,12342,3.06,12343,3.06,12344,3.06,12345,3.06,12346,3.145,12347,3.06,12348,3.06,12349,3.06,12350,3.145,12351,4.701,12352,3.145,12353,3.06,12354,3.145,12355,3.06,12356,3.06,12357,3.06,12358,3.145,12359,4.34,12360,5.108,12361,3.244,12362,3.244,12363,3.244,12364,3.244,12365,3.244,12366,3.244,12367,3.244,12368,3.244,12369,3.244,12370,3.244,12371,3.244,12372,3.145,12373,3.244,12374,3.244,12375,3.244,12376,3.244,12377,3.244,12378,3.244,12379,3.244,12380,3.244,12381,3.244,12382,6.319,12383,6.319,12384,6.319,12385,6.319,12386,6.319,12387,6.319,12388,6.319,12389,6.319,12390,2.985,12391,3.244,12392,3.244,12393,3.244,12394,3.244,12395,3.244,12396,3.244,12397,3.244,12398,3.244,12399,3.244,12400,3.244,12401,3.244,12402,3.244,12403,3.244,12404,3.244,12405,3.06,12406,3.244,12407,2.985,12408,3.145,12409,3.06,12410,3.145,12411,3.06,12412,3.06,12413,3.145,12414,3.06,12415,3.145,12416,3.06,12417,2.919,12418,2.919,12419,2.919,12420,2.985,12421,3.06,12422,3.244,12423,3.06,12424,3.244,12425,3.244,12426,3.244,12427,3.244,12428,3.244,12429,3.06,12430,3.145,12431,3.06,12432,3.145,13742,4.016,13743,4.016,13744,4.016,13745,4.016,13746,4.016,13747,4.016,13748,4.016,13749,4.016,13750,4.016,13751,4.016,13752,4.016,13753,4.016,13754,4.016]],["title/classes/LdapConnectionError.html",[0,0.232,13755,5.947]],["body/classes/LdapConnectionError.html",[0,0.266,2,0.87,3,0.018,4,0.018,5,0.009,7,0.118,8,1.236,27,0.543,29,0.611,30,0.001,31,0.437,32,0.185,33,0.552,35,0.945,47,0.815,55,1.681,59,2.431,95,0.131,101,0.013,103,0.001,104,0.001,127,0.978,165,0.802,187,1.129,204,4.114,216,2.521,364,2.293,404,1.845,406,2.538,558,3.744,564,2.861,596,3.941,798,6.432,1013,5.554,1016,2.74,1142,5.291,1180,5.219,1216,4.476,1395,8.284,1396,7.173,1397,4.06,1398,7.271,1402,5.036,1403,4.327,1404,5.036,1405,5.036,1406,5.036,1407,5.036,1408,5.036,1409,4.678,1410,4.405,1416,4.904,11616,7.026,12927,7.026,13755,8.953,13756,10.237,13757,7.805,13758,8.573,13759,7.805,13760,7.805,13761,7.805]],["title/injectables/LdapService.html",[105,0.91,1552,5.694]],["body/injectables/LdapService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.126,27,0.439,29,0.834,30,0.001,31,0.596,32,0.145,33,0.515,35,1.129,36,2.458,47,0.965,51,6.174,87,6.496,95,0.159,99,1.133,101,0.011,103,0.001,104,0.001,105,1.247,107,1.637,111,2.135,112,2.347,127,0.851,150,2.352,154,3.111,187,0.982,204,2.304,215,2.168,216,1.256,217,1.386,221,1.572,227,0.967,234,1.729,305,2.656,461,1.554,511,3.432,556,4.96,894,4.937,1354,4.836,1355,5.318,1370,7.615,1371,5.94,1467,2.168,1552,7.809,2004,6.4,2356,3.83,2357,5.221,2969,4.584,3104,5.192,3541,5.486,3580,4.335,3881,5.94,3883,5.94,7939,8.156,8469,6.87,11616,4.661,12330,6.778,12372,5.318,12927,4.661,13421,7.104,13755,8.156,13762,6.792,13763,9.325,13764,6.792,13765,9.325,13766,6.792,13767,9.325,13768,6.792,13769,6.278,13770,6.792,13771,6.792,13772,6.792,13773,6.792,13774,6.792,13775,6.792,13776,6.792,13777,6.792,13778,4.836,13779,6.792,13780,6.792,13781,6.792,13782,6.792,13783,6.792,13784,6.792,13785,8.62,13786,6.792,13787,6.792,13788,6.792,13789,6.792,13790,6.278,13791,5.688,13792,6.792,13793,6.792]],["title/injectables/LdapStrategy.html",[105,0.91,1553,5.947]],["body/injectables/LdapStrategy.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.81,27,0.436,29,0.864,30,0.001,31,0.655,32,0.165,33,0.511,34,0.736,35,1.21,36,2.268,39,1.165,47,0.903,48,5.634,51,5.137,66,6.823,72,1.96,87,5.872,94,5.684,95,0.161,99,0.722,101,0.007,103,0,104,0,105,0.897,107,1.043,111,2.626,112,2.579,127,0.84,138,4.036,144,2.541,145,2.34,167,3.4,187,0.626,189,5.542,192,3.151,204,3.135,206,2.201,216,1.955,217,1.556,221,2.708,227,0.958,234,1.5,305,2.632,334,0.465,355,2.694,367,3.196,368,2.626,403,4.387,404,1.208,406,1.407,441,6.611,450,1.777,461,2.287,475,2.115,491,3.298,511,2.186,513,3.387,543,3.41,574,1.899,692,3.951,731,1.709,784,3.623,806,1.761,823,7.687,1129,2.488,1345,1.717,1369,3.653,1370,4.453,1431,2.465,1438,5.294,1467,1.381,1549,8.2,1552,9.237,1553,5.863,1554,6.456,1562,3.216,1573,3.623,1574,4,1581,3.081,1709,6.196,1721,6.196,1732,3.216,1852,1.827,2004,5.631,2018,3.388,2144,2.442,2356,4.531,2504,3.296,3104,5.164,3602,3.388,3649,3.023,4142,4,4205,3.114,4210,6.644,4519,2.969,4661,3.538,6098,4.387,6586,2.92,7062,3.216,8050,4.872,8275,5.414,8303,3.296,8469,5.403,10340,3.388,12043,3.216,12125,6.628,12183,2.969,12927,6.342,13158,3.388,13162,5.613,13167,3.623,13735,6.871,13778,3.081,13794,4.327,13795,7.585,13796,6.703,13797,6.703,13798,3.784,13799,4.327,13800,4.327,13801,4.327,13802,6.703,13803,4.327,13804,6.703,13805,4.327,13806,4.327,13807,6.196,13808,4.327,13809,4.327,13810,4,13811,4.327,13812,4.327,13813,4,13814,3.623,13815,4,13816,4.327,13817,3.784,13818,4.327,13819,4.327,13820,4,13821,4.327,13822,4.327,13823,4,13824,6.196,13825,4,13826,4,13827,4.327,13828,4,13829,7.585,13830,4.327,13831,3.784,13832,4.327,13833,4.327,13834,4,13835,6.703,13836,3.784,13837,4.327,13838,3.216,13839,4.327,13840,6.703,13841,4.327,13842,4.327,13843,4.327]],["title/classes/LdapUserMigrationException.html",[0,0.232,13724,5.493]],["body/classes/LdapUserMigrationException.html",[0,0.421,2,0.913,3,0.019,4,0.019,5,0.01,30,0.001,47,0.833,52,5.54,55,1.763,95,0.136,101,0.021,103,0.001,104,0.001,187,1.184,192,3.483,214,3.685,227,1.212,383,5.357,404,2.303,461,1.872,795,6.474,1127,5.21,1216,4.58,1464,5.687,1465,6.373,1467,2.613,1469,5.788,2643,6.789,4476,3.649,8288,6.42,8289,6.674,8369,6.399,8389,9.975,12927,5.618,13721,6.612,13722,6.855,13723,6.085,13724,10.325,13725,9.789,13727,9.789,13729,6.855,13730,6.855,13731,6.612,13732,8.842,13733,5.95,13734,6.612]],["title/modules/LearnroomApiModule.html",[425,1.812,13844,5.493]],["body/modules/LearnroomApiModule.html",[0,0.213,3,0.015,4,0.015,5,0.008,30,0.001,95,0.171,101,0.01,103,0.001,104,0.001,187,0.906,425,2.718,427,2.263,428,2.434,429,2.506,430,2.496,431,2.485,432,3.753,433,2.367,441,7.252,442,3.527,443,2.454,444,2.395,446,3.936,447,3.654,449,4.046,450,2.573,574,2.75,836,3.638,1878,6.539,1923,8.994,1930,7.333,1931,7.919,1959,3.413,2627,2.632,2725,2.838,2727,3.005,2970,8.994,3009,3.796,3010,3.503,3709,4.161,5057,4.656,6338,8.795,6603,8.921,6617,10.133,6619,10.133,6695,10.133,7361,8.921,7378,10.133,7640,9.475,7725,6.902,7745,4.772,8057,9.475,8148,9.774,8374,4.772,9621,4.228,10424,5.06,10425,5.06,13844,11.631,13845,6.264,13846,6.264,13847,6.264,13848,8.616,13849,8.994,13850,10.133,13851,10.133,13852,10.133,13853,6.264,13854,8.921,13855,5.479,13856,6.264,13857,6.264,13858,6.264,13859,6.264,13860,5.79,13861,6.264,13862,5.79]],["title/modules/LearnroomModule.html",[425,1.812,13848,4.842]],["body/modules/LearnroomModule.html",[0,0.224,3,0.016,4,0.016,5,0.008,30,0.001,95,0.165,101,0.011,103,0.001,104,0.001,130,9.083,187,0.952,425,2.791,427,2.377,428,2.557,429,2.633,430,2.622,431,2.611,432,3.854,433,3.958,438,5.758,441,7.366,442,3.651,443,2.578,444,2.517,449,3.62,450,2.703,766,2.753,836,3.822,1467,2.1,1930,7.449,1931,8.044,1956,9.364,1957,5.014,2958,10.293,2970,9.136,3009,3.989,3010,3.681,4886,10.293,4991,11.27,6338,8.934,6640,10.871,6647,10.871,7640,9.624,7725,7.145,8374,5.014,13848,10.266,13849,9.136,13855,5.756,13862,6.084,13863,6.581,13864,6.581,13865,6.581,13866,6.581,13867,9.136,13868,6.581,13869,6.084]],["title/injectables/LegacyLogger.html",[105,0.91,2357,3.097]],["body/injectables/LegacyLogger.html",[0,0.309,3,0.012,4,0.012,5,0.006,7,0.077,8,1.213,27,0.514,29,0.96,30,0.001,31,0.709,32,0.167,33,0.592,35,1.451,47,0.979,59,3.633,72,2.304,95,0.145,101,0.008,102,2.552,103,0,104,0,105,1.014,107,1.226,111,2.5,127,0.637,144,1.399,145,2.294,148,3.895,163,3.09,165,0.594,187,0.735,199,5.281,204,2.572,214,2.856,216,0.94,217,0.986,227,0.786,234,0.826,277,3.059,319,2.265,336,1.217,574,3.327,675,2.819,685,2.684,766,3.17,777,5.935,839,2.425,1216,4.886,1345,4.628,1421,5.509,1431,2.897,1750,2.256,2075,2.795,2356,5.032,2357,3.452,2412,3.237,2969,3.432,3281,3.379,3835,3.237,4514,5.509,5183,3.195,5460,4.961,7803,3.281,8310,8.375,8331,8.782,8341,4.448,8342,5.935,8345,4.448,9622,7.318,10340,3.982,10820,6.122,11774,4.824,12076,9.392,12079,4.448,12080,6.629,12081,7.006,12083,7.006,12084,9.282,12086,7.006,12087,8.782,12089,7.006,12091,7.006,13870,12.657,13871,5.086,13872,7.579,13873,9.282,13874,9.282,13875,7.579,13876,7.579,13877,5.086,13878,5.086,13879,5.086,13880,5.086,13881,5.086,13882,7.006,13883,5.086,13884,7.579,13885,5.086,13886,5.086,13887,7.579,13888,7.579,13889,6.629,13890,5.935,13891,7.579,13892,5.086,13893,5.086,13894,4.701,13895,4.108,13896,5.086,13897,4.108,13898,4.701,13899,4.108,13900,5.086,13901,5.086,13902,5.086,13903,5.086,13904,5.086,13905,6.629,13906,5.086,13907,4.701,13908,4.701]],["title/modules/LegacySchoolApiModule.html",[425,1.812,13909,5.493]],["body/modules/LegacySchoolApiModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,52,3.818,95,0.173,101,0.013,102,6.159,103,0.001,104,0.001,187,1.165,189,5.792,192,2.4,355,3.237,425,3.091,427,2.91,428,3.13,429,3.223,430,3.209,431,3.196,432,4.268,433,3.044,438,6.105,442,4.181,443,3.156,444,3.08,446,5.061,447,4.331,449,4.146,1141,4.938,1467,2.571,1878,7.044,2725,3.649,2727,3.864,4593,4.07,5333,8.296,9777,5.272,13909,11.409,13910,8.054,13911,8.054,13912,8.054,13913,9.929,13914,10.914,13915,10.914,13916,6.745,13917,7.441,13918,10.145,13919,8.054,13920,8.054,13921,8.054,13922,7.446]],["title/controllers/LegacySchoolController.html",[481,2.611,13918,5.947]],["body/controllers/LegacySchoolController.html",[0,0.227,3,0.016,4,0.016,5,0.008,7,0.101,8,1.111,27,0.379,29,0.72,30,0.001,31,0.515,32,0.168,33,0.445,35,1.113,36,2.437,95,0.162,100,2.229,101,0.011,102,5.703,103,0.001,104,0.001,111,1.335,112,2.718,187,0.963,189,5.098,192,3.14,215,2.125,216,1.701,217,1.479,221,2.129,227,0.954,234,1.493,264,4.428,364,1.675,376,1.523,379,2.388,447,2.759,481,2.556,483,3.174,491,6.219,494,5.512,511,5.742,513,6.608,543,4.679,555,3.461,556,3.541,561,5.649,728,3.517,1750,5.041,2727,3.194,2930,3.569,3743,5.396,4007,4.183,9777,6.896,13914,7.702,13915,8.824,13917,6.549,13918,8.044,13922,6.154,13923,10.537,13924,6.154,13925,9.741,13926,9.216,13927,6.657,13928,11.695,13929,6.657,13930,11.365,13931,6.657,13932,9.197,13933,6.657,13934,6.657,13935,11.057,13936,6.657,13937,6.657,13938,6.657,13939,7.429,13940,8.044,13941,6.685,13942,7.659,13943,8.511,13944,5.575,13945,5.823,13946,9.635,13947,6.657,13948,6.657,13949,6.657,13950,6.657,13951,6.549,13952,6.657,13953,6.657,13954,6.657,13955,6.657,13956,6.657,13957,9.197,13958,6.657,13959,6.657]],["title/classes/LegacySchoolDo.html",[0,0.232,189,3.769]],["body/classes/LegacySchoolDo.html",[0,0.222,2,0.727,3,0.015,4,0.015,5,0.008,7,0.098,26,2.509,27,0.558,29,0.51,30,0.001,31,0.631,32,0.184,33,0.678,34,1.542,47,0.928,83,2.773,95,0.134,101,0.011,102,5.651,103,0.001,104,0.001,127,0.816,165,0.71,185,2.533,189,6.561,347,1.833,404,2.029,406,2.12,596,1.988,618,2.665,854,5.228,883,3.844,1844,3.906,1852,3.826,1872,7.117,1904,3.791,1961,6.331,2095,2.586,2545,3.466,3813,6.22,4323,7.747,4338,4.965,5708,4.737,6464,7.151,6472,6.922,6557,4.845,6871,3.864,7180,4.965,8452,6.546,8456,4.845,9206,5.7,9785,7.589,9786,6.905,9787,7.747,10293,5.827,10752,6.632,12181,7.938,12182,7.574,12183,7.151,12184,7.419,12208,7.279,12210,4.845,12211,5.264,12214,4.965,12219,4.641,13960,13.536,13961,6.517,13962,7.926,13963,9.062,13964,6.517,13965,6.517,13966,6.517,13967,6.517,13968,6.517,13969,6.517,13970,6.517,13971,6.517,13972,6.517,13973,6.517,13974,6.024,13975,6.517,13976,6.517,13977,6.517,13978,6.517,13979,6.517,13980,6.517,13981,6.517,13982,6.517,13983,6.517,13984,5.103,13985,6.517,13986,6.517]],["title/classes/LegacySchoolFactory.html",[0,0.232,13987,6.286]],["body/classes/LegacySchoolFactory.html",[0,0.17,2,0.558,3,0.012,4,0.012,5,0.006,7,0.076,8,0.904,27,0.532,29,1.021,30,0.001,31,0.706,32,0.18,33,0.601,34,1.274,35,1.477,47,0.534,55,2.499,59,3.322,95,0.128,99,0.835,101,0.008,103,0,104,0,127,0.627,138,3.271,144,3.281,148,1.54,165,0.586,185,4.827,189,2.774,216,1.385,217,0.651,227,0.519,234,1.617,319,3.565,359,2.611,366,2.798,369,1.11,379,2.033,380,1.907,381,2.491,404,1.349,538,3.374,596,3.939,627,2.298,660,7.096,661,4.703,662,5.621,665,4.226,666,5.621,667,5.655,668,4.226,669,4.226,670,4.226,671,4.151,672,4.597,673,5.064,674,6.556,675,5.912,676,7.045,677,2.85,682,2.824,683,4.226,684,2.85,685,5.257,686,5.428,687,4.245,688,5.104,689,4.188,690,2.824,691,2.661,692,4.181,693,2.75,694,2.704,695,2.824,696,5.178,697,2.85,698,4.974,699,2.824,700,7.01,701,4.218,702,6.733,703,2.85,704,3.708,705,2.824,706,2.85,707,2.824,708,2.85,709,2.824,712,2.824,713,6.204,714,2.85,715,2.824,716,4.226,717,3.952,718,4.226,719,2.85,720,2.727,721,2.704,722,2.231,723,2.824,724,2.824,725,2.824,726,2.85,727,2.85,728,1.913,729,2.824,730,2.85,731,2.958,732,2.824,733,2.85,736,2.967,854,2.511,905,4.147,4313,6.389,4315,3.637,4323,3.275,6472,3.324,8452,3.144,9787,3.275,10293,2.798,12181,3.812,12182,3.637,12183,3.434,12189,4.042,12390,3.719,13987,6.922,13988,5.004,13989,5.004,13990,5.004,13991,5.004,13992,5.004,13993,5.004,13994,5.004,13995,5.004,13996,5.004,13997,9.96,13998,3.812,13999,3.812,14000,3.812,14001,5.004,14002,5.004,14003,5.004,14004,5.004]],["title/modules/LegacySchoolModule.html",[425,1.812,5333,4.328]],["body/modules/LegacySchoolModule.html",[0,0.261,3,0.018,4,0.018,5,0.009,30,0.001,95,0.161,101,0.013,102,6.044,103,0.001,104,0.001,129,8.558,187,1.109,189,5.611,425,3.018,427,2.771,428,2.981,429,3.069,430,3.056,431,3.043,432,4.168,433,4.281,438,6.024,442,4.05,443,3.006,444,2.934,449,4.015,450,3.151,766,3.209,1467,2.448,1554,8.984,2531,4.146,5333,9.094,9770,10.769,9776,11.55,9777,5.021,11197,11.141,13916,6.424,13917,7.207,14005,7.671,14006,7.671,14007,7.671,14008,7.671,14009,10.769,14010,10.769,14011,7.671]],["title/injectables/LegacySchoolRepo.html",[105,0.91,1554,4.751]],["body/injectables/LegacySchoolRepo.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.806,10,2.692,12,3.055,18,3.37,26,2.53,27,0.536,29,1.01,30,0.001,31,0.733,32,0.175,33,0.623,34,1.566,35,1.547,36,2.606,40,2.075,47,0.833,48,4.697,95,0.135,96,1.825,97,1.859,99,0.717,101,0.007,102,4.621,103,0,104,0,105,0.892,107,1.036,111,2.28,112,2.883,127,0.538,145,1.089,148,1.323,165,0.337,167,3.668,187,0.622,189,6.737,192,1.988,216,1.233,217,1.198,221,1.544,227,1.094,234,1.327,305,1.225,359,2.325,380,1.957,398,1.267,404,1.202,511,2.172,595,1.439,596,3.814,661,3.434,844,5.181,854,4.621,878,4.66,884,3.143,885,5.036,905,1.79,915,2.383,1353,2.075,1467,1.372,1554,4.66,1790,3.45,2051,2.449,2343,8.846,2345,4.749,2346,4.749,2347,4.749,2348,4.749,2349,4.66,2350,4.66,2351,4.749,2352,4.66,2353,4.749,2354,3.125,2355,5.296,2356,3.783,2357,4.194,2359,4.848,2360,3.061,2362,5.296,2363,3.061,2365,3.061,2367,2.814,2368,4.66,2369,3.061,2371,3.061,2373,4.749,2377,4.749,2379,4.501,2380,4.66,2382,3.061,2384,2.577,2385,2.636,2386,3.061,2388,3.061,2390,3.003,2391,3.061,2397,2.901,4323,4.365,4369,2.774,4370,3.366,4491,2.668,5862,3.125,5863,3.125,5864,3.125,5865,3.125,5866,3.125,5867,3.125,5868,3.125,5869,3.125,5870,3.125,5878,3.275,5880,3.874,6472,4.431,8452,6.627,8469,3.605,9007,3.275,9091,3.76,9787,4.365,10031,4.191,10293,4.57,11028,3.6,12179,8.259,12181,5.081,12182,4.848,12183,4.577,12185,3.196,12208,3.003,13073,7.439,13778,3.061,13917,4.749,14012,9.968,14013,4.299,14014,5.833,14015,6.67,14016,4.299,14017,4.299,14018,5.833,14019,4.299,14020,6.67,14021,4.299,14022,4.299,14023,4.299,14024,4.299,14025,3.974,14026,4.299,14027,4.299,14028,4.299,14029,4.299,14030,4.299,14031,4.299,14032,4.299,14033,3.974,14034,4.299,14035,4.299,14036,3.974,14037,4.299,14038,4.299,14039,4.299,14040,4.299,14041,4.299,14042,4.299,14043,3.974,14044,4.299,14045,4.299,14046,4.299,14047,3.974,14048,4.299,14049,4.299,14050,4.299,14051,4.299,14052,3.974,14053,6.67,14054,4.299,14055,4.299]],["title/injectables/LegacySchoolRule.html",[105,0.91,1892,5.694]],["body/injectables/LegacySchoolRule.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.213,27,0.464,29,0.882,30,0.001,31,0.631,32,0.163,33,0.545,35,1.216,95,0.165,99,1.266,101,0.013,102,6.017,103,0.001,104,0.001,105,1.344,107,1.828,116,3.992,127,0.95,187,1.097,189,7.249,199,4.257,214,2.391,215,2.421,216,1.402,217,1.307,227,1.042,347,2.425,359,4.349,380,2.393,461,3.073,806,3.088,1787,6.965,1795,6.481,1823,7.954,1844,4.546,1861,7.267,1872,6.965,1873,4.706,1892,8.413,2002,6.482,2006,6.233,2013,5.039,3385,6.674,3386,5.119,3389,6.575,3392,5.119,3393,6.78,3394,5.638,4369,4.894,5987,5.401,13917,7.153,14056,11.991,14057,7.584,14058,7.584,14059,7.584,14060,7.584]],["title/injectables/LegacySchoolService.html",[105,0.91,129,4.219]],["body/injectables/LegacySchoolService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.008,18,4.218,26,2.577,27,0.501,29,0.952,30,0.001,31,0.681,32,0.165,33,0.588,34,0.987,35,1.428,36,2.821,47,0.938,48,5.039,95,0.137,99,0.969,101,0.01,102,5.366,103,0,104,0,105,1.117,107,1.399,111,1.674,112,3.016,127,1.046,129,5.181,144,1.596,167,3.072,187,0.839,189,7.294,192,2.488,216,1.544,217,1.535,221,2.879,227,1.175,319,1.735,371,2.696,380,1.233,450,2.384,713,3.217,854,2.912,1415,3.558,1554,7.471,4205,2.814,6098,6.999,6712,7.844,9777,8.142,12125,6.744,12184,8.859,13073,9.53,13617,7.718,13813,7.718,13917,5.945,14009,10.181,14033,5.365,14061,12.441,14062,5.804,14063,8.349,14064,8.349,14065,8.349,14066,8.349,14067,8.349,14068,5.365,14069,5.804,14070,8.349,14071,5.804,14072,8.349,14073,5.804,14074,8.349,14075,5.804,14076,5.804,14077,8.349,14078,5.804,14079,8.349,14080,5.804,14081,8.349,14082,5.804,14083,5.804,14084,8.349,14085,5.804,14086,5.804,14087,8.349,14088,5.804,14089,5.804,14090,5.804,14091,5.804]],["title/injectables/LegacySchoolUc.html",[105,0.91,13914,5.694]],["body/injectables/LegacySchoolUc.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.95,27,0.424,29,0.806,30,0.001,31,0.576,32,0.14,33,0.498,35,1.13,36,2.207,39,3.088,47,0.923,52,2.535,95,0.147,99,0.893,101,0.009,102,5.164,103,0,104,0,105,1.052,107,1.289,111,2.439,112,2.527,127,0.986,128,4.321,129,6.386,132,5.077,145,2.777,148,2.421,167,2.895,187,0.774,189,6.743,192,3.625,199,2.974,216,2.028,217,1.616,221,2.873,227,0.816,234,1.277,284,4.252,323,6.355,347,2.511,355,2.149,461,2.623,766,2.237,843,2.36,1801,3.206,1852,2.258,1884,5.562,2725,2.423,4205,3.696,4482,8.442,4483,8.813,4484,9.577,4489,6.64,4491,6.805,4495,4.189,4498,4.189,4501,5.849,4502,4.678,4504,6.882,4505,4.945,4506,4.945,4507,4.945,4593,2.703,4654,8.163,7745,4.075,9777,7.177,11224,6.161,13914,6.589,13917,5.603,13925,7.273,13926,8.163,13943,8.858,13945,4.678,13951,7.328,13998,8.737,13999,8.737,14000,8.737,14092,10.966,14093,5.349,14094,7.868,14095,5.349,14096,7.868,14097,5.349,14098,7.308,14099,7.868,14100,5.349,14101,4.945,14102,5.349,14103,4.945,14104,4.678,14105,5.349,14106,4.945,14107,3.976,14108,7.868,14109,7.868,14110,7.273,14111,5.349,14112,5.349,14113,5.349,14114,7.868,14115,10.291,14116,4.945,14117,5.349,14118,5.349,14119,6.589,14120,5.349,14121,6.589,14122,4.48,14123,4.945,14124,5.349,14125,5.349]],["title/modules/LessonApiModule.html",[425,1.812,14126,5.493]],["body/modules/LessonApiModule.html",[0,0.309,3,0.021,4,0.021,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.312,425,3.266,427,3.276,428,3.525,429,3.629,430,3.614,431,3.598,432,4.51,433,3.428,442,4.508,443,3.554,444,3.468,446,5.699,447,4.67,449,4.47,481,3.482,1878,7.263,2725,4.109,2727,4.351,13849,9.989,14126,11.29,14127,9.07,14128,9.07,14129,9.07,14130,11.254,14131,9.07,14132,10.721,14133,9.07]],["title/entities/LessonBoardElement.html",[380,1.445,2658,5.493]],["body/entities/LessonBoardElement.html",[0,0.323,3,0.022,4,0.022,5,0.011,7,0.143,27,0.392,30,0.001,32,0.129,95,0.161,96,2.598,101,0.016,103,0.001,104,0.001,165,0.908,364,1.73,380,2.463,381,3.159,398,2.798,404,1.711,405,2.531,617,5.265,2577,5.36,2628,9.077,2647,6.876,2648,6.635,2651,8.254,2653,7.954,2658,9.363,2702,5.87,3001,7.236,3041,9.707,4989,4.35,4990,8.307,12455,9.707,14134,11.591,14135,8.78,14136,9.497]],["title/controllers/LessonController.html",[481,2.611,14132,5.947]],["body/controllers/LessonController.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.134,8,1.34,10,4.892,27,0.365,29,0.693,30,0.001,31,0.496,32,0.12,33,0.428,35,1.071,36,2.379,95,0.168,100,2.963,101,0.015,103,0.001,104,0.001,112,2.672,187,1.28,215,2.825,216,1.637,217,1.152,221,2.048,227,0.918,264,3.719,364,1.612,376,2.024,447,3.668,481,3.398,483,4.22,491,6.252,513,6.614,555,4.601,556,4.708,561,4.745,1750,4.922,2727,4.246,2908,7.263,2930,4.745,5043,4.995,14130,10.152,14132,9.706,14137,8.851,14138,7.412,14139,9.952,14140,11.097,14141,8.851,14142,8.851,14143,8.851,14144,7.412,14145,8.851,14146,8.182]],["title/classes/LessonCopyApiParams.html",[0,0.232,6391,5.694]],["body/classes/LessonCopyApiParams.html",[0,0.389,2,1.032,3,0.022,4,0.022,5,0.011,7,0.14,27,0.382,30,0.001,32,0.126,33,0.552,34,1.941,47,0.814,95,0.147,100,3.821,101,0.015,103,0.001,104,0.001,165,0.894,188,4.215,364,1.686,374,2.955,375,4.347,376,2.118,379,2.803,471,4.625,475,4.525,1000,4.646,1582,8.935,2524,6.695,2633,5.935,2649,5.088,2659,5.346,2884,6.069,2885,6.069,3339,5.726,6157,9.98,6391,9.556,7034,8.935,10685,8.097,14147,11.411,14148,8.558,14149,8.558]],["title/injectables/LessonCopyUC.html",[105,0.91,13850,5.694]],["body/injectables/LessonCopyUC.html",[0,0.195,3,0.014,4,0.014,5,0.007,7,0.087,8,0.999,26,2.567,27,0.465,29,0.833,30,0.001,31,0.595,32,0.144,33,0.514,35,1.287,36,1.774,39,1.543,95,0.162,99,0.956,101,0.01,103,0,104,0,105,1.106,107,1.381,111,2.711,112,2.139,127,1.036,148,3.469,187,0.829,188,3.926,204,1.944,216,2.085,217,1.644,221,2.46,227,0.594,234,1.343,235,4.668,284,3.096,305,2.356,307,3.6,347,1.159,450,2.353,461,3.002,843,2.528,1216,2.245,1308,5.884,1353,2.766,1801,3.434,1856,4.628,1884,5.745,1930,7.34,1931,7.926,2130,2.503,2131,2.801,2132,2.7,2133,3.647,2524,3.362,2647,5.95,2659,2.684,2725,2.595,2783,3.434,2964,6.927,2972,10.142,2974,8.803,2980,9.483,2987,10.859,2992,6.264,3009,3.472,3010,3.204,3013,4.628,3055,5.011,3056,5.011,3057,5.296,3586,6.477,4614,4.365,4661,3.024,5017,5.884,6355,6.927,6393,9.827,6659,6.682,6697,5.011,6698,8.902,6704,5.011,6710,5.011,6711,5.011,6712,3.697,13850,6.927,13855,5.011,14150,11.747,14151,8.272,14152,8.272,14153,5.729,14154,5.729,14155,8.272,14156,5.729,14157,5.729,14158,8.272,14159,5.729,14160,7.647,14161,8.974,14162,5.296,14163,5.729,14164,5.296,14165,5.011,14166,5.729,14167,6.477,14168,5.296,14169,5.729,14170,5.729,14171,5.729,14172,5.729,14173,5.729,14174,5.729,14175,5.729,14176,5.729,14177,8.272,14178,5.729,14179,5.729,14180,5.729,14181,5.729,14182,5.729,14183,8.272,14184,4.798,14185,5.729]],["title/entities/LessonEntity.html",[380,1.445,2647,3.589]],["body/entities/LessonEntity.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.137,26,2.083,27,0.464,30,0.001,31,0.507,32,0.153,33,0.315,47,0.94,55,2.244,95,0.152,96,1.141,101,0.02,103,0,104,0,111,1.306,116,1.299,144,2.204,145,2.029,150,3.137,165,0.51,187,0.603,188,4.159,208,1.558,214,1.315,217,1.594,227,1.27,234,1.691,240,3.571,247,1.634,305,1.856,319,2.395,334,1.21,347,1.317,364,2.051,369,2.181,370,2.146,371,2.21,379,1.816,380,1.384,381,1.387,398,1.228,399,2.584,400,1.84,402,1.728,404,0.751,405,1.111,406,1.356,461,0.954,535,3.492,687,1.777,769,3.862,806,1.698,1031,1.307,1167,2.292,1345,1.654,1353,2.013,1397,3.033,1843,1.976,1865,2.967,2095,1.654,2303,4.222,2627,1.752,2632,4.797,2633,3.125,2636,4.937,2640,2.272,2645,4.146,2646,2.447,2647,4.781,2649,3.573,2650,4.042,2659,3.051,2663,4.263,2767,4.781,2848,3.869,3339,4.022,3452,6.174,3471,5.707,3580,1.698,3607,2.913,3608,2.913,4052,3.822,4217,2.62,4281,1.821,4878,2.557,4882,2.62,4883,2.691,4989,1.91,5015,6.744,5026,2.969,5043,2.353,5050,4.146,5055,6.935,5068,2.969,5074,2.969,5079,2.969,5630,7.148,6365,5.325,6368,5.707,6486,4.203,6508,2.587,6518,6.606,6519,2.77,6520,4.263,6522,4.092,6560,4.146,6561,4.327,6586,4.396,6748,3.647,6757,2.587,6758,2.77,8418,4.638,10761,6.114,11863,4.638,11864,3.031,11865,5.102,11866,3.031,11867,4.55,11868,7.122,11869,4.638,11870,2.969,11871,4.638,11872,4.638,11873,4.638,11874,3.031,11875,4.638,11876,2.77,11877,4.638,11878,4.638,11879,3.031,11880,3.031,11881,3.031,11882,4.55,11883,4.55,11884,4.735,11885,4.735,11886,4.735,11887,4.735,11888,5.599,11889,2.913,11890,4.735,11891,3.031,11892,3.031,11893,3.031,11894,2.862,11895,3.031,11896,3.031,11897,4.735,11898,3.031,11899,3.031,11900,6.585,11901,5.826,11902,2.969,11903,3.031,11904,3.031,11905,3.031,11906,3.031,11907,3.031,11908,3.031,11909,3.031,11910,3.031,11911,3.031,11912,3.031,11913,3.031,11914,2.862,11915,3.031,11916,3.031,14186,4.17,14187,4.17,14188,4.17,14189,4.17,14190,4.17,14191,4.17,14192,4.17,14193,4.17,14194,4.17]],["title/classes/LessonFactory.html",[0,0.232,14195,6.286]],["body/classes/LessonFactory.html",[0,0.168,2,0.55,3,0.012,4,0.012,5,0.006,7,0.074,8,0.894,27,0.531,29,1.018,30,0.001,31,0.704,32,0.18,33,0.598,34,1.513,35,1.471,47,0.528,55,2.487,59,3.301,95,0.114,99,0.823,101,0.008,103,0,104,0,127,0.618,138,3.235,144,3.266,148,1.517,165,0.58,185,4.884,188,4.264,216,1.369,217,1.157,227,0.511,319,3.55,359,2.582,366,2.757,371,1.359,379,2.015,380,2.252,381,2.463,404,1.334,538,3.337,596,3.927,627,2.272,660,7.258,661,4.677,662,5.58,665,4.179,666,5.58,667,5.759,668,4.179,669,4.179,670,4.179,671,4.105,672,4.557,673,5.019,674,6.527,675,5.874,676,7.085,677,2.808,682,2.782,683,4.179,684,2.808,685,5.218,686,5.388,687,4.214,688,5.066,689,4.142,690,2.782,691,2.622,692,4.158,693,2.709,694,2.665,695,2.782,696,5.14,697,2.808,698,4.93,699,2.782,700,6.984,701,4.199,702,6.703,703,2.808,704,4.404,705,2.782,706,2.808,707,2.782,708,2.808,709,2.782,710,3.138,711,2.923,712,2.782,713,6.17,714,2.808,715,2.782,716,4.179,717,3.908,718,4.179,719,2.808,720,2.687,721,2.665,722,2.198,723,2.782,724,2.782,725,2.782,726,2.808,727,2.808,728,1.885,729,2.782,730,2.808,731,2.926,732,2.782,733,2.808,736,2.923,2647,3.908,2659,2.31,3452,4.653,5015,5.082,6723,4.129,6771,4.557,6773,4.557,10761,4.998,11867,3.444,11868,3.227,14195,8.221,14196,4.93,14197,4.93,14198,7.405,14199,4.93,14200,4.93,14201,4.93,14202,4.93]],["title/modules/LessonModule.html",[425,1.812,13849,5.055]],["body/modules/LessonModule.html",[0,0.256,3,0.018,4,0.018,5,0.009,30,0.001,95,0.17,101,0.013,103,0.001,104,0.001,187,1.089,425,2.99,427,2.719,428,2.925,429,3.012,430,2.999,431,2.987,432,4.129,433,4.241,438,5.992,442,3.999,443,2.949,444,2.879,449,3.966,450,3.092,766,3.149,1358,4.792,1467,2.403,1902,6.584,1931,8.372,2972,11.517,3009,4.562,3010,4.21,3567,9.508,3579,3.703,3580,3.065,5002,10.769,6338,9.298,8400,11.188,8404,9.298,13849,10.655,13867,9.508,13869,6.959,14203,7.528,14204,7.528,14205,7.528,14206,7.528,14207,11.188,14208,7.528]],["title/injectables/LessonRepo.html",[105,0.91,1931,4.45]],["body/injectables/LessonRepo.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.017,10,3.398,12,3.856,13,6.12,18,4.254,26,2.734,27,0.515,29,0.956,30,0.001,31,0.683,32,0.173,33,0.59,34,0.999,35,1.477,36,2.765,39,2.267,40,4.064,42,6.12,59,1.829,95,0.146,96,1.606,98,3.481,99,0.98,101,0.01,103,0,104,0,105,1.126,107,1.415,112,2.991,116,3.065,138,3.677,145,1.487,187,0.849,188,3.109,217,1.588,221,2.634,227,1.18,234,0.953,277,3.398,347,1.188,380,1.248,381,2.8,398,1.73,404,1.517,461,1.343,577,3.314,596,3.279,692,4.876,877,7.158,883,3.571,884,3.967,885,4.973,908,3.6,909,3.643,910,3.6,911,3.643,913,3.6,914,3.643,915,3.255,964,4.03,1931,5.51,2144,4.751,2647,6.007,2659,5.036,2767,3.099,3452,3.689,3675,4.03,4431,3.689,4435,3.963,5043,6.068,5055,4.842,5880,4.89,5882,4.102,6778,4.473,6782,4.473,6901,7.009,10374,7.782,10379,7.363,10380,5.427,10761,3.963,11868,5.51,14209,5.871,14210,8.419,14211,8.419,14212,8.419,14213,5.871,14214,8.419,14215,5.871,14216,5.871,14217,5.871,14218,5.871,14219,7.363,14220,5.871,14221,5.871,14222,5.871,14223,5.871,14224,5.871,14225,5.871,14226,5.871,14227,5.871,14228,5.871,14229,5.871,14230,5.871,14231,5.871,14232,5.871]],["title/injectables/LessonRule.html",[105,0.91,1893,5.493]],["body/injectables/LessonRule.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.073,8,0.885,27,0.488,29,0.926,30,0.001,31,0.662,32,0.164,33,0.572,35,1.391,95,0.142,101,0.008,103,0,104,0,105,0.98,107,1.171,111,2.675,116,3.448,127,0.917,187,0.703,188,4.088,199,3.709,214,1.532,216,1.63,217,1.539,227,1.191,234,0.789,305,1.384,347,2.644,371,2.431,380,2.95,461,3.176,806,1.978,1642,3.46,1750,5.555,1795,5.304,1798,7.776,1799,5.948,1804,2.945,1805,3.228,1813,6.278,1814,5.027,1823,6.869,1844,2.912,1861,4.439,1888,9.28,1889,8.54,1893,5.916,2002,4.726,2006,4.545,2013,3.228,2647,7,3105,4.662,3106,2.742,3228,3.093,3385,4.866,3386,3.279,3389,4.794,3392,3.279,3393,4.943,6161,3.46,6518,5.759,6790,4.25,6792,4.069,6793,6.406,14233,4.859,14234,7.324,14235,7.324,14236,7.324,14237,7.324,14238,7.324,14239,4.859,14240,7.324,14241,4.859,14242,7.324,14243,4.859,14244,4.859,14245,4.859,14246,7.324,14247,4.859,14248,7.324,14249,4.859,14250,6.771,14251,4.859,14252,4.859,14253,9.073,14254,4.859,14255,4.859,14256,4.492,14257,7.324,14258,7.324,14259,4.859,14260,9.815,14261,8.149,14262,7.324,14263,7.324,14264,4.859,14265,4.859,14266,4.492,14267,4.859]],["title/classes/LessonScope.html",[0,0.232,14219,5.947]],["body/classes/LessonScope.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,8,1.221,26,2.552,27,0.54,29,0.943,30,0.001,31,0.674,32,0.178,33,0.582,35,1.457,95,0.13,99,1.278,101,0.013,103,0.001,104,0.001,111,2.577,144,2.106,148,2.356,165,0.792,188,2.828,227,1.048,277,5.485,319,2.288,347,2.6,404,1.821,529,3.328,596,3.817,2394,6.71,2647,4.041,3452,4.811,5991,6.822,5992,6.822,5993,6.822,5998,6.822,5999,6.822,6000,5.255,6001,5.168,6002,5.255,6003,5.255,6012,5.168,6013,6.822,6014,5.255,6015,5.168,6016,5.255,6017,5.168,6018,6.822,6778,7.701,7135,6.058,9255,9.344,9259,9.344,10208,6.185,14219,11.241,14268,11.316,14269,9.344,14270,9.344,14271,7.078,14272,7.078,14273,6.697]],["title/injectables/LessonService.html",[105,0.91,5002,5.324]],["body/injectables/LessonService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.102,8,1.125,12,4.266,26,2.888,27,0.511,29,0.972,30,0.001,31,0.695,32,0.169,33,0.6,35,1.453,36,2.849,39,2.865,95,0.147,98,4.02,99,1.132,101,0.011,103,0.001,104,0.001,105,1.246,107,1.634,111,1.867,112,3.036,127,1.167,187,0.981,216,1.722,217,1.385,221,2.779,227,1.286,450,2.785,721,3.664,1358,4.316,1931,8.118,2647,6.336,2659,4.363,3579,3.336,3580,2.76,5002,7.293,5015,6.392,5017,4.109,5043,6.004,6298,9.047,6775,8.61,6776,8.61,6778,5.166,14165,5.93,14274,6.78,14275,9.314,14276,9.314,14277,9.314,14278,6.78,14279,6.78,14280,9.314,14281,6.78,14282,9.314,14283,6.78,14284,9.314,14285,6.78,14286,6.78,14287,9.314,14288,6.78,14289,6.78,14290,6.78,14291,6.78,14292,9.314,14293,6.78,14294,6.78,14295,6.78,14296,9.314,14297,6.78,14298,6.78]],["title/injectables/LessonUC.html",[105,0.91,14130,5.694]],["body/injectables/LessonUC.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,10,4.347,26,2.843,27,0.444,29,0.844,30,0.001,31,0.603,32,0.146,33,0.521,35,1.022,39,2.273,95,0.16,99,1.409,101,0.014,103,0.001,104,0.001,105,1.441,107,2.035,111,2.159,112,2.614,127,1.349,187,1.221,216,1.992,217,1.099,221,2.493,227,0.875,284,4.563,368,3.308,369,1.874,461,1.931,766,3.532,843,3.725,1129,4.856,1345,3.35,1801,5.06,1884,7.132,1982,5.06,2659,5.046,2725,3.825,3106,4.765,4151,6.82,4184,5.698,5002,10.502,5017,7.188,5043,4.765,6518,4.954,14130,9.02,14299,8.443,14300,8.443,14301,9.42,14302,8.443,14303,8.443,14304,8.443,14305,6.82,14306,8.443,14307,8.443,14308,8.443]],["title/classes/LessonUrlParams.html",[0,0.232,14139,5.324]],["body/classes/LessonUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2659,5.534,3795,5.749,5017,7.686,14139,9.25,14309,9.798,14310,9.798]],["title/classes/LessonUrlParams-1.html",[0,0.193,905,2.354,14139,4.427]],["body/classes/LessonUrlParams-1.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2659,5.534,3795,5.749,5017,7.686,14139,9.25,14311,9.798,14312,9.798]],["title/classes/LinkContentBody.html",[0,0.232,5645,4.517]],["body/classes/LinkContentBody.html",[0,0.457,2,0.662,3,0.014,4,0.014,5,0.007,7,0.09,9,2.799,27,0.245,30,0.001,31,0.64,32,0.186,47,0.848,83,1.817,95,0.139,99,0.991,101,0.022,103,0,104,0,144,3.144,150,3.43,163,1.828,165,0.665,240,1.884,364,1.082,369,1.318,374,1.896,375,3.773,376,1.359,379,1.924,404,2.06,467,3.601,470,4.782,471,4.016,524,3.417,999,5.404,1000,3.456,1031,1.861,1044,2.85,1770,3.45,2303,4.634,2553,4.223,2584,4.15,2848,2.868,2849,2.569,2889,2.942,3251,3.522,3253,3.522,3259,5.113,3262,3.044,3267,3.322,4009,3.781,4037,3.781,4038,7.095,4096,5.795,5562,6.392,5564,6.392,5566,6.392,5568,6.392,5570,6.392,5604,3.888,5643,6.581,5644,6.581,5645,7.181,5646,6.581,5647,6.581,5835,3.732,5836,6.846,6979,3.947,7039,3.781,8169,8.262,8170,5.826,8171,4.077,8174,6.581,8175,6.581,8176,4.077,8177,6.581,8178,3.642,8179,4.009,8180,6.581,8181,6.581,8182,3.947,8183,3.947,8184,3.947,8185,3.947,8186,4.077,8187,4.077,8188,4.077,8189,4.077,8190,4.077,14313,5.94]],["title/classes/LinkElement.html",[0,0.232,2832,4.45]],["body/classes/LinkElement.html",[0,0.19,2,0.622,3,0.013,4,0.013,5,0.007,7,0.084,8,0.98,27,0.555,29,0.983,30,0.001,31,0.703,32,0.176,33,0.607,35,1.563,36,1.74,47,0.979,55,1.748,59,1.738,95,0.104,101,0.016,103,0,104,0,112,2.107,116,2.527,144,3.385,148,3.788,150,3.635,165,0.635,208,2.084,221,1.291,227,1.207,334,0.599,347,1.934,363,5.164,371,1.538,379,2.379,404,1.723,595,2.717,596,3.754,661,3.41,687,2.378,692,3.031,728,4.015,806,2.271,884,3.823,1335,4.672,1345,2.213,1397,3.515,1790,3.426,1793,6.17,1865,3.696,2557,5.689,2627,2.344,2749,7.605,2752,5.778,2753,5.778,2754,5.778,2755,6.975,2756,5.778,2758,3.706,2759,4.975,2760,6.16,2762,5.668,2763,4.975,2764,6.038,2766,3.897,2767,4.282,2769,6.008,2770,3.897,2774,3.897,2776,3.706,2804,4.917,2832,6.871,3256,7.476,3945,4.055,3946,4.055,3947,4.055,3948,4.672,3956,3.505,3957,5.568,5186,7.096,5188,6.795,8634,3.973,8639,4.879,8641,4.879,9836,5.157,9838,5.157,14314,11.6,14315,5.579,14316,5.579,14317,5.579,14318,5.579,14319,5.579,14320,5.579,14321,5.579,14322,5.579,14323,5.579,14324,5.579,14325,5.579,14326,5.579,14327,5.579,14328,5.157,14329,5.157,14330,5.157,14331,7.5,14332,5.157,14333,5.157,14334,5.157,14335,4.879,14336,5.157]],["title/classes/LinkElementContent.html",[0,0.232,14337,5.694]],["body/classes/LinkElementContent.html",[0,0.343,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,27,0.515,29,0.596,30,0.001,31,0.426,32,0.181,33,0.604,34,1.92,47,0.959,95,0.145,99,1.271,101,0.017,103,0.001,104,0.001,127,1.413,150,4.324,165,0.789,364,2.187,375,4.757,376,1.741,379,2.83,467,3.528,475,3.721,618,3.113,966,3.873,1031,2.386,1397,4.182,2303,4.574,2578,3.394,2747,3.929,2884,4.049,2885,4.049,2889,3.77,3256,8.894,3436,5.319,3443,7.038,3448,4.668,3694,6.691,3698,5.849,3702,5.058,3704,5.058,3978,7.673,4096,6.05,5564,4.912,6196,4.115,6542,4.983,8650,6.15,8666,7.038,8668,7.038,14337,10.746,14338,11.862,14339,7.613,14340,6.376]],["title/classes/LinkElementContentBody.html",[0,0.232,8175,4.517]],["body/classes/LinkElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.905,5566,6.314,5568,6.314,5570,6.314,5604,3.804,5643,6.502,5644,6.502,5645,7.109,5646,6.502,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,7.109,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,6.502,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,14341,5.812,14342,5.812]],["title/entities/LinkElementNode.html",[380,1.445,3183,5.324]],["body/entities/LinkElementNode.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,27,0.482,30,0.001,32,0.159,33,0.511,47,0.972,95,0.159,96,2.239,101,0.018,103,0.001,104,0.001,150,4.276,165,0.827,208,3.058,217,1.065,227,0.849,240,4.224,334,0.879,364,2.129,380,2.244,381,2.723,398,2.412,404,1.903,405,2.181,617,4.537,1397,4.135,1790,4.935,2553,5.264,2557,5.161,2577,4.62,2578,3.649,2747,4.224,3143,5.53,3155,6.328,3183,8.268,3222,5.019,3244,9.235,3256,8.794,3598,6.474,3609,5.21,3619,5.079,4059,5.21,4061,5.21,6196,4.424,7136,5.143,9856,7.567,9857,7.159,14340,6.855,14343,11.416,14344,8.185,14345,9.235,14346,7.567,14347,7.567]],["title/interfaces/LinkElementNodeProps.html",[334,0.731,14345,5.947]],["body/interfaces/LinkElementNodeProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.161,33,0.519,47,0.997,95,0.16,96,2.3,101,0.018,103,0.001,104,0.001,150,4.463,165,0.841,208,3.141,217,1.094,227,0.872,240,3.957,334,0.903,336,2.012,380,2.282,398,2.477,404,2.133,405,2.24,617,4.661,1397,4.315,1790,4.998,2553,3.584,2557,5.251,2577,4.745,2578,3.748,2747,4.339,3143,5.626,3155,6.438,3183,6.583,3222,5.155,3244,9.395,3256,9.178,3598,7.258,3609,5.352,3619,5.217,4059,5.352,4061,5.352,6196,4.544,7136,5.282,14340,7.041,14343,7.772,14345,10.353,14346,7.772,14347,7.772]],["title/interfaces/LinkElementProps.html",[334,0.731,14335,5.947]],["body/interfaces/LinkElementProps.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,30,0.001,32,0.169,33,0.578,36,1.611,47,1.011,95,0.128,101,0.019,103,0.001,104,0.001,112,1.656,144,3.285,148,2.312,150,4.306,165,0.782,208,2.807,221,1.739,227,1.326,334,0.807,336,1.798,347,1.52,371,2.072,379,2.818,404,2.02,687,3.203,728,4.568,806,3.059,1345,2.981,1397,4.164,1865,4.547,2627,3.158,2749,6.051,2755,4.992,2759,4.607,2760,5.858,2763,4.607,2764,5.742,2804,6.795,2832,7.338,3256,8.855,3956,4.721,3957,6.852,5186,8.732,5188,8.36,8634,5.351,14314,6.946,14328,6.946,14329,6.946,14330,6.946,14331,9.229,14332,6.946,14333,6.946,14334,6.946,14335,8.732,14336,6.946]],["title/classes/LinkElementResponse.html",[0,0.232,3978,5.181]],["body/classes/LinkElementResponse.html",[0,0.342,2,0.847,3,0.018,4,0.018,5,0.009,7,0.115,27,0.515,29,0.595,30,0.001,31,0.426,32,0.184,33,0.367,34,2.123,47,0.915,95,0.145,99,1.268,101,0.017,103,0.001,104,0.001,127,1.412,150,3.904,165,0.788,364,2.186,375,4.294,376,1.738,379,2.555,467,3.526,475,3.714,618,3.107,966,3.866,1031,2.381,1397,3.775,2303,5.059,2578,3.388,2747,3.922,2883,4.973,2884,5.35,2885,5.35,2888,4.605,2889,4.98,3256,8.028,3436,5.309,3448,4.659,3694,7.401,3698,6.548,3702,5.048,3704,5.048,3978,9.51,4096,6.692,5564,6.49,6196,4.107,6542,4.973,8670,7.024,14337,10.049,14338,11.856,14340,6.364,14348,7.599,14349,7.599,14350,7.599,14351,7.599]],["title/classes/LinkElementResponseMapper.html",[0,0.232,5584,5.947]],["body/classes/LinkElementResponseMapper.html",[0,0.261,2,0.855,3,0.018,4,0.018,5,0.009,7,0.116,8,1.223,27,0.497,29,0.793,30,0.001,31,0.567,32,0.164,33,0.489,34,1.305,35,1.371,95,0.145,99,1.28,100,2.568,101,0.013,103,0.001,104,0.001,111,2.271,116,2.389,150,2.656,165,0.793,214,3.191,217,0.998,227,1.175,234,1.956,347,2.047,379,1.738,591,3.334,627,3.946,806,3.123,974,4.548,975,5.611,978,6.196,980,5.844,1397,2.568,1750,4.489,2051,4.37,2303,3.109,2547,8.42,2550,7.925,2551,7.925,2553,5.673,2554,7.711,2832,8.711,3256,5.463,3694,4.548,3698,5.879,3715,5.463,3978,9.176,4096,4.113,5183,7.117,5564,4.95,5581,6.007,5584,11.469,8672,9.176,8674,6.196,8676,6.196,8677,6.196,8678,6.196,14337,8.476,14352,12.52,14353,6.709,14354,11.327,14355,7.671,14356,7.671,14357,7.671,14358,7.671]],["title/classes/ListOauthClientsParams.html",[0,0.232,14359,5.947]],["body/classes/ListOauthClientsParams.html",[0,0.331,2,0.803,3,0.017,4,0.017,5,0.009,7,0.109,27,0.484,30,0.001,31,0.544,32,0.16,33,0.635,47,0.838,55,2.53,56,5.266,58,7.911,95,0.125,101,0.012,103,0.001,104,0.001,165,0.76,247,4.602,361,6.797,364,2.139,368,5.142,370,4.324,371,3.845,374,2.3,376,1.648,379,2.662,467,3.217,470,4.592,471,4.97,694,5.246,1018,6.263,1021,5.163,1036,9.837,1037,8.949,3469,7.817,3470,5.13,3475,7.056,3526,5.82,5442,6.985,5454,7.601,5526,8.596,7810,7.202,7990,10.992,8362,9.198,9888,9.115,14359,8.49,14360,12.261,14361,7.205,14362,7.205,14363,7.205,14364,9.706,14365,9.706,14366,7.205,14367,7.205,14368,9.706,14369,7.205,14370,7.205,14371,7.205]],["title/classes/LocalAuthorizationBodyParams.html",[0,0.232,14372,5.947]],["body/classes/LocalAuthorizationBodyParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.483,30,0.001,32,0.159,47,0.934,51,6.121,87,6.324,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,2.133,374,3.082,376,2.209,467,3.306,470,5.272,1001,7.553,7328,9.459,13737,8.446,14372,10.242,14373,12.602,14374,8.927,14375,8.927]],["title/injectables/LocalStrategy.html",[105,0.91,1555,5.947]],["body/injectables/LocalStrategy.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.088,8,1.014,27,0.442,29,0.84,30,0.001,31,0.601,32,0.154,33,0.519,35,1.188,36,2.301,39,1.574,47,0.984,51,5.918,59,3.342,66,6.923,87,6.67,94,5.745,95,0.169,101,0.01,103,0,104,0,105,1.123,107,1.409,111,2.582,112,2.607,127,1.051,138,2.554,187,0.845,206,2.974,216,1.984,217,1.539,221,2.737,227,0.87,234,1.92,305,1.665,334,0.628,369,1.297,404,1.512,406,1.901,441,7.302,450,2.401,461,1.92,491,2.876,513,4.24,639,4.249,789,7.974,801,3.395,802,4.249,803,3.627,983,4.896,1068,4.896,1069,5.113,1549,8.792,1555,7.34,1562,4.345,1573,4.896,1605,3.466,1639,3.721,1732,4.345,2004,8.117,4519,4.012,6098,5.493,7062,4.345,11342,5.113,11350,4.454,11999,4.896,12659,8.402,13158,4.578,13162,7.028,13167,4.896,13795,9.076,13820,5.404,13823,5.404,13825,5.404,13826,5.404,13828,5.404,14376,5.846,14377,8.392,14378,5.846,14379,9.076,14380,5.846,14381,5.846,14382,10.729,14383,5.846,14384,8.392,14385,8.392,14386,5.846,14387,8.392,14388,5.846,14389,5.846,14390,5.846,14391,5.846,14392,5.846,14393,5.846,14394,5.846,14395,8.392,14396,5.846,14397,5.846,14398,5.846,14399,5.846,14400,5.846,14401,5.113,14402,5.846,14403,5.846,14404,5.846,14405,5.846]],["title/interfaces/Loggable.html",[334,0.731,1464,3.132]],["body/interfaces/Loggable.html",[3,0.024,4,0.024,5,0.012,7,0.153,8,1.457,27,0.418,30,0.001,35,1.228,95,0.13,101,0.017,103,0.001,104,0.001,208,3.789,334,1.09,336,2.427,1464,5.554,1465,6.643,1469,6.595,8288,6.691,8289,6.956,14406,10.143,14407,10.143]],["title/injectables/Logger.html",[105,0.91,2356,2.793]],["body/injectables/Logger.html",[0,0.233,3,0.025,4,0.016,5,0.008,7,0.103,8,1.133,27,0.525,29,0.975,30,0.001,31,0.727,32,0.173,33,0.602,35,1.458,47,0.82,95,0.155,101,0.011,103,0.001,104,0.001,105,1.255,107,1.651,111,2.306,116,4.296,127,0.858,144,1.884,148,4.05,165,0.735,187,0.991,199,4.042,216,1.267,217,1.497,277,3.785,319,2.047,336,1.639,839,3.266,1216,4.507,1464,6.407,2356,4.949,2969,4.623,5460,6.138,7803,4.42,8331,10.061,8341,5.991,8342,7.344,8343,5.533,8344,6.332,8345,5.991,8346,10.633,13873,8.67,13882,8.67,13894,6.332,13905,10.538,14408,6.849,14409,8.203,14410,9.379,14411,9.379,14412,9.379,14413,6.849,14414,9.379,14415,6.849,14416,9.379,14417,6.849,14418,6.849,14419,9.379,14420,6.849,14421,6.849,14422,6.849,14423,6.849,14424,6.332]],["title/modules/LoggerModule.html",[425,1.812,438,3.185]],["body/modules/LoggerModule.html",[0,0.262,3,0.018,4,0.018,5,0.009,30,0.001,95,0.171,101,0.013,103,0.001,104,0.001,187,1.111,204,2.608,227,0.797,234,1.248,336,1.839,369,2.249,371,2.119,425,3.021,427,2.776,428,2.987,429,3.075,430,3.062,431,3.049,432,4.172,433,4.285,438,6.499,442,4.055,443,3.011,444,2.939,449,3.049,565,5.051,789,7.889,801,4.464,837,5.473,839,3.665,1141,4.712,2356,5.726,2357,6.284,3588,5.713,7803,4.959,8325,11.553,8342,8.878,11929,6.436,14425,7.686,14426,7.686,14427,7.686,14428,7.686,14429,7.105,14430,7.686,14431,7.686,14432,7.686,14433,6.436,14434,7.686,14435,7.686,14436,7.686,14437,7.686,14438,7.686,14439,7.686,14440,7.686,14441,7.686,14442,7.686,14443,7.686,14444,7.686,14445,7.686,14446,7.686,14447,7.686,14448,7.686]],["title/classes/LoggingUtils.html",[0,0.232,8343,5.493]],["body/classes/LoggingUtils.html",[0,0.276,2,0.904,3,0.019,4,0.019,5,0.01,7,0.122,8,1.267,27,0.48,29,0.911,30,0.001,31,0.651,32,0.143,33,0.562,35,1.408,47,0.909,59,2.524,95,0.149,101,0.014,103,0.001,104,0.001,111,2.332,145,2.945,199,4.649,208,3.027,217,1.601,227,1.206,336,1.939,359,4.056,627,4.175,1216,4.558,1345,3.215,1464,6.118,1469,4.012,8343,8.473,10820,8.473,13874,11.372,13907,7.491,13908,7.491,14449,8.103,14450,10.49,14451,10.49,14452,10.49,14453,10.49,14454,8.103,14455,11.632,14456,10.49,14457,8.103,14458,10.49,14459,8.103,14460,8.103,14461,8.103,14462,10.49]],["title/controllers/LoginController.html",[481,2.611,1510,5.947]],["body/controllers/LoginController.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.073,8,0.882,27,0.362,29,0.688,30,0.001,31,0.492,32,0.185,33,0.425,35,1.064,36,2.369,95,0.158,100,1.619,101,0.008,103,0,104,0,112,2.663,163,3.4,187,0.699,215,1.543,216,0.894,217,1.438,221,2.034,227,0.911,334,0.519,355,5.095,364,1.601,367,5.269,376,1.106,379,3.021,447,2.004,461,2.9,481,1.857,483,2.306,491,5.643,498,7.583,502,6.856,503,7.032,504,8.298,505,8.126,506,7.231,507,9.606,513,3.687,522,7.667,543,4.981,553,5.934,554,7.738,555,2.514,558,2.32,563,5.268,564,4.43,565,4.381,731,3.473,845,8.784,1187,4.191,1188,4.142,1189,4.142,1190,4.381,1191,4.79,1410,2.729,1508,7.361,1510,6.383,1513,4.47,1562,3.594,1743,8.982,1744,3.378,1920,3.078,2614,6.389,2615,6.259,2928,3.515,2929,2.781,3090,4.779,3709,3.212,4466,6.418,5442,4.157,6154,6.505,6833,6.942,7077,7.278,7483,3.378,7995,8.213,8313,4.049,10609,5.425,12927,3.319,13136,4.47,13735,8.199,13791,7.361,14372,8.563,14463,4.835,14464,7.298,14465,7.298,14466,8.79,14467,4.835,14468,4.835,14469,10.214,14470,4.835,14471,8.605,14472,8.79,14473,4.835,14474,4.835,14475,4.835,14476,4.835,14477,4.835,14478,4.835,14479,8.199,14480,4.835,14481,4.835,14482,4.835,14483,4.835,14484,6.112,14485,4.229,14486,4.835,14487,4.835,14488,4.835,14489,4.835,14490,8.79,14491,4.835,14492,4.835,14493,8.79,14494,7.298,14495,4.835,14496,4.835,14497,4.835,14498,4.835,14499,4.835,14500,4.835,14501,4.835,14502,4.835]],["title/classes/LoginDto.html",[0,0.232,1743,5.324]],["body/classes/LoginDto.html",[0,0.343,2,1.123,3,0.024,4,0.024,5,0.012,7,0.152,27,0.495,29,0.789,30,0.001,31,0.564,32,0.163,33,0.487,47,0.856,101,0.017,103,0.001,104,0.001,127,1.261,165,0.94,405,3.199,595,3.371,1625,8.524,1743,10.63,14503,10.067,14504,12.006,14505,8.431,14506,8.431]],["title/classes/LoginRequestBody.html",[0,0.232,14507,5.493]],["body/classes/LoginRequestBody.html",[0,0.299,2,0.695,3,0.015,4,0.015,5,0.008,7,0.094,27,0.512,30,0.001,32,0.169,33,0.654,47,0.788,55,2.191,95,0.131,101,0.01,103,0.001,104,0.001,116,1.942,165,0.688,204,4.212,247,3.442,277,3.546,339,8.211,340,5.036,344,9.721,345,7.966,347,1.777,361,5.64,364,2.261,368,5.049,369,1.95,370,4.245,371,3.808,373,4.71,374,1.99,376,1.426,379,2.305,404,1.583,461,2.01,467,2.669,471,4.124,502,3.869,506,4.081,564,2.286,565,4.379,596,3.552,728,4.224,1035,6.138,1142,2.887,1342,3.917,1421,4.532,1433,3.823,1820,7.497,1909,6.88,2075,3.426,2257,7.322,2468,5.266,3580,3.577,4588,4.534,4669,6.88,5406,3.869,5432,10.239,5433,7.358,5434,7.358,5435,6.88,5438,4.081,5440,5.221,5441,7.684,5442,5.795,5443,7.684,5444,8.122,5445,7.684,5447,5.763,5448,8.122,5449,6.386,5450,10.211,5451,6.531,5452,8.122,5454,8.649,5455,4.75,5456,5.453,5457,5.453,5458,5.453,5459,5.763,5460,4.081,5461,6.694,5462,6.138,5463,4.75,5464,5.036,5465,4.75,5466,5.221,5467,5.036,5468,5.763,5469,5.221,5470,5.763,5471,4.75,5472,5.763,5473,5.453,5474,5.221,5475,5.453,5476,5.763,5478,7.097,5479,5.763,14507,7.097,14508,10.173,14509,6.235,14510,6.235]],["title/classes/LoginResponse.html",[0,0.232,14471,4.842]],["body/classes/LoginResponse.html",[0,0.335,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.488,29,0.771,30,0.001,31,0.551,32,0.161,33,0.476,47,0.845,95,0.126,101,0.016,103,0.001,104,0.001,127,1.233,165,0.928,364,1.793,376,2.252,405,3.157,467,3.334,595,3.296,1625,8.443,14471,9.609,14505,8.245,14506,8.245,14511,9.845,14512,11.847]],["title/classes/LoginResponse-1.html",[0,0.193,905,2.354,14471,4.026]],["body/classes/LoginResponse-1.html",[0,0.281,2,0.637,3,0.014,4,0.014,5,0.007,7,0.086,27,0.535,29,0.447,30,0.001,31,0.32,32,0.176,33,0.64,34,1.996,47,0.951,70,5.576,72,3.74,77,6.169,95,0.136,101,0.01,103,0,104,0,127,0.716,137,7.892,145,3.137,150,2.858,165,0.647,290,4.843,339,6.136,346,5.254,347,1.67,349,5.571,355,4.716,361,7.272,364,2.334,367,5.907,368,3.234,369,2.151,370,2.719,371,2.927,374,1.823,376,1.307,379,2.742,461,2.684,467,3.442,470,3.453,471,4.905,522,6.464,1013,4.439,1518,6.902,1820,5.122,2241,5.571,2257,6.434,2450,3.255,3303,5.878,3433,3.991,3580,5.139,4051,4.615,4194,6.902,5477,5.254,5484,8.117,5485,8.117,5486,8.117,5487,7.829,5490,8.477,5492,4.997,5498,8.117,5499,7.631,5507,8.117,5511,5.571,5515,7.631,5516,7.631,5519,4.997,5520,5.281,5521,5.281,5522,5.281,5531,7.631,11944,6.136,13383,6.668,14471,8.616,14513,5.713,14514,8.96,14515,8.255,14516,5.713,14517,5.713,14518,5.713,14519,7.22,14520,5.713,14521,5.713,14522,8.255,14523,5.713,14524,5.713,14525,5.713,14526,8.255,14527,8.255,14528,8.255,14529,5.713,14530,5.713,14531,5.713]],["title/classes/LoginResponseMapper.html",[0,0.232,14485,5.947]],["body/classes/LoginResponseMapper.html",[0,0.296,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,35,1.327,47,0.857,59,2.703,95,0.141,100,2.906,101,0.014,103,0.001,104,0.001,217,1.426,227,1.137,234,1.78,627,4.078,974,5.146,1016,4.431,1625,7.282,1743,10.789,1744,6.064,7075,10.194,14471,9.267,14484,10.898,14485,9.587,14532,12.014,14533,10.961,14534,10.961,14535,10.961,14536,7.268,14537,10.961,14538,8.679,14539,10.961]],["title/injectables/LoginUc.html",[105,0.91,1508,5.694]],["body/injectables/LoginUc.html",[0,0.294,3,0.02,4,0.02,5,0.01,7,0.13,8,1.319,27,0.45,29,0.855,30,0.001,31,0.611,32,0.148,33,0.528,35,1.044,36,2.341,95,0.17,100,2.887,101,0.014,103,0.001,104,0.001,105,1.46,107,2.079,112,2.64,127,1.08,187,1.247,206,4.387,215,2.752,216,1.595,217,1.559,221,1.996,227,0.894,231,4.78,234,1.4,334,0.926,491,6.194,1508,9.142,1549,9.359,1573,7.222,1625,5.729,1719,9.379,1742,7.222,1743,10.39,4654,9.548,7062,6.41,14540,8.623,14541,10.916,14542,8.623,14543,8.623,14544,10.916,14545,8.623,14546,7.972,14547,8.623,14548,8.623,14549,8.623,14550,8.623]],["title/injectables/Lti11EncryptionService.html",[105,0.91,14551,5.947]],["body/injectables/Lti11EncryptionService.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,27,0.348,29,0.661,30,0.001,31,0.473,32,0.115,33,0.408,35,1.022,47,0.992,95,0.152,101,0.014,103,0.001,104,0.001,105,1.441,107,2.035,108,6.256,116,3.694,150,4.326,163,2.598,187,1.221,217,1.544,227,0.875,231,6.925,234,1.371,235,4.765,1180,5.105,1618,7.256,1738,6.137,1820,8.188,2035,5.821,2265,7.804,2929,4.856,5442,7.117,6528,6.012,14551,9.42,14552,10.77,14553,8.443,14554,9.956,14555,10.77,14556,8.443,14557,7.07,14558,10.77,14559,7.804,14560,8.443,14561,7.829,14562,8.443,14563,8.443,14564,8.443,14565,8.443,14566,8.443,14567,8.443,14568,8.443,14569,8.443]],["title/classes/Lti11ToolConfig.html",[0,0.232,7269,4.943]],["body/classes/Lti11ToolConfig.html",[0,0.26,2,0.851,3,0.018,4,0.018,5,0.009,7,0.115,27,0.555,29,0.597,30,0.001,31,0.427,32,0.187,33,0.546,47,0.959,95,0.129,101,0.013,103,0.001,104,0.001,127,0.955,165,0.79,198,3.705,200,2.376,209,4.445,238,6.317,404,1.817,405,2.687,406,2.481,595,2.554,596,3.076,1618,6.561,2035,6.105,2559,6.022,2561,6.388,2562,9.29,2564,6.671,2565,5.589,2566,6.671,2567,6.671,2569,5.432,7112,7.393,7118,7.288,7120,7.288,7122,7.288,7137,5.544,7138,6.161,7139,5.973,7140,6.388,7143,5.811,7144,6.161,7147,5.811,7148,6.161,7151,5.811,7152,6.161,7266,8.211,7269,9.084,7293,5.235,7298,8.043,14570,13.293,14571,9.321,14572,7.051,14573,7.051,14574,7.051,14575,7.051,14576,7.051,14577,6.671,14578,6.671]],["title/classes/Lti11ToolConfigCreateParams.html",[0,0.232,8617,5.694]],["body/classes/Lti11ToolConfigCreateParams.html",[0,0.333,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.543,30,0.001,32,0.185,33,0.473,47,0.961,95,0.152,101,0.012,103,0.001,104,0.001,154,5.931,165,0.767,198,3.544,200,2.272,209,4.35,238,6.179,364,2.397,374,2.329,375,3.729,376,1.669,404,1.764,467,3.453,470,5.151,471,3.968,596,2.986,1044,3.5,1618,6.417,2035,5.971,2559,5.866,2565,6.124,2583,8.951,2584,7.718,2585,5.893,2586,5.893,2587,5.893,2588,5.893,2589,5.893,5825,5.304,7112,7.23,7118,7.128,7120,7.128,7122,7.128,7266,8.031,7298,7.867,8616,5.893,8617,8.198,8624,6.381,14579,11.971,14580,6.745,14581,7.296,14582,6.745,14583,6.745,14584,6.745,14585,7.296,14586,7.296,14587,6.745,14588,9.049,14589,6.745,14590,6.745]],["title/classes/Lti11ToolConfigEntity.html",[0,0.232,8684,5.493]],["body/classes/Lti11ToolConfigEntity.html",[0,0.249,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.534,29,0.574,30,0.001,31,0.41,32,0.176,33,0.535,47,0.939,95,0.152,96,2.003,101,0.012,103,0.001,104,0.001,127,0.917,165,0.769,198,3.557,200,2.281,209,4.409,240,4.179,364,2.311,369,2.178,370,2.412,386,4.171,398,2.157,404,1.319,405,2.615,595,2.452,617,4.059,1031,3.863,1618,6.428,2035,5.982,2559,5.968,2565,4.059,2572,6.132,2574,5.064,2575,7.927,2576,6.405,2577,4.133,2578,3.265,7112,7.244,7118,7.141,7120,7.141,7122,7.141,7137,5.323,7138,5.915,7139,5.734,7140,6.132,7143,5.579,7144,5.915,7147,5.579,7148,5.915,7151,5.579,7152,5.915,7179,6.405,7266,8.045,7293,6.735,7298,7.881,8684,9.959,14577,6.405,14578,6.405,14591,13.173,14592,9.813,14593,7.322,14594,7.322,14595,7.322,14596,7.322,14597,7.322]],["title/classes/Lti11ToolConfigResponse.html",[0,0.232,9212,5.694]],["body/classes/Lti11ToolConfigResponse.html",[0,0.248,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.543,29,0.571,30,0.001,31,0.409,32,0.185,33,0.534,47,0.939,95,0.142,101,0.012,103,0.001,104,0.001,127,0.914,165,0.767,198,3.544,200,2.272,209,4.35,238,6.179,364,2.359,375,4.208,376,1.669,404,1.764,405,2.608,406,2.373,467,3.613,595,2.443,596,2.986,2035,5.971,2559,5.866,2565,6.124,2569,5.195,2578,3.253,2579,5.195,2592,5.893,2593,9.947,2595,6.381,2596,6.381,2597,5.893,7112,7.23,7118,7.128,7120,7.128,7122,7.128,7137,5.304,7138,5.893,7143,5.559,7144,5.893,7147,5.559,7148,5.893,7151,5.559,7152,5.893,7266,8.031,7293,5.007,7298,7.867,9212,10.312,14577,6.381,14578,6.381,14598,12.95,14599,9.049,14600,6.745,14601,6.745,14602,6.745,14603,6.381]],["title/classes/Lti11ToolConfigUpdateParams.html",[0,0.232,9135,5.694]],["body/classes/Lti11ToolConfigUpdateParams.html",[0,0.332,2,0.809,3,0.017,4,0.017,5,0.009,7,0.11,27,0.542,30,0.001,32,0.185,33,0.57,47,0.96,95,0.151,101,0.012,103,0.001,104,0.001,154,5.923,165,0.764,198,3.525,200,2.26,209,4.345,238,6.162,364,2.394,374,2.316,375,4.197,376,1.66,404,1.758,467,3.393,470,5.141,471,4.466,596,2.975,1044,3.481,1618,6.399,2035,5.954,2559,5.858,2565,6.107,2583,8.935,2584,6.814,2585,5.862,2586,5.862,2587,5.862,2588,5.862,2589,5.862,5825,7.09,7112,7.211,7118,7.109,7120,7.109,7122,7.109,7266,8.009,7298,7.845,9135,8.168,9420,6.077,9422,6.347,9424,6.347,14579,11.955,14580,6.708,14582,6.708,14584,6.708,14588,9.016,14589,6.708,14590,6.708,14604,7.256,14605,7.256,14606,7.256,14607,6.708]],["title/classes/LtiRoleMapper.html",[0,0.232,14608,6.286]],["body/classes/LtiRoleMapper.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,8,1.34,27,0.365,29,0.693,30,0.001,31,0.496,32,0.12,33,0.428,35,1.071,95,0.142,99,1.477,101,0.015,103,0.001,104,0.001,108,6.445,116,2.757,145,3.069,198,4.299,217,1.578,227,0.918,627,3.72,696,4.601,4571,7.133,9718,5.88,9719,5.974,12009,5.974,12012,6.743,14608,10.258,14609,11.097,14610,8.851,14611,11.097,14612,11.097,14613,8.851,14614,13.923,14615,8.182,14616,8.851,14617,11.097,14618,8.851,14619,11.097,14620,8.851,14621,8.851,14622,8.851,14623,8.851,14624,11.097,14625,8.851]],["title/entities/LtiTool.html",[380,1.445,7116,5.055]],["body/entities/LtiTool.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,26,1.369,27,0.542,30,0.001,31,0.547,32,0.18,33,0.643,47,0.956,49,3.13,95,0.116,96,1.766,97,1.783,101,0.016,103,0,104,0,116,2.011,144,1.134,145,2.28,150,2.755,165,0.506,216,0.762,227,0.428,234,0.669,236,4.669,240,4.196,319,3.525,334,0.443,347,2.386,364,2.396,369,3.009,370,4.358,371,3.727,380,1.372,381,1.371,386,7.4,394,3.678,398,1.215,399,2.561,400,1.819,402,1.709,404,0.743,405,1.099,406,1.341,540,4.693,701,1.458,853,2.128,1019,4.621,1031,3.063,1498,2.499,1602,6.29,1618,4.621,1858,2.159,2035,4.866,2095,1.636,2362,2.371,2545,2.193,2632,2.973,3110,3.966,4281,1.801,6196,2.228,6499,3.606,6527,3.33,6540,3.33,7101,6.959,7102,3.811,7103,5.407,7104,7.272,7105,5.968,7106,5.968,7107,3.811,7108,3.811,7109,5.968,7110,3.811,7111,3.811,7112,6.397,7113,5.968,7114,5.968,7115,3.811,7116,4.799,7117,6.23,7118,5.134,7119,6.23,7120,5.134,7121,5.407,7122,5.134,7123,6.23,7124,6.23,7125,5.915,7126,5.968,7127,7.355,7128,3.33,7129,3.228,7130,3.811,7131,5.666,7132,6.23,7133,5.065,7134,5.915,7135,4.769,7136,2.59,7137,2.997,7138,3.33,7139,3.228,7140,3.453,7141,3.453,7142,3.811,7143,3.141,7144,3.33,7145,3.453,7146,3.811,7147,3.141,7148,3.33,7149,3.228,7150,3.33,7151,3.141,7152,3.33,7153,3.453,7154,3.811,7155,3.453,7156,3.811,7157,3.453,7158,3.811,7159,3.811,7160,3.811,7161,3.811,7162,3.453,7163,3.811,7164,3.453,7165,3.811,7166,3.141,7167,3.33,7168,2.88,7169,3.065,7170,3.453,7171,3.811,7172,3.065,7173,3.33,14626,4.123,14627,4.123,14628,4.123,14629,4.123,14630,4.123,14631,4.123,14632,4.123,14633,4.123,14634,4.123,14635,4.123,14636,4.123,14637,4.123,14638,4.123,14639,4.123,14640,4.123,14641,4.123,14642,4.123,14643,4.123,14644,4.123,14645,4.123,14646,4.123,14647,4.123,14648,4.123]],["title/classes/LtiToolDO.html",[0,0.232,7182,4.751]],["body/classes/LtiToolDO.html",[0,0.282,2,0.641,3,0.014,4,0.014,5,0.007,7,0.087,26,2.061,27,0.572,29,0.45,30,0.001,31,0.596,32,0.189,33,0.673,34,1.41,47,1.001,95,0.125,101,0.014,103,0,104,0,127,0.72,144,2.674,150,3.367,165,0.649,236,5.705,347,2.596,404,1.494,596,1.753,1618,5.648,1790,2.426,1872,6.183,2035,6.1,2095,2.28,2545,3.056,3110,4.847,4385,5.025,5708,4.177,6196,3.105,7104,7.854,7112,6.364,7117,7.614,7118,6.274,7119,7.614,7120,6.274,7122,6.274,7123,7.614,7124,7.614,7125,7.228,7129,7.614,7131,6.924,7132,7.614,7133,6.189,7134,7.228,7135,5.828,7137,6.025,7139,4.499,7141,4.812,7143,4.378,7145,4.812,7147,4.378,7149,4.499,7151,4.378,7153,4.812,7155,4.812,7157,4.812,7162,4.812,7164,4.812,7166,4.378,7168,4.014,7170,4.812,7172,4.271,7174,8.143,7175,5.311,7176,5.311,7179,5.025,7180,4.378,7181,4.499,7182,7.885,7183,6.491,7184,4.499,7185,5.311,7186,5.311,7187,5.311,7188,5.311,7189,5.311,7190,5.311,7191,5.311,7192,5.025,7193,5.311,7194,5.311,7195,5.311,7196,5.311,7197,5.311,7198,5.311,7199,5.311,7200,5.311,7201,5.311,7202,5.311,7203,5.311,7204,5.311,14649,8.289,14650,5.746,14651,5.746,14652,5.746,14653,5.746,14654,5.746,14655,5.746,14656,5.746,14657,5.746,14658,5.746,14659,5.746,14660,5.746,14661,5.746,14662,5.746,14663,5.746,14664,5.746,14665,5.746,14666,5.746,14667,5.746,14668,5.746]],["title/classes/LtiToolFactory.html",[0,0.232,14669,6.286]],["body/classes/LtiToolFactory.html",[0,0.157,2,0.513,3,0.011,4,0.011,5,0.006,7,0.07,8,0.849,27,0.534,29,1.022,30,0.001,31,0.725,32,0.18,33,0.606,34,1.451,35,1.443,47,0.829,55,2.429,59,3.203,95,0.123,99,0.768,101,0.008,103,0,104,0,127,0.577,138,3.071,144,3.277,148,1.417,150,2.434,165,0.551,185,4.873,216,1.3,217,1.11,227,0.884,234,0.747,236,2.701,319,3.475,359,2.451,366,2.575,369,1.56,371,2.352,379,1.933,380,2.185,381,2.339,404,1.267,538,3.168,596,3.872,627,2.157,660,7.173,661,4.556,662,5.388,665,3.968,666,5.388,667,5.649,668,3.968,669,3.968,670,3.968,671,3.897,672,4.37,673,4.814,674,6.391,675,5.701,676,6.997,677,2.622,682,2.598,683,3.968,684,2.622,685,5.039,686,5.203,687,4.069,688,4.892,689,3.932,690,2.598,691,2.448,692,4.05,693,2.53,694,2.488,695,2.598,696,4.963,697,2.622,698,4.728,699,2.598,700,7.164,701,4.111,702,6.563,703,2.622,704,4.223,705,2.598,706,2.622,707,2.598,708,2.622,709,2.598,710,2.93,711,2.729,712,2.598,713,6.01,714,2.622,715,2.598,716,3.968,717,3.71,718,3.968,719,2.622,720,2.509,721,2.488,722,2.052,723,2.598,724,2.598,725,2.598,726,2.622,727,2.622,728,1.76,729,2.598,730,2.622,731,2.778,732,2.598,733,2.622,735,2.674,737,4.214,1618,4.083,2035,3.8,3110,2.295,4306,3.855,5530,2.295,7103,3.855,7104,3.718,7112,3.013,7116,5.226,7117,5.505,7118,4.536,7119,5.505,7120,4.536,7122,2.97,7123,3.605,7124,3.605,7125,3.422,7129,5.505,7131,6.074,7132,5.505,7133,2.93,7134,5.226,7135,2.759,7174,3.855,8704,6.499,8709,6.499,11504,3.507,14669,7.885,14670,4.603,14671,7.03,14672,4.603,14673,7.03,14674,4.603,14675,4.603,14676,4.603,14677,4.603,14678,4.603,14679,4.603]],["title/modules/LtiToolModule.html",[425,1.812,14680,5.694]],["body/modules/LtiToolModule.html",[0,0.309,3,0.021,4,0.021,5,0.011,30,0.001,95,0.165,101,0.015,103,0.001,104,0.001,187,1.312,425,3.266,427,3.276,428,3.525,429,3.629,430,3.614,431,3.598,432,4.51,433,4.632,442,4.508,443,3.554,444,3.468,450,3.726,766,3.794,1467,2.895,2357,6.121,4584,9.768,5338,7.326,14680,11.769,14681,9.07,14682,9.07,14683,9.07,14684,11.823,14685,8.384,14686,9.07]],["title/injectables/LtiToolRepo.html",[105,0.91,4584,4.943]],["body/injectables/LtiToolRepo.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.806,10,2.694,12,3.057,18,3.373,26,2.412,27,0.536,29,1.01,30,0.001,31,0.746,32,0.175,33,0.623,34,1.567,35,1.561,36,2.682,40,2.077,47,0.833,95,0.128,96,1.177,99,0.718,101,0.007,103,0,104,0,105,0.893,107,1.037,111,2.281,112,2.934,148,1.324,150,2.311,165,0.337,167,2.456,187,0.622,217,1.298,221,1.893,227,1.18,234,1.328,236,3.917,247,1.686,305,1.226,347,1.654,359,2.327,380,2.339,381,1.431,398,1.268,404,1.203,511,2.174,595,1.441,596,3.815,661,4.782,878,4.664,884,3.145,885,5.039,915,2.386,1618,3.877,1790,4.211,2035,3.608,2051,2.452,2343,8.848,2345,4.753,2346,4.753,2347,4.753,2348,4.753,2349,4.664,2350,4.664,2351,4.753,2352,4.664,2353,4.753,2360,3.065,2362,5.299,2363,3.065,2365,3.065,2367,2.817,2368,4.664,2369,3.065,2371,3.065,2373,4.753,2377,4.753,2379,4.505,2380,4.664,2382,3.065,2384,2.579,2385,2.639,2386,3.065,2388,3.065,2390,3.007,2391,3.065,2408,3.007,2409,6.079,2431,5.59,3110,3.327,4369,2.777,4370,3.37,4584,4.852,5862,3.128,5863,3.128,5864,3.128,5865,3.128,5866,3.128,5867,3.128,5868,3.128,5869,3.128,5870,3.128,7103,8.837,7112,2.817,7116,8.685,7117,5.227,7118,4.307,7119,5.227,7120,4.307,7121,3.604,7122,4.307,7123,5.227,7124,5.227,7125,7.844,7129,5.227,7131,7.514,7132,5.227,7133,4.249,7134,4.962,7135,4.001,7182,8.162,8994,5.59,9002,5.59,9007,3.279,9068,3.764,9072,3.978,9073,3.978,9091,3.764,9092,3.978,9096,3.978,9097,3.978,10403,3.978,11504,3.279,14687,4.303,14688,6.171,14689,6.675,14690,3.978,14691,6.675,14692,4.303,14693,4.303,14694,6.675,14695,4.303,14696,4.303,14697,4.303,14698,4.303,14699,4.303,14700,3.604,14701,4.303,14702,4.303,14703,4.303,14704,4.303,14705,4.303,14706,4.303,14707,4.303,14708,4.303,14709,4.303,14710,4.303,14711,4.303,14712,3.978,14713,4.303,14714,4.303,14715,4.303,14716,4.303,14717,4.303,14718,4.303,14719,4.303,14720,4.303,14721,4.303,14722,4.303,14723,4.303,14724,4.303,14725,4.303,14726,4.303,14727,4.303,14728,4.303,14729,4.303,14730,4.303,14731,4.303,14732,4.303,14733,4.303,14734,4.303,14735,4.303,14736,4.303,14737,4.303]],["title/injectables/LtiToolService.html",[105,0.91,14684,5.694]],["body/injectables/LtiToolService.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,8,1.346,27,0.459,29,0.873,30,0.001,31,0.624,32,0.151,33,0.539,35,1.078,36,2.607,47,0.867,95,0.156,101,0.015,103,0.001,104,0.001,105,1.491,107,2.148,112,2.68,116,3.787,127,1.116,187,1.288,215,2.844,216,1.647,217,1.159,227,0.924,347,2.459,450,3.66,4584,9.725,5345,7.197,5530,4.441,7116,8.283,7125,9.47,7182,6.224,11504,6.788,14684,9.332,14685,11.24,14688,10.301,14738,12.159,14739,8.909,14740,8.909,14741,11.143,14742,8.909,14743,8.909]],["title/interfaces/Mail.html",[334,0.731,1498,4.121]],["body/interfaces/Mail.html",[3,0.019,4,0.019,5,0.01,7,0.123,30,0.001,31,0.457,32,0.178,33,0.652,47,1.025,77,5.189,101,0.014,103,0.001,104,0.001,165,0.825,334,1.429,336,1.951,404,2.222,1482,7.828,1483,6.211,1484,8.672,1485,8.023,1486,6.211,1487,4.559,1488,7.828,1489,5.926,1490,6.211,1491,5.926,1492,8.672,1493,6.211,1494,9.166,1495,8.023,1496,8.023,1497,9.166,1498,7.924,1499,9.166,1500,9.166,1501,9.394,1502,9.394]],["title/interfaces/MailAttachment.html",[334,0.731,1484,5.055]],["body/interfaces/MailAttachment.html",[3,0.021,4,0.021,5,0.01,7,0.131,30,0.001,31,0.707,32,0.163,47,1.024,77,5.524,101,0.014,103,0.001,104,0.001,165,0.859,334,1.45,336,2.077,404,2.274,1482,8.148,1483,6.612,1484,9.381,1485,8.351,1486,9.615,1487,7.058,1488,8.148,1489,6.309,1490,6.612,1491,6.309,1492,8.931,1493,6.612,1494,8.148,1495,8.351,1496,8.351,1497,8.148,1498,6.643,1499,6.452,1500,6.452,1501,6.612,1502,6.612]],["title/interfaces/MailContent.html",[334,0.731,1492,5.055]],["body/interfaces/MailContent.html",[3,0.021,4,0.021,5,0.01,7,0.131,30,0.001,31,0.487,32,0.149,33,0.531,47,1.015,77,8.039,101,0.015,103,0.001,104,0.001,165,0.86,334,1.451,336,2.081,404,2.276,1482,9.389,1483,6.627,1484,8.939,1485,8.362,1486,6.627,1487,4.864,1488,9.389,1489,6.323,1490,6.627,1491,6.323,1492,9.389,1493,9.622,1494,8.159,1495,8.362,1496,8.362,1497,8.159,1498,6.652,1499,6.466,1500,6.466,1501,6.627,1502,6.627]],["title/modules/MailModule.html",[425,1.812,14744,5.324]],["body/modules/MailModule.html",[0,0.316,3,0.022,4,0.022,5,0.011,8,1.121,27,0.383,29,0.727,30,0.001,31,0.52,32,0.126,33,0.449,35,1.123,47,0.815,95,0.147,101,0.015,103,0.001,104,0.001,187,1.342,227,0.962,334,0.997,425,3.3,427,3.352,432,3.414,433,3.507,627,3.506,701,3.281,836,5.389,1297,6.745,1298,7.843,1301,8.227,1307,6.607,1312,7.091,1313,8.115,1314,7.373,1315,8.115,14744,9.697,14745,8.577,14746,11.303,14747,9.279,14748,10.003,14749,8.577,14750,8.577]],["title/interfaces/MailModuleOptions.html",[334,0.731,14746,5.947]],["body/interfaces/MailModuleOptions.html",[0,0.316,3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.155,47,0.964,95,0.147,101,0.015,103,0.001,104,0.001,165,0.895,187,1.342,227,0.962,334,0.997,336,2.221,425,3.3,432,3.414,433,3.507,627,2.847,836,5.389,1298,6.368,1301,7.592,1307,6.607,1312,8.235,1313,8.115,1314,8.563,1315,8.115,14744,8.948,14745,8.577,14746,10.831,14748,10.003,14749,8.577,14750,8.577]],["title/injectables/MailService.html",[105,0.91,14748,5.493]],["body/injectables/MailService.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,8,1.329,27,0.454,29,0.862,30,0.001,31,0.616,32,0.15,33,0.532,35,1.057,36,2.36,47,0.785,95,0.155,101,0.015,103,0.001,104,0.001,105,1.472,107,2.106,111,2.206,112,2.656,116,3.753,127,1.379,163,3.387,187,1.263,216,2.035,221,2.022,334,0.938,369,1.939,701,4.26,839,4.165,1312,5.421,1314,5.636,1336,9.626,1337,7.056,1338,9.896,1351,6.103,1352,5.636,1380,7.64,1383,7.64,1498,7.667,1667,9.217,14748,8.89,14751,8.075,14752,11.064,14753,8.735,14754,8.735,14755,8.075,14756,8.075,14757,8.075]],["title/interfaces/MailServiceOptions.html",[334,0.731,14752,5.947]],["body/interfaces/MailServiceOptions.html",[0,0.312,3,0.022,4,0.022,5,0.011,7,0.139,30,0.001,32,0.154,36,1.967,47,0.961,95,0.158,101,0.015,103,0.001,104,0.001,105,1.518,111,2.275,112,2.022,116,2.857,127,1.149,163,2.823,165,0.889,187,1.327,216,2.098,221,2.123,334,0.985,336,2.195,369,2.036,701,3.243,839,4.374,1312,7.987,1314,8.305,1338,9.158,1351,6.409,1352,5.919,1380,8.023,1383,8.023,1498,6.877,1667,7.682,14748,7.41,14751,8.48,14752,10.775,14755,8.48,14756,8.48,14757,8.48]],["title/modules/ManagementModule.html",[425,1.812,14758,5.324]],["body/modules/ManagementModule.html",[0,0.225,3,0.016,4,0.016,5,0.008,30,0.001,95,0.178,101,0.011,103,0.001,104,0.001,187,0.955,217,1.474,347,1.335,425,2.795,427,2.385,428,2.566,429,2.642,430,2.631,431,2.619,432,4.376,433,2.495,438,5.763,442,3.659,443,2.587,444,2.525,447,4.348,449,4.493,801,3.835,802,4.799,1467,2.107,1507,7.524,1736,5.775,1878,6.121,2130,2.884,2131,3.227,2132,3.111,3104,2.991,3476,7.998,3481,8.173,3482,10.303,3489,4.613,3491,4.148,3493,6.103,3494,7.161,3804,10.303,3859,3.693,6422,7.524,7787,7.658,7792,9.634,7807,5.529,7826,9.176,7856,7.658,7860,9.938,8255,6.647,8844,4.613,9621,4.456,10344,7.658,10418,8.868,10576,7.912,10582,4.799,10592,4.799,10593,4.613,10649,4.799,11586,4.048,11669,6.103,11670,6.103,12245,5.529,12248,4.531,13290,5.775,13296,7.658,14758,11.109,14759,6.602,14760,6.602,14761,6.602,14762,6.602,14763,6.602,14764,6.602,14765,9.145,14766,6.602,14767,6.602,14768,6.602,14769,10.491,14770,5.529,14771,6.602]],["title/modules/ManagementServerModule.html",[425,1.812,14772,5.694]],["body/modules/ManagementServerModule.html",[0,0.346,3,0.018,4,0.018,5,0.009,30,0.001,32,0.105,47,0.549,87,3.864,95,0.171,96,2.776,99,1.285,101,0.019,103,0.001,104,0.001,187,1.114,217,1.002,227,0.798,234,1.25,381,2.561,398,2.269,425,3.43,427,2.782,428,2.992,429,3.081,430,3.068,431,3.055,432,2.834,433,2.91,442,4.06,443,3.017,444,2.945,449,4.786,461,1.761,511,3.891,627,2.363,701,2.723,731,3.042,778,5.197,885,5.127,953,5.04,1187,3.672,1188,3.628,1189,3.628,1190,3.838,1267,5.116,1268,4.721,1298,5.285,1301,6.741,1852,3.251,2075,4.232,2644,4.128,4865,5.285,5511,5.197,10577,7.543,10578,7.543,10579,5.597,10580,7.73,10581,5.483,10583,7.543,10589,7.376,10590,7.376,10591,7.376,10593,5.38,10604,9.19,10605,5.724,10606,5.724,10607,5.597,10645,5.38,10647,7.543,10649,5.597,10650,6.22,10651,5.597,10652,6.22,10654,7.543,11784,5.724,14758,10.43,14772,10.78,14773,7.7,14774,7.7,14775,7.118,14776,7.118,14777,6.735,14778,6.735,14779,6.449]],["title/modules/ManagementServerTestModule.html",[425,1.812,14779,5.694]],["body/modules/ManagementServerTestModule.html",[0,0.335,3,0.017,4,0.017,5,0.009,8,0.886,27,0.302,29,0.575,30,0.001,31,0.411,32,0.134,33,0.355,35,0.888,47,0.523,59,2.285,87,3.681,95,0.169,96,2.688,99,1.224,101,0.018,103,0.001,104,0.001,187,1.061,217,0.955,227,0.761,234,1.191,381,2.44,398,2.161,425,3.383,427,2.65,428,2.851,429,2.935,430,2.923,431,2.91,432,2.699,433,2.772,442,3.931,443,2.874,444,2.805,449,4.694,461,1.678,511,3.706,627,3.015,701,3.474,731,2.898,778,4.951,885,4.964,953,4.801,1187,3.498,1188,3.457,1189,3.457,1190,3.657,1267,4.874,1268,4.498,1297,5.332,1298,6.743,1301,7.36,1852,3.097,2075,4.032,2644,3.933,4865,5.035,5511,4.951,10577,7.303,10578,7.303,10579,5.332,10580,7.485,10581,5.224,10583,7.303,10589,7.142,10590,7.142,10591,7.142,10593,5.125,10604,9.015,10605,5.453,10606,5.453,10607,5.332,10645,8.619,10647,8.796,10649,5.332,10650,5.926,10651,5.332,10652,5.926,10654,7.303,11784,5.453,14758,10.32,14772,6.143,14775,9.082,14776,6.781,14777,6.416,14778,6.416,14779,11.036,14780,7.336,14781,7.336,14782,7.336]],["title/entities/Material.html",[380,1.445,11865,4.328]],["body/entities/Material.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.098,27,0.543,30,0.001,32,0.179,33,0.544,47,1.015,95,0.116,96,1.777,101,0.019,103,0.001,104,0.001,150,3.894,165,0.708,240,4.444,334,1.117,364,2.399,379,2.548,380,1.921,381,2.161,398,1.914,399,3.587,400,2.866,404,1.171,405,1.731,406,2.113,460,3.736,1397,3.765,1843,3.079,2747,3.353,3580,4.579,3609,4.135,6196,3.511,6541,4.384,6542,4.252,7136,4.082,11865,5.756,11868,4.252,11876,7.471,12095,7.08,12096,5.44,12097,8.36,12098,9.084,12099,9.084,12100,9.084,12101,9.084,12102,9.084,12103,9.084,12104,5.44,12105,4.722,12106,5.44,12107,5.44,12108,5.247,12109,5.44,12110,5.44,12111,5.44,12112,5.44,12113,5.44,12114,5.44,12115,5.44,12116,5.44,12117,5.44,12118,5.44,12119,5.44,12120,5.44,12121,5.44,14783,6.496,14784,6.496,14785,6.496,14786,6.496,14787,6.496,14788,6.496,14789,6.496,14790,6.496,14791,6.496,14792,6.496]],["title/classes/MaterialFactory.html",[0,0.232,14793,6.286]],["body/classes/MaterialFactory.html",[0,0.173,2,0.566,3,0.012,4,0.012,5,0.006,7,0.077,8,0.915,27,0.534,29,1.024,30,0.001,31,0.698,32,0.18,33,0.603,34,1.54,35,1.483,47,0.54,55,2.511,59,3.343,95,0.097,101,0.008,103,0,104,0,127,0.636,138,3.308,144,3.296,148,1.563,150,2.622,165,0.593,185,4.845,216,1.4,217,0.661,227,0.527,319,3.581,359,2.64,366,2.841,379,2.432,380,2.281,381,2.519,404,1.364,538,3.412,596,3.95,627,2.323,660,7.294,661,4.73,662,5.663,665,4.274,666,5.663,667,5.805,668,4.274,669,4.274,670,4.274,671,4.198,672,4.639,673,5.109,674,6.586,675,5.95,676,7.122,677,2.893,682,2.867,683,4.274,684,2.893,685,5.296,686,5.468,687,4.277,688,5.142,689,4.235,690,2.867,691,2.702,692,4.204,693,2.791,694,2.745,695,2.867,696,5.217,697,2.893,698,5.019,699,2.867,700,7.036,701,4.237,702,6.763,703,2.893,704,4.483,705,2.867,706,2.893,707,2.867,708,2.893,709,2.867,710,3.233,711,3.012,712,2.867,713,6.239,714,2.893,715,2.867,716,4.274,717,3.996,718,4.274,719,2.893,720,2.768,721,2.745,722,2.265,723,2.867,724,2.867,725,2.867,726,2.893,727,2.893,728,1.942,729,2.867,730,2.893,731,2.992,732,2.867,733,2.893,736,3.012,1125,5.368,1397,1.701,3580,3.083,11865,6.832,11876,3.374,12095,3.977,12097,3.776,12098,4.103,12099,4.103,12100,4.103,12101,4.103,14793,8.369,14794,5.079,14795,4.695,14796,5.079]],["title/injectables/MaterialsRepo.html",[105,0.91,14797,6.286]],["body/injectables/MaterialsRepo.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.123,8,1.272,10,4.25,12,4.823,18,5.321,26,2.233,27,0.526,29,0.966,30,0.001,31,0.691,32,0.168,33,0.596,34,1.387,35,1.493,36,2.501,40,3.935,49,4.143,95,0.15,101,0.014,103,0.001,104,0.001,105,1.409,107,1.965,112,2.882,187,1.179,227,0.845,380,1.732,381,3.503,404,1.898,596,3.761,692,5.168,877,7.806,883,4.468,884,4.962,885,5.894,908,4.998,909,5.059,910,4.998,911,5.059,912,5.805,913,4.998,914,5.059,915,4.519,3675,5.595,11865,6.703,14795,7.536,14797,9.735,14798,8.152,14799,8.152]],["title/interfaces/Meta.html",[334,0.731,11329,5.055]],["body/interfaces/Meta.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,32,0.176,34,1.464,47,1.008,55,2.796,101,0.022,103,0.001,104,0.001,163,2.648,165,0.854,334,1.447,336,2.059,347,1.74,564,4.612,692,3.215,1178,5.552,1182,8.491,1216,4.929,3090,3.722,4511,5.808,6473,4.998,11324,6.397,11325,6.556,11326,6.397,11327,6.397,11328,6.556,11329,9.352,11330,9.585,11331,9.585,11332,6.397,11333,6.556,11334,6.255,11335,6.397,11336,6.556,11337,6.397]],["title/classes/MetadataTypeMapper.html",[0,0.232,14800,6.286]],["body/classes/MetadataTypeMapper.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.383,29,0.727,30,0.001,31,0.52,32,0.155,33,0.449,35,1.123,95,0.159,99,1.548,101,0.015,103,0.001,104,0.001,187,1.342,208,3.466,217,1.487,227,0.962,234,1.855,305,2.643,627,3.8,3228,7.274,3364,6.449,6517,10.003,6595,7.495,6614,8.358,10562,7.77,12253,8.869,12256,6.164,12257,6.073,14800,10.563,14801,11.427,14802,8.115,14803,11.427,14804,11.427,14805,8.115,14806,8.577]],["title/classes/MigrationAlreadyActivatedException.html",[0,0.232,13734,5.493]],["body/classes/MigrationAlreadyActivatedException.html",[0,0.408,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.414,29,0.593,30,0.001,31,0.424,32,0.103,33,0.366,35,0.916,47,0.889,52,5.334,55,1.631,59,2.358,95,0.129,101,0.02,103,0.001,104,0.001,127,0.948,187,1.095,192,3.354,214,3.778,227,1.167,383,4.955,404,2.246,461,2.574,795,6.151,1127,4.819,1216,4.409,1464,5.741,1465,6.434,1467,2.416,1469,6.344,2643,5.827,4476,5.017,8288,6.481,8289,6.738,8369,6.081,8389,10.349,12927,5.195,13721,6.115,13722,9.424,13723,5.627,13724,10.07,13725,10.034,13727,10.034,13729,6.34,13730,6.34,13731,6.115,13732,8.402,13733,5.503,13734,8.104,14807,7.57,14808,7.57]],["title/classes/MigrationBody.html",[0,0.232,13935,5.947]],["body/classes/MigrationBody.html",[0,0.359,2,0.911,3,0.019,4,0.019,5,0.01,7,0.123,27,0.481,30,0.001,32,0.159,33,0.633,52,6.201,95,0.135,101,0.014,103,0.001,104,0.001,165,0.826,192,3.898,347,2.646,364,2.127,368,5.126,369,2.903,370,4.309,371,3.607,373,6.615,374,2.607,376,1.869,379,2.646,467,3.237,471,5.002,728,5.003,2537,6.901,5440,9.779,7935,6.712,9777,8.076,11843,7.839,13935,9.223,13998,8.897,13999,8.897,14000,8.897,14809,8.169,14810,8.169,14811,8.169,14812,8.169]],["title/injectables/MigrationCheckService.html",[105,0.91,14813,5.694]],["body/injectables/MigrationCheckService.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,8,1.206,26,2.533,27,0.412,29,0.782,30,0.001,31,0.559,32,0.136,33,0.483,35,0.91,36,2.141,47,0.912,48,5.629,95,0.16,99,1.254,101,0.013,103,0.001,104,0.001,105,1.335,107,1.811,111,2.248,112,2.471,127,1.25,129,7.413,132,7.234,167,4.125,187,1.087,189,5.534,191,4.165,192,3.341,216,2.073,217,1.555,221,2.595,227,1.163,347,1.52,355,4.505,371,2.072,450,3.086,461,1.719,4476,4.999,4489,6.441,4491,6.957,4501,7.421,4593,3.796,4737,7.426,7074,5.229,8443,4.992,8452,7.044,9646,6.069,14122,6.292,14813,8.36,14814,11.211,14815,7.514,14816,9.229,14817,10.216,14818,7.514,14819,9.983,14820,7.514,14821,6.572,14822,8.064,14823,6.946,14824,6.572,14825,7.514,14826,9.983,14827,6.946]],["title/classes/MigrationDto.html",[0,0.232,13951,4.842]],["body/classes/MigrationDto.html",[0,0.338,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,27,0.491,29,0.777,30,0.001,31,0.555,32,0.162,33,0.48,47,0.849,101,0.017,103,0.001,104,0.001,127,1.242,165,0.932,355,5.123,2170,8.226,2186,8.306,4476,5.684,13951,9.628,14828,9.918,14829,11.9,14830,11.9,14831,9.169,14832,9.918]],["title/injectables/MigrationMapper.html",[105,0.91,13915,5.694]],["body/injectables/MigrationMapper.html",[0,0.316,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.383,29,0.727,30,0.001,31,0.52,32,0.126,33,0.449,35,1.123,95,0.159,100,3.107,101,0.015,103,0.001,104,0.001,105,1.529,107,2.237,116,3.857,187,1.342,217,1.208,227,0.962,234,1.506,982,4.625,1016,4.012,9777,7.479,13915,9.57,13943,10.439,13944,7.77,13945,8.115,13946,10.72,13998,7.069,13999,7.069,14000,7.069,14119,7.77,14121,7.77,14833,9.279,14834,9.995,14835,9.995,14836,9.279,14837,9.279,14838,9.279,14839,9.279,14840,9.279,14841,9.279]],["title/classes/MigrationMayBeCompleted.html",[0,0.232,14842,6.286]],["body/classes/MigrationMayBeCompleted.html",[0,0.31,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,27,0.465,29,0.712,30,0.001,31,0.509,32,0.124,33,0.44,35,1.1,52,4.309,59,2.831,95,0.117,101,0.015,103,0.001,104,0.001,127,1.139,163,2.798,192,2.709,214,3.557,215,2.901,216,1.681,227,0.943,347,2.482,795,5.573,1216,3.562,1464,5.651,1465,6.332,1467,2.901,1469,6.353,3264,5.509,4476,5.471,8288,6.379,8289,6.631,12182,8.919,12214,6.926,14842,10.43,14843,11.342,14844,8.403,14845,8.403,14846,8.403,14847,8.403,14848,8.403,14849,7.343]],["title/classes/MigrationMayNotBeCompleted.html",[0,0.232,14850,6.286]],["body/classes/MigrationMayNotBeCompleted.html",[0,0.31,2,1.016,3,0.022,4,0.022,5,0.011,7,0.138,8,1.365,27,0.466,29,0.714,30,0.001,31,0.51,32,0.124,33,0.441,35,1.103,52,4.319,59,2.838,95,0.117,101,0.015,103,0.001,104,0.001,127,1.141,163,2.804,192,2.715,214,3.562,215,2.908,216,1.685,227,0.945,347,2.484,1216,3.57,1464,5.656,1465,6.339,1467,2.908,1469,6.358,4476,5.476,8288,6.385,8289,6.638,12182,8.928,12214,6.941,14843,11.354,14844,8.422,14845,8.422,14846,8.422,14847,8.422,14848,8.422,14849,7.359,14850,10.445,14851,7.359]],["title/classes/MigrationResponse.html",[0,0.232,13946,5.493]],["body/classes/MigrationResponse.html",[0,0.25,2,0.818,3,0.017,4,0.017,5,0.009,7,0.111,27,0.524,29,0.575,30,0.001,31,0.411,32,0.188,33,0.645,52,6.392,83,4.363,95,0.094,101,0.012,103,0.001,104,0.001,127,0.919,165,0.77,185,2.851,347,1.987,364,2.247,375,4.699,376,1.678,379,2.796,467,2.578,1013,3.36,1403,6.559,2537,6.43,6251,6.527,7935,7.532,9777,8.487,10862,7.693,11843,7.303,13946,9.965,13962,8.593,13998,8.44,13999,8.44,14000,8.44,14119,9.277,14121,9.277,14852,7.336,14853,9.825,14854,9.082,14855,8.593,14856,7.336,14857,7.336,14858,7.336,14859,7.336,14860,6.781,14861,6.781,14862,6.781,14863,6.781,14864,6.781,14865,6.781,14866,6.781,14867,6.781,14868,6.781,14869,6.781]],["title/classes/MissingSchoolNumberException.html",[0,0.232,13731,5.493]],["body/classes/MissingSchoolNumberException.html",[0,0.408,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.414,29,0.593,30,0.001,31,0.424,32,0.103,33,0.366,35,0.916,47,0.889,52,5.334,55,1.631,59,2.358,95,0.129,101,0.02,103,0.001,104,0.001,127,0.948,187,1.095,192,3.354,214,3.778,227,1.167,383,4.955,404,2.246,461,2.574,795,6.151,1127,4.819,1216,4.409,1464,5.741,1465,6.434,1467,2.416,1469,6.344,2643,5.827,4476,5.017,8288,6.481,8289,6.738,8369,6.081,8389,10.349,12927,5.195,13721,6.115,13722,9.424,13723,5.627,13724,10.07,13725,10.034,13727,10.034,13729,6.34,13730,6.34,13731,8.104,13732,8.402,13733,5.503,13734,6.115,14870,7.57,14871,7.57]],["title/classes/MissingToolParameterValueLoggableException.html",[0,0.232,202,5.947]],["body/classes/MissingToolParameterValueLoggableException.html",[0,0.22,2,0.72,3,0.015,4,0.015,5,0.008,7,0.097,8,1.087,27,0.527,29,0.878,30,0.001,31,0.361,32,0.181,33,0.501,35,1.09,47,0.894,55,1.39,95,0.151,101,0.011,103,0.001,104,0.001,108,6.021,111,1.805,127,1.128,136,7.139,140,6.447,144,1.775,163,1.986,165,0.705,187,0.933,194,4.224,199,2.439,200,2.804,201,3.284,202,7.873,204,3.805,209,3.898,210,4.224,214,2.838,216,2.48,217,0.84,227,0.669,286,9.582,290,6.921,298,7.049,364,2.148,404,1.622,406,2.099,558,3.096,564,2.366,596,3.726,1013,5.136,1016,2.266,1127,4.108,1142,4.801,1180,2.778,1216,4.394,1395,7.964,1396,5.905,1397,3.755,1398,6.598,1402,4.165,1403,3.578,1404,4.165,1405,4.165,1406,4.165,1407,4.165,1408,4.165,1409,3.868,1410,3.643,1416,4.055,1464,4.774,1465,5.349,1467,2.06,1469,5.553,2578,2.878,3267,3.61,3714,5.214,3849,4.918,8288,5.389,8289,5.602,8738,4.108,8745,3.787,8746,3.957,8900,5.645,10697,5.967,14872,10.365,14873,10.365,14874,6.454,14875,6.454,14876,6.454,14877,6.454,14878,5.405,14879,6.454,14880,9.002,14881,6.454,14882,6.454,14883,6.454]],["title/modules/MongoMemoryDatabaseModule.html",[425,1.812,10645,4.751]],["body/modules/MongoMemoryDatabaseModule.html",[0,0.255,3,0.018,4,0.018,5,0.009,8,0.904,27,0.411,29,0.586,30,0.001,31,0.419,32,0.135,33,0.362,35,1.205,36,2.135,59,2.332,95,0.164,96,2.724,99,1.249,101,0.012,103,0.001,104,0.001,111,1.501,112,2.195,187,1.083,208,2.797,214,2.36,217,1.616,221,1.733,227,1.16,369,1.661,381,2.49,398,2.205,425,2.982,427,2.704,433,2.829,449,2.97,627,3.056,701,4.391,731,2.957,778,5.052,837,5.331,839,3.57,845,5.441,846,5.331,953,4.899,1187,3.57,1188,3.527,1189,3.527,1190,3.731,1267,4.973,1268,4.59,1297,5.441,1298,6.835,1301,7.925,4865,6.835,6833,4.703,6885,4.899,7804,7.587,10579,8.671,10581,5.331,10583,7.403,10645,7.818,10647,8.867,10651,9.283,14884,11.191,14885,11.191,14886,7.486,14887,7.486,14888,10.863,14889,7.486,14890,9.958,14891,7.486,14892,7.486,14893,7.486,14894,9.958,14895,7.486,14896,6.047,14897,7.486,14898,6.92,14899,7.486,14900,7.486,14901,9.958,14902,7.486]],["title/classes/MongoPatterns.html",[0,0.232,13012,5.694]],["body/classes/MongoPatterns.html",[0,0.32,2,1.049,3,0.022,4,0.022,5,0.011,7,0.142,27,0.388,30,0.001,72,5.221,101,0.016,103,0.001,104,0.001,144,2.588,165,0.903,319,2.812,571,7.241,574,5.06,627,3.823,777,9.025,1948,6.908,1959,6.281,4198,8.052,5429,8.499,8244,9.31,10297,10.654,11350,8.781,13012,9.652,14903,9.409,14904,12.459,14905,11.525,14906,11.525,14907,9.409,14908,11.525,14909,9.652,14910,11.525,14911,11.525,14912,10.654]],["title/classes/MoveCardBodyParams.html",[0,0.232,3997,5.947]],["body/classes/MoveCardBodyParams.html",[0,0.39,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.472,30,0.001,32,0.156,47,0.816,55,2.465,95,0.147,101,0.016,103,0.001,104,0.001,165,0.896,364,2.084,368,4.484,369,2.87,370,4.261,371,3.567,374,2.968,376,2.127,467,3.252,1000,4.659,3469,8.149,3470,6.623,3475,6.76,3997,10.009,4045,9.706,6978,8.597,14913,11.459,14914,12.396,14915,8.597,14916,9.3,14917,8.134,14918,9.3]],["title/classes/MoveColumnBodyParams.html",[0,0.232,4926,5.947]],["body/classes/MoveColumnBodyParams.html",[0,0.385,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.467,30,0.001,32,0.154,34,1.925,47,0.807,55,2.437,95,0.145,101,0.015,103,0.001,104,0.001,165,0.886,364,2.061,368,4.817,369,2.852,370,4.233,371,3.544,374,2.915,376,2.089,379,2.069,467,3.226,1000,4.607,2627,4.755,2702,5.098,3469,8.057,3470,6.503,3475,6.638,3795,5.358,4045,9.627,4926,9.896,14913,11.366,14917,7.987,14919,9.131,14920,12.295,14921,9.131,14922,9.131]],["title/classes/MoveContentElementBody.html",[0,0.232,8204,5.947]],["body/classes/MoveContentElementBody.html",[0,0.388,2,1.03,3,0.022,4,0.022,5,0.011,7,0.14,27,0.47,30,0.001,32,0.155,47,0.813,55,2.454,95,0.146,101,0.015,103,0.001,104,0.001,165,0.893,364,2.075,368,4.465,369,2.863,370,4.25,371,3.558,374,2.948,376,2.113,467,3.242,1000,4.639,2303,5.009,3469,8.114,3470,6.577,3475,6.714,4045,9.677,6983,7.735,8204,9.966,14915,8.538,14917,8.078,14923,12.358,14924,12.358,14925,9.236,14926,9.236]],["title/classes/MoveElementParams.html",[0,0.232,7368,5.694]],["body/classes/MoveElementParams.html",[0,0.416,2,1.002,3,0.021,4,0.021,5,0.011,7,0.136,27,0.462,30,0.001,32,0.152,55,2.63,72,4.072,95,0.144,100,3.01,101,0.019,103,0.001,104,0.001,165,0.878,364,2.041,374,2.869,375,4.268,376,2.056,379,2.037,467,3.45,471,4.542,1166,4.312,1271,5.722,2385,5.511,2553,3.831,2767,5.914,3469,9.101,3470,6.401,3475,8.874,3833,6.169,5496,7.528,5836,6.828,6983,7.528,7363,5.648,7368,9.383,7372,6.401,7489,7.261,8655,8.774,14927,11.285,14928,11.501,14929,8.989,14930,8.989]],["title/classes/MoveElementPositionParams.html",[0,0.232,14928,5.947]],["body/classes/MoveElementPositionParams.html",[0,0.404,2,0.943,3,0.02,4,0.02,5,0.01,7,0.128,27,0.49,30,0.001,32,0.161,33,0.522,55,2.844,72,4.886,95,0.138,100,3.611,101,0.018,103,0.001,104,0.001,165,0.845,364,2.162,374,2.7,375,4.108,376,1.935,379,2.444,467,3.388,471,4.372,1166,5.174,1271,7.557,2385,6.612,2553,4.597,2767,6.598,3466,9.97,3469,8.903,3470,6.025,3475,8.63,3833,7.402,5496,9.032,5836,6.64,6983,7.085,7363,6.776,7368,7.085,7372,8.454,7489,9.59,14927,11.557,14928,10.935,14931,8.46,14932,8.46,14933,8.46,14934,8.46]],["title/entities/News.html",[380,1.445,6858,3.873]],["body/entities/News.html",[0,0.314,3,0.01,4,0.024,5,0.005,7,0.16,9,3.153,26,1.957,27,0.509,30,0.001,31,0.517,32,0.174,33,0.551,34,1.138,47,0.903,83,2.507,95,0.146,96,2.242,101,0.017,103,0,104,0,144,1.187,165,0.782,188,2.472,192,3.285,208,1.613,227,0.448,234,1.33,240,3.71,319,1.29,334,0.464,364,2.177,369,2.652,370,3.631,380,2.122,381,1.436,386,4.668,396,3.381,398,1.272,399,2.655,400,1.905,404,1.663,405,2.459,406,1.404,461,2.521,571,5.148,574,3.597,595,1.446,617,4.542,627,1.325,672,4.199,731,3.237,769,4.858,843,2.953,844,5.02,854,4.632,1031,2.568,1187,3.907,1188,4.349,1189,3.861,1190,4.084,1191,4.465,1397,3.538,1415,4.103,1843,4.375,1849,4.112,1865,3.732,1941,4.26,1959,2.353,2303,4.283,2577,4.625,2632,4.866,2646,2.533,2702,5.64,2747,2.228,3427,4.593,3429,4.26,3430,4.675,3432,3.074,3433,3.016,3434,3.209,3448,2.647,3584,2.914,3609,2.748,4205,2.255,4297,3.289,4298,3.138,4989,3.753,5057,3.209,5072,4.864,5618,7.26,6216,3.71,6434,3.016,6521,2.647,6523,2.415,6544,2.588,6751,2.914,6757,2.679,6844,3.209,6845,3.487,6847,4.056,6848,3.487,6849,6.861,6850,5.956,6851,3.487,6852,8.274,6853,6.132,6854,5.398,6855,6.091,6856,6.861,6857,6.753,6858,7.549,6859,5.405,6860,6.573,6861,5.405,6862,5.098,6863,5.098,6864,5.956,6865,5.405,6866,3.289,6867,3.289,6868,3.487,6869,3.209,6870,3.487,6871,2.56,6872,2.647,6873,3.289,6874,3.487,6875,3.487,6876,6.416,6877,3.487,6878,6.619,6879,3.487,6880,3.487,6881,5.098,6882,3.289,6883,5.725,6884,3.381,6885,4.38,6886,3.289,6887,3.138,6888,3.289,6889,3.487,14935,4.317,14936,4.317,14937,4.317,14938,4.317,14939,4.317,14940,4.317,14941,4.317,14942,4.317,14943,4.317,14944,4.317,14945,4.317,14946,4.317]],["title/controllers/NewsController.html",[481,2.611,14947,5.947]],["body/controllers/NewsController.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.923,10,4.355,27,0.445,29,0.845,30,0.001,31,0.604,32,0.147,33,0.522,34,1.3,35,1.306,36,2.682,95,0.15,100,3.92,101,0.009,103,0,104,0,112,2.91,137,5.682,165,0.599,185,4.394,187,0.744,192,3.009,215,1.642,216,0.951,217,1.628,221,2.497,227,1.119,234,0.835,264,3.212,277,4.355,364,1.965,376,1.177,380,1.624,447,2.132,461,2.751,469,2.258,481,1.975,483,2.453,491,6.542,494,4.581,513,6.799,529,3.965,543,4.641,552,3.319,555,2.674,556,2.736,561,2.758,843,3.373,883,4.284,1016,2.684,1028,7.055,1184,4.237,1804,6.12,2908,7.4,2925,6.467,2929,5.246,2930,2.758,3429,4.866,3743,6.331,4533,4.743,5022,4.866,5427,6.175,5880,4.44,6612,6.052,6858,7.666,6898,7.066,7031,8.156,7088,3.919,10682,8.156,12793,4.308,14138,4.308,14144,4.308,14947,6.686,14948,5.144,14949,7.143,14950,5.144,14951,5.144,14952,10.938,14953,7.644,14954,5.144,14955,4.755,14956,5.144,14957,7.066,14958,5.144,14959,7.644,14960,5.144,14961,7.644,14962,5.144,14963,8.456,14964,7.644,14965,5.144,14966,4.155,14967,4.499,14968,7.368,14969,4.755,14970,4.155,14971,4.155,14972,4.755,14973,5.144,14974,4.755,14975,4.755,14976,4.755,14977,8.832,14978,4.499,14979,4.755,14980,4.755,14981,4.755,14982,4.755,14983,5.144,14984,5.144,14985,5.144,14986,5.144,14987,5.144,14988,7.644,14989,5.144]],["title/classes/NewsCrudOperationLoggable.html",[0,0.232,14990,5.947]],["body/classes/NewsCrudOperationLoggable.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,26,2.667,27,0.449,29,0.674,30,0.001,31,0.482,32,0.117,33,0.416,35,1.042,39,3.387,95,0.162,99,1.436,101,0.014,103,0.001,104,0.001,111,2.399,127,1.365,163,2.648,214,3.437,216,2.213,227,0.892,415,4.651,1216,3.371,1464,5.511,1465,6.176,1467,2.746,1469,6.229,2451,10.162,6858,7.837,10709,9.585,14966,6.951,14967,7.526,14990,9.535,14991,11.966,14992,8.605,14993,8.605,14994,11.63,14995,8.605,14996,8.605,14997,7.955,14998,7.955,14999,8.605,15000,8.605]],["title/classes/NewsListResponse.html",[0,0.232,14970,5.493]],["body/classes/NewsListResponse.html",[0,0.265,2,0.587,3,0.012,4,0.027,5,0.006,7,0.08,27,0.449,29,0.412,30,0.001,31,0.518,32,0.175,33,0.527,34,1.94,47,0.863,55,2.856,56,5.471,59,2.422,70,5.647,83,2.829,95,0.146,99,0.879,101,0.013,103,0,104,0,127,0.974,145,1.333,163,3.353,165,0.609,188,1.945,192,3.398,217,1.203,359,1.836,364,1.86,375,3.89,376,1.204,379,3.025,380,2.71,404,1.401,461,2.336,467,3.452,469,2.312,475,3.801,524,3.028,538,2.372,591,4.019,592,4.189,596,3.115,618,2.153,620,3.397,622,3.397,769,3.122,1007,7.233,1008,6.163,1009,4.43,1011,2.66,1013,4.235,1014,2.511,1015,2.945,1016,1.848,1017,3.678,1018,5.018,1019,4.517,1020,3.446,1021,2.8,1022,3.678,1023,3.678,1025,3.308,1026,2.919,1031,2.437,1184,2.919,1397,3.419,1695,3.351,1770,3.058,1849,5.125,1865,3.542,2303,4.14,2412,3.351,2702,5.315,2747,2.717,2884,4.136,2885,4.136,2889,2.607,2925,3.156,3448,3.228,3502,3.914,4298,3.827,4353,7.744,4533,3.267,4618,3.614,5618,6.722,6543,3.267,6850,5.018,6853,6.143,6854,4.998,6855,3.914,6856,6.874,6857,5.483,6858,7.266,6867,4.011,6873,4.011,6883,3.678,7035,6.46,7039,3.351,7040,4.409,7041,4.011,7044,4.95,7047,3.827,9934,3.914,12466,4.253,14970,6.282,14971,9.781,15001,4.867,15002,5.265,15003,5.265,15004,6.282,15005,6.282,15006,7.47,15007,7.189,15008,7.189,15009,4.605,15010,7.189,15011,4.867,15012,4.867,15013,4.123,15014,4.867,15015,4.605,15016,6.802]],["title/classes/NewsMapper.html",[0,0.232,14966,5.493]],["body/classes/NewsMapper.html",[0,0.208,2,0.683,3,0.014,4,0.021,5,0.007,7,0.092,8,1.048,27,0.477,29,0.906,30,0.001,31,0.648,32,0.157,33,0.559,34,1.475,35,1.4,95,0.154,99,1.022,100,4.224,101,0.01,103,0,104,0,163,2.669,185,3.37,192,3.001,217,1.642,227,1.199,234,0.994,461,1.4,529,3.769,591,2.66,592,2.773,627,4.166,975,4.807,982,3.051,1397,3.372,1466,8.809,1467,1.954,1849,3.072,2303,4.083,2702,4.936,6850,6.499,6853,6.691,6854,4.687,6856,4.55,6857,6.496,6858,7.412,7031,8.85,7035,7.654,7394,8.017,10682,8.85,10684,4.944,11930,8.136,11937,8.435,11938,8.85,14963,9.175,14966,7.005,14971,8.85,15017,6.121,15018,8.672,15019,8.672,15020,8.672,15021,8.672,15022,8.672,15023,6.121,15024,8.672,15025,6.121,15026,8.672,15027,6.121,15028,8.672,15029,6.121,15030,8.672,15031,6.121,15032,5.354,15033,10.072,15034,5.354,15035,5.354,15036,6.121,15037,6.121,15038,6.121,15039,8.672,15040,6.121,15041,6.121,15042,5.658,15043,6.121,15044,6.121,15045,8.017,15046,8.017,15047,6.121,15048,6.121,15049,5.658,15050,6.121,15051,6.121,15052,6.121,15053,8.672,15054,6.121,15055,6.121,15056,6.121,15057,6.121,15058,8.672,15059,8.672,15060,6.121,15061,6.121,15062,6.121]],["title/modules/NewsModule.html",[425,1.812,15063,5.493]],["body/modules/NewsModule.html",[0,0.289,3,0.02,4,0.02,5,0.01,30,0.001,95,0.172,101,0.014,103,0.001,104,0.001,187,1.226,425,3.167,427,3.063,428,3.295,429,3.392,430,3.378,431,3.364,432,4.373,433,4.491,438,6.189,442,4.321,443,3.322,444,3.242,447,4.476,449,4.285,450,3.482,1467,2.706,1878,7.14,2725,3.841,14947,10.394,14968,11.302,14969,7.837,15063,11.353,15064,8.478,15065,8.478,15066,8.478,15067,8.478,15068,10.671,15069,8.478,15070,10.394,15071,8.478,15072,8.478,15073,8.478]],["title/injectables/NewsRepo.html",[105,0.91,15068,5.493]],["body/injectables/NewsRepo.html",[0,0.159,3,0.011,4,0.011,5,0.006,7,0.071,8,0.858,10,2.867,12,3.254,18,3.59,26,2.536,27,0.503,29,0.915,30,0.001,31,0.654,32,0.163,33,0.565,34,1.463,35,1.414,36,2.66,40,2.253,49,2.795,59,2.679,95,0.14,96,1.277,98,2.767,99,0.779,101,0.008,103,0,104,0,105,0.95,107,1.125,111,1.725,112,2.922,144,1.284,165,0.556,187,0.675,192,3.248,208,1.744,217,1.614,221,2.769,227,1.073,234,1.154,264,4.348,277,3.472,319,1.395,379,1.058,380,0.992,381,2.363,398,1.375,404,1.28,529,3.088,538,3.876,596,2.933,692,4.634,701,4.547,795,5.895,806,3.502,877,6.649,883,3.014,884,3.348,885,4.346,908,2.862,909,2.896,910,2.862,911,2.896,912,3.324,913,2.862,914,2.896,915,2.587,919,3.556,964,3.203,1041,5.378,2144,4.01,2394,5.701,2702,5.391,3429,6.121,3432,6.847,3811,5.739,4140,3.055,4659,3.101,4661,5.075,5406,2.896,5618,5.165,5880,4.127,6153,4.876,6216,6.042,6612,4.258,6844,6.395,6854,3.84,6858,7.453,6882,6.554,6888,6.554,6902,7.396,6912,5.281,7810,2.862,8050,5.165,9573,8.665,10162,6.568,10176,6.568,10686,3.77,12942,8.41,15068,5.739,15074,4.667,15075,8.602,15076,7.105,15077,8.602,15078,7.105,15079,7.105,15080,9.153,15081,4.667,15082,4.667,15083,4.667,15084,7.105,15085,4.667,15086,9.615,15087,4.667,15088,4.667,15089,4.667,15090,7.524,15091,7.105,15092,4.667,15093,9.615,15094,7.105,15095,4.667,15096,4.667,15097,7.105,15098,4.667,15099,4.667,15100,7.105,15101,7.105,15102,4.667,15103,4.667,15104,4.667,15105,8.602,15106,4.667,15107,4.667,15108,4.667]],["title/classes/NewsResponse.html",[0,0.232,14971,5.493]],["body/classes/NewsResponse.html",[0,0.232,2,0.492,3,0.01,4,0.028,5,0.005,7,0.067,27,0.534,29,0.346,30,0.001,31,0.565,32,0.182,33,0.537,34,2.081,47,0.924,55,1.789,56,3.265,70,3.37,83,3.261,95,0.137,99,0.736,101,0.011,103,0,104,0,127,0.852,163,2.094,165,0.533,188,2.513,192,3.582,217,1.081,359,2.372,364,2.339,375,3.556,376,1.009,379,3.013,380,2.852,404,0.795,461,2.541,467,3.336,469,1.937,475,4.06,524,3.914,538,3.066,591,4.385,592,4.57,618,1.804,620,2.847,622,2.847,769,2.616,966,2.245,1007,4.172,1008,2.384,1009,2.513,1013,5.505,1025,2.772,1026,2.446,1031,2.603,1184,3.772,1397,3.719,1403,3.772,1695,2.808,1770,3.952,1849,5.574,1865,4.253,2303,4.503,2412,4.331,2702,5.595,2747,2.277,2883,2.887,2884,4.966,2885,4.966,2888,2.674,2889,3.37,2925,4.078,3448,2.705,3502,5.058,4298,3.207,4353,6.956,4533,4.223,4618,4.67,5618,7.333,6159,4.078,6543,2.738,6850,5.36,6853,6.702,6854,5.452,6855,3.28,6856,7.499,6857,5.981,6858,7.647,6867,3.361,6873,3.361,6883,3.082,7035,7.048,7039,4.331,7040,5.699,7041,5.184,7044,5.943,7047,4.946,9934,3.28,12466,3.564,14970,3.564,14971,9.266,15001,4.078,15004,6.71,15005,6.71,15006,8.149,15007,7.679,15008,7.679,15009,3.859,15010,7.679,15011,4.078,15012,4.078,15013,3.455,15014,4.078,15015,5.952,15016,8.166,15109,4.412,15110,4.412,15111,4.412,15112,4.412,15113,4.412,15114,4.412,15115,4.412,15116,4.412,15117,4.412,15118,4.412,15119,4.412,15120,4.412,15121,4.412,15122,4.412,15123,4.412,15124,4.412]],["title/classes/NewsScope.html",[0,0.232,15090,5.947]],["body/classes/NewsScope.html",[0,0.216,2,0.706,3,0.015,4,0.015,5,0.008,7,0.096,8,1.073,26,2.358,27,0.533,29,0.871,30,0.001,31,0.623,32,0.169,33,0.538,35,1.47,83,2.718,95,0.15,96,1.732,99,1.057,101,0.011,103,0.001,104,0.001,111,2.434,144,1.742,145,1.604,148,1.949,165,0.696,217,1.335,227,1.215,234,1.442,247,2.481,277,5.289,319,1.893,347,2.075,398,1.866,404,1.601,529,4.834,596,3.573,905,2.637,1750,2.809,1857,4.825,1944,7.633,2394,6.944,2702,2.853,3635,5.854,3637,5.115,5991,5.995,5992,5.995,5993,5.995,5998,5.995,5999,5.995,6000,4.346,6001,4.274,6002,4.346,6003,4.346,6012,4.274,6013,5.995,6014,4.346,6015,4.274,6016,4.346,6017,4.274,6018,7.506,6216,5.687,6853,5.901,6854,3.423,6857,3.755,6858,5.06,7810,3.883,9573,5.303,9578,5.854,9589,4.825,10208,5.115,10217,5.539,10224,5.539,13037,7.175,13040,8.211,15080,8.984,15090,11.461,15125,10.827,15126,8.883,15127,11.122,15128,8.883,15129,11.122,15130,8.883,15131,6.333,15132,8.883,15133,6.333,15134,5.854,15135,6.333,15136,6.333,15137,6.333,15138,6.333,15139,6.333,15140,6.333,15141,6.333]],["title/interfaces/NewsTargetFilter.html",[334,0.731,15080,5.493]],["body/interfaces/NewsTargetFilter.html",[3,0.024,4,0.024,5,0.012,7,0.153,26,2.821,30,0.001,32,0.164,95,0.13,99,1.688,101,0.017,103,0.001,104,0.001,165,0.943,334,1.087,336,2.421,2702,4.559,6850,8.587,6857,7.89,9577,11.639,15080,9.727,15125,9.353,15142,10.117]],["title/injectables/NewsUc.html",[105,0.91,14968,5.493]],["body/injectables/NewsUc.html",[0,0.112,3,0.008,4,0.008,5,0.004,7,0.05,8,0.652,10,2.179,25,4.723,26,2.88,27,0.454,29,0.862,30,0.001,31,0.617,32,0.153,33,0.532,34,1.685,35,1.439,36,2.55,39,3.544,47,0.489,59,1.682,83,2.424,95,0.127,98,1.956,99,0.551,101,0.006,103,0,104,0,105,0.722,107,0.795,111,2.416,112,2.859,116,3.754,127,0.676,144,1.885,145,1.736,167,2.523,185,4.158,187,0.477,192,0.983,217,1.62,221,2.969,227,1.142,234,0.877,247,1.293,264,4.997,277,4.172,284,2.919,319,2.612,347,1.387,379,0.748,450,1.355,461,1.235,575,4.109,595,1.808,627,2.104,701,3.503,728,2.622,731,1.303,843,3.025,883,2.291,1184,1.829,1187,1.573,1188,1.555,1189,1.555,1345,1.309,1467,1.053,1799,3.273,1849,5.877,1884,3.705,1885,6.635,1941,3.437,2035,1.783,2356,4.069,2451,2.665,2702,3.938,2725,1.495,2736,5.186,2925,3.237,3090,2.336,3282,2.073,4205,2.946,4431,2.073,4514,3.925,6612,1.977,6850,5.112,6853,6.868,6854,1.783,6857,6.528,6858,7.61,6902,4.802,6974,2.583,7035,6.921,7047,2.398,8807,5.368,9547,4.992,9554,4.992,9573,8.296,9577,4.723,10684,7.06,11930,6.4,11937,6.635,11938,8.002,12500,2.583,12788,4.723,13406,2.886,13407,2.886,14968,4.362,14978,4.723,14990,2.886,14994,3.05,14997,3.05,15009,2.886,15042,3.05,15045,7.324,15046,7.324,15049,4.992,15068,7.581,15080,4.362,15143,3.299,15144,6.855,15145,5.4,15146,5.4,15147,5.4,15148,6.855,15149,3.299,15150,3.299,15151,4.992,15152,3.299,15153,3.299,15154,3.299,15155,3.299,15156,5.4,15157,5.996,15158,5.996,15159,5.4,15160,3.299,15161,5.4,15162,3.299,15163,9.384,15164,3.299,15165,5.4,15166,3.299,15167,4.992,15168,3.299,15169,5.538,15170,3.299,15171,5.4,15172,3.299,15173,3.299,15174,3.299,15175,5.4,15176,6.855,15177,3.299,15178,3.299,15179,7.923,15180,3.299,15181,5.4,15182,3.299,15183,5.4,15184,3.299,15185,3.299,15186,3.299,15187,3.299,15188,5.4,15189,3.299,15190,3.299,15191,3.299,15192,5.4,15193,6.855,15194,3.299,15195,3.299,15196,3.299,15197,3.299,15198,3.299,15199,3.299,15200,3.299,15201,3.299,15202,3.299,15203,3.299,15204,5.4,15205,3.299,15206,3.299,15207,3.299,15208,5.4,15209,3.299,15210,3.299,15211,3.299,15212,3.299,15213,3.299]],["title/classes/NewsUrlParams.html",[0,0.232,14952,5.947]],["body/classes/NewsUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,3795,5.749,6858,6.729,14952,10.332,15214,9.798,15215,12.682,15216,9.798]],["title/injectables/NexboardService.html",[105,0.91,14207,5.947]],["body/injectables/NexboardService.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,26,2.582,27,0.425,29,0.808,30,0.001,31,0.578,32,0.156,33,0.499,34,1.343,35,0.956,36,2.212,39,3.093,47,0.955,94,3.836,95,0.156,101,0.017,103,0.001,104,0.001,105,1.38,107,1.903,111,1.583,112,2.532,127,0.989,150,2.734,163,2.43,187,1.142,204,3.5,215,2.52,216,1.46,217,1.495,221,1.828,227,1.07,234,1.282,371,2.178,379,2.76,766,3.303,784,4.268,883,3.35,1369,4.303,1397,4.078,1467,2.52,2356,4.719,2357,5.548,2545,4.2,2627,3.319,8403,6.907,8404,9.423,8408,7.3,8409,6.907,8415,7.3,8417,7.3,11871,7.346,14207,9.022,15217,7.896,15218,11.488,15219,7.896,15220,7.896,15221,7.896,15222,10.315,15223,7.896,15224,7.896,15225,7.896,15226,7.896]],["title/interfaces/NextcloudGroups.html",[334,0.731,11326,5.055]],["body/interfaces/NextcloudGroups.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.984,55,2.651,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,7.47,11324,6.803,11325,6.973,11326,8.423,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,6.803]],["title/injectables/NextcloudStrategy.html",[105,0.91,4586,5.947]],["body/injectables/NextcloudStrategy.html",[0,0.104,3,0.007,4,0.007,5,0.004,7,0.046,8,0.611,27,0.442,29,0.784,30,0.001,31,0.641,32,0.136,33,0.484,34,1.767,35,1.258,36,2.566,39,1.362,47,0.923,55,1.804,62,2.968,72,1.38,95,0.147,99,0.509,100,2.527,101,0.005,103,0,104,0,105,0.677,107,0.735,111,2.253,112,2.766,127,0.634,158,3.169,165,0.396,167,1.121,187,0.441,192,1.507,200,0.949,201,1.55,209,2.495,214,1.595,216,1.67,217,1.607,221,2.945,227,0.992,234,0.495,247,1.194,264,4.367,284,2.734,305,0.868,379,2.046,461,1.915,493,3.853,496,1.287,500,3.471,520,3.36,524,1.753,627,2.771,661,4.722,686,2.756,728,1.165,768,5.18,784,1.647,905,1.269,956,1.994,1127,1.94,1129,1.753,1166,5.494,1248,3.853,1369,2.756,1438,1.966,1467,0.973,1588,2.129,1647,3.677,1849,1.529,1852,1.287,1920,1.94,1946,2.024,1961,2.129,2255,3.602,2280,5.144,2356,2.078,2357,3.438,2362,1.753,2385,3.101,2412,3.219,2439,1.788,2471,3.31,2538,3.602,2614,3.677,2794,1.807,2925,1.826,2969,2.057,3090,3.265,3405,2.091,3502,4.82,3579,3.19,3580,2.64,3584,2.057,3889,6.872,3895,4.676,4511,7.419,4516,4.236,4519,3.471,4521,4.086,4522,4.086,4524,4.086,4525,4.086,4527,5.238,4530,4.086,4531,7.399,4533,7.988,4534,4.086,4538,4.086,4544,2.265,4546,2.386,4566,8.393,4567,2.461,4568,2.665,4569,8.368,4570,7.323,4584,6.955,4585,6.978,4586,4.424,4591,2.817,4592,2.386,4593,1.54,4737,5.557,5164,2.552,5442,1.736,5698,2.573,6064,1.94,6074,1.891,6100,5.866,6854,2.734,7034,2.386,7044,4.805,7074,2.649,7182,4.53,7271,3.138,7464,8.588,7801,3.961,7821,2.091,7927,2.386,8920,4.816,9058,1.966,9603,3.219,9647,6.566,10293,1.704,11504,2.322,11526,8.972,11571,9.899,11664,4.676,11774,3.219,11936,3.36,12552,6.564,14878,2.552,15227,3.047,15228,7.548,15229,7.548,15230,5.058,15231,5.058,15232,5.058,15233,3.047,15234,3.047,15235,7.563,15236,9.03,15237,3.047,15238,3.853,15239,3.047,15240,3.047,15241,5.058,15242,3.047,15243,8.373,15244,7.548,15245,5.058,15246,3.047,15247,3.047,15248,5.43,15249,3.047,15250,4.424,15251,5.058,15252,7.728,15253,3.047,15254,4.236,15255,4.676,15256,4.676,15257,5.058,15258,3.047,15259,3.047,15260,3.047,15261,3.047,15262,10.014,15263,7.548,15264,3.047,15265,2.817,15266,3.047,15267,3.047,15268,3.047,15269,5.058,15270,3.047,15271,5.058,15272,6.484,15273,7.548,15274,5.058,15275,3.047,15276,2.665,15277,2.461,15278,3.047,15279,5.058,15280,3.047,15281,3.047,15282,3.047,15283,3.047,15284,3.047,15285,3.047,15286,3.047,15287,5.058,15288,3.047,15289,5.058,15290,3.047,15291,3.047,15292,3.047,15293,2.817,15294,3.047,15295,3.047,15296,3.047,15297,3.047,15298,3.047,15299,3.047,15300,3.047,15301,3.047,15302,3.047,15303,3.047,15304,3.047,15305,3.047,15306,3.047,15307,3.047,15308,3.047,15309,3.047,15310,3.047,15311,3.047,15312,5.058,15313,5.058,15314,3.047,15315,3.047,15316,3.047,15317,3.047,15318,3.047,15319,3.047,15320,3.047,15321,3.047,15322,3.047]],["title/classes/NotFoundLoggableException.html",[0,0.232,9674,4.751]],["body/classes/NotFoundLoggableException.html",[0,0.291,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,8,1.31,27,0.447,29,0.668,30,0.001,31,0.478,32,0.147,33,0.413,35,1.033,47,0.98,95,0.153,101,0.014,103,0.001,104,0.001,111,2.389,127,1.358,163,2.626,187,1.234,214,3.418,216,2.204,217,1.11,227,0.885,404,1.954,406,2.775,1216,4.248,1464,5.489,1469,6.21,2644,6.39,8288,6.52,8738,5.431,8740,6.076,8745,5.006,8746,5.231,9674,7.575,10699,7.145,10700,7.145,15323,11.919,15324,11.919,15325,11.018,15326,8.532,15327,11.919,15328,11.919,15329,11.919,15330,8.532,15331,8.532,15332,8.532,15333,8.532,15334,8.532]],["title/injectables/OAuth2ToolLaunchStrategy.html",[105,0.91,15335,5.694]],["body/injectables/OAuth2ToolLaunchStrategy.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.881,9,2.276,26,2.341,27,0.529,29,1.004,30,0.001,31,0.718,32,0.178,33,0.62,35,1.552,36,2.458,39,2.365,47,0.878,95,0.135,99,0.806,101,0.008,103,0,104,0,105,0.975,106,11.021,107,1.164,108,2.805,110,4.224,111,2.638,112,2.713,113,6.377,114,6.377,115,6.377,116,3.993,117,7.682,118,6.377,119,6.377,120,6.377,121,6.377,122,6.106,123,6.106,124,6.377,125,6.377,126,6.377,133,4.224,134,10.439,135,6.377,136,7.298,137,5.42,138,3.185,139,6.966,140,6.689,142,4.224,143,6.377,144,2.005,145,2.478,146,6.715,148,2.244,149,4.224,150,3.388,151,6.377,153,4.224,155,9.243,157,4.224,158,4.293,160,8.21,161,4.224,163,3.399,164,6.377,165,0.766,167,3.232,168,4.224,170,4.045,171,4.045,173,4.224,175,3.439,176,6.377,178,7.095,179,4.224,180,6.377,181,6.314,183,4.224,184,6.377,185,2.833,187,0.698,208,1.804,209,2.41,210,3.161,211,4.045,227,0.911,404,1.314,596,3.911,731,3.866,1187,4.666,1188,4.611,1189,4.611,1190,4.877,1191,5.332,2139,5.667,2600,4.465,2603,4.465,2604,4.465,2605,4.465,2606,4.465,2607,4.465,2608,4.465,2609,4.465,2610,4.465,2611,4.465,2612,4.465,2613,4.465,2614,7.113,2615,6.968,2616,3.782,2626,4.224,15335,6.106,15336,4.83,15337,4.83,15338,4.83]],["title/classes/OAuthMigrationError.html",[0,0.232,15339,5.493]],["body/classes/OAuthMigrationError.html",[0,0.248,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.534,29,0.571,30,0.001,31,0.409,32,0.176,33,0.595,47,1.016,52,4.64,59,3.677,95,0.094,101,0.012,103,0.001,104,0.001,127,1.226,144,2.692,165,0.767,204,3.321,216,2.6,319,2.926,355,4.744,404,1.764,596,3.601,1216,4.967,1817,5.713,3849,5.559,4476,5.264,5442,5.576,6833,6.151,11432,9.222,13097,6.381,13723,5.424,15339,7.907,15340,10.914,15341,9.662,15342,9.662,15343,10.845,15344,12.95,15345,12.95,15346,9.789,15347,9.789,15348,7.296,15349,7.296,15350,7.296,15351,7.296,15352,7.296,15353,6.745,15354,6.745,15355,6.745,15356,6.745,15357,7.296,15358,7.296]],["title/classes/OAuthProcessDto.html",[0,0.232,15359,5.694]],["body/classes/OAuthProcessDto.html",[0,0.328,2,1.074,3,0.023,4,0.023,5,0.012,7,0.146,27,0.519,29,0.755,30,0.001,31,0.54,32,0.171,33,0.609,47,0.934,101,0.016,103,0.001,104,0.001,127,1.207,165,0.916,1016,3.382,1605,7.464,2170,8.123,2186,8.068,5931,9.445,15359,11.232,15360,12.102,15361,9.634,15362,11.692,15363,9.634,15364,9.634,15365,9.634,15366,9.634]],["title/classes/OAuthRejectableBody.html",[0,0.232,5432,5.493]],["body/classes/OAuthRejectableBody.html",[0,0.31,2,0.731,3,0.016,4,0.016,5,0.008,7,0.099,27,0.489,30,0.001,32,0.161,33,0.638,47,0.915,55,1.961,95,0.117,101,0.011,103,0.001,104,0.001,116,2.835,165,0.713,204,4.597,361,6.806,364,2.161,368,5.171,370,4.348,371,3.856,374,2.094,376,1.5,379,2.853,467,3.221,470,4.963,471,4.977,502,5.649,506,5.958,564,3.337,565,5.629,1035,7.89,1142,4.216,1342,5.72,1421,6.617,1433,5.582,1909,8.187,2075,5.003,2468,6.769,3469,6.483,5406,5.649,5432,7.353,5433,8.756,5434,8.756,5435,8.187,5438,5.958,5454,8.843,5455,6.936,5456,7.962,5457,7.962,5458,7.962,5460,5.958,5461,8.604,5462,7.89,5463,6.936,5464,7.353,5465,6.936,5466,7.624,5467,7.353,5469,7.624,5471,6.936,5473,5.737,5474,7.624,5475,7.962,15367,11.35,15368,6.559,15369,6.559,15370,6.559,15371,6.559,15372,6.559,15373,6.559]],["title/classes/OAuthSSOError.html",[0,0.232,11432,4.842]],["body/classes/OAuthSSOError.html",[0,0.277,2,0.907,3,0.019,4,0.019,5,0.01,7,0.123,27,0.526,29,0.637,30,0.001,31,0.456,32,0.173,33,0.393,47,1.001,59,3.276,95,0.135,101,0.014,103,0.001,104,0.001,127,1.019,144,2.892,165,0.824,187,1.177,204,3.954,216,2.572,319,3.143,404,1.895,1216,4.999,1353,5.626,1817,8.236,3849,6.198,5442,5.991,6833,6.608,11432,7.489,15341,10.194,15342,10.194,15343,11.136,15353,7.521,15354,7.521,15355,7.521,15356,7.521,15374,13.067,15375,8.136,15376,10.517,15377,9.722,15378,9.76,15379,8.136,15380,8.136,15381,8.136,15382,7.521,15383,8.136]],["title/injectables/OAuthService.html",[105,0.91,11415,5.181]],["body/injectables/OAuthService.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.608,26,1.595,27,0.452,29,0.86,30,0.001,31,0.615,32,0.149,33,0.531,35,1.294,36,2.493,47,1.009,48,5.758,52,4.269,59,2.6,95,0.158,99,0.506,100,1.015,101,0.005,103,0,104,0,105,0.674,107,0.731,111,2.365,112,2.763,127,0.631,129,4.669,132,4.168,145,1.636,150,2.605,163,0.933,167,2.377,187,0.438,189,2.792,191,1.68,192,2.242,204,1.028,216,1.918,217,1.698,221,2.766,227,1.163,231,2.792,234,1.622,305,2.143,334,0.326,347,1.93,348,6.787,355,1.218,359,1.057,369,1.118,460,4.327,461,2.06,529,1.317,576,1.711,839,1.445,1142,3.867,1350,3.586,1464,1.396,1467,0.967,1514,6.744,1567,2.08,1570,2.253,1589,2.802,1593,2.538,1605,1.797,1609,2.309,1613,1.881,1625,4.998,1695,1.929,1739,3.661,1755,5.972,1820,3.125,1852,2.126,2130,1.324,2131,1.482,2132,1.428,2133,1.929,2170,6.9,2356,2.653,2357,3.427,2475,2.08,3104,3.408,3405,3.456,3580,2.05,4492,2.253,4593,2.544,4737,5.232,4865,3.456,4866,2.373,5438,3.296,5442,2.869,6098,1.984,6712,1.956,7002,4.404,7074,3.941,8259,2.253,8443,4.998,8452,6.719,8844,2.118,9285,5.469,9314,2.448,9646,2.448,10031,1.904,11156,6.069,11196,6.797,11217,4.228,11265,4.217,11415,3.837,11429,8.382,11432,3.586,11435,4.696,11439,2.651,11442,4.655,11489,5.65,11510,2.253,11511,2.253,11512,4.802,11568,7.234,11828,2.253,12184,2.158,12311,3.661,12342,3.837,12344,2.309,12356,2.309,12573,2.538,13062,3.943,13089,3.518,13100,2.802,13105,2.651,13374,2.448,14104,4.404,14305,2.448,14813,7.993,14816,4.655,14821,2.651,14824,4.404,14878,2.538,15277,2.448,15343,6.992,15382,2.802,15384,3.031,15385,6.46,15386,6.46,15387,6.46,15388,4.655,15389,5.036,15390,5.036,15391,5.036,15392,6.46,15393,5.036,15394,7.993,15395,7.474,15396,7.474,15397,3.031,15398,3.031,15399,7.524,15400,3.031,15401,3.031,15402,3.031,15403,3.031,15404,3.031,15405,5.036,15406,3.031,15407,5.036,15408,8.638,15409,3.031,15410,5.036,15411,3.031,15412,5.036,15413,3.031,15414,3.031,15415,3.031,15416,5.036,15417,3.031,15418,5.036,15419,3.031,15420,2.373,15421,2.651,15422,2.651,15423,2.651,15424,3.031,15425,2.802,15426,4.068,15427,2.802,15428,3.031,15429,3.031,15430,3.031,15431,3.031,15432,3.031,15433,2.802,15434,2.448,15435,3.031,15436,7.524,15437,3.031,15438,3.031,15439,4.655,15440,3.031,15441,4.655,15442,3.031,15443,3.031,15444,3.031,15445,2.802,15446,4.404,15447,3.031,15448,3.031,15449,3.031,15450,2.802,15451,3.031,15452,4.217,15453,3.031,15454,3.031,15455,3.031,15456,3.031,15457,2.802,15458,3.031,15459,3.031,15460,3.031,15461,3.031,15462,3.031,15463,3.031,15464,3.031,15465,5.036,15466,3.031,15467,3.031,15468,2.802,15469,3.031,15470,3.031,15471,3.031,15472,3.031,15473,3.031,15474,3.031,15475,3.031,15476,3.031,15477,4.655,15478,2.802,15479,3.031,15480,3.031,15481,3.031,15482,4.655,15483,3.031,15484,5.036,15485,3.031]],["title/classes/OAuthTokenDto.html",[0,0.232,11435,4.943]],["body/classes/OAuthTokenDto.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.535,29,0.735,30,0.001,31,0.526,32,0.176,33,0.454,47,0.966,101,0.016,103,0.001,104,0.001,127,1.176,165,0.901,348,8.146,405,3.067,595,3.143,1625,8.269,11435,9.679,14505,7.861,14506,7.861,15486,13.315,15487,9.387,15488,11.506,15489,11.509,15490,9.387,15491,9.387,15492,8.677,15493,8.677,15494,9.387,15495,9.387]],["title/classes/Oauth2AuthorizationBodyParams.html",[0,0.232,14479,5.694]],["body/classes/Oauth2AuthorizationBodyParams.html",[0,0.39,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.511,30,0.001,32,0.168,47,0.964,48,5.841,95,0.147,101,0.016,103,0.001,104,0.001,165,0.896,364,2.258,374,2.968,376,2.127,467,3.393,470,5.185,1000,4.659,1001,7.429,1142,5.741,5806,6.76,7328,9.244,11568,7.6,13737,8.134,13738,8.597,14374,8.597,14375,8.597,14479,9.583,15496,12.934]],["title/classes/Oauth2MigrationParams.html",[0,0.232,15497,5.947]],["body/classes/Oauth2MigrationParams.html",[0,0.385,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.507,30,0.001,32,0.167,47,0.96,48,5.793,95,0.145,101,0.015,103,0.001,104,0.001,165,0.886,355,5.164,364,2.239,374,2.915,376,2.089,467,3.372,470,5.143,1000,4.607,1001,7.369,1142,5.694,4476,5.73,5806,6.638,7328,9.14,11568,7.538,15497,9.896,15498,12.851,15499,9.131,15500,9.131,15501,9.131,15502,9.131]],["title/injectables/Oauth2Strategy.html",[105,0.91,1556,5.947]],["body/injectables/Oauth2Strategy.html",[0,0.241,3,0.017,4,0.017,5,0.009,7,0.107,8,1.16,27,0.396,29,0.752,30,0.001,31,0.538,32,0.159,33,0.464,35,0.858,36,2.059,47,0.506,48,5.131,66,6.196,94,5.289,95,0.175,101,0.012,103,0.001,104,0.001,105,1.285,107,1.709,111,1.421,112,2.4,127,0.888,138,4.195,167,2.609,187,1.025,206,3.608,215,2.263,216,1.776,217,1.587,221,2.52,227,0.735,234,1.559,305,2.736,334,0.762,349,4.786,367,3.381,404,1.73,406,2.306,461,2.669,491,3.488,511,3.583,513,4.852,543,3.608,639,5.154,738,3.686,818,9.794,1142,4.447,1431,4.039,1556,8.399,1562,5.271,1732,5.271,2004,4.866,2170,4.575,4519,4.866,5438,6.285,6098,6.285,7062,5.271,7074,5.03,7077,7.138,7081,5.728,11414,6.202,11415,9.578,11435,6.98,11568,5.887,13158,5.552,13162,8.042,13167,5.938,13658,5.938,13807,8.877,13810,6.555,13824,6.555,14479,8.042,15452,5.938,15503,7.09,15504,7.09,15505,7.09,15506,6.555,15507,8.399,15508,7.09,15509,6.555,15510,6.555,15511,6.555,15512,8.399,15513,6.202,15514,7.09,15515,7.09,15516,7.09]],["title/classes/Oauth2ToolConfig.html",[0,0.232,7270,4.667]],["body/classes/Oauth2ToolConfig.html",[0,0.249,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.556,29,0.574,30,0.001,31,0.41,32,0.187,33,0.657,47,0.97,95,0.126,101,0.012,103,0.001,104,0.001,127,0.917,165,0.769,198,3.557,200,2.281,209,4.455,238,6.19,277,4.467,347,1.985,404,1.768,405,2.615,406,2.382,595,2.452,596,2.993,2559,6.044,2561,6.132,2562,9.165,2564,6.405,2565,5.44,2566,6.405,2567,6.405,2569,5.214,5530,5.517,7133,7.045,7166,5.579,7167,5.915,7222,4.942,7223,5.915,7267,9.434,7270,8.461,7278,6.708,7281,8.432,7283,8.227,7289,4.942,12338,5.025,12339,5.443,14571,6.769,14572,6.769,14573,6.769,14574,6.769,14575,6.769,14576,6.769,15517,13.342,15518,9.813,15519,6.405,15520,7.322,15521,6.769,15522,6.769,15523,6.769,15524,6.769,15525,6.769,15526,6.769]],["title/classes/Oauth2ToolConfigCreateParams.html",[0,0.232,8618,5.694]],["body/classes/Oauth2ToolConfigCreateParams.html",[0,0.325,2,0.784,3,0.017,4,0.017,5,0.008,7,0.106,27,0.546,30,0.001,32,0.185,33,0.562,47,0.97,95,0.149,101,0.012,103,0.001,104,0.001,154,5.977,165,0.748,198,3.414,200,2.189,209,4.372,238,6.062,277,4.375,347,1.931,364,2.41,373,5.117,374,2.243,375,4.129,376,1.608,404,1.72,467,3.424,470,5.245,471,4.394,596,2.912,1044,3.372,2559,5.912,2565,6.009,2583,8.838,2584,7.573,2585,5.678,2586,5.678,2587,5.678,2588,5.678,2589,5.678,5477,6.076,5530,5.403,5825,6.939,7133,6.9,7267,9.321,7278,6.569,7281,8.258,7283,8.058,7330,5.355,8616,5.678,8618,7.994,8624,6.148,14583,6.497,14587,6.497,15527,12.064,15528,6.497,15529,7.029,15530,7.029,15531,6.497,15532,6.497,15533,7.029,15534,6.497]],["title/classes/Oauth2ToolConfigEntity.html",[0,0.232,8683,5.493]],["body/classes/Oauth2ToolConfigEntity.html",[0,0.297,2,0.974,3,0.021,4,0.021,5,0.011,7,0.132,27,0.497,29,0.684,30,0.001,31,0.489,32,0.164,33,0.422,47,0.785,95,0.155,96,2.39,101,0.015,103,0.001,104,0.001,127,1.094,165,0.862,198,4.243,200,2.721,209,4.309,240,4.136,347,2.226,364,2.005,398,2.574,404,1.574,405,2.933,595,2.925,617,4.842,2559,5.73,2565,4.842,2572,7.316,2574,5.68,2575,8.89,2576,7.64,2577,4.93,2578,3.895,5530,6.006,7133,7.67,7166,6.655,7167,7.056,7289,7.428,8683,10.533,12338,5.995,15519,7.64,15535,12.649,15536,11.006,15537,8.735]],["title/classes/Oauth2ToolConfigFactory.html",[0,0.232,7276,5.694]],["body/classes/Oauth2ToolConfigFactory.html",[0,0.259,2,0.43,3,0.009,4,0.009,5,0.005,7,0.058,8,0.74,27,0.509,29,0.988,30,0.001,31,0.692,32,0.178,33,0.571,34,1.042,35,1.367,47,0.437,55,2.361,59,3.139,95,0.122,101,0.016,103,0,104,0,127,0.483,136,3.9,138,2.676,144,3.014,146,2.648,148,1.187,150,1.336,154,3.49,158,1.886,165,0.48,185,5.024,195,2.604,196,2.748,200,1.202,201,1.963,209,1.275,216,1.133,217,1.587,227,1.224,236,2.264,238,4.262,277,3.821,278,2.94,279,4.454,281,2.868,290,2.264,319,3.276,326,2.868,331,2.456,359,2.136,366,2.158,371,2.393,379,1.727,380,1.619,381,2.038,404,1.564,461,0.883,471,1.564,538,2.761,596,3.719,627,1.88,660,6.701,661,4.235,662,4.898,665,3.458,666,4.898,667,5.195,668,3.458,669,3.458,670,3.458,671,3.396,672,3.905,673,4.301,674,6.358,675,5.248,676,6.676,677,2.198,682,2.178,683,3.458,684,2.198,685,4.58,686,4.729,687,3.699,688,4.447,689,3.427,690,2.178,691,2.052,692,3.765,693,2.12,694,2.085,695,2.178,696,4.512,697,2.198,698,4.224,699,2.178,700,7.466,701,3.875,702,6.186,703,2.198,704,3.034,705,2.178,706,2.198,707,2.178,708,2.198,709,2.178,712,2.178,713,5.586,714,2.198,715,2.178,716,3.458,717,3.234,718,3.458,719,2.198,720,2.103,721,2.085,722,1.72,723,2.178,724,2.178,725,2.178,726,2.198,727,2.198,728,1.475,729,2.178,730,2.198,731,2.421,732,2.178,733,2.198,735,2.241,736,2.288,737,5.201,905,1.607,1431,2.198,1618,3.559,2035,3.311,2558,2.805,2565,2.139,2568,2.696,4313,6.741,4315,2.805,5007,2.085,5530,3.054,5698,1.963,5736,2.178,5793,3.117,5798,3.021,5799,2.604,7112,2.525,7118,2.49,7120,2.49,7122,2.49,7133,2.456,7135,2.313,7261,5.131,7262,5.359,7264,3.375,7266,2.805,7267,4.555,7268,3.021,7269,2.805,7270,2.648,7271,2.394,7272,3.375,7273,3.375,7274,3.375,7275,6.665,7276,6.382,7277,5.359,7278,3.713,7279,3.117,7280,2.805,7281,2.94,7282,3.375,7283,2.868,7284,3.375,7285,3.375,7286,3.231,7287,5.359,7288,3.375,7289,2.604,7290,3.375,7291,3.375,7292,3.375,7293,2.648,7294,3.375,7295,3.375,7296,3.231,7297,3.375,7298,2.748,7299,4.668,7300,5.359,7301,6.665,7302,5.359,7303,5.359,7304,3.375,7305,3.231,7306,3.021,7307,5.131,7308,3.375,7309,3.375,7310,3.375,7311,3.375,7312,3.375,7313,5.359,7314,3.375,7315,3.231,7316,2.525,7317,3.231,7318,3.375,7319,3.375,7320,3.375,7321,3.375,15538,6.127,15539,3.858]],["title/classes/Oauth2ToolConfigResponse.html",[0,0.232,9211,5.694]],["body/classes/Oauth2ToolConfigResponse.html",[0,0.238,2,0.78,3,0.017,4,0.017,5,0.008,7,0.106,27,0.545,29,0.548,30,0.001,31,0.392,32,0.185,33,0.639,47,0.953,95,0.139,101,0.012,103,0.001,104,0.001,127,0.876,165,0.745,198,3.396,200,2.178,209,4.368,238,6.046,277,4.363,347,1.924,364,2.374,375,5.034,376,1.599,404,1.714,405,2.534,406,2.274,467,3.467,595,2.341,596,2.901,2559,5.905,2565,5.993,2569,4.979,2578,3.117,2579,4.979,2592,5.648,2593,9.803,2595,6.116,2596,6.116,2597,5.648,5530,5.388,7133,6.881,7166,5.327,7167,5.648,7222,4.719,7223,5.648,7267,9.307,7281,8.236,7283,8.036,7289,4.719,9211,10.163,12338,4.799,14599,6.464,14600,6.464,14601,6.464,14602,6.464,14603,6.116,15519,6.116,15521,6.464,15522,6.464,15523,6.464,15524,6.464,15525,6.464,15526,6.464,15540,13.035,15541,9.512]],["title/classes/Oauth2ToolConfigUpdateParams.html",[0,0.232,9142,5.694]],["body/classes/Oauth2ToolConfigUpdateParams.html",[0,0.324,2,0.78,3,0.017,4,0.017,5,0.008,7,0.106,27,0.545,30,0.001,32,0.185,33,0.605,47,0.969,95,0.149,101,0.012,103,0.001,104,0.001,154,5.97,165,0.745,198,3.396,200,2.178,209,4.368,238,6.046,277,4.363,347,1.924,364,2.407,373,5.099,374,2.232,375,4.419,376,1.599,404,1.714,467,3.36,470,5.237,471,4.703,596,2.901,1044,3.354,2559,5.905,2565,5.993,2583,8.822,2584,6.645,2585,5.648,2586,5.648,2587,5.648,2588,5.648,2589,5.648,5477,6.055,5530,5.388,5825,7.858,7133,6.881,7267,9.307,7278,6.552,7281,8.236,7283,8.036,7330,5.327,9142,7.966,9420,5.856,9422,6.116,9424,6.116,9428,6.464,14607,6.464,15527,12.049,15528,6.464,15532,6.464,15534,6.464,15542,6.992,15543,6.992,15544,6.992]],["title/injectables/OauthAdapterService.html",[105,0.91,15394,5.694]],["body/injectables/OauthAdapterService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.137,27,0.475,29,0.903,30,0.001,31,0.646,32,0.164,33,0.557,35,1.298,36,2.735,47,0.91,95,0.167,100,2.305,101,0.011,103,0.001,104,0.001,105,1.259,107,1.66,111,2.15,112,2.746,116,3.34,127,0.862,204,2.336,215,2.197,216,1.273,217,1.571,221,2.178,227,1.112,231,5.945,234,1.118,305,1.961,351,3.455,369,1.528,784,3.721,798,4.326,1154,8.706,1155,3.999,1156,5.245,1157,4.506,1270,4.082,1369,3.752,1464,3.171,1514,9.312,2022,6.702,2033,4.81,2035,3.721,2292,9.494,2303,2.791,2327,6.021,3580,2.803,3872,5.391,3923,6.364,7008,8.232,11432,4.903,11439,6.021,11507,5.766,11572,6.352,13544,6.364,13545,6.364,13546,6.021,13547,6.364,15394,7.882,15426,5.561,15450,8.7,15545,12.07,15546,6.884,15547,10.724,15548,10.724,15549,6.884,15550,9.412,15551,6.884,15552,9.412,15553,6.884,15554,6.884,15555,6.884,15556,6.884,15557,6.884,15558,9.412,15559,6.021,15560,6.364,15561,6.884,15562,6.884,15563,6.884,15564,6.884,15565,9.412,15566,6.884,15567,6.884,15568,6.884,15569,9.412,15570,6.884,15571,6.884,15572,6.884,15573,6.884]],["title/modules/OauthApiModule.html",[425,1.812,15574,5.493]],["body/modules/OauthApiModule.html",[0,0.249,3,0.017,4,0.017,5,0.009,30,0.001,52,3.471,95,0.176,101,0.012,103,0.001,104,0.001,187,1.059,191,4.059,192,2.182,355,2.943,425,2.949,427,2.645,428,2.846,429,2.93,430,2.917,431,2.905,432,4.073,433,2.767,438,5.945,442,3.926,443,2.869,444,2.8,446,4.601,447,4.067,449,3.893,1467,2.337,1507,8.431,1546,9.937,1548,8.866,1567,5.025,1878,6.859,2725,3.317,2727,3.513,3568,7.973,4593,4.958,5333,8.078,10423,5.734,11405,10.628,13913,9.669,15420,5.734,15574,11.554,15575,7.322,15576,7.322,15577,7.322,15578,9.937,15579,10.628,15580,7.322,15581,9.68,15582,6.769,15583,7.322,15584,7.322]],["title/classes/OauthClientBody.html",[0,0.232,15585,5.947]],["body/classes/OauthClientBody.html",[0,0.243,2,0.525,3,0.011,4,0.011,5,0.006,7,0.071,27,0.504,30,0.001,31,0.4,32,0.166,33,0.649,34,1.216,47,0.947,95,0.124,101,0.008,103,0,104,0,116,2.227,165,0.56,208,4.085,235,4.035,277,4.586,290,4.195,349,4.825,351,3.587,361,6.89,364,2.227,368,5.258,369,1.919,370,4.421,371,3.89,374,1.502,376,1.076,379,2.771,467,3.261,470,5.016,471,5.038,535,3.833,538,4.351,574,3.139,701,2.528,745,6.609,783,4.333,1016,2.51,1044,2.257,1161,4.906,1272,3.585,1516,5.775,1518,6.156,1519,6.983,1530,3.498,1581,6.876,1602,4.995,1618,4.152,1642,5.091,1920,4.551,2075,3.929,2145,4.492,2170,4.613,2450,4.925,2464,5.775,2465,5.987,3580,5.406,3961,4.436,4051,6.983,5406,4.436,5438,8.248,5442,4.072,5454,8.131,5477,6.146,5492,7.561,5510,6.253,5511,6.517,5526,6.77,7134,6.427,9371,7.992,9373,7.561,9376,9.599,9377,6.609,11334,5.197,11944,5.314,13062,5.598,15367,11.49,15585,6.253,15586,4.705,15587,7.992,15588,7.992,15589,4.705,15590,4.705,15591,4.705,15592,7.149,15593,7.149,15594,4.705,15595,4.705,15596,4.705,15597,4.705,15598,5.987,15599,5.775,15600,6.609,15601,5.987,15602,7.149,15603,7.149,15604,7.149,15605,7.149,15606,4.705,15607,8.645,15608,4.705,15609,7.149,15610,7.149,15611,4.705,15612,8.645,15613,4.705,15614,6.609,15615,7.149,15616,7.149,15617,4.705,15618,4.705,15619,4.705,15620,4.705,15621,4.705,15622,4.705]],["title/classes/OauthConfig.html",[0,0.232,11429,4.387]],["body/classes/OauthConfig.html",[0,0.305,2,0.456,3,0.01,4,0.01,5,0.005,7,0.062,26,1.36,27,0.516,29,0.32,30,0.001,31,0.229,32,0.174,33,0.471,47,1.021,83,2.421,95,0.115,96,1.119,101,0.016,103,0,104,0,127,0.512,150,2.741,165,0.502,208,1.528,216,0.756,240,4.494,277,3.194,334,0.439,347,0.827,359,1.426,364,2.252,369,2.973,370,4.374,371,1.128,379,0.927,380,1.682,386,3.654,398,1.205,399,2.545,400,1.805,402,1.695,404,0.737,405,1.09,406,1.33,496,1.727,722,1.823,775,2.507,783,2.478,1031,2.48,1141,2.507,1498,2.478,1581,2.912,1613,4.911,2072,2.639,2097,3.04,2574,3.311,2578,1.823,4271,3.496,4309,4.568,4333,2.451,4588,4.626,5530,4.468,5698,3.264,5717,2.603,5718,2.807,6196,3.467,7136,2.569,7222,2.76,7278,5.432,8469,2.21,8805,5.342,9787,2.676,10293,2.287,11429,7.593,11510,3.04,11511,3.04,11512,3.04,11513,3.116,11557,5.432,11560,5.258,11562,5.432,11565,5.432,11568,4.853,11572,5.342,11613,2.676,12035,3.116,12219,2.912,12327,4.887,12328,3.303,12329,4.262,12330,7.51,12331,7.218,12332,4.03,12333,4.482,12334,5.18,12335,2.717,12336,2.717,12337,5.182,12338,4.403,12339,4.769,12340,3.202,12341,4.769,12342,3.116,12343,3.116,12344,3.116,12345,3.116,12346,3.202,12347,3.116,12348,3.116,12349,3.116,12350,3.202,12351,4.769,12352,3.202,12353,3.116,12354,3.202,12355,3.116,12356,3.116,12357,3.116,12358,3.202,12359,6.151,12360,3.303,12361,3.303,12362,3.303,12363,3.303,12364,3.303,12365,3.303,12366,3.303,12367,3.303,12368,3.303,12369,3.303,12370,3.303,12371,3.303,12372,3.202,12373,3.303,12374,3.303,12375,3.303,12376,3.303,12377,3.303,12378,3.303,12379,3.303,12380,3.303,12381,3.303,12382,3.303,12383,3.303,12384,3.303,12385,3.303,12386,3.303,12387,3.303,12388,3.303,12389,3.303,12390,3.04,12391,3.303,12392,3.303,12393,3.303,12394,3.303,12395,3.303,12396,3.303,12397,3.303,12398,3.303,12399,3.303,12400,3.303,12401,3.303,12402,3.303,12403,3.303,12404,3.303,12405,3.116,12406,3.303,12407,3.04,12408,3.202,12409,3.116,12410,3.202,12411,3.116,12412,3.116,12413,3.202,12414,3.116,12415,3.202,12416,3.116,12417,2.973,12418,2.973,12419,2.973,12420,3.04,12421,3.116,12422,3.303,12423,3.116,12424,3.303,12425,3.303,12426,3.303,12427,3.303,12428,3.303,12429,3.116,12430,3.202,12431,3.116,12432,3.202,15623,4.089,15624,4.089,15625,4.089,15626,4.089,15627,4.089,15628,4.089,15629,4.089,15630,4.089,15631,4.089,15632,4.089,15633,4.089,15634,4.089,15635,4.089,15636,4.089]],["title/classes/OauthConfigDto.html",[0,0.232,12676,5.181]],["body/classes/OauthConfigDto.html",[0,0.235,2,0.769,3,0.016,4,0.016,5,0.008,7,0.104,27,0.566,29,0.54,30,0.001,31,0.386,32,0.187,33,0.584,47,1.015,72,4.269,101,0.012,103,0.001,104,0.001,127,0.864,165,0.738,277,4.332,355,3.786,461,2.155,728,3.603,1613,6.66,2145,5.92,2170,6.08,2800,6.167,4588,6.233,5530,5.35,7222,4.655,7278,6.505,8805,7.244,11557,7.367,11560,7.131,11562,7.367,11565,7.367,11568,6.581,11572,7.244,11944,7.005,12338,4.733,12339,5.127,12341,5.127,12343,5.254,12345,5.254,12347,5.254,12348,5.254,12349,5.254,12351,5.127,12353,5.254,12355,5.254,12357,5.254,12359,7.367,12676,9.499,15637,13.806,15638,6.375,15639,9.423,15640,9.423,15641,6.375,15642,6.896,15643,6.896,15644,6.896,15645,6.896,15646,6.896,15647,6.896,15648,6.375,15649,6.896,15650,6.375,15651,6.375,15652,6.896,15653,6.375,15654,6.896,15655,6.375,15656,6.375,15657,6.375,15658,6.375,15659,6.375,15660,6.375,15661,6.375,15662,6.375,15663,6.375,15664,6.375,15665,6.375]],["title/classes/OauthConfigResponse.html",[0,0.232,15666,5.694]],["body/classes/OauthConfigResponse.html",[0,0.172,2,0.564,3,0.012,4,0.012,5,0.006,7,0.076,27,0.534,29,0.396,30,0.001,31,0.283,32,0.183,33,0.563,34,1.284,47,1.006,95,0.065,101,0.008,103,0,104,0,127,0.634,138,3.298,165,0.591,277,4.536,351,3.789,364,2.332,368,5.391,369,3.033,370,4.532,371,3.816,376,1.157,379,2.901,467,3.395,1013,5.863,1016,2.651,1161,5.182,1272,5.753,1516,6.099,1613,6.974,2145,7.521,2170,4.872,2592,4.087,3580,3.074,4588,5.8,5471,5.753,5530,4.992,7222,3.415,8805,6.76,11557,6.874,11560,6.654,11562,6.874,11565,6.874,11568,6.141,11572,6.76,11941,6.099,11944,5.613,12338,3.473,12341,3.762,12343,3.855,12345,3.855,12347,3.855,12348,3.855,12349,3.855,12351,3.762,12353,3.855,12355,3.855,12357,3.855,12359,6.874,14603,4.426,15559,6.604,15666,7.565,15667,13.062,15668,7.551,15669,7.551,15670,5.06,15671,5.06,15672,5.06,15673,6.98,15674,5.06,15675,5.06,15676,5.06,15677,5.06,15678,5.06,15679,5.06,15680,5.06,15681,5.06,15682,5.06,15683,5.06,15684,5.06,15685,5.06,15686,5.06,15687,5.06,15688,5.06,15689,5.06,15690,5.06,15691,5.06,15692,5.06]],["title/interfaces/OauthCurrentUser.html",[334,0.731,7077,5.055]],["body/interfaces/OauthCurrentUser.html",[3,0.02,4,0.02,5,0.01,7,0.125,26,2.897,30,0.001,32,0.113,33,0.515,34,1.81,39,2.231,47,0.838,48,3.905,72,4.821,85,5.347,94,4.025,95,0.106,99,1.383,101,0.018,103,0.001,104,0.001,165,0.834,200,3.864,334,1.143,336,1.983,347,2.153,348,6.965,355,4.724,369,2.609,404,1.918,461,2.935,491,5.784,496,3.499,522,6.489,575,4.966,728,4.07,770,4.913,1193,5.593,2449,5.687,2468,4.966,3090,5.085,3104,3.754,3110,4.13,3281,5.505,4205,3.587,5058,5.505,5406,6.604,5438,6.965,5442,4.72,7025,6.693,7026,6.939,7027,6.604,7075,10.021,7077,7.911,7098,7.248,11939,7.66,11940,7.66,11941,8.597,11942,9.838,11943,9.838,11944,7.911]],["title/classes/OauthDataDto.html",[0,0.232,13089,4.751]],["body/classes/OauthDataDto.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.535,29,0.671,30,0.001,31,0.48,32,0.176,33,0.627,95,0.161,101,0.014,103,0.001,104,0.001,127,1.073,165,0.852,200,3.72,405,2.897,595,2.869,3104,5.41,8419,9.099,8433,7.921,8450,8.878,8471,6.709,8472,7.176,9534,8.681,11156,6.228,13089,9.057,13118,9.647,13120,10.001,15693,12.245,15694,8.568,15695,10.445,15696,10.872,15697,8.568,15698,8.568,15699,9.352,15700,8.568,15701,8.568,15702,7.921,15703,8.568,15704,8.568,15705,8.568,15706,8.568,15707,8.568,15708,8.568,15709,8.568]],["title/classes/OauthDataStrategyInputDto.html",[0,0.232,13094,5.055]],["body/classes/OauthDataStrategyInputDto.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,27,0.528,29,0.709,30,0.001,31,0.507,32,0.174,33,0.438,47,0.913,95,0.116,101,0.015,103,0.001,104,0.001,127,1.134,163,4.055,165,0.881,348,8.014,405,2.998,595,3.03,1625,8.135,3104,5.547,4519,9.042,8471,7.086,8472,7.579,11156,6.578,13094,9.794,14505,7.579,14506,7.579,15492,8.365,15493,8.365,15693,12.18,15699,9.588,15702,8.365,15710,9.049,15711,11.252,15712,9.049,15713,9.049]],["title/classes/OauthLoginResponse.html",[0,0.232,14484,5.694]],["body/classes/OauthLoginResponse.html",[0,0.299,2,0.98,3,0.021,4,0.021,5,0.011,7,0.133,27,0.498,29,0.689,30,0.001,31,0.492,32,0.164,33,0.584,34,1.88,47,0.862,95,0.142,101,0.015,103,0.001,104,0.001,127,1.101,165,0.866,200,3.949,277,4.46,351,5.546,364,2.013,375,4.209,376,2.011,379,1.992,404,1.991,405,2.945,467,2.307,595,2.944,596,2.682,617,4.874,728,4.226,1403,4.874,1625,7.342,2461,6.698,3104,5.006,5442,6.295,7075,9.763,7280,8.033,14471,9.029,14484,10.941,15714,12.086,15715,8.793,15716,11.051,15717,8.793,15718,8.793,15719,8.793,15720,8.793]],["title/classes/OauthLoginStateDto.html",[0,0.232,15721,5.493]],["body/classes/OauthLoginStateDto.html",[0,0.292,2,0.957,3,0.02,4,0.02,5,0.01,7,0.13,26,2.534,27,0.546,29,0.673,30,0.001,31,0.481,32,0.18,33,0.578,47,0.945,48,5.633,95,0.11,99,1.433,101,0.014,103,0.001,104,0.001,127,1.076,165,0.853,347,2.202,355,5.41,405,2.901,417,6.242,418,6.724,460,6.875,595,2.875,4491,7.418,4588,6.17,8025,6.383,12217,6.936,12218,6.936,12351,6.383,15408,9.656,15721,10.478,15722,13.463,15723,8.586,15724,10.887,15725,8.586,15726,8.586,15727,8.586,15728,8.586,15729,8.586,15730,8.586,15731,8.586,15732,8.586]],["title/classes/OauthLoginStateMapper.html",[0,0.232,15733,5.947]],["body/classes/OauthLoginStateMapper.html",[0,0.326,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,8,1.408,27,0.395,29,0.751,30,0.001,31,0.537,32,0.13,33,0.464,35,1.161,95,0.15,100,3.904,101,0.016,103,0.001,104,0.001,217,1.248,227,0.994,234,1.557,346,6.103,355,5.048,627,3.855,13944,8.029,15721,10.558,15733,10.197,15734,11.659,15735,9.588,15736,11.659,15737,11.659,15738,11.432,15739,9.588,15740,8.386,15741,8.386,15742,9.588]],["title/classes/OauthMigrationDto.html",[0,0.232,13943,5.493]],["body/classes/OauthMigrationDto.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.546,29,0.671,30,0.001,31,0.48,32,0.18,33,0.665,83,4.166,101,0.014,103,0.001,104,0.001,127,1.073,165,0.852,185,3.33,347,2.199,9777,8.807,13943,10.472,13962,9.509,13998,9.099,13999,9.099,14000,9.099,14119,10.001,14121,10.001,14860,7.921,14861,7.921,14862,7.921,14863,7.921,14864,7.921,14865,7.921,14866,7.921,14867,7.921,14868,7.921,14869,7.921,15743,13.456,15744,8.568,15745,10.872,15746,8.568,15747,8.568,15748,8.568,15749,8.568]],["title/modules/OauthModule.html",[425,1.812,1546,5.324]],["body/modules/OauthModule.html",[0,0.23,3,0.016,4,0.016,5,0.008,30,0.001,52,3.208,95,0.177,101,0.011,103,0.001,104,0.001,187,0.979,191,3.752,192,2.017,355,2.72,425,2.832,427,2.445,428,2.63,429,2.708,430,2.697,431,2.686,432,3.911,433,4.017,438,5.808,442,3.722,443,2.652,444,2.589,449,3.691,450,2.78,1155,3.932,1467,2.16,1545,10.014,1546,11.225,1548,8.661,1563,5.92,1567,4.646,1878,6.7,2725,3.066,3568,7.789,3917,6.279,4584,9.012,4593,4.7,5333,7.891,8255,9.012,8844,4.729,11415,10.302,11416,11.324,11436,6.257,11437,5.92,13913,9.445,15394,10.382,15420,5.3,15427,6.257,15578,9.708,15750,6.769,15751,6.769,15752,6.769,15753,6.769,15754,6.769,15755,5.92]],["title/modules/OauthProviderApiModule.html",[425,1.812,15756,5.493]],["body/modules/OauthProviderApiModule.html",[0,0.247,3,0.017,4,0.017,5,0.009,30,0.001,95,0.173,101,0.012,103,0.001,104,0.001,187,1.048,361,4.015,425,2.933,427,2.617,428,2.815,429,2.898,430,2.886,431,2.874,432,4.05,433,2.738,438,5.926,442,3.898,443,2.838,444,2.77,446,4.551,447,4.038,449,3.865,1467,2.312,1878,6.837,2725,3.281,2727,3.475,3568,7.948,3709,4.812,4583,9.404,4588,5.681,4592,5.672,4593,3.66,5442,4.126,8835,9.906,8843,4.812,15582,6.696,15756,11.577,15757,7.243,15758,7.243,15759,7.243,15760,10.594,15761,10.594,15762,10.594,15763,10.594,15764,10.594,15765,10.594,15766,10.594,15767,6.066,15768,9.627,15769,7.243,15770,6.335,15771,7.243]],["title/injectables/OauthProviderClientCrudUc.html",[105,0.91,15761,5.694]],["body/injectables/OauthProviderClientCrudUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.922,27,0.483,29,0.885,30,0.001,31,0.633,32,0.159,33,0.547,34,2.09,35,1.305,36,2.681,47,0.941,55,2.434,56,4.841,58,6.511,59,3.143,95,0.145,101,0.009,103,0,104,0,105,1.022,107,1.238,111,2.162,112,2.91,127,0.957,144,1.413,163,3.7,165,0.598,187,0.743,216,1.994,217,1.651,221,2.843,227,1.118,277,3.082,319,1.535,351,3.832,353,6.169,361,6.665,461,2.902,491,6.541,513,5.913,843,2.267,1142,3.537,1884,6.325,2725,2.327,2930,2.754,3580,4.895,5526,7.902,7279,6.169,7280,5.551,8843,5.073,9283,8.216,9307,9.815,9311,3.658,9373,6.679,9419,9.031,9888,7.501,11561,6.395,15587,7.06,15588,7.06,15761,6.395,15772,9.712,15773,11.115,15774,5.137,15775,9.115,15776,6.679,15777,6.679,15778,6.679,15779,7.972,15780,7.972,15781,4.15,15782,5.137,15783,7.06,15784,5.137,15785,7.06,15786,5.137,15787,7.06,15788,5.137,15789,4.749,15790,5.137,15791,4.749,15792,5.137,15793,7.06,15794,5.137,15795,5.137,15796,5.137,15797,10.784,15798,7.637,15799,5.137,15800,5.137,15801,9.115,15802,9.115,15803,7.637,15804,5.137,15805,5.137,15806,5.137]],["title/injectables/OauthProviderConsentFlowUc.html",[105,0.91,15762,5.694]],["body/injectables/OauthProviderConsentFlowUc.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.95,27,0.473,29,0.898,30,0.001,31,0.642,32,0.156,33,0.555,35,1.327,36,2.707,39,2.513,47,0.978,95,0.152,101,0.009,103,0,104,0,105,1.052,107,1.289,111,2.566,112,2.736,127,0.986,145,2.904,148,2.421,187,0.774,216,1.455,217,1.427,221,2.382,227,1.067,234,0.868,305,1.524,335,8.618,339,3.976,348,7.177,349,6.299,350,4.48,351,2.684,353,4.321,360,8.313,361,6.572,491,5.832,513,5.2,529,4.056,543,6.655,552,3.451,1016,4.162,1518,7.328,2783,3.206,2930,2.868,3743,4.616,4194,8.841,4588,2.761,4663,3.671,5430,8.618,5480,8.313,5487,8.313,8843,5.227,9283,8.336,9311,3.809,12619,9.929,12620,4.945,15762,6.589,15772,9.577,15781,4.321,15807,10.96,15808,4.678,15809,8.627,15810,6.882,15811,8.627,15812,7.273,15813,7.868,15814,5.349,15815,4.945,15816,5.349,15817,7.273,15818,5.349,15819,5.349,15820,5.349,15821,7.273,15822,8.313,15823,5.349,15824,7.868,15825,8.355,15826,5.349,15827,5.849,15828,4.48,15829,4.945,15830,7.868,15831,5.349,15832,4.945,15833,5.349,15834,5.349,15835,5.349,15836,5.349,15837,8.058,15838,5.349,15839,5.349,15840,5.349,15841,5.349,15842,5.349,15843,5.349,15844,4.189,15845,5.349]],["title/controllers/OauthProviderController.html",[481,2.611,15768,5.947]],["body/controllers/OauthProviderController.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.663,10,1.358,27,0.485,29,0.906,30,0.001,31,0.648,32,0.157,33,0.56,35,1.425,36,2.881,47,0.24,95,0.156,100,1.127,101,0.006,103,0,104,0,111,1.899,112,2.942,127,0.422,185,5.084,187,0.487,216,1.752,217,1.675,221,2.565,227,1.221,264,4.378,346,2.142,360,8.07,361,6.625,364,2.145,376,0.77,447,1.395,481,1.292,483,1.605,491,6.52,513,6.721,529,4.931,543,6.507,552,2.171,555,1.75,556,1.79,561,6.082,1016,1.927,1335,6.714,2130,1.47,2131,1.645,2132,1.586,2133,2.142,2170,2.171,2929,1.936,2930,1.804,3580,3.264,3709,2.236,3743,3.22,4007,2.114,4192,10.716,4466,7.259,4588,2.833,5430,6.714,5438,2.203,5480,4.433,5498,7.933,5523,5.82,7990,2.818,8843,3.646,9307,7.042,9311,2.396,12608,9.693,12637,2.718,13974,6.425,14359,7.013,14471,4.949,14507,6.476,15585,8.738,15761,4.596,15762,4.596,15763,5.82,15764,4.596,15765,5.82,15766,5.82,15768,4.8,15770,2.943,15773,3.111,15776,6.079,15777,4.8,15778,6.079,15779,6.079,15780,6.079,15783,3.111,15785,3.111,15787,3.111,15789,3.111,15791,3.111,15807,3.111,15810,4.8,15811,6.425,15825,4.182,15827,5.96,15837,7.418,15846,11.952,15847,3.365,15848,5.074,15849,4.8,15850,4.8,15851,6.425,15852,4.8,15853,3.365,15854,3.365,15855,3.365,15856,3.365,15857,3.365,15858,3.365,15859,3.365,15860,3.365,15861,3.365,15862,3.365,15863,3.365,15864,5.488,15865,3.365,15866,3.365,15867,3.365,15868,5.488,15869,3.365,15870,3.365,15871,3.365,15872,3.365,15873,3.365,15874,3.365,15875,3.365,15876,3.365,15877,3.365,15878,3.365,15879,3.365,15880,3.365,15881,3.365,15882,7.013,15883,3.365,15884,3.365,15885,3.365,15886,3.365,15887,4.298,15888,5.442,15889,8.832,15890,3.111,15891,6.95,15892,3.365,15893,3.365,15894,3.365,15895,3.365,15896,3.365,15897,3.365,15898,3.365,15899,3.365,15900,3.365,15901,3.365,15902,3.365,15903,8.018,15904,3.365,15905,3.365,15906,3.365,15907,3.365,15908,3.365,15909,3.365,15910,3.365,15911,3.365,15912,3.365,15913,3.365,15914,3.365,15915,3.365,15916,3.365,15917,3.365,15918,3.365,15919,3.365,15920,3.365,15921,3.365,15922,3.365,15923,5.488,15924,5.488,15925,3.365,15926,3.365,15927,3.365,15928,3.365,15929,3.365,15930,3.365,15931,3.365,15932,3.365,15933,3.365,15934,3.365,15935,3.365,15936,3.365,15937,3.365,15938,2.818,15939,3.365,15940,3.365,15941,3.365,15942,3.365,15943,3.365,15944,3.365,15945,3.365,15946,3.365]],["title/injectables/OauthProviderLoginFlowService.html",[105,0.91,12626,5.493]],["body/injectables/OauthProviderLoginFlowService.html",[0,0.236,3,0.016,4,0.016,5,0.008,7,0.105,8,1.144,27,0.444,29,0.844,30,0.001,31,0.603,32,0.146,33,0.521,35,1.146,36,2.03,47,0.768,95,0.167,101,0.012,103,0.001,104,0.001,105,1.266,107,1.674,111,2.159,112,2.374,116,3.891,127,1.186,154,3.18,158,6.451,167,3.484,187,1.004,201,3.533,209,2.295,216,1.992,217,1.402,221,2.191,227,1.117,234,1.127,305,1.978,347,2.179,361,6.413,369,1.541,777,5.437,839,3.311,1852,2.932,1961,4.851,2644,3.723,4492,5.162,4661,3.665,5530,5.767,6074,5.875,6100,7.839,7116,8.6,7182,8.458,7271,5.875,8517,8.814,8519,8.814,8581,6.419,8582,6.419,8790,6.073,9337,6.073,9727,5.437,11504,5.29,12626,7.647,12637,9.345,14684,10.463,15947,11.569,15948,6.944,15949,9.467,15950,9.467,15951,6.944,15952,6.944,15953,9.467,15954,6.944,15955,9.467,15956,6.944,15957,6.419,15958,5.815,15959,6.944,15960,6.944,15961,6.944,15962,6.944,15963,6.944,15964,6.944,15965,9.467,15966,6.944]],["title/injectables/OauthProviderLoginFlowUc.html",[105,0.91,15763,5.694]],["body/injectables/OauthProviderLoginFlowUc.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,8,0.87,27,0.452,29,0.86,30,0.001,31,0.615,32,0.149,33,0.531,34,0.808,35,1.262,36,2.628,47,0.948,95,0.162,99,0.793,101,0.008,103,0,104,0,105,0.963,107,1.145,111,2.587,112,2.783,127,0.902,158,5.364,187,0.687,201,2.417,209,3.446,216,1.928,217,1.595,221,2.718,227,1.138,234,1.412,305,2.477,347,1.759,349,4.859,354,7.837,355,2.893,360,7.837,361,6.32,461,2.219,529,3.779,543,5.305,574,2.085,806,2.931,843,2.096,1016,1.668,1353,2.293,1884,6.162,2725,2.152,4194,9.098,4588,3.716,4593,2.4,4661,2.507,4671,7.038,4737,6.622,5432,7.837,5438,4.712,7074,3.771,7116,3.531,7131,3.382,7133,4.583,7182,7.667,7270,4.941,7271,2.947,8540,3.978,8843,4.783,8920,5.001,9058,4.646,9283,7.977,9311,3.382,9337,4.154,9419,3.978,9647,7.824,9716,3.719,9735,3.719,11504,3.619,12626,9.209,12637,9.486,12638,4.154,14471,6.192,14507,10.063,15425,4.391,15755,4.154,15763,6.03,15772,9.209,15781,3.837,15808,4.154,15822,7.837,15827,6.464,15828,3.978,15832,4.391,15837,9.195,15849,6.297,15851,8.038,15887,5.638,15967,8.038,15968,8.038,15969,7.2,15970,4.75,15971,4.75,15972,4.75,15973,6.656,15974,4.75,15975,4.75,15976,4.75,15977,4.391,15978,4.75,15979,7.2,15980,4.75,15981,4.154,15982,4.154,15983,4.75,15984,7.2,15985,4.75,15986,4.75,15987,7.2,15988,4.75,15989,4.75,15990,4.75,15991,4.75,15992,4.75,15993,4.75,15994,3.619,15995,4.75,15996,4.75,15997,4.75,15998,4.75,15999,4.75,16000,4.75,16001,4.75,16002,4.75]],["title/injectables/OauthProviderLogoutFlowUc.html",[105,0.91,15764,5.694]],["body/injectables/OauthProviderLogoutFlowUc.html",[0,0.309,3,0.021,4,0.021,5,0.011,7,0.137,8,1.361,27,0.465,29,0.883,30,0.001,31,0.631,32,0.153,33,0.545,35,1.098,36,2.628,47,0.874,95,0.157,101,0.015,103,0.001,104,0.001,105,1.507,107,2.186,127,1.136,187,1.312,215,2.895,216,1.677,217,1.18,227,0.94,361,6.795,4194,6.459,4588,4.681,8843,7.486,9283,9.768,9311,6.459,15764,9.436,15772,9.901,15781,7.326,15808,7.933,15827,6.742,15890,11.331,16003,11.267,16004,9.07,16005,11.267,16006,9.07,16007,11.267,16008,9.07]],["title/modules/OauthProviderModule.html",[425,1.812,15760,5.694]],["body/modules/OauthProviderModule.html",[0,0.248,3,0.017,4,0.017,5,0.009,30,0.001,95,0.174,101,0.012,103,0.001,104,0.001,187,1.051,209,2.403,361,4.03,425,2.938,427,2.626,428,2.825,429,2.909,430,2.896,431,2.884,432,4.058,433,4.168,438,5.933,442,3.907,443,2.848,444,2.78,449,3.874,450,2.986,1467,2.32,1936,8.691,1954,9.414,1955,6.088,3568,7.957,4583,9.414,4588,3.752,4592,5.693,4593,3.673,8835,9.916,8836,9.648,8843,4.83,8845,6.088,12619,11.455,12626,11.049,12637,5.872,12638,6.358,14680,10.605,15755,6.358,15760,11.972,15767,6.088,15829,6.72,15957,6.72,15958,6.088,16009,7.27,16010,7.27,16011,7.27,16012,7.27,16013,7.27,16014,7.27]],["title/classes/OauthProviderRequestMapper.html",[0,0.232,15981,5.947]],["body/classes/OauthProviderRequestMapper.html",[0,0.307,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.355,27,0.371,29,0.706,30,0.001,31,0.505,32,0.122,33,0.436,35,1.091,47,0.957,59,2.806,77,5.734,95,0.144,101,0.015,103,0.001,104,0.001,199,4.834,227,0.934,344,7.055,345,7.055,349,6.08,354,9.871,358,8.328,359,4.261,361,6.22,627,3.75,4588,5.791,4671,8.632,5910,7.277,8843,5.985,8920,7.356,9311,6.415,14507,10.837,15828,7.545,15981,9.814,15982,9.814,16015,12.22,16016,9.009,16017,9.009,16018,9.009,16019,9.009]],["title/injectables/OauthProviderResponseMapper.html",[105,0.91,15765,5.694]],["body/injectables/OauthProviderResponseMapper.html",[0,0.249,3,0.017,4,0.017,5,0.009,7,0.111,8,1.185,10,2.955,27,0.508,29,0.966,30,0.001,31,0.69,32,0.168,33,0.596,35,1.492,95,0.142,101,0.012,103,0.001,104,0.001,105,1.313,107,1.765,187,1.059,227,1.278,234,2.002,339,7.295,346,4.661,349,4.942,361,7.035,974,4.342,2170,6.332,4588,6.549,5480,9.551,5498,9.902,5523,9.902,8673,6.405,8843,4.865,9307,8.789,9311,5.214,9319,9.071,14353,6.405,14471,8.42,15765,8.218,15825,9.008,15827,8.789,15828,6.132,15837,9.259,15887,9.937,15888,9.259,15982,11.099,16020,9.813,16021,9.813,16022,9.813,16023,9.813,16024,9.813,16025,9.813,16026,7.322,16027,9.813,16028,9.813,16029,6.769,16030,9.813,16031,9.813,16032,7.322,16033,7.322,16034,7.322,16035,7.322,16036,7.322]],["title/classes/OauthProviderService.html",[0,0.232,9283,4.943]],["body/classes/OauthProviderService.html",[0,0.165,2,0.541,3,0.011,4,0.011,5,0.006,7,0.073,8,0.884,9,6.724,27,0.543,29,1.024,30,0.001,31,0.732,32,0.178,33,0.632,34,1.498,35,1.594,36,2.995,47,1.019,55,2.383,56,3.511,58,5.684,59,3.278,95,0.062,100,1.625,101,0.008,103,0,104,0,163,3.019,277,3.555,335,8.214,337,9.264,351,2.435,354,7.923,461,1.674,543,6.455,3580,3.586,4194,8.178,5526,6.898,9283,5.319,9307,8.537,9888,6.548,13050,4.245,15767,11.105,15776,6.4,15777,6.4,15778,6.4,15779,7.705,15780,6.4,15809,6.765,15810,6.4,15812,6.765,15815,6.765,15817,6.765,15821,6.765,15822,9.276,15825,3.697,15827,3.607,15848,6.765,15849,6.4,15850,6.4,15852,6.4,15887,3.8,15888,3.8,15967,6.765,15968,6.765,15973,6.765,15977,6.765,16037,4.853,16038,7.318,16039,9.809,16040,4.853,16041,7.318,16042,4.853,16043,7.318,16044,4.853,16045,7.318,16046,4.853,16047,7.318,16048,4.853,16049,4.853,16050,4.853,16051,7.318,16052,4.853,16053,7.318,16054,4.853,16055,4.853,16056,7.318,16057,4.853,16058,4.853,16059,4.853,16060,4.853,16061,4.853,16062,7.318,16063,4.853,16064,7.318,16065,4.853]],["title/modules/OauthProviderServiceModule.html",[425,1.812,8835,5.324]],["body/modules/OauthProviderServiceModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.354,337,6.543,425,3.313,427,3.383,428,3.639,429,3.747,430,3.731,431,3.715,432,4.229,433,4.699,442,4.598,443,3.669,444,3.581,449,3.715,836,5.439,1155,5.439,3917,7.756,4588,4.833,8374,7.135,8835,10.419,8843,7.635,9283,10.07,15767,9.624,16066,9.365,16067,9.365,16068,9.365,16069,9.365,16070,11.492,16071,9.365]],["title/injectables/OauthProviderUc.html",[105,0.91,15766,5.694]],["body/injectables/OauthProviderUc.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.126,8,1.291,26,2.835,27,0.486,29,0.924,30,0.001,31,0.66,32,0.16,33,0.57,35,1.293,36,2.904,39,2.877,47,0.841,95,0.16,99,1.391,101,0.014,103,0.001,104,0.001,105,1.429,107,2.01,127,1.044,187,1.206,215,2.661,216,1.542,217,1.391,227,1.108,361,6.893,4588,4.303,5530,6.198,8843,7.098,9283,9.561,9311,5.937,15766,8.948,15772,10.044,15781,6.735,15850,9.345,15852,9.345,15888,6.529,15938,8.948,16072,8.338,16073,8.338,16074,10.685,16075,8.338,16076,10.685,16077,8.338,16078,8.338,16079,8.338]],["title/controllers/OauthSSOController.html",[481,2.611,15581,5.947]],["body/controllers/OauthSSOController.html",[0,0.117,3,0.008,4,0.008,5,0.004,7,0.052,8,0.673,27,0.432,29,0.822,30,0.001,31,0.587,32,0.147,33,0.507,35,1.27,36,2.39,47,0.886,52,3.335,55,0.738,59,1.067,95,0.164,100,1.147,101,0.006,103,0,104,0,111,2.372,112,2.68,127,0.429,145,0.867,148,1.714,150,1.928,185,2.734,187,0.495,204,3.679,216,1.498,217,1.562,221,1.628,227,0.73,234,1.761,264,2.34,305,2.308,334,0.368,346,8.265,347,1.126,351,1.719,355,3.256,364,1.624,367,3.864,371,0.945,376,0.784,379,1.594,447,1.42,460,1.97,461,2.185,481,1.315,483,1.633,491,4.952,511,1.731,513,5.3,529,5.611,554,3.498,555,1.781,556,1.822,561,3.772,784,3.802,806,2.267,1016,4.363,1345,2.209,1353,3.396,1369,3.834,1467,1.093,1602,2.393,1605,5.968,1615,2.869,1633,2.869,1820,2.126,1907,8.728,2004,3.821,2130,1.496,2131,1.674,2132,1.614,2170,2.21,2356,1.407,2357,2.536,2537,3.644,2727,1.643,2930,1.836,3104,2.522,3144,2.682,3743,3.267,3859,1.916,4588,4.6,4593,2.813,4865,2.351,4866,2.682,5442,1.951,6614,8.713,6616,2.053,6741,2.682,6833,2.152,7090,3.166,7131,7.47,8002,3.166,9058,2.21,10190,3.166,10253,6.626,11405,4.663,11432,5.77,11433,3.166,11434,2.996,11435,2.49,12777,3.166,13941,4.048,13944,2.869,13951,3.965,15277,2.767,15339,6.545,15340,3.166,15359,5.892,15378,2.869,15388,6.503,15509,3.166,15579,5.892,15581,4.87,15721,7.715,15733,2.996,15738,11.061,15740,2.996,15741,2.996,15770,2.996,16080,10.844,16081,3.425,16082,5.568,16083,7.035,16084,6.503,16085,5.568,16086,7.035,16087,5.568,16088,7.035,16089,5.568,16090,3.425,16091,3.425,16092,6.345,16093,7.087,16094,5.568,16095,3.425,16096,3.425,16097,7.087,16098,3.425,16099,3.425,16100,3.425,16101,3.425,16102,5.568,16103,3.425,16104,3.425,16105,5.568,16106,3.425,16107,3.425,16108,3.425,16109,3.425,16110,5.568,16111,3.425,16112,3.425,16113,5.568,16114,3.425,16115,2.996,16116,5.568,16117,3.425,16118,3.425,16119,4.663,16120,3.425,16121,3.166,16122,3.425,16123,2.996,16124,3.425,16125,2.767,16126,3.425,16127,3.425,16128,3.425,16129,3.425,16130,3.425,16131,3.425,16132,7.035,16133,3.425,16134,5.568,16135,5.568,16136,5.568,16137,3.425,16138,3.425,16139,3.425,16140,3.425,16141,5.568,16142,3.425,16143,3.425,16144,5.568,16145,5.568,16146,3.425,16147,3.425,16148,3.166,16149,3.425,16150,9.551,16151,3.425,16152,5.568,16153,5.147,16154,3.166,16155,3.425,16156,3.425,16157,3.425,16158,3.425,16159,3.425,16160,5.568,16161,5.568,16162,3.425,16163,5.147,16164,5.147,16165,5.568,16166,5.568,16167,2.996,16168,3.425,16169,2.996,16170,3.425,16171,2.996,16172,2.996,16173,2.996,16174,3.425,16175,3.425,16176,3.425,16177,3.425,16178,3.425,16179,3.425,16180,5.568,16181,5.568,16182,3.425,16183,3.425,16184,5.568,16185,3.425,16186,3.425,16187,3.425,16188,3.425,16189,3.425,16190,3.425,16191,3.425,16192,3.425,16193,3.425,16194,3.425]],["title/interfaces/OauthTokenResponse.html",[334,0.731,15426,5.493]],["body/interfaces/OauthTokenResponse.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.174,47,1.007,101,0.017,103,0.001,104,0.001,165,0.94,334,1.082,336,2.409,352,11.62,353,10.732,15360,9.306,15426,9.698,15793,12.281,16195,9.306]],["title/injectables/OauthUc.html",[105,0.91,15579,5.694]],["body/injectables/OauthUc.html",[0,0.144,3,0.01,4,0.01,5,0.005,7,0.064,8,0.796,26,2.32,27,0.408,29,0.775,30,0.001,31,0.554,32,0.135,33,0.479,35,1.106,36,2.427,39,1.14,47,0.942,48,5.873,52,4.969,59,2.521,95,0.17,99,0.707,101,0.007,102,3.309,103,0,104,0,105,0.882,107,1.021,111,2.427,112,2.71,127,0.826,145,1.072,163,1.304,167,1.559,187,0.613,189,3.655,204,3.1,216,2.093,217,1.673,221,2.846,227,0.947,234,1.483,305,1.878,334,0.455,346,4.197,347,1.637,355,4.398,425,1.757,460,7.073,461,2.09,529,3.519,738,2.202,982,2.111,1016,2.315,1142,4.231,1467,1.352,1477,2.733,1549,8.136,1567,2.907,1605,5.417,1625,4.38,1907,7.154,1920,4.197,1959,3.593,2004,2.907,2170,5.223,2356,3.325,2357,4.161,3104,4.139,3144,3.317,4483,8.136,4491,5.023,4588,2.186,4593,4.616,4671,6.681,4737,6.357,5442,4.612,6154,4.38,6833,2.661,7074,3.453,7077,6.018,9058,2.733,11196,7.794,11217,4.315,11265,3.547,11414,3.705,11415,7.987,11435,5.884,11437,3.705,11506,5.522,11568,5.601,11643,5.765,11828,3.149,13089,4.606,13951,6.506,14103,3.915,14878,3.547,15359,5.522,15395,8.57,15396,8.57,15408,8.468,15420,3.317,15421,3.705,15433,3.915,15434,3.421,15452,5.522,15468,6.095,15510,3.915,15511,3.915,15512,5.767,15513,5.767,15579,5.522,15721,9.143,15738,7.991,15740,3.705,15741,3.705,16115,3.705,16125,3.421,16148,3.915,16153,6.095,16154,3.915,16163,3.915,16164,3.915,16196,4.236,16197,5.767,16198,6.593,16199,6.593,16200,8.095,16201,4.236,16202,6.593,16203,4.236,16204,3.915,16205,10.483,16206,4.236,16207,6.095,16208,6.593,16209,4.236,16210,4.236,16211,4.236,16212,3.915,16213,3.227,16214,4.236,16215,3.915,16216,4.236,16217,4.236,16218,4.236,16219,4.236,16220,4.236,16221,4.236,16222,6.593,16223,4.236,16224,4.236,16225,4.236,16226,3.705,16227,7.08,16228,3.915,16229,3.915,16230,3.915,16231,4.236,16232,3.915,16233,3.915,16234,4.236,16235,4.236]],["title/interfaces/OcsResponse.html",[334,0.731,11327,5.055]],["body/interfaces/OcsResponse.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.167,34,1.55,47,0.959,55,2.646,101,0.023,103,0.001,104,0.001,138,4.936,163,2.804,165,0.885,334,1.465,336,2.18,347,1.843,564,3.34,692,3.404,1178,5.879,1182,6.149,1216,3.57,3090,3.94,4511,6.149,6473,5.292,11324,6.773,11325,6.941,11326,6.773,11327,8.399,11328,9.783,11329,9.13,11330,6.941,11331,6.941,11332,6.773,11333,6.941,11334,6.623,11335,6.773,11336,6.941,11337,6.773]],["title/classes/OidcConfig.html",[0,0.232,12331,4.751]],["body/classes/OidcConfig.html",[0,0.315,2,0.483,3,0.01,4,0.01,5,0.005,7,0.065,26,1.423,27,0.483,29,0.34,30,0.001,31,0.243,32,0.166,33,0.21,47,1.021,83,2.514,95,0.119,96,1.186,101,0.017,103,0,104,0,127,0.543,150,2.845,165,0.526,208,1.62,216,0.802,240,4.499,277,1.75,334,0.466,347,0.877,359,1.512,364,2.078,369,2.972,370,4.411,371,1.196,379,0.983,380,1.746,398,1.277,399,2.664,400,1.913,402,1.797,404,0.781,405,1.155,406,1.41,496,1.831,722,1.933,775,2.658,783,2.628,1031,2.575,1141,2.658,1498,2.628,1581,3.088,1613,2.69,2072,5.301,2097,3.223,2574,3.465,2578,1.933,4271,3.659,4309,4.781,4333,2.599,4588,3.465,5530,4.611,5698,3.416,5717,2.76,5718,2.976,6196,3.629,7136,2.724,7222,2.926,7278,5.607,8469,2.343,8805,2.926,9787,2.838,10293,2.425,11429,6.829,11510,3.223,11511,3.223,11512,3.223,11513,3.303,11557,2.976,11560,2.881,11562,2.976,11565,2.976,11568,2.658,11572,2.926,11613,2.838,12035,3.303,12219,3.088,12327,5.115,12328,3.502,12329,4.461,12330,7.694,12331,8.358,12332,4.219,12333,4.691,12334,5.377,12335,2.881,12336,2.881,12337,3.502,12338,4.608,12339,4.991,12340,3.395,12341,4.991,12342,3.303,12343,3.303,12344,3.303,12345,3.303,12346,3.395,12347,3.303,12348,3.303,12349,3.303,12350,3.395,12351,4.991,12352,3.395,12353,3.303,12354,3.395,12355,3.303,12356,3.303,12357,3.303,12358,3.395,12359,6.349,12360,3.502,12361,3.502,12362,3.502,12363,3.502,12364,3.502,12365,3.502,12366,3.502,12367,3.502,12368,3.502,12369,3.502,12370,3.502,12371,3.502,12372,3.395,12373,3.502,12374,3.502,12375,3.502,12376,3.502,12377,3.502,12378,3.502,12379,3.502,12380,3.502,12381,3.502,12382,3.502,12383,3.502,12384,3.502,12385,3.502,12386,3.502,12387,3.502,12388,3.502,12389,3.502,12390,3.223,12391,3.502,12392,3.502,12393,3.502,12394,3.502,12395,3.502,12396,3.502,12397,3.502,12398,3.502,12399,3.502,12400,3.502,12401,3.502,12402,3.502,12403,3.502,12404,5.423,12405,3.303,12406,3.502,12407,3.223,12408,3.395,12409,3.303,12410,3.395,12411,3.303,12412,3.303,12413,3.395,12414,3.303,12415,3.395,12416,3.303,12417,5.973,12418,5.973,12419,5.973,12420,6.108,12421,3.303,12422,3.502,12423,3.303,12424,3.502,12425,3.502,12426,3.502,12427,3.502,12428,3.502,12429,3.303,12430,3.395,12431,3.303,12432,3.395,16236,4.336,16237,4.336,16238,4.336,16239,4.336,16240,4.336,16241,4.336,16242,4.336,16243,4.336,16244,4.336]],["title/classes/OidcConfigDto.html",[0,0.232,13343,5.324]],["body/classes/OidcConfigDto.html",[0,0.27,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,27,0.564,29,0.622,30,0.001,31,0.445,32,0.186,33,0.384,47,1.011,101,0.013,103,0.001,104,0.001,127,0.995,165,0.811,2072,7.434,2097,5.905,5530,5.743,7278,6.983,12338,5.452,12339,5.905,12341,5.905,12359,7.907,12408,6.22,12410,6.22,12413,6.22,12415,6.22,12417,8.375,12418,8.375,12419,8.375,12420,8.565,13343,10.167,15638,7.343,15641,7.343,15648,7.343,15650,7.343,15651,7.343,16245,13.778,16246,10.65,16247,10.355,16248,7.943,16249,7.943,16250,7.943,16251,7.943,16252,7.943,16253,7.943,16254,7.943,16255,7.943,16256,7.943,16257,7.943,16258,7.943,16259,7.943,16260,7.943,16261,7.943,16262,7.943,16263,7.943]],["title/classes/OidcContextResponse.html",[0,0.232,5507,5.694]],["body/classes/OidcContextResponse.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.535,30,0.001,32,0.176,33,0.678,47,0.971,95,0.14,101,0.014,103,0.001,104,0.001,165,0.852,187,1.239,359,3.791,361,7.343,364,2.361,376,1.96,467,3.634,5507,9.105,5519,11.586,9633,8.504,16264,8.568,16265,11.04,16266,11.04,16267,11.04,16268,11.04,16269,8.568,16270,8.568,16271,8.568,16272,8.568,16273,8.568,16274,8.568]],["title/classes/OidcIdentityProviderMapper.html",[0,0.232,13308,5.694]],["body/classes/OidcIdentityProviderMapper.html",[0,0.28,2,0.916,3,0.019,4,0.019,5,0.01,7,0.124,8,1.279,27,0.436,29,0.829,30,0.001,31,0.593,32,0.144,33,0.512,35,0.995,47,0.835,95,0.168,101,0.014,103,0.001,104,0.001,111,1.648,116,3.648,127,1.029,154,3.764,187,1.189,216,1.52,227,0.852,355,3.303,369,2.349,839,3.919,1308,4.981,2072,5.303,5530,4.097,5698,4.182,7278,4.981,8259,8.706,8844,5.742,9285,8.99,10679,4.981,11585,6.671,11586,7.18,12329,5.46,12331,5.742,12405,6.262,12407,7.87,12409,6.262,12411,6.262,12412,6.262,12414,6.262,12416,6.262,12417,5.974,12418,5.974,12419,5.974,13229,6.11,13308,8.866,13343,9.685,13357,10.826,13372,7.598,13374,6.639,13378,11.433,13383,6.639,13402,7.598,13472,7.598,15614,7.598,16275,11.711,16276,8.219,16277,10.586,16278,8.219,16279,8.219,16280,10.586,16281,8.219,16282,8.219,16283,8.219,16284,8.219,16285,8.219,16286,8.219,16287,8.219,16288,8.219,16289,8.219]],["title/injectables/OidcMockProvisioningStrategy.html",[105,0.91,16290,5.694]],["body/injectables/OidcMockProvisioningStrategy.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,27,0.463,29,0.783,30,0.001,31,0.56,32,0.136,33,0.483,35,1.358,36,2.563,47,0.537,95,0.164,100,2.52,101,0.013,103,0.001,104,0.001,105,1.337,107,1.815,112,2.473,163,2.317,167,2.77,187,1.089,217,1.46,227,1.164,234,1.822,305,2.145,348,6.542,369,1.671,404,1.801,596,3.423,854,3.778,1570,5.596,1605,4.463,1630,5.472,1739,7.266,2139,6.449,2268,4.288,3104,3.41,6993,8.371,8443,5.001,9534,8.157,10921,9.362,11432,5.361,11714,6.202,12034,6.304,12332,8.037,12334,7.345,12335,5.001,12336,5.001,13086,7.827,13088,8.074,13089,8.936,13093,8.074,13094,8.887,13097,6.584,13098,7.615,13099,6.584,13103,6.959,13105,6.584,13106,6.959,13118,8.074,13122,6.081,13123,6.584,13124,6.959,15434,6.081,16290,8.371,16291,7.528,16292,7.528,16293,7.528,16294,7.528,16295,6.584,16296,7.528,16297,6.959,16298,9.995,16299,7.528]],["title/injectables/OidcProvisioningService.html",[105,0.91,16300,5.493]],["body/injectables/OidcProvisioningService.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.664,26,2.599,27,0.391,29,0.743,30,0.001,31,0.604,32,0.136,33,0.458,34,0.935,35,1.07,36,2.434,39,1.48,47,0.713,48,6.221,49,1.326,51,1.637,59,1.05,64,4.304,95,0.159,99,0.563,100,1.129,101,0.006,103,0,104,0,105,0.735,107,0.813,111,2.275,112,2.67,127,0.688,129,4.98,132,4.49,145,1.392,167,3.968,187,0.487,189,5.255,191,3.047,192,2.634,200,1.05,216,1.928,217,1.665,221,2.94,227,1.081,234,1.843,284,2.97,305,1.566,323,2.723,369,1.544,371,0.93,383,2.206,461,2.287,734,1.92,738,1.752,818,7.617,851,1.607,852,1.607,853,1.74,854,4.027,883,2.331,905,1.404,956,2.206,1166,5.555,1464,1.552,1467,1.076,1566,2.723,1732,2.506,1738,2.45,1852,1.423,1904,1.41,1961,2.355,2356,4.107,3049,2.45,3090,3.009,3110,3.468,3146,2.239,3147,2.175,3391,2.206,3813,2.313,4121,2.206,4205,3.195,4323,4.554,4541,5.607,4552,2.506,4572,2.4,4593,1.703,4652,7.432,4666,2.506,4737,5.506,4756,2.723,6464,3.772,6472,2.239,6528,2.4,6573,2.723,7074,5.237,7080,5.417,7083,2.723,8369,2.043,8419,8.648,8430,4.304,8432,2.823,8443,4.623,8450,5.966,8452,2.118,8458,4.696,8807,4.304,9058,3.546,9534,5.834,9646,2.723,9674,2.355,9675,2.45,9776,8.373,9785,2.823,9786,2.568,9787,4.554,10293,1.885,10752,3.498,10908,5.301,10910,8.607,10924,2.823,10925,2.823,11056,8.076,11197,8.076,12184,2.4,12646,2.64,13118,2.723,13120,2.823,13658,2.823,13814,4.603,13815,3.116,14557,2.823,14824,2.948,15441,6.432,15695,6.086,16300,4.439,16301,9.998,16302,3.371,16303,5.496,16304,5.496,16305,5.496,16306,5.496,16307,6.958,16308,3.371,16309,5.496,16310,3.371,16311,6.958,16312,5.496,16313,3.371,16314,5.496,16315,3.371,16316,5.496,16317,3.371,16318,3.371,16319,3.371,16320,3.371,16321,3.371,16322,2.948,16323,2.948,16324,8.171,16325,5.496,16326,5.496,16327,3.116,16328,5.496,16329,5.496,16330,3.116,16331,3.371,16332,3.371,16333,3.371,16334,3.371,16335,2.948,16336,5.496,16337,3.116,16338,8.026,16339,3.116,16340,3.371,16341,3.116,16342,3.371,16343,6.958,16344,5.496,16345,3.371,16346,5.496,16347,3.371,16348,5.496,16349,3.371,16350,3.116,16351,3.371,16352,3.371,16353,5.496,16354,5.081,16355,3.371,16356,3.371,16357,3.371,16358,3.371,16359,3.371,16360,8.026,16361,3.371,16362,6.958,16363,5.496,16364,5.496,16365,3.371,16366,3.371,16367,3.371,16368,3.371,16369,3.371,16370,3.371,16371,3.371,16372,3.371,16373,3.371,16374,3.371,16375,5.496,16376,3.371,16377,3.371,16378,3.371,16379,3.371,16380,3.371,16381,3.371,16382,5.496,16383,3.371,16384,5.496,16385,3.371,16386,3.371,16387,3.371,16388,3.371,16389,3.371,16390,3.371,16391,3.371,16392,3.371,16393,3.371,16394,5.496,16395,3.371,16396,3.371,16397,3.371,16398,3.371,16399,3.371,16400,3.371]],["title/injectables/OidcProvisioningStrategy.html",[105,0.91,16401,5.947]],["body/injectables/OidcProvisioningStrategy.html",[0,0.254,3,0.018,4,0.018,5,0.009,7,0.113,8,1.2,9,5.845,27,0.491,29,0.875,30,0.001,31,0.626,32,0.152,33,0.54,35,1.352,36,2.395,95,0.164,99,1.245,100,2.497,101,0.012,103,0.001,104,0.001,105,1.329,107,1.798,112,2.462,127,0.934,145,1.888,163,2.295,187,1.079,189,5.507,192,2.96,216,1.379,217,0.971,221,2.757,227,0.773,234,1.211,284,4.031,404,1.79,406,2.426,461,1.706,596,3.407,2130,3.258,2131,3.646,2132,3.514,2139,4.812,2268,4.249,2397,5.034,3859,4.171,7074,5.203,8443,4.955,10921,8.747,11714,6.164,12332,8.016,12334,4.881,13086,7.779,13088,8.024,13089,8.322,13093,6.024,13094,7.385,13098,7.568,13099,6.523,13131,6.523,15434,8.024,16226,6.523,16295,6.523,16300,10.305,16401,8.689,16402,7.458,16403,7.458,16404,7.458,16405,7.458,16406,7.458,16407,7.458,16408,6.523,16409,7.458,16410,11.011,16411,7.458,16412,7.458,16413,7.458,16414,6.894,16415,9.934,16416,7.458,16417,7.458,16418,7.458]],["title/injectables/OpenGraphProxyService.html",[105,0.91,3575,5.493]],["body/injectables/OpenGraphProxyService.html",[0,0.241,3,0.017,4,0.017,5,0.009,7,0.107,8,1.16,27,0.396,29,0.752,30,0.001,31,0.538,32,0.148,33,0.464,35,1.162,36,2.059,47,0.896,55,2.068,95,0.14,101,0.012,103,0.001,104,0.001,105,1.285,107,1.709,111,2.183,112,2.4,144,1.95,145,3.088,150,4.451,163,2.182,187,1.025,217,1.673,221,1.641,227,0.996,234,1.151,247,3.762,305,2.02,319,2.119,379,2.467,494,4.25,502,5.959,783,4.297,1397,3.646,1646,3.966,2461,4.297,2686,5.154,3575,7.757,5460,4.641,5609,7.138,5610,9.549,5663,8.877,6437,5.154,8887,5.154,16419,10.888,16420,7.09,16421,9.602,16422,9.602,16423,9.602,16424,7.09,16425,9.602,16426,12.855,16427,11.669,16428,7.09,16429,9.602,16430,9.602,16431,6.555,16432,7.09,16433,10.888,16434,7.09,16435,7.09,16436,6.202,16437,7.09,16438,7.09,16439,7.09,16440,7.09,16441,7.09,16442,7.09,16443,7.09,16444,7.09,16445,7.09,16446,7.09,16447,7.09,16448,9.602,16449,7.09,16450,9.602,16451,9.602,16452,9.602,16453,7.09]],["title/interfaces/Options.html",[334,0.731,701,2.404]],["body/interfaces/Options.html",[0,0.222,3,0.015,4,0.015,5,0.008,7,0.098,30,0.001,32,0.141,33,0.608,36,2.232,47,0.742,95,0.134,101,0.019,103,0.001,104,0.001,111,1.304,112,2.294,145,2.636,163,2.002,165,0.709,215,2.077,217,1.667,221,2.605,227,1.079,334,0.699,336,1.557,347,2.477,368,4.409,369,1.444,371,3.103,379,2.903,443,2.549,701,4.442,721,4.892,1843,5.805,1948,6.745,2139,7.902,2794,3.858,3264,3.943,3282,5.688,3478,5.691,3481,6.014,3484,5.256,3490,8.793,3491,7.071,3492,3.858,3494,5.095,3495,5.925,3578,3.358,5541,5.256,5543,5.691,7787,5.449,7788,6.015,7791,5.256,7792,8.152,7794,6.015,7795,9.838,7796,7.581,7798,6.015,7799,7.273,7801,8.152,7802,7.738,7803,4.198,7804,4.957,7806,5.691,7807,5.449,7808,10.935,7809,8.574,7810,6.9,7811,8.368,7812,5.691,7813,8.368,7814,8.368,7815,6.015,7816,6.015,7817,6.015,7818,9.425,7819,8.368,7820,9.623,7821,4.465,7822,7.917,7823,6.015,7824,6.015,7825,5.691]],["title/classes/Page.html",[0,0.232,1014,3.242]],["body/classes/Page.html",[0,0.328,2,1.074,3,0.023,4,0.023,5,0.012,7,0.146,27,0.519,29,0.755,30,0.001,31,0.54,32,0.171,33,0.466,55,2.889,101,0.016,103,0.001,104,0.001,127,1.207,163,4.128,165,0.916,692,5.011,1008,7.458,1009,6.661,1014,5.575,1026,5.34,16454,9.634,16455,11.692,16456,9.634,16457,8.906]],["title/classes/PageContentDto.html",[0,0.232,16458,5.324]],["body/classes/PageContentDto.html",[0,0.323,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.516,29,0.744,30,0.001,31,0.532,32,0.17,33,0.459,47,0.929,101,0.016,103,0.001,104,0.001,127,1.19,165,0.908,355,5.235,405,3.089,595,3.18,4476,5.809,16458,10.461,16459,13.028,16460,9.497,16461,10.478,16462,10.478,16463,11.591,16464,9.497,16465,8.78,16466,8.78,16467,8.78,16468,8.78]],["title/injectables/PageContentMapper.html",[105,0.91,16469,5.694]],["body/injectables/PageContentMapper.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.142,8,1.39,27,0.387,29,0.735,30,0.001,31,0.526,32,0.128,33,0.454,35,1.136,95,0.16,100,3.143,101,0.016,103,0.001,104,0.001,105,1.54,107,2.263,187,1.357,217,1.222,227,0.973,234,1.524,355,4.625,982,4.679,1016,4.041,4476,5.131,14834,10.066,14835,10.066,16458,10.16,16461,7.861,16462,7.861,16469,9.638,16470,11.509,16471,9.387,16472,9.387,16473,11.151,16474,9.387,16475,8.677,16476,9.387,16477,9.387]],["title/classes/PageContentQueryParams.html",[0,0.232,16478,5.947]],["body/classes/PageContentQueryParams.html",[0,0.371,2,0.96,3,0.02,4,0.028,5,0.01,7,0.13,27,0.493,30,0.001,32,0.183,47,0.897,95,0.154,101,0.014,103,0.001,104,0.001,165,0.854,355,5.055,364,2.18,374,2.746,376,1.968,379,2.712,467,3.301,1000,4.872,1013,5.48,1014,5.198,1044,4.128,2702,4.912,3104,4.939,4476,5.609,7041,8.306,10027,6.397,16478,9.535,16479,12.58,16480,8.605,16481,10.466,16482,9.666,16483,9.666,16484,11.003,16485,8.605,16486,8.605,16487,10.901,16488,8.605,16489,8.605,16490,7.526,16491,8.605]],["title/classes/PageContentResponse.html",[0,0.232,16473,5.694]],["body/classes/PageContentResponse.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.501,29,0.696,30,0.001,31,0.498,32,0.165,33,0.43,47,0.908,95,0.114,101,0.015,103,0.001,104,0.001,127,1.113,150,4.408,165,0.872,355,5.115,364,2.027,376,2.033,379,2.522,405,2.965,467,3.187,595,2.976,1013,5.096,4476,5.676,16461,10.172,16462,10.172,16465,8.218,16466,8.218,16467,8.218,16468,8.218,16473,10.976,16492,12.729,16493,8.89,16494,11.127,16495,11.127,16496,11.767,16497,11.127,16498,8.89]],["title/classes/PaginationParams.html",[0,0.232,1028,4.751]],["body/classes/PaginationParams.html",[0,0.375,2,0.976,3,0.021,4,0.021,5,0.011,7,0.132,27,0.454,30,0.001,32,0.15,33,0.612,55,2.869,56,6.259,70,5.973,95,0.142,101,0.015,103,0.001,104,0.001,144,3.031,165,0.863,247,4.318,319,3.294,364,2.007,374,2.794,375,4.594,376,2.003,379,2.497,905,4.589,907,8.688,1014,5.255,1020,7.213,1028,7.7,1034,8.093,1035,7.7,1036,9.229,1037,8.397,1038,10.188,1040,8.093,1041,6.164,1042,9.229,3470,6.234,3475,6.364,3526,7.072,5478,9.743,16499,8.754,16500,8.754,16501,8.754,16502,8.754,16503,8.754]],["title/classes/PaginationResponse.html",[0,0.232,1007,4.169]],["body/classes/PaginationResponse.html",[0,0.263,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,9,5.688,27,0.517,29,0.604,30,0.001,31,0.432,32,0.186,33,0.607,55,3.068,56,6.299,59,3.164,70,6.502,95,0.099,101,0.013,103,0.001,104,0.001,127,0.966,163,3.496,165,0.796,364,2.199,376,1.765,379,2.736,467,3.291,692,3.795,1007,6.229,1008,7.097,1013,5.529,1014,5.756,1015,5.682,1016,3.567,1018,7.789,1019,7.481,1020,6.649,1021,5.404,4618,6.972,16457,7.132,16504,7.715,16505,10.159,16506,7.715,16507,7.715,16508,7.715,16509,7.715,16510,7.715,16511,7.715,16512,7.715]],["title/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.232,203,5.947]],["body/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,8,1.326,27,0.453,29,0.681,30,0.001,31,0.487,32,0.181,33,0.421,35,1.053,47,0.858,95,0.141,101,0.015,103,0.001,104,0.001,108,6.985,127,1.089,163,2.677,187,1.258,200,2.709,203,9.6,209,2.874,214,3.46,215,2.776,216,1.608,227,0.902,290,5.103,404,1.978,406,2.829,1216,3.408,1464,5.538,1465,6.206,1467,2.776,1469,6.254,3228,7.655,8288,6.252,8289,6.499,8738,5.536,8745,5.103,8746,5.333,8754,7.284,8755,7.284,13144,7.284,16513,12.026,16514,12.026,16515,8.698,16516,12.026,16517,8.698,16518,8.698,16519,8.698]],["title/classes/PatchGroupParams.html",[0,0.232,7373,5.947]],["body/classes/PatchGroupParams.html",[0,0.391,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.385,30,0.001,31,0.643,32,0.127,47,0.818,95,0.16,100,3.842,101,0.016,103,0.001,104,0.001,165,0.899,364,1.702,374,2.982,376,2.137,379,2.601,467,3.011,469,4.102,470,4.8,1166,6.215,1397,4.452,2553,5.522,6828,8.891,7049,7.547,7051,8.743,7373,10.037,16520,10.037,16521,9.343,16522,10.037,16523,9.343]],["title/classes/PatchMyAccountParams.html",[0,0.232,547,5.947]],["body/classes/PatchMyAccountParams.html",[0,0.32,2,0.765,3,0.016,4,0.016,5,0.008,7,0.104,27,0.497,30,0.001,31,0.645,32,0.164,33,0.628,47,0.95,87,6.05,95,0.148,101,0.011,103,0.001,104,0.001,165,0.735,234,2.107,364,2.196,368,5.217,369,2.955,370,4.387,371,3.672,374,2.19,376,1.569,379,2.732,461,3.046,467,3.266,468,7.585,469,3.012,470,5.043,471,4.887,472,4.631,473,8.68,474,5.746,475,3.354,476,5.746,479,5.1,547,8.213,575,5.628,851,5.105,852,5.105,853,6.222,1798,5.299,2925,5.628,4618,9.139,5454,7.353,6986,8.213,16524,11.508,16525,6.861,16526,10.705,16527,10.705,16528,6.861,16529,7.864,16530,6.861,16531,6.861,16532,6.861,16533,6.861,16534,6.861,16535,8.213,16536,6.861]],["title/classes/PatchMyPasswordParams.html",[0,0.232,518,5.947]],["body/classes/PatchMyPasswordParams.html",[0,0.37,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.448,30,0.001,32,0.148,47,0.896,87,6.951,95,0.161,101,0.014,103,0.001,104,0.001,165,0.852,234,2.039,364,1.98,368,4.921,369,2.787,370,4.138,371,3.464,374,2.735,376,1.96,379,2.464,461,2.873,467,3.133,468,9.647,469,3.762,470,4.996,472,5.783,474,7.176,475,4.188,476,9.105,518,9.509,577,6.136,12043,8.082,16524,11.04,16537,8.568,16538,11.942,16539,10.872,16540,10.872,16541,8.568,16542,8.568]],["title/classes/PatchOrderParams.html",[0,0.232,16543,5.947]],["body/classes/PatchOrderParams.html",[0,0.39,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.383,30,0.001,32,0.126,47,0.816,95,0.147,100,3.831,101,0.016,103,0.001,104,0.001,165,0.896,234,1.858,364,1.694,369,2.064,374,2.968,376,2.127,379,2.593,467,3.002,770,6.785,1000,4.659,1041,7.427,1858,5.994,2144,7.3,2450,5.298,2627,4.809,3833,7.854,4051,7.512,5477,7.284,16520,10.009,16522,10.009,16543,10.009,16544,9.3,16545,9.3,16546,10.578,16547,9.3]],["title/classes/PatchVisibilityParams.html",[0,0.232,16548,5.947]],["body/classes/PatchVisibilityParams.html",[0,0.394,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.391,30,0.001,32,0.129,95,0.149,100,3.876,101,0.016,103,0.001,104,0.001,165,0.907,347,2.341,364,1.726,369,2.569,371,3.192,373,6.205,374,3.024,376,2.167,379,2.623,467,3.037,2553,5.549,2627,4.864,4076,11.677,4882,7.273,4883,7.469,7058,8.287,16520,10.124,16522,10.124,16548,10.124,16549,9.475,16550,9.475]],["title/injectables/PermissionService.html",[105,0.91,440,5.694]],["body/injectables/PermissionService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.293,27,0.441,29,0.838,30,0.001,31,0.6,32,0.146,33,0.518,35,1.393,47,0.925,95,0.137,101,0.011,102,4.712,103,0.001,104,0.001,105,1.256,107,1.654,111,2.146,187,0.992,217,1.498,227,1.194,234,1.525,235,5.299,247,4.194,264,2.883,305,1.955,347,1.899,371,1.892,440,8.965,461,3.14,496,5.256,569,6.444,571,5.9,574,4.122,766,2.87,1019,3.985,1799,6.488,1845,6.343,1847,6.343,1848,6.343,1849,6.396,1852,2.897,1854,6.238,1859,6.343,1860,6.343,1884,5.075,1959,3.739,2439,5.51,3110,5.738,4052,6.281,4659,6.238,5462,6.56,7795,7.353,9342,7.353,9606,8.68,10317,8.68,12161,7.585,12163,5.542,12170,5.542,16551,6.861,16552,9.39,16553,9.39,16554,9.39,16555,6.861,16556,9.39,16557,6.861,16558,9.39,16559,9.39,16560,8.68,16561,9.39,16562,6.861,16563,6.861,16564,6.861,16565,6.861,16566,6.861,16567,6.861,16568,9.39,16569,6.861,16570,9.39,16571,6.861,16572,6.861]],["title/interfaces/PlainTextMailContent.html",[334,0.731,1494,5.055]],["body/interfaces/PlainTextMailContent.html",[3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,31,0.489,32,0.15,33,0.532,47,1.021,77,5.56,101,0.015,103,0.001,104,0.001,165,0.862,334,1.452,336,2.091,404,2.35,1482,8.181,1483,6.655,1484,8.957,1485,8.385,1486,6.655,1487,4.886,1488,8.181,1489,6.35,1490,6.655,1491,6.35,1492,9.403,1493,6.655,1494,8.957,1495,9.934,1496,9.934,1497,8.181,1498,6.67,1499,6.494,1500,6.494,1501,6.655,1502,6.655]],["title/classes/PreviewActionsLoggable.html",[0,0.232,16573,5.493]],["body/classes/PreviewActionsLoggable.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,8,1.346,27,0.459,29,0.698,30,0.001,31,0.499,32,0.121,33,0.431,35,1.078,47,0.867,95,0.143,101,0.015,103,0.001,104,0.001,111,1.786,127,1.116,163,2.742,214,3.513,215,2.844,216,2.06,217,1.159,227,0.924,231,6.74,334,0.957,565,4.441,1216,4.764,1464,5.6,1465,6.275,1467,2.844,1469,6.308,1817,6.977,3849,6.788,6248,5.671,10776,8.283,10777,8.1,16573,9.001,16574,8.345,16575,12.159,16576,8.909,16577,9.261,16578,8.909,16579,8.909,16580,6.623,16581,7.197,16582,8.909,16583,8.909]],["title/classes/PreviewBuilder.html",[0,0.232,16584,5.947]],["body/classes/PreviewBuilder.html",[0,0.253,2,0.829,3,0.018,4,0.018,5,0.009,7,0.112,8,1.197,27,0.409,29,0.776,30,0.001,31,0.555,32,0.135,33,0.479,34,1.897,35,1.2,47,0.795,95,0.159,101,0.012,103,0.001,104,0.001,116,3.086,145,2.823,185,3.851,217,1.72,227,1.028,231,5.493,334,0.798,380,1.579,565,5.928,627,3.91,717,3.922,982,3.704,1487,5.542,3010,4.156,4205,2.504,6170,5.164,6188,7.921,6244,8.604,6248,4.73,10586,6.223,10730,9.061,10774,10.676,10775,9.752,10776,8.841,10777,8.645,16577,8.105,16580,5.524,16584,8.667,16585,7.43,16586,11.149,16587,9.909,16588,7.43,16589,7.43,16590,9.909,16591,7.43,16592,7.43,16593,7.43,16594,7.43,16595,7.43,16596,7.43,16597,7.43,16598,7.43,16599,7.43,16600,7.43]],["title/interfaces/PreviewConfig.html",[334,0.731,16601,5.694]],["body/interfaces/PreviewConfig.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.161,47,0.704,55,2.126,95,0.127,101,0.02,103,0.001,104,0.001,165,0.929,334,1.275,336,2.362,3580,4.018,6267,8.401,9797,6.557,11577,6.661,11971,7.972,11973,7.972,12248,9.058,14561,7.174,16574,6.774,16601,9.936,16602,9.124,16603,11.053,16604,11.053]],["title/interfaces/PreviewFileOptions.html",[334,0.731,16577,4.943]],["body/interfaces/PreviewFileOptions.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.171,47,0.993,55,2.075,101,0.021,103,0.001,104,0.001,165,0.916,334,1.352,336,2.305,347,1.949,564,3.532,565,4.802,6248,6.132,10776,9.732,10777,9.75,16574,6.612,16577,8.499,16580,10.351,16605,8.426,16606,7.544]],["title/interfaces/PreviewFileParams.html",[334,0.731,10774,5.493]],["body/interfaces/PreviewFileParams.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,31,0.479,32,0.185,33,0.525,47,1.021,55,1.842,95,0.153,101,0.018,103,0.001,104,0.001,163,2.631,165,0.85,334,1.166,336,2.046,380,1.817,565,6.256,982,4.262,1342,6.822,1344,5.596,6170,3.96,6188,8.159,6244,8.665,6274,6.356,6275,6.089,6276,6.356,6277,6.356,10236,6.514,10730,9.562,10773,7.904,10774,8.77,10775,10.978,10776,9.33,10777,9.123]],["title/modules/PreviewGeneratorAMQPModule.html",[425,1.812,16607,5.947]],["body/modules/PreviewGeneratorAMQPModule.html",[0,0.326,3,0.023,4,0.023,5,0.012,30,0.001,95,0.161,101,0.016,103,0.001,104,0.001,187,1.383,425,3.344,427,3.455,428,3.717,429,3.827,430,3.811,431,3.795,432,3.52,433,3.615,442,4.658,443,3.748,444,3.658,449,4.619,717,5.048,1359,7.287,3578,4.936,6170,4.43,6249,6.088,6267,7.41,10415,8.842,10586,8.01,10594,8.366,11970,10.762,12248,6.565,16603,8.01,16607,11.906,16608,9.565,16609,9.565,16610,11.21,16611,9.565]],["title/classes/PreviewGeneratorBuilder.html",[0,0.232,16612,5.947]],["body/classes/PreviewGeneratorBuilder.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.016,7,0.138,8,1.369,27,0.377,29,0.717,30,0.001,31,0.513,32,0.124,33,0.443,35,1.108,95,0.158,101,0.015,103,0.001,104,0.001,116,2.851,163,2.817,217,1.475,227,0.949,334,0.983,565,5.648,627,3.776,1344,5.99,1487,5.119,3580,3.726,5551,10.474,6249,7.212,6632,10.771,9797,6.08,16574,7.776,16580,10.253,16612,9.91,16613,9.153,16614,9.152,16615,11.331,16616,9.152]],["title/injectables/PreviewGeneratorConsumer.html",[105,0.91,16617,5.947]],["body/injectables/PreviewGeneratorConsumer.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.43,29,0.817,30,0.001,31,0.584,32,0.142,33,0.505,35,0.973,95,0.17,101,0.013,103,0.001,104,0.001,105,1.396,107,1.938,111,1.611,112,2.554,116,3.609,127,1.007,145,2.642,187,1.162,215,2.566,216,1.486,217,1.046,221,1.86,227,0.834,231,6.424,334,0.864,364,1.464,1016,3.664,1216,3.15,1312,4.988,1314,6.733,1345,3.189,1351,5.616,1352,5.187,1467,2.566,2356,5.447,6249,5.117,10500,7.431,10502,9.127,10509,7.431,10510,9.647,10517,7.031,16573,6.493,16574,7.953,16577,8.915,16613,9.36,16617,9.127,16618,8.038,16619,9.127,16620,8.038,16621,10.908,16622,8.038,16623,8.038,16624,9.704,16625,8.038,16626,7.431,16627,7.031,16628,7.031,16629,7.031,16630,8.038,16631,10.436,16632,8.038,16633,6.732,16634,8.038,16635,8.038]],["title/modules/PreviewGeneratorConsumerModule.html",[425,1.812,16610,5.694]],["body/modules/PreviewGeneratorConsumerModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,8,0.981,27,0.335,29,0.636,30,0.001,31,0.455,32,0.11,33,0.393,35,0.983,95,0.175,101,0.014,103,0.001,104,0.001,154,5.333,187,1.174,217,1.367,227,0.842,234,1.318,425,3.102,427,2.933,432,3.865,438,4.921,449,3.221,627,3.223,717,5.544,801,4.716,836,4.716,837,5.782,839,3.872,1301,7.735,1467,2.592,2356,5.237,3580,3.306,6249,6.686,8358,5.394,9797,5.394,10025,6.186,10575,7.48,10582,5.902,10588,6.036,10592,5.902,10593,5.673,10765,6.559,10766,7.808,12248,7.209,14561,5.902,16574,7.209,16601,10.31,16603,6.8,16610,9.751,16613,8.485,16617,9.187,16621,8.796,16629,7.101,16636,8.119,16637,7.101,16638,10.504,16639,8.119,16640,8.119,16641,8.119,16642,8.119,16643,8.119,16644,8.119]],["title/modules/PreviewGeneratorProducerModule.html",[425,1.812,10585,5.694]],["body/modules/PreviewGeneratorProducerModule.html",[0,0.306,3,0.021,4,0.021,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,187,1.3,425,3.253,427,3.247,428,3.493,429,3.597,430,3.581,431,3.566,432,4.492,433,4.614,438,6.281,442,4.483,443,3.522,444,3.437,449,4.445,717,4.744,1352,5.8,1467,2.869,10575,9.548,10585,11.754,16574,6.169,16613,7.261,16645,8.989,16646,8.989,16647,8.989,16648,8.989,16649,11.809,16650,8.989,16651,8.989]],["title/injectables/PreviewGeneratorService.html",[105,0.91,16621,5.694]],["body/injectables/PreviewGeneratorService.html",[0,0.217,3,0.015,4,0.015,5,0.014,7,0.096,8,1.079,27,0.484,29,0.874,30,0.001,31,0.625,32,0.152,33,0.54,35,1.247,36,2.393,47,0.735,95,0.164,101,0.011,103,0.001,104,0.001,105,1.195,107,1.539,111,2.631,112,2.683,116,3.209,127,0.799,144,1.755,145,1.616,165,0.7,185,4.337,187,0.923,215,2.037,216,1.18,217,1.659,221,2.385,227,1.068,319,1.908,334,0.686,369,1.416,564,2.34,565,3.182,1344,4.177,1467,2.037,1750,3.962,2356,5.133,3303,6.36,3580,2.599,6244,7.104,6248,5.685,6249,6.558,6273,8.113,6632,8.629,9797,4.24,10055,6.64,10765,7.215,10766,8.296,10776,4.745,10777,6.493,16573,5.156,16574,8.354,16577,8.113,16580,9.049,16606,4.998,16612,5.583,16613,9.833,16619,7.812,16621,7.48,16627,5.583,16628,5.583,16633,7.48,16652,5.9,16653,11.746,16654,8.932,16655,8.932,16656,5.9,16657,8.932,16658,8.932,16659,6.383,16660,6.383,16661,8.257,16662,6.383,16663,8.932,16664,6.383,16665,10.303,16666,5.9,16667,6.383,16668,6.383,16669,6.383,16670,6.383,16671,6.383,16672,6.383,16673,6.383,16674,6.383,16675,6.383,16676,6.383,16677,6.383,16678,6.383,16679,6.383]],["title/interfaces/PreviewModuleConfig.html",[334,0.731,16604,5.694]],["body/interfaces/PreviewModuleConfig.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.161,47,0.907,55,2.74,95,0.127,101,0.02,103,0.001,104,0.001,165,0.929,334,1.275,336,2.362,3580,4.018,6267,7.552,9797,6.557,11577,6.661,11971,10.661,11973,10.661,12248,6.774,14561,7.174,16574,6.774,16601,8.265,16602,9.124,16603,8.265,16604,10.654]],["title/interfaces/PreviewOptions.html",[334,0.731,16580,5.055]],["body/interfaces/PreviewOptions.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.16,33,0.57,47,0.975,55,2.726,101,0.021,103,0.001,104,0.001,165,0.923,334,1.36,336,2.333,347,1.972,564,3.574,565,6.552,6248,8.367,10776,7.248,10777,8.562,16574,6.692,16577,7.088,16580,9.771,16605,8.528,16606,7.635]],["title/classes/PreviewParams.html",[0,0.232,6244,4.328]],["body/classes/PreviewParams.html",[0,0.453,2,0.687,3,0.015,4,0.021,5,0.011,7,0.093,26,2.551,27,0.417,30,0.001,32,0.168,33,0.582,39,1.658,47,0.949,95,0.159,99,1.028,101,0.022,103,0,104,0,150,2.132,165,0.682,204,2.089,214,1.942,334,0.662,347,2.044,364,1.841,369,1.933,373,4.669,374,1.966,375,4.184,376,1.409,377,5.786,379,1.396,380,1.309,467,3.617,469,2.704,470,5.034,471,4.453,565,3.07,1000,4.899,1001,6.584,1031,3.167,1044,2.954,1180,2.65,1270,3.651,1330,5.544,1331,4.031,1332,4.031,2702,4.553,2889,5.74,3610,3.01,4205,2.076,5836,6.483,6170,5.088,6183,7.19,6189,5.986,6217,3.03,6220,4.227,6221,4.303,6222,4.303,6225,7.701,6228,4.303,6229,7.994,6230,8.407,6231,8.407,6232,4.303,6233,4.227,6234,6.82,6235,4.227,6236,4.303,6237,4.156,6238,5.878,6239,4.091,6240,4.156,6241,4.227,6242,4.156,6243,4.156,6244,5.544,6245,4.303,6246,7.06,6247,4.303,6248,6.432,6249,5.544,6250,5.7,6251,5.786,6252,7.06,10669,8.051,10690,5.693,16680,6.158,16681,6.158,16682,6.158,16683,6.158,16684,6.158]],["title/injectables/PreviewProducer.html",[105,0.91,16649,5.694]],["body/injectables/PreviewProducer.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.128,27,0.496,29,0.996,30,0.001,31,0.673,32,0.173,33,0.581,35,1.388,36,2.002,47,0.885,55,1.465,95,0.166,101,0.011,103,0.001,104,0.001,105,1.249,107,1.64,111,1.364,112,2.649,127,1.169,148,2.094,154,3.116,187,0.984,216,1.971,217,1.215,221,1.575,227,0.705,231,7.284,334,0.731,367,4.452,404,1.682,596,3.251,661,5.443,692,3.488,711,5.535,789,8.323,801,3.952,1016,3.742,1312,4.222,1314,4.39,1337,5.495,1338,9.23,1345,3.704,1351,4.753,1352,4.39,1467,2.171,2356,5.223,3901,7.541,3937,7.923,8358,4.52,10025,5.183,10512,6.94,10613,10.398,10614,8.165,10615,8.165,10623,5.95,10624,6.289,10625,5.95,10626,6.289,10627,5.95,10628,6.289,10630,6.289,13048,6.289,14561,4.945,16573,5.495,16574,7.315,16577,8.338,16604,5.697,16606,5.327,16624,7.818,16626,6.289,16627,5.95,16628,5.95,16633,7.818,16649,7.818,16685,6.803,16686,6.803,16687,9.335,16688,6.803,16689,6.803,16690,6.803,16691,6.803,16692,6.803]],["title/interfaces/PreviewResponseMessage.html",[334,0.731,16606,5.324]],["body/interfaces/PreviewResponseMessage.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.161,47,0.976,55,2.11,101,0.021,103,0.001,104,0.001,165,0.925,334,1.362,336,2.345,347,2.565,564,4.827,565,4.884,6248,6.237,10776,7.283,10777,9.795,16574,6.724,16577,7.122,16580,9.427,16605,8.569,16606,9.25]],["title/injectables/PreviewService.html",[105,0.91,10497,5.694]],["body/injectables/PreviewService.html",[0,0.178,3,0.012,4,0.012,5,0.014,7,0.079,8,0.935,27,0.485,29,0.922,30,0.001,31,0.691,32,0.16,33,0.569,35,1.377,36,2.692,47,0.657,59,1.629,95,0.164,101,0.009,103,0,104,0,105,1.035,107,1.261,111,2.655,112,2.919,116,3.543,127,0.969,148,2.382,185,3.956,187,0.756,204,3.454,206,2.661,216,1.431,217,1.606,221,2.797,227,0.955,231,2.9,234,0.849,305,2.205,334,0.562,380,1.111,711,3.102,717,2.761,784,2.827,806,2.13,839,2.494,982,2.607,1016,3.574,1185,3.725,1369,2.851,1467,1.67,2356,3.784,2357,4.637,2401,3.802,2406,4.096,2644,4.149,3010,2.926,3578,2.7,3580,2.13,6170,5.598,6188,7.876,6190,3.725,6194,6.252,6207,4.225,6213,4.225,6244,7.857,6249,3.33,9058,5.944,9797,3.475,10048,3.725,10103,4.096,10139,4.575,10233,4.575,10236,5.897,10303,3.985,10497,6.481,10586,4.381,10594,4.575,10730,8.668,10765,6.252,10766,7.568,10774,10.288,10777,3.802,11969,4.836,16584,4.575,16619,6.769,16649,9.858,16656,4.836,16661,7.154,16693,5.231,16694,7.739,16695,7.739,16696,9.212,16697,7.739,16698,7.739,16699,5.231,16700,7.739,16701,5.231,16702,7.739,16703,5.231,16704,5.231,16705,5.231,16706,5.231,16707,7.739,16708,5.231,16709,7.739,16710,5.231,16711,5.231,16712,5.231,16713,5.231,16714,5.231,16715,5.231,16716,5.231,16717,5.231,16718,5.231,16719,4.836,16720,5.231,16721,5.231,16722,5.231,16723,5.231,16724,7.739,16725,7.739,16726,5.231,16727,5.231,16728,5.231,16729,5.231,16730,5.231,16731,5.231]],["title/classes/PrometheusMetricsConfig.html",[0,0.232,16732,5.947]],["body/classes/PrometheusMetricsConfig.html",[0,0.23,2,0.755,3,0.016,4,0.016,5,0.008,7,0.102,8,1.124,27,0.565,30,0.001,32,0.169,35,0.819,47,0.816,55,2.465,95,0.087,101,0.011,103,0.001,104,0.001,111,2.813,116,2.898,127,1.331,145,1.714,148,2.083,165,0.729,216,2.547,227,1.286,234,1.51,347,2.735,627,3.897,884,4.384,1323,7.426,2130,2.957,2131,3.309,2132,3.19,2133,4.309,5183,6.679,8672,5.157,9570,8.324,16732,10.011,16733,6.769,16734,10.63,16735,10.63,16736,10.63,16737,10.63,16738,10.63,16739,10.63,16740,10.011,16741,10.63,16742,9.826,16743,9.826,16744,6.769,16745,6.769,16746,6.769,16747,6.769,16748,6.769,16749,6.769,16750,6.769,16751,6.769,16752,6.769,16753,6.769,16754,6.769,16755,6.769,16756,6.769,16757,6.769,16758,6.769,16759,6.769,16760,6.769,16761,6.769,16762,6.769,16763,9.303,16764,9.303,16765,9.303,16766,9.303,16767,9.303,16768,6.769,16769,6.769,16770,6.769,16771,6.769,16772,6.769,16773,11.446]],["title/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.232,16774,6.286]],["body/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.227,2,0.745,3,0.016,4,0.016,5,0.008,7,0.101,8,1.113,27,0.38,29,0.523,30,0.001,31,0.374,32,0.091,33,0.323,35,0.808,95,0.146,101,0.019,103,0.001,104,0.001,127,0.837,163,2.056,214,2.906,215,2.132,216,1.235,217,1.607,227,1.095,234,2.005,319,1.996,460,6.071,549,4.584,1016,2.345,1021,3.553,1031,2.093,1216,2.617,1323,4.666,1414,3.735,1431,3.805,1461,5.842,1463,5.842,1464,5.241,1465,5.448,1467,2.132,1468,7.72,1469,5.636,1647,8.975,1770,3.879,2075,3.671,2356,4.905,2412,4.251,6616,6.326,6712,5.948,6886,5.089,8025,4.965,9570,8.912,11774,6.719,14107,4.965,15446,9.954,16732,5.842,16742,9.758,16743,9.758,16774,10.521,16775,10.555,16776,6.679,16777,6.679,16778,11.381,16779,6.679,16780,6.679,16781,5.842,16782,6.679,16783,6.679,16784,6.679,16785,12.347,16786,13.588,16787,6.679,16788,6.679,16789,6.679,16790,5.23,16791,6.679,16792,6.679,16793,9.218,16794,6.679,16795,6.679,16796,5.395,16797,6.679,16798,9.218,16799,11.941,16800,6.679,16801,6.679,16802,6.679,16803,6.679,16804,6.679,16805,6.679,16806,6.679,16807,6.679,16808,9.218,16809,6.679,16810,6.679,16811,6.679,16812,6.679,16813,6.679]],["title/classes/PropertyData.html",[0,0.232,134,5.324]],["body/classes/PropertyData.html",[0,0.31,2,1.016,3,0.022,4,0.022,5,0.011,7,0.138,27,0.529,29,0.714,30,0.001,31,0.719,32,0.175,33,0.594,47,0.916,95,0.117,101,0.015,103,0.001,104,0.001,108,7.668,127,1.141,134,10.337,144,3.378,165,0.885,207,10.286,240,2.89,331,8.174,405,3.011,595,3.05,2095,3.615,4281,3.98,7181,7.134,7220,7.63,7221,7.63,7247,7.63,16814,13.201,16815,8.422,16816,11.299,16817,9.111,16818,9.111]],["title/interfaces/ProviderConsentResponse.html",[334,0.731,15825,5.181]],["body/interfaces/ProviderConsentResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.188,33,0.692,47,1.025,70,5.96,77,7.661,95,0.13,101,0.013,103,0.001,104,0.001,165,0.792,199,4.549,334,0.823,336,1.832,337,5.349,347,2.289,356,10.527,357,10.527,359,3.945,1529,6.412,3580,4.9,4194,8.571,5482,11.126,5483,11.126,5484,10.079,5485,10.079,5486,10.079,5487,9.722,9307,8.947,15825,7.701,16819,7.656,16820,10.079,16821,7.078,16822,7.078,16823,6.697]],["title/interfaces/ProviderConsentSessionResponse.html",[334,0.731,15888,5.324]],["body/interfaces/ProviderConsentSessionResponse.html",[3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.187,33,0.679,47,0.997,55,2.595,95,0.112,101,0.015,103,0.001,104,0.001,138,4.808,165,0.862,334,0.938,336,2.091,337,6.103,341,11.693,342,11.064,343,11.693,344,9.905,345,9.905,346,8.052,347,2.437,352,7.64,353,7.056,5525,8.075,15825,9.637,15888,8.618,16824,8.735,16825,12.649,16826,8.735]],["title/interfaces/ProviderLoginResponse.html",[334,0.731,15887,5.324]],["body/interfaces/ProviderLoginResponse.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,32,0.187,33,0.607,47,1.019,70,6.22,77,7.995,95,0.14,101,0.014,103,0.001,104,0.001,165,0.852,334,0.921,336,2.051,337,5.986,347,2.415,1529,7.176,3580,5.114,4194,8.945,5484,10.519,5485,10.519,5486,10.519,5487,10.146,9307,9.337,14514,11.611,15887,8.513,16820,10.519,16821,7.921,16822,7.921,16823,7.494,16827,8.568]],["title/interfaces/ProviderOidcContext.html",[334,0.731,16820,5.694]],["body/interfaces/ProviderOidcContext.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.181,33,0.679,47,1.011,101,0.016,103,0.001,104,0.001,165,0.901,334,1.008,336,2.246,337,6.558,359,4.339,1797,8.677,9633,9.24,16265,11.995,16266,11.995,16267,11.995,16268,11.995,16820,9.638,16828,9.387]],["title/interfaces/ProviderRedirectResponse.html",[334,0.731,15827,5.055]],["body/interfaces/ProviderRedirectResponse.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,47,0.933,101,0.018,103,0.001,104,0.001,165,0.966,334,1.132,336,2.523,337,7.364,15827,9.171,16829,10.541,16830,12.466]],["title/classes/ProvisioningDto.html",[0,0.232,13098,5.181]],["body/classes/ProvisioningDto.html",[0,0.343,2,1.123,3,0.024,4,0.024,5,0.012,7,0.152,27,0.495,29,0.789,30,0.001,31,0.564,32,0.163,33,0.487,47,0.856,101,0.017,103,0.001,104,0.001,127,1.261,165,0.94,8443,8.524,8446,8.805,13098,10.495,16831,10.067,16832,12.006,16833,12.006,16834,10.067]],["title/modules/ProvisioningModule.html",[425,1.812,15578,5.324]],["body/modules/ProvisioningModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,30,0.001,95,0.176,101,0.012,103,0.001,104,0.001,187,1.004,191,3.849,192,2.069,425,2.87,427,2.508,428,2.698,429,2.778,430,2.767,431,2.755,432,3.964,433,4.071,437,8.897,438,5.853,442,3.788,443,2.721,444,2.655,449,3.756,1155,4.033,1467,2.216,1547,9.287,1548,8.729,1566,5.609,3568,7.85,3709,4.613,3917,6.39,4519,4.766,4593,3.508,5333,7.953,8432,5.815,10939,10.092,13083,10.463,15395,10.633,15578,11.231,16290,10.463,16300,10.092,16408,6.073,16835,6.944,16836,6.944,16837,6.944,16838,6.944,16839,10.463,16840,10.463,16841,6.944,16842,6.944,16843,6.944,16844,6.944,16845,6.944,16846,6.944]],["title/injectables/ProvisioningService.html",[105,0.91,15395,5.324]],["body/injectables/ProvisioningService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.012,27,0.514,29,0.925,30,0.001,31,0.662,32,0.165,33,0.571,35,1.374,36,2.61,47,0.939,48,3.946,95,0.156,100,1.952,101,0.01,103,0,104,0,105,1.12,107,1.405,111,2.581,112,2.795,127,1.049,144,1.603,145,1.476,148,1.794,163,2.577,165,0.656,187,0.843,216,1.981,217,1.651,221,2.269,227,1.111,234,1.74,305,1.661,319,1.742,348,7.013,661,4.119,1353,2.814,1567,4,1625,7.119,2268,3.32,3104,4.441,3364,6.047,4519,8.705,11196,8.414,11217,6.415,11265,4.881,11660,8.573,12332,7.97,12334,7.013,12335,3.872,12336,3.872,13083,8.973,13086,6.558,13089,7.929,13094,7.287,13098,7.468,13122,4.708,15395,6.558,15699,7.676,16213,4.441,16290,8.973,16839,8.973,16847,5.829,16848,8.375,16849,8.375,16850,8.375,16851,8.375,16852,5.388,16853,9.802,16854,9.802,16855,9.802,16856,5.829,16857,8.375,16858,5.829,16859,8.375,16860,5.829,16861,8.375,16862,5.829,16863,5.829,16864,8.375,16865,5.829,16866,8.375,16867,5.829,16868,5.829,16869,5.098,16870,5.829,16871,5.829,16872,5.829,16873,5.829,16874,5.829,16875,5.829,16876,5.829,16877,5.829,16878,5.829,16879,8.375,16880,5.829,16881,5.829,16882,5.829,16883,5.829,16884,5.829]],["title/classes/ProvisioningStrategy.html",[0,0.232,12332,4.272]],["body/classes/ProvisioningStrategy.html",[0,0.31,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,9,6.588,27,0.506,29,0.884,30,0.001,31,0.632,32,0.153,33,0.546,35,1.485,36,2.751,95,0.145,100,3.044,101,0.015,103,0.001,104,0.001,163,2.798,2268,5.178,10921,10.047,11714,7.001,12332,7.089,12334,8.03,12335,6.039,12336,6.039,13086,8.835,13088,9.114,13089,8.964,13093,9.114,13094,9.538,13098,6.926,16885,9.09,16886,9.09,16887,9.09,16888,9.09]],["title/classes/ProvisioningSystemDto.html",[0,0.232,15699,5.324]],["body/classes/ProvisioningSystemDto.html",[0,0.31,2,1.016,3,0.022,4,0.022,5,0.011,7,0.138,26,2.604,27,0.529,29,0.714,30,0.001,31,0.51,32,0.175,33,0.594,47,0.806,48,5.788,95,0.145,99,1.52,101,0.015,103,0.001,104,0.001,127,1.141,165,0.885,405,3.011,417,6.623,418,7.134,595,3.05,12332,7.717,12333,8.581,12334,8.039,12335,6.053,12336,6.053,12429,6.941,12430,7.134,12431,6.941,12432,7.134,15699,10.337,16889,13.201,16890,9.111,16891,11.299,16892,9.111,16893,9.111]],["title/classes/ProvisioningSystemInputMapper.html",[0,0.232,16869,5.947]],["body/classes/ProvisioningSystemInputMapper.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,8,1.388,27,0.386,29,0.734,30,0.001,31,0.525,32,0.127,33,0.453,35,1.134,48,4.413,95,0.16,100,3.848,101,0.016,103,0.001,104,0.001,145,2.371,227,0.971,234,1.521,627,3.815,3104,5.206,6410,7.843,11217,8.485,12332,5.884,12333,6.543,12334,6.129,12335,6.222,12336,6.222,15699,8.999,16213,7.135,16869,10.052,16894,11.492,16895,9.365,16896,11.492,16897,11.492,16898,9.365,16899,9.365,16900,9.365,16901,9.365]],["title/classes/Pseudonym.html",[0,0.232,8920,3.911]],["body/classes/Pseudonym.html",[0,0.282,2,0.922,3,0.02,4,0.02,5,0.01,7,0.125,8,1.284,26,2.719,27,0.55,30,0.001,32,0.112,35,1.001,39,3.338,47,0.758,83,3.793,95,0.136,101,0.018,103,0.001,104,0.001,116,3.31,165,0.832,227,1.33,334,0.888,359,2.883,404,2.116,591,5.388,592,5.616,595,3.559,596,3.242,661,4.467,692,3.971,884,5.008,1787,6.173,1790,5.414,1793,7.578,1904,3.459,2545,4.398,2758,5.494,2776,5.494,2779,7.233,2781,7.233,2785,6.475,2786,6.475,7405,6.68,8776,6.755,8920,7.548,16902,7.644,16903,7.644,16904,8.269,16905,8.269,16906,8.269,16907,8.269,16908,8.269,16909,8.269,16910,7.233,16911,7.644,16912,7.644,16913,6.68]],["title/modules/PseudonymApiModule.html",[425,1.812,16914,5.493]],["body/modules/PseudonymApiModule.html",[0,0.299,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.272,191,4.874,192,2.62,425,3.22,427,3.176,428,3.417,429,3.518,430,3.503,431,3.488,432,4.447,433,3.323,442,4.422,443,3.445,444,3.362,446,5.525,447,4.58,449,4.384,1878,7.207,2725,3.983,2727,4.218,4583,9.912,5333,8.488,16914,11.358,16915,8.793,16916,8.793,16917,8.793,16918,11.167,16919,8.793,16920,10.571,16921,8.793,16922,8.793]],["title/controllers/PseudonymController.html",[481,2.611,16920,5.947]],["body/controllers/PseudonymController.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.326,29,0.619,30,0.001,31,0.442,32,0.156,33,0.382,35,1.391,36,2.212,95,0.172,99,1.318,100,2.644,101,0.013,103,0.001,104,0.001,112,2.532,185,4.465,187,1.142,209,3.409,215,2.52,216,1.46,217,1.342,221,1.828,227,0.819,264,4.335,364,1.438,376,1.806,379,1.789,447,3.273,461,2.36,481,3.032,483,3.765,491,5.992,511,5.212,513,6.386,553,6.252,555,4.105,556,4.2,561,4.233,563,4.733,1433,6.325,2727,3.788,2930,4.233,7044,6.566,8920,7.594,8926,5.246,13939,8.332,13942,7.498,16903,10.62,16918,9.621,16920,9.022,16923,7.896,16924,7.896,16925,10.654,16926,7.896,16927,7.896,16928,7.896,16929,7.668,16930,6.907,16931,7.896,16932,10.584,16933,7.896,16934,7.896,16935,7.896,16936,7.896,16937,7.896,16938,7.896,16939,7.896]],["title/entities/PseudonymEntity.html",[380,1.445,16940,5.694]],["body/entities/PseudonymEntity.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.126,26,2.268,27,0.487,30,0.001,32,0.16,34,1.421,39,3.464,47,0.842,49,5.264,95,0.16,96,2.927,97,3.614,99,1.394,101,0.018,103,0.001,104,0.001,165,0.924,167,3.074,240,4.175,334,0.898,364,2.15,380,2.273,381,2.779,394,6.723,398,2.462,399,4.245,402,3.463,404,1.506,405,2.226,406,2.717,415,4.516,416,5.318,618,3.417,619,5.931,4272,5.064,8776,7.01,8920,7.157,8921,7.308,8926,5.551,8927,6.749,8928,6.997,8929,6.073,8930,6.542,16940,8.96,16941,7.724,16942,8.355,16943,8.355,16944,8.355,16945,8.96]],["title/interfaces/PseudonymEntityProps.html",[334,0.731,16945,5.694]],["body/interfaces/PseudonymEntityProps.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.126,26,2.638,30,0.001,32,0.169,33,0.517,34,2.117,39,3.543,47,0.887,49,5.384,95,0.16,96,2.927,97,3.614,99,1.394,101,0.018,103,0.001,104,0.001,165,0.924,167,3.074,240,3.948,334,0.898,336,1.999,380,2.273,394,6.723,398,2.462,399,4.245,402,3.463,404,1.506,405,2.226,406,2.717,415,4.516,416,5.318,618,3.417,619,5.931,4272,5.064,8776,7.172,8920,7.399,8926,5.551,8927,6.749,8928,6.997,8929,6.073,8930,6.542,16940,6.997,16941,7.724,16945,9.884]],["title/classes/PseudonymMapper.html",[0,0.232,16930,5.947]],["body/classes/PseudonymMapper.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,34,1.627,35,1.158,39,2.575,95,0.149,99,1.596,101,0.016,103,0.001,104,0.001,217,1.245,227,0.992,234,1.553,627,3.851,975,6.454,982,4.768,1016,4.087,8776,5.212,8920,7.699,16930,10.182,16932,11.21,16946,9.565,16947,11.642,16948,9.565,16949,9.565,16950,9.565,16951,9.565]],["title/modules/PseudonymModule.html",[425,1.812,4583,5.055]],["body/modules/PseudonymModule.html",[0,0.267,3,0.019,4,0.019,5,0.009,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,187,1.133,425,3.05,427,2.83,428,3.045,429,3.135,430,3.122,431,3.109,432,4.211,433,4.325,442,4.106,443,3.07,444,2.996,449,4.072,766,3.277,1467,2.501,1878,5.547,1953,7.996,1954,7.629,1955,6.562,2357,5.892,2531,4.235,2725,3.549,3568,8.127,4583,10.579,4593,3.959,8931,10.832,9627,10.541,9647,9.495,13848,9.211,16952,7.835,16953,7.835,16954,7.835,16955,7.835,16956,10.832,16957,7.835,16958,6.562]],["title/classes/PseudonymParams.html",[0,0.232,16925,5.947]],["body/classes/PseudonymParams.html",[0,0.405,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,27,0.408,30,0.001,32,0.134,47,0.847,95,0.153,101,0.017,103,0.001,104,0.001,165,0.931,364,1.802,368,4.656,369,2.637,370,3.259,371,3.277,374,3.158,376,2.263,467,3.117,470,4.97,4429,8.654,8920,7.325,11052,9.146,16925,10.393,16959,11.882,16960,9.894]],["title/interfaces/PseudonymProps.html",[334,0.731,16910,5.947]],["body/interfaces/PseudonymProps.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.129,26,2.914,30,0.001,32,0.176,39,3.491,47,0.896,83,4.166,95,0.14,101,0.018,103,0.001,104,0.001,165,0.852,227,1.344,334,0.921,336,2.051,359,2.987,404,2.152,591,5.634,592,5.873,1787,6.937,1790,4.59,1904,3.584,2545,4.557,2785,6.709,2786,6.709,8776,7.064,8920,7.619,16902,7.921,16910,9.509,16911,7.921,16912,7.921,16913,6.921]],["title/classes/PseudonymResponse.html",[0,0.232,16932,5.694]],["body/classes/PseudonymResponse.html",[0,0.311,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.53,29,0.715,30,0.001,31,0.511,32,0.175,33,0.442,34,2.091,39,3.31,47,0.96,95,0.117,101,0.015,103,0.001,104,0.001,127,1.144,165,0.886,364,2.239,376,2.089,415,4.935,467,3.58,618,3.734,1016,3.206,5931,9.14,5941,6.957,8776,6.7,8929,6.638,16932,11.063,16961,9.131,16962,11.315,16963,9.131,16964,9.131,16965,8.441,16966,9.131]],["title/classes/PseudonymScope.html",[0,0.232,8962,5.947]],["body/classes/PseudonymScope.html",[0,0.242,2,0.793,3,0.017,4,0.017,5,0.009,7,0.107,8,1.163,27,0.54,29,0.956,30,0.001,31,0.684,32,0.178,33,0.59,35,1.165,39,2.937,47,0.946,49,2.8,95,0.14,101,0.012,103,0.001,104,0.001,111,2.523,144,1.957,145,3.359,148,2.19,165,0.754,200,2.216,209,2.352,227,1.131,234,1.563,277,5.353,319,2.127,347,2.206,404,1.734,450,2.923,529,3.093,596,3.724,734,4.053,921,5.289,2394,6.467,5991,6.496,5992,6.496,5993,6.496,5998,6.496,5999,6.496,6000,4.883,6001,4.802,6002,4.883,6003,4.883,6012,4.802,6013,6.496,6014,4.883,6015,4.802,6016,4.883,6017,4.802,6018,7.362,8776,5.944,8917,5.067,8920,6.274,8962,8.419,8965,6.224,16967,7.115,16968,9.625,16969,8.898,16970,9.625,16971,9.625,16972,7.115,16973,8.898,16974,7.115,16975,9.625,16976,7.115,16977,7.115]],["title/interfaces/PseudonymSearchQuery.html",[334,0.731,8953,5.694]],["body/interfaces/PseudonymSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.173,33,0.663,39,3.557,47,1.004,101,0.017,103,0.001,104,0.001,165,0.931,334,1.063,336,2.368,1005,7.045,8776,7.198,8920,7.597,8953,9.951,9272,8.654,16978,9.894]],["title/injectables/PseudonymService.html",[105,0.91,9647,4.667]],["body/injectables/PseudonymService.html",[0,0.138,3,0.01,4,0.01,5,0.005,7,0.061,8,0.768,11,5.325,13,4.622,27,0.508,29,0.966,30,0.001,31,0.691,32,0.168,33,0.596,34,1.647,35,1.472,36,2.88,37,5.325,39,3.086,42,4.622,47,0.961,49,1.591,83,1.945,95,0.143,96,1.106,97,1.749,99,0.675,101,0.007,103,0,104,0,105,0.851,107,0.975,111,2.576,112,3.009,116,3.787,127,0.797,145,1.61,158,5.846,167,2.34,187,0.585,201,2.058,209,3.877,216,1.176,217,1.556,221,2.38,227,1.279,234,1.809,284,3.437,305,2.538,461,1.455,529,1.758,591,1.758,592,1.832,701,3.15,738,4.085,775,2.48,806,1.647,1014,3.032,1127,5.671,1353,1.952,1750,3.951,1904,1.692,2130,1.767,2131,1.977,2132,1.906,2531,2.186,3859,2.262,4121,2.647,4419,8.235,6902,5.399,7074,5.634,7182,8.195,7271,2.51,8540,8.111,8776,2.204,8920,6.993,8926,5.918,8931,9.824,8935,5.562,8938,5.878,8939,5.325,8945,5.562,8952,5.878,8953,7.461,8955,4.845,9647,4.364,9913,2.826,12653,5.878,12821,5.878,15293,5.878,16956,9.008,16979,4.044,16980,6.359,16981,6.359,16982,6.359,16983,6.359,16984,6.359,16985,6.359,16986,6.359,16987,4.044,16988,4.044,16989,6.359,16990,4.044,16991,6.359,16992,4.044,16993,4.044,16994,4.044,16995,4.044,16996,6.359,16997,4.044,16998,6.359,16999,4.044,17000,4.044,17001,4.044,17002,6.359,17003,4.044,17004,6.359,17005,4.044,17006,6.359,17007,4.044,17008,10.283,17009,4.044,17010,8.908,17011,4.044,17012,4.044,17013,6.359,17014,2.88,17015,4.044,17016,4.044,17017,4.044,17018,6.359,17019,6.359,17020,4.044,17021,4.044,17022,4.044,17023,8.908,17024,4.044,17025,4.044,17026,4.044,17027,4.044,17028,4.044,17029,4.044,17030,4.044]],["title/injectables/PseudonymUc.html",[105,0.91,16918,5.694]],["body/injectables/PseudonymUc.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.117,8,1.23,26,2.563,27,0.42,29,0.798,30,0.001,31,0.57,32,0.138,33,0.493,35,0.937,36,2.184,39,2.085,47,0.862,95,0.166,99,1.293,101,0.013,103,0.001,104,0.001,105,1.362,107,1.867,111,2.281,112,2.508,127,1.276,129,7.502,132,7.343,167,3.748,187,1.12,189,5.646,191,4.293,192,2.308,216,2.104,217,1.634,221,2.798,227,0.803,234,1.257,305,2.206,461,2.765,766,3.24,1801,4.642,1884,7.103,1982,4.642,2725,3.508,4184,5.227,8369,4.694,8920,7.559,8939,8.53,9647,8.849,9674,5.411,9675,5.63,9720,6.065,9721,6.065,16918,8.53,17031,7.745,17032,7.745,17033,7.745,17034,10.185,17035,7.745,17036,11.38,17037,7.745,17038,7.745,17039,7.745,17040,7.745,17041,10.185,17042,7.745,17043,6.486]],["title/injectables/PseudonymsRepo.html",[105,0.91,16956,5.694]],["body/injectables/PseudonymsRepo.html",[0,0.185,3,0.013,4,0.013,5,0.007,7,0.082,8,0.96,13,5.776,26,2.888,27,0.503,29,0.956,30,0.001,31,0.684,32,0.166,33,0.59,34,1.352,35,1.441,36,2.812,39,3.41,42,5.776,49,2.133,95,0.133,96,1.483,97,2.345,99,0.905,101,0.009,103,0,104,0,105,1.063,107,1.307,112,2.936,127,0.679,145,1.373,167,2.924,187,0.784,215,1.73,216,1.002,217,1.648,221,2.397,227,1.266,234,2.056,380,2.594,381,1.803,591,2.356,592,2.456,661,4.842,921,7.699,1790,4.656,2355,5.957,2379,3.659,2403,4.245,2408,3.787,2422,4.54,2794,4.711,3314,3.787,3319,4.816,3381,4.379,4369,3.498,4383,4.54,4384,4.54,8776,6.901,8920,7.712,8926,5.279,8934,7.345,8935,6.949,8936,7.345,8937,7.345,8940,6.949,8941,7.345,8943,7.345,8945,6.949,8948,7.345,8950,7.345,8957,7.345,8959,7.345,8965,6.949,8966,9.574,8969,4.741,8970,5.011,8972,5.011,8974,4.741,8975,5.011,8976,6.949,8979,5.011,8980,5.011,8981,5.011,8982,5.011,8983,5.011,8984,5.011,16940,10.433,16945,8.674,16956,6.654,17044,5.421,17045,5.421,17046,5.421,17047,5.421,17048,5.421,17049,5.421,17050,5.421,17051,5.421,17052,5.421,17053,5.421,17054,5.421,17055,5.421,17056,5.421,17057,5.421,17058,5.421,17059,5.421]],["title/classes/PublicSystemListResponse.html",[0,0.232,17060,5.694]],["body/classes/PublicSystemListResponse.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.477,29,0.74,30,0.001,31,0.529,32,0.17,33,0.457,95,0.148,101,0.016,103,0.001,104,0.001,116,2.944,127,1.184,145,2.394,163,3.842,165,0.905,364,1.722,376,2.162,467,3.032,1006,6.604,1011,4.776,1016,3.319,1026,5.24,3104,5.892,5732,9.051,17060,9.68,17061,11.542,17062,11.558,17063,11.103,17064,10.685]],["title/classes/PublicSystemResponse.html",[0,0.232,17063,5.493]],["body/classes/PublicSystemResponse.html",[0,0.235,2,0.77,3,0.016,4,0.016,5,0.008,7,0.104,27,0.514,29,0.541,30,0.001,31,0.602,32,0.183,33,0.617,34,2.056,47,0.927,95,0.121,101,0.012,103,0.001,104,0.001,127,0.865,154,5.287,165,0.739,364,2.201,367,4.498,368,5.224,369,2.959,370,4.392,371,3.677,376,1.58,379,2.739,467,3.273,618,2.825,1013,5.535,2578,3.08,2597,5.58,3104,6.284,5442,6.576,5698,5.466,5717,4.397,9633,6.718,10293,5.276,10691,7.013,11429,6.932,11828,5.135,12329,8.029,12421,5.263,12423,5.263,13778,4.919,15666,10.12,17061,11.803,17063,9.762,17065,4.919,17066,8.721,17067,9.434,17068,6.908,17069,6.908,17070,6.908,17071,6.908,17072,6.386,17073,5.785,17074,5.58,17075,5.785]],["title/modules/RabbitMQWrapperModule.html",[425,1.812,10575,4.842]],["body/modules/RabbitMQWrapperModule.html",[0,0.346,3,0.018,4,0.018,5,0.009,30,0.001,31,0.676,32,0.164,47,0.81,95,0.155,101,0.019,103,0.001,104,0.001,112,1.7,187,1.116,214,2.432,215,2.462,216,1.427,217,1.004,221,1.786,234,1.253,284,4.17,368,3.023,425,3.217,427,3.67,433,3.84,449,4.507,676,4.17,883,3.273,957,5.632,1161,5.295,1198,5.39,1312,4.787,1338,8.444,1351,5.39,1352,4.978,2130,3.37,2131,3.771,2132,3.635,2133,4.911,2439,4.527,2461,4.676,2469,4.978,2475,5.295,3588,5.735,4514,5.608,4663,5.295,5058,6.749,5880,4.481,6154,5.126,6439,8.764,6761,5.608,10501,7.552,10575,7.235,10576,5.39,10599,6.748,13044,6.232,13379,10.558,14888,9.935,16624,8.508,17076,7.132,17077,10.5,17078,11.596,17079,7.132,17080,7.132,17081,6.748,17082,7.132,17083,7.132,17084,6.461,17085,7.132,17086,7.132,17087,7.132,17088,7.132,17089,7.132,17090,6.748,17091,7.132,17092,6.461,17093,7.132,17094,6.748,17095,6.748,17096,7.132,17097,7.132,17098,7.132]],["title/modules/RabbitMQWrapperTestModule.html",[425,1.812,10576,4.751]],["body/modules/RabbitMQWrapperTestModule.html",[0,0.342,3,0.018,4,0.018,5,0.009,8,0.918,27,0.313,30,0.001,31,0.672,32,0.163,35,0.92,47,0.804,95,0.154,101,0.019,103,0.001,104,0.001,112,2.217,187,1.099,214,2.396,215,2.425,216,1.405,217,0.989,221,1.759,234,1.234,284,4.107,368,2.977,425,3.197,427,3.633,433,3.801,449,4.473,676,4.107,883,3.224,957,5.576,1161,5.215,1198,5.309,1312,4.715,1338,8.381,1351,5.309,1352,4.903,2130,3.319,2131,3.714,2132,3.581,2133,4.837,2439,4.459,2461,4.605,2469,4.903,2475,5.215,3588,5.649,4514,5.524,4663,5.215,5058,6.682,5880,4.414,6154,5.048,6439,8.72,6761,5.524,10501,7.477,10575,5.411,10576,7.027,10599,6.646,13044,6.138,13379,10.495,14888,10.917,16624,8.423,17076,7.024,17077,10.422,17078,11.538,17079,7.024,17080,7.024,17081,6.646,17082,7.024,17083,7.024,17084,6.364,17085,7.024,17086,7.024,17087,7.024,17088,7.024,17089,7.024,17090,6.646,17091,7.024,17092,6.364,17093,7.024,17094,6.646,17095,6.646,17096,7.024,17097,7.024,17098,7.024,17099,7.599]],["title/classes/ReadableStreamWithFileTypeImp.html",[0,0.232,17100,6.286]],["body/classes/ReadableStreamWithFileTypeImp.html",[0,0.287,2,0.941,3,0.02,4,0.02,5,0.016,7,0.128,27,0.444,29,0.661,30,0.001,31,0.473,32,0.17,33,0.574,95,0.152,101,0.014,103,0.001,104,0.001,127,1.057,165,0.844,214,3.396,217,1.402,227,0.875,404,1.941,405,2.87,406,2.746,595,2.827,660,4.64,731,3.336,736,5.006,1187,4.026,1188,3.978,1189,3.978,1190,4.208,1191,4.601,1342,8.427,1344,8.176,2045,5.898,8787,7.804,8830,7.804,10026,6.611,13052,7.804,17100,9.956,17101,11.86,17102,8.443,17103,11.86,17104,12.905,17105,12.493,17106,10.77,17107,12.493,17108,8.443,17109,8.443,17110,8.443,17111,8.443,17112,8.443]],["title/classes/RecursiveCopyVisitor.html",[0,0.232,3298,5.947]],["body/classes/RecursiveCopyVisitor.html",[0,0.114,2,0.373,3,0.008,4,0.008,5,0.007,7,0.051,8,0.66,26,0.709,27,0.505,29,0.935,30,0.001,31,0.668,32,0.177,33,0.577,34,1.768,35,1.423,36,2.72,49,1.316,83,3.743,95,0.121,99,0.558,101,0.006,103,0,104,0,112,2.94,127,0.419,144,1.502,145,1.383,150,1.158,165,0.428,192,0.997,199,1.264,214,1.722,215,1.068,216,0.619,217,1.574,221,2.186,227,1.115,234,2.209,305,0.953,319,1.633,564,4.055,591,4.518,592,4.709,731,1.322,734,1.906,1041,4.924,1184,1.855,1345,1.327,1397,2.948,1582,2.62,1750,3.07,2384,2.005,2524,8.078,2557,5.833,2616,6.257,2655,4.683,2757,7.016,2764,3.981,2818,5.016,2823,5.336,2826,5.763,2829,5.763,2832,5.763,2835,5.681,2838,5.532,2841,4.958,2846,2.432,2848,1.615,2861,4.575,2862,4.575,2863,4.575,2864,4.575,2865,4.575,2866,4.575,2867,4.575,2868,4.575,2869,4.575,2992,3.525,3007,2.62,3008,2.487,3009,2.028,3010,1.871,3023,8.14,3031,2.802,3047,2.382,3116,9.421,3126,2.62,3248,2.159,3251,1.984,3253,1.984,3256,2.382,3259,1.727,3262,1.714,3267,1.871,3298,4.778,3301,6.257,3302,2.802,3303,8.228,3304,4.778,3364,4.509,4121,6.803,5642,2.802,6189,1.823,6217,1.646,6321,4.778,6331,3.093,6332,8.421,6333,2.703,6334,2.926,6367,2.802,8358,2.223,17113,12.365,17114,3.346,17115,6.922,17116,6.922,17117,5.462,17118,5.462,17119,5.462,17120,3.346,17121,5.462,17122,3.346,17123,5.462,17124,3.346,17125,5.462,17126,3.346,17127,5.462,17128,3.346,17129,5.462,17130,3.346,17131,5.462,17132,3.346,17133,5.462,17134,3.346,17135,5.462,17136,3.346,17137,5.462,17138,3.346,17139,5.462,17140,3.346,17141,5.462,17142,3.346,17143,5.462,17144,3.346,17145,5.462,17146,3.346,17147,5.462,17148,3.346,17149,3.346,17150,3.346,17151,3.346,17152,7.99,17153,7.99,17154,3.346,17155,6.922,17156,10.754,17157,3.346,17158,7.99,17159,10.395,17160,3.346,17161,3.346,17162,3.346,17163,3.346,17164,3.346,17165,3.346,17166,3.346,17167,3.093,17168,3.346,17169,3.093,17170,3.346,17171,3.346,17172,3.346,17173,3.346,17174,3.346,17175,3.346,17176,3.346,17177,3.346,17178,3.346,17179,3.346,17180,3.346,17181,3.346,17182,3.346,17183,3.346,17184,3.346,17185,3.346,17186,3.346,17187,3.346,17188,3.093,17189,5.462,17190,5.462,17191,5.462,17192,3.346,17193,3.346,17194,5.05,17195,5.462,17196,3.346,17197,3.346]],["title/injectables/RecursiveDeleteVisitor.html",[105,0.91,3317,5.694]],["body/injectables/RecursiveDeleteVisitor.html",[0,0.181,3,0.013,4,0.013,5,0.006,7,0.08,8,0.946,10,2.145,27,0.533,29,1.013,30,0.001,31,0.724,32,0.176,33,0.625,35,1.547,36,2.925,95,0.14,96,1.454,97,2.298,99,0.887,101,0.009,103,0,104,0,105,1.047,107,1.281,111,1.57,112,3.092,127,0.981,140,2.804,148,2.41,187,0.768,214,1.675,216,1.448,221,2.958,1358,3.382,1790,3.306,1852,2.244,1961,3.712,2355,5.9,2403,4.161,2557,5.783,2655,5.817,2764,4.503,2769,3.339,2818,6.23,2823,6.628,2826,7.158,2829,7.158,2832,7.158,2835,7.057,2838,6.872,2841,6.365,2846,3.863,2849,2.298,2852,6.557,2853,6.557,2854,6.557,2855,6.557,2856,6.557,2857,6.557,2858,6.557,2860,6.557,2861,6.557,2862,6.557,2863,6.557,2864,6.557,2865,6.557,2866,6.557,2867,6.557,2868,6.557,2869,6.557,3143,2.783,3314,3.712,3317,6.557,3319,4.745,3579,2.614,3580,2.163,5639,7.238,5642,4.45,6298,8.425,17188,4.912,17198,12.076,17199,5.314,17200,7.83,17201,7.83,17202,5.314,17203,7.83,17204,5.314,17205,5.314,17206,7.83,17207,5.314,17208,5.314,17209,5.314,17210,5.314,17211,5.314,17212,5.314,17213,5.314,17214,5.314,17215,5.314,17216,5.314,17217,5.314,17218,5.314,17219,5.314,17220,5.314,17221,5.314,17222,5.314,17223,5.314,17224,5.314,17225,5.314,17226,5.314,17227,5.314,17228,5.314,17229,5.314,17230,5.314,17231,5.314,17232,5.314,17233,5.314,17234,4.912,17235,5.314,17236,5.314,17237,5.314,17238,5.314]],["title/classes/RecursiveSaveVisitor.html",[0,0.232,3345,5.947]],["body/classes/RecursiveSaveVisitor.html",[0,0.125,2,0.409,3,0.009,4,0.009,5,0.004,7,0.055,8,0.711,18,2.974,26,0.778,27,0.509,29,0.956,30,0.001,31,0.684,32,0.17,33,0.59,34,1.889,35,1.458,36,1.262,39,0.988,55,0.79,59,1.143,95,0.133,96,1.61,97,1.587,99,0.612,101,0.006,103,0,104,0,111,1.691,112,1.624,127,0.46,140,1.936,144,1.009,145,1.49,148,4.019,150,1.27,165,0.461,199,1.386,200,1.143,214,1.855,215,1.171,216,1.088,217,1.699,221,0.849,234,1.925,305,1.045,319,1.096,398,1.081,905,1.528,1397,2.824,1790,1.549,2355,4.85,2367,2.401,2553,1.564,2557,6.262,2627,1.542,2655,4.911,2760,4.324,2767,6.443,2769,6.506,2794,3.49,2799,3.209,2803,3.209,2808,5.44,2809,5.44,2810,5.44,2811,5.44,2812,5.44,2813,5.44,2814,5.44,2815,5.44,2816,5.44,2817,5.148,2818,5.259,2820,5.148,2822,5.148,2823,5.596,2825,5.148,2826,6.042,2828,5.148,2829,6.042,2831,5.148,2832,6.042,2834,5.148,2835,5.957,2837,5.148,2838,5.801,2841,5.233,2846,2.667,2848,1.771,2849,1.587,3143,7.129,3168,4.609,3171,4.754,3174,4.484,3177,5.771,3180,4.609,3183,4.609,3186,4.609,3189,4.609,3192,4.609,3194,3.391,3236,3.391,3248,2.367,3251,2.175,3253,2.175,3256,2.612,3259,1.893,3262,1.88,3264,2.223,3314,2.563,3315,8.364,3319,3.567,3338,5.148,3339,6.266,3341,2.963,3343,3.391,3345,5.148,3364,4.759,3632,3.391,4083,3.209,4084,3.209,4085,3.072,4120,3.391,4958,3.391,4959,3.209,5642,3.072,5651,3.391,5654,3.391,5661,3.391,5665,3.391,5670,3.391,5673,3.391,5676,3.391,5679,3.391,5685,5.44,5687,3.391,5768,2.667,5782,2.367,5800,2.437,8974,3.209,17198,11.544,17239,3.669,17240,7.37,17241,5.885,17242,5.885,17243,5.885,17244,5.885,17245,5.885,17246,3.669,17247,5.885,17248,11.392,17249,3.669,17250,3.669,17251,3.669,17252,5.885,17253,3.669,17254,3.669,17255,3.669,17256,3.669,17257,3.669,17258,3.669,17259,3.669,17260,3.669,17261,5.885,17262,3.669,17263,3.669,17264,11.639,17265,3.669,17266,3.669,17267,5.885,17268,5.885,17269,5.885,17270,3.669,17271,3.669,17272,3.669,17273,11.103,17274,11.103,17275,3.669,17276,11.103,17277,3.669,17278,3.669,17279,3.669,17280,3.669,17281,3.669,17282,3.669,17283,3.669,17284,3.669,17285,3.669,17286,3.669,17287,3.669,17288,3.669,17289,3.669,17290,3.669,17291,3.669,17292,3.669,17293,3.669,17294,3.669,17295,3.391,17296,3.669,17297,3.669,17298,3.669,17299,3.669,17300,3.669,17301,3.669,17302,3.669,17303,3.669,17304,3.669,17305,3.669,17306,3.669,17307,3.669]],["title/classes/RedirectResponse.html",[0,0.232,15837,5.324]],["body/classes/RedirectResponse.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,27,0.474,29,0.734,30,0.001,31,0.525,32,0.156,33,0.453,47,0.819,95,0.12,101,0.016,103,0.001,104,0.001,127,1.173,150,3.979,165,0.9,361,6.893,364,1.706,376,2.142,379,2.122,461,2.629,467,3.015,1013,4.289,1920,7.315,2170,7.415,3264,6.965,6833,7.221,15837,10.419,16830,11.494,17308,9.365,17309,11.492,17310,9.365,17311,9.365,17312,11.492,17313,9.624,17314,9.365,17315,9.365,17316,9.365]],["title/modules/RedisModule.html",[425,1.812,17317,5.493]],["body/modules/RedisModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,30,0.001,47,0.774,95,0.166,101,0.014,103,0.001,104,0.001,145,2.165,150,2.96,187,1.236,204,2.901,217,1.413,227,1.126,425,3.179,427,3.089,428,3.323,429,3.421,430,3.407,431,3.392,432,3.995,433,4.103,438,6.202,442,4.344,443,3.35,444,3.27,449,4.308,836,4.966,837,6.089,839,4.077,1467,2.729,2130,3.735,2131,4.179,2132,4.029,2356,3.512,2357,5.434,3580,4.42,3859,4.782,3862,7.904,3873,6.695,3874,9.093,3878,10.037,3879,7.904,3881,7.478,3882,7.904,3883,7.478,3884,7.478,3885,7.904,7939,9.496,17317,10.694,17318,8.55,17319,8.55,17320,8.55,17321,10.435,17322,8.55,17323,8.55]],["title/injectables/ReferenceLoader.html",[105,0.91,1932,5.493]],["body/injectables/ReferenceLoader.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.084,8,0.976,26,2.22,27,0.432,29,0.747,30,0.001,31,0.534,32,0.163,33,0.461,35,0.978,36,1.733,49,3.75,95,0.154,99,0.926,101,0.009,103,0,104,0,105,1.081,107,1.337,111,2.713,112,2.101,127,1.012,144,1.526,165,0.633,187,0.802,200,1.728,216,2.385,217,1.052,221,1.87,227,0.838,234,1.548,305,1.58,319,1.658,334,0.596,347,1.122,359,3.88,369,1.793,441,7.187,450,2.279,1554,7.776,1787,4.694,1872,4.694,1873,3.443,1929,9.623,1930,7.448,1931,8.043,1932,6.528,1933,9.135,1934,9.363,1935,8.586,1936,8.434,1957,4.227,1973,8.539,2531,7.227,3115,8.09,3228,3.531,3364,5.91,4659,5.369,5343,7.982,5723,9.927,5800,3.686,6074,3.443,12122,9.159,12123,5.129,12124,7.47,12125,7.699,12126,8.811,12127,5.129,12128,5.129,12129,5.129,12130,5.129,12131,5.129,12132,5.129,12133,5.129,12134,5.129,12135,5.129,12136,5.129,12137,5.129,12138,5.129,12139,5.129,12140,5.129,12141,5.129,12142,5.129,12143,5.129,12144,5.129,12145,5.129,12146,5.129,12147,5.129,12148,5.129,12149,7.47,12150,5.129,12151,5.129,12152,8.811,12153,7.47,12154,5.129,12155,5.129,12156,5.129,12157,7.47,17324,8.081,17325,4.852,17326,8.081,17327,5.548,17328,5.548,17329,5.548]],["title/interfaces/RejectRequestBody.html",[334,0.731,15822,5.493]],["body/interfaces/RejectRequestBody.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.181,33,0.679,47,1.011,55,2.681,101,0.016,103,0.001,104,0.001,165,0.901,204,4.402,334,1.008,336,2.246,337,6.558,340,7.582,1909,10.16,5433,10.866,5434,10.866,5435,10.16,15822,9.296,17330,9.387]],["title/classes/RenameBodyParams.html",[0,0.232,2924,5.493]],["body/classes/RenameBodyParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,47,0.842,95,0.163,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,3.839,369,2.621,370,3.891,371,2.702,374,3.127,376,2.241,467,3.099,469,4.301,470,4.941,1397,4.246,2924,9.542,7051,9,17331,9.798,17332,9.798,17333,9.798,17334,9.798]],["title/classes/RenameFileParams.html",[0,0.232,6241,4.667]],["body/classes/RenameFileParams.html",[0,0.458,2,0.731,3,0.016,4,0.022,5,0.011,7,0.099,26,2.603,27,0.27,30,0.001,32,0.161,39,1.766,47,0.966,95,0.162,99,1.095,101,0.022,103,0.001,104,0.001,150,2.271,165,0.713,204,2.226,214,2.068,334,0.705,347,1.841,364,1.195,369,1.456,373,4.88,374,2.094,375,4.302,376,1.5,377,6.048,379,1.486,380,1.394,467,3.645,469,2.88,470,5.136,471,4.578,565,3.27,1000,4.999,1001,6.769,1031,3.276,1044,3.147,1180,2.823,1270,3.889,1330,5.795,1331,4.293,1332,4.293,2702,4.711,2889,5.177,3610,3.206,4205,2.211,5836,6.635,6170,4.216,6183,5.958,6189,6.154,6217,3.227,6220,4.502,6221,4.583,6222,4.583,6225,7.882,6228,4.583,6229,8.157,6230,7.89,6231,7.89,6232,4.583,6233,4.502,6234,8.007,6235,4.502,6236,4.583,6237,4.427,6238,6.144,6239,4.358,6240,4.427,6241,6.248,6242,4.427,6243,4.427,6244,4.175,6245,4.583,6246,4.583,6247,4.583,6248,4.175,6249,4.175,6250,4.293,6251,4.358,6252,4.583,17335,6.559,17336,6.559]],["title/classes/RequestInfo.html",[0,0.232,17337,5.947]],["body/classes/RequestInfo.html",[0,0.314,2,0.744,3,0.016,4,0.016,5,0.008,7,0.101,8,1.112,27,0.509,29,0.721,30,0.001,31,0.591,32,0.168,33,0.445,35,0.807,47,0.919,55,1.983,95,0.135,101,0.018,103,0.001,104,0.001,111,2.114,127,0.835,138,2.913,144,1.834,145,1.688,165,0.721,167,2.454,217,1.646,227,0.955,234,1.712,235,6.736,238,5.898,319,1.993,359,2.325,367,5.884,576,5.196,1016,4.333,1182,4.5,1202,5.221,1345,2.646,1414,3.729,1695,4.244,1763,4.847,1770,6.606,2579,6.557,3580,3.749,3909,5.08,5435,7.21,5451,4.957,5461,5.08,6614,7.118,6616,3.997,10253,6.844,16781,5.832,17337,8.053,17338,6.164,17339,9.749,17340,9.749,17341,9.207,17342,8.512,17343,6.668,17344,6.668,17345,6.668,17346,6.668,17347,6.668,17348,8.512,17349,6.668,17350,11.032,17351,5.832,17352,6.164,17353,8.512,17354,5.584,17355,5.832,17356,8.512,17357,8.512,17358,6.164,17359,8.512,17360,6.164,17361,5.832,17362,6.164,17363,6.164,17364,8.512,17365,8.512,17366,8.512,17367,8.512,17368,6.164,17369,6.164,17370,6.164,17371,6.164,17372,6.164,17373,6.164,17374,6.164,17375,6.164,17376,6.164,17377,6.164,17378,6.164,17379,6.164,17380,6.164,17381,6.164,17382,6.164,17383,6.164,17384,6.164,17385,6.164]],["title/injectables/RequestLoggingInterceptor.html",[105,0.91,17386,6.286]],["body/injectables/RequestLoggingInterceptor.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.425,29,0.808,30,0.001,31,0.578,32,0.14,33,0.499,35,0.956,39,2.126,95,0.166,101,0.013,103,0.001,104,0.001,105,1.38,107,1.903,127,0.989,145,1.999,150,2.734,185,3.069,187,1.142,199,2.984,204,2.679,214,2.49,215,2.52,217,1.495,227,1.07,235,4.457,367,5.478,491,5.075,513,3.99,529,3.432,731,4.539,1157,5.168,1158,6.183,1159,6.016,1345,3.133,1370,6.853,1467,2.52,2292,8.753,2356,4.237,2357,5.548,2969,5.33,3743,4.633,6437,5.74,6616,4.733,8154,7.3,8156,9.022,8158,9.022,8159,10.654,8160,10.654,8162,9.022,8163,9.536,10253,5.87,12087,9.022,17355,6.907,17386,9.536,17387,11.488,17388,7.896,17389,7.896,17390,9.536,17391,7.896,17392,7.896,17393,7.896,17394,7.896,17395,7.896,17396,7.896,17397,7.896,17398,7.3,17399,10.315,17400,7.3,17401,7.896]],["title/classes/ResolvedGroupDto.html",[0,0.232,10961,5.324]],["body/classes/ResolvedGroupDto.html",[0,0.28,2,0.918,3,0.019,4,0.019,5,0.01,7,0.124,27,0.55,29,0.645,30,0.001,31,0.693,32,0.187,33,0.619,34,1.994,47,0.935,95,0.151,99,1.374,101,0.014,103,0.001,104,0.001,127,1.032,165,0.83,461,1.884,618,3.368,1166,5.085,1249,6.275,1904,3.445,2095,3.267,2578,3.672,2997,6.897,3090,5.07,8421,7.613,8427,8.931,8434,6.449,8458,8.848,10908,8.931,10961,10.029,11046,6.897,11092,9.271,11104,7.203,11105,7.203,11106,7.613,11107,6.897,11108,7.613,11109,7.613,11219,9.469,17402,12.489,17403,10.6,17404,8.235,17405,8.235,17406,8.235,17407,8.235,17408,8.235]],["title/classes/ResolvedGroupUser.html",[0,0.232,11219,5.493]],["body/classes/ResolvedGroupUser.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,27,0.513,29,0.734,30,0.001,31,0.525,32,0.169,33,0.453,95,0.148,99,1.563,101,0.016,103,0.001,104,0.001,127,1.173,165,0.9,405,3.062,461,2.844,496,5.25,595,3.136,1166,6.22,2181,6.807,4541,8.687,4552,6.962,7074,6.513,7574,6.543,11219,10.748,11304,8.657,11314,6.807,11315,7.135,17402,11.985,17409,11.492,17410,9.365]],["title/classes/ResolvedUserMapper.html",[0,0.232,17411,5.947]],["body/classes/ResolvedUserMapper.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.353,29,0.671,30,0.001,31,0.609,32,0.116,33,0.414,34,1.457,35,1.037,47,0.852,95,0.14,99,1.43,100,3.64,101,0.014,103,0.001,104,0.001,144,2.356,217,1.115,227,1.127,234,1.391,319,2.561,461,2.965,496,5.303,627,3.664,738,4.455,975,6.027,982,4.271,1849,6.303,3110,5.953,3146,5.692,3147,5.529,4572,6.102,6410,7.176,7064,7.494,7083,6.921,12879,7.921,12882,7.921,15265,7.921,16341,7.921,17411,9.509,17412,10.872,17413,9.509,17414,8.568,17415,10.519,17416,8.568,17417,8.568,17418,8.568,17419,8.568,17420,8.568,17421,8.568,17422,8.568]],["title/classes/ResolvedUserResponse.html",[0,0.232,17415,5.694]],["body/classes/ResolvedUserResponse.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,27,0.554,30,0.001,31,0.451,32,0.185,34,2.088,47,0.991,83,3.755,95,0.103,101,0.017,103,0.001,104,0.001,165,0.818,364,2.449,376,1.842,467,3.716,496,4.897,591,5.041,592,5.254,851,5.531,852,5.531,1849,5.82,3110,5.781,4205,3.909,11317,6.506,17415,8.751,17423,13.592,17424,8.054,17425,8.054,17426,8.054,17427,8.054,17428,8.054,17429,8.054,17430,8.054,17431,8.054]],["title/classes/ResponseInfo.html",[0,0.232,17361,5.947]],["body/classes/ResponseInfo.html",[0,0.33,2,0.801,3,0.017,4,0.017,5,0.009,7,0.108,27,0.399,29,0.562,30,0.001,31,0.542,32,0.132,33,0.347,47,0.836,55,2.36,95,0.141,101,0.018,103,0.001,104,0.001,111,1.439,127,0.899,145,1.818,165,0.758,167,2.642,217,1.678,227,1.004,234,1.779,235,6.184,238,4.015,359,2.503,367,5.593,576,5.465,1016,4.604,1182,7.395,1202,5.622,1345,2.848,1414,4.015,1695,4.57,1763,5.218,1770,6.813,2579,6.895,3580,3.942,3909,5.47,5435,7.582,5451,5.337,5461,5.47,6614,7.916,6616,4.303,10253,5.337,16781,6.279,17337,6.279,17338,6.636,17339,6.636,17340,6.636,17342,6.636,17348,6.636,17350,10.842,17351,6.279,17352,6.636,17353,8.951,17354,6.012,17355,6.279,17356,8.951,17357,8.951,17358,6.636,17359,8.951,17360,6.636,17361,8.469,17362,8.951,17363,6.636,17364,8.951,17365,8.951,17366,8.951,17367,8.951,17368,6.636,17369,6.636,17370,6.636,17371,6.636,17372,6.636,17373,6.636,17374,6.636,17375,6.636,17376,6.636,17377,6.636,17378,6.636,17379,6.636,17380,6.636,17381,6.636,17382,6.636,17383,6.636,17384,6.636,17385,6.636,17432,9.683]],["title/injectables/RestartUserLoginMigrationUc.html",[105,0.91,17433,5.694]],["body/injectables/RestartUserLoginMigrationUc.html",[0,0.225,3,0.016,4,0.016,5,0.008,7,0.1,8,1.106,27,0.433,29,0.822,30,0.001,31,0.588,32,0.143,33,0.508,35,1.108,36,2.43,39,2.465,47,0.967,95,0.165,99,1.104,101,0.011,103,0.001,104,0.001,105,1.225,107,1.594,111,2.272,112,2.713,127,1.147,129,7.032,132,6.775,167,2.434,189,5.075,191,3.666,192,3.129,199,3.46,204,2.244,216,2.096,217,1.367,221,2.754,227,0.686,234,1.486,305,2.608,355,5.169,461,2.887,766,2.766,843,2.918,1464,3.046,1467,2.111,1795,4.948,1801,3.964,1884,6.82,1982,3.964,1988,6.806,2356,5.184,2725,2.996,4154,7.169,4176,5.179,4184,4.463,4205,4.401,4476,5.053,4478,5.342,4481,5.342,4482,8.765,4489,5.907,4491,7.032,4492,4.916,4493,7.169,4494,5.039,4495,5.179,4496,5.538,4498,7.169,4500,5.538,4501,4.916,4508,5.039,4509,5.538,8807,5.179,11224,5.179,17433,7.667,17434,11.333,17435,8.007,17436,6.613,17437,6.613,17438,9.155,17439,6.613,17440,5.538,17441,6.613,17442,6.613,17443,6.113,17444,5.784]],["title/classes/RevokeConsentParams.html",[0,0.232,15882,5.947]],["body/classes/RevokeConsentParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,34,1.992,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,361,6.491,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,470,4.898,479,7.179,3580,5.464,5438,7.664,15882,10.242,17445,11.709,17446,9.657,17447,9.657]],["title/classes/RichText.html",[0,0.232,17448,5.493]],["body/classes/RichText.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.492,29,0.671,30,0.001,31,0.48,32,0.187,33,0.414,47,0.775,95,0.153,101,0.014,103,0.001,104,0.001,127,1.362,165,0.852,364,1.98,376,1.96,379,2.464,467,3.133,565,5.419,966,4.359,1013,4.979,1031,3.407,2268,6.803,2303,5.369,2553,5.354,2578,3.82,2847,9.337,2848,6.063,3259,6.69,3448,5.253,5641,7.921,12444,7.176,17448,10.472,17449,12.561,17450,8.568,17451,8.568,17452,8.568,17453,8.568,17454,8.568,17455,8.568,17456,8.568]],["title/classes/RichTextContentBody.html",[0,0.232,5646,4.517]],["body/classes/RichTextContentBody.html",[0,0.456,2,0.651,3,0.014,4,0.014,5,0.007,7,0.088,9,2.751,27,0.346,30,0.001,31,0.636,32,0.186,47,0.843,83,1.786,95,0.138,99,0.974,101,0.022,103,0,104,0,144,3.123,150,2.021,163,1.796,165,0.657,240,1.852,364,1.527,369,1.295,374,1.863,375,3.737,376,1.335,379,1.9,404,2.046,467,3.593,470,4.75,471,3.976,524,3.357,999,5.336,1000,3.413,1031,1.829,1044,2.8,1770,3.39,2303,4.603,2553,4.57,2584,4.078,2848,4.735,2849,2.525,2889,2.89,3251,3.461,3253,3.461,3259,6.101,3262,2.991,3267,3.265,4009,3.716,4037,3.716,4038,7.047,4096,5.748,5562,6.33,5564,6.33,5566,6.33,5568,6.33,5570,6.33,5604,3.82,5643,6.517,5644,6.517,5645,6.517,5646,7.123,5647,6.517,5835,3.668,5836,6.811,6979,3.878,7039,3.716,8169,8.219,8170,6.733,8171,4.006,8174,6.517,8175,6.517,8176,4.006,8177,6.517,8178,3.579,8179,3.94,8180,6.517,8181,6.517,8182,3.878,8183,3.878,8184,3.878,8185,3.878,8186,4.006,8187,4.006,8188,4.006,8189,4.006,8190,4.006,17457,5.837,17458,5.837,17459,5.837]],["title/classes/RichTextElement.html",[0,0.232,2835,4.387]],["body/classes/RichTextElement.html",[0,0.212,2,0.693,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,27,0.549,29,0.971,30,0.001,31,0.695,32,0.175,33,0.6,35,1.559,36,1.88,47,0.829,55,1.888,59,1.936,95,0.13,101,0.017,103,0.001,104,0.001,112,2.238,116,2.731,144,3.034,148,3.714,165,0.687,208,2.322,221,1.439,227,1.144,334,0.668,347,2.054,363,5.58,371,1.714,404,1.83,595,2.935,596,3.863,661,3.684,687,2.649,692,3.275,728,3.353,806,2.53,884,4.131,1345,2.466,1790,3.701,1793,6.553,1865,3.993,2545,3.306,2557,5.9,2627,2.612,2749,7.805,2752,6.243,2753,6.243,2754,6.243,2755,7.328,2756,6.243,2758,4.129,2759,5.375,2760,6.472,2762,6.125,2763,5.375,2764,6.344,2766,4.342,2767,4.627,2769,6.381,2770,4.342,2774,4.342,2776,4.129,2804,5.313,2835,7.117,2848,6.216,3259,6.736,3944,5.746,3945,4.518,3946,4.518,3947,4.518,3956,3.905,4723,5.746,8634,4.426,17460,10.752,17461,6.215,17462,6.215,17463,5.746,17464,6.215,17465,5.746,17466,6.215,17467,6.215,17468,6.215,17469,6.215,17470,8.104,17471,5.746,17472,8.104,17473,5.746,17474,5.746,17475,5.746,17476,5.436,17477,5.746]],["title/classes/RichTextElementContent.html",[0,0.232,17478,5.694]],["body/classes/RichTextElementContent.html",[0,0.359,2,0.911,3,0.019,4,0.019,5,0.01,7,0.123,27,0.481,29,0.64,30,0.001,31,0.458,32,0.178,33,0.395,34,1.986,47,0.833,95,0.15,99,1.363,101,0.018,103,0.001,104,0.001,127,1.463,165,0.826,364,1.921,376,1.869,467,3.575,475,3.993,618,3.34,966,4.156,1031,2.56,2303,4.733,2578,3.642,2848,6.578,2884,4.345,2885,4.345,2889,4.045,3259,6.961,3436,5.707,3448,5.008,3694,6.924,3698,6.125,3702,5.427,3704,5.427,3979,8.034,4096,6.26,5566,5.271,8650,6.598,9849,7.145,9850,7.551,17478,10.955,17479,11.407,17480,6.841,17481,6.841]],["title/classes/RichTextElementContentBody.html",[0,0.232,8177,4.517]],["body/classes/RichTextElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.314,5566,6.905,5568,6.314,5570,6.314,5604,3.804,5643,6.502,5644,6.502,5645,6.502,5646,7.109,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,6.502,8176,3.989,8177,7.109,8178,3.563,8179,3.923,8180,6.502,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,17482,5.812,17483,5.812]],["title/entities/RichTextElementNode.html",[380,1.445,3186,5.324]],["body/entities/RichTextElementNode.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.127,27,0.443,30,0.001,32,0.146,47,0.845,95,0.166,96,2.305,101,0.018,103,0.001,104,0.001,165,0.842,208,3.147,217,1.096,227,0.874,240,4.091,334,0.905,364,1.959,380,2.285,381,2.802,398,2.482,404,1.938,405,2.245,617,4.67,1790,4.541,2545,4.481,2553,5.051,2557,5.258,2577,4.755,2578,3.756,2848,6.471,3143,5.634,3155,6.447,3186,8.423,3222,5.166,3245,9.408,3259,7.005,3391,5.514,3598,6.595,3619,5.228,4059,5.363,4061,5.363,8660,7.369,17480,7.056,17481,7.056,17484,10.953,17485,8.425,17486,9.408,17487,7.788,17488,7.788,17489,7.788]],["title/interfaces/RichTextElementNodeProps.html",[334,0.731,17486,5.947]],["body/interfaces/RichTextElementNodeProps.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,32,0.148,47,0.897,95,0.167,96,2.354,101,0.018,103,0.001,104,0.001,165,0.854,208,3.215,217,1.12,227,0.892,240,3.796,334,0.924,336,2.059,380,2.316,398,2.535,404,2.156,405,2.293,617,4.77,1790,4.603,2545,4.577,2553,3.668,2557,5.329,2577,4.856,2578,3.837,2848,6.401,3143,5.71,3155,6.534,3186,6.738,3222,5.276,3245,9.535,3259,7.154,3391,5.632,3598,7.337,3619,5.34,4059,5.477,4061,5.477,17480,7.206,17481,7.206,17484,7.955,17486,10.466,17487,7.955,17488,7.955,17489,7.955]],["title/interfaces/RichTextElementProps.html",[334,0.731,17476,5.947]],["body/interfaces/RichTextElementProps.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,32,0.16,36,1.792,47,0.917,95,0.152,101,0.02,103,0.001,104,0.001,112,1.841,144,2.942,148,2.571,165,0.838,208,3.121,221,1.934,227,1.29,334,0.898,336,1.999,347,1.69,371,2.304,404,2.127,687,3.561,728,4.091,806,3.402,1345,3.315,1865,4.873,2545,4.444,2627,3.511,2749,6.484,2755,5.551,2759,5.123,2760,6.278,2763,5.123,2764,6.153,2804,7.153,2835,7.615,2848,6.352,3259,7.166,3956,5.25,8634,5.95,17460,7.724,17470,9.89,17471,7.724,17472,9.89,17473,7.724,17474,7.724,17475,7.724,17476,9.358,17477,7.724]],["title/classes/RichTextElementResponse.html",[0,0.232,3979,5.181]],["body/classes/RichTextElementResponse.html",[0,0.346,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,27,0.517,29,0.604,30,0.001,31,0.432,32,0.185,33,0.373,34,2.134,47,0.81,95,0.146,99,1.288,101,0.017,103,0.001,104,0.001,127,1.423,165,0.796,364,2.199,376,1.765,467,3.537,475,3.771,618,3.155,966,3.925,1031,2.418,2303,5.085,2578,3.44,2848,6.507,2883,5.049,2884,5.404,2885,5.404,2888,4.676,2889,5.031,3259,6.474,3436,5.39,3448,4.73,3694,7.437,3698,6.598,3702,5.126,3704,5.126,3979,9.557,4096,6.725,5566,6.555,9862,6.748,9863,6.748,9864,6.748,9865,6.748,9866,6.748,17478,10.109,17479,11.906,17480,6.461,17481,6.461]],["title/classes/RichTextElementResponseMapper.html",[0,0.232,5585,5.947]],["body/classes/RichTextElementResponseMapper.html",[0,0.258,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.494,29,0.786,30,0.001,31,0.562,32,0.163,33,0.485,34,1.288,35,1.362,95,0.154,99,1.263,100,2.535,101,0.013,103,0.001,104,0.001,111,2.256,116,2.358,165,0.786,214,3.163,217,0.985,227,1.167,234,1.945,347,2.029,591,3.29,627,3.931,806,3.082,974,4.488,975,5.562,1750,4.45,2051,4.312,2303,3.069,2547,8.365,2550,7.856,2551,7.856,2553,5.657,2554,7.644,2835,8.563,2848,6.309,3259,3.907,3694,4.488,3698,5.827,3707,6.34,3715,5.391,3979,9.129,4096,4.058,4871,6.998,5183,7.07,5566,4.885,5581,5.928,5585,11.431,8672,9.129,8676,6.115,8677,6.115,8678,6.115,17478,8.402,17490,12.466,17491,7.57,17492,7.57,17493,7.57,17494,7.57,17495,6.998,17496,11.253,17497,7.57]],["title/classes/RocketChatError.html",[0,0.232,1181,5.493]],["body/classes/RocketChatError.html",[0,0.191,2,0.386,3,0.008,4,0.008,5,0.004,7,0.052,27,0.336,29,0.271,30,0.001,31,0.502,32,0.137,33,0.167,34,1.525,36,2.789,39,3.412,47,1,51,3.961,55,1.757,72,2.545,83,1.719,87,3.557,95,0.105,101,0.014,103,0,104,0,105,0.752,111,2.541,112,2.867,116,3.88,127,0.704,148,1.066,165,0.44,187,0.501,204,2.405,216,1.039,217,1.371,221,2.222,227,1.363,234,1.456,305,2.554,334,0.762,347,1.942,351,4.499,359,1.208,369,0.769,404,1.012,461,1.621,535,3.8,543,4.149,564,2.06,692,1.294,701,1.225,720,1.887,728,2.711,731,4.42,839,1.652,853,1.788,874,4.001,953,4.639,1016,3.371,1035,2.42,1151,8.169,1152,7.242,1153,2.901,1154,4.952,1155,2.012,1156,6.214,1157,2.267,1158,2.712,1159,2.639,1160,4.4,1161,3.856,1162,4.4,1163,4.4,1164,4.4,1165,4.539,1166,1.662,1167,3.088,1168,2.901,1169,2.901,1170,2.901,1171,2.901,1172,2.901,1173,2.901,1174,2.518,1175,2.901,1176,2.901,1177,2.901,1178,2.235,1179,8.04,1180,1.491,1181,4.539,1182,4.784,1183,2.42,1184,1.92,1185,5.048,1186,4.705,1187,5.334,1188,5.271,1189,5.271,1190,5.576,1191,6.236,1192,7.854,1193,6.48,1194,5.936,1195,2.639,1196,2.901,1197,2.901,1198,2.42,1199,2.901,1200,2.901,1201,2.901,1202,2.712,1203,2.901,1204,5.551,1205,2.798,1206,2.901,1207,2.901,1208,2.901,1209,2.798,1210,2.901,1211,2.901,1212,2.901,1213,8.469,1214,2.901,1215,2.901,1216,1.357,1217,2.901,1218,2.901,1219,2.901,1220,2.901,1221,2.901,1222,2.901,1223,2.901,1224,2.901,1225,8.04,1226,8.04,1227,2.901,1228,2.901,1229,2.901,1230,2.901,1231,2.901,1232,2.901,1233,2.377,1234,2.901,1235,2.901,1236,2.901,1237,2.901,1238,2.901,1239,2.901,1240,2.901,1241,2.901,1242,2.901,1243,2.901,1244,2.901,1245,2.901,1246,2.901,1247,2.901,1248,4.281,1249,4.281,1250,2.901,1251,2.901,1252,2.901,1253,2.901,1254,2.901,1255,2.338,1256,2.901,1257,2.901,1258,2.901,1259,4.705,1260,2.901,1261,4.705,1262,4.705,1263,2.901,1264,2.901,1265,2.639,1266,5.936,1267,4.709,1268,4.346,1269,2.901,1270,3.331,1271,5.191,1272,4.281,1273,5.551,1274,5.936,1275,5.936,1276,5.936,1277,2.712,1278,2.901,1279,2.901,1280,2.901,1281,7.508,1282,5.936,1283,5.936,1284,5.936,1285,2.901,1286,4.705,1287,4.705,1288,2.901,1289,2.901,1290,2.901,1291,2.901,1292,2.901,1293,4.705,1294,4.4,2362,1.992,17498,5.619,17499,3.464,17500,3.464]],["title/interfaces/RocketChatGroupModel.html",[334,0.731,1165,5.493]],["body/interfaces/RocketChatGroupModel.html",[0,0.195,3,0.008,4,0.008,5,0.004,7,0.054,30,0.001,31,0.463,32,0.139,34,1.544,36,2.8,39,3.428,47,1.001,51,4.016,55,1.551,72,2.594,83,1.752,87,3.614,95,0.106,101,0.014,103,0,104,0,105,0.766,111,2.393,112,2.878,116,3.899,127,0.444,138,2.501,148,1.091,165,0.449,187,0.513,204,1.943,216,1.059,217,1.383,221,2.246,227,1.367,234,1.473,305,2.585,334,0.774,336,0.849,347,2.15,351,4.554,359,1.236,369,0.787,404,0.639,461,1.648,535,3.861,543,4.207,564,2.099,692,1.325,701,1.254,720,1.932,728,2.754,731,4.453,839,1.691,853,1.83,874,4.078,953,4.714,1016,2.903,1035,2.477,1151,8.249,1152,2.864,1153,2.97,1154,5.032,1155,2.06,1156,6.3,1157,2.321,1158,2.777,1159,2.702,1160,4.484,1161,3.93,1162,4.484,1163,4.484,1164,4.484,1165,5.818,1166,3.967,1167,3.147,1168,2.97,1169,2.97,1170,2.97,1171,2.97,1172,2.97,1173,2.97,1174,2.578,1175,2.97,1176,2.97,1177,2.97,1178,5.335,1179,7.599,1180,1.526,1181,2.864,1182,2.393,1183,2.477,1184,1.966,1185,2.525,1186,2.97,1187,5.374,1188,5.311,1189,5.311,1190,5.618,1191,6.28,1192,7.909,1193,6.55,1194,6.032,1195,2.702,1196,2.97,1197,2.97,1198,2.477,1199,2.97,1200,2.97,1201,2.97,1202,2.777,1203,2.97,1204,5.64,1205,2.864,1206,2.97,1207,2.97,1208,2.97,1209,2.864,1210,2.97,1211,2.97,1212,2.97,1213,8.552,1214,2.97,1215,2.97,1216,1.389,1217,2.97,1218,2.97,1219,2.97,1220,2.97,1221,2.97,1222,2.97,1223,2.97,1224,2.97,1225,8.127,1226,8.127,1227,2.97,1228,2.97,1229,2.97,1230,2.97,1231,2.97,1232,2.97,1233,2.434,1234,2.97,1235,2.97,1236,2.97,1237,2.97,1238,2.97,1239,2.97,1240,2.97,1241,2.97,1242,2.97,1243,2.97,1244,2.97,1245,2.97,1246,2.97,1247,2.97,1248,4.363,1249,4.363,1250,2.97,1251,2.97,1252,2.97,1253,2.97,1254,2.97,1255,2.393,1256,2.97,1257,2.97,1258,2.97,1259,4.796,1260,2.97,1261,4.796,1262,4.796,1263,2.97,1264,2.97,1265,2.702,1266,6.032,1267,4.785,1268,4.416,1269,2.97,1270,3.395,1271,5.263,1272,4.363,1273,5.64,1274,6.032,1275,6.032,1276,6.032,1277,2.777,1278,2.97,1279,2.97,1280,2.97,1281,7.599,1282,6.032,1283,6.032,1284,6.032,1285,2.97,1286,4.796,1287,4.796,1288,2.97,1289,2.97,1290,2.97,1291,2.97,1292,2.97,1293,4.796,1294,4.484]],["title/modules/RocketChatModule.html",[425,1.812,17501,5.493]],["body/modules/RocketChatModule.html",[0,0.317,3,0.022,4,0.022,5,0.011,8,1.126,27,0.384,29,0.73,30,0.001,31,0.522,32,0.127,33,0.451,35,1.128,95,0.159,101,0.016,103,0.001,104,0.001,187,1.348,227,0.967,425,3.306,427,3.367,432,3.43,433,3.523,449,3.698,627,3.516,701,4.052,836,5.414,1152,9.257,1155,5.414,1160,10.136,1209,10.023,1297,6.776,1298,7.865,1301,8.244,1307,6.638,3917,7.734,17501,10.023,17502,9.322,17503,9.322,17504,8.153,17505,9.322,17506,9.322]],["title/interfaces/RocketChatOptions.html",[334,0.731,1160,5.324]],["body/interfaces/RocketChatOptions.html",[0,0.191,3,0.008,4,0.008,5,0.004,7,0.052,30,0.001,31,0.456,32,0.143,33,0.541,34,1.524,36,2.788,39,3.411,47,1.008,51,3.957,55,1.525,72,2.542,83,1.717,87,3.553,95,0.105,101,0.014,103,0,104,0,105,0.751,111,2.378,112,2.866,116,3.879,127,0.433,148,1.064,165,0.439,187,0.5,204,1.904,216,1.037,217,1.37,221,2.22,227,1.362,234,1.454,305,2.552,334,0.761,336,0.827,347,1.94,351,4.495,359,1.206,369,0.767,404,0.623,461,1.62,535,3.796,543,4.145,564,2.057,692,1.292,701,1.222,720,1.884,728,2.708,731,4.417,839,1.649,853,1.784,874,6.379,953,4.634,1016,2.86,1035,2.416,1151,8.163,1152,2.793,1153,2.896,1154,4.947,1155,2.008,1156,6.207,1157,2.263,1158,2.708,1159,2.634,1160,5.544,1161,6.148,1162,7.014,1163,7.014,1164,7.014,1165,4.532,1166,1.659,1167,3.084,1168,2.896,1169,2.896,1170,2.896,1171,2.896,1172,2.896,1173,2.896,1174,2.513,1175,2.896,1176,2.896,1177,2.896,1178,2.231,1179,7.501,1180,1.488,1181,2.793,1182,2.334,1183,2.416,1184,1.917,1185,2.462,1186,2.896,1187,5.331,1188,5.268,1189,5.268,1190,5.573,1191,6.233,1192,7.85,1193,6.475,1194,5.93,1195,2.634,1196,2.896,1197,2.896,1198,2.416,1199,2.896,1200,2.896,1201,2.896,1202,2.708,1203,2.896,1204,5.544,1205,2.793,1206,2.896,1207,2.896,1208,2.896,1209,2.793,1210,2.896,1211,2.896,1212,2.896,1213,8.463,1214,2.896,1215,2.896,1216,1.355,1217,2.896,1218,2.896,1219,2.896,1220,2.896,1221,2.896,1222,2.896,1223,2.896,1224,2.896,1225,8.034,1226,8.034,1227,2.896,1228,2.896,1229,2.896,1230,2.896,1231,2.896,1232,2.896,1233,2.373,1234,2.896,1235,2.896,1236,2.896,1237,2.896,1238,2.896,1239,2.896,1240,2.896,1241,2.896,1242,2.896,1243,2.896,1244,2.896,1245,2.896,1246,2.896,1247,2.896,1248,4.275,1249,4.275,1250,2.896,1251,2.896,1252,2.896,1253,2.896,1254,2.896,1255,2.334,1256,2.896,1257,2.896,1258,2.896,1259,4.699,1260,2.896,1261,4.699,1262,4.699,1263,2.896,1264,2.896,1265,2.634,1266,5.93,1267,4.704,1268,4.341,1269,2.896,1270,3.327,1271,5.186,1272,4.275,1273,5.544,1274,5.93,1275,5.93,1276,5.93,1277,2.708,1278,2.896,1279,2.896,1280,2.896,1281,7.501,1282,5.93,1283,5.93,1284,5.93,1285,2.896,1286,4.699,1287,4.699,1288,2.896,1289,2.896,1290,2.896,1291,2.896,1292,2.896,1293,4.699,1294,4.394]],["title/entities/Role.html",[380,1.445,496,2.871]],["body/entities/Role.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.117,27,0.47,30,0.001,31,0.678,32,0.139,47,0.728,95,0.146,96,2.127,101,0.017,103,0.001,104,0.001,116,2.422,144,2.808,165,0.8,217,1.484,227,0.806,234,1.966,240,3.841,305,2.215,319,3.052,334,1.097,364,2.077,380,2.423,381,2.586,394,5.817,398,2.291,399,4.051,400,3.431,402,3.222,404,1.401,405,2.072,406,2.529,496,5.309,843,5.343,1019,4.516,1843,3.685,1849,6.602,2095,3.085,2636,5.564,2640,5.564,3110,6.268,4052,4.562,4281,3.396,4571,6.598,7150,6.28,8921,6.8,9934,7.59,9964,7.996,12158,8.931,12159,7.187,12160,6.511,12161,6.28,12162,6.511,12163,6.28,12164,7.187,12165,6.511,12166,7.187,12167,9.439,12168,7.187,12169,8.551,12170,6.28,17507,7.775,17508,7.775,17509,7.775,17510,7.775]],["title/classes/RoleDto.html",[0,0.232,4541,4.751]],["body/classes/RoleDto.html",[0,0.315,2,1.032,3,0.022,4,0.022,5,0.011,7,0.14,26,2.623,27,0.532,29,0.725,30,0.001,31,0.723,32,0.176,33,0.641,34,2.104,95,0.119,99,1.545,101,0.015,103,0.001,104,0.001,127,1.16,165,0.894,405,3.041,595,3.1,618,3.786,619,5.132,843,5.459,1849,6.208,2095,3.673,4281,4.044,4541,9.266,4571,6.741,9934,6.882,9964,7.249,17511,9.257,17512,11.411,17513,9.257,17514,9.257]],["title/classes/RoleMapper.html",[0,0.232,17515,5.947]],["body/classes/RoleMapper.html",[0,0.309,2,1.011,3,0.021,4,0.021,5,0.011,7,0.137,8,1.361,27,0.465,29,0.883,30,0.001,31,0.686,32,0.153,33,0.545,34,1.543,35,1.364,95,0.145,99,1.514,101,0.015,103,0.001,104,0.001,227,1.168,234,1.473,380,1.927,496,5.753,627,4.123,1849,4.551,4369,5.852,4370,7.102,4541,9.388,4552,6.742,17515,9.855,17516,9.07,17517,9.855,17518,9.436,17519,11.267,17520,9.07,17521,9.07,17522,9.436,17523,9.07,17524,9.07,17525,9.07,17526,7.933]],["title/modules/RoleModule.html",[425,1.812,1547,5.055]],["body/modules/RoleModule.html",[0,0.299,3,0.021,4,0.021,5,0.011,30,0.001,95,0.163,101,0.015,103,0.001,104,0.001,187,1.272,425,3.22,427,3.176,428,3.417,429,3.518,430,3.503,431,3.488,432,4.447,433,4.568,442,4.422,443,3.445,444,3.362,450,3.612,1547,10.496,4652,10.452,4674,7.363,17527,8.793,17528,8.793,17529,8.793,17530,11.775,17531,12.298,17532,8.793,17533,8.793]],["title/classes/RoleNameMapper.html",[0,0.232,12862,5.947]],["body/classes/RoleNameMapper.html",[0,0.287,2,0.939,3,0.02,4,0.02,5,0.01,7,0.127,8,1.299,27,0.443,29,0.842,30,0.001,31,0.699,32,0.146,33,0.52,35,1.302,95,0.138,99,1.406,101,0.014,103,0.001,104,0.001,227,1.368,305,3.064,496,4.541,529,3.662,627,4.047,975,5.963,982,4.199,1904,3.524,4476,5.283,4571,7.469,9718,7.146,9719,7.26,10673,11.539,12011,10.328,12012,8.195,12836,9.027,12862,9.408,12913,8.423,17534,11.849,17535,8.425,17536,9.943,17537,10.756,17538,8.425,17539,10.756,17540,8.425,17541,7.788,17542,7.788,17543,7.788,17544,8.425,17545,8.425,17546,8.425]],["title/classes/RoleReference.html",[0,0.232,7080,4.589]],["body/classes/RoleReference.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,26,2.647,27,0.515,29,0.74,30,0.001,31,0.728,32,0.17,33,0.457,34,2.124,95,0.148,101,0.016,103,0.001,104,0.001,127,1.184,165,0.905,208,3.531,334,1.016,405,3.08,595,3.165,618,3.866,619,5.24,2095,3.75,3449,8.268,4281,4.129,4571,6.804,7080,9.004,17547,13.007,17548,11.558,17549,9.453]],["title/injectables/RoleRepo.html",[105,0.91,17530,5.694]],["body/injectables/RoleRepo.html",[0,0.212,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,10,3.538,12,4.015,18,4.429,26,2.339,27,0.531,29,0.971,30,0.001,31,0.731,32,0.172,33,0.6,34,1.728,35,1.501,36,2.999,40,4.232,47,0.724,55,1.339,95,0.13,99,1.037,101,0.01,103,0.001,104,0.001,105,1.173,107,1.498,112,3.015,144,1.709,165,0.687,187,0.899,217,1.436,227,1.206,319,1.858,380,1.321,381,2.916,404,1.58,496,3.701,596,3.365,692,4.931,770,5.198,877,7.278,883,3.719,884,4.131,885,5.132,908,3.811,909,5.44,910,3.811,911,3.857,913,3.811,914,3.857,915,3.445,3309,7.342,3326,7.668,3675,4.266,3872,8.637,4571,6.759,5022,5.58,8994,7.342,9002,7.342,17530,7.342,17550,6.215,17551,9.389,17552,7.668,17553,6.215,17554,6.215,17555,7.668,17556,6.215,17557,8.104,17558,6.215,17559,6.215,17560,8.767,17561,10.197,17562,8.767]],["title/injectables/RoleService.html",[105,0.91,4652,5.055]],["body/injectables/RoleService.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.11,8,1.182,12,4.483,26,2.745,27,0.508,29,0.925,30,0.001,31,0.661,32,0.16,33,0.571,34,1.241,35,1.429,36,2.822,40,4.725,95,0.158,99,1.218,101,0.012,103,0.001,104,0.001,105,1.309,107,1.759,112,3.016,127,0.914,187,1.055,215,2.329,216,1.349,217,1.685,221,2.733,227,1.224,380,1.55,381,2.427,450,2.997,496,4.985,770,4.326,3110,3.637,3309,8.198,3326,8.562,4541,9.047,4571,6.434,4652,7.277,5022,4.644,9718,4.847,17515,6.381,17530,10.616,17552,8.562,17555,8.562,17563,7.296,17564,11.806,17565,7.296,17566,7.296,17567,7.296,17568,7.296,17569,7.296,17570,7.296,17571,7.296,17572,7.296,17573,12.677,17574,7.296,17575,7.296,17576,7.296,17577,7.296,17578,7.296,17579,7.296,17580,7.296]],["title/injectables/RoleUc.html",[105,0.91,17531,5.947]],["body/injectables/RoleUc.html",[0,0.311,3,0.022,4,0.022,5,0.011,7,0.138,8,1.367,27,0.467,29,0.886,30,0.001,31,0.634,32,0.154,33,0.547,35,1.105,36,2.833,95,0.165,99,1.524,101,0.015,103,0.001,104,0.001,105,1.514,107,2.201,112,2.71,127,1.144,187,1.321,215,2.915,216,1.688,217,1.188,227,0.947,4541,6.38,4552,6.788,4571,7.003,4652,10.006,4674,7.647,5022,5.812,17531,9.896,17552,9.896,17555,9.896,17581,9.131,17582,9.131,17583,9.131,17584,9.131,17585,9.131]],["title/injectables/RoomBoardDTOFactory.html",[105,0.91,8148,5.493]],["body/injectables/RoomBoardDTOFactory.html",[0,0.242,3,0.011,4,0.011,5,0.006,7,0.07,8,0.857,27,0.292,29,0.556,30,0.001,31,0.481,32,0.163,33,0.343,34,1.206,35,0.564,95,0.14,99,0.777,100,3.216,101,0.008,103,0.001,104,0,105,0.949,107,1.122,111,2.486,127,1.076,138,3.098,187,0.673,188,3.547,216,1.311,217,1.76,227,1.319,234,1.152,347,1.434,369,1.574,371,1.956,461,2.836,564,3.992,591,3.083,592,3.213,806,1.896,843,2.055,1041,3.967,1233,3.196,1397,2.375,1750,5.022,1798,4.003,1799,2.822,1814,3.196,1884,5.885,2130,2.034,2131,2.276,2132,2.194,2303,4.414,2553,1.985,2627,5.403,2647,4.534,2649,4.608,2651,7.755,2654,5.403,2656,6.117,2659,2.181,2667,8.656,2725,2.11,2735,3.548,2736,3.048,3001,3.548,3036,9.04,3037,5.939,3041,5.939,3044,3.9,3063,4.073,3441,3.9,3451,3.253,3452,2.926,3455,3.9,3753,2.89,3771,5.707,3859,2.604,4466,4.989,5049,3.9,6365,5.707,6916,3.9,7420,8.417,7574,3.253,7714,4.073,8053,6.203,8054,7.941,8055,4.305,8056,9.903,8057,10.067,8061,4.305,8062,4.305,8072,4.305,8073,10.067,8075,8.656,8076,4.305,8078,4.305,8083,4.305,8085,4.305,8087,4.305,8089,4.305,8091,3.385,8092,6.203,8093,6.203,8094,4.305,8095,4.305,8096,4.073,8097,6.556,8098,4.305,8099,6.556,8100,6.556,8101,4.305,8102,4.305,8103,4.305,8104,4.305,8105,4.305,8106,4.305,8107,4.305,8108,4.305,8109,4.305,8110,4.305,8111,6.556,8112,4.073,8113,4.305,8114,4.305,8115,4.305,8116,4.305,8117,7.941,8118,4.305,8119,4.305,8120,4.305,8121,4.073,8122,4.073,8123,6.556,8124,4.305,8125,4.305,8126,4.073,8127,4.073,8128,3.9,8129,4.073,8130,4.073,8131,4.305,8132,4.305,8133,4.305,8134,4.305,8135,4.305,8136,4.305,8137,4.073,8138,4.305,8139,4.305,8140,4.305,8141,4.305,8142,4.305,8143,4.305,8144,4.305,8145,4.305,8146,3.9,8147,4.305,8148,5.729,8149,7.941,8150,4.305,8151,4.305,17586,4.657,17587,4.657,17588,4.657,17589,4.657]],["title/injectables/RoomBoardResponseMapper.html",[105,0.91,13851,5.694]],["body/injectables/RoomBoardResponseMapper.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.985,27,0.461,29,0.44,30,0.001,31,0.538,32,0.143,33,0.272,34,1.633,35,0.68,95,0.15,99,0.937,101,0.009,103,0,104,0,105,1.091,107,1.354,111,2.621,144,2.897,165,0.639,187,0.812,188,3.012,208,2.099,217,1.718,227,1.16,234,1.954,319,3.148,564,2.989,591,4.172,592,4.349,974,3.331,975,4.52,982,2.8,1041,5.891,1233,3.855,1397,2.73,2303,3.891,2627,5.282,2649,2.505,2655,4.337,2659,2.632,2731,6.829,2733,4.399,2735,4.28,2736,3.677,3435,11.221,3438,6.829,3439,6.829,3441,4.704,3445,5.193,3451,3.925,3452,3.53,3453,5.193,3454,5.193,3455,4.704,3706,7.538,3710,4.913,3753,3.486,3767,4.913,4466,4.736,5049,4.704,8075,9.367,8091,6.978,8092,8.396,8093,8.396,8122,7.132,8126,7.132,8127,4.913,8128,4.704,8129,4.913,8130,4.913,8137,7.132,8146,4.704,13851,6.829,17590,11.667,17591,9.6,17592,9.6,17593,9.6,17594,9.6,17595,5.193,17596,8.821,17597,5.193,17598,5.617,17599,5.617,17600,5.617,17601,5.617,17602,5.617,17603,5.617,17604,5.617,17605,5.617,17606,5.617,17607,5.617,17608,9.6,17609,5.617,17610,5.617,17611,5.617,17612,7.538,17613,5.617,17614,5.617,17615,5.617,17616,8.154,17617,5.617,17618,8.154,17619,5.617,17620,5.617,17621,5.617,17622,5.617,17623,5.617,17624,5.617,17625,5.617,17626,5.617,17627,5.617,17628,5.617,17629,5.617,17630,5.617,17631,5.617,17632,5.617,17633,5.617,17634,5.617,17635,8.154,17636,5.617,17637,5.617,17638,5.617,17639,5.617,17640,5.617,17641,8.154,17642,5.617,17643,5.617,17644,5.617,17645,5.617,17646,5.617,17647,5.617]],["title/classes/RoomElementUrlParams.html",[0,0.232,17648,5.947]],["body/classes/RoomElementUrlParams.html",[0,0.383,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,32,0.153,34,2.177,47,0.913,95,0.144,101,0.015,103,0.001,104,0.001,165,0.88,364,2.047,368,5.015,369,2.841,370,4.217,371,3.53,374,2.882,376,2.065,379,2.546,467,3.209,1000,4.98,1233,8.395,2553,4.789,3795,6.593,3833,7.711,4159,9.881,5691,8.347,5693,8.347,7420,9.515,17648,9.827,17649,12.232,17650,9.029]],["title/classes/RoomUrlParams.html",[0,0.232,17651,5.947]],["body/classes/RoomUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,1233,8.704,3795,5.749,7420,8.781,17651,10.332,17652,9.798,17653,9.798]],["title/injectables/RoomsAuthorisationService.html",[105,0.91,8057,5.324]],["body/injectables/RoomsAuthorisationService.html",[0,0.238,3,0.017,4,0.017,5,0.008,7,0.105,8,1.148,27,0.478,29,0.908,30,0.001,31,0.649,32,0.158,33,0.561,35,1.403,95,0.122,99,1.165,101,0.016,103,0.001,104,0.001,105,1.271,107,1.683,187,1.009,188,5.053,217,1.509,227,1.202,234,1.133,305,1.988,347,2.635,371,2.62,461,3.2,1031,2.187,1804,4.23,1805,4.637,1861,7.584,2449,4.79,2647,6.119,2649,5.708,2659,5.06,3228,4.443,5043,3.939,5055,4.014,8057,7.439,8128,5.845,11902,4.97,17654,6.98,17655,9.5,17656,9.5,17657,9.5,17658,9.5,17659,9.5,17660,6.98,17661,9.5,17662,6.98,17663,9.5,17664,6.98,17665,9.5,17666,6.98,17667,6.98,17668,9.5,17669,9.5,17670,6.98,17671,8.31,17672,6.98,17673,12.045,17674,6.98,17675,6.98,17676,6.98,17677,9.984,17678,9.5,17679,9.5,17680,8.782]],["title/controllers/RoomsController.html",[481,2.611,13854,5.947]],["body/controllers/RoomsController.html",[0,0.187,3,0.013,4,0.013,5,0.007,7,0.083,8,0.969,27,0.457,29,0.868,30,0.001,31,0.621,32,0.151,33,0.536,35,1.342,36,2.724,95,0.165,100,3.712,101,0.009,103,0,104,0,111,2.09,112,2.943,127,0.688,185,4.858,187,0.795,206,2.796,216,1.928,217,1.507,221,2.566,227,0.983,264,4.866,364,2.019,376,1.257,447,2.278,481,2.11,483,2.62,491,6.611,513,6.894,543,5.304,552,3.546,555,2.857,556,2.923,558,2.636,561,2.946,805,4.439,2627,3.372,2908,8.521,2929,3.16,2930,2.946,2964,7.938,2992,5.178,3009,3.33,3010,3.073,3709,3.651,3743,6.505,4466,4.661,6149,4.303,6386,4.439,6391,8.73,6620,5.08,6642,7.938,6695,7.938,7424,5.08,12248,3.771,13850,7.938,13851,6.72,13852,7.938,13854,7.019,13860,5.08,14139,8.163,14146,5.08,16543,9.117,16548,9.117,17596,4.602,17648,9.117,17651,11.111,17681,5.495,17682,9.479,17683,9.479,17684,9.479,17685,5.495,17686,5.495,17687,5.495,17688,5.495,17689,5.495,17690,5.495,17691,5.495,17692,8.025,17693,5.495,17694,5.495,17695,8.025,17696,5.495,17697,5.495,17698,8.025,17699,5.495,17700,4.602,17701,7.418,17702,5.495,17703,5.495,17704,5.495,17705,5.495,17706,5.495,17707,5.495,17708,5.495,17709,8.025,17710,5.495,17711,5.495,17712,5.495,17713,5.495,17714,5.495,17715,7.019,17716,5.495,17717,7.019,17718,5.495,17719,5.495,17720,5.495]],["title/injectables/RoomsService.html",[105,0.91,6647,5.493]],["body/injectables/RoomsService.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.12,26,2.813,27,0.437,29,0.83,30,0.001,31,0.594,32,0.155,33,0.513,34,1.146,35,1.122,36,2.449,39,2.855,95,0.163,99,1.124,101,0.011,103,0.001,104,0.001,105,1.24,107,1.623,111,2.59,112,2.728,127,1.161,187,0.974,216,2.215,217,1.65,221,2.935,227,0.961,247,2.639,347,1.362,369,1.495,450,2.766,1233,8.495,1931,8.3,1957,5.131,2130,2.942,2131,3.292,2132,3.174,2627,5.33,2655,3.582,2656,6.602,2823,4.082,2887,4.796,2970,9.427,3014,5.44,3066,5.274,3570,10.244,3859,3.767,4794,6.226,4886,10.621,4895,6.226,5003,9.431,5056,6.226,6647,7.489,8112,5.891,17721,6.735,17722,9.271,17723,9.271,17724,6.735,17725,6.735,17726,9.271,17727,6.735,17728,9.271,17729,6.735,17730,6.735,17731,9.271,17732,6.735,17733,9.271,17734,11.977,17735,6.735,17736,6.735,17737,6.735,17738,6.226,17739,6.735,17740,6.735,17741,6.735,17742,6.735,17743,6.735]],["title/injectables/RoomsUc.html",[105,0.91,13852,5.694]],["body/injectables/RoomsUc.html",[0,0.202,3,0.014,4,0.014,5,0.007,7,0.089,8,1.023,26,2.973,27,0.445,29,0.845,30,0.001,31,0.605,32,0.147,33,0.522,35,1.197,36,2.547,39,3.587,95,0.157,99,0.988,101,0.01,103,0,104,0,105,1.133,107,1.428,111,2.382,112,2.806,127,1.061,187,0.857,188,4.388,208,2.213,216,2.197,217,1.702,221,3.057,227,0.614,234,1.375,305,2.413,347,2,369,1.314,441,7.331,450,2.433,461,2.469,676,5.345,1233,7.838,1930,7.2,2018,7.745,2553,2.525,2627,4.799,2783,3.55,2970,9.092,3961,5.257,4076,9.441,4159,7.989,6646,4.96,6647,9.88,6862,6.454,7420,6.298,8056,8.65,8057,8.452,8075,8.283,8096,5.181,8148,8.719,13852,7.095,17738,7.831,17744,5.923,17745,8.472,17746,8.472,17747,9.89,17748,5.923,17749,8.472,17750,5.923,17751,8.472,17752,9.89,17753,5.923,17754,5.923,17755,5.923,17756,5.923,17757,5.923,17758,9.89,17759,5.923,17760,5.923,17761,5.923,17762,8.472,17763,7.831,17764,8.472,17765,5.923,17766,5.923,17767,5.923,17768,5.923]],["title/interfaces/RpcMessage.html",[334,0.731,10512,5.055]],["body/interfaces/RpcMessage.html",[3,0.024,4,0.024,5,0.012,7,0.151,30,0.001,32,0.162,33,0.577,47,0.711,55,2.147,101,0.02,103,0.001,104,0.001,165,0.935,204,4.593,334,1.282,336,2.385,404,1.796,564,3.654,692,4.773,1216,5.305,8355,10.696,10512,8.872,11959,8.718,11960,9.214]],["title/classes/RpcMessageProducer.html",[0,0.232,10613,5.694]],["body/classes/RpcMessageProducer.html",[0,0.239,2,0.781,3,0.017,4,0.017,5,0.008,7,0.106,8,1.15,9,3.3,27,0.479,29,0.981,30,0.001,31,0.65,32,0.17,33,0.561,35,1.31,47,0.962,55,2.501,80,6.126,95,0.139,101,0.012,103,0.001,104,0.001,112,2.385,127,1.193,148,2.156,204,3.231,216,2.001,217,1.408,221,1.621,227,0.987,231,7.329,305,1.995,367,4.541,661,5.714,692,3.558,957,3.883,1016,3.799,1216,4.908,1312,7.535,1314,6.145,1337,5.658,1338,9.311,1345,4.606,1351,4.893,1352,4.519,1965,5.658,3901,8.74,3937,9.027,6887,5.091,8351,6.126,8353,6.475,10512,8.631,10613,7.975,10614,8.329,10615,8.329,10623,8.329,10625,8.329,10627,8.329,11959,10.621,17769,7.004,17770,7.004,17771,7.004,17772,7.004,17773,7.004,17774,7.004,17775,7.004,17776,7.004,17777,7.004,17778,7.004,17779,7.004,17780,7.004,17781,9.523,17782,7.004,17783,7.004,17784,6.475]],["title/interfaces/Rule.html",[334,0.731,2006,4.219]],["body/interfaces/Rule.html",[3,0.021,4,0.021,5,0.011,7,0.133,8,1.337,27,0.456,29,0.867,30,0.001,31,0.62,32,0.15,33,0.535,35,1.34,59,2.745,95,0.163,99,1.471,101,0.015,103,0.001,104,0.001,199,5.042,334,0.947,336,2.109,347,2.567,359,4.721,461,3.16,692,4.984,1787,5.118,1795,7.318,1820,5.468,1861,6.707,1872,5.118,1873,5.468,1874,6.275,1875,6.714,2002,7.14,2006,6.867,3385,7.352,3389,7.243,16823,7.707,17785,8.812,17786,8.812,17787,8.812]],["title/injectables/RuleManager.html",[105,0.91,1894,5.694]],["body/injectables/RuleManager.html",[0,0.204,3,0.014,4,0.014,5,0.007,7,0.091,8,1.033,27,0.448,29,0.78,30,0.001,31,0.558,32,0.162,33,0.482,35,1.035,95,0.153,99,1.002,101,0.01,103,0,104,0,105,1.144,107,1.447,111,2.766,116,3.103,127,1.071,165,0.67,187,0.868,199,4.104,216,2.517,217,1.113,227,0.887,234,1.389,247,2.352,305,2.437,359,4.002,461,2.626,905,2.499,1353,2.897,1787,6.308,1795,5.869,1872,6.308,1873,3.725,1874,4.274,1875,4.573,1886,10.283,1887,10.283,1888,9.919,1889,8.87,1891,10.283,1892,9.094,1893,9.919,1894,7.162,1895,10.283,1896,10.283,1897,9.919,1898,10.283,1899,10.283,1900,10.283,1906,8.988,2006,8.04,3228,5.444,17788,11.479,17789,6.002,17790,8.553,17791,8.553,17792,6.002,17793,9.964,17794,8.553,17795,8.553,17796,6.002,17797,8.553,17798,6.002,17799,6.002,17800,6.002,17801,6.002,17802,6.002,17803,6.002,17804,6.002,17805,6.002,17806,6.002,17807,6.002,17808,6.002,17809,6.002,17810,6.002,17811,6.002,17812,6.002,17813,6.002,17814,6.002,17815,6.002,17816,6.002,17817,8.553,17818,6.002,17819,6.002]],["title/injectables/S3ClientAdapter.html",[105,0.91,10766,5.055]],["body/injectables/S3ClientAdapter.html",[0,0.105,3,0.007,4,0.007,5,0.013,7,0.047,8,0.618,10,3.074,27,0.455,29,0.818,30,0.001,31,0.585,32,0.146,33,0.505,34,0.526,35,1.265,36,2.16,47,0.925,59,0.963,72,1.401,95,0.129,101,0.005,103,0,104,0,105,0.685,107,0.745,111,1.93,112,2.828,116,4.019,127,0.641,144,0.85,148,0.951,154,3,163,2.597,165,0.401,185,3.915,187,0.447,199,2.878,204,1.049,216,0.947,217,1.67,221,2.705,227,1.17,234,1.925,247,1.211,305,2.976,319,0.924,334,0.332,359,1.078,483,1.474,535,3.512,543,1.573,576,6.597,731,3.334,770,1.833,784,6.1,806,1.259,839,1.474,883,3.231,1187,3.632,1188,3.589,1189,3.589,1190,3.796,1191,4.15,1192,5.227,1193,4.421,1195,2.355,1265,3.9,1342,5.303,1344,4.985,1345,2.031,1353,3.162,1354,2.202,1355,2.421,1369,5.868,1370,6.941,1371,8.81,1467,0.987,1572,2.704,1750,4.468,1763,2.247,1798,5.435,1950,3.645,2035,4.561,2139,3.303,2356,2.691,2357,3.469,2374,5.13,2384,1.853,2524,3.844,2644,1.657,2684,4.732,2794,3.035,3047,2.202,3578,3.931,3579,1.521,3580,2.667,3813,2.122,4661,2.702,5339,4.477,6262,5.964,6263,8.838,6265,4.135,6266,4.135,6267,4.848,6270,8.167,6273,2.247,6274,2.298,6275,3.645,6276,2.298,6277,2.298,6740,2.298,7821,3.513,7927,7.54,7951,6.661,7961,4.287,7962,2.704,7963,4.135,9603,3.258,9799,2.704,9800,2.858,10253,7.158,10303,7.336,10730,5.803,10737,2.858,10766,3.805,12108,2.497,16719,4.732,17820,10.434,17821,3.092,17822,6.551,17823,5.119,17824,7.616,17825,6.551,17826,5.119,17827,5.73,17828,3.092,17829,5.119,17830,5.119,17831,3.092,17832,5.119,17833,3.092,17834,5.119,17835,3.092,17836,3.092,17837,5.119,17838,3.092,17839,5.119,17840,3.092,17841,3.092,17842,5.119,17843,3.092,17844,5.119,17845,3.092,17846,7.616,17847,5.119,17848,3.092,17849,5.119,17850,5.119,17851,5.119,17852,5.119,17853,3.092,17854,6.056,17855,2.858,17856,3.092,17857,3.092,17858,3.092,17859,3.092,17860,3.092,17861,2.704,17862,11.689,17863,8.439,17864,3.092,17865,3.092,17866,3.092,17867,3.092,17868,3.092,17869,3.092,17870,3.092,17871,3.092,17872,5.119,17873,5.119,17874,5.119,17875,3.092,17876,3.092,17877,5.119,17878,3.092,17879,3.092,17880,3.092,17881,3.092,17882,3.092,17883,5.119,17884,5.119,17885,5.119,17886,5.119,17887,5.119,17888,3.092,17889,3.092,17890,3.092,17891,5.119,17892,3.092,17893,3.092,17894,3.092,17895,3.092,17896,3.092,17897,3.092,17898,3.092,17899,3.092,17900,3.092,17901,3.092,17902,3.092,17903,3.092,17904,6.551,17905,3.092,17906,5.119,17907,3.092,17908,3.092,17909,3.092,17910,3.092,17911,3.092,17912,3.092,17913,6.551,17914,3.092,17915,5.119,17916,3.092,17917,3.092,17918,3.092,17919,3.092,17920,3.092,17921,3.092]],["title/modules/S3ClientModule.html",[425,1.812,10588,5.055]],["body/modules/S3ClientModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,8,0.979,27,0.334,29,0.635,30,0.001,31,0.454,32,0.11,33,0.392,35,0.981,95,0.164,101,0.014,103,0.001,104,0.001,154,5.327,187,1.172,217,1.601,227,1.088,234,1.703,334,0.871,369,2.328,425,3.1,427,2.927,432,4.28,433,3.062,438,4.914,449,3.215,627,3.219,836,4.707,837,5.77,839,3.864,1301,7.728,1467,2.586,2145,6.591,2356,4.309,2357,5.946,6263,8.214,6267,8.111,6269,7.329,6271,7.329,6272,7.329,7951,10.174,7961,6.786,7962,7.087,7963,8.473,7992,7.491,7994,7.491,7995,6.024,10489,7.491,10588,8.647,10766,6.024,13448,7.491,16637,7.087,17820,9.697,17922,10.49,17923,8.103,17924,8.103,17925,8.103,17926,8.103,17927,8.103,17928,8.103,17929,8.103]],["title/interfaces/S3Config.html",[334,0.731,6267,4.328]],["body/interfaces/S3Config.html",[3,0.023,4,0.023,5,0.012,7,0.145,30,0.001,32,0.182,47,1.023,101,0.016,103,0.001,104,0.001,165,0.914,334,1.032,336,2.3,2145,8.219,6267,7.432,6269,9.139,6270,9.139,6271,9.139,6272,9.139,10712,7.526,10713,7.526,17930,9.611]],["title/interfaces/S3Config-1.html",[334,0.607,905,2.354,6267,3.598]],["body/interfaces/S3Config-1.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.181,47,1.03,55,1.865,95,0.111,101,0.021,103,0.001,104,0.001,163,3.369,165,0.857,334,1.355,336,2.073,1342,7.541,1344,5.668,1487,4.844,2145,7.923,6262,6.782,6263,6.782,6264,7.253,6265,6.996,6266,6.996,6267,6.967,6268,9.874,6269,8.81,6270,8.81,6271,8.81,6272,8.81,6273,6.295,6274,6.438,6275,6.167,6276,6.438,6277,6.438]],["title/classes/SSOLoginQuery.html",[0,0.232,16093,5.947]],["body/classes/SSOLoginQuery.html",[0,0.396,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,27,0.479,30,0.001,32,0.158,33,0.631,47,0.829,52,5.943,95,0.149,101,0.016,103,0.001,104,0.001,165,0.911,347,2.351,364,2.117,373,6.232,374,3.046,376,2.183,467,3.289,470,4.863,471,5.082,15408,10.127,16093,10.168,17931,12.537,17932,9.542,17933,9.542,17934,9.542,17935,9.542,17936,9.542]],["title/interfaces/SanisGruppeResponse.html",[334,0.731,17937,5.947]],["body/interfaces/SanisGruppeResponse.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.184,34,2.2,47,0.994,95,0.147,101,0.016,103,0.001,104,0.001,165,0.896,334,0.999,336,2.226,1016,3.265,1166,4.462,13148,11.312,17065,6.623,17937,10.009,17938,6.76,17939,8.597,17940,12.934,17941,12.276,17942,12.934,17943,11.312,17944,11.956,17945,8.149]],["title/interfaces/SanisGruppenResponse.html",[334,0.731,17946,5.694]],["body/interfaces/SanisGruppenResponse.html",[3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.17,33,0.56,95,0.16,101,0.016,103,0.001,104,0.001,165,0.907,334,1.018,336,2.268,1016,4.388,11151,10.515,17065,6.747,17937,11.385,17938,6.888,17939,12.341,17945,8.9,17946,9.693,17947,8.759,17948,12.341,17949,13.017,17950,11.385,17951,8.759,17952,8.759]],["title/interfaces/SanisGruppenzugehoerigkeitResponse.html",[334,0.731,17950,5.947]],["body/interfaces/SanisGruppenzugehoerigkeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.14,95,0.133,101,0.017,103,0.001,104,0.001,165,0.955,334,1.109,336,2.471,496,4.359,1166,4.953,17065,7.352,17938,7.505,17945,7.352,17948,9.545,17950,10.66,17953,11.717,17954,11.717]],["title/interfaces/SanisLaufzeitResponse.html",[334,0.731,17943,5.947]],["body/interfaces/SanisLaufzeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,32,0.165,83,4.234,101,0.017,103,0.001,104,0.001,165,0.952,334,1.104,336,2.458,17065,7.315,17938,7.467,17941,9.496,17943,10.628,17955,13.374,17956,13.374]],["title/interfaces/SanisNameResponse.html",[334,0.731,17957,5.947]],["body/interfaces/SanisNameResponse.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,31,0.575,32,0.165,47,0.987,101,0.017,103,0.001,104,0.001,165,0.952,334,1.104,336,2.458,17065,7.315,17938,7.467,17957,10.628,17958,13.374,17959,13.374]],["title/interfaces/SanisOrganisationResponse.html",[334,0.731,17960,5.947]],["body/interfaces/SanisOrganisationResponse.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,31,0.738,32,0.179,34,2.241,47,1.017,101,0.016,103,0.001,104,0.001,165,0.927,334,1.055,336,2.35,13148,11.525,17065,6.994,17938,7.139,17960,10.347,17961,9.079,17962,13.177]],["title/interfaces/SanisPersonResponse.html",[334,0.731,17963,5.947]],["body/interfaces/SanisPersonResponse.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,31,0.752,32,0.178,47,1,95,0.124,101,0.016,103,0.001,104,0.001,165,0.917,334,1.037,336,2.311,1016,3.39,17065,6.877,17938,7.02,17945,6.877,17957,11.46,17963,10.242,17964,8.446,17965,13.102,17966,13.102,17967,13.102]],["title/interfaces/SanisPersonenkontextResponse.html",[334,0.731,17968,5.947]],["body/interfaces/SanisPersonenkontextResponse.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.18,33,0.547,34,2.186,47,0.96,95,0.158,101,0.015,103,0.001,104,0.001,165,0.886,334,0.981,336,2.185,496,3.855,1016,3.972,17065,6.503,17938,6.638,17945,8.755,17946,10.762,17947,12.212,17960,11.24,17961,12.212,17968,9.896,17969,8.441,17970,12.851,17971,12.851,17972,11.88]],["title/injectables/SanisProvisioningStrategy.html",[105,0.91,16839,5.694]],["body/injectables/SanisProvisioningStrategy.html",[0,0.212,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,27,0.48,29,0.864,30,0.001,31,0.618,32,0.15,33,0.533,34,1.057,35,1.335,36,2.178,95,0.171,99,1.037,100,2.081,101,0.01,103,0.001,104,0.001,105,1.173,107,1.498,111,2.332,112,2.563,127,1.098,145,1.574,148,2.698,150,2.152,163,1.913,187,0.899,216,1.878,217,1.514,221,1.439,227,0.909,234,1.423,305,1.771,404,1.58,596,3.098,661,2.612,1016,2.182,1127,3.956,1154,8.665,1155,3.61,1157,4.068,1270,3.685,1353,4.232,1633,5.205,1820,3.857,2022,7.232,2033,4.342,2130,2.715,2131,3.038,2132,2.929,2139,4.01,2268,3.541,2293,7.342,3104,3.971,3709,4.129,3859,3.476,3928,7.081,4571,3.387,8419,6.679,8450,6.517,9534,8.455,10921,8.637,11156,4.518,11447,7.342,11714,5.44,12332,6.381,12334,6.647,12335,4.129,12336,4.129,13086,6.865,13088,5.021,13089,8.126,13093,7.081,13094,8.2,13109,5.746,13118,8.204,13120,7.342,13122,7.081,13123,5.436,15695,8.883,16295,5.436,16300,10.019,16339,5.746,16401,8.883,16408,5.436,16414,5.746,16839,7.342,16840,9.238,17945,6.243,17973,6.215,17974,8.767,17975,6.215,17976,6.215,17977,8.104,17978,8.767,17979,6.215,17980,6.215,17981,6.215,17982,6.215,17983,6.215,17984,5.205,17985,6.215,17986,6.215,17987,6.215,17988,6.215,17989,6.215,17990,6.215,17991,6.215,17992,6.215,17993,6.215,17994,6.215,17995,6.215]],["title/interfaces/SanisResponse.html",[334,0.731,17984,5.694]],["body/interfaces/SanisResponse.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.172,47,0.902,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,334,1.047,336,2.333,1016,4.135,17945,8.387,17963,11.497,17964,11.77,17968,11.497,17969,9.013,17984,9.864,17996,9.75,17997,13.145,17998,13.145]],["title/injectables/SanisResponseMapper.html",[105,0.91,16840,5.694]],["body/injectables/SanisResponseMapper.html",[0,0.179,3,0.012,4,0.026,5,0.006,7,0.079,8,0.938,27,0.486,29,0.893,30,0.001,31,0.678,32,0.16,33,0.551,35,1.318,47,0.375,95,0.151,99,0.878,100,1.761,101,0.009,103,0,104,0,105,1.039,107,1.268,111,2.285,127,0.659,144,1.446,145,2.757,165,0.609,167,4.454,187,0.76,215,1.678,216,0.972,217,1.712,227,1.282,234,1.657,319,1.572,461,1.777,696,4.039,851,2.507,852,2.507,854,4.637,974,3.118,1016,1.846,1166,3.727,1180,2.263,1464,2.422,1467,1.678,2356,4.682,2969,3.549,3090,2.274,3110,2.621,4466,7.031,4571,5.562,5961,4.861,6473,5.367,8178,3.224,8419,8.684,8422,6.795,8427,5.919,8430,9.233,8432,4.404,8443,3.493,8450,7.587,8452,4.882,8807,4.117,9534,7.419,9718,5.162,9719,5.244,11003,4.599,11147,4.599,11151,8.796,11153,4.861,11258,4.861,12012,5.919,12836,7.04,13069,7.182,13070,7.182,13711,4.861,14615,4.861,16840,6.506,17944,4.861,17946,6.506,17953,4.599,17954,4.599,17972,4.861,17984,10.918,17999,12.104,18000,9.24,18001,7.769,18002,7.769,18003,7.769,18004,7.769,18005,7.769,18006,5.258,18007,7.769,18008,5.258,18009,7.769,18010,5.258,18011,7.769,18012,7.769,18013,5.258,18014,7.769,18015,5.258,18016,5.258,18017,5.258,18018,5.258,18019,5.258,18020,5.258,18021,5.258,18022,5.258,18023,5.258,18024,5.258,18025,5.258,18026,5.258,18027,5.258,18028,5.258,18029,5.258,18030,5.258,18031,5.258,18032,5.258,18033,5.258,18034,9.24,18035,5.258,18036,7.769,18037,4.861,18038,5.258,18039,5.258,18040,5.258,18041,5.258,18042,5.258,18043,7.769,18044,5.258,18045,5.258,18046,5.258,18047,5.258,18048,5.258,18049,5.258,18050,5.258,18051,5.258,18052,5.258,18053,5.258,18054,5.258]],["title/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[334,0.731,11151,5.493]],["body/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.163,47,0.915,95,0.129,101,0.017,103,0.001,104,0.001,165,0.94,334,1.082,336,2.409,496,4.25,1166,4.83,11151,9.698,17065,7.169,17938,7.318,17945,7.169,17951,9.306,17952,9.306,17953,11.62,17954,11.62,18037,12.281]],["title/interfaces/ScanResult.html",[334,0.731,1330,4.328]],["body/interfaces/ScanResult.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.168,33,0.653,47,1.013,55,1.994,101,0.021,103,0.001,104,0.001,165,0.894,204,4.381,334,1.329,336,2.215,347,2.682,1299,7.478,1308,6.916,1310,9.217,1312,7.081,1314,7.363,1323,6.468,1327,8.097,1328,7.753,1329,7.478,1330,7.263,1331,8.451,1332,8.451]],["title/classes/ScanResultDto.html",[0,0.232,10132,5.694]],["body/classes/ScanResultDto.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.515,29,0.742,30,0.001,31,0.531,32,0.17,33,0.458,47,0.825,95,0.122,101,0.016,103,0.001,104,0.001,127,1.187,165,0.907,380,2.013,405,3.084,564,4.582,595,3.172,2037,5.56,2038,6.62,6170,6.029,6191,8.18,10039,8.435,10042,7.043,10043,7.043,10132,11.18,18055,13.017,18056,9.475,18057,11.575,18058,9.475]],["title/classes/ScanResultParams.html",[0,0.232,6239,4.517]],["body/classes/ScanResultParams.html",[0,0.454,2,0.695,3,0.015,4,0.021,5,0.011,7,0.094,26,2.561,27,0.419,30,0.001,32,0.169,33,0.584,39,1.679,47,0.965,95,0.159,99,1.04,101,0.022,103,0.001,104,0.001,150,2.159,165,0.688,204,3.452,214,2.77,334,0.67,347,2.058,364,1.853,369,1.384,373,4.71,374,1.99,375,4.207,376,1.426,377,5.837,379,1.413,380,1.325,467,3.623,469,2.737,470,5.054,471,4.477,565,3.108,1000,4.919,1001,6.62,1031,3.188,1044,2.991,1180,2.683,1270,3.697,1330,6.476,1331,6.658,1332,6.658,2702,4.584,2889,5.038,3610,3.048,4205,2.101,5836,6.513,6170,5.116,6183,7.229,6189,6.019,6217,3.067,6220,4.279,6221,4.356,6222,4.356,6225,7.736,6228,4.356,6229,8.026,6230,7.717,6231,7.717,6232,4.356,6233,4.279,6234,6.866,6235,4.279,6236,4.356,6237,4.208,6238,5.93,6239,5.837,6240,4.208,6241,4.279,6242,4.208,6243,4.208,6244,3.969,6245,4.356,6246,4.356,6247,4.356,6248,3.969,6249,3.969,6250,4.081,6251,4.142,6252,4.356,18059,10.173,18060,6.235,18061,6.235,18062,6.235]],["title/entities/SchoolEntity.html",[380,1.445,844,3.097]],["body/entities/SchoolEntity.html",[0,0.292,3,0.011,4,0.011,5,0.006,7,0.129,27,0.518,30,0.001,31,0.537,32,0.168,33,0.641,47,0.907,83,2.622,95,0.14,96,1.269,101,0.017,102,2.329,103,0,104,0,144,1.276,145,1.791,165,0.671,167,1.708,234,1.148,240,4.033,319,1.387,334,0.499,347,2.087,355,1.865,359,2.466,364,2.288,369,3.042,370,4.364,371,2.644,380,1.503,381,1.544,386,6.195,398,1.367,400,2.048,402,1.923,404,0.836,405,1.237,406,1.509,483,3.373,844,3.222,854,5.179,1031,1.454,1167,2.55,1183,3.242,1843,2.2,1849,4.301,2095,1.841,2395,4.774,2574,4.424,2632,5.786,2636,3.855,2640,3.855,2641,5.539,3105,4.503,3106,3.992,4265,3.305,4271,3.855,4281,2.027,4323,6.274,4338,3.536,4339,5.539,4491,6.748,4989,3.926,6464,7.083,6472,6.369,6479,4.29,6486,4.564,6537,4.337,6556,5.389,6557,3.45,6751,4.774,6871,2.751,6872,4.337,8452,6.024,8456,3.45,8457,5.714,8469,4.633,8470,3.45,9787,7.117,10031,2.916,10293,6.325,10752,6.569,11571,5.539,12179,5.539,12180,3.886,12181,7.304,12182,6.969,12183,6.58,12184,6.827,12185,8.084,12186,3.748,12187,3.748,12188,3.886,12189,3.748,12190,3.886,12191,3.886,12192,5.924,12193,3.886,12194,3.886,12195,3.886,12196,3.886,12197,3.886,12198,3.886,12199,3.886,12200,3.886,12201,6.924,12202,3.886,12203,3.886,12204,7.744,12205,5.924,12206,5.924,12207,5.924,12208,4.942,12209,5.539,12210,3.45,12211,3.748,12212,3.886,12213,5.924,12214,3.536,12215,3.886,12216,3.886,12217,5.714,12218,3.748,12219,3.305,12220,3.886,18063,4.64,18064,4.64,18065,4.64,18066,4.64,18067,4.64,18068,4.64,18069,4.64,18070,4.64,18071,4.64,18072,4.64,18073,4.64,18074,4.29,18075,4.64]],["title/classes/SchoolExternalTool.html",[0,0.232,139,3.737]],["body/classes/SchoolExternalTool.html",[0,0.239,2,0.781,3,0.017,4,0.017,5,0.008,7,0.106,8,1.15,27,0.545,29,0.951,30,0.001,31,0.68,32,0.177,33,0.62,34,1.841,35,0.848,47,0.962,55,2.616,95,0.149,101,0.016,103,0.001,104,0.001,127,0.877,139,5.234,165,0.746,181,7.492,194,4.584,198,3.402,200,4.36,214,3.002,227,0.726,334,0.752,404,1.716,405,2.537,564,4.256,595,2.345,596,2.137,1872,6.744,2037,4.11,2038,4.893,2095,2.779,4205,3.913,4281,3.06,4282,4.153,4283,5.207,5350,8.268,5352,7.519,5696,5.485,5700,8.846,5708,5.091,5710,5.485,5711,4.988,5712,5.336,5719,4.653,5720,5.091,5721,6.781,5722,5.207,7252,8.204,8776,6.327,8929,5.091,8930,5.485,18076,11.563,18077,9.723,18078,9.523,18079,7.004,18080,7.004,18081,7.004,18082,7.004,18083,7.004,18084,7.004]],["title/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.232,18085,5.694]],["body/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.011,7,0.138,27,0.467,29,0.717,30,0.001,31,0.513,32,0.167,33,0.443,95,0.146,101,0.015,103,0.001,104,0.001,127,1.146,145,2.317,163,4.068,165,0.887,192,2.727,200,4.006,209,4.251,364,1.667,376,2.093,467,2.973,1006,6.394,1009,6.455,1011,4.624,1026,5.073,1268,7.546,2130,5.618,2559,5.575,5732,8.873,5733,8.46,18085,9.489,18086,11.377,18087,11.028]],["title/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.232,18087,5.493]],["body/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,26,2.399,27,0.53,29,0.943,30,0.001,31,0.674,32,0.178,33,0.547,47,0.858,55,2.177,95,0.145,99,1.278,101,0.013,103,0.001,104,0.001,127,0.959,145,1.939,165,0.792,200,4.082,209,4.331,364,2.279,375,4.31,376,1.751,467,3.49,1011,3.869,1431,4.362,2095,3.038,2130,5.811,2559,5.937,5007,6.116,5719,5.087,5734,7.078,5735,7.906,5736,6.387,5738,9.344,5740,7.078,5741,7.078,5742,7.078,5743,9.424,5744,9.344,5745,7.078,5746,6.697,5747,6.412,5748,7.078,5751,7.078,5752,5.011,5753,7.078,5754,7.078,5755,5.995,5756,7.078,18086,12.116,18087,10.107]],["title/entities/SchoolExternalToolEntity.html",[380,1.445,5778,4.943]],["body/entities/SchoolExternalToolEntity.html",[0,0.26,3,0.018,4,0.018,5,0.009,7,0.115,27,0.496,30,0.001,32,0.163,55,2.433,95,0.16,96,2.087,101,0.017,103,0.001,104,0.001,165,0.79,192,3.581,200,4.264,209,3.972,240,3.583,334,0.819,364,2.189,369,2.667,380,2.142,381,2.537,398,2.247,399,4,402,3.161,404,1.374,405,2.032,406,2.481,844,5.692,1858,5.281,4265,5.432,4271,5.495,4272,4.623,4989,5.504,5352,7.051,5721,5.432,5722,5.67,5770,6.161,5776,9.521,5778,7.329,5781,6.388,5782,4.922,6543,4.733,6544,4.572,6751,5.148,7252,7.755,8680,8.558,11044,5.329,12030,8.145,12171,8.444,12172,11.552,12173,10.511,12174,7.051,12175,7.051,12176,7.051,12177,7.051,12178,7.051,18088,7.627,18089,7.627,18090,7.627,18091,7.627]],["title/classes/SchoolExternalToolFactory.html",[0,0.232,18092,6.286]],["body/classes/SchoolExternalToolFactory.html",[0,0.166,2,0.544,3,0.012,4,0.012,5,0.006,7,0.074,8,0.888,27,0.535,29,1.033,30,0.001,31,0.727,32,0.18,33,0.606,34,1.25,35,1.467,47,0.752,55,2.479,59,3.287,95,0.126,101,0.008,103,0,104,0,127,0.612,138,3.211,139,2.683,144,3.395,148,1.503,165,0.576,181,4.743,185,4.873,200,2.754,201,2.484,216,1.359,217,0.957,227,0.762,234,0.793,319,3.539,359,2.563,366,2.731,379,2.004,380,1.879,381,2.445,404,1.325,538,3.312,564,1.79,596,3.919,627,2.256,660,7.061,661,4.66,662,5.553,665,4.149,666,5.553,667,5.613,668,4.149,669,4.149,670,4.149,671,4.075,672,4.53,673,4.99,674,6.659,675,5.85,676,7.012,677,2.781,682,2.755,683,4.149,684,2.781,685,5.193,686,5.362,687,4.194,688,5.041,689,4.111,690,2.755,691,2.597,692,4.143,693,2.683,694,2.639,695,2.755,696,5.115,697,2.781,698,4.901,699,2.755,700,7.17,701,4.187,702,6.683,703,2.781,704,3.64,705,2.755,706,2.781,707,2.755,708,2.781,709,2.755,712,2.755,713,6.147,714,2.781,715,2.755,716,4.149,717,3.88,718,4.149,719,2.781,720,2.661,721,2.639,722,2.177,723,2.755,724,2.755,725,2.755,726,2.781,727,2.781,728,1.867,729,2.755,730,2.781,731,2.904,732,2.755,733,2.781,735,2.836,736,2.895,737,2.926,905,2.033,4205,3.316,4313,6.296,4315,3.549,5350,3.477,5352,2.865,5358,4.089,5793,3.944,5798,3.823,5875,3.477,8776,4.006,18077,4.089,18092,8.173,18093,7.351,18094,7.351,18095,7.351,18096,4.882,18097,4.882,18098,4.882]],["title/classes/SchoolExternalToolIdParams.html",[0,0.232,18099,5.324]],["body/classes/SchoolExternalToolIdParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,47,0.837,95,0.151,101,0.016,103,0.001,104,0.001,165,0.92,200,4.087,209,3.881,364,1.767,368,4.601,369,2.606,370,3.196,371,3.238,374,3.097,376,2.22,467,3.081,478,6.91,1000,4.781,5737,9.18,5803,8.126,5804,8.487,7252,7.287,18099,9.196,18100,9.486]],["title/classes/SchoolExternalToolIdParams-1.html",[0,0.193,905,2.354,18099,4.427]],["body/classes/SchoolExternalToolIdParams-1.html",[0,0.403,2,1.095,3,0.023,4,0.023,5,0.012,7,0.148,26,2.691,27,0.405,30,0.001,32,0.133,95,0.163,99,1.639,101,0.016,103,0.001,104,0.001,165,0.927,200,3.685,209,3.91,364,1.789,374,3.135,376,2.247,467,3.104,478,6.994,1000,4.816,2559,5.359,5737,9.228,5806,7.139,5807,7.934,18099,9.263,18101,10.936]],["title/modules/SchoolExternalToolModule.html",[425,1.812,5814,5.324]],["body/modules/SchoolExternalToolModule.html",[0,0.294,3,0.02,4,0.02,5,0.01,30,0.001,95,0.162,101,0.014,103,0.001,104,0.001,187,1.247,200,3.731,209,2.85,425,3.192,427,3.115,428,3.351,429,3.45,430,3.436,431,3.421,432,4.408,433,4.527,442,4.368,443,3.379,444,3.298,449,4.331,766,3.607,5030,4.96,5328,9.645,5338,6.966,5813,10.109,5814,11.072,6057,9.317,7252,5.351,18102,8.623,18103,8.623,18104,8.623,18105,8.623,18106,11.744,18107,8.623]],["title/classes/SchoolExternalToolPostParams.html",[0,0.232,18108,5.694]],["body/classes/SchoolExternalToolPostParams.html",[0,0.395,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,27,0.506,29,0.908,30,0.001,32,0.18,33,0.505,47,0.875,55,2.251,95,0.158,101,0.013,103,0.001,104,0.001,165,0.818,200,4.27,209,4.203,290,4.726,364,2.236,369,1.787,374,2.571,375,3.98,376,1.842,467,3.22,470,4.852,471,4.236,1000,4.722,1431,4.588,2450,4.588,3469,7.441,4205,3.909,5007,6.269,5477,6.651,5820,7.446,5827,9.69,5828,6.745,5829,6.745,5830,6.745,5832,7.446,5833,7.446,5835,5.061,5836,5.844,7252,7.892,8776,6.321,18100,10.273,18108,8.751,18109,8.054,18110,9.659,18111,8.054,18112,8.054,18113,8.054]],["title/interfaces/SchoolExternalToolProps.html",[334,0.731,18077,5.694]],["body/interfaces/SchoolExternalToolProps.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.118,29,0.987,30,0.001,31,0.706,32,0.179,33,0.625,34,2.064,47,1,55,2.714,95,0.156,101,0.017,103,0.001,104,0.001,139,4.298,165,0.803,181,8.129,194,5.118,198,3.798,200,3.192,214,2.465,227,0.811,334,0.84,336,1.871,404,1.409,405,2.084,564,4.619,1872,5.953,2037,4.588,2038,5.463,2095,3.103,4205,4.246,4281,3.416,4282,4.637,4283,5.813,5350,8.972,5352,7.73,5696,6.123,5700,5.958,5710,6.123,5711,5.569,5712,5.958,5719,5.195,5720,5.684,5721,7.299,5722,5.813,7252,4.852,8776,6.866,8929,5.684,8930,6.123,18076,6.84,18077,9.576]],["title/classes/SchoolExternalToolRefDO.html",[0,0.232,5706,5.493]],["body/classes/SchoolExternalToolRefDO.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,27,0.511,29,0.727,30,0.001,31,0.52,32,0.168,33,0.599,47,0.922,101,0.015,103,0.001,104,0.001,127,1.162,165,0.895,200,4.307,209,4.271,405,3.045,595,3.107,4205,4.174,4282,5.501,4283,6.897,5706,10.72,5797,9.001,5942,8.577,7252,8.019,18076,11.303,18114,9.279,18115,11.427,18116,9.279,18117,9.279]],["title/injectables/SchoolExternalToolRepo.html",[105,0.91,1933,5.055]],["body/injectables/SchoolExternalToolRepo.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.059,8,0.745,10,2.49,12,2.825,18,3.117,26,2.331,27,0.537,29,1.021,30,0.001,31,0.725,32,0.176,33,0.626,34,1.483,35,1.556,36,2.711,40,1.879,47,0.807,95,0.155,96,1.688,97,1.683,99,0.65,101,0.006,103,0,104,0,105,0.825,107,0.938,111,2.373,112,2.933,127,0.487,139,6.802,148,1.198,158,1.902,165,0.305,192,2.284,200,3.806,201,1.98,209,2.533,216,1.141,217,1.54,221,1.774,227,1.227,234,1.244,277,3.093,359,2.151,380,1.853,381,2.549,398,1.147,404,1.112,529,2.681,595,1.303,596,3.727,661,3.221,844,1.773,878,4.31,884,2.907,885,4.803,915,2.157,935,6.418,1467,1.242,1790,4.475,1933,4.586,2051,2.217,2343,8.676,2345,4.393,2346,4.393,2347,4.393,2348,4.393,2349,4.31,2350,4.31,2351,4.393,2352,4.31,2353,4.393,2354,2.829,2355,5.016,2356,3.582,2357,3.972,2359,4.484,2360,2.771,2362,5.016,2363,2.771,2365,2.771,2367,6.222,2368,4.31,2369,2.771,2371,2.771,2373,4.393,2377,4.393,2379,4.164,2380,4.31,2382,2.771,2384,2.333,2385,2.386,2386,2.771,2388,2.771,2390,2.719,2391,2.771,2397,2.627,2408,5.354,2409,5.697,2431,5.166,2444,3.404,4205,2.583,4369,2.511,4492,2.893,4661,3.256,5352,3.62,5778,8.882,5782,3.981,5839,3.404,5840,5.703,5845,5.703,5853,5.166,5862,2.829,5863,2.829,5864,2.829,5865,2.829,5866,2.829,5867,2.829,5868,2.829,5869,2.829,5870,2.829,5874,2.771,5875,5.458,5876,3.144,5877,3.404,5878,2.965,5880,3.583,5881,3.598,5882,2.719,5889,3.598,5895,3.598,5902,3.598,5903,3.598,7271,2.415,8680,2.771,8776,5.181,9006,3.598,9007,2.965,9008,3.598,12171,8.471,12173,3.404,14700,3.259,18118,10.163,18119,6.169,18120,6.169,18121,5.703,18122,9.798,18123,3.892,18124,8.847,18125,6.169,18126,3.892,18127,3.892,18128,3.892,18129,6.169,18130,3.892,18131,5.703,18132,3.892,18133,3.892,18134,3.892,18135,3.892,18136,3.892,18137,3.892,18138,3.892,18139,3.892,18140,3.144,18141,3.892,18142,3.404,18143,3.404,18144,3.892,18145,3.892]],["title/injectables/SchoolExternalToolRequestMapper.html",[105,0.91,18146,5.694]],["body/injectables/SchoolExternalToolRequestMapper.html",[0,0.283,3,0.02,4,0.02,5,0.01,7,0.126,8,1.289,27,0.44,29,0.923,30,0.001,31,0.66,32,0.145,33,0.516,35,1.292,95,0.16,101,0.014,103,0.001,104,0.001,105,1.427,107,2.006,111,2.362,144,2.288,181,7.601,187,1.203,194,5.446,200,4.163,209,3.893,227,1.221,367,3.968,982,4.147,4205,2.804,5352,4.882,5827,9.788,5874,5.925,5910,6.721,5912,10.303,5916,7.277,5918,8.936,5925,7.692,5926,7.277,5927,6.968,5928,7.277,7252,7.309,8776,4.534,18108,10.406,18146,8.936,18147,10.889,18148,10.67,18149,8.32,18150,10.67,18151,8.32,18152,10.303,18153,7.277,18154,8.32,18155,8.32,18156,8.32]],["title/classes/SchoolExternalToolResponse.html",[0,0.232,18157,5.493]],["body/classes/SchoolExternalToolResponse.html",[0,0.233,2,0.764,3,0.016,4,0.016,5,0.008,7,0.103,27,0.543,29,0.901,30,0.001,31,0.644,32,0.181,33,0.517,34,1.819,47,0.949,55,2.02,95,0.137,101,0.011,103,0.001,104,0.001,127,0.858,145,1.734,165,0.735,199,2.589,200,4.387,290,4.019,364,2.363,375,4.074,376,1.567,467,3.579,564,3.921,618,2.801,1011,3.461,1016,2.405,1031,2.146,1431,3.902,2037,4.019,2095,2.717,2130,2.992,2888,4.151,3766,5.363,4205,3.605,4282,4.061,5352,6.276,5719,4.55,5721,4.878,5736,6.036,5752,4.483,5930,5.991,5931,7.576,5932,8.203,5933,5.991,5934,5.991,5935,5.991,5936,5.991,5937,9.007,5938,5.991,5939,5.991,5940,5.991,5941,5.218,5947,5.991,5948,6.332,5949,5.991,7252,8.26,8776,5.828,8929,4.979,9213,5.991,16965,6.332,18100,10.753,18157,9.732,18158,10.09,18159,5.991,18160,6.849,18161,6.849,18162,6.849]],["title/injectables/SchoolExternalToolResponseMapper.html",[105,0.91,18163,5.694]],["body/injectables/SchoolExternalToolResponseMapper.html",[0,0.251,3,0.017,4,0.017,5,0.009,7,0.111,8,1.191,27,0.458,29,0.929,30,0.001,31,0.692,32,0.151,33,0.537,34,1.255,35,1.345,95,0.163,101,0.012,103,0.001,104,0.001,105,1.319,107,1.778,111,2.227,139,7.343,144,2.029,181,8.205,187,1.067,194,4.828,199,2.788,200,4.162,209,3.919,217,0.96,227,1.152,234,1.601,311,6.451,564,3.615,974,4.373,982,3.677,1904,3.085,3709,4.9,4205,2.486,5352,4.328,5427,5.958,5837,5.62,5937,9.286,5955,6.451,5963,6.177,5964,6.819,7252,7.358,8523,5.958,8546,6.177,8550,6.451,8776,4.02,9042,6.819,9103,6.819,9104,6.819,9105,6.819,11334,5.362,18147,10.962,18157,9.579,18158,6.177,18163,8.258,18164,9.861,18165,9.861,18166,9.861,18167,9.861,18168,7.376,18169,9.861,18170,9.861,18171,6.819,18172,9.303,18173,7.376,18174,7.376,18175,7.376,18176,7.376,18177,7.376,18178,7.376,18179,7.376,18180,7.376,18181,6.819]],["title/injectables/SchoolExternalToolRule.html",[105,0.91,1895,5.694]],["body/injectables/SchoolExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.178,27,0.454,29,0.863,30,0.001,31,0.617,32,0.16,33,0.533,35,1.181,95,0.163,101,0.012,103,0.001,104,0.001,105,1.305,107,1.749,116,3.942,127,0.909,139,7.225,187,1.049,199,4.164,200,3.942,201,3.692,214,2.288,215,2.316,216,1.342,217,0.944,227,1.011,347,2.56,380,2.83,461,3.078,806,4.485,1795,6.367,1823,7.854,1844,4.349,1861,7.838,1895,8.168,2002,4.682,2006,6.052,2013,6.48,3385,6.48,3386,4.898,3389,6.384,3392,4.898,3393,6.583,3394,7.25,5778,9.681,5782,4.682,5875,6.946,5983,6.708,5984,6.708,5985,6.708,5986,6.708,5987,6.946,18140,5.862,18182,11.78,18183,6.708]],["title/classes/SchoolExternalToolScope.html",[0,0.232,18124,5.947]],["body/classes/SchoolExternalToolScope.html",[0,0.252,2,0.826,3,0.018,4,0.018,5,0.009,7,0.112,8,1.194,26,2.756,27,0.536,29,0.93,30,0.001,31,0.665,32,0.177,33,0.574,35,1.197,95,0.143,99,1.236,101,0.012,103,0.001,104,0.001,111,2.552,144,2.036,145,3.344,148,2.278,165,0.774,192,2.206,200,3.699,209,2.447,227,1.025,277,5.397,319,2.213,347,2.251,404,1.781,529,3.218,596,3.775,2394,6.598,4205,3.751,5778,5.381,5782,4.777,5875,5.272,5990,6.475,5991,6.672,5992,6.672,5993,6.672,5998,6.672,5999,6.672,6000,5.081,6001,4.997,6002,5.081,6003,5.081,6012,4.997,6013,6.672,6014,5.081,6015,4.997,6016,5.081,6017,4.997,6018,6.672,8776,6.065,9263,6.844,10212,8.646,10221,8.646,16969,9.138,16973,9.138,18118,10.288,18124,8.646,18184,7.403,18185,7.403]],["title/classes/SchoolExternalToolSearchListResponse.html",[0,0.232,18172,5.694]],["body/classes/SchoolExternalToolSearchListResponse.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,27,0.469,29,0.72,30,0.001,31,0.515,32,0.168,33,0.445,95,0.146,101,0.015,103,0.001,104,0.001,127,1.152,145,2.328,163,4.073,165,0.89,192,2.74,200,4.256,209,4.076,364,1.675,376,2.103,467,2.981,1005,8.782,1006,6.423,1009,6.473,1011,4.645,1026,5.097,5732,8.898,6020,8.041,7252,7.653,18100,9.962,18157,11.038,18172,9.516]],["title/classes/SchoolExternalToolSearchParams.html",[0,0.232,18186,5.947]],["body/classes/SchoolExternalToolSearchParams.html",[0,0.403,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.406,30,0.001,32,0.134,47,0.845,95,0.152,101,0.016,103,0.001,104,0.001,165,0.928,200,4.108,209,3.915,364,1.793,374,3.142,376,2.252,467,3.108,470,4.956,1000,4.823,4205,4.283,7252,7.351,9267,8.611,9270,8.611,18100,9.57,18110,9.101,18186,10.362]],["title/injectables/SchoolExternalToolService.html",[105,0.91,6057,4.517]],["body/injectables/SchoolExternalToolService.html",[0,0.188,3,0.013,4,0.013,5,0.007,7,0.083,8,0.971,12,3.683,26,2.457,27,0.506,29,0.961,30,0.001,31,0.701,32,0.167,33,0.593,35,1.449,36,2.793,95,0.158,99,0.92,101,0.009,103,0,104,0,105,1.076,107,1.328,111,2.582,112,2.98,127,1.007,139,7.652,158,6.213,187,0.797,198,2.676,200,4.285,201,2.803,209,3.449,216,1.487,217,1.444,221,2.839,227,1.151,234,0.895,284,2.978,450,2.263,529,2.395,564,2.948,1904,2.305,1933,8.615,4205,1.857,5345,4.451,5350,7.433,5737,5.845,5874,3.924,6034,5.093,6036,5.093,6057,5.342,6064,3.507,6074,3.419,6100,7.337,7252,7.762,8528,6.761,8611,4.819,8880,4.198,9242,4.819,18122,9.649,18153,4.819,18187,11.564,18188,8.041,18189,8.041,18190,8.041,18191,8.041,18192,7.433,18193,8.041,18194,5.51,18195,5.51,18196,5.51,18197,8.041,18198,5.51,18199,8.041,18200,5.51,18201,8.041,18202,5.51,18203,8.041,18204,8.041,18205,5.51,18206,8.041,18207,5.51,18208,5.51,18209,5.51,18210,5.093,18211,5.51,18212,8.041,18213,5.51,18214,5.51,18215,5.51,18216,5.51,18217,8.777,18218,5.51,18219,5.51]],["title/injectables/SchoolExternalToolUc.html",[105,0.91,18220,5.694]],["body/injectables/SchoolExternalToolUc.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.88,26,2.91,27,0.473,29,0.898,30,0.001,31,0.642,32,0.156,33,0.554,34,0.821,35,1.336,36,2.717,39,3.252,47,0.626,95,0.152,99,0.805,101,0.008,103,0,104,0,105,0.974,107,1.163,111,2.298,112,2.937,127,0.912,139,7.494,187,0.698,199,4.935,200,4.151,209,2.407,216,1.808,217,1.649,221,2.996,227,1.014,234,1.425,284,3.937,524,2.774,529,3.815,766,2.018,843,3.214,1795,6.527,1801,2.891,1904,2.018,2725,2.185,3010,2.698,4205,1.626,5737,8.946,5815,7.501,5874,3.435,6049,4.219,6056,8.519,6057,7.334,6058,4.459,6064,7.295,6073,3.777,6074,2.993,7252,7.321,8561,7.677,8571,4.219,8586,3.675,8587,9.704,8588,4.459,8606,6.371,8607,9.704,8611,4.219,9415,6.734,18106,9.598,18152,11.508,18192,6.734,18210,6.734,18217,6.734,18220,6.101,18221,11.799,18222,8.114,18223,6.734,18224,6.734,18225,8.114,18226,4.459,18227,4.824,18228,4.824,18229,4.824,18230,7.285,18231,4.824,18232,4.824,18233,7.285,18234,9.779,18235,7.285,18236,4.824,18237,4.824,18238,4.824,18239,4.824,18240,7.285,18241,4.824,18242,4.824,18243,4.824,18244,4.824]],["title/injectables/SchoolExternalToolValidationService.html",[105,0.91,18106,5.694]],["body/injectables/SchoolExternalToolValidationService.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,27,0.463,29,0.879,30,0.001,31,0.628,32,0.153,33,0.543,35,1.21,36,2.143,55,2.755,95,0.164,101,0.013,103,0.001,104,0.001,105,1.337,107,1.815,111,2.495,112,2.473,127,1.252,139,7.173,148,3.076,158,5.485,187,1.089,200,4.22,201,3.83,209,3.951,216,1.848,217,0.98,221,1.742,234,1.222,305,2.145,494,4.512,503,6.128,558,3.611,577,4.248,1904,3.149,5007,5.402,5335,10.22,5362,5.895,5375,6.584,6074,4.671,6098,6.542,6100,7.842,6105,5.895,6110,6.959,7252,7.418,8566,5.895,8608,5.472,18106,8.371,18187,11.052,18245,9.995,18246,7.528,18247,9.995,18248,12.443,18249,7.528,18250,11.222,18251,9.995,18252,7.528,18253,7.528,18254,7.528,18255,7.528,18256,7.528]],["title/classes/SchoolForGroupNotFoundLoggable.html",[0,0.232,16322,5.947]],["body/classes/SchoolForGroupNotFoundLoggable.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,8,1.352,27,0.461,29,0.702,30,0.001,31,0.502,32,0.122,33,0.434,35,1.086,95,0.144,100,3.003,101,0.015,103,0.001,104,0.001,127,1.123,163,2.76,192,2.673,214,3.528,215,2.863,216,1.658,227,0.93,511,4.532,1166,6.429,1216,3.514,1464,5.617,1465,6.294,1467,2.863,1469,6.323,3049,6.52,8288,6.34,8289,6.591,8419,9.729,8422,7.844,11092,7.844,16322,9.786,18257,12.195,18258,8.291,18259,8.291,18260,8.291,18261,8.291,18262,7.844,18263,8.969,18264,8.969,18265,8.969]],["title/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.232,18266,6.286]],["body/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.282,2,0.924,3,0.02,4,0.02,5,0.01,7,0.125,8,1.285,26,2.63,27,0.439,29,0.649,30,0.001,31,0.464,32,0.113,33,0.401,34,2.234,35,1.003,47,0.936,59,2.581,95,0.137,99,1.383,101,0.014,103,0.001,104,0.001,111,2.357,127,1.333,163,2.55,192,3.913,214,3.355,216,2.174,227,0.859,461,2.935,577,7.002,1216,3.247,1464,5.414,1465,6.067,1467,2.645,1469,6.143,4205,4.181,4282,4.913,4476,5.242,8288,6.112,8289,6.354,11763,6.939,12847,6.693,18266,9.838,18267,10.283,18268,8.286,18269,8.286,18270,11.757,18271,8.286,18272,11.757,18273,8.286,18274,8.286,18275,8.286]],["title/classes/SchoolIdParams.html",[0,0.232,18276,5.324]],["body/classes/SchoolIdParams.html",[0,0.404,2,1.101,3,0.023,4,0.023,5,0.012,7,0.149,26,2.697,27,0.407,30,0.001,32,0.134,95,0.163,99,1.647,101,0.016,103,0.001,104,0.001,165,0.929,355,4.768,364,1.798,374,3.15,376,2.258,467,3.113,478,7.028,1000,4.83,4205,4.288,4476,5.29,5807,7.972,5821,7.972,18276,9.291,18277,11.865]],["title/classes/SchoolIdParams-1.html",[0,0.193,905,2.354,18276,4.427]],["body/classes/SchoolIdParams-1.html",[0,0.405,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,26,2.703,27,0.409,30,0.001,32,0.135,95,0.164,99,1.655,101,0.017,103,0.001,104,0.001,165,0.932,364,1.807,374,3.166,376,2.269,467,3.122,478,7.063,1000,4.845,2559,5.391,4205,4.297,5806,7.21,5807,8.012,18101,11,18276,9.318]],["title/classes/SchoolInMigrationError.html",[0,0.232,15507,5.947]],["body/classes/SchoolInMigrationError.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.542,29,0.605,30,0.001,31,0.433,32,0.185,33,0.55,35,0.936,47,0.811,52,4.822,55,1.665,59,2.408,95,0.131,101,0.013,103,0.001,104,0.001,127,0.968,165,0.797,187,1.118,192,2.304,204,4.099,216,2.517,355,4.088,364,2.286,404,1.833,406,2.514,461,1.768,558,3.708,564,2.834,596,3.931,798,6.391,1013,5.533,1016,2.714,1142,5.266,1180,5.199,1216,4.455,1395,8.269,1396,7.15,1397,4.045,1398,7.237,1402,4.988,1403,4.285,1404,4.988,1405,4.988,1406,4.988,1407,4.988,1408,4.988,1409,4.633,1410,4.363,1416,4.857,1822,7.146,2537,5.059,3502,5.746,7027,4.797,13723,5.746,13758,8.519,15507,8.897,18278,10.172,18279,6.761,18280,7.73]],["title/classes/SchoolInUserMigrationEndLoggable.html",[0,0.232,18281,6.286]],["body/classes/SchoolInUserMigrationEndLoggable.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,8,1.359,27,0.464,29,0.709,30,0.001,31,0.507,32,0.123,33,0.438,35,1.095,47,0.873,52,6.072,95,0.116,101,0.015,103,0.001,104,0.001,127,1.134,163,2.785,192,2.697,214,3.547,215,2.888,216,1.673,227,0.938,461,2.801,1216,3.546,1464,5.639,1465,6.32,1467,2.888,1469,6.343,3264,5.485,4476,5.459,8288,6.366,8289,6.618,12390,9.102,18267,10.71,18281,10.401,18282,9.049,18283,9.049,18284,9.049,18285,9.049,18286,8.365]],["title/classes/SchoolInUserMigrationStartLoggable.html",[0,0.232,18287,6.286]],["body/classes/SchoolInUserMigrationStartLoggable.html",[0,0.289,2,0.947,3,0.02,4,0.02,5,0.01,7,0.128,8,1.306,26,2.655,27,0.446,29,0.665,30,0.001,31,0.476,32,0.115,33,0.411,35,1.028,39,2.912,47,0.848,52,5.935,95,0.139,99,1.418,101,0.014,103,0.001,104,0.001,111,2.385,127,1.355,163,2.615,192,3.223,214,3.409,216,2.2,227,0.881,347,2.406,415,4.592,461,2.721,540,6.176,1216,3.329,1464,5.478,1465,6.139,1467,2.712,1469,6.2,1477,5.482,4476,5.304,4671,5.734,8288,6.184,8289,6.429,10696,6.863,12390,9.308,12766,10.996,18267,10.404,18286,7.854,18287,9.996,18288,7.854,18289,7.854,18290,8.496,18291,8.496,18292,8.496]],["title/classes/SchoolInfoMapper.html",[0,0.232,15032,5.947]],["body/classes/SchoolInfoMapper.html",[0,0.326,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,8,1.408,27,0.395,29,0.751,30,0.001,31,0.653,32,0.13,33,0.464,34,1.631,35,1.161,95,0.15,99,1.6,100,3.904,101,0.016,103,0.001,104,0.001,217,1.248,227,0.994,234,1.557,627,3.855,844,5.953,975,6.463,982,4.779,15004,10.558,15032,10.197,18293,11.659,18294,8.386,18295,11.659,18296,8.386,18297,9.588,18298,9.588,18299,9.588]],["title/classes/SchoolInfoResponse.html",[0,0.232,15004,5.493]],["body/classes/SchoolInfoResponse.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.501,29,0.696,30,0.001,31,0.768,32,0.165,33,0.43,34,2.308,47,0.908,95,0.114,101,0.015,103,0.001,104,0.001,127,1.394,165,0.872,192,3.793,364,2.027,376,2.033,379,2.753,380,2.705,467,3.187,475,4.345,618,3.635,966,4.523,1013,4.071,2095,3.527,2213,6.961,2883,5.818,2884,5.918,2885,5.918,4349,7.775,15004,10.587,18300,12.729,18301,7.775,18302,8.218]],["title/classes/SchoolMigrationError.html",[0,0.232,18303,5.947]],["body/classes/SchoolMigrationError.html",[0,0.259,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,8,1.216,27,0.54,29,0.596,30,0.001,31,0.426,32,0.185,33,0.546,35,0.922,47,0.805,52,4.773,55,1.64,59,3.137,95,0.129,101,0.013,103,0.001,104,0.001,127,0.954,165,0.789,187,1.101,192,3.001,204,4.074,216,2.51,355,4.047,364,2.275,404,1.815,406,2.476,461,1.741,558,3.652,564,2.791,596,3.914,798,4.783,1013,5.5,1016,2.673,1142,5.226,1180,5.168,1216,4.421,1345,3.02,1395,8.244,1396,7.115,1397,4.021,1398,7.183,1402,4.912,1403,4.22,1404,4.912,1405,4.912,1406,4.912,1407,4.912,1408,4.912,1409,4.563,1410,4.297,1416,4.783,3837,9.403,4476,4.49,6833,4.783,7027,4.724,8744,6.376,11643,5.421,13723,5.659,13758,8.434,18279,6.659,18303,8.808,18304,9.309,18305,7.613]],["title/interfaces/SchoolMigrationFlags.html",[334,0.731,18306,6.286]],["body/interfaces/SchoolMigrationFlags.html",[3,0.024,4,0.024,5,0.012,7,0.154,30,0.001,32,0.165,52,4.844,101,0.017,103,0.001,104,0.001,165,0.949,334,1.098,336,2.446,347,2.796,355,4.107,4476,4.557,18306,11.199,18307,10.22,18308,10.22,18309,13.352,18310,13.352]],["title/injectables/SchoolMigrationService.html",[105,0.91,4483,5.055]],["body/injectables/SchoolMigrationService.html",[0,0.122,3,0.008,4,0.008,5,0.004,7,0.054,8,0.698,27,0.477,29,0.905,30,0.001,31,0.647,32,0.157,33,0.559,35,1.369,36,2.526,47,0.981,52,4.325,55,2.298,59,1.116,95,0.141,99,0.598,101,0.006,103,0,104,0,105,0.773,107,0.864,111,2.491,112,2.85,127,0.723,128,2.895,129,5.163,132,3.727,145,2.107,148,2.233,167,3.588,187,0.518,189,6.955,191,1.987,192,3.283,204,2.461,216,1.538,217,1.599,221,2.845,227,1.064,234,1.665,247,1.404,305,2.778,347,1.467,355,4.733,369,1.282,371,2.294,450,1.472,503,2.197,511,1.811,558,1.719,784,1.937,854,4.894,1014,3.967,1127,2.281,1216,1.404,1345,1.422,1369,1.953,1467,1.144,2217,7.691,2227,7.691,2257,2.172,2356,2.98,2357,3.79,2362,3.322,2702,3.269,3090,2.498,3104,3.286,4205,3.896,4476,5.252,4483,4.293,4489,6.618,4491,6.836,4498,5.681,4501,4.293,4504,5.052,4508,2.73,4509,3.001,4593,1.811,4611,2.895,4618,2.46,4661,1.891,4671,3.898,4737,5.957,7027,2.224,7074,5.108,7927,2.806,8452,6.444,9058,2.312,12585,2.664,13073,7.37,13077,5.339,13078,5.339,13651,3.001,13733,6.048,14122,4.837,14817,8.031,15339,6.721,15994,2.73,16227,6.345,16324,9.864,16330,3.313,18311,11.779,18312,5.776,18313,5.339,18314,5.776,18315,5.776,18316,5.776,18317,5.339,18318,5.776,18319,5.776,18320,3.313,18321,5.776,18322,9.124,18323,3.584,18324,5.776,18325,7.932,18326,3.584,18327,5.776,18328,8.32,18329,3.584,18330,5.776,18331,5.776,18332,3.584,18333,5.776,18334,3.584,18335,5.776,18336,3.584,18337,5.776,18338,3.584,18339,5.776,18340,3.584,18341,3.584,18342,5.776,18343,3.584,18344,5.776,18345,3.584,18346,3.135,18347,3.584,18348,3.584,18349,3.001,18350,3.001,18351,3.313,18352,3.135,18353,2.73,18354,3.584,18355,3.584,18356,3.584,18357,3.584,18358,3.584,18359,3.584,18360,3.584,18361,3.584,18362,5.776,18363,3.584,18364,3.584,18365,8.32,18366,6.706,18367,5.339,18368,3.584,18369,7.255,18370,3.313,18371,3.584,18372,3.584,18373,5.339,18374,3.584,18375,3.584,18376,5.776,18377,5.776,18378,3.584,18379,3.584,18380,3.584,18381,3.584,18382,5.776,18383,3.584,18384,3.584,18385,3.313,18386,3.584,18387,3.584,18388,3.584,18389,3.584,18390,3.584]],["title/entities/SchoolNews.html",[380,1.445,6882,5.181]],["body/entities/SchoolNews.html",[0,0.345,3,0.012,4,0.022,5,0.006,7,0.171,9,3.616,26,2.146,27,0.213,30,0.001,31,0.43,32,0.138,34,0.88,47,0.877,83,2.347,95,0.155,96,2.503,101,0.018,103,0,104,0,165,0.847,188,2.834,192,3.222,208,1.932,227,0.536,234,1.485,240,3.72,334,0.555,364,0.942,369,2.514,370,3.732,380,2.298,381,1.72,398,1.523,399,3.044,400,2.282,404,1.824,405,2.697,406,1.682,461,2.473,571,5.749,574,4.017,595,1.731,617,5.072,627,1.587,672,4.688,731,3.615,769,4.55,843,2.282,844,5.342,854,3.851,1031,2.404,1187,4.363,1188,4.77,1189,4.311,1190,4.56,1191,4.986,1397,3.063,1415,4.705,1843,3.637,1849,2.595,1865,3.495,1941,3.291,1959,2.818,2303,3.709,2577,5.164,2632,4.214,2646,3.034,2702,5.795,2747,2.668,3427,3.549,3429,3.291,3430,3.612,3432,3.682,3433,3.612,3434,3.844,3448,3.17,3584,3.49,3609,3.291,4205,1.743,4297,3.939,4298,3.759,4989,4.19,5057,3.844,5072,3.759,5618,6.651,6216,2.866,6434,3.612,6521,3.17,6523,2.892,6544,3.099,6751,3.49,6757,3.208,6844,3.844,6845,4.177,6847,4.65,6848,4.177,6849,6.801,6850,5.903,6851,4.177,6852,8.871,6853,5.098,6854,4.945,6855,5.704,6856,5.704,6857,6.717,6858,7.529,6859,4.177,6860,5.464,6861,4.177,6862,3.939,6863,3.939,6864,4.951,6865,4.177,6866,3.939,6867,3.939,6868,4.177,6869,3.844,6870,4.177,6871,3.066,6872,3.17,6873,3.939,6874,4.177,6875,4.177,6876,7.164,6877,4.177,6878,7.39,6879,4.177,6880,4.177,6881,5.846,6882,5.846,6883,6.392,6884,4.049,6885,5.022,6886,3.939,6887,3.759,6888,3.939,6889,4.177,18391,5.17]],["title/classes/SchoolNumberDuplicateLoggableException.html",[0,0.232,18392,5.947]],["body/classes/SchoolNumberDuplicateLoggableException.html",[0,0.294,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.32,18,4.366,27,0.451,29,0.677,30,0.001,31,0.484,32,0.149,33,0.418,35,1.046,47,0.855,55,2.714,95,0.14,101,0.014,103,0.001,104,0.001,127,1.082,163,2.66,187,1.25,192,3.573,214,3.446,215,2.758,216,1.598,227,0.896,404,1.97,406,2.811,795,5.298,1216,3.386,1464,5.522,1465,6.188,1467,2.758,1469,6.239,1583,5.656,3049,6.282,8288,6.233,8289,6.48,8452,7.533,8456,6.424,8738,5.501,8745,5.071,8746,5.298,8754,7.237,8755,7.237,9058,7.736,9777,7.847,13733,6.282,18392,9.561,18393,11.99,18394,11.99,18395,8.642,18396,8.642]],["title/classes/SchoolNumberMissingLoggableException.html",[0,0.232,18397,5.694]],["body/classes/SchoolNumberMissingLoggableException.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,26,2.663,27,0.448,29,0.671,30,0.001,31,0.48,32,0.148,33,0.414,35,1.037,55,2.706,95,0.153,99,1.43,101,0.014,103,0.001,104,0.001,127,1.073,163,2.637,187,1.239,192,3.24,214,3.428,215,2.735,216,1.584,227,0.888,355,4.799,404,1.959,406,2.787,1127,5.454,1216,3.357,1464,5.5,1465,6.163,1467,2.735,1469,6.22,4205,4.025,4282,5.08,4476,5.325,8288,6.209,8289,6.454,8738,5.454,8740,6.102,8745,5.027,8746,5.253,9058,7.706,13733,6.228,18304,11.04,18397,9.105,18398,11.942,18399,7.921,18400,6.921,18401,8.568]],["title/classes/SchoolParams.html",[0,0.232,13928,5.947]],["body/classes/SchoolParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,192,3.51,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,1000,4.795,3795,5.721,4205,4.265,9777,7.708,13928,10.301,18402,9.75,18403,9.75]],["title/classes/SchoolRolePermission.html",[0,0.232,12201,5.493]],["body/classes/SchoolRolePermission.html",[0,0.326,2,0.624,3,0.013,4,0.013,5,0.007,7,0.145,27,0.335,30,0.001,31,0.455,32,0.111,33,0.508,47,0.895,83,2.487,95,0.15,96,1.53,101,0.019,102,2.807,103,0,104,0,145,1.416,165,0.75,167,2.058,234,0.908,240,4.144,334,0.601,347,2.356,355,2.248,359,1.95,364,1.481,369,3.007,370,4.38,371,2.242,380,1.727,386,4.631,398,1.648,400,2.468,402,2.319,404,1.008,405,1.491,406,1.819,483,2.668,844,2.548,854,4.806,1031,1.753,1167,3.074,1183,3.908,1843,2.652,1849,2.807,2095,2.219,2395,5.487,2574,4.943,2632,5.537,2636,3.048,2640,4.43,2641,6.366,3105,5.175,3106,4.588,4271,4.43,4281,2.444,4323,5.321,4338,4.262,4339,6.366,4491,5.943,4989,4.386,6464,7.215,6472,5.401,6486,3.61,6537,4.985,6556,6.194,6557,4.158,6871,3.317,6872,4.985,8452,5.108,8456,4.158,8457,6.567,8469,5.176,8470,4.158,9787,6.268,10031,3.515,10293,5.879,10752,6.691,11571,6.366,12179,6.366,12180,4.685,12181,6.194,12182,5.91,12183,5.58,12184,6.82,12185,8.301,12186,4.519,12187,4.519,12188,4.685,12189,4.519,12190,4.685,12191,4.685,12192,6.808,12193,4.685,12194,4.685,12195,4.685,12196,4.685,12197,4.685,12198,4.685,12199,4.685,12200,4.685,12201,8.492,12202,8.02,12203,8.02,12204,7.736,12205,4.685,12206,4.685,12207,4.685,12208,3.908,12209,6.366,12210,4.158,12211,4.519,12212,4.685,12213,6.808,12214,4.262,12215,4.685,12216,4.685,12217,6.567,12218,4.519,12219,3.984,12220,4.685,18404,5.594,18405,5.594]],["title/classes/SchoolRoles.html",[0,0.232,12204,5.493]],["body/classes/SchoolRoles.html",[0,0.325,2,0.62,3,0.013,4,0.013,5,0.007,7,0.144,27,0.334,30,0.001,31,0.453,32,0.11,33,0.507,47,0.894,83,2.477,95,0.149,96,1.522,101,0.019,102,2.792,103,0,104,0,145,1.409,165,0.748,167,2.047,234,0.903,240,4.14,334,0.598,347,2.121,355,2.236,359,1.94,364,1.475,369,3.004,370,4.376,371,2.233,380,1.721,386,4.613,398,1.639,400,2.455,402,2.306,404,1.002,405,1.482,406,1.809,483,2.653,844,2.534,854,4.791,1031,1.743,1167,3.057,1183,3.887,1843,2.637,1849,2.792,2095,2.207,2395,5.465,2574,4.927,2632,5.775,2636,3.032,2640,4.413,2641,6.341,3105,7.092,3106,6.288,4271,4.413,4281,2.43,4323,5.299,4338,4.239,4339,6.341,4491,5.924,4989,4.372,6464,7.196,6472,5.379,6486,3.59,6537,4.965,6556,6.169,6557,4.135,6871,3.299,6872,4.965,8452,5.088,8456,4.135,8457,6.541,8469,5.16,8470,4.135,9787,6.248,10031,3.495,10293,5.864,10752,6.674,11571,6.341,12179,6.341,12180,4.659,12181,6.169,12182,5.886,12183,5.557,12184,6.798,12185,8.283,12186,4.494,12187,4.494,12188,4.659,12189,4.494,12190,4.659,12191,4.659,12192,6.781,12193,4.659,12194,4.659,12195,4.659,12196,4.659,12197,4.659,12198,4.659,12199,4.659,12200,4.659,12201,9,12202,4.659,12203,4.659,12204,8.47,12205,4.659,12206,4.659,12207,4.659,12208,3.887,12209,6.341,12210,4.135,12211,4.494,12212,4.659,12213,6.781,12214,4.239,12215,4.659,12216,4.659,12217,6.541,12218,4.494,12219,3.962,12220,4.659,18406,5.563,18407,5.563]],["title/interfaces/SchoolSpecificFileCopyService.html",[334,0.731,3301,5.324]],["body/interfaces/SchoolSpecificFileCopyService.html",[3,0.021,4,0.021,5,0.015,7,0.137,8,1.363,26,2.851,27,0.375,29,0.712,30,0.001,31,0.509,32,0.167,33,0.44,35,1.1,36,2.419,39,2.448,95,0.158,99,1.517,101,0.02,103,0.001,104,0.001,185,3.533,334,0.977,336,2.175,1184,6.255,1358,7.182,2524,6.62,3116,8.596,3301,8.835,3579,4.472,4753,8.403,4755,8.403,6169,6.926,6189,6.149,6217,4.472,10117,7.951,10428,9.114,17167,8.403,17169,8.403,18408,9.869,18409,9.09,18410,10.43,18411,11.861,18412,9.09,18413,8.403,18414,7.951]],["title/injectables/SchoolSpecificFileCopyServiceFactory.html",[105,0.91,3576,5.694]],["body/injectables/SchoolSpecificFileCopyServiceFactory.html",[0,0.297,3,0.021,4,0.021,5,0.016,7,0.132,8,1.328,27,0.453,29,0.861,30,0.001,31,0.616,32,0.149,33,0.531,35,1.055,95,0.162,101,0.015,103,0.001,104,0.001,105,1.47,107,2.101,127,1.092,187,1.261,192,3.275,215,2.782,216,1.612,227,0.904,234,1.415,595,3.68,667,5.21,1184,7.223,1358,5.548,2524,7.807,3006,7.3,3116,9.171,3301,9.426,3302,7.3,3576,9.204,3579,4.288,3580,3.549,6298,9.475,18408,10.529,18414,11.055,18415,8.717,18416,8.058,18417,8.717,18418,10.991,18419,8.717,18420,7.624,18421,8.717]],["title/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.232,18420,5.947]],["body/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.279,2,0.913,3,0.019,4,0.025,5,0.015,7,0.124,8,1.275,27,0.435,29,0.827,30,0.001,31,0.591,32,0.144,33,0.511,35,0.991,36,2.264,39,2.204,95,0.15,101,0.014,103,0.001,104,0.001,111,2.117,112,2.576,116,3.641,127,1.323,185,3.181,192,2.439,214,3.329,216,1.952,227,0.849,595,3.914,1184,6.846,1358,6.721,2524,6.858,2702,3.688,2960,6.41,3116,8.905,3301,9.153,3302,6.855,3579,5.194,3580,3.332,3610,5.161,4205,3.559,6169,6.236,6217,5.194,6298,9.321,6648,7.567,10428,8.529,16913,6.612,18408,10.223,18410,9.761,18411,11.416,18413,7.567,18414,10.801,18416,7.567,18420,9.235,18422,8.185,18423,8.185,18424,8.185,18425,10.559,18426,8.185,18427,8.185,18428,8.185]],["title/injectables/SchoolValidationService.html",[105,0.91,14009,5.694]],["body/injectables/SchoolValidationService.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.478,29,0.908,30,0.001,31,0.649,32,0.158,33,0.56,35,1.263,36,2.63,47,0.573,95,0.157,99,1.341,101,0.013,103,0.001,104,0.001,105,1.396,107,1.938,111,2.323,112,2.871,116,3.609,127,1.007,167,3.84,187,1.162,189,7.452,192,3.11,204,2.727,215,2.566,216,1.486,217,1.046,221,2.415,227,1.082,234,1.305,305,2.29,323,6.493,369,1.784,450,3.302,1554,8.569,5362,6.294,6098,6.83,8856,7.031,8876,7.431,9777,8.027,12125,8.43,14009,8.739,14068,7.431,14822,6.493,18392,7.031,18429,12.264,18430,10.436,18431,8.038,18432,10.436,18433,10.436,18434,8.038,18435,8.038,18436,10.436,18437,8.038,18438,8.038]],["title/entities/SchoolYearEntity.html",[380,1.445,10752,4.328]],["body/entities/SchoolYearEntity.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.133,27,0.499,30,0.001,31,0.711,32,0.165,47,0.864,83,4.084,95,0.142,96,2.416,101,0.018,103,0.001,104,0.001,165,0.868,214,2.784,240,4.297,334,0.949,364,2.206,380,2.355,381,2.938,398,2.602,400,3.897,402,3.66,404,1.591,405,2.353,406,2.872,2095,3.504,2395,7.479,4281,3.858,6475,9.043,6552,7.134,6553,6.728,10752,7.054,12221,10.592,12222,8.164,12223,10.635,12224,7.724,12225,8.164,12226,8.164,18439,8.831,18440,8.831,18441,8.831]],["title/injectables/SchoolYearRepo.html",[105,0.91,14010,5.694]],["body/injectables/SchoolYearRepo.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.195,10,3.994,12,4.533,18,5.001,26,2.098,27,0.525,29,0.931,30,0.001,31,0.666,32,0.162,33,0.575,34,1.262,35,1.499,36,2.655,40,3.58,49,3.894,83,2.269,95,0.143,99,1.238,101,0.012,103,0.001,104,0.001,105,1.324,107,1.788,112,2.948,167,2.729,187,1.073,217,1.288,221,1.717,227,1.026,234,1.204,380,1.576,381,3.292,404,1.783,596,3.625,692,5.09,877,7.63,883,4.199,884,4.664,885,5.628,908,4.547,909,4.602,910,4.547,911,4.602,912,5.282,913,4.547,914,4.602,915,4.111,919,5.651,3637,5.991,4208,7.194,6475,5.282,6922,5.991,9777,7.29,10752,7.09,12223,6.211,14010,8.289,18442,7.417,18443,11.884,18444,7.417,18445,7.417,18446,11.139,18447,7.417]],["title/injectables/SchoolYearService.html",[105,0.91,11197,5.493]],["body/injectables/SchoolYearService.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,8,1.297,12,4.92,26,2.644,27,0.488,29,0.841,30,0.001,31,0.602,32,0.146,33,0.519,34,1.43,35,1.3,36,2.675,40,5.185,95,0.152,99,1.403,101,0.014,103,0.001,104,0.001,105,1.437,107,2.027,112,2.905,127,1.053,187,1.216,215,2.683,216,1.555,217,1.398,221,2.486,227,1.114,883,3.567,1852,3.55,1904,3.517,1961,5.874,2531,4.544,3813,5.77,4208,7.808,4323,5.503,4618,7.372,9777,8.164,9785,7.041,9786,6.405,9787,5.503,10752,7.535,11197,8.677,14010,11.039,18448,12.473,18449,8.407,18450,12.473,18451,8.407,18452,8.407,18453,8.407,18454,8.407,18455,8.407,18456,8.407]],["title/classes/Scope.html",[0,0.232,277,2.744]],["body/classes/Scope.html",[0,0.248,2,0.811,3,0.017,4,0.017,5,0.009,7,0.11,8,1.18,27,0.533,29,0.864,30,0.001,31,0.618,32,0.179,33,0.533,35,1.182,95,0.125,96,1.989,101,0.012,103,0.001,104,0.001,111,2.671,127,0.911,144,1.999,148,3.005,165,0.765,217,0.946,227,1.222,247,2.848,277,4.758,319,2.173,347,2.488,371,2.005,398,2.142,529,5.504,884,4.602,905,3.027,959,8.541,1695,4.627,2394,7.982,5991,7.443,5992,7.443,5993,7.443,5998,6.591,5999,6.591,6001,8.547,6012,6.591,6013,7.957,6015,6.591,6017,6.591,15134,10.194,18457,7.27,18458,9.765,18459,9.765,18460,7.27,18461,7.27,18462,7.27,18463,7.27,18464,7.27,18465,7.27,18466,7.27,18467,7.27,18468,9.765,18469,11.027,18470,9.765,18471,7.27,18472,7.27,18473,7.27]],["title/classes/ScopeRef.html",[0,0.232,18474,5.181]],["body/classes/ScopeRef.html",[0,0.317,2,1.039,3,0.022,4,0.022,5,0.011,7,0.141,26,2.868,27,0.512,29,0.73,30,0.001,31,0.522,32,0.169,33,0.451,34,2.26,95,0.12,99,1.556,101,0.016,103,0.001,104,0.001,127,1.168,165,0.898,277,5.531,618,3.812,2049,6.68,2341,8.974,6123,8.617,6124,10.594,6125,8.617,7222,6.291,12228,11.966,18474,8.731,18475,10.593]],["title/classes/ServerConsole.html",[0,0.232,18476,5.947]],["body/classes/ServerConsole.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,8,1.262,27,0.478,29,0.818,30,0.001,31,0.585,32,0.142,33,0.505,35,1.265,47,0.827,95,0.134,101,0.013,103,0.001,104,0.001,127,1.009,148,3.777,215,2.571,227,1.084,235,6.927,364,1.903,379,2.882,444,3.996,1125,7.974,1414,4.505,2075,6.374,2268,6.992,3480,6.745,3481,8.154,3484,8.441,3486,8.441,3489,5.627,3490,8.944,3491,8.449,3492,4.776,9757,9.082,10877,9.914,18476,9.139,18477,8.054,18478,11.346,18479,10.449,18480,8.054,18481,8.054,18482,10.449,18483,9.139,18484,8.054,18485,9.659,18486,8.054,18487,8.054]],["title/modules/ServerConsoleModule.html",[425,1.812,18488,5.947]],["body/modules/ServerConsoleModule.html",[0,0.245,3,0.017,4,0.017,5,0.009,30,0.001,32,0.098,47,0.513,87,3.609,95,0.179,96,2.652,99,1.2,101,0.012,103,0.001,104,0.001,187,1.04,234,1.168,347,1.455,369,1.596,381,2.392,398,2.119,425,3.128,427,2.598,428,2.795,429,2.878,430,2.865,431,2.853,432,4.036,433,2.718,442,3.879,443,2.818,444,2.75,449,3.846,461,1.645,511,3.634,778,4.854,801,4.177,802,5.228,885,4.898,1358,6.171,1646,4.022,1736,6.29,1852,3.037,2075,3.952,2130,3.141,2131,3.515,2132,3.389,2644,3.856,3491,6.091,3492,4.264,3566,9.885,3859,4.022,4865,4.936,5511,4.854,5541,5.809,6188,5.811,7806,6.29,7953,7.386,9621,4.854,10117,6.29,10355,10.572,10577,7.207,10578,7.207,10579,5.228,10581,5.121,10582,5.228,10583,7.207,10589,7.047,10590,7.047,10591,7.047,10592,5.228,10593,5.025,10605,5.346,10606,5.346,10607,5.228,11784,5.346,12245,6.023,12248,4.936,12658,7.831,14758,9.885,14770,6.023,14778,6.29,14898,6.648,18476,8.479,18488,11.752,18489,7.192,18490,7.192,18491,7.192,18492,7.192,18493,7.192,18494,7.192,18495,7.192,18496,9.695,18497,7.192,18498,7.192]],["title/controllers/ServerController.html",[481,2.611,18499,5.694]],["body/controllers/ServerController.html",[0,0.336,3,0.023,4,0.023,5,0.012,7,0.149,8,1.433,27,0.407,30,0.001,35,1.195,47,0.846,95,0.127,101,0.016,103,0.001,104,0.001,116,3.695,187,1.427,227,1.023,319,3.546,364,1.798,447,4.091,481,4.555,535,6.361,1125,7.035,1414,5.52,2075,5.424,9570,9.291,11526,8.265,18478,12.201,18499,9.936,18500,9.87,18501,9.87]],["title/modules/ServerModule.html",[425,1.812,18502,5.694]],["body/modules/ServerModule.html",[0,0.186,3,0.008,4,0.008,5,0.004,8,0.403,27,0.225,29,0.261,30,0.001,31,0.305,32,0.074,33,0.161,35,0.404,47,0.788,52,1.582,55,1.174,72,3.614,87,1.675,95,0.176,96,1.491,99,0.557,101,0.012,103,0,104,0,111,1.599,127,0.683,145,2.521,148,1.027,187,0.483,191,1.85,192,0.995,200,1.039,214,1.719,216,1.475,217,1.144,227,0.346,234,0.885,346,4.399,347,1.614,349,2.252,355,2.191,369,0.741,371,1.503,379,0.756,381,1.11,398,0.983,425,2.767,426,7.622,427,2.882,428,1.297,429,1.335,430,1.33,431,1.324,432,1.228,433,1.261,438,4.664,442,2.181,443,1.308,444,1.276,447,3.307,449,3.165,461,0.763,511,1.686,574,2.393,627,1.024,667,1.582,701,2.443,704,1.653,722,1.488,731,1.319,778,3.679,801,1.938,839,1.591,874,2.377,885,2.754,953,2.184,1161,2.29,1162,2.613,1163,2.613,1164,2.613,1183,2.332,1187,1.591,1188,1.573,1189,1.573,1190,1.664,1267,2.217,1268,2.046,1298,2.29,1301,3.622,1312,2.071,1314,2.153,1352,2.153,1358,2.124,1431,1.901,1467,1.065,1498,2.023,1503,7.389,1602,2.332,1618,1.938,1646,3.049,1763,2.426,1852,2.918,1948,2,2075,3.798,2130,1.458,2131,1.631,2132,1.573,2133,2.124,2257,2.023,2356,2.839,2357,3.634,2440,3.105,2644,1.789,2711,7.622,3495,2.184,3567,7.014,3579,2.682,3580,2.219,3861,5.265,3873,4.269,3874,8.998,4140,2.184,4544,2.481,4588,1.722,4593,2.754,4631,7.622,4865,2.29,5460,2.184,5511,2.252,6422,6.269,6616,2,8012,1.867,8358,2.217,9925,2.377,10416,2.332,10575,6.719,10576,4.828,10577,4.052,10578,4.052,10579,2.426,10580,4.153,10581,2.377,10582,2.426,10583,4.052,10589,3.963,10590,3.963,10591,3.963,10592,2.426,10593,2.332,10604,6.078,10605,2.481,10606,2.481,10607,2.426,10608,2.696,10609,2.481,10610,2.543,10645,2.332,10647,4.052,10649,2.426,10651,2.426,10653,10.241,10654,4.052,10935,7.622,11372,2.377,11530,2.795,11616,2.29,11635,5.023,11637,2.426,11714,2.071,12248,2.29,12918,7.622,13037,2.696,13421,2.543,13638,2.696,13844,7.622,13909,7.622,13916,2.795,14126,7.622,14561,5.023,14744,2.613,14770,2.795,15063,7.622,15574,7.622,15756,7.622,15938,4.565,15958,2.795,16167,2.919,16169,2.919,16171,2.919,16172,2.919,16173,2.919,16914,7.622,17092,2.795,17317,8.042,17321,2.919,17501,2.696,18499,7.364,18502,11.753,18503,3.337,18504,3.337,18505,7.389,18506,7.622,18507,7.622,18508,7.622,18509,7.622,18510,7.622,18511,7.622,18512,7.622,18513,3.085,18514,6.388,18515,8.723,18516,3.337,18517,6.388,18518,3.085,18519,3.085,18520,3.085,18521,3.085,18522,3.085,18523,3.085,18524,3.085,18525,3.085,18526,3.085,18527,3.085,18528,3.085,18529,3.085,18530,3.085,18531,3.085,18532,2.795,18533,3.085,18534,2.696,18535,2.696,18536,3.085,18537,3.085,18538,3.085,18539,3.085,18540,3.085,18541,7.375,18542,3.085,18543,3.085,18544,3.085,18545,3.085,18546,3.085,18547,3.085,18548,3.085,18549,3.085,18550,3.085,18551,6.388,18552,3.085,18553,5.039,18554,6.388,18555,3.085,18556,3.085,18557,3.085,18558,3.085,18559,3.085,18560,3.085,18561,3.085,18562,3.085,18563,3.085,18564,3.085,18565,3.085,18566,2.919,18567,3.085,18568,3.085,18569,3.085,18570,3.085,18571,3.085,18572,3.085,18573,3.085,18574,5.039,18575,3.085,18576,5.039,18577,3.085,18578,5.039,18579,3.085,18580,3.085,18581,3.085,18582,4.565,18583,3.085]],["title/modules/ServerTestModule.html",[425,1.812,18582,5.694]],["body/modules/ServerTestModule.html",[0,0.18,3,0.008,4,0.008,5,0.004,8,0.387,27,0.277,29,0.413,30,0.001,31,0.376,32,0.091,33,0.255,35,0.638,47,0.777,52,1.519,55,1.136,59,0.998,72,3.527,87,1.608,95,0.176,96,1.442,99,0.535,101,0.011,103,0,104,0,111,1.561,127,0.66,145,2.477,148,0.986,187,0.463,191,1.776,192,0.955,200,1.642,214,1.662,216,1.44,217,1.12,227,0.332,234,0.856,346,4.276,347,1.575,349,2.163,355,2.119,369,0.711,371,1.454,379,0.726,381,1.066,398,0.944,425,2.723,426,7.476,427,3.534,428,1.245,429,1.282,430,1.277,431,1.271,432,1.179,433,1.211,438,4.583,442,2.11,443,1.256,444,1.226,447,3.227,449,3.089,461,0.733,511,1.619,574,2.95,627,1.618,667,1.519,701,2.753,704,1.587,722,1.429,731,1.266,778,3.559,801,1.861,839,1.528,874,2.282,885,2.664,953,2.097,1161,2.199,1162,2.509,1163,2.509,1164,2.509,1183,3.684,1187,1.528,1188,1.51,1189,1.51,1190,1.597,1267,2.129,1268,1.965,1297,2.33,1298,3.619,1301,4.463,1312,1.989,1314,2.068,1352,3.402,1358,2.04,1431,3.004,1467,1.023,1498,3.196,1503,7.247,1602,2.239,1618,1.861,1646,3.757,1763,2.33,1852,3.633,1948,3.16,2075,3.692,2130,1.4,2131,1.566,2132,1.51,2133,2.04,2257,3.196,2356,2.76,2357,3.546,2440,4.435,2644,1.718,2711,7.476,3495,2.097,3567,6.88,3579,2.594,3580,2.147,3861,5.119,3873,4.129,3874,8.867,4140,3.451,4544,2.382,4588,1.654,4593,2.664,4631,7.476,4865,2.199,5460,2.097,5511,2.163,6422,6.149,6616,1.921,8012,1.792,8358,2.129,9925,2.282,10416,2.239,10575,3.755,10576,6.835,10577,3.92,10578,3.92,10579,2.33,10580,4.017,10581,2.282,10582,2.33,10583,3.92,10589,3.833,10590,3.833,10591,3.833,10592,2.33,10593,2.239,10604,5.932,10605,2.382,10606,2.382,10607,2.33,10608,2.589,10609,2.382,10610,2.442,10645,6.012,10647,5.787,10649,2.33,10651,3.833,10653,10.145,10654,3.92,10935,7.476,11372,3.755,11530,2.684,11616,3.619,11635,3.833,11637,2.33,11714,1.989,12248,2.199,12918,7.476,13037,2.589,13421,2.442,13638,2.589,13844,7.476,13909,7.476,13916,2.684,14126,7.476,14561,4.884,14744,2.509,14770,2.684,15063,7.476,15574,7.476,15756,7.476,15938,4.416,15958,2.684,16167,2.803,16169,2.803,16171,2.803,16172,2.803,16173,2.803,16914,7.476,17092,2.684,17317,7.902,17321,2.803,17501,2.589,18499,7.207,18502,7.207,18505,7.247,18506,7.476,18507,7.476,18508,7.476,18509,7.476,18510,7.476,18511,7.476,18512,7.476,18513,2.962,18514,6.211,18515,8.556,18517,6.211,18518,2.962,18519,2.962,18520,2.962,18521,2.962,18522,2.962,18523,2.962,18524,2.962,18525,2.962,18526,2.962,18527,2.962,18528,2.962,18529,2.962,18530,2.962,18531,2.962,18532,2.684,18533,2.962,18534,2.589,18535,2.589,18536,2.962,18537,2.962,18538,2.962,18539,2.962,18540,2.962,18541,7.197,18542,2.962,18543,2.962,18544,2.962,18545,2.962,18546,2.962,18547,2.962,18548,2.962,18549,2.962,18550,2.962,18551,6.211,18552,2.962,18553,4.874,18554,6.211,18555,2.962,18556,2.962,18557,2.962,18558,2.962,18559,2.962,18560,2.962,18561,2.962,18562,2.962,18563,2.962,18564,2.962,18565,2.962,18566,2.803,18567,2.962,18568,2.962,18569,2.962,18570,2.962,18571,2.962,18572,2.962,18573,2.962,18574,4.874,18575,2.962,18576,4.874,18577,2.962,18578,4.874,18579,4.874,18580,4.874,18581,4.874,18582,11.73,18583,2.962,18584,3.205,18585,3.205,18586,3.205,18587,3.205]],["title/classes/SetHeightBodyParams.html",[0,0.232,4001,5.947]],["body/classes/SetHeightBodyParams.html",[0,0.405,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,27,0.408,30,0.001,32,0.134,55,2.559,95,0.153,101,0.017,103,0.001,104,0.001,165,0.931,364,1.802,368,3.877,369,2.637,370,3.914,371,3.277,374,3.158,376,2.263,467,3.117,3248,8.217,4001,10.393,18588,11.882,18589,9.894,18590,9.894,18591,9.894,18592,10.984]],["title/entities/ShareToken.html",[380,1.445,6474,4.667]],["body/entities/ShareToken.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.16,26,2.542,27,0.511,30,0.001,32,0.168,33,0.599,34,1.149,49,4.994,83,3.249,95,0.154,96,2.542,97,2.923,101,0.016,103,0.001,104,0.001,145,2.353,165,0.728,199,3.512,227,0.964,234,1.509,240,3.931,247,2.648,334,0.726,351,5.74,364,2.257,369,2.75,370,3.768,380,1.974,381,2.248,385,7.719,398,1.991,399,3.687,402,2.801,404,1.218,405,1.801,406,2.198,411,5.148,412,5.659,421,5.292,422,5.659,701,2.389,1031,3.584,2632,4.28,3339,4.663,3366,8.579,3610,4.542,4272,4.096,4771,7.08,4773,6.855,4779,5.659,5760,5.838,5788,5.659,5789,5.459,5790,5.659,6208,4.489,6217,5.627,6474,6.377,6491,5.659,9807,5.023,9875,7.563,9880,5.659,9956,4.912,9957,4.912,10014,6.247,10015,6.247,10054,5.148,10056,5.148,12249,7.782,12250,11.734,12251,6.247,12252,9.239,12253,7.85,12254,8.956,12255,6.247,12256,4.489,12257,4.423,12258,6.247,12259,6.247,18593,6.757,18594,6.757,18595,6.757,18596,6.757,18597,6.757,18598,6.757]],["title/classes/ShareTokenBodyParams.html",[0,0.232,18599,5.947]],["body/classes/ShareTokenBodyParams.html",[0,0.333,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.543,30,0.001,32,0.172,33,0.571,34,1.665,47,0.698,55,2.543,95,0.142,101,0.012,103,0.001,104,0.001,165,0.767,192,2.917,347,1.98,359,4.116,364,2.15,368,5.157,369,2.921,370,4.336,371,3.63,373,5.248,374,2.329,376,1.669,379,2.675,467,3.231,471,4.478,494,5.867,905,4.076,1000,3.985,1031,3.067,1036,8.198,1044,3.5,1248,7.458,2504,8.995,3090,4.234,3610,5.4,3795,4.281,5440,6.11,5478,7.907,6217,5.435,6474,8.103,7922,8.198,12253,8.451,12256,4.847,12257,4.775,18592,9.049,18599,8.562,18600,9.642,18601,7.296,18602,9.662,18603,9.662,18604,7.296,18605,9.789,18606,7.296,18607,9.245,18608,7.296,18609,7.296,18610,7.296,18611,9.789,18612,8.198,18613,7.296,18614,7.296]],["title/classes/ShareTokenContextTypeMapper.html",[0,0.232,18615,5.947]],["body/classes/ShareTokenContextTypeMapper.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.383,29,0.727,30,0.001,31,0.52,32,0.155,33,0.449,35,1.123,95,0.159,101,0.015,103,0.001,104,0.001,187,1.342,208,3.466,217,1.487,227,0.962,234,1.855,305,2.643,627,3.8,1973,8.818,3228,7.274,3364,6.449,6072,6.897,6614,8.358,10535,9.995,10540,9.995,10555,8.577,10562,7.77,12252,10.439,12256,6.164,12257,6.073,14802,8.115,14805,8.115,18615,9.995,18616,11.427,18617,9.279]],["title/controllers/ShareTokenController.html",[481,2.611,18618,5.694]],["body/controllers/ShareTokenController.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.927,27,0.377,29,0.717,30,0.001,31,0.512,32,0.19,33,0.442,35,1.107,36,2.429,95,0.165,100,1.731,101,0.009,103,0,104,0,112,2.712,187,0.748,206,2.631,215,1.65,216,0.956,217,1.474,221,2.118,227,0.949,231,2.866,264,3.845,351,5.08,364,1.666,376,1.183,447,2.143,481,1.985,483,2.466,491,6.16,498,5.266,502,4.761,504,3.384,506,7.414,509,7.358,513,6.327,543,6.261,553,6.135,554,8.239,555,2.688,556,2.75,558,2.481,561,2.772,563,5.484,564,4.764,805,4.177,883,3.255,1016,3.796,1353,4.886,1392,5.179,1733,4.177,1734,3.844,1735,4.522,2644,4.905,2727,2.481,2783,6.067,2900,6.801,2902,8.177,2904,3.939,2905,6.971,2908,7.414,2929,4.413,2930,2.772,2992,3.336,3009,3.134,3010,2.892,3228,4.884,3610,2.527,3743,4.502,6149,6.008,6217,2.544,6386,4.177,6474,5.266,8362,8.871,12248,3.549,13142,6.198,14107,5.704,17700,4.33,17715,4.522,17717,4.522,18599,8.854,18602,4.522,18603,4.522,18618,6.426,18619,10.123,18620,5.17,18621,8.458,18622,8.458,18623,8.458,18624,5.17,18625,8.631,18626,7.673,18627,5.17,18628,5.17,18629,5.17,18630,5.17,18631,10.257,18632,8.854,18633,5.17,18634,5.17,18635,7.673,18636,5.17,18637,7.673,18638,5.17,18639,5.17,18640,5.17,18641,5.17,18642,5.17,18643,5.17,18644,4.522,18645,4.522,18646,7.39,18647,6.426,18648,6.426,18649,5.17,18650,5.17,18651,5.17,18652,5.17,18653,5.17,18654,5.17,18655,5.17,18656,5.17,18657,5.17,18658,5.17,18659,4.522,18660,5.17,18661,7.673,18662,5.17,18663,5.17,18664,5.17,18665,5.17,18666,5.17]],["title/classes/ShareTokenDO.html",[0,0.232,18667,5.181]],["body/classes/ShareTokenDO.html",[0,0.264,2,0.865,3,0.018,4,0.018,5,0.009,7,0.117,26,2.415,27,0.532,29,0.608,30,0.001,31,0.435,32,0.183,33,0.636,34,1.735,47,0.727,83,3.12,95,0.131,101,0.022,103,0.001,104,0.001,127,0.972,165,0.799,188,2.866,192,2.312,199,4.305,231,6.315,351,5.716,385,7.688,404,1.838,411,5.912,421,6.076,596,2.367,1031,3.196,1790,3.276,1872,7.027,2545,4.127,2649,3.46,2659,3.635,3391,5.079,3610,3.793,4748,4.302,4773,4.651,5043,4.379,5055,4.463,5708,5.641,5760,4.875,6217,3.817,7183,7.986,7184,6.076,10031,4.875,12252,8.238,12253,6.999,12254,8.92,13905,6.787,16581,6.268,18667,9.575,18668,12.9,18669,7.76,18670,10.198,18671,9.539,18672,7.76,18673,9.201,18674,7.76,18675,7.76,18676,7.173,18677,7.76,18678,7.76,18679,7.173]],["title/classes/ShareTokenFactory.html",[0,0.232,18680,6.286]],["body/classes/ShareTokenFactory.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,8,1.34,26,2.694,27,0.365,29,0.693,30,0.001,31,0.496,32,0.12,33,0.428,34,1.888,35,1.071,49,3.482,59,2.757,95,0.163,99,1.477,101,0.015,103,0.001,104,0.001,217,1.152,227,1.151,231,4.906,234,1.802,351,5.569,404,2,674,6.098,676,6.552,731,3.497,734,5.042,735,5.141,2384,5.305,3047,6.303,3610,4.326,4121,5.793,6217,4.354,7286,7.412,12253,6.074,12257,5.793,18625,6.743,18667,6.743,18680,11.206,18681,11.097,18682,8.851,18683,11.097,18684,11.097,18685,8.851,18686,8.851,18687,8.851,18688,8.851,18689,7.741]],["title/classes/ShareTokenImportBodyParams.html",[0,0.232,18632,5.947]],["body/classes/ShareTokenImportBodyParams.html",[0,0.374,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,27,0.453,30,0.001,31,0.615,32,0.149,33,0.531,34,1.867,47,0.901,95,0.154,101,0.015,103,0.001,104,0.001,165,0.86,188,4.054,234,1.782,351,6.035,359,3.827,364,1.999,368,4.948,369,2.803,370,4.16,371,3.483,374,2.776,376,1.99,379,2.487,467,3.155,469,3.819,470,5.03,471,4.449,6155,10.518,6660,10.518,7049,7.026,7051,8.362,11763,9.192,11774,6.986,18600,9.417,18632,9.6,18690,8.698,18691,8.698,18692,10.976,18693,8.698,18694,8.698]],["title/interfaces/ShareTokenInfoDto.html",[334,0.731,18695,5.694]],["body/interfaces/ShareTokenInfoDto.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.173,47,0.978,95,0.127,101,0.017,103,0.001,104,0.001,165,0.931,334,1.063,336,2.368,351,6.78,4320,9.146,6217,6.498,12253,9.066,12256,6.573,12257,6.475,18695,9.951,18696,9.894,18697,10.67]],["title/classes/ShareTokenInfoResponse.html",[0,0.232,18647,5.694]],["body/classes/ShareTokenInfoResponse.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.518,29,0.671,30,0.001,31,0.48,32,0.171,33,0.414,47,0.896,95,0.153,101,0.014,103,0.001,104,0.001,127,1.362,165,0.852,351,6.951,364,2.175,376,1.96,411,6.528,467,3.401,469,3.762,966,4.359,1031,2.685,2742,6.228,2745,6.92,2888,5.193,6208,5.692,6217,6.377,12253,8.897,12256,5.692,12257,5.608,18600,10.151,18647,10.856,18697,10.472,18698,8.568,18699,8.568,18700,8.568,18701,8.568,18702,8.568,18703,8.568]],["title/classes/ShareTokenInfoResponseMapper.html",[0,0.232,18644,5.947]],["body/classes/ShareTokenInfoResponseMapper.html",[0,0.322,2,1.054,3,0.03,4,0.022,5,0.011,7,0.143,8,1.396,27,0.39,29,0.74,30,0.001,31,0.529,32,0.128,33,0.457,35,1.144,95,0.148,100,3.87,101,0.016,103,0.001,104,0.001,217,1.23,227,0.98,234,1.535,351,6.265,627,3.831,974,5.605,975,6.407,982,4.712,1744,6.604,6217,4.65,14536,7.916,18644,10.109,18647,10.893,18659,8.268,18695,10.893,18697,7.636,18704,10.685,18705,11.558,18706,9.453,18707,9.453,18708,9.453]],["title/classes/ShareTokenParentTypeMapper.html",[0,0.232,18709,5.947]],["body/classes/ShareTokenParentTypeMapper.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,8,1.372,27,0.379,29,0.72,30,0.001,31,0.515,32,0.154,33,0.445,35,1.113,95,0.158,101,0.015,103,0.001,104,0.001,187,1.33,208,3.435,217,1.479,227,0.953,234,1.845,305,2.619,627,3.784,1973,8.782,3228,7.233,3364,6.413,6072,6.834,6614,8.323,6707,7.7,10535,9.938,10540,9.938,10550,8.499,10557,8.499,10562,7.7,12253,8.841,12256,6.108,12257,6.017,14802,8.041,14805,8.041,14806,8.499,18709,9.938,18710,11.363,18711,9.194,18712,9.194]],["title/classes/ShareTokenPayloadResponse.html",[0,0.232,18713,5.947]],["body/classes/ShareTokenPayloadResponse.html",[0,0.309,2,1.011,3,0.021,4,0.021,5,0.011,7,0.137,27,0.505,29,0.71,30,0.001,31,0.508,32,0.167,33,0.439,47,0.803,95,0.145,101,0.015,103,0.001,104,0.001,127,1.136,165,0.883,231,5.028,351,6.434,364,2.052,376,2.075,467,3.364,1031,2.842,2888,5.497,3610,5.991,6202,7.102,6208,6.026,6217,6.03,12253,9.048,12256,6.026,12257,5.936,18600,10.039,18673,10.356,18713,9.855,18714,9.07,18715,11.267,18716,9.07,18717,9.07,18718,9.07,18719,8.384,18720,8.384]],["title/injectables/ShareTokenRepo.html",[105,0.91,18721,5.493]],["body/injectables/ShareTokenRepo.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.075,8,0.901,10,3.011,12,3.417,18,3.769,26,2.525,27,0.541,29,1.02,30,0.001,31,0.729,32,0.177,33,0.63,34,1.522,35,1.576,36,2.612,40,2.403,95,0.137,96,1.362,101,0.008,103,0,104,0,105,0.998,107,1.2,111,2.388,112,2.894,145,1.889,148,1.532,165,0.701,187,0.72,199,2.819,217,1.454,221,1.152,227,1.104,231,4.135,234,1.211,351,4.986,359,2.601,380,2.261,385,5.035,398,1.467,404,1.344,595,1.667,596,3.935,661,5.006,878,5.212,884,3.515,885,5.377,915,2.76,1790,4.717,2051,2.836,2343,9.078,2345,5.312,2346,5.312,2347,5.312,2348,5.312,2349,5.212,2350,5.212,2351,5.312,2352,5.212,2353,5.312,2360,3.545,2362,5.714,2363,3.545,2365,3.545,2367,3.259,2368,5.212,2369,3.545,2371,3.545,2373,5.312,2379,3.36,2380,5.212,2382,3.545,2384,2.984,2385,3.053,2386,3.545,2388,3.545,2390,3.478,2391,3.545,2409,3.701,3610,3.646,4773,4.471,5760,4.687,5862,3.619,5863,3.619,5864,3.619,5865,3.619,5866,3.619,5867,3.619,5868,3.619,5869,3.619,5870,3.619,5892,6.896,6217,3.67,6474,8.36,9007,3.793,12249,9.7,12254,7.78,12256,3.308,12257,3.259,14690,4.603,14700,4.17,18667,8.825,18671,6.247,18673,6.026,18676,4.603,18679,4.603,18721,6.026,18722,8.946,18723,4.979,18724,7.46,18725,7.46,18726,4.979,18727,7.46,18728,4.979,18729,4.979,18730,4.979,18731,4.979,18732,4.979,18733,4.979,18734,4.979,18735,4.979,18736,4.979,18737,7.46,18738,4.979,18739,4.979,18740,4.979,18741,4.979,18742,4.979,18743,4.979]],["title/classes/ShareTokenResponse.html",[0,0.232,18648,5.694]],["body/classes/ShareTokenResponse.html",[0,0.298,2,0.976,3,0.021,4,0.021,5,0.011,7,0.132,27,0.522,29,0.686,30,0.001,31,0.49,32,0.172,33,0.583,47,0.786,83,3.372,95,0.142,101,0.015,103,0.001,104,0.001,127,1.38,165,0.863,231,7.018,234,1.421,351,6.684,364,2.197,375,4.594,376,2.003,385,8.806,411,6.67,421,6.855,467,3.423,966,4.454,16195,8.093,16581,7.072,18600,10.217,18625,6.67,18648,10.927,18713,10.55,18744,8.754,18745,8.754,18746,8.754,18747,8.754,18748,8.754,18749,8.754]],["title/classes/ShareTokenResponseMapper.html",[0,0.232,18645,5.947]],["body/classes/ShareTokenResponseMapper.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,8,1.398,27,0.391,29,0.742,30,0.001,31,0.531,32,0.129,33,0.458,35,1.147,95,0.149,100,3.876,101,0.016,103,0.001,104,0.001,217,1.233,227,0.983,231,5.252,234,1.538,351,6.272,385,6.395,627,3.835,974,5.618,975,6.416,982,4.723,6474,6.503,12256,6.295,12257,6.201,14536,7.935,18645,10.124,18648,10.901,18667,9.918,18704,10.7,18750,11.575,18751,9.475,18752,9.475,18753,8.759]],["title/injectables/ShareTokenService.html",[105,0.91,18754,5.493]],["body/injectables/ShareTokenService.html",[0,0.21,3,0.015,4,0.015,5,0.007,7,0.093,8,1.053,27,0.478,29,0.908,30,0.001,31,0.65,32,0.168,33,0.561,35,1.331,36,2.581,59,1.921,83,1.887,95,0.159,101,0.01,103,0,104,0,105,1.166,107,1.487,111,2.534,112,2.833,127,1.092,130,8.353,138,3.809,148,1.898,167,2.27,187,0.892,190,4.585,199,3.295,216,2.145,217,1.431,221,2.787,227,1.049,231,5.607,234,1.001,307,3.875,309,5.817,319,1.843,351,5.82,385,5.885,701,3.576,3013,4.982,3014,4.982,5002,9.691,5003,9.429,5209,6.719,6474,8.494,12253,4.233,12254,9.691,12256,4.098,12257,4.037,12621,5.702,16629,5.395,18667,8.836,18671,7.302,18673,8.88,18689,5.395,18697,9.368,18721,9.997,18753,8.06,18754,7.043,18755,12.039,18756,8.719,18757,10.114,18758,8.719,18759,8.719,18760,6.168,18761,9.725,18762,6.168,18763,8.719,18764,6.168,18765,6.168,18766,6.168,18767,8.719,18768,6.168,18769,8.719,18770,6.168,18771,5.395,18772,5.395,18773,6.168,18774,6.168,18775,6.168,18776,6.168,18777,6.168,18778,6.168,18779,6.168,18780,5.702,18781,6.168,18782,5.702,18783,6.168,18784,5.702,18785,6.168]],["title/injectables/ShareTokenUC.html",[105,0.91,18646,5.493]],["body/injectables/ShareTokenUC.html",[0,0.101,3,0.007,4,0.007,5,0.004,7,0.045,8,0.6,26,2.669,27,0.46,29,0.874,30,0.001,31,0.625,32,0.16,33,0.54,34,0.844,35,1.321,36,2.393,39,3.277,47,0.968,55,1.603,59,2.318,83,2.277,95,0.151,99,0.497,100,0.998,101,0.005,102,3.202,103,0,104,0,105,0.664,107,0.718,111,2.651,112,2.855,127,0.622,130,6.392,138,2.169,145,1.257,148,0.917,187,0.431,188,2.357,190,2.215,199,2.813,206,1.516,216,1.835,217,1.549,221,2.869,227,0.982,231,5.5,234,1.611,305,2.698,307,4.677,309,6.655,319,2.225,347,1.506,351,5.17,368,1.945,385,2.011,461,2.043,701,2.632,731,1.961,766,1.246,843,2.816,1187,2.367,1188,2.339,1189,2.339,1308,3.868,1353,1.438,1467,0.951,1642,2.122,1750,3.668,1795,4.023,1798,3.602,1799,6.244,1801,1.786,1804,3.868,1884,5.119,1928,7.416,1982,4.461,2130,1.302,2131,1.456,2132,1.404,2356,2.621,2357,3.39,2524,2.913,2633,5.099,2643,1.731,2649,2.213,2659,2.326,2725,1.35,2964,4.157,2965,5.155,2971,7.416,2972,7.931,2980,5.829,2992,3.203,3009,1.806,3010,1.666,3013,2.407,3014,2.407,3055,2.606,3056,2.606,3058,2.606,3059,6.234,3228,1.897,3339,1.495,3649,4.458,3859,1.666,4171,4.862,4773,1.786,5017,4.511,5034,3.782,5209,7.061,5760,1.872,5987,2.122,6072,2.215,6155,8.284,6217,4.659,6474,5.109,6640,7.65,6642,4.157,6659,8.014,6660,9.544,6698,4.157,6702,4.589,6708,2.754,6712,4.803,7922,4.157,9419,2.495,11615,2.122,12243,5.899,12252,2.407,12253,6.5,12256,1.979,12257,1.95,13144,4.157,14160,4.589,16958,2.495,17043,2.495,18602,2.606,18603,2.606,18615,2.606,18621,6.881,18622,6.881,18623,5.899,18646,4.01,18659,4.342,18667,2.27,18671,6.926,18673,7.65,18689,6.511,18695,4.157,18697,4.01,18709,2.606,18719,2.754,18720,2.754,18754,7.214,18780,6.881,18782,6.881,18784,6.881,18786,11.378,18787,2.979,18788,4.964,18789,4.964,18790,4.964,18791,4.964,18792,2.979,18793,2.979,18794,4.964,18795,2.979,18796,4.964,18797,2.979,18798,4.964,18799,2.979,18800,4.964,18801,2.979,18802,2.979,18803,2.979,18804,2.754,18805,2.979,18806,2.979,18807,2.979,18808,2.979,18809,2.979,18810,4.964,18811,2.979,18812,4.964,18813,2.979,18814,2.979,18815,2.979,18816,2.979,18817,4.964,18818,2.979,18819,4.964,18820,2.979,18821,6.381,18822,2.979,18823,2.979,18824,2.979,18825,2.979,18826,2.979,18827,4.964,18828,4.964,18829,7.444,18830,2.979,18831,2.979,18832,6.381,18833,4.964,18834,2.979,18835,2.979,18836,2.979,18837,4.964,18838,2.979,18839,4.589,18840,4.964,18841,4.964,18842,2.979,18843,4.964,18844,4.964,18845,2.979,18846,2.979,18847,2.979,18848,2.979,18849,6.381,18850,5.581,18851,2.979,18852,6.381,18853,2.979,18854,2.979,18855,2.979]],["title/classes/ShareTokenUrlParams.html",[0,0.232,18631,5.947]],["body/classes/ShareTokenUrlParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,351,6.735,359,4.082,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,470,4.898,479,7.179,18600,9.169,18607,9.169,18631,10.242,18856,9.657,18857,11.709,18858,9.657]],["title/modules/SharingApiModule.html",[425,1.812,18505,5.324]],["body/modules/SharingApiModule.html",[0,0.338,3,0.018,4,0.018,5,0.009,30,0.001,95,0.175,101,0.017,103,0.001,104,0.001,187,1.079,425,3.174,427,2.694,428,2.898,429,2.984,430,2.971,431,2.959,432,4.383,433,3.754,438,6.1,442,3.975,443,2.922,444,2.852,447,4.63,449,4.432,766,3.12,1467,2.38,1878,7.038,1923,9.68,2649,3.325,2659,3.494,2725,3.379,2727,3.578,3583,5.84,10424,6.024,10425,6.024,13848,9.273,13849,9.68,13867,9.68,18505,11.093,18618,9.354,18646,10.305,18721,8.024,18754,9.023,18761,8.024,18771,6.523,18772,6.523,18859,7.458,18860,7.458,18861,7.458,18862,10.684,18863,6.894,18864,6.894,18865,6.894]],["title/modules/SharingModule.html",[425,1.812,18862,5.694]],["body/modules/SharingModule.html",[0,0.333,3,0.017,4,0.017,5,0.009,30,0.001,95,0.174,101,0.016,103,0.001,104,0.001,187,1.051,425,3.141,427,2.626,428,2.825,429,2.909,430,2.896,431,2.884,432,4.338,433,4.168,438,6.061,442,3.907,443,2.848,444,2.78,447,4.048,449,4.375,766,3.041,1467,2.32,1878,6.993,1923,9.618,2649,3.241,2659,3.406,2725,3.293,2727,3.488,3583,5.693,10424,5.872,10425,5.872,13848,9.213,13849,9.618,13867,9.618,18505,5.693,18618,8.178,18646,7.888,18721,10.229,18754,11.049,18761,10.229,18771,6.358,18772,6.358,18862,11.934,18863,6.72,18864,6.72,18865,6.72,18866,7.27,18867,7.27,18868,7.27,18869,7.27]],["title/classes/SingleColumnBoardResponse.html",[0,0.232,17596,5.694]],["body/classes/SingleColumnBoardResponse.html",[0,0.241,2,0.788,3,0.017,4,0.017,5,0.009,7,0.107,27,0.518,29,0.553,30,0.001,31,0.396,32,0.18,33,0.342,34,1.63,47,0.896,95,0.14,101,0.012,103,0.001,104,0.001,127,1.2,145,1.789,165,0.75,240,3.039,347,2.357,364,2.218,376,1.616,379,2.846,467,3.295,469,3.102,475,4.683,966,3.595,1011,3.57,1013,4.978,1041,6.812,1184,5.31,1233,8.359,1397,4.3,1852,2.983,1858,5.018,2627,5.679,2655,6.831,2732,10.057,2745,6.098,2747,3.647,2884,5.095,2885,5.095,3435,9.759,3753,7.558,4078,6.532,5043,5.407,5055,5.51,5503,10.192,6469,6.364,6827,5.533,6831,7.501,7380,5.383,7420,8.662,7594,6.18,8146,10.2,17495,6.532,17596,10.2,18870,7.066,18871,7.066,18872,7.066,18873,7.066,18874,7.066,18875,7.066,18876,7.066,18877,5.383,18878,7.066,18879,7.066]],["title/classes/SingleFileParams.html",[0,0.232,6240,4.589]],["body/classes/SingleFileParams.html",[0,0.458,2,0.731,3,0.016,4,0.022,5,0.011,7,0.099,26,2.669,27,0.27,30,0.001,32,0.161,39,1.766,47,0.959,95,0.162,99,1.095,101,0.022,103,0.001,104,0.001,150,2.271,165,0.713,204,2.226,214,2.068,334,0.705,347,1.841,364,1.195,369,1.456,373,4.88,374,2.094,375,4.302,376,1.5,377,6.048,379,1.486,380,1.394,467,3.645,469,2.88,470,5.136,471,4.578,565,3.27,1000,4.999,1001,6.769,1031,3.276,1044,3.147,1180,2.823,1270,3.889,1330,5.795,1331,4.293,1332,4.293,2702,4.711,2889,5.177,3610,3.206,4205,2.211,5821,5.299,5836,6.635,6170,4.216,6183,5.958,6189,6.154,6217,3.227,6220,4.502,6221,4.583,6222,4.583,6225,7.882,6228,4.583,6229,8.157,6230,7.89,6231,7.89,6232,4.583,6233,4.502,6234,7.056,6235,4.502,6236,4.583,6237,4.427,6238,7.622,6239,4.358,6240,6.144,6241,4.502,6242,4.427,6243,4.427,6244,4.175,6245,4.583,6246,4.583,6247,4.583,6248,4.175,6249,4.175,6250,4.293,6251,4.358,6252,4.583,18880,6.559]],["title/classes/SortExternalToolParams.html",[0,0.232,9146,5.694]],["body/classes/SortExternalToolParams.html",[0,0.382,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,31,0.628,32,0.153,33,0.543,34,1.909,95,0.157,101,0.019,103,0.001,104,0.001,144,2.478,165,0.879,209,2.977,319,2.692,364,2.044,374,2.875,375,4.274,376,2.061,404,2.022,469,3.955,471,4.548,596,3.423,1031,3.516,1044,4.322,2559,4.081,3015,9.084,4430,10.629,4431,8.036,4434,7.88,4435,6.08,4436,7.545,4437,7.88,8615,7.277,9146,9.397,18881,9.009,18882,13.158,18883,9.009,18884,9.009]],["title/classes/SortHelper.html",[0,0.232,11218,5.947]],["body/classes/SortHelper.html",[0,0.282,2,0.924,3,0.02,4,0.02,5,0.01,7,0.125,8,1.285,27,0.342,29,0.834,30,0.001,31,0.464,32,0.145,33,0.401,35,1.003,47,0.759,55,2.764,95,0.106,99,1.383,101,0.014,103,0.001,104,0.001,116,2.581,145,3.141,227,0.859,247,3.247,627,3.607,692,4.989,905,4.431,1695,8.61,2144,7.634,2686,9.833,4431,8.499,6974,6.489,11218,9.308,18885,10.642,18886,7.248,18887,10.642,18888,10.642,18889,8.286,18890,8.286]],["title/classes/SortImportUserParams.html",[0,0.232,12749,5.694]],["body/classes/SortImportUserParams.html",[0,0.382,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,32,0.153,33,0.543,95,0.164,101,0.019,103,0.001,104,0.001,144,2.478,165,0.879,319,2.692,364,2.044,374,2.875,375,4.274,376,2.061,404,2.022,469,3.955,471,4.548,596,3.423,851,5.35,852,5.35,1031,3.516,1044,4.322,3015,9.084,4430,10.629,4431,8.036,4434,7.88,4435,6.08,4436,7.545,4437,7.88,4476,4.017,10657,7.545,12749,9.397,12860,12.164,18891,9.009,18892,9.009,18893,9.009]],["title/classes/SortingParams.html",[0,0.232,4430,5.493]],["body/classes/SortingParams.html",[0,0.382,2,1.363,3,0.021,4,0.021,5,0.011,7,0.136,9,6.027,27,0.463,30,0.001,32,0.174,33,0.543,95,0.144,101,0.015,103,0.001,104,0.001,144,2.478,165,0.879,319,2.692,364,2.226,374,2.875,375,4.274,376,2.061,471,4.548,692,4.192,728,4.291,1031,3.516,1044,4.322,3015,9.084,3654,9.397,4430,9.063,4431,8.641,4435,7.573,4436,7.545,10375,9.063,18894,9.009,18895,9.009,18896,11.22,18897,9.009,18898,9.009]],["title/injectables/StartUserLoginMigrationUc.html",[105,0.91,18899,5.694]],["body/injectables/StartUserLoginMigrationUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,8,1.11,27,0.434,29,0.825,30,0.001,31,0.59,32,0.143,33,0.509,35,1.112,36,2.435,39,2.474,47,0.974,95,0.165,99,1.109,101,0.011,103,0.001,104,0.001,105,1.229,107,1.602,111,2.277,112,2.717,127,1.151,129,7.047,132,6.793,167,2.446,189,5.092,191,3.684,192,3.137,199,3.472,204,2.255,216,2.1,217,1.37,221,2.759,227,0.689,234,1.492,305,2.617,323,5.368,355,5.175,461,2.89,766,2.78,843,2.933,1464,3.061,1467,2.121,1795,4.965,1801,3.983,1884,6.83,1982,3.983,2356,5.191,2725,3.011,4184,4.486,4205,4.34,4476,5.064,4478,5.368,4481,5.368,4482,8.779,4485,6.144,4489,5.927,4491,7.047,4492,4.94,4495,5.204,4500,7.693,4501,6.829,8807,5.204,11224,5.204,17440,5.566,17443,6.144,17444,5.813,18397,5.566,18899,7.693,18900,11.357,18901,9.186,18902,8.035,18903,9.186,18904,6.646,18905,9.186,18906,6.646,18907,7.421,18908,6.646,18909,6.646,18910,6.646,18911,6.646]],["title/classes/StatelessAuthorizationParams.html",[0,0.232,16097,5.947]],["body/classes/StatelessAuthorizationParams.html",[0,0.376,2,0.98,3,0.021,4,0.021,5,0.011,7,0.133,27,0.523,30,0.001,32,0.172,33,0.662,47,0.951,95,0.142,101,0.015,103,0.001,104,0.001,165,0.866,204,4.101,364,2.309,374,2.806,470,5.304,471,5.296,602,9.255,1001,6.623,1044,4.218,1142,5.597,1909,9.464,1910,11.172,1911,8.128,1913,11.172,1914,8.128,1919,8.128,1920,5.597,1921,8.128,1922,8.128,16097,9.666,18912,13.064,18913,8.793,18914,8.793,18915,8.793,18916,8.793,18917,8.793]],["title/classes/StorageProviderEncryptedStringType.html",[0,0.232,12263,5.694]],["body/classes/StorageProviderEncryptedStringType.html",[0,0.235,2,0.77,3,0.016,4,0.016,5,0.008,7,0.104,8,1.14,27,0.476,29,0.841,30,0.001,31,0.602,32,0.179,33,0.519,35,1.142,47,1.005,59,2.152,95,0.138,96,1.89,101,0.012,103,0.001,104,0.001,111,2.154,127,0.865,144,3.431,145,3.159,165,0.739,167,3.471,217,1.228,227,1.294,247,3.696,379,1.565,398,2.035,404,1.7,406,2.247,766,2.89,777,8.412,1345,3.743,1581,8.221,1738,5.022,1852,2.917,1857,8.185,1948,5.654,2035,5.806,2130,3.018,2131,3.377,2132,3.255,2133,4.397,6528,4.919,7137,6.858,8244,8.678,11762,6.858,11949,8.251,11950,8.997,12263,7.9,14557,5.785,18918,6.908,18919,8.721,18920,9.434,18921,9.434,18922,9.434,18923,9.434,18924,9.434,18925,10.743,18926,9.434,18927,6.908,18928,9.434,18929,6.908,18930,6.908,18931,6.908,18932,9.434,18933,8.721,18934,9.434,18935,6.908,18936,6.386,18937,9.434,18938,6.908,18939,6.386]],["title/entities/StorageProviderEntity.html",[380,1.445,7948,5.055]],["body/entities/StorageProviderEntity.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,27,0.51,30,0.001,32,0.178,33,0.511,47,0.993,95,0.15,96,2.244,101,0.018,103,0.001,104,0.001,165,0.828,240,4.226,334,0.881,364,2.251,369,2.346,370,2.702,380,2.246,381,2.728,386,4.672,398,2.416,399,4.195,400,3.619,402,3.4,404,1.478,405,2.185,406,2.668,2632,3.777,4771,6.249,6269,8.634,6271,8.634,6272,9.149,7948,7.859,11675,7.174,12260,9.247,12261,7.582,12262,11.424,12263,9.798,12264,7.582,12265,7.582,12266,7.582,12267,7.582,12268,7.582,12269,7.582,12270,7.582,12271,7.582,12272,7.582,18940,8.202,18941,8.202,18942,8.202,18943,8.202]],["title/injectables/StorageProviderRepo.html",[105,0.91,7945,5.694]],["body/injectables/StorageProviderRepo.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.198,10,4.004,12,4.544,18,5.013,26,2.103,27,0.537,29,0.971,30,0.001,31,0.694,32,0.169,33,0.599,34,1.266,35,1.501,36,2.658,40,3.593,49,3.904,95,0.153,96,2.036,97,3.22,99,1.242,101,0.012,103,0.001,104,0.001,105,1.327,107,1.794,112,2.95,127,0.932,187,1.077,216,1.377,217,0.969,227,1.029,380,1.582,381,3.3,404,1.788,432,3.651,596,3.631,692,5.093,877,7.637,883,4.209,884,4.675,885,5.639,908,4.564,909,4.619,910,4.564,911,4.619,912,5.301,913,4.564,914,4.619,915,4.127,2354,5.411,2355,6.845,2359,7.212,2397,5.024,3675,5.109,5878,5.672,7945,8.309,7948,7.375,14949,9.32,18944,7.444,18945,7.444,18946,7.444,18947,7.444,18948,7.444]],["title/classes/StringValidator.html",[0,0.232,12859,5.324]],["body/classes/StringValidator.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.852,30,0.001,31,0.609,32,0.148,33,0.526,35,1.316,47,0.98,59,3.386,101,0.014,103,0.001,104,0.001,144,3.643,167,3.153,217,1.415,227,1.302,247,4.26,319,2.561,347,2.199,369,2.413,371,3.464,470,4.548,627,4.065,1695,5.454,1750,5.571,12859,8.513,13020,10.986,18933,7.921,18949,8.568,18950,10.872,18951,10.872,18952,8.568,18953,10.872,18954,8.568,18955,8.568,18956,8.568]],["title/entities/Submission.html",[380,1.445,2849,2.941]],["body/entities/Submission.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.156,26,2.186,27,0.502,30,0.001,32,0.171,33,0.563,34,0.788,47,0.806,55,1.844,62,2.717,72,2.097,95,0.15,96,1.267,101,0.012,103,0,104,0,111,1.416,116,3.384,144,1.273,145,2.425,165,0.75,187,0.67,192,2.854,208,1.73,217,1.687,227,1.208,234,1.555,240,3.695,305,1.319,319,1.384,334,0.497,347,2.504,364,2.218,369,2.585,370,3.396,371,1.947,380,1.5,381,1.54,386,4.876,394,4.023,398,1.364,399,2.801,400,2.043,402,1.919,404,0.834,405,1.234,406,1.506,461,2.665,738,2.407,844,4.696,957,2.567,1107,3.235,1129,2.663,1142,2.144,1353,3.408,1843,2.195,1942,3.177,1944,3.177,1950,3.297,1959,2.523,2632,5.608,2636,3.848,2640,2.523,2649,5.429,2650,2.873,2849,3.702,3106,6.132,3429,2.947,3430,3.235,3720,2.613,3775,6.463,3780,6.463,3788,5.913,3790,5.913,4205,1.56,4989,3.234,6216,3.914,6518,6.835,6519,3.076,6521,2.839,6523,2.589,6539,5.028,6543,2.873,6544,2.775,6751,3.125,6752,4.28,6864,4.556,7044,2.947,8894,7.295,11882,4.933,11883,4.933,11888,4.933,11889,3.235,12105,6.961,12273,5.913,12274,4.28,12275,8.852,12276,9.463,12277,6.176,12278,4.28,12279,6.527,12280,4.28,12281,4.28,12282,4.28,12283,4.28,12284,3.74,12285,4.28,12286,4.28,12287,4.28,12288,3.877,12289,4.28,12290,4.28,12291,4.28,12292,4.28,12293,4.28,12294,4.28,12295,9.53,12296,4.28,12297,4.28,12298,4.28,12299,4.28,12300,4.28,12301,4.28,12302,8.852,12303,4.28,12304,6.363,12305,3.74,12306,10.044,12307,6.527,12308,3.877,12309,6.527,12310,4.049,12311,3.365,12312,3.625,12313,4.28,12314,4.28,12315,4.28,12316,4.28,12317,6.527,12318,6.527,12319,4.28,12320,4.28,12321,4.28,12322,4.28,12323,6.363,12324,3.74,12325,3.877,12326,6.527,18957,4.63,18958,4.63,18959,4.63,18960,4.63,18961,4.63,18962,4.63,18963,4.63,18964,4.63,18965,4.63,18966,4.63,18967,4.63]],["title/classes/SubmissionContainerContentBody.html",[0,0.232,5647,4.517]],["body/classes/SubmissionContainerContentBody.html",[0,0.457,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,9,2.771,27,0.242,30,0.001,31,0.638,32,0.185,33,0.408,47,0.812,83,2.578,95,0.138,99,0.981,101,0.022,103,0,104,0,144,3.132,150,2.036,163,1.81,165,0.66,240,1.865,364,1.071,369,1.305,374,1.877,375,3.752,376,1.345,379,1.91,404,2.052,467,3.596,470,4.764,471,3.993,524,3.382,999,5.364,1000,3.431,1031,1.842,1044,2.821,1770,4.895,2303,4.616,2553,4.199,2848,2.838,2849,3.645,2889,2.912,3251,3.486,3253,3.486,3259,5.084,3262,5.047,3267,3.288,4009,3.743,4037,3.743,4038,7.066,4096,5.768,5562,6.356,5564,6.356,5566,6.356,5568,6.356,5570,6.356,5604,3.848,5643,6.544,5644,6.544,5645,6.544,5646,6.544,5647,7.147,5835,3.694,5836,6.826,6979,3.906,7038,4.924,7039,5.364,8169,8.237,8170,5.784,8171,4.035,8174,6.544,8175,6.544,8176,4.035,8177,6.544,8178,5.167,8179,5.688,8180,6.544,8181,6.544,8182,3.906,8183,3.906,8184,3.906,8185,3.906,8186,4.035,8187,4.035,8188,4.035,8189,4.035,8190,4.035,18968,5.88]],["title/classes/SubmissionContainerElement.html",[0,0.232,2838,4.272]],["body/classes/SubmissionContainerElement.html",[0,0.216,2,0.706,3,0.015,4,0.015,5,0.008,7,0.096,8,1.073,27,0.54,29,0.977,30,0.001,31,0.698,32,0.176,33,0.603,35,1.54,36,1.905,55,1.913,59,1.972,83,3.583,95,0.132,101,0.017,103,0.001,104,0.001,112,2.261,116,2.767,144,2.443,148,3.605,165,0.696,167,4.31,208,2.366,217,0.824,221,1.466,227,1.064,334,0.68,347,2.075,363,5.654,404,1.849,595,2.974,596,3.882,661,3.733,687,2.699,692,3.318,728,2.422,806,3.616,884,4.186,1345,2.512,1790,4.696,1793,6.62,1865,4.046,2557,6.405,2627,2.661,2749,7.838,2752,6.325,2753,6.325,2754,6.325,2755,5.901,2756,6.325,2758,4.207,2759,5.446,2760,6.526,2762,6.206,2763,5.446,2764,6.397,2766,4.424,2767,4.688,2769,6.446,2770,4.424,2772,6.325,2774,4.424,2776,4.207,2804,5.384,2838,6.988,2841,5.512,2849,2.739,2850,6.149,2851,5.115,3262,5.699,3945,6.457,3946,4.603,3947,4.603,3956,3.979,3961,5.512,4711,5.539,4712,5.854,8634,4.51,17463,5.854,17465,5.854,18969,8.287,18970,6.333,18971,6.333,18972,8.211,18973,5.854,18974,5.854,18975,5.854,18976,5.539,18977,5.854]],["title/classes/SubmissionContainerElementContent.html",[0,0.232,18978,5.694]],["body/classes/SubmissionContainerElementContent.html",[0,0.355,2,0.896,3,0.019,4,0.019,5,0.01,7,0.121,27,0.43,29,0.63,30,0.001,31,0.45,32,0.177,33,0.389,34,1.971,47,0.826,83,3.985,95,0.149,99,1.341,101,0.017,103,0.001,104,0.001,127,1.451,165,0.817,167,4.513,364,1.464,376,1.839,379,2.365,467,3.417,475,3.929,618,3.287,728,3.991,966,4.09,1011,4.061,1031,2.519,2303,4.697,2536,6.255,2578,3.584,2850,6.945,2884,4.275,2885,4.275,2889,3.98,3262,6.795,3436,5.616,3448,4.928,3694,6.87,3698,6.061,3702,5.34,3704,5.34,4012,7.951,4096,6.212,5568,5.187,8650,6.493,9849,7.031,12462,6.124,18978,10.908,18979,10.712,18980,9.127,18981,9.647,18982,9.647]],["title/classes/SubmissionContainerElementContentBody.html",[0,0.232,8180,4.517]],["body/classes/SubmissionContainerElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.314,5566,6.314,5568,6.905,5570,6.314,5604,3.804,5643,6.502,5644,6.502,5645,6.502,5646,6.502,5647,7.109,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,6.502,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,7.109,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,18983,5.812,18984,5.812]],["title/entities/SubmissionContainerElementNode.html",[380,1.445,3189,5.324]],["body/entities/SubmissionContainerElementNode.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,27,0.359,30,0.001,32,0.118,83,3.683,95,0.162,96,2.384,101,0.018,103,0.001,104,0.001,165,0.861,167,4.429,208,3.256,217,1.134,227,0.904,240,3.486,334,0.936,364,1.588,369,2.439,370,2.871,380,2.335,381,2.899,386,4.966,398,2.568,404,1.98,405,2.323,617,4.832,1790,5.083,2553,4.685,2557,5.372,2577,4.919,2578,3.886,2850,6.587,3143,5.757,3155,6.587,3189,8.606,3222,5.344,3246,9.613,3262,6.476,3598,6.739,3619,5.409,4059,5.548,4061,5.548,9857,7.624,12462,6.641,12463,7.041,18985,9.204,18986,9.613,18987,8.058]],["title/interfaces/SubmissionContainerElementProps.html",[334,0.731,18976,5.947]],["body/interfaces/SubmissionContainerElementProps.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.146,36,1.806,83,3.946,95,0.152,101,0.02,103,0.001,104,0.001,112,1.857,144,2.317,148,2.593,165,0.842,167,4.746,208,3.147,217,1.096,221,1.95,227,1.229,334,0.905,336,2.016,347,1.704,404,2.135,687,3.591,728,3.222,806,4.379,1345,3.343,1790,3.557,1865,4.899,2557,5.258,2627,3.541,2749,6.519,2759,5.166,2760,6.311,2763,5.166,2764,6.186,2772,5.999,2804,7.181,2838,7.445,2841,6.674,2849,3.644,2850,5.05,2851,6.805,3262,6.608,3956,5.293,3961,6.674,8634,5.999,18969,6.805,18972,9.943,18973,7.788,18974,7.788,18975,7.788,18976,9.408,18977,7.788]],["title/classes/SubmissionContainerElementResponse.html",[0,0.232,4012,5.181]],["body/classes/SubmissionContainerElementResponse.html",[0,0.343,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,27,0.515,29,0.596,30,0.001,31,0.426,32,0.186,33,0.368,34,2.124,47,0.805,83,3.452,95,0.145,99,1.271,101,0.017,103,0.001,104,0.001,127,1.413,165,0.789,167,3.706,364,2.187,376,1.741,379,1.725,467,3.486,475,3.721,618,3.113,728,2.911,966,3.873,1031,2.386,2303,5.063,2536,4.563,2578,3.394,2850,7.691,2883,4.983,2884,5.356,2885,5.356,2888,4.614,2889,4.987,3262,6.153,3436,5.319,3448,4.668,3694,7.405,3698,6.555,3702,5.058,3704,5.058,4012,9.515,4096,6.696,5568,6.498,9862,6.659,9863,6.659,9864,6.659,9865,6.659,9866,6.659,12462,5.8,18978,10.057,18979,11.862,18980,6.659,18981,7.038,18982,7.038]],["title/classes/SubmissionContainerElementResponseMapper.html",[0,0.232,5586,5.947]],["body/classes/SubmissionContainerElementResponseMapper.html",[0,0.257,2,0.841,3,0.018,4,0.018,5,0.009,7,0.114,8,1.209,27,0.493,29,0.784,30,0.001,31,0.561,32,0.163,33,0.484,34,1.283,35,1.36,95,0.144,99,1.259,100,2.525,101,0.013,103,0.001,104,0.001,111,2.252,116,2.349,165,0.784,214,3.155,217,0.981,227,1.165,234,2.022,347,2.024,591,3.278,627,3.927,806,3.07,974,4.472,975,5.548,978,6.092,980,5.746,1750,4.439,2051,4.296,2303,3.057,2547,8.35,2550,7.837,2551,7.837,2553,5.652,2554,7.625,2838,8.331,2850,7.462,3262,5.128,3694,4.472,3698,5.813,3715,5.371,4012,9.115,4096,4.043,5183,7.057,5568,4.866,5581,5.906,5586,11.421,8672,9.115,8674,6.092,8676,6.092,8677,6.092,8678,6.092,18978,9.407,18988,11.51,18989,7.542,18990,11.232,18991,11.232,18992,7.542]],["title/interfaces/SubmissionContainerNodeProps.html",[334,0.731,18986,5.947]],["body/interfaces/SubmissionContainerNodeProps.html",[0,0.299,3,0.021,4,0.021,5,0.011,7,0.133,30,0.001,32,0.119,83,3.876,95,0.163,96,2.4,101,0.018,103,0.001,104,0.001,165,0.864,167,4.662,208,3.278,217,1.142,227,0.91,240,3.501,334,0.943,336,2.1,369,1.947,370,2.89,380,2.345,398,2.585,404,2.176,405,2.338,617,4.864,1790,5.098,2553,3.74,2557,5.394,2577,4.952,2578,3.912,2850,5.258,3143,5.78,3155,6.614,3189,6.87,3222,5.379,3246,9.652,3262,6.69,3598,7.403,3619,5.444,4059,5.585,4061,5.585,12462,6.684,12463,7.087,18985,7.347,18986,10.56,18987,8.11]],["title/classes/SubmissionContainerUrlParams.html",[0,0.232,3724,5.947]],["body/classes/SubmissionContainerUrlParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,34,1.992,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,1000,4.767,2849,5.064,2850,7.018,3724,10.242,3795,5.666,7055,9.169,18993,10.242,18994,9.657,18995,11.65,18996,9.657]],["title/controllers/SubmissionController.html",[481,2.611,18997,5.947]],["body/controllers/SubmissionController.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.117,8,1.232,10,4.597,27,0.42,29,0.799,30,0.001,31,0.571,32,0.139,33,0.493,35,1.234,36,2.594,95,0.166,100,2.598,101,0.013,103,0.001,104,0.001,112,2.843,185,4.427,187,1.122,206,3.948,215,2.477,216,1.435,217,1.575,221,2.36,227,1.057,234,1.26,264,4.286,364,1.857,376,1.775,447,3.216,481,2.979,483,3.7,491,6.469,513,6.741,555,4.034,556,4.127,561,4.16,1750,4.523,2727,3.723,2908,6.674,2930,4.16,3720,5.755,14138,6.498,14144,6.498,18997,8.919,18998,7.76,18999,11.391,19000,10.582,19001,10.198,19002,7.76,19003,7.76,19004,10.132,19005,10.198,19006,7.76,19007,6.787,19008,9.539,19009,6.498,19010,7.76,19011,7.76,19012,7.76,19013,7.76,19014,7.76,19015,7.173,19016,7.76,19017,10.198,19018,7.76,19019,7.76,19020,7.76]],["title/classes/SubmissionFactory.html",[0,0.232,19021,6.286]],["body/classes/SubmissionFactory.html",[0,0.156,2,0.51,3,0.011,4,0.011,5,0.006,7,0.069,8,0.845,27,0.541,29,1.013,30,0.001,31,0.691,32,0.178,33,0.597,34,1.445,35,1.44,47,0.499,55,2.614,59,3.193,95,0.139,99,0.763,101,0.008,103,0,104,0,127,0.573,138,3.055,144,3.191,148,1.407,165,0.548,185,4.978,192,1.362,216,1.293,217,1.407,227,1.063,319,3.468,359,2.438,366,2.557,369,1.552,379,1.925,380,2.178,381,2.326,404,1.26,538,3.151,596,3.866,627,2.146,660,7.164,661,4.544,662,5.369,665,3.947,666,5.369,667,5.638,668,3.947,669,3.947,670,3.947,671,3.877,672,4.352,673,4.793,674,6.377,675,5.683,676,6.988,677,2.605,682,2.58,683,3.947,684,2.605,685,5.021,686,5.184,687,4.055,688,4.875,689,3.911,690,2.58,691,2.432,692,4.039,693,2.513,694,2.471,695,2.58,696,4.946,697,2.605,698,4.708,699,2.58,700,7.297,701,4.102,702,6.549,703,2.605,704,4.206,705,2.58,706,2.605,707,2.58,708,2.605,709,2.58,710,2.91,711,2.711,712,2.58,713,5.993,714,2.605,715,2.58,716,3.947,717,3.691,718,3.947,719,2.605,720,2.492,721,2.471,722,2.038,723,2.58,724,2.58,725,2.58,726,2.605,727,2.605,728,1.748,729,2.58,730,2.605,731,2.763,732,2.58,733,2.605,735,2.656,736,2.711,737,5.702,848,3.256,849,3.483,2649,2.038,2849,3.025,3106,3.947,3775,6.919,3780,6.919,6736,3.58,6737,3.693,6746,3.58,8894,5.328,12273,3.829,12276,5.857,19021,7.851,19022,4.572,19023,9.513,19024,6.994,19025,4.572,19026,4.572,19027,4.572,19028,6.994,19029,4.572,19030,4.572,19031,3.999,19032,4.572,19033,3.999,19034,4.572,19035,4.572,19036,4.572,19037,4.226]],["title/classes/SubmissionItem.html",[0,0.232,2841,4.219]],["body/classes/SubmissionItem.html",[0,0.205,2,0.67,3,0.014,4,0.014,5,0.007,7,0.091,8,1.034,26,2.531,27,0.546,29,0.984,30,0.001,31,0.703,32,0.176,33,0.607,35,1.547,36,1.836,39,2.926,55,1.844,59,1.872,95,0.128,99,1.003,101,0.017,103,0,104,0,112,2.198,116,2.667,144,2.989,148,3.674,165,0.671,208,2.246,221,1.391,227,1.127,334,0.646,347,2.54,363,5.45,371,1.658,404,1.797,595,2.867,596,3.83,661,3.598,687,2.562,692,3.198,728,3.274,731,2.375,774,4.126,806,2.447,884,4.034,1187,2.867,1188,2.833,1189,2.833,1190,2.996,1191,3.276,1345,2.385,1790,3.615,1793,6.434,1865,3.9,1941,3.826,2557,6.335,2614,4.37,2615,4.281,2627,2.526,2749,7.745,2752,6.097,2753,6.097,2754,6.097,2755,5.688,2756,6.097,2757,4.057,2758,3.994,2759,5.249,2760,6.376,2762,5.982,2763,5.249,2764,6.25,2766,4.2,2767,4.519,2769,6.828,2770,4.2,2774,4.2,2776,3.994,2804,5.189,2841,6.743,2849,2.6,3195,3.73,3264,6.586,3945,4.37,3946,4.37,3947,4.37,3956,3.777,4711,5.258,5609,4.469,7405,4.856,16913,6.916,18969,9.277,19038,5.557,19039,6.011,19040,6.011,19041,7.915,19042,6.011,19043,6.011,19044,6.011,19045,6.011,19046,6.011,19047,6.011,19048,6.011,19049,7.915,19050,5.557,19051,5.557,19052,5.557,19053,5.557,19054,5.557,19055,5.258,19056,5.557]],["title/injectables/SubmissionItemFactory.html",[105,0.91,19057,6.286]],["body/injectables/SubmissionItemFactory.html",[0,0.326,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,30,0.001,34,1.627,35,1.158,39,2.575,49,3.763,83,3.562,95,0.161,101,0.016,103,0.001,104,0.001,105,1.557,107,2.306,187,1.383,227,0.992,234,2.173,371,2.638,591,4.157,592,4.333,667,6.19,734,5.449,2841,8.104,2849,4.137,2851,7.726,3264,5.797,4121,7.619,18969,9.404,19057,10.762,19058,9.565,19059,9.565]],["title/entities/SubmissionItemNode.html",[380,1.445,3192,5.324]],["body/entities/SubmissionItemNode.html",[0,0.272,3,0.019,4,0.019,5,0.01,7,0.157,26,2.594,27,0.429,30,0.001,32,0.141,39,3.295,95,0.163,96,2.186,99,1.334,101,0.017,103,0.001,104,0.001,165,0.814,204,2.711,208,2.985,217,1.04,227,0.829,240,3.882,334,0.858,347,2.337,364,1.893,380,2.209,381,2.658,398,2.354,404,1.873,405,2.129,415,4.319,416,5.086,461,2.378,617,4.43,798,5.021,803,4.958,883,3.39,960,7.134,1308,4.843,1790,4.878,1852,3.374,2469,5.156,2557,5.081,2577,4.51,2578,3.563,2849,4.496,3106,5.867,3143,5.445,3155,6.23,3192,8.14,3195,7.17,3222,4.899,3261,9.092,3264,7.416,3598,6.374,3619,4.958,4059,5.086,4060,7.387,4061,5.086,5465,7.92,7802,5.94,8660,6.989,8894,6.088,11609,5.808,18985,9.676,19060,7.99,19061,9.61,19062,9.61,19063,7.387,19064,9.092,19065,6.989,19066,7.387,19067,7.387]],["title/interfaces/SubmissionItemNodeProps.html",[334,0.731,19064,5.947]],["body/interfaces/SubmissionItemNodeProps.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.16,26,2.715,30,0.001,32,0.144,39,3.448,95,0.164,96,2.253,99,1.374,101,0.018,103,0.001,104,0.001,165,0.83,204,2.794,208,3.077,217,1.072,227,0.854,240,3.718,334,0.885,336,1.971,347,2.503,380,2.252,398,2.426,404,2.112,405,2.194,415,4.451,416,5.242,461,1.884,617,4.565,798,5.174,803,5.11,883,3.494,960,5.652,1308,4.991,1790,4.949,1852,3.477,2469,5.314,2557,5.182,2577,4.648,2578,3.672,2849,3.562,3106,4.648,3143,5.552,3155,6.353,3192,6.449,3195,5.11,3222,5.049,3261,9.271,3264,7.762,3598,7.187,3619,5.11,4059,5.242,4061,5.242,5465,6.275,7802,6.122,8894,6.275,11609,5.986,18985,6.897,19061,7.613,19062,7.613,19063,7.613,19064,10.253,19065,7.203,19066,7.613,19067,7.613]],["title/interfaces/SubmissionItemProps.html",[334,0.731,19055,5.947]],["body/interfaces/SubmissionItemProps.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.122,26,2.763,30,0.001,32,0.158,36,1.727,39,3.424,95,0.149,99,1.344,101,0.019,103,0.001,104,0.001,112,1.775,144,2.874,148,2.479,165,0.818,208,3.009,221,1.864,227,1.273,334,0.865,336,1.928,347,2.636,371,2.221,404,2.09,687,3.433,728,3.996,731,3.182,774,5.528,806,3.279,1187,3.841,1188,3.795,1189,3.795,1190,4.015,1191,4.389,1345,3.196,1865,4.759,1941,5.127,2557,5.108,2614,5.855,2615,5.736,2627,3.385,2749,6.333,2757,5.436,2759,4.938,2760,6.131,2763,4.938,2764,6.01,2804,7.03,2841,7.197,2849,3.484,3195,4.998,3264,7.708,3956,5.061,5609,5.987,16913,8.441,18969,6.506,19038,7.446,19041,7.446,19049,9.659,19050,7.446,19051,7.446,19052,7.446,19053,7.446,19054,7.446,19055,9.139,19056,7.446]],["title/classes/SubmissionItemResponse.html",[0,0.232,8212,5.493]],["body/classes/SubmissionItemResponse.html",[0,0.28,2,0.916,3,0.019,4,0.019,5,0.01,7,0.124,27,0.528,29,0.644,30,0.001,31,0.46,32,0.174,33,0.397,34,2.177,39,3.446,47,0.882,95,0.136,101,0.014,103,0.001,104,0.001,127,1.326,165,0.829,347,2.141,364,2.253,376,1.88,415,4.442,467,3.497,475,5.175,618,3.361,966,4.182,2883,6.929,2884,6.578,2885,6.578,3264,7.757,3694,7.589,3698,6.802,3702,5.46,3704,5.46,7055,10.26,8212,10.338,18993,11.46,19065,7.188,19068,8.219,19069,8.219,19070,8.219,19071,8.219,19072,8.219,19073,8.219]],["title/classes/SubmissionItemResponseMapper.html",[0,0.232,3738,5.694]],["body/classes/SubmissionItemResponseMapper.html",[0,0.237,2,0.776,3,0.016,4,0.016,5,0.008,7,0.105,8,1.145,27,0.499,29,0.844,30,0.001,31,0.604,32,0.157,33,0.521,34,1.183,35,1.401,39,2.552,95,0.122,99,1.161,100,2.329,101,0.012,103,0.001,104,0.001,111,2.506,116,3.984,165,0.742,217,1.576,227,1.201,234,1.967,461,1.591,591,3.023,627,3.836,851,3.317,852,3.317,974,4.124,975,5.254,1016,3.328,1750,5.135,2841,8.078,3090,4.663,3109,9.745,3146,4.621,3147,4.488,3195,7.757,3264,4.216,3694,4.124,3698,5.505,3707,5.825,3715,4.953,3735,9.029,3738,10.712,3741,6.084,5183,6.774,6580,5.056,8212,9.785,8672,8.821,10933,5.825,14536,5.825,16029,6.43,17595,6.43,18988,11.555,19074,9.478,19075,9.478,19076,9.478,19077,6.956,19078,9.478,19079,9.478,19080,9.029,19081,10.781,19082,6.43,19083,6.956,19084,6.956,19085,9.478,19086,6.956,19087,6.956,19088,6.956,19089,6.956,19090,6.956,19091,6.956,19092,6.43]],["title/injectables/SubmissionItemService.html",[105,0.91,3573,5.493]],["body/injectables/SubmissionItemService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.102,8,1.125,12,4.266,26,2.693,27,0.472,29,0.897,30,0.001,31,0.641,32,0.169,33,0.554,34,1.81,35,1.288,36,2.66,39,2.865,40,4.496,49,2.668,83,3.255,95,0.159,99,1.132,101,0.011,103,0.001,104,0.001,105,1.246,107,1.634,111,1.359,112,2.894,127,0.849,138,4.068,187,0.981,215,2.164,216,1.722,217,1.491,221,2.462,227,0.966,231,5.898,234,2.063,305,2.653,347,2.317,503,4.157,558,3.253,591,2.947,592,3.072,734,3.862,806,2.76,883,4.513,1944,4.653,2531,3.664,2553,4.535,2627,2.849,2644,3.635,2838,7.197,2841,8.147,2925,5.582,3120,5.04,3121,8.666,3130,6.268,3264,7.276,3351,5.93,3402,9.444,3573,7.523,4114,5.477,4121,4.438,5591,5.93,8236,5.93,9058,6.01,15151,6.268,19093,12.005,19094,6.78,19095,6.78,19096,11.454,19097,6.78,19098,6.78,19099,9.314,19100,6.78,19101,6.78,19102,6.78,19103,6.78,19104,6.78,19105,6.78,19106,6.78,19107,9.314]],["title/injectables/SubmissionItemUc.html",[105,0.91,2718,5.694]],["body/injectables/SubmissionItemUc.html",[0,0.178,3,0.012,4,0.012,5,0.006,7,0.079,8,0.934,26,2.873,27,0.448,29,0.851,30,0.001,31,0.608,32,0.148,33,0.525,35,1.232,36,2.591,39,3.322,59,1.627,95,0.139,99,0.872,101,0.009,103,0,104,0,105,1.034,107,1.259,111,2.553,112,2.84,127,0.968,187,0.755,199,2.922,216,2.008,217,1.606,221,2.905,227,1.126,234,1.495,305,2.622,347,1.862,369,1.159,371,1.441,461,1.195,496,2.206,704,2.587,766,2.185,839,2.491,843,2.305,1410,2.948,1467,1.667,1798,6.819,1799,3.166,1814,5.307,1852,2.206,1884,6.359,1906,4.091,1939,3.65,1953,3.65,1982,3.131,1988,6.843,2356,4.833,2440,2.976,2557,5.752,2627,2.195,2718,6.475,2725,2.367,2783,4.634,2838,5.784,2841,6.313,2849,2.259,2850,3.131,3088,6.555,3090,3.981,3091,8.772,3097,9.214,3109,3.98,3115,8.553,3126,8.904,3129,4.22,3154,8.051,3264,6.166,3397,4.569,3572,7.563,3573,9.505,3708,3.883,3714,4.22,3722,8.509,3741,8.051,4151,4.22,4152,8.051,4154,4.091,4176,6.055,4183,6.763,4184,3.526,8236,4.569,8237,4.829,8243,4.829,8251,4.829,10932,4.569,18995,8.509,19092,4.829,19108,11.371,19109,5.224,19110,9.205,19111,10.174,19112,5.224,19113,5.224,19114,5.224,19115,5.224,19116,7.732,19117,5.224,19118,5.224,19119,8.509,19120,5.224,19121,5.224,19122,5.224,19123,5.224,19124,5.224,19125,5.224,19126,5.224,19127,5.224,19128,5.224,19129,5.224,19130,5.224,19131,5.224,19132,5.224,19133,5.224,19134,5.224,19135,5.224,19136,5.224]],["title/classes/SubmissionItemUrlParams.html",[0,0.232,3730,5.947]],["body/classes/SubmissionItemUrlParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,34,1.992,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,1000,4.767,2849,5.064,3195,7.266,3730,10.242,3795,5.666,7055,9.169,18993,10.242,19119,11.65,19137,9.657,19138,9.657]],["title/classes/SubmissionMapper.html",[0,0.232,19007,5.947]],["body/classes/SubmissionMapper.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,8,1.396,27,0.39,29,0.74,30,0.001,31,0.529,32,0.128,33,0.457,34,1.608,35,1.144,95,0.148,99,1.578,100,3.87,101,0.016,103,0.001,104,0.001,217,1.23,227,0.98,234,1.535,627,3.831,982,4.712,2849,5.77,12105,6.871,12304,7.027,12323,7.027,12506,7.636,12510,7.916,12518,7.916,17295,8.738,19007,10.109,19139,9.453,19140,11.558,19141,11.558,19142,9.453,19143,10.893,19144,8.268,19145,9.453,19146,8.268,19147,9.453]],["title/injectables/SubmissionRepo.html",[105,0.91,1934,5.181]],["body/injectables/SubmissionRepo.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.018,10,3.401,12,3.86,18,4.258,26,2.734,27,0.524,29,0.978,30,0.001,31,0.699,32,0.17,33,0.604,34,1,35,1.511,36,2.828,39,3.066,40,4.068,47,0.702,95,0.138,96,1.608,98,3.486,99,0.981,101,0.01,103,0,104,0,105,1.127,107,1.417,111,2.376,112,3.033,187,0.85,217,1.482,221,2.89,227,1.181,277,2.373,380,1.249,381,2.803,398,1.732,404,1.519,529,3.663,596,3.282,692,4.877,877,7.161,883,3.575,884,3.971,885,4.977,908,3.605,909,3.649,910,3.605,911,3.649,913,3.605,914,3.649,915,3.259,1646,3.288,1750,3.738,1852,2.483,1934,6.421,2394,3.486,2649,2.622,2849,5.278,3010,3.288,3106,3.318,3675,4.035,3720,5.559,4455,6.807,4460,7.058,5880,4.895,6476,3.694,6518,5.78,6782,4.48,12276,4.924,17677,5.435,19148,5.88,19149,8.427,19150,8.427,19151,8.427,19152,8.427,19153,5.88,19154,8.427,19155,5.88,19156,8.427,19157,5.88,19158,5.435,19159,8.427,19160,5.88,19161,5.88,19162,5.88,19163,8.427,19164,5.88,19165,5.88,19166,8.427,19167,5.88,19168,5.88,19169,5.88,19170,5.88]],["title/injectables/SubmissionRule.html",[105,0.91,1896,5.694]],["body/injectables/SubmissionRule.html",[0,0.181,3,0.013,4,0.013,5,0.006,7,0.08,8,0.948,27,0.501,29,0.952,30,0.001,31,0.68,32,0.169,33,0.588,35,1.433,95,0.141,101,0.009,103,0,104,0,105,1.049,107,1.284,111,2.681,116,3.567,127,0.667,187,0.77,199,3.882,214,1.68,215,1.701,216,1.451,217,1.49,227,1.228,234,0.865,305,1.518,347,2.395,371,2.163,380,2.182,461,3.204,806,2.169,1642,3.794,1750,3.48,1795,5.551,1798,7.376,1799,6.225,1813,5.586,1814,5.384,1823,7.106,1844,3.193,1861,4.755,1896,6.57,1897,9.565,2002,5.062,2006,4.868,2013,3.54,2849,6.195,3228,3.391,3385,5.212,3386,3.596,3389,5.134,3392,3.596,3393,5.295,12506,4.304,14256,4.925,19171,5.328,19172,11.452,19173,10.271,19174,10.271,19175,11.452,19176,10.271,19177,5.328,19178,7.845,19179,5.328,19180,7.845,19181,5.328,19182,7.845,19183,5.328,19184,5.328,19185,7.845,19186,5.328,19187,7.845,19188,5.328,19189,5.328,19190,5.328,19191,5.328,19192,7.845,19193,5.328,19194,7.845,19195,5.328,19196,5.328,19197,5.328,19198,7.845,19199,7.845]],["title/injectables/SubmissionService.html",[105,0.91,19200,5.493]],["body/injectables/SubmissionService.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,8,1.249,10,4.174,12,4.736,26,2.802,27,0.503,29,0.956,30,0.001,31,0.683,32,0.166,33,0.59,35,1.393,36,2.782,95,0.157,98,4.7,99,1.323,101,0.013,103,0.001,104,0.001,105,1.383,107,1.911,111,2.073,112,2.987,127,1.295,187,1.146,216,1.912,217,1.032,221,2.394,227,1.072,450,3.256,1358,5.046,1934,9.887,2849,5.473,3579,3.9,3580,3.228,3720,5.837,6298,9.412,19200,8.354,19201,7.928,19202,9.56,19203,7.928,19204,7.928,19205,10.342,19206,7.928,19207,10.342,19208,7.928,19209,6.208,19210,10.342,19211,7.928,19212,6.934,19213,7.928,19214,7.928,19215,7.928,19216,7.928]],["title/classes/SubmissionStatusListResponse.html",[0,0.232,19009,5.694]],["body/classes/SubmissionStatusListResponse.html",[0,0.372,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.451,29,0.677,30,0.001,31,0.484,32,0.163,33,0.418,34,2.04,47,0.855,55,1.861,95,0.111,101,0.018,103,0.001,104,0.001,127,1.369,145,2.188,163,4,165,0.856,347,2.211,364,1.574,375,4.567,376,1.977,467,3.483,618,3.534,1009,6.227,1011,4.366,1026,4.791,12105,8.716,12288,7.237,12304,8.913,12308,7.237,12323,8.913,12325,7.237,19009,9.154,19143,11.424,19144,10.487,19146,10.487,19217,7.989,19218,8.642,19219,8.642,19220,7.989,19221,7.989]],["title/classes/SubmissionStatusResponse.html",[0,0.232,19143,5.694]],["body/classes/SubmissionStatusResponse.html",[0,0.348,2,0.867,3,0.018,4,0.018,5,0.009,7,0.117,27,0.542,29,0.609,30,0.001,31,0.435,32,0.181,33,0.608,34,2.139,47,0.92,55,2.199,95,0.1,101,0.017,103,0.001,104,0.001,127,1.279,163,3.142,165,0.8,347,2.449,364,2.351,375,4.79,376,1.778,467,3.575,618,3.179,966,3.956,1009,4.429,1026,4.31,12105,9.141,12288,6.511,12304,9.348,12308,6.511,12323,9.348,12325,6.511,19009,6.511,19143,11.178,19144,10.999,19146,10.999,19217,7.187,19220,7.187,19221,7.187,19222,7.775,19223,7.775,19224,7.775,19225,7.775,19226,7.775,19227,7.775,19228,7.775]],["title/injectables/SubmissionUc.html",[105,0.91,19008,5.694]],["body/injectables/SubmissionUc.html",[0,0.241,3,0.017,4,0.017,5,0.009,7,0.107,8,1.158,10,3.871,26,2.906,27,0.481,29,0.913,30,0.001,31,0.653,32,0.158,33,0.564,35,1.317,36,2.057,39,2.582,95,0.15,99,1.181,101,0.012,103,0.001,104,0.001,105,1.283,107,1.706,111,2.443,112,2.769,127,1.201,187,1.024,216,1.773,217,1.672,221,2.699,227,1.209,284,3.825,369,1.571,461,3.092,766,2.961,843,3.123,1345,2.808,1801,4.242,1861,5.813,1884,6.945,1982,5.748,1984,5.543,2725,3.206,2849,5.73,3720,5.413,11225,6.543,12505,5.928,14301,8.389,19008,8.032,19200,10.15,19202,8.866,19209,8.518,19212,9.515,19229,7.078,19230,9.591,19231,7.078,19232,7.078,19233,7.078,19234,9.591,19235,7.078,19236,9.591,19237,7.078,19238,7.078,19239,11.661,19240,7.078,19241,7.078,19242,7.078,19243,6.543,19244,9.591,19245,7.078]],["title/classes/SubmissionUrlParams.html",[0,0.232,19000,5.947]],["body/classes/SubmissionUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2849,5.109,3795,5.749,19000,10.332,19212,11.092,19246,9.798,19247,9.798]],["title/classes/SubmissionsResponse.html",[0,0.232,3735,5.694]],["body/classes/SubmissionsResponse.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,27,0.5,29,0.693,30,0.001,31,0.496,32,0.178,33,0.428,95,0.156,101,0.015,103,0.001,104,0.001,127,1.109,145,2.81,165,0.869,364,2.021,376,2.024,461,2.024,467,3.18,1011,5.607,2849,3.828,3090,5.862,3735,9.293,7055,9.952,8212,10.948,8434,6.931,19080,11.351,19082,12.1,19248,8.851,19249,11.097,19250,8.851,19251,8.851,19252,8.851,19253,8.851,19254,8.851,19255,8.851]],["title/interfaces/SuccessfulRes.html",[334,0.731,11332,5.055]],["body/interfaces/SuccessfulRes.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.96,55,2.651,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,2.489,564,3.355,692,3.419,1178,8.299,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,5.316,11324,6.803,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,8.423,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,6.803]],["title/classes/SuccessfulResponse.html",[0,0.232,19256,5.947]],["body/classes/SuccessfulResponse.html",[0,0.335,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.488,29,0.771,30,0.001,31,0.551,32,0.161,33,0.476,95,0.126,101,0.016,103,0.001,104,0.001,127,1.233,165,0.928,347,2.729,364,1.793,376,2.252,467,3.334,13791,11.3,19256,10.362,19257,9.845,19258,11.847,19259,9.845,19260,9.845,19261,9.845]],["title/injectables/SymetricKeyEncryptionService.html",[105,0.91,8262,5.947]],["body/injectables/SymetricKeyEncryptionService.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.12,8,1.252,27,0.536,29,0.903,30,0.001,31,0.646,32,0.157,33,0.558,35,1.255,47,0.994,59,2.479,95,0.157,101,0.013,103,0.001,104,0.001,105,1.387,107,1.919,111,1.596,116,4.046,127,0.997,163,3.76,187,1.151,214,2.509,215,2.54,227,1.347,960,5.462,1467,2.54,1738,5.785,2035,7.021,2356,4.259,2357,5.565,2848,5.005,2969,5.372,3814,7.708,6528,5.668,7137,8.383,8261,7.357,8262,9.069,9285,7.537,11949,9.069,11950,8.683,11951,9.585,11953,9.585,12660,7.357,14557,6.665,18936,7.357,18939,7.357,19262,7.959,19263,7.959,19264,7.959,19265,7.959,19266,11.532,19267,11.532,19268,7.959,19269,7.959]],["title/modules/SystemApiModule.html",[425,1.812,18506,5.493]],["body/modules/SystemApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.351,425,3.31,427,3.375,428,3.631,429,3.738,430,3.723,431,3.707,432,4.571,433,3.531,442,4.592,443,3.661,444,3.573,446,5.87,447,4.757,449,4.553,1548,9.457,18506,11.185,19270,9.343,19271,9.343,19272,9.343,19273,11.336,19274,9.343,19275,10.864,19276,9.343,19277,9.343,19278,9.343]],["title/controllers/SystemController.html",[481,2.611,19275,5.947]],["body/controllers/SystemController.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.089,27,0.372,29,0.706,30,0.001,31,0.505,32,0.166,33,0.436,35,1.479,36,2.406,72,5.084,95,0.167,101,0.011,103,0.001,104,0.001,112,2.694,163,3.454,185,3.502,187,0.935,215,2.063,216,1.195,217,1.46,221,2.086,227,0.934,264,2.717,355,4.51,364,1.641,376,1.479,379,2.543,447,2.68,481,2.482,483,3.083,498,7.702,529,2.81,538,4.061,553,6.288,554,6.518,555,3.361,563,5.401,564,3.304,694,6.065,766,2.704,890,9.816,1016,2.27,1433,5.525,1583,5.898,2145,7.051,2461,6.802,2537,7.345,3090,3.898,3104,5.346,3709,4.295,4466,6.518,4661,4.756,10293,7.154,11217,7.345,15157,7.882,16092,8.788,17060,9.398,17063,9.065,19273,8.688,19275,7.882,19279,6.465,19280,9.012,19281,6.465,19282,9.816,19283,6.465,19284,10.374,19285,6.465,19286,6.465,19287,11.222,19288,9.012,19289,6.465,19290,6.465,19291,6.465,19292,6.465,19293,6.465,19294,6.465,19295,8.331,19296,5.976,19297,6.465,19298,5.976,19299,5.654,19300,6.465,19301,6.465,19302,6.465,19303,6.465,19304,6.465,19305,6.465,19306,6.465,19307,6.465,19308,6.465,19309,6.465,19310,6.465,19311,6.465,19312,6.465]],["title/classes/SystemDto.html",[0,0.232,11217,4.45]],["body/classes/SystemDto.html",[0,0.259,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,26,2.392,27,0.56,29,0.596,30,0.001,31,0.426,32,0.188,33,0.681,34,1.92,47,0.968,95,0.145,99,1.271,101,0.013,103,0.001,104,0.001,127,0.954,150,3.907,165,0.789,347,2.037,618,3.113,2578,3.394,3104,3.449,5698,5.741,5717,4.846,6196,4.115,11217,8.174,11429,7.281,11828,5.659,12329,7.497,12332,7.09,12333,7.884,12334,7.386,12335,5.058,12336,5.058,12421,5.8,12423,5.8,12429,5.8,12431,5.8,12676,8.598,13778,5.421,17066,9.309,17073,6.376,17074,6.15,17075,6.376,19313,7.613,19314,10.432,19315,10.07,19316,7.613,19317,7.613,19318,7.613,19319,7.613,19320,7.613,19321,7.613,19322,7.613,19323,7.613,19324,6.659,19325,6.376,19326,7.038,19327,7.038,19328,7.038,19329,7.613,19330,7.038]],["title/entities/SystemEntity.html",[380,1.445,8469,3.675]],["body/entities/SystemEntity.html",[0,0.31,3,0.01,4,0.01,5,0.005,7,0.064,26,1.39,27,0.478,30,0.001,32,0.169,33,0.621,47,1.017,83,2.465,95,0.117,96,1.15,101,0.016,103,0,104,0,150,3.416,165,0.513,208,1.571,216,0.777,240,4.448,277,1.697,334,0.452,347,0.85,359,2.286,364,2.113,369,3.043,370,4.412,371,1.808,379,0.953,380,1.712,381,1.399,386,6.432,398,1.239,399,2.601,400,1.855,402,1.743,404,0.758,405,1.12,406,1.368,496,1.775,722,1.875,775,2.578,783,2.548,1031,2.525,1141,2.578,1498,2.548,1581,2.994,1613,2.609,2072,2.713,2097,3.126,2574,3.383,2578,1.875,4271,3.572,4309,4.668,4333,2.52,4588,3.383,5530,3.268,5698,4.63,5717,2.676,5718,2.886,6196,3.543,7136,2.642,7222,2.838,7278,3.973,8469,3.543,8805,2.838,9787,2.752,10293,2.352,11429,7.485,11510,3.126,11511,3.126,11512,3.126,11513,3.203,11557,2.886,11560,2.793,11562,2.886,11565,2.886,11568,2.578,11572,2.838,11613,2.752,12035,3.203,12219,2.994,12327,4.995,12328,3.396,12329,6.045,12330,8.622,12331,8.105,12332,5.717,12333,6.357,12334,5.956,12335,2.793,12336,2.793,12337,3.396,12338,4.499,12339,4.873,12340,3.292,12341,4.873,12342,3.203,12343,3.203,12344,3.203,12345,3.203,12346,3.292,12347,3.203,12348,3.203,12349,3.203,12350,3.292,12351,4.873,12352,3.292,12353,3.203,12354,3.292,12355,3.203,12356,3.203,12357,3.203,12358,3.292,12359,4.499,12360,3.396,12361,3.396,12362,3.396,12363,3.396,12364,3.396,12365,3.396,12366,3.396,12367,3.396,12368,3.396,12369,3.396,12370,3.396,12371,3.396,12372,3.292,12373,3.396,12374,3.396,12375,3.396,12376,3.396,12377,3.396,12378,3.396,12379,3.396,12380,3.396,12381,3.396,12382,3.396,12383,3.396,12384,3.396,12385,3.396,12386,3.396,12387,3.396,12388,3.396,12389,3.396,12390,3.126,12391,3.396,12392,3.396,12393,3.396,12394,3.396,12395,3.396,12396,3.396,12397,3.396,12398,3.396,12399,3.396,12400,3.396,12401,3.396,12402,3.396,12403,3.396,12404,3.396,12405,3.203,12406,3.396,12407,3.126,12408,3.292,12409,3.203,12410,3.292,12411,3.203,12412,3.203,12413,3.292,12414,3.203,12415,3.292,12416,3.203,12417,3.056,12418,3.056,12419,3.056,12420,3.126,12421,3.203,12422,3.396,12423,3.203,12424,3.396,12425,3.396,12426,3.396,12427,3.396,12428,3.396,12429,3.203,12430,3.292,12431,3.203,12432,3.292,19331,4.205,19332,4.205,19333,4.205,19334,4.205,19335,4.205,19336,4.205,19337,4.205,19338,4.205,19339,4.205,19340,4.205,19341,4.205]],["title/classes/SystemFactory.html",[0,0.232,12822,5.947]],["body/classes/SystemFactory.html",[0,0.149,2,0.487,3,0.01,4,0.01,5,0.005,7,0.066,8,0.815,27,0.533,29,1.004,30,0.001,31,0.683,32,0.178,33,0.59,34,1.579,35,1.42,47,0.481,55,2.383,59,3.305,95,0.119,99,0.728,101,0.011,103,0,104,0,127,0.547,138,2.948,144,3.144,148,1.343,150,2.336,165,0.529,185,4.876,216,1.248,217,1.208,227,0.963,234,1.339,277,1.761,319,3.416,359,2.353,366,2.441,369,0.968,379,1.869,380,2.133,381,2.245,404,1.216,538,3.04,596,3.827,627,2.071,660,7.104,661,4.46,662,5.239,665,3.808,666,5.239,667,5.561,668,3.808,669,3.808,670,3.808,671,3.741,672,4.227,673,4.656,674,6.282,675,5.564,676,6.925,677,2.486,682,2.463,683,3.808,684,2.486,685,4.899,686,5.059,687,3.957,688,4.757,689,3.774,690,2.463,691,2.321,692,3.965,693,2.398,694,2.359,695,2.463,696,4.826,697,2.486,698,4.573,699,2.463,700,7.295,701,4.041,702,6.451,703,2.486,704,4.085,705,2.463,706,2.486,707,2.463,708,2.486,709,2.463,710,2.778,711,2.588,712,2.463,713,5.883,714,2.486,715,2.463,716,3.808,717,3.561,718,3.808,719,2.486,720,2.378,721,2.359,722,1.946,723,2.463,724,2.463,725,2.463,726,2.486,727,2.486,728,1.669,729,2.463,730,2.486,731,2.666,732,2.463,733,2.486,735,2.535,736,2.588,737,4.945,775,2.676,853,2.252,1142,2.021,1613,2.708,1618,2.535,2072,2.816,3104,3.057,3580,2.747,4588,2.252,5442,3.844,5530,3.363,5698,2.22,7278,4.09,7280,4.905,8469,2.359,8716,7.499,8805,2.945,11429,5.323,11557,2.995,11560,2.899,11561,3.655,11562,2.995,11565,2.995,11568,2.676,11572,2.945,11613,2.856,12327,3.325,12329,2.899,12330,5.997,12331,5.764,12332,2.742,12333,3.049,12334,2.856,12335,2.899,12336,2.899,12359,6.371,12417,3.172,12418,3.172,12419,3.172,12420,3.244,12822,7.216,13383,3.525,14546,4.034,16297,4.034,19342,4.364,19343,6.238,19344,8.582,19345,8.582,19346,6.748,19347,4.364,19348,6.748,19349,4.364,19350,4.364,19351,4.364,19352,4.364,19353,4.364,19354,4.364,19355,4.364,19356,4.364,19357,4.364,19358,4.364,19359,4.364,19360,4.364,19361,4.364,19362,4.364,19363,4.364,19364,4.364,19365,4.364,19366,4.364,19367,4.364,19368,4.364]],["title/classes/SystemFilterParams.html",[0,0.232,19282,5.947]],["body/classes/SystemFilterParams.html",[0,0.382,2,1.002,3,0.021,4,0.021,5,0.011,7,0.136,27,0.462,30,0.001,32,0.185,33,0.618,95,0.164,99,1.5,101,0.015,103,0.001,104,0.001,154,4.117,165,0.878,347,2.266,364,2.041,367,5.343,373,6.007,374,2.869,375,4.65,376,2.056,377,7.444,379,2.539,469,3.946,471,4.948,1044,4.312,1403,6.211,3104,4.072,5442,6.383,10293,6.267,10691,8.329,19282,9.8,19369,8.989,19370,11.285,19371,8.989,19372,8.989,19373,9.559,19374,8.989,19375,8.989,19376,8.989]],["title/classes/SystemIdParams.html",[0,0.232,16092,5.324]],["body/classes/SystemIdParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,47,0.84,48,5.963,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,478,6.943,480,9.013,1000,4.795,3104,5.336,3795,5.721,16092,9.223,19377,11.778]],["title/classes/SystemIdParams-1.html",[0,0.193,905,2.354,16092,4.427]],["body/classes/SystemIdParams-1.html",[0,0.406,2,1.111,3,0.024,4,0.024,5,0.012,7,0.151,26,2.708,27,0.411,30,0.001,32,0.135,48,6.02,95,0.164,99,1.663,101,0.017,103,0.001,104,0.001,165,0.935,364,1.815,374,3.181,376,2.28,467,3.131,478,7.098,1000,4.859,5806,7.245,5807,8.051,16092,9.346,19378,11.935]],["title/classes/SystemMapper.html",[0,0.232,19379,5.947]],["body/classes/SystemMapper.html",[0,0.258,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.464,29,0.881,30,0.001,31,0.63,32,0.163,33,0.544,34,1.288,35,1.362,95,0.145,99,1.263,101,0.013,103,0.001,104,0.001,145,3.244,150,2.621,227,1.242,234,1.629,277,3.055,380,1.609,381,2.518,627,4.121,1613,4.697,2408,5.289,4369,4.885,4588,3.907,5530,3.773,5698,3.852,5894,6.998,7278,4.588,8469,7.064,8805,5.109,9068,6.621,11217,8.385,11429,8.433,11510,5.627,11511,5.627,11512,5.627,11513,5.768,11557,5.195,11560,5.029,11562,5.195,11565,5.195,11568,4.641,11572,5.109,12329,5.029,12332,4.756,12333,5.289,12340,5.928,12342,5.768,12344,5.768,12346,5.928,12350,5.928,12352,5.928,12354,5.928,12356,5.768,12358,5.928,12359,5.195,12676,9.129,16213,5.768,17517,8.775,17518,8.402,17522,8.402,17526,6.621,19314,6.998,19324,6.621,19325,6.34,19379,8.775,19380,7.57,19381,10.033,19382,9.275,19383,7.57,19384,7.57,19385,10.033,19386,7.57,19387,7.57,19388,10.033,19389,7.57,19390,7.57,19391,7.57,19392,7.57]],["title/modules/SystemModule.html",[425,1.812,1548,4.751]],["body/modules/SystemModule.html",[0,0.292,3,0.02,4,0.02,5,0.01,30,0.001,95,0.167,101,0.014,103,0.001,104,0.001,187,1.242,425,3.185,427,3.102,428,3.337,429,3.436,430,3.421,431,3.407,432,4.399,433,4.518,442,4.356,443,3.364,444,3.284,449,4.319,450,3.527,802,6.242,817,10.379,823,9.634,1548,9.873,11196,9.981,12000,6.724,13332,11.738,13376,7.938,14777,7.51,19393,8.586,19394,8.586,19395,8.586,19396,8.586,19397,8.586,19398,7.938,19399,8.586]],["title/classes/SystemOidcMapper.html",[0,0.232,19400,5.947]],["body/classes/SystemOidcMapper.html",[0,0.268,2,0.877,3,0.019,4,0.019,5,0.009,7,0.119,8,1.243,27,0.473,29,0.898,30,0.001,31,0.642,32,0.156,33,0.554,35,1.388,47,0.818,48,4.848,95,0.132,99,1.313,101,0.013,103,0.001,104,0.001,145,3.08,227,1.261,234,1.277,380,2.436,381,3.423,627,4.152,2072,5.075,5530,3.921,7278,4.767,8469,7.13,12331,9.217,12359,5.398,12405,5.993,12407,5.847,12409,5.993,12411,5.993,12412,5.993,12414,5.993,12416,5.993,12417,5.718,12418,5.718,12419,5.718,12420,5.847,13343,10.596,16246,7.271,17517,8.999,17518,8.617,17522,8.617,17526,6.88,19325,6.587,19382,9.511,19400,8.999,19401,12.163,19402,7.866,19403,10.289,19404,7.866,19405,7.866,19406,10.289,19407,7.866,19408,7.866,19409,10.289,19410,7.866,19411,7.866,19412,7.866,19413,7.866]],["title/injectables/SystemOidcService.html",[105,0.91,13332,5.694]],["body/injectables/SystemOidcService.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.123,8,1.274,12,4.829,26,2.616,27,0.481,29,0.826,30,0.001,31,0.591,32,0.143,33,0.51,34,1.794,35,1.276,36,2.646,40,5.09,95,0.168,99,1.363,100,2.735,101,0.014,103,0.001,104,0.001,105,1.411,107,1.969,112,2.883,127,1.023,187,1.181,215,2.607,216,1.51,217,1.52,221,2.441,227,1.093,234,1.326,305,2.327,450,3.355,510,5.938,558,3.919,823,9.509,3104,4.777,8469,4.415,13332,8.831,13343,6.397,13798,7.145,14949,9.663,19373,6.397,19400,7.145,19414,12.339,19415,8.169,19416,8.169,19417,8.169,19418,8.169,19419,8.169,19420,8.169,19421,7.551,19422,11.677,19423,8.169,19424,7.145,19425,7.551,19426,8.169]],["title/injectables/SystemRepo.html",[105,0.91,823,4.943]],["body/injectables/SystemRepo.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.104,8,1.14,10,3.807,12,4.321,18,4.767,26,2,27,0.526,29,0.947,30,0.001,31,0.677,32,0.179,33,0.584,34,1.175,35,1.51,36,2.738,40,3.335,49,3.712,95,0.148,99,1.153,101,0.012,103,0.001,104,0.001,105,1.262,107,1.665,112,2.99,187,0.999,217,0.899,227,1.114,234,1.532,277,3.807,305,1.968,307,4.34,309,6.179,319,2.065,380,1.468,381,3.138,404,1.7,596,3.521,692,5.028,731,2.729,823,6.858,877,7.492,883,4.002,884,4.445,885,5.428,908,4.236,909,4.287,910,4.236,911,4.287,912,4.919,913,4.236,914,4.287,915,3.83,919,5.263,953,4.521,1187,3.294,1188,3.255,1189,3.255,1190,3.443,1267,4.589,1268,4.236,1345,2.741,5209,7.137,5882,4.826,8469,5.099,14949,9.04,19373,9.04,19427,6.908,19428,8.721,19429,6.908,19430,8.721,19431,6.908,19432,6.908,19433,8.251,19434,6.908,19435,6.908,19436,6.908,19437,6.386,19438,6.908,19439,6.908,19440,6.908,19441,6.908,19442,9.434]],["title/classes/SystemResponseMapper.html",[0,0.232,19299,5.947]],["body/classes/SystemResponseMapper.html",[0,0.244,2,0.801,3,0.017,4,0.017,5,0.009,7,0.108,8,1.17,27,0.452,29,0.858,30,0.001,31,0.614,32,0.159,33,0.53,34,1.221,35,1.326,95,0.157,101,0.012,103,0.001,104,0.001,145,1.818,217,1.526,227,1.136,234,1.779,277,2.897,627,4.077,974,4.257,1016,2.52,1613,4.455,2597,5.799,3104,5.313,4466,4.17,4588,3.705,5530,3.578,5698,3.653,7278,4.351,8674,5.799,8805,4.845,9914,5.337,10293,4.015,11115,6.636,11217,8.583,11429,4.632,11557,4.927,11560,4.769,11562,4.927,11565,4.927,11568,4.402,11572,4.845,11828,5.337,12329,4.769,12359,4.927,12676,9.33,13778,5.112,14353,6.279,15653,6.636,15655,6.636,15656,6.636,15657,6.636,15658,6.636,15659,6.636,15660,6.636,15661,6.636,15662,6.636,15663,6.636,15664,6.636,15665,6.636,15666,10.8,16213,5.47,17060,9.822,17063,10.417,17064,6.636,17072,6.636,17073,6.012,17074,5.799,17075,6.012,19295,8.951,19296,6.636,19299,8.469,19324,6.279,19325,6.012,19443,11.729,19444,9.683,19445,9.683,19446,9.683,19447,9.683,19448,9.683,19449,9.683,19450,7.179,19451,7.179,19452,9.683,19453,7.179,19454,9.683,19455,7.179,19456,6.636]],["title/classes/SystemScope.html",[0,0.232,19433,5.947]],["body/classes/SystemScope.html",[0,0.259,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,8,1.216,27,0.548,29,0.789,30,0.001,31,0.564,32,0.17,33,0.487,35,1.512,95,0.129,99,1.271,101,0.013,103,0.001,104,0.001,111,2.572,144,2.094,148,2.343,165,0.789,167,4.152,227,1.17,277,5.479,319,2.275,347,2.282,404,1.815,529,3.309,596,3.81,2394,6.691,5991,6.797,5992,6.797,5993,6.797,5998,6.797,5999,6.797,6000,5.225,6001,5.138,6002,5.225,6003,5.225,6012,5.138,6013,6.797,6014,5.225,6015,5.138,6016,5.225,6017,5.138,6018,7.616,8469,4.115,10208,6.15,10226,9.87,11429,4.912,12330,5.534,12331,5.319,14271,7.038,14272,7.038,19343,11.101,19344,11.101,19345,11.101,19433,11.621,19457,12.008,19458,7.613]],["title/injectables/SystemService.html",[105,0.91,11196,4.842]],["body/injectables/SystemService.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,8,0.98,12,3.716,18,4.099,26,2.226,27,0.46,29,0.874,30,0.001,31,0.625,32,0.176,33,0.539,34,1.38,35,1.271,36,2.639,40,3.916,59,1.738,95,0.154,99,0.931,101,0.009,103,0,104,0,105,1.085,107,1.345,111,2.236,112,2.878,127,1.016,150,2.809,187,0.807,216,1.5,217,1.244,221,2.989,227,1.246,234,1.552,305,1.589,450,2.291,510,4.055,558,2.676,802,4.055,803,3.462,823,8.461,3104,5.442,5698,4.128,8469,6.782,10293,6.51,11196,5.778,11217,7.301,11429,3.6,11828,7.108,11831,7.5,12000,4.368,12329,5.39,12332,5.098,12333,5.668,12659,8.221,12661,4.672,13778,5.778,13798,4.879,14379,8.839,16213,4.25,17073,4.672,17074,7.724,17075,8.008,19326,7.5,19327,7.5,19328,7.5,19373,8.221,19379,4.879,19421,5.157,19424,4.879,19425,5.157,19437,7.5,19459,5.579,19460,8.113,19461,8.113,19462,5.579,19463,5.579,19464,8.113,19465,5.579,19466,8.113,19467,5.579,19468,8.113,19469,5.579,19470,5.579,19471,5.579,19472,8.113,19473,7.5,19474,5.579,19475,8.113,19476,5.579,19477,5.579,19478,5.579,19479,5.579,19480,5.579,19481,5.579,19482,8.113,19483,8.113,19484,8.113,19485,8.113,19486,8.113,19487,8.113,19488,8.113,19489,5.579,19490,5.579,19491,5.157,19492,8.113,19493,5.579,19494,9.562,19495,5.579,19496,5.579,19497,5.579,19498,5.579,19499,5.579,19500,5.579]],["title/injectables/SystemUc.html",[105,0.91,19273,5.694]],["body/injectables/SystemUc.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.117,8,1.232,12,4.671,26,2.565,27,0.47,29,0.892,30,0.001,31,0.638,32,0.164,33,0.551,34,1.735,35,1.234,36,2.594,40,4.923,59,2.417,95,0.161,99,1.295,101,0.013,103,0.001,104,0.001,105,1.364,107,1.87,112,2.843,127,0.972,144,2.134,187,1.122,215,2.477,216,1.435,217,1.01,221,2.636,227,1.057,234,1.26,305,2.211,319,2.319,371,3.336,510,5.641,558,3.723,3104,4.62,8469,4.194,10293,7.029,11196,9.186,11217,7.918,16213,5.912,16852,7.173,19273,8.54,19330,9.427,19370,11.184,19373,6.076,19398,7.173,19424,6.787,19428,9.427,19430,9.427,19491,7.173,19501,7.76,19502,7.76,19503,12.099,19504,7.76,19505,7.76,19506,7.173,19507,7.76,19508,7.76]],["title/classes/TargetInfoMapper.html",[0,0.232,15034,5.947]],["body/classes/TargetInfoMapper.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,29,0.749,30,0.001,31,0.652,32,0.13,33,0.463,34,1.627,35,1.158,95,0.149,99,1.596,100,3.898,101,0.016,103,0.001,104,0.001,217,1.245,227,0.992,234,1.553,627,3.851,975,6.454,2702,4.31,4353,8.01,6849,9.708,15005,10.549,15034,10.182,18294,8.366,18296,8.366,19509,11.642,19510,11.642,19511,9.565,19512,9.565,19513,9.565]],["title/classes/TargetInfoResponse.html",[0,0.232,15005,5.493]],["body/classes/TargetInfoResponse.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.501,29,0.696,30,0.001,31,0.768,32,0.165,33,0.43,34,2.308,47,0.908,95,0.114,101,0.015,103,0.001,104,0.001,127,1.394,165,0.872,364,2.027,376,2.033,379,2.753,380,2.705,467,3.187,475,4.345,618,3.635,966,4.523,1013,4.071,2095,3.527,2213,6.961,2702,5.736,2883,5.818,2884,5.918,2885,5.918,4349,7.775,15005,10.587,18301,7.775,18302,8.218,19514,12.729]],["title/entities/Task.html",[380,1.445,2649,3.032]],["body/entities/Task.html",[0,0.165,3,0.007,4,0.007,5,0.003,7,0.167,26,1.725,27,0.473,30,0.001,31,0.35,32,0.166,33,0.535,34,0.824,47,0.726,55,1.044,83,2.859,95,0.145,96,0.792,101,0.014,103,0,104,0,111,2.398,116,3.444,144,1.719,145,2.06,148,2.249,165,0.689,167,1.065,187,0.418,188,3.62,192,1.862,214,0.912,217,1.75,227,1.315,234,1.708,240,3.578,247,1.898,305,1.38,319,1.868,334,0.521,347,2.281,364,2.091,369,2.622,370,3.228,371,3.049,379,1.416,380,1.029,381,0.963,386,4.163,398,0.853,399,1.922,400,1.277,402,1.199,404,0.521,405,0.771,406,0.941,461,2.666,564,3.426,687,1.234,728,1.107,738,1.504,783,1.754,806,1.973,844,3.329,905,3.043,957,1.604,1019,1.681,1107,2.022,1345,1.148,1353,1.397,1583,1.894,1750,1.284,1843,1.372,1852,1.222,1865,2.207,1948,2.904,2037,1.698,2095,1.148,2487,1.842,2632,4.844,2633,3.903,2636,3.983,2640,1.577,2645,3.084,2646,1.698,2647,3.298,2648,2.022,2649,4.818,2659,2.928,2663,5.325,2849,3.519,3106,1.633,3259,3.225,3262,3.745,3339,4.416,3429,1.842,3451,4.366,3720,5.749,3721,2.424,3752,4.032,3771,5.405,3775,3.27,3776,5.684,3777,4.783,3778,5.76,3779,6.267,3780,3.27,3791,5.904,4052,1.698,4205,1.633,4217,1.818,4262,2.424,4281,1.264,4882,1.818,4883,1.867,4989,2.219,5017,2.936,6469,4.152,6497,2.531,6502,2.675,6508,1.796,6511,2.936,6522,3.044,6523,1.618,6535,2.266,6539,2.061,6541,1.953,6542,1.894,6543,1.796,6544,1.734,6560,1.842,6748,2.531,6757,1.796,6758,1.923,6831,3.794,6854,3.378,6864,1.867,6869,2.151,7638,2.675,7935,5.602,8091,2.104,9603,1.842,11044,2.022,11894,1.986,11914,1.986,12048,2.338,12284,2.338,12304,5.433,12305,2.338,12323,5.433,12324,2.338,12435,4.543,12438,3.45,12439,4.646,12440,4.543,12441,2.531,12443,2.531,12444,2.424,12445,2.531,12446,2.531,12447,2.531,12448,2.531,12449,2.531,12450,5.466,12451,5.048,12452,4.894,12453,2.531,12454,4.238,12455,2.424,12456,4.238,12457,2.531,12458,2.531,12459,2.424,12460,7.697,12461,2.531,12462,2.205,12463,2.338,12464,4.238,12465,6.392,12466,3.914,12467,6.392,12468,2.531,12469,2.531,12470,2.531,12471,4.238,12472,2.531,12473,2.531,12474,2.531,12475,2.531,12476,2.531,12477,2.531,12478,2.531,12479,2.531,12480,2.531,12481,2.531,12482,2.531,12483,2.531,12484,4.238,12485,2.531,12486,2.531,12487,2.205,12488,2.531,12489,2.531,12490,2.531,12491,2.531,12492,2.531,12493,2.531,12494,4.238,12495,2.531,12496,2.531,12497,4.238,12498,2.531,12499,4.238,12500,2.266,12501,2.424,12502,2.531,12503,6.392,12504,5.466,12505,4.057,12506,2.338,12507,5.466,12508,2.531,12509,5.466,12510,2.424,12511,4.238,12512,2.531,12513,2.531,12514,2.531,12515,5.466,12516,2.531,12517,4.238,12518,2.424,12519,2.531,12520,2.531,12521,6.392,12522,2.531,12523,2.531,12524,2.531,12525,2.531,12526,2.531,12527,2.531,12528,2.531,12529,4.238,12530,2.531,12531,2.531,12532,4.238,12533,2.531,12534,2.531,12535,2.531,12536,2.531,12537,2.424,12538,2.531,12539,6.392,12540,2.531,12541,2.531,12542,2.531,12543,2.531,12544,2.531,12545,2.531,12546,2.531,12547,2.531,12548,2.531,12549,2.531,19515,2.894,19516,2.894,19517,2.894,19518,2.894,19519,2.894,19520,2.894,19521,2.894,19522,2.894,19523,2.894,19524,2.894,19525,2.894,19526,2.894,19527,2.894,19528,2.894,19529,2.894]],["title/modules/TaskApiModule.html",[425,1.812,18507,5.493]],["body/modules/TaskApiModule.html",[0,0.268,3,0.019,4,0.019,5,0.01,30,0.001,95,0.169,101,0.013,103,0.001,104,0.001,187,1.14,425,3.058,427,2.847,428,3.063,429,3.153,430,3.14,431,3.127,432,4.223,433,2.979,442,4.122,443,3.088,444,3.014,446,4.952,447,4.27,449,4.087,450,3.237,481,3.026,1878,7.002,1930,7.852,1931,8.479,1935,9.051,2725,3.57,2727,3.781,3009,4.777,6338,9.418,6342,7.285,13867,9.631,18507,11.546,18997,10.039,19008,10.85,19530,7.881,19531,7.881,19532,7.881,19533,10.85,19534,10.85,19535,7.881,19536,10.039,19537,7.881,19538,7.881]],["title/entities/TaskBoardElement.html",[380,1.445,2660,5.493]],["body/entities/TaskBoardElement.html",[0,0.305,3,0.021,4,0.021,5,0.011,7,0.135,27,0.37,30,0.001,32,0.122,95,0.157,96,3.336,101,0.015,103,0.001,104,0.001,165,0.876,364,1.634,369,2.483,370,4.017,380,2.378,381,2.983,398,2.642,404,1.616,405,2.39,617,4.972,1188,4.226,1415,6.86,1865,4.085,1959,4.888,2577,5.062,2628,8.762,2649,5.693,2650,5.565,2651,7.968,2653,7.511,2660,9.038,2702,5.754,3001,6.833,3037,9.37,3584,6.053,4989,4.108,4990,7.844,5057,6.667,6434,6.266,6884,7.023,6885,7.323,6886,6.833,6887,6.52,12277,9.786,14135,8.291,19539,11.189,19540,8.969]],["title/controllers/TaskController.html",[481,2.611,19536,5.947]],["body/controllers/TaskController.html",[0,0.156,3,0.011,4,0.011,5,0.006,7,0.069,8,0.844,10,3.425,27,0.478,29,0.909,30,0.001,31,0.65,32,0.158,33,0.561,35,1.404,36,2.794,56,3.352,70,3.46,95,0.163,100,2.842,101,0.008,103,0,104,0,111,1.906,112,2.996,144,1.256,185,3.298,187,0.66,206,2.324,215,1.458,216,1.292,217,1.649,221,2.603,227,1.203,234,0.741,264,3.567,319,1.365,364,2.048,369,1.551,371,2.34,376,1.045,447,1.893,469,2.005,481,1.753,483,2.178,491,6.71,504,2.989,513,6.971,529,4.132,543,3.555,552,2.947,555,2.374,556,2.429,558,2.191,561,2.448,805,3.689,1008,3.777,1016,3.794,1028,8.477,1733,3.689,1734,3.395,1735,3.994,1750,4.217,2649,3.784,2908,8.076,2929,2.627,2930,2.448,2965,6.856,2992,2.947,3009,2.768,3010,2.554,3743,4.1,5055,2.627,6149,3.576,6386,3.689,6395,7.962,6401,4.222,6612,7.676,7935,6.052,12248,3.134,14138,3.825,14144,3.825,14949,6.646,14955,4.222,17700,3.825,17701,4.222,17715,3.994,17717,3.994,17827,6.112,19004,10.914,19533,7.108,19534,7.108,19536,6.112,19541,4.567,19542,7.846,19543,8.487,19544,6.988,19545,7.846,19546,4.567,19547,4.567,19548,4.567,19549,6.988,19550,4.567,19551,4.567,19552,4.567,19553,6.988,19554,4.567,19555,4.567,19556,4.567,19557,4.567,19558,6.988,19559,4.567,19560,4.567,19561,6.988,19562,4.567,19563,4.567,19564,6.988,19565,4.567,19566,3.994,19567,4.567,19568,4.567,19569,3.825,19570,3.689,19571,4.567,19572,4.567,19573,4.567,19574,6.988,19575,4.567,19576,4.567,19577,4.567,19578,4.567,19579,4.567,19580,9.508,19581,4.567,19582,4.567,19583,6.988,19584,10.247,19585,4.567,19586,4.567,19587,4.567,19588,4.567,19589,4.567,19590,4.567]],["title/classes/TaskCopyApiParams.html",[0,0.232,6395,5.694]],["body/classes/TaskCopyApiParams.html",[0,0.369,2,0.949,3,0.02,4,0.02,5,0.01,7,0.129,27,0.446,30,0.001,32,0.147,33,0.606,34,2.132,47,0.894,95,0.139,100,3.626,101,0.014,103,0.001,104,0.001,165,0.848,188,3.999,364,1.972,374,2.717,375,4.536,376,1.947,379,2.932,471,4.827,475,5.293,1000,4.848,1582,9.813,2524,6.354,2633,5.712,2649,5.896,2659,5.073,2884,6.665,2885,6.665,3339,6.289,5017,7.217,6157,10.961,6395,9.068,7034,8.479,10685,9.471,14148,7.87,14149,7.87,19591,9.972,19592,8.514]],["title/injectables/TaskCopyService.html",[105,0.91,2971,5.324]],["body/injectables/TaskCopyService.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.949,26,1.665,27,0.452,29,0.858,30,0.001,31,0.642,32,0.171,33,0.53,35,1.244,36,1.684,47,0.38,95,0.152,99,0.89,101,0.009,103,0,104,0,105,1.05,107,1.286,111,2.595,112,2.734,127,0.984,145,2.901,185,3.994,187,0.771,188,4.232,192,1.59,216,1.723,217,1.542,221,2.652,227,0.966,234,0.866,379,1.209,450,2.191,461,2.961,564,4.2,738,2.773,1041,4.392,1345,2.117,1358,4.998,1397,1.786,1844,3.197,1935,8.005,2647,5.781,2649,5.924,2659,2.499,2960,4.177,2965,6.343,2971,6.149,2974,8.611,2980,9.276,2990,11.188,2992,7.393,3007,4.177,3008,3.966,3009,3.233,3010,2.984,3022,4.666,3023,4.177,3024,4.468,3059,4.468,3579,3.863,3580,2.172,4741,4.666,5429,3.492,6291,9.92,6292,4.932,6296,7.259,6305,9.501,6314,6.868,6319,10.126,6321,8.15,6332,6.149,6367,4.468,6659,4.309,6677,4.468,6684,4.932,6854,2.883,10490,4.932,12435,3.878,12440,3.878,19593,11.457,19594,9.318,19595,7.852,19596,4.666,19597,5.335,19598,7.852,19599,11.846,19600,5.335,19601,10.95,19602,5.335,19603,7.852,19604,12.406,19605,5.335,19606,7.852,19607,5.335,19608,5.335,19609,5.335,19610,5.335,19611,5.335,19612,5.335,19613,5.335,19614,5.335,19615,5.335,19616,5.335,19617,5.335,19618,5.335,19619,5.335,19620,4.932,19621,5.335,19622,4.932,19623,5.335,19624,5.335,19625,5.335,19626,5.335]],["title/injectables/TaskCopyUC.html",[105,0.91,19533,5.694]],["body/injectables/TaskCopyUC.html",[0,0.144,3,0.01,4,0.01,5,0.005,7,0.064,8,0.794,26,2.517,27,0.479,29,0.885,30,0.001,31,0.633,32,0.158,33,0.547,35,1.368,36,2.343,39,1.136,47,0.862,95,0.145,99,0.704,101,0.007,102,2.117,103,0,104,0,105,0.879,107,1.017,111,2.726,112,2.707,127,0.823,145,3.252,148,3.363,163,1.298,187,0.61,188,3.649,199,3.955,204,1.431,208,1.576,216,1.935,217,1.545,221,2.422,227,1.085,234,1.311,284,4.363,305,2.597,347,0.853,450,1.733,461,2.81,504,2.761,564,2.409,688,2.161,766,1.764,768,2.895,784,2.28,843,1.861,957,2.338,1125,2.501,1216,1.653,1308,4.893,1345,1.673,1353,2.036,1369,2.299,1423,2.761,1433,2.586,1646,3.675,1801,2.528,1804,2.556,1852,1.781,1855,2.65,1884,4.926,1930,6.343,1931,7.152,1935,7.635,2130,1.842,2131,2.062,2132,1.987,2133,2.685,2524,2.475,2633,3.153,2644,2.261,2647,5.214,2649,4.872,2659,1.976,2725,1.911,2783,2.528,2965,5.308,2971,8.557,2974,7.944,2980,9.47,2990,9.153,2992,2.722,3009,2.556,3010,2.359,3058,3.689,3059,3.532,3060,3.899,3586,6.322,3649,2.947,4007,4.129,4614,3.214,4661,2.226,5017,3.983,6216,2.338,6355,6.761,6397,8.426,6525,3.407,6532,3.135,6646,3.532,6659,5.308,6661,3.899,6697,3.689,6698,7.634,6704,3.689,6710,3.689,6711,3.689,6712,2.722,8610,3.899,12312,3.303,13142,3.407,14098,7.737,14161,7.463,14162,3.899,14164,3.899,14165,3.689,14168,3.899,14184,5.504,17043,3.532,17763,3.899,18804,6.075,18850,3.689,19209,6.322,19533,5.504,19601,10.975,19627,11.872,19628,6.572,19629,6.572,19630,6.572,19631,8.073,19632,6.572,19633,8.073,19634,4.218,19635,6.572,19636,4.218,19637,6.572,19638,4.218,19639,4.218,19640,6.572,19641,4.218,19642,6.572,19643,9.88,19644,4.218,19645,4.218,19646,6.572,19647,4.218,19648,6.572,19649,4.218,19650,3.407,19651,3.899,19652,3.899,19653,4.218,19654,3.689,19655,4.218,19656,4.218,19657,4.218,19658,3.532,19659,3.899,19660,4.218,19661,4.218,19662,4.218,19663,6.572,19664,4.218,19665,4.218,19666,3.899,19667,4.218,19668,4.218,19669,4.218,19670,4.218,19671,4.218,19672,4.218]],["title/classes/TaskCreateParams.html",[0,0.232,19673,5.947]],["body/classes/TaskCreateParams.html",[0,0.318,2,0.759,3,0.016,4,0.016,5,0.008,7,0.103,27,0.512,30,0.001,31,0.597,32,0.181,33,0.643,34,1.951,47,0.923,83,4.14,95,0.147,99,1.135,101,0.011,103,0.001,104,0.001,165,0.731,188,3.448,214,2.943,359,3.999,364,2.262,368,4.494,369,2.545,370,3.075,371,2.574,374,2.171,375,4.73,376,1.556,379,3.042,467,2.449,469,2.987,470,5.028,471,5.033,475,5.607,999,6.784,1000,4.339,1397,3.126,2633,5.113,2649,5.774,2659,4.373,2736,6.11,2884,6.101,2885,6.101,3259,3.511,3262,5.461,3720,5.269,3752,6.877,5017,6.459,7038,7.818,7049,5.495,7051,7.113,8178,5.724,8616,5.495,12437,7.923,15531,6.289,19591,10.649,19673,8.165,19674,6.803,19675,8.63,19676,6.803,19677,6.289,19678,6.803,19679,8.63,19680,6.803,19681,6.803,19682,6.289]],["title/classes/TaskFactory.html",[0,0.232,19031,5.947]],["body/classes/TaskFactory.html",[0,0.15,2,0.492,3,0.01,4,0.01,5,0.005,7,0.067,8,0.823,27,0.538,29,1.006,30,0.001,31,0.696,32,0.177,33,0.592,34,1.414,35,1.425,47,0.486,55,2.394,59,3.144,95,0.137,99,0.737,101,0.007,103,0,104,0,111,2.138,127,0.853,138,2.975,144,3.156,148,1.359,165,0.533,185,4.943,192,2.477,216,1.259,217,1.493,227,1.047,234,1.35,319,3.519,359,2.374,366,2.47,369,1.511,371,2.576,379,1.884,380,2.145,381,2.265,404,1.227,461,2.439,538,3.069,596,3.837,627,2.09,660,7.119,661,4.481,662,5.273,665,3.844,666,5.273,667,5.581,668,3.844,669,3.844,670,3.844,671,3.775,672,4.259,673,4.691,674,6.307,675,5.595,676,6.942,677,2.516,682,2.493,683,3.844,684,2.516,685,4.931,686,5.091,687,3.982,688,4.787,689,3.809,690,2.493,691,2.349,692,3.984,693,2.427,694,2.387,695,2.493,696,4.857,697,2.516,698,4.608,699,2.493,700,7.249,701,4.057,702,6.476,703,2.516,704,4.116,705,2.493,706,2.516,707,2.493,708,2.516,709,2.493,710,2.811,711,2.619,712,2.493,713,5.911,714,2.516,715,2.493,716,3.844,717,3.594,718,3.844,719,2.516,720,2.407,721,2.387,722,1.969,723,2.493,724,2.493,725,2.493,726,2.516,727,2.516,728,1.689,729,2.493,730,2.516,731,2.691,732,2.493,733,2.516,735,2.565,736,2.619,737,5.599,848,3.145,849,3.365,957,2.448,1125,2.619,1844,2.647,1951,3.568,2649,3.037,3752,5.363,6736,3.458,6737,3.568,6741,6.509,6746,3.458,6854,3.681,7935,5.291,10118,6.296,10119,4.083,12438,3.145,12487,7.118,12500,7.316,12501,7.824,19031,7.27,19037,4.083,19683,4.417,19684,4.417,19685,6.81,19686,4.417,19687,4.417,19688,4.417,19689,6.81,19690,4.417]],["title/classes/TaskListResponse.html",[0,0.232,19569,5.694]],["body/classes/TaskListResponse.html",[0,0.305,2,0.715,3,0.015,4,0.015,5,0.008,7,0.097,27,0.485,29,0.502,30,0.001,31,0.626,32,0.18,33,0.569,34,1.757,47,0.925,55,2.944,56,5.849,59,2.791,70,6.037,83,3.421,95,0.144,99,1.07,100,2.147,101,0.015,103,0.001,104,0.001,127,1.123,145,1.624,163,3.621,165,0.702,208,2.396,347,1.297,359,2.236,364,2.037,371,1.768,375,4.644,376,1.467,379,2.341,404,1.615,467,3.447,469,2.816,564,3.787,565,3.197,591,4.49,592,4.68,595,2.147,596,3.411,618,2.623,620,4.138,622,4.138,1007,7.672,1008,6.589,1009,5.105,1011,3.24,1013,4.731,1014,3.058,1015,3.587,1016,2.252,1017,4.481,1018,5.782,1019,5.205,1020,4.197,1021,3.411,1022,4.481,1023,4.481,1025,4.03,1026,3.555,1414,3.587,2037,3.763,2095,2.544,2268,3.653,2303,2.6,2633,4.956,2649,4.606,2745,7.119,3262,3.286,3451,7.217,3752,4.138,3753,3.98,3766,5.022,6152,5.022,6153,4.402,6154,4.261,12451,5.18,12452,5.022,17448,8.344,19569,7.505,19570,10.312,19691,5.929,19692,6.413,19693,6.413,19694,7.239,19695,5.929,19696,5.929,19697,5.929]],["title/classes/TaskMapper.html",[0,0.232,19566,5.947]],["body/classes/TaskMapper.html",[0,0.232,2,0.76,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,27,0.44,29,0.836,30,0.001,31,0.696,32,0.156,33,0.516,34,1.159,35,1.291,95,0.137,99,1.137,100,4.159,101,0.011,103,0.001,104,0.001,185,3.632,217,1.617,227,1.106,234,1.517,371,1.879,379,2.118,564,3.426,591,2.962,592,3.087,627,4.033,975,5.181,982,3.397,2303,2.762,2633,5.118,2649,4.167,3259,3.517,3262,4.789,3451,4.761,3556,8.175,3752,6.031,5017,5.665,5093,6.3,6420,8.64,6421,8.64,8091,8.344,9206,8.175,12436,8.533,12437,8.533,12452,5.336,12459,5.707,12487,5.192,17448,7.55,17612,8.64,19566,8.175,19570,9.272,19620,8.64,19673,10.039,19698,6.815,19699,9.346,19700,9.346,19701,9.346,19702,6.815,19703,9.346,19704,10.039,19705,6.815,19706,9.346,19707,6.815,19708,5.96,19709,6.815,19710,6.815,19711,6.815,19712,9.346,19713,6.815,19714,6.815,19715,6.815,19716,6.815,19717,6.815,19718,6.815,19719,6.815,19720,6.815,19721,6.815,19722,6.815,19723,6.815,19724,6.815,19725,6.815,19726,6.815,19727,9.346,19728,6.815,19729,6.815,19730,6.815,19731,10.611,19732,9.346,19733,9.346,19734,9.346]],["title/modules/TaskModule.html",[425,1.812,13867,5.055]],["body/modules/TaskModule.html",[0,0.258,3,0.018,4,0.018,5,0.009,30,0.001,95,0.165,101,0.013,103,0.001,104,0.001,187,1.097,425,3.001,427,2.74,428,2.947,429,3.035,430,3.022,431,3.009,432,4.145,433,4.257,442,4.019,443,2.972,444,2.9,449,3.985,450,3.115,766,3.173,1358,4.828,1878,5.429,1930,7.769,1931,8.389,1934,9.766,1935,8.955,1953,7.018,2725,3.436,2971,10.781,3009,4.597,3010,4.242,3567,9.529,3579,3.731,3580,3.088,5003,10.49,6338,9.318,13867,10.645,19200,11.122,19735,7.584,19736,7.584,19737,7.584,19738,7.584,19739,7.584]],["title/injectables/TaskRepo.html",[105,0.91,1935,4.751]],["body/injectables/TaskRepo.html",[0,0.124,3,0.009,4,0.009,5,0.004,7,0.111,8,0.707,10,2.363,12,2.682,18,2.958,26,2.713,27,0.479,29,0.891,30,0.001,31,0.637,32,0.173,33,0.55,34,0.62,35,1.406,36,2.674,39,0.982,40,2.826,53,2.65,56,1.749,58,2.352,59,3.061,72,1.651,83,1.791,95,0.133,96,0.997,98,2.161,101,0.006,103,0,104,0,105,0.783,107,0.879,111,1.97,112,2.918,138,4.69,144,1.003,145,2.128,167,2.155,187,0.527,188,2.163,217,1.665,221,2.485,227,1.071,234,1.921,264,3.084,277,3.391,319,1.089,347,1.484,369,1.865,379,0.826,380,0.775,381,1.948,398,1.074,404,1.055,529,2.545,538,3.786,596,2.563,692,4.34,701,4.409,877,6.06,883,2.484,884,2.759,885,3.708,908,2.235,909,2.262,910,2.235,911,2.262,912,2.596,913,2.235,914,2.262,915,2.021,946,2.386,956,2.386,964,2.502,1014,1.738,1167,3.218,1583,2.386,1844,2.185,1935,4.091,2142,2.71,2144,4.742,2394,4.982,2471,2.386,2545,1.939,2633,3.521,2649,5.435,2659,3.936,3105,5.348,3262,3,3339,1.829,3613,9.033,3675,2.502,3720,2.057,4431,2.29,4435,2.46,4659,3.89,4661,3.873,4748,4.658,4749,5.413,4878,2.235,5043,3.305,5055,5.293,5880,3.401,6216,4.658,6612,5.516,6778,2.777,6782,2.777,6901,7.89,6902,7.287,6931,2.65,6932,2.65,7802,2.71,7935,2.32,8985,3.053,9015,3.37,9019,5.121,11714,2.262,12487,2.777,17680,3.37,18877,4.461,19740,3.645,19741,5.855,19742,7.338,19743,7.338,19744,6.784,19745,5.855,19746,5.855,19747,3.645,19748,3.645,19749,3.645,19750,5.413,19751,7.338,19752,3.645,19753,3.645,19754,3.37,19755,3.645,19756,5.855,19757,3.645,19758,5.855,19759,3.645,19760,3.645,19761,9.391,19762,3.645,19763,3.645,19764,3.645,19765,3.645,19766,3.645,19767,3.37,19768,3.37,19769,3.37,19770,3.37,19771,9.203,19772,3.645,19773,3.645,19774,3.645,19775,3.645,19776,3.645,19777,3.645,19778,3.645,19779,3.645,19780,3.645,19781,3.645,19782,3.645,19783,3.645,19784,3.645,19785,2.945,19786,3.645,19787,3.645,19788,3.645,19789,3.645,19790,3.645,19791,3.645,19792,3.645,19793,3.645,19794,3.645,19795,3.645,19796,3.645,19797,3.645,19798,3.645,19799,3.645,19800,3.645,19801,3.645,19802,3.645,19803,9.827,19804,7.338,19805,3.188,19806,3.188,19807,3.188,19808,3.645,19809,7.338,19810,3.645,19811,3.645,19812,3.645,19813,3.645,19814,3.645,19815,3.645,19816,3.645,19817,3.645,19818,3.645,19819,3.645,19820,5.855,19821,3.645,19822,3.645,19823,3.645,19824,3.645,19825,3.645,19826,3.645,19827,3.188,19828,3.645,19829,5.855,19830,3.645,19831,3.645,19832,3.645,19833,3.188,19834,3.645,19835,3.188,19836,3.645,19837,3.37,19838,2.945,19839,3.645,19840,3.188,19841,3.645,19842,3.645,19843,3.37,19844,3.645,19845,3.37,19846,3.645,19847,3.645]],["title/classes/TaskResponse.html",[0,0.232,19570,5.493]],["body/classes/TaskResponse.html",[0,0.279,2,0.632,3,0.013,4,0.013,5,0.007,7,0.086,27,0.549,29,0.444,30,0.001,31,0.655,32,0.186,33,0.627,34,1.909,47,0.973,55,2.078,56,3.936,70,4.063,83,3.781,95,0.136,99,0.945,100,2.747,101,0.014,103,0,104,0,127,1.028,144,2.256,163,2.525,165,0.643,208,3.065,319,2.452,347,1.659,359,2.86,364,2.408,371,1.562,375,4.872,376,1.296,379,2.735,404,1.021,467,3.542,469,2.487,564,4.114,565,4.09,591,4.878,592,5.084,595,2.747,618,2.317,620,3.655,622,3.655,966,2.882,1007,5.03,1008,3.062,1009,3.227,1025,3.559,1026,3.14,1403,3.14,1414,4.588,2037,3.324,2095,2.248,2268,4.674,2303,3.326,2633,5.384,2649,5.004,2742,5.964,2745,6.731,3262,4.942,3451,7.841,3752,6.224,3753,5.985,3766,4.436,6152,6.424,6153,5.631,6154,5.451,12451,7.791,12452,7.553,17448,8.542,19569,4.744,19570,9.984,19691,5.237,19694,7.791,19695,5.237,19696,5.237,19697,5.237,19848,5.665,19849,5.665,19850,5.665,19851,5.665,19852,5.665,19853,5.665,19854,5.665,19855,5.665,19856,5.665,19857,5.665,19858,5.665,19859,5.665,19860,5.665,19861,5.665,19862,5.665]],["title/injectables/TaskRule.html",[105,0.91,1897,5.493]],["body/injectables/TaskRule.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.096,8,1.072,27,0.458,29,0.871,30,0.001,31,0.622,32,0.159,33,0.537,35,1.241,95,0.156,101,0.011,103,0.001,104,0.001,105,1.187,107,1.524,111,2.433,116,3.78,127,1.111,187,0.914,199,4.424,214,1.993,216,1.896,217,1.655,227,1.258,347,2.455,369,1.403,371,1.744,380,2.84,461,3.081,806,2.574,843,2.79,1750,3.936,1795,6.007,1798,7.543,1799,6.736,1813,4.502,1823,7.531,1844,3.79,1852,2.67,1861,5.378,1889,9.265,1893,10.068,1897,7.167,2002,5.725,2006,5.506,2013,4.201,2649,5.904,3339,3.173,3385,5.895,3386,4.267,3389,5.807,3392,4.267,3393,5.989,6790,5.53,6791,5.53,6792,5.295,6793,7.761,6854,3.417,14253,8.202,17671,7.761,17673,8.202,19863,6.323,19864,10.274,19865,6.323,19866,8.873,19867,6.323,19868,6.323,19869,6.323,19870,6.323,19871,8.873,19872,6.323,19873,6.323,19874,6.323,19875,8.873,19876,6.323]],["title/classes/TaskScope.html",[0,0.232,19761,5.947]],["body/classes/TaskScope.html",[0,0.147,2,0.48,3,0.01,4,0.01,5,0.005,7,0.065,8,0.806,26,2.871,27,0.54,29,0.991,30,0.001,31,0.709,32,0.177,33,0.612,35,1.547,39,2.202,83,3.574,95,0.118,96,1.177,101,0.007,103,0,104,0,111,2.536,144,2.743,148,1.324,165,0.523,167,3.391,188,2.465,217,1.199,227,1.297,234,0.699,277,4.818,319,1.286,347,2.497,369,1.815,398,1.268,404,1.203,529,4.785,596,3.042,1844,2.579,2394,6.746,2545,2.289,2649,1.919,2659,3.831,3262,4.721,3637,6.605,3752,6.435,3776,5.713,5991,4.505,5992,4.505,5993,4.505,5998,4.505,5999,4.505,6000,2.953,6001,2.904,6002,2.953,6003,2.953,6012,2.904,6013,4.505,6014,2.953,6015,2.904,6016,2.953,6017,2.904,6018,8.058,6216,6.618,6741,3.37,6778,5.086,6854,5.39,6922,3.476,7935,4.249,10208,3.476,10217,3.764,10220,3.978,10224,3.764,10226,7.152,10227,6.171,14269,6.171,14270,6.171,14273,3.764,19761,11.799,19805,5.838,19806,5.838,19807,8.059,19827,8.059,19877,12.651,19878,6.675,19879,6.675,19880,6.675,19881,6.675,19882,6.675,19883,6.675,19884,6.675,19885,6.675,19886,6.675,19887,6.675,19888,6.675,19889,4.303,19890,6.675,19891,4.303,19892,6.675,19893,6.675,19894,4.303,19895,6.675,19896,6.675,19897,4.303,19898,6.675,19899,4.303,19900,6.675,19901,4.303,19902,6.675,19903,4.303,19904,6.675,19905,4.303,19906,6.675,19907,4.303,19908,4.303,19909,4.303,19910,4.303,19911,4.303,19912,4.303]],["title/injectables/TaskService.html",[105,0.91,5003,5.181]],["body/injectables/TaskService.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,10,3.772,12,4.28,26,2.819,27,0.496,29,0.942,30,0.001,31,0.674,32,0.173,33,0.582,35,1.389,36,2.778,59,2.911,95,0.154,98,4.041,99,1.137,101,0.011,103,0.001,104,0.001,105,1.25,107,1.643,111,2.49,112,2.983,127,1.171,138,4.083,187,0.985,216,1.972,217,1.216,221,2.657,227,0.969,347,1.89,450,2.799,701,4.058,1358,4.338,1935,8.679,2401,4.954,2406,5.336,2633,5.507,2649,5.86,3579,3.353,3580,2.774,3720,3.846,5003,7.121,6216,5.181,6298,9.059,6901,8.174,6902,6.957,12487,5.192,19015,6.3,19200,10.276,19209,5.336,19243,6.3,19596,5.96,19654,5.96,19744,9.861,19754,6.3,19827,5.96,19913,6.815,19914,9.346,19915,6.815,19916,9.346,19917,6.815,19918,9.346,19919,6.815,19920,9.346,19921,6.815,19922,6.815,19923,6.815,19924,6.815,19925,6.815,19926,6.815,19927,6.815,19928,6.815]],["title/classes/TaskStatusMapper.html",[0,0.232,19708,5.947]],["body/classes/TaskStatusMapper.html",[0,0.33,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,8,1.416,27,0.399,29,0.758,30,0.001,31,0.542,32,0.132,33,0.468,35,1.172,95,0.151,99,1.615,100,3.926,101,0.016,103,0.001,104,0.001,217,1.26,227,1.004,234,1.572,564,3.549,627,3.871,975,6.501,3766,7.58,3770,10.256,3771,8.711,19694,10.19,19708,10.256,19929,11.726,19930,9.68,19931,9.68,19932,9.68,19933,9.68]],["title/classes/TaskStatusResponse.html",[0,0.232,19694,5.493]],["body/classes/TaskStatusResponse.html",[0,0.273,2,0.893,3,0.019,4,0.019,5,0.01,7,0.121,27,0.546,29,0.627,30,0.001,31,0.448,32,0.18,33,0.387,55,2.803,95,0.103,101,0.013,103,0.001,104,0.001,127,1.304,165,0.815,347,2.632,364,2.37,376,1.831,467,3.66,966,4.074,3774,7.401,3775,8.567,3776,8.869,3777,8.308,3778,8.308,3779,9.039,3780,8.567,3781,7.401,3788,6.705,3789,7.401,3790,6.705,3791,6.467,3792,7.401,3793,7.401,19591,11.248,19694,10.254,19934,8.006,19935,8.006,19936,8.006,19937,8.006,19938,8.006,19939,8.006]],["title/injectables/TaskUC.html",[105,0.91,19534,5.694]],["body/injectables/TaskUC.html",[0,0.106,3,0.007,4,0.007,5,0.004,7,0.047,8,0.624,10,2.086,26,2.741,27,0.457,29,0.847,30,0.001,31,0.606,32,0.147,33,0.523,35,1.309,36,2.638,39,2.825,59,0.974,83,2.598,95,0.109,98,3.064,99,0.522,101,0.005,103,0,104,0,105,0.691,107,0.754,111,2.51,112,2.877,127,0.647,144,1.421,187,0.452,188,3.137,216,1.57,217,1.776,221,2.992,227,1.216,234,1.704,284,1.69,305,0.891,309,1.799,347,1.718,369,0.694,371,2.115,380,0.665,450,1.285,461,2.924,529,1.359,564,4.23,574,1.373,721,1.69,738,3.988,766,1.308,843,2.281,951,2.383,1008,4.943,1016,2.693,1646,1.749,1750,3.402,1798,4.329,1801,1.874,1804,3.132,1805,3.433,1813,3.68,1814,4.533,1852,1.321,1874,2.227,1884,5.231,1930,5.866,1931,6.335,1935,6.39,1982,5.09,1984,4.047,2004,3.547,2144,3.727,2440,1.782,2448,2.891,2487,1.991,2647,1.651,2649,4.315,2725,1.417,3106,2.917,3262,4.352,3452,3.247,3771,3.433,3777,5.02,4184,4.458,4431,1.965,4435,2.111,4748,5.61,5003,7.374,5043,3.727,5055,3.799,6098,2.047,6216,3.661,6229,2.078,6612,7.3,6778,5.844,6896,4.52,6974,4.047,7810,1.918,7935,3.29,8091,2.273,8121,7.428,8961,8.791,10055,2.325,11774,1.991,14184,6.424,14301,4.52,14949,4.047,17043,2.619,18877,2.383,19209,8.217,19534,4.328,19542,4.778,19545,4.778,19596,2.735,19622,4.778,19654,5.777,19767,4.778,19768,4.778,19769,4.778,19770,4.778,19805,4.52,19806,2.735,19807,4.52,19940,3.128,19941,5.168,19942,5.168,19943,7.67,19944,5.168,19945,5.168,19946,3.128,19947,5.168,19948,3.128,19949,3.128,19950,5.168,19951,3.128,19952,5.168,19953,3.128,19954,5.168,19955,3.128,19956,5.168,19957,3.128,19958,3.128,19959,5.168,19960,8.493,19961,3.128,19962,5.168,19963,3.128,19964,5.168,19965,3.128,19966,3.128,19967,6.604,19968,5.168,19969,6.604,19970,6.604,19971,9.147,19972,5.168,19973,9.147,19974,5.168,19975,5.168,19976,7.67,19977,3.128,19978,9.147,19979,6.604,19980,7.67,19981,6.604,19982,4.778,19983,3.128,19984,3.128,19985,3.128,19986,3.128,19987,3.128,19988,3.128,19989,3.128,19990,3.128,19991,7.67,19992,5.168,19993,3.128,19994,7.67,19995,5.168,19996,5.168,19997,5.168,19998,3.128,19999,5.168,20000,3.128,20001,3.128,20002,7.67,20003,3.128,20004,3.128,20005,3.128,20006,3.128,20007,3.128,20008,3.128,20009,3.128,20010,3.128,20011,3.128,20012,3.128,20013,3.128,20014,5.168,20015,5.168,20016,3.128,20017,3.128,20018,5.168,20019,5.168,20020,3.128,20021,3.128]],["title/classes/TaskUpdateParams.html",[0,0.232,19704,5.947]],["body/classes/TaskUpdateParams.html",[0,0.318,2,0.759,3,0.016,4,0.016,5,0.008,7,0.103,27,0.512,30,0.001,31,0.597,32,0.181,33,0.643,34,1.951,47,0.923,83,4.14,95,0.147,99,1.135,101,0.011,103,0.001,104,0.001,165,0.731,188,3.448,214,2.943,359,3.999,364,2.262,368,4.494,369,2.545,370,3.075,371,2.574,374,2.171,375,4.73,376,1.556,379,3.042,467,2.449,469,2.987,470,5.028,471,5.033,475,5.607,999,6.784,1000,4.339,1397,3.126,2633,5.113,2649,5.774,2659,4.373,2736,6.11,2884,6.101,2885,6.101,3259,3.511,3262,5.461,3720,5.269,3752,6.877,5017,6.459,7038,7.818,7049,5.495,7051,7.113,8178,5.724,9420,5.697,12436,7.923,19591,10.649,19675,8.63,19677,6.289,19679,8.63,19682,6.289,19704,8.165,20022,6.803,20023,6.803,20024,6.803,20025,6.803,20026,6.803,20027,6.803]],["title/classes/TaskUrlParams.html",[0,0.232,19004,5.694]],["body/classes/TaskUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2649,5.267,3795,5.749,19004,9.892,19209,9.931,20028,9.798,20029,9.798]],["title/classes/TaskWithStatusVo.html",[0,0.232,8091,4.943]],["body/classes/TaskWithStatusVo.html",[0,0.181,2,0.361,3,0.008,4,0.008,5,0.004,7,0.173,26,1.834,27,0.279,29,0.253,30,0.001,31,0.298,32,0.152,33,0.156,34,0.904,47,0.701,55,1.145,83,2.646,95,0.15,96,0.885,101,0.014,103,0,104,0,111,2.405,116,3.564,127,0.405,145,1.983,148,2.41,165,0.728,167,1.191,187,0.468,188,3.195,192,0.964,214,1.02,217,1.772,227,1.341,234,1.666,240,3.37,247,2.082,305,1.514,334,0.571,347,2.267,369,2.427,370,3.063,371,3.155,379,0.733,380,1.129,398,0.953,399,2.109,400,1.428,402,1.341,404,0.583,405,0.862,406,1.052,461,2.706,564,4.108,687,1.379,728,1.237,738,1.682,783,1.961,806,2.164,844,3.081,905,3.261,957,1.794,1019,1.879,1107,2.26,1345,1.284,1353,1.562,1583,2.118,1750,1.435,1843,1.534,1852,1.366,1865,2.421,1948,3.185,2037,1.898,2095,1.284,2487,2.06,2632,3.984,2633,3.757,2636,2.896,2640,1.763,2645,3.383,2646,1.898,2647,2.805,2648,2.26,2649,5.348,2659,1.516,2663,5.661,2849,3.741,3106,1.826,3259,2.743,3262,2.723,3339,4.666,3429,2.06,3451,4.725,3720,5.544,3721,2.71,3752,2.088,3771,6.816,3775,3.587,3776,6.043,3777,5.125,3778,6.085,3779,6.621,3780,3.587,3791,6.325,4052,1.898,4205,1.09,4217,2.033,4281,1.413,4882,2.033,4883,2.088,4989,2.434,5017,1.961,6469,4.493,6508,2.008,6511,3.221,6522,3.339,6523,1.81,6535,2.534,6539,2.304,6541,2.184,6542,2.118,6543,2.008,6544,1.939,6560,2.06,6757,2.008,6758,2.15,6831,2.534,6854,1.749,6864,2.088,6869,2.405,7935,4.984,8091,3.863,9603,2.06,11044,2.26,11894,2.221,11914,2.221,12048,2.614,12284,2.614,12304,5.821,12305,2.614,12323,5.821,12324,2.614,12435,2.352,12438,3.785,12439,2.405,12440,2.352,12441,2.83,12443,2.83,12444,2.71,12445,2.83,12446,2.83,12447,2.83,12448,2.83,12449,4.648,12450,5.916,12451,5.463,12452,5.296,12453,2.83,12454,2.83,12455,2.71,12456,2.83,12457,2.83,12458,2.83,12459,2.71,12460,8.132,12461,2.83,12462,2.465,12463,2.614,12464,4.648,12465,6.849,12466,4.293,12467,6.849,12468,2.83,12469,2.83,12470,2.83,12471,4.648,12472,2.83,12473,2.83,12474,2.83,12475,2.83,12476,2.83,12477,2.83,12478,2.83,12479,2.83,12480,2.83,12481,2.83,12482,2.83,12483,2.83,12484,4.648,12485,2.83,12486,2.83,12487,2.465,12488,2.83,12489,2.83,12490,2.83,12491,2.83,12492,2.83,12493,2.83,12494,4.648,12495,2.83,12496,2.83,12497,4.648,12498,2.83,12499,4.648,12500,2.534,12501,2.71,12502,2.83,12503,6.849,12504,5.916,12505,4.451,12506,2.614,12507,5.916,12508,2.83,12509,5.916,12510,2.71,12511,4.648,12512,2.83,12513,2.83,12514,2.83,12515,5.916,12516,2.83,12517,4.648,12518,2.71,12519,2.83,12520,2.83,12521,6.849,12522,2.83,12523,2.83,12524,2.83,12525,2.83,12526,2.83,12527,2.83,12528,2.83,12529,4.648,12530,2.83,12531,2.83,12532,4.648,12533,2.83,12534,2.83,12535,2.83,12536,2.83,12537,2.71,12538,2.83,12539,6.849,12540,2.83,12541,2.83,12542,2.83,12543,2.83,12544,2.83,12545,2.83,12546,2.83,12547,2.83,12548,2.83,12549,2.83,20030,5.315,20031,3.236]],["title/classes/TeamDto.html",[0,0.232,4531,4.842]],["body/classes/TeamDto.html",[0,0.364,2,0.93,3,0.02,4,0.02,5,0.01,7,0.126,26,2.5,27,0.513,29,0.653,30,0.001,31,0.696,32,0.169,33,0.403,34,2.006,39,2.245,47,0.917,95,0.107,99,1.391,100,3.577,101,0.018,103,0.001,104,0.001,127,1.044,165,0.837,379,1.889,405,3.142,415,4.506,416,5.307,425,2.847,595,2.792,618,3.41,619,4.622,1852,4.511,2095,3.308,2412,6.801,4205,2.81,4281,3.642,4282,4.944,4283,6.198,4531,9.155,4600,8.982,4666,6.198,11307,7.293,11308,7.293,11936,7.098,12552,8.571,12561,6.529,15252,10.044,16197,9.345,17313,8.948,20032,7.708,20033,9.345,20034,8.948,20035,8.631,20036,10.685,20037,8.338,20038,8.338,20039,7.708]],["title/entities/TeamEntity.html",[380,1.445,6847,4.121]],["body/entities/TeamEntity.html",[0,0.327,3,0.017,4,0.017,5,0.009,7,0.107,27,0.395,30,0.001,31,0.653,32,0.13,39,1.906,47,0.776,62,6.383,72,3.206,95,0.157,96,2.624,101,0.019,103,0.001,104,0.001,111,1.419,144,2.992,165,0.751,192,2.858,227,1.128,234,1.149,240,3.451,334,1.03,364,1.747,369,2.128,380,2.038,381,2.354,398,2.085,399,3.805,400,3.123,402,2.934,404,1.275,405,2.556,406,2.302,415,5.879,461,2.99,496,5.305,728,4.16,844,5.723,1858,5.024,2095,2.808,2181,5.145,2574,5.614,2632,3.26,3584,4.777,4205,2.386,4265,5.04,4271,5.227,4281,3.092,4282,6.45,4285,8.518,4989,5.582,6521,4.34,6523,3.959,6544,4.242,6847,5.813,6885,4.632,10050,5.145,10051,5.145,11314,5.145,11315,5.393,11936,4.702,12550,7.51,12551,5.928,12552,6.972,12553,9.15,12554,5.543,12555,7.747,12556,5.928,12557,5.928,12558,5.928,12559,5.928,12560,5.928,12561,5.543,12562,5.928,12563,5.928,20040,7.078,20041,7.078]],["title/classes/TeamFactory.html",[0,0.232,20042,6.286]],["body/classes/TeamFactory.html",[0,0.162,2,0.532,3,0.011,4,0.011,5,0.006,7,0.072,8,0.872,27,0.537,29,1.028,30,0.001,31,0.716,32,0.181,33,0.611,34,1.482,35,1.457,39,2.346,47,0.745,55,2.459,59,3.253,95,0.125,99,0.796,101,0.008,103,0,104,0,127,0.597,138,3.154,144,3.233,148,1.467,165,0.565,185,4.911,216,1.335,217,1.134,227,0.904,319,3.513,359,2.517,366,2.666,379,1.975,380,2.219,381,2.401,404,1.301,496,4.409,538,3.253,596,3.9,627,2.215,660,7.216,661,4.618,662,5.486,665,4.074,666,5.486,667,5.705,668,4.074,669,4.074,670,4.074,671,4.002,672,4.465,673,4.918,674,6.461,675,5.789,676,7.042,677,2.715,682,2.69,683,4.074,684,2.715,685,5.13,686,5.297,687,4.143,688,4.98,689,4.038,690,2.69,691,2.535,692,4.105,693,2.62,694,2.576,695,2.69,696,5.053,697,2.715,698,4.83,699,2.69,700,7.216,701,4.156,702,6.635,703,2.715,704,4.315,705,2.69,706,2.715,707,2.69,708,2.715,709,2.69,710,3.034,711,2.826,712,2.69,713,6.091,714,2.715,715,2.69,716,4.074,717,3.81,718,4.074,719,2.715,720,2.598,721,2.576,722,2.125,723,2.69,724,2.69,725,2.69,726,2.715,727,2.715,728,1.823,729,2.69,730,2.715,731,2.852,732,2.69,733,2.715,735,2.769,737,4.327,4306,3.992,4533,2.958,6847,2.889,12550,3.733,12552,6.334,12553,6.922,15248,6.046,20042,8.055,20043,4.767,20044,6.674,20045,7.219,20046,6.674,20047,4.767,20048,7.219,20049,4.767,20050,4.169,20051,4.767,20052,4.767,20053,4.767,20054,4.767,20055,4.767]],["title/injectables/TeamMapper.html",[105,0.91,4637,5.694]],["body/injectables/TeamMapper.html",[0,0.296,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,27,0.358,29,0.68,30,0.001,31,0.614,32,0.118,33,0.42,34,1.476,35,1.051,39,2.337,95,0.154,99,1.448,100,3.67,101,0.014,103,0.001,104,0.001,105,1.466,107,2.092,116,3.742,187,1.255,217,1.129,227,1.137,234,1.78,264,3.647,379,1.967,380,2.682,4205,2.925,4531,8.987,4533,6.801,4564,8.854,4600,7.658,4637,9.179,4666,6.452,6847,8.055,12552,7.968,12553,7.805,15248,7.268,15252,9.704,20056,8.679,20057,10.961,20058,10.961,20059,8.679,20060,10.132,20061,8.679,20062,8.679,20063,8.023,20064,8.679,20065,8.679,20066,8.679,20067,8.679]],["title/entities/TeamNews.html",[380,1.445,6888,5.181]],["body/entities/TeamNews.html",[0,0.345,3,0.012,4,0.022,5,0.006,7,0.171,9,3.616,26,2.146,27,0.213,30,0.001,31,0.43,32,0.138,34,0.88,47,0.877,83,2.347,95,0.155,96,2.503,101,0.018,103,0,104,0,165,0.847,188,2.834,192,3.222,208,1.932,227,0.536,234,1.485,240,3.72,334,0.555,364,0.942,369,2.514,370,3.732,380,2.298,381,1.72,398,1.523,399,3.044,400,2.282,404,1.824,405,2.697,406,1.682,461,2.473,571,5.749,574,4.017,595,1.731,617,5.072,627,1.587,672,4.688,731,3.615,769,4.55,843,2.282,844,5.16,854,3.851,1031,2.404,1187,4.363,1188,4.77,1189,4.311,1190,4.56,1191,4.986,1397,3.063,1415,4.705,1843,3.637,1849,2.595,1865,3.495,1941,3.291,1959,2.818,2303,3.709,2577,5.164,2632,4.214,2646,3.034,2702,5.795,2747,2.668,3427,3.549,3429,3.291,3430,3.612,3432,3.682,3433,3.612,3434,3.844,3448,3.17,3584,3.49,3609,3.291,4205,1.743,4297,3.939,4298,3.759,4989,4.19,5057,3.844,5072,3.759,5618,6.651,6216,2.866,6434,3.612,6521,3.17,6523,2.892,6544,3.099,6757,3.208,6844,3.844,6845,4.177,6847,5.545,6848,4.177,6849,6.801,6850,5.903,6851,4.177,6852,8.871,6853,5.098,6854,4.945,6855,5.704,6856,5.704,6857,6.717,6858,7.529,6859,4.177,6860,5.464,6861,4.177,6862,3.939,6863,3.939,6864,4.951,6865,4.177,6866,3.939,6867,3.939,6868,4.177,6869,3.844,6870,4.177,6871,3.066,6872,3.17,6873,3.939,6874,4.177,6875,4.177,6876,7.164,6877,4.177,6878,7.39,6879,4.177,6880,4.177,6881,5.846,6882,3.939,6883,6.392,6884,4.049,6885,5.022,6886,3.939,6887,3.759,6888,5.846,6889,6.198,20068,5.17]],["title/controllers/TeamNewsController.html",[481,2.611,15070,5.947]],["body/controllers/TeamNewsController.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.215,27,0.313,29,0.595,30,0.001,31,0.426,32,0.103,33,0.367,35,0.92,36,2.157,72,3.442,95,0.168,100,2.544,101,0.013,103,0.001,104,0.001,112,2.485,187,1.099,215,2.425,216,1.405,217,1.467,221,1.759,227,0.788,234,1.234,264,4.227,277,4.55,364,1.384,376,1.738,447,3.15,461,2.301,469,3.336,481,2.917,483,3.623,491,5.903,494,6.757,513,6.306,529,4.9,555,3.95,556,4.042,561,4.074,1016,3.531,1028,8.384,2727,3.645,2908,6.583,2930,4.074,3743,4.459,4533,7.745,5880,5.842,6612,7.192,6858,5.73,7810,4.659,10682,9.693,11779,6.138,11936,5.048,12793,6.364,14957,9.298,14966,6.138,14967,6.646,14968,9.107,14970,6.138,14972,7.024,14977,6.646,14978,6.646,14979,7.024,14980,7.024,14981,7.024,14982,7.024,15070,8.797,20069,10.058,20070,7.599,20071,11.274,20072,7.599,20073,10.495,20074,10.058,20075,7.599,20076,7.599,20077,7.024,20078,7.599,20079,7.599,20080,7.599]],["title/classes/TeamPermissionsBody.html",[0,0.232,4608,5.493]],["body/classes/TeamPermissionsBody.html",[0,0.373,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,10,4.844,27,0.536,30,0.001,32,0.177,95,0.141,101,0.014,103,0.001,104,0.001,165,0.857,347,2.806,364,2.369,373,7.121,374,2.764,376,1.981,467,3.485,883,5.091,1804,7.274,1805,7.973,4600,9.28,4608,8.842,7330,9.909,18625,9.144,20081,12.279,20082,8.66,20083,8.66,20084,8.66,20085,8.66,20086,8.66,20087,8.66]],["title/classes/TeamPermissionsDto.html",[0,0.232,4542,5.324]],["body/classes/TeamPermissionsDto.html",[0,0.291,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,10,4.81,27,0.546,29,0.668,30,0.001,31,0.478,32,0.18,33,0.674,101,0.014,103,0.001,104,0.001,127,1.069,165,0.849,347,2.8,405,2.889,595,2.857,883,5.056,1804,7.224,1805,7.918,4542,10.138,4545,11.758,4600,9.392,9995,7.462,9996,7.462,9997,7.462,9998,7.462,9999,7.462,10000,7.462,10001,7.462,10002,7.462,18625,9.081,20088,7.887,20089,10.843,20090,7.887,20091,7.887,20092,7.887,20093,7.887,20094,8.532,20095,8.532]],["title/injectables/TeamPermissionsMapper.html",[105,0.91,4638,5.694]],["body/injectables/TeamPermissionsMapper.html",[0,0.3,3,0.021,4,0.021,5,0.011,7,0.133,8,1.337,10,3.556,27,0.363,29,0.69,30,0.001,31,0.494,32,0.12,33,0.426,35,1.067,95,0.155,100,3.705,101,0.015,103,0.001,104,0.001,105,1.48,107,2.124,116,3.768,187,1.274,227,1.148,234,1.431,264,3.703,379,1.997,543,6.788,883,3.738,1804,5.341,1805,5.854,4466,6.428,4542,9.936,4546,6.9,4564,8.939,4600,7.731,4608,10.25,4623,7.707,4638,9.267,4641,9.679,4667,11.73,4702,8.146,18625,6.714,20060,10.23,20096,8.812,20097,11.066,20098,11.066,20099,8.812,20100,8.812,20101,8.812,20102,8.812,20103,8.812,20104,8.812,20105,8.812]],["title/classes/TeamRoleDto.html",[0,0.232,4606,5.694]],["body/classes/TeamRoleDto.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.483,30,0.001,32,0.159,47,0.934,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,2.133,374,3.082,376,2.209,467,3.306,1000,5.131,3889,8.649,4600,8.805,4606,9.806,4666,9.368,5806,8.512,20081,11.65,20106,9.657,20107,9.657,20108,9.657]],["title/classes/TeamRolePermissionsDto.html",[0,0.232,4566,5.493]],["body/classes/TeamRolePermissionsDto.html",[0,0.302,2,0.989,3,0.021,4,0.021,5,0.011,7,0.134,27,0.54,29,0.695,30,0.001,31,0.497,32,0.178,33,0.429,47,0.953,101,0.015,103,0.001,104,0.001,127,1.111,165,0.87,347,2.248,405,2.961,496,5.642,595,2.97,1849,6.089,3889,8.328,3894,8.2,4511,9.02,4566,10.58,4569,10.613,4571,6.613,8448,8.2,8449,8.2,9934,6.594,9964,6.946,20088,8.2,20090,8.2,20091,10.272,20092,8.2,20093,8.2,20109,13.364,20110,8.87,20111,8.87,20112,8.87]],["title/injectables/TeamRule.html",[105,0.91,1898,5.694]],["body/injectables/TeamRule.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.12,8,1.252,27,0.475,29,0.903,30,0.001,31,0.646,32,0.166,33,0.558,35,1.255,95,0.157,101,0.013,103,0.001,104,0.001,105,1.387,107,1.919,116,4.046,127,0.997,187,1.151,199,4.358,214,2.509,215,2.54,216,1.472,217,1.036,227,1.075,347,2.471,371,2.195,380,2.811,461,3.102,738,4.138,806,3.24,1795,6.603,1823,8.061,1844,4.77,1861,7.679,1898,8.683,2002,6.69,2006,6.434,3385,6.888,3386,5.372,3389,6.786,3392,5.372,3394,5.916,6847,8.13,12553,7.383,20063,7.357,20113,7.959,20114,7.959,20115,7.959,20116,7.959,20117,10.368,20118,7.959,20119,7.959]],["title/injectables/TeamService.html",[105,0.91,20120,5.947]],["body/injectables/TeamService.html",[0,0.282,3,0.02,4,0.02,5,0.01,7,0.125,8,1.284,26,2.83,27,0.484,29,0.92,30,0.001,31,0.658,32,0.16,33,0.568,35,1.287,36,2.658,39,3.162,95,0.151,99,1.38,101,0.014,103,0.001,104,0.001,105,1.422,107,1.993,112,2.892,116,4.088,127,1.036,187,1.196,215,2.639,216,1.529,217,1.383,221,2.718,227,1.102,450,3.397,1936,9.007,6847,5.012,11936,7.803,12640,9.825,20120,9.296,20121,8.269,20122,10.628,20123,10.628,20124,8.269,20125,8.269,20126,10.628,20127,8.269,20128,10.628,20129,8.269,20130,8.269,20131,8.269,20132,8.269,20133,8.269,20134,8.269,20135,8.269]],["title/classes/TeamUrlParams.html",[0,0.232,20073,5.947]],["body/classes/TeamUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,3795,5.749,3889,8.704,4533,7.33,20073,10.332,20136,9.798,20137,9.798]],["title/classes/TeamUserDto.html",[0,0.232,15252,5.493]],["body/classes/TeamUserDto.html",[0,0.369,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,26,2.299,27,0.517,29,0.668,30,0.001,31,0.607,32,0.17,33,0.413,34,1.451,39,3.209,47,0.959,95,0.11,99,1.424,100,2.857,101,0.018,103,0.001,104,0.001,127,1.069,165,0.849,405,3.176,415,4.611,416,5.431,425,2.273,595,2.857,618,3.489,619,4.73,1852,3.602,2095,3.385,2412,5.431,4205,4.017,4281,3.727,4282,5.059,4283,6.342,4531,7.721,4600,9.045,4666,8.86,11307,7.462,11308,7.462,11936,5.668,12552,6.202,12561,6.681,15252,10.689,16197,7.462,17313,7.145,20032,7.887,20033,7.462,20034,7.145,20035,6.892,20039,7.887,20138,10.843,20139,8.532,20140,8.532]],["title/classes/TeamUserEntity.html",[0,0.232,12553,4.842]],["body/classes/TeamUserEntity.html",[0,0.304,2,0.712,3,0.015,4,0.015,5,0.008,7,0.096,27,0.526,29,0.807,30,0.001,31,0.658,32,0.165,33,0.498,35,1.081,39,2.774,47,0.637,62,3.745,72,2.892,95,0.151,96,2.443,101,0.019,103,0.001,104,0.001,111,2.066,127,0.799,144,3.23,148,2.749,165,0.7,192,3.326,227,1.068,234,1.036,240,2.833,334,0.96,364,1.877,369,1.416,380,1.898,398,1.88,399,3.544,400,2.817,402,2.646,404,1.15,405,2.745,406,2.076,415,5.569,461,3.086,496,5.47,595,2.137,728,3.94,844,5.901,884,4.209,1858,3.343,2095,2.532,2181,4.64,2574,5.318,2632,2.94,3584,4.308,4205,3.473,4271,4.867,4281,2.788,4282,6.109,4285,8.068,4989,5.38,6521,3.913,6523,3.57,6544,3.826,6751,6.954,6847,3.868,6885,4.177,9548,5.583,10050,4.64,10051,4.64,11314,4.64,11315,4.863,11936,4.24,12550,6.994,12551,5.345,12552,6.493,12553,8.899,12554,4.998,12555,9.015,12556,5.345,12557,5.345,12558,5.345,12559,5.345,12560,5.345,12561,4.998,12562,5.345,12563,5.345,20141,6.383,20142,6.383,20143,6.383,20144,6.383,20145,6.383,20146,6.383,20147,6.383,20148,6.383,20149,6.383,20150,6.383,20151,6.383]],["title/classes/TeamUserFactory.html",[0,0.232,20050,5.947]],["body/classes/TeamUserFactory.html",[0,0.155,2,0.507,3,0.011,4,0.011,5,0.005,7,0.069,8,0.841,27,0.533,29,1.02,30,0.001,31,0.7,32,0.179,33,0.605,34,1.44,35,1.437,39,2.905,47,0.826,55,2.418,59,3.185,95,0.139,99,0.759,101,0.008,103,0,104,0,127,0.569,138,3.042,144,3.185,148,1.399,165,0.545,185,4.859,192,3.452,216,1.288,217,1.507,227,0.878,234,0.738,319,3.462,359,2.428,366,2.543,379,1.918,380,2.173,381,2.316,404,1.255,461,2.17,496,5.117,538,3.138,596,3.861,627,2.137,660,7.157,661,4.533,662,5.353,665,3.93,666,5.353,667,5.628,668,3.93,669,3.93,670,3.93,671,3.86,672,4.337,673,4.777,674,5.929,675,5.669,676,6.98,677,2.59,682,2.566,683,3.93,684,2.59,685,5.006,686,5.169,687,4.043,688,4.86,689,3.895,690,2.566,691,2.418,692,4.03,693,2.498,694,2.457,695,2.566,696,4.931,697,2.59,698,4.692,699,2.566,700,7.145,701,4.095,702,6.537,703,2.59,704,4.191,705,2.566,706,2.59,707,2.566,708,2.59,709,2.566,710,2.894,711,2.696,712,2.566,713,5.98,714,2.59,715,2.566,716,3.93,717,3.675,718,3.93,719,2.59,720,2.477,721,2.457,722,2.027,723,2.566,724,2.566,725,2.566,726,2.59,727,2.59,728,1.739,729,2.566,730,2.59,731,2.751,732,2.566,733,2.59,735,2.641,737,4.174,848,3.237,2192,6.437,3110,4.219,4306,3.807,6736,3.56,6746,5.453,12553,4.959,19033,7.403,20044,6.437,20046,6.437,20050,7.403,20152,4.546,20153,4.546,20154,6.963,20155,4.546,20156,4.546,20157,4.546,20158,4.203,20159,4.546,20160,4.546,20161,4.546,20162,4.203,20163,4.546]],["title/modules/TeamsApiModule.html",[425,1.812,18508,5.493]],["body/modules/TeamsApiModule.html",[0,0.333,3,0.023,4,0.023,5,0.012,30,0.001,95,0.151,101,0.016,103,0.001,104,0.001,187,1.413,425,3.376,427,3.531,428,3.798,429,3.911,430,3.894,431,3.878,432,4.34,433,4.458,442,4.72,443,3.83,444,3.738,446,6.141,447,4.051,449,4.68,18508,11.051,20164,9.774,20165,9.774,20166,11.458,20167,9.774,20168,9.774]],["title/modules/TeamsModule.html",[425,1.812,20166,5.694]],["body/modules/TeamsModule.html",[0,0.32,3,0.022,4,0.022,5,0.011,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.357,425,3.317,427,3.391,428,3.648,429,3.756,430,3.74,431,3.724,432,4.58,433,4.704,442,4.605,443,3.678,444,3.59,450,3.856,766,3.926,1936,9.3,20120,12.403,20166,11.694,20169,9.387,20170,9.387,20171,9.387,20172,9.387]],["title/injectables/TeamsRepo.html",[105,0.91,1936,4.667]],["body/injectables/TeamsRepo.html",[0,0.206,3,0.014,4,0.014,5,0.007,7,0.091,8,1.037,10,3.466,12,3.934,13,6.244,18,4.34,26,2.608,27,0.518,29,0.936,30,0.001,31,0.67,32,0.167,33,0.578,34,1.461,35,1.447,36,2.782,39,2.692,40,4.146,42,6.244,49,2.376,55,1.301,62,3.543,95,0.14,96,1.652,97,2.612,99,1.008,101,0.01,103,0,104,0,105,1.149,107,1.456,111,2.004,112,2.946,144,2.362,165,0.673,187,0.873,217,1.118,221,2.847,227,1.193,234,0.98,264,2.538,284,4.642,319,2.567,371,2.368,380,1.283,381,2.857,404,1.548,461,1.965,496,5.193,596,3.321,692,4.903,877,7.217,883,3.644,884,4.047,885,5.051,890,7.512,908,3.702,909,3.747,910,3.702,911,3.747,913,3.702,914,3.747,915,3.347,921,4.489,1193,5.797,1858,4.499,1936,5.895,3110,4.281,3675,4.144,3872,4.728,4533,5.33,4659,7.234,6847,6.059,11936,7.943,12553,6.116,15248,5.057,17551,9.241,17557,7.94,17561,5.582,19158,5.582,20173,6.038,20174,7.512,20175,6.038,20176,7.512,20177,6.038,20178,6.038,20179,6.038,20180,6.038,20181,6.038,20182,6.038,20183,6.038,20184,6.038,20185,6.038,20186,6.038,20187,6.038,20188,6.038]],["title/classes/TestApiClient.html",[0,0.232,1637,5.947]],["body/classes/TestApiClient.html",[0,0.124,2,0.405,3,0.009,4,0.009,5,0.004,7,0.055,8,0.705,10,2.355,27,0.514,29,0.941,30,0.001,31,0.673,32,0.168,33,0.581,35,1.431,36,1.251,47,0.996,51,2.834,55,1.576,59,3.055,87,2.928,94,4.46,95,0.108,99,0.606,101,0.006,103,0,104,0,111,2.674,112,1.612,116,3.952,127,0.455,144,2.525,163,3.405,165,0.457,167,1.335,185,1.41,187,0.525,204,1.231,216,2.046,217,1.714,221,0.84,227,1.226,234,1.361,247,2.286,305,1.662,319,2.744,334,0.39,347,1.18,355,2.344,359,3.594,363,3.714,379,0.822,483,1.73,543,5.245,552,3.764,576,6.956,643,2.584,740,5.103,905,1.511,946,3.818,1016,3.443,1277,4.568,1345,1.44,1414,7.035,1605,6.112,1622,7.33,1623,11.628,1624,3.355,1625,4.86,1626,9.529,1627,5.103,1628,3.355,1629,3.355,1630,2.638,1631,3.174,1632,3.355,1633,3.039,1634,3.355,1635,3.355,1636,3.174,1637,6.399,1638,3.355,1639,2.31,1640,3.355,1641,5.393,1642,4.155,1643,5.103,1644,4.886,1645,4.713,1646,3.263,1647,7.129,1648,9.529,1649,6.763,1650,5.393,1651,5.393,1652,5.393,1653,3.355,1654,9.066,1655,3.355,1656,5.393,1657,10.495,1658,8.488,1659,10.495,1660,3.355,1661,5.393,1662,8.488,1663,3.355,1664,7.747,1665,5.393,1666,3.355,1667,6.127,1668,5.393,1669,3.355,1670,5.393,1671,5.393,1672,3.355,1673,3.355,1674,3.355,1675,3.355,1676,5.393,1677,3.355,1678,3.174,1679,5.393,1680,5.574,1681,7.747,1682,3.355,1683,5.393,1684,3.355,1685,8.488,1686,5.393,1687,5.393,1688,3.355,1689,5.393,1690,5.393,1691,3.355,1692,3.355,1693,5.393,1694,7.747,1695,2.31,1696,3.355,1697,5.393,1698,3.355,1699,3.355,1700,3.355,1701,3.355,1702,3.355,1703,3.355,1704,3.355,1705,3.355,2929,3.355,4007,3.666,20189,5.834,20190,5.834,20191,5.834,20192,5.834,20193,5.834,20194,3.629,20195,3.629,20196,3.629,20197,3.629,20198,3.629,20199,9.182,20200,3.629,20201,3.629,20202,3.629,20203,3.629,20204,3.629,20205,3.629,20206,3.629,20207,3.629,20208,3.629,20209,3.629]],["title/classes/TestBootstrapConsole.html",[0,0.232,20210,6.286]],["body/classes/TestBootstrapConsole.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,8,1.326,27,0.359,30,0.001,35,1.053,36,2.579,47,0.62,95,0.167,101,0.018,103,0.001,104,0.001,112,1.917,217,1.428,221,2.013,227,1.138,404,1.978,431,3.451,449,3.451,731,3.436,883,5.358,1125,5.157,1187,4.147,1188,4.098,1189,4.098,1190,4.335,1191,4.74,2614,6.323,2615,6.194,2616,6.811,3481,5.778,3489,6.077,3491,6.896,3492,5.157,3494,6.811,7792,6.811,18483,9.6,20210,10.146,20211,10.976,20212,10.976,20213,8.698,20214,12.026,20215,8.698,20216,8.04,20217,8.698,20218,6.627,20219,8.04,20220,8.698,20221,8.698,20222,10.976,20223,8.04,20224,8.698,20225,8.698,20226,10.976,20227,8.698,20228,7.607,20229,6.466,20230,8.698,20231,8.698]],["title/classes/TestHelper.html",[0,0.232,20232,6.286]],["body/classes/TestHelper.html",[0,0.286,2,0.937,3,0.02,4,0.02,5,0.014,7,0.127,27,0.443,30,0.001,31,0.602,47,0.766,95,0.152,101,0.014,103,0.001,104,0.001,116,3.346,144,2.954,163,2.587,165,0.841,217,1.715,227,1.114,319,3.21,334,0.903,627,4.045,1342,7.437,1344,5.503,2848,4.058,3580,3.423,6170,5.482,6273,7.808,6274,6.25,6275,5.987,6276,6.25,6277,8.799,9797,5.585,10236,8.184,10237,10.91,18886,7.353,20232,9.93,20233,11.837,20234,11.837,20235,11.837,20236,8.407,20237,8.407,20238,8.407,20239,8.407,20240,8.407,20241,8.407,20242,8.407,20243,8.407,20244,8.407]],["title/injectables/TimeoutInterceptor.html",[105,0.91,13047,5.947]],["body/injectables/TimeoutInterceptor.html",[0,0.267,3,0.019,4,0.019,5,0.009,7,0.119,8,1.241,27,0.424,29,0.805,30,0.001,31,0.576,32,0.14,33,0.497,35,0.95,55,2.468,95,0.156,101,0.013,103,0.001,104,0.001,105,1.375,107,1.892,127,0.983,187,1.135,199,2.967,204,2.664,214,2.475,215,2.506,216,1.452,217,1.337,227,1.188,234,1.668,367,4.9,379,1.779,481,3.945,494,6.159,731,4.526,806,3.196,1157,5.138,1158,6.147,1159,5.981,1370,6.827,2226,7.47,2292,8.728,3937,8.516,6444,8.301,8156,8.988,8158,8.988,8159,10.63,8160,10.63,8162,8.988,8370,5.981,9621,6.935,11657,8.301,11807,9.499,13047,8.988,13410,8.988,17390,10.59,17398,7.257,17400,7.257,17700,8.606,20245,7.85,20246,10.276,20247,9.499,20248,7.85,20249,7.85,20250,7.85,20251,10.276,20252,11.456,20253,10.276,20254,7.85,20255,10.276,20256,7.85,20257,7.85,20258,7.85,20259,7.85]],["title/classes/TimestampsResponse.html",[0,0.232,3698,3.949]],["body/classes/TimestampsResponse.html",[0,0.307,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.527,29,0.706,30,0.001,31,0.505,32,0.174,33,0.591,83,4.104,95,0.116,101,0.015,103,0.001,104,0.001,127,1.405,165,0.879,364,2.226,375,4.655,376,2.061,467,3.452,591,5.719,620,5.813,966,4.584,3698,7.643,3715,9.37,9876,10.025,9938,7.277,20260,9.009,20261,9.009,20262,9.009,20263,9.009,20264,9.009,20265,9.009]],["title/injectables/ToggleUserLoginMigrationUc.html",[105,0.91,20266,5.694]],["body/injectables/ToggleUserLoginMigrationUc.html",[0,0.219,3,0.015,4,0.015,5,0.008,7,0.097,8,1.085,27,0.427,29,0.81,30,0.001,31,0.58,32,0.141,33,0.5,35,1.087,36,2.401,39,2.418,47,0.975,95,0.164,99,1.074,101,0.011,103,0.001,104,0.001,105,1.201,107,1.551,111,2.245,112,2.69,127,1.125,129,6.949,132,6.677,167,2.367,187,0.93,189,4.979,191,3.567,192,3.084,199,3.394,204,2.183,216,2.071,217,1.347,221,2.727,227,0.667,234,1.68,305,2.948,347,2.093,355,5.134,461,2.865,766,2.691,843,2.839,1464,2.963,1467,2.054,1795,4.854,1801,3.856,1884,6.769,1982,3.856,1988,6.677,2356,5.144,2725,2.915,4154,7.033,4176,5.038,4184,4.342,4205,4.306,4476,4.993,4478,5.197,4481,5.197,4482,8.69,4489,5.795,4491,6.949,4493,7.033,4494,4.902,4495,5.038,4496,5.388,4498,7.033,4500,8.666,4501,6.677,4508,4.902,4509,5.388,11224,5.038,11843,8.757,16633,5.388,17444,5.627,18907,7.255,20266,7.522,20267,11.199,20268,7.856,20269,6.434,20270,6.434,20271,8.982,20272,6.434,20273,5.627,20274,6.434,20275,6.434]],["title/injectables/TokenGenerator.html",[105,0.91,18761,5.493]],["body/injectables/TokenGenerator.html",[0,0.335,3,0.023,4,0.023,5,0.012,7,0.149,8,1.431,27,0.406,30,0.001,35,1.192,95,0.163,101,0.016,103,0.001,104,0.001,105,1.585,107,2.373,187,1.424,217,1.281,227,1.021,351,5.945,11506,9.922,12254,9.951,12256,6.541,12257,6.444,16652,9.101,18761,9.57,20276,11.847,20277,13.188,20278,9.845,20279,9.845]],["title/classes/TokenRequestMapper.html",[0,0.232,15423,5.947]],["body/classes/TokenRequestMapper.html",[0,0.283,2,0.928,3,0.02,4,0.02,5,0.01,7,0.126,8,1.289,27,0.44,29,0.836,30,0.001,31,0.598,32,0.145,33,0.516,35,1.292,47,0.995,95,0.151,101,0.014,103,0.001,104,0.001,227,1.106,234,1.732,334,0.894,348,5.446,627,4.034,1016,2.921,1142,5.755,1514,10.037,1516,6.721,1518,5.925,1519,6.721,1520,7.277,1521,7.277,1525,7.692,1528,7.692,1529,6.968,1530,6.185,1625,5.528,5530,5.872,5910,6.721,11435,9.032,11568,7.618,15423,9.333,15426,10.037,15482,11.486,15488,7.692,16125,6.721,20280,11.779,20281,11.779,20282,10.67,20283,8.32,20284,8.32,20285,10.67,20286,8.32,20287,8.32,20288,8.32,20289,8.32]],["title/classes/TooManyPseudonymsLoggableException.html",[0,0.232,20290,6.286]],["body/classes/TooManyPseudonymsLoggableException.html",[0,0.239,2,0.781,3,0.017,4,0.017,5,0.008,7,0.106,8,1.15,27,0.538,29,0.549,30,0.001,31,0.392,32,0.183,33,0.523,35,1.153,47,0.893,55,1.509,95,0.149,101,0.012,103,0.001,104,0.001,127,0.877,163,2.156,165,0.746,187,1.013,204,3.939,214,3.002,215,2.236,216,2.495,227,0.726,364,2.212,404,1.716,406,2.278,511,5.467,558,3.36,564,2.568,596,3.821,1013,5.318,1016,2.459,1142,5.011,1180,3.015,1216,4.549,1395,8.106,1396,6.164,1397,3.887,1398,6.887,1402,4.519,1403,3.883,1404,4.519,1405,4.519,1406,4.519,1407,4.519,1408,4.519,1409,4.198,1410,3.953,1416,4.401,1417,5.485,1464,4.983,1465,5.584,1469,5.749,8288,5.625,8289,5.848,8738,4.458,8745,4.11,8746,4.294,8920,6.223,8926,7.188,8927,5.658,10699,5.866,10700,5.866,20290,8.803,20291,10.82,20292,10.118,20293,10.82,20294,7.004,20295,7.004,20296,7.004,20297,9.523]],["title/modules/ToolApiModule.html",[425,1.812,18509,5.493]],["body/modules/ToolApiModule.html",[0,0.186,3,0.013,4,0.013,5,0.007,30,0.001,95,0.178,101,0.009,103,0,104,0,108,3.179,187,0.791,191,3.034,192,3.1,199,3.574,200,3.953,209,3.125,425,2.52,427,1.977,428,2.127,429,2.19,430,2.18,431,2.171,432,3.48,433,2.068,438,5.416,442,3.201,443,2.144,444,2.093,446,3.438,447,3.316,449,3.174,450,2.248,843,2.415,1467,1.747,1878,6.249,1954,8.594,1956,8.808,2627,2.3,2725,2.479,3010,3.061,3568,7.264,3583,4.285,4584,8.404,4593,2.765,5030,3.147,5328,8.404,5333,7.359,6047,9.682,6056,8.594,6073,4.285,6074,3.396,8509,9.339,8557,9.682,8836,8.808,8845,4.583,9106,9.682,9219,9.339,9388,9.682,13848,8.233,18146,9.682,18163,9.682,18220,9.682,18509,11.597,20298,5.472,20299,5.472,20300,5.472,20301,9.682,20302,9.682,20303,8.271,20304,8.271,20305,8.271,20306,8.271,20307,8.271,20308,8.271,20309,9.457,20310,4.421,20311,5.472,20312,9.457,20313,8.001,20314,5.059,20315,5.472,20316,5.472,20317,5.472]],["title/modules/ToolConfigModule.html",[425,1.812,8836,5.181]],["body/modules/ToolConfigModule.html",[0,0.348,3,0.024,4,0.024,5,0.012,30,0.001,95,0.156,101,0.017,103,0.001,104,0.001,108,5.936,154,4.681,187,1.478,209,3.378,425,3.228,427,3.692,432,3.761,433,3.863,836,5.936,1307,7.278,8519,9.838,8836,9.23,12568,8.559,20318,10.22,20319,10.22]],["title/classes/ToolConfiguration.html",[0,0.232,12568,5.694]],["body/classes/ToolConfiguration.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,27,0.367,30,0.001,32,0.121,47,0.867,55,2.619,95,0.114,101,0.02,103,0.001,104,0.001,108,6.472,144,2.45,165,0.873,217,1.159,319,3.33,334,0.957,347,2.8,627,3.731,2130,3.892,2131,4.355,2132,4.198,3859,4.983,8517,9.264,8519,9.706,8791,10.634,8824,10.634,11577,6.013,12564,11.24,12565,11.24,12566,11.24,12567,8.236,12568,9.332,12569,10.301,12570,10.301,12571,10.301,12572,10.301,12573,9.332,20320,8.909]],["title/controllers/ToolConfigurationController.html",[481,2.611,20304,5.947]],["body/controllers/ToolConfigurationController.html",[0,0.167,3,0.012,4,0.012,5,0.006,7,0.074,8,0.892,27,0.407,29,0.773,30,0.001,31,0.553,32,0.173,33,0.477,35,1.195,36,2.544,95,0.148,100,1.645,101,0.008,103,0,104,0,112,2.804,116,3.962,158,4.338,185,4.944,187,0.71,192,3.436,199,4.358,200,3.962,209,3.921,215,1.568,216,0.908,217,1.544,221,2.284,227,1.023,264,4.446,364,1.797,376,1.124,379,2.236,447,2.036,481,1.886,483,2.342,491,6.329,494,5.915,513,6.5,538,4.447,553,6.413,555,2.554,556,2.613,561,2.633,563,5.915,1268,7.581,1904,2.055,2130,5.182,2461,7.19,2559,4.793,2727,2.357,2930,2.633,3743,5.79,4466,6.891,5729,8.265,5731,7.972,5802,7.519,6064,7.992,6126,8.632,7088,3.742,8524,7.431,8538,6.459,8557,7.431,8562,8.203,8563,8.203,10306,9.123,11774,6.282,13630,4.541,13939,7.168,13941,6.45,13942,6.45,15158,8.632,16929,7.865,18085,8.265,18087,7.972,18099,7.728,18276,7.728,20304,6.459,20310,8.547,20321,8.874,20322,8.874,20323,4.912,20324,7.385,20325,7.385,20326,4.541,20327,4.912,20328,4.912,20329,7.385,20330,4.912,20331,4.912,20332,4.912,20333,6.827,20334,7.385,20335,7.385,20336,7.385,20337,4.912,20338,4.912,20339,7.385,20340,7.385,20341,4.912,20342,4.296,20343,4.912,20344,4.912,20345,3.846,20346,4.541,20347,4.912,20348,4.541,20349,4.912,20350,4.912,20351,4.296,20352,4.296,20353,4.912,20354,4.912,20355,4.541,20356,4.912,20357,4.912,20358,4.114,20359,4.912]],["title/classes/ToolConfigurationMapper.html",[0,0.232,20342,5.947]],["body/classes/ToolConfigurationMapper.html",[0,0.228,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,8,1.115,27,0.47,29,0.968,30,0.001,31,0.692,32,0.155,33,0.551,35,1.379,95,0.146,101,0.011,103,0.001,104,0.001,139,3.677,158,6.477,200,2.084,209,3.491,217,1.647,227,1.181,234,1.849,276,7.455,627,4.141,982,3.335,1904,2.799,2559,5.413,2727,3.21,3709,4.445,4466,7.492,5007,4.988,5729,8.847,5731,9.652,5735,6.447,5736,5.208,5737,4.863,8523,7.455,8524,10.602,8546,5.603,8593,7.455,8801,6.572,8880,7.031,9219,5.404,9242,8.072,18085,8.847,18087,9.652,20342,8.072,20360,11.045,20361,6.69,20362,10.565,20363,10.565,20364,10.565,20365,10.565,20366,6.69,20367,6.69,20368,9.228,20369,6.69,20370,6.69,20371,10.565,20372,6.69,20373,6.69,20374,6.69,20375,6.69,20376,9.228,20377,8.531,20378,6.69,20379,6.69,20380,6.69,20381,6.69,20382,6.69,20383,6.69]],["title/controllers/ToolContextController.html",[481,2.611,20306,5.947]],["body/controllers/ToolContextController.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.807,10,1.739,27,0.411,29,0.782,30,0.001,31,0.559,32,0.174,33,0.482,34,1.988,35,1.472,36,2.561,95,0.153,100,1.442,101,0.007,103,0,104,0,111,0.864,112,2.817,140,7.147,163,2.056,185,4.798,187,0.623,199,3.484,200,3.64,206,2.192,209,1.424,215,1.375,216,1.235,217,1.583,221,2.309,227,0.956,234,0.699,264,4.193,364,1.817,367,3.186,376,0.985,379,2.392,447,1.786,461,1.872,481,1.654,483,2.054,491,6.344,493,5.09,494,6.822,500,2.957,502,4.145,503,5.017,504,4.372,513,6.515,520,4.438,524,3.842,538,4.154,543,5.946,549,6.327,553,6.398,554,4.198,555,2.24,556,2.291,558,2.067,561,2.31,563,5.98,564,1.579,565,2.147,1016,3.996,1410,2.431,1467,1.375,1904,1.802,2255,4.757,2356,1.77,2357,3.043,2412,5.209,2727,2.067,2928,3.132,2929,3.842,2930,2.31,3743,6.462,4007,2.707,4171,5.09,4773,2.582,5694,6.132,5757,7.721,5760,2.707,5802,9.099,5819,9.223,5874,3.068,5908,3.768,5915,7.157,5919,3.768,5929,9.44,5941,3.282,5950,3.608,6019,7.157,6022,7.157,6039,7.847,6047,6.853,6050,7.564,6052,7.564,6053,7.564,6054,7.564,6064,4.252,6084,3.982,6088,3.982,7088,5.09,8743,3.48,13940,5.843,13941,6.702,13942,7.674,16929,7.847,20306,5.843,20310,8.527,20345,3.373,20351,5.843,20352,5.843,20358,7.721,20377,3.982,20384,4.308,20385,4.308,20386,4.308,20387,3.768,20388,4.308,20389,3.768,20390,4.308,20391,4.308,20392,4.308,20393,4.308,20394,4.308,20395,4.308,20396,4.308,20397,4.308,20398,6.681,20399,4.308,20400,4.308,20401,4.308,20402,4.308,20403,4.308,20404,4.308,20405,4.308,20406,4.308,20407,4.308,20408,5.843,20409,6.853,20410,4.308,20411,6.681,20412,4.308,20413,4.308,20414,4.308,20415,4.308,20416,3.768,20417,4.308,20418,4.308,20419,4.308,20420,3.982,20421,4.308,20422,4.308,20423,4.308,20424,4.308,20425,4.308,20426,4.308,20427,4.308,20428,4.308]],["title/controllers/ToolController.html",[481,2.611,20308,5.947]],["body/controllers/ToolController.html",[0,0.127,3,0.009,4,0.009,5,0.004,7,0.056,8,0.72,10,1.505,27,0.409,29,0.778,30,0.001,31,0.556,32,0.172,33,0.48,34,1.842,35,1.386,36,2.659,95,0.159,99,0.622,100,1.249,101,0.006,103,0,104,0,111,1.707,112,2.811,127,0.467,158,6.234,163,2.62,185,4.545,187,0.539,200,2.652,206,1.898,209,3.69,216,1.574,217,1.614,221,2.155,227,0.965,234,0.606,264,3.578,364,1.808,367,4.059,376,0.853,379,2.65,447,1.546,461,2.554,469,1.637,481,1.432,483,1.779,491,6.165,493,4.544,494,3.574,500,2.56,502,5.283,503,5.708,504,5.572,511,3.013,513,6.331,520,3.962,524,4.896,529,4.315,535,3.197,538,2.687,543,3.791,549,6.389,553,6.317,554,4.682,555,1.939,556,1.984,558,1.789,561,2,563,5.95,564,2.186,565,2.973,693,3.277,701,2.109,766,1.56,1014,2.844,1016,3.486,1028,5.948,1410,2.105,1467,1.19,1904,1.56,2255,4.247,2356,1.532,2357,2.716,2394,4.418,2412,5.419,2559,4.722,2727,1.789,2928,2.711,2929,3.43,2930,2,3743,5.462,3961,3.701,4171,2.842,4466,5.767,5129,2.656,5711,2.656,6064,5.926,6612,5.102,6614,6.283,6616,2.235,6902,3.614,7316,6.093,8523,4.817,8567,5.539,8614,7.129,8727,10.576,8728,6.24,8735,3.448,8743,4.817,8779,3.448,8998,4.544,9106,4.994,9120,5.216,9122,7.129,9146,7.129,9148,6.019,9151,7.129,9153,5.216,9208,8.746,9219,3.013,9264,7.129,9274,6.517,9275,6.517,9279,6.517,9388,6.24,9390,6.888,9391,6.888,10969,3.262,10970,3.262,12788,3.262,12793,4.994,13939,4.817,13941,5.417,13942,7.217,16929,6.92,20308,5.216,20345,2.921,20387,3.262,20389,5.216,20408,5.216,20409,4.994,20416,3.262,20429,3.73,20430,3.73,20431,5.964,20432,3.73,20433,9.928,20434,3.73,20435,3.73,20436,3.73,20437,3.73,20438,3.448,20439,6.666,20440,3.73,20441,3.73,20442,3.73,20443,3.73,20444,3.448,20445,3.73,20446,3.73,20447,3.73,20448,3.73,20449,3.73,20450,3.73,20451,3.73,20452,3.73,20453,3.73,20454,3.73,20455,3.73,20456,3.73,20457,3.73,20458,3.73,20459,3.73,20460,3.73,20461,3.73,20462,3.73,20463,3.73,20464,5.964,20465,5.513,20466,3.73,20467,3.73,20468,3.73,20469,3.73,20470,3.73,20471,3.73,20472,3.73,20473,3.73,20474,9.309,20475,3.73,20476,3.73,20477,3.73,20478,3.73,20479,3.73,20480,3.73,20481,3.73,20482,3.73,20483,3.73,20484,3.73,20485,3.73,20486,3.73,20487,3.262,20488,3.73,20489,3.73]],["title/controllers/ToolLaunchController.html",[481,2.611,20303,5.947]],["body/controllers/ToolLaunchController.html",[0,0.257,3,0.018,4,0.018,5,0.009,7,0.114,8,1.21,27,0.312,29,0.592,30,0.001,31,0.423,32,0.153,33,0.365,34,1.285,35,0.915,36,2.149,95,0.168,100,2.53,101,0.013,103,0.001,104,0.001,108,5.82,112,2.478,175,8.006,185,4.369,187,1.093,199,3.787,200,3.121,205,6.103,206,3.844,208,2.823,209,4.232,210,7.836,215,2.412,216,1.397,217,1.304,221,1.749,227,0.784,264,4.211,364,1.376,367,5.709,376,1.728,379,2.713,447,3.132,481,2.901,483,3.603,491,5.89,513,6.049,553,6.073,555,3.928,556,4.019,561,4.051,563,4.529,1016,3.518,2727,3.625,2930,4.051,3743,4.433,6064,7.156,10708,6.328,13941,7.284,13942,7.284,16929,7.449,20301,9.415,20303,8.764,20314,9.263,20345,5.917,20346,6.985,20358,6.328,20490,7.556,20491,10.393,20492,7.556,20493,10.472,20494,7.556,20495,7.556,20496,7.556,20497,7.556,20498,7.556,20499,8.764,20500,8.764,20501,7.556,20502,9.263,20503,9.415,20504,7.556,20505,7.556,20506,7.556,20507,7.556]],["title/classes/ToolLaunchData.html",[0,0.232,160,5.055]],["body/classes/ToolLaunchData.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.535,29,0.674,30,0.001,31,0.482,32,0.187,33,0.416,47,0.777,95,0.14,101,0.014,103,0.001,104,0.001,108,7.703,127,1.078,134,9.37,160,9.649,163,3.355,165,1.017,209,2.844,210,8.816,236,7.021,238,6.692,240,2.73,347,2.205,405,2.905,595,2.881,2569,6.128,2578,3.837,2579,6.128,4333,5.157,7168,6.012,7169,6.397,16815,7.955,20508,12.259,20509,10.901,20510,8.605,20511,8.605,20512,11.062,20513,8.605,20514,8.605,20515,8.605]],["title/classes/ToolLaunchMapper.html",[0,0.232,205,5.493]],["body/classes/ToolLaunchMapper.html",[0,0.24,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,8,1.156,27,0.48,29,0.912,30,0.001,31,0.652,32,0.158,33,0.563,35,1.41,95,0.139,101,0.012,103,0.001,104,0.001,108,7.07,146,7.992,150,3.313,175,8.938,198,3.426,205,7.729,207,9.094,208,2.635,217,1.7,227,1.207,231,5.304,234,1.145,235,5.4,236,5.614,242,6.52,244,6.52,331,4.49,627,4.177,982,3.516,1016,3.359,1180,4.673,2565,6.958,2568,6.685,2619,6.52,7289,6.458,7293,6.567,7306,5.523,8717,5.907,9161,6.169,20503,9.751,20512,11.603,20516,12.172,20517,7.053,20518,9.568,20519,9.568,20520,9.568,20521,9.568,20522,9.568,20523,7.053,20524,9.568,20525,7.053,20526,7.053,20527,9.568,20528,7.053,20529,7.053,20530,9.568,20531,7.053,20532,7.053,20533,7.053,20534,9.568,20535,9.568,20536,9.568,20537,7.053,20538,9.568,20539,7.053,20540,11.644,20541,7.053,20542,7.053]],["title/modules/ToolLaunchModule.html",[425,1.812,20543,5.694]],["body/modules/ToolLaunchModule.html",[0,0.238,3,0.017,4,0.017,5,0.008,30,0.001,95,0.173,101,0.012,103,0.001,104,0.001,108,4.054,187,1.009,191,3.869,192,2.831,199,2.638,200,3.364,209,3.569,425,2.878,427,2.521,428,2.713,429,2.793,430,2.781,431,2.769,432,3.974,433,4.082,442,3.801,443,2.735,444,2.669,449,3.769,766,2.92,1953,6.638,2470,4.79,2598,10.479,3102,5.638,3568,7.862,4583,7.062,4592,5.466,4593,3.527,5030,4.014,5328,9.096,5333,7.965,5463,5.318,5808,10.108,5813,9.533,5814,9.798,13848,8.911,14551,10.944,15335,10.479,16958,5.845,19838,5.638,20543,11.986,20544,6.98,20545,6.98,20546,6.98,20547,6.98,20548,11.381,20549,11.567,20550,6.98,20551,6.98,20552,6.98,20553,6.98]],["title/classes/ToolLaunchParams.html",[0,0.232,20493,5.947]],["body/classes/ToolLaunchParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.131,34,1.986,47,0.833,95,0.15,101,0.016,103,0.001,104,0.001,108,6.782,165,0.914,199,4.413,200,3.637,209,3.859,364,1.75,368,4.575,369,2.591,370,3.846,371,3.22,374,3.068,376,2.198,379,2.178,467,3.063,1000,4.753,3267,7.034,3795,5.639,20493,10.212,20554,10.793,20555,9.611,20556,9.611]],["title/classes/ToolLaunchRequest.html",[0,0.232,175,4.842]],["body/classes/ToolLaunchRequest.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,27,0.537,29,0.681,30,0.001,31,0.487,32,0.177,33,0.582,47,0.901,95,0.112,101,0.015,103,0.001,104,0.001,108,7.724,127,1.089,150,4.164,165,0.86,175,9.273,178,9.714,210,8.837,231,6.666,235,7.128,236,7.056,347,2.22,367,4.147,405,2.925,595,2.912,6196,4.701,7136,5.465,7168,6.077,7169,6.466,16581,7.026,17354,7.284,20508,12.293,20557,8.698,20558,10.976,20559,8.698,20560,8.698,20561,8.698,20562,8.04,20563,8.04]],["title/classes/ToolLaunchRequestResponse.html",[0,0.232,20503,5.694]],["body/classes/ToolLaunchRequestResponse.html",[0,0.242,2,0.793,3,0.017,4,0.017,5,0.009,7,0.107,27,0.503,29,0.557,30,0.001,31,0.399,32,0.166,33,0.622,47,0.833,95,0.124,101,0.012,103,0.001,104,0.001,108,7.31,127,0.891,144,2.647,145,1.802,150,4.227,165,0.754,178,9.862,208,2.658,209,4.159,210,9.03,231,6.768,234,1.563,235,6.891,236,6.4,347,1.947,364,2.129,367,6.001,368,4.579,369,2.136,371,3.223,376,1.628,379,2.648,405,2.565,467,3.203,595,2.382,1013,5.352,1031,3.016,2035,5.202,2536,7.844,2626,6.224,2929,5.536,6196,3.846,7060,7.775,7136,4.471,7168,4.971,7169,5.289,11779,7.775,16581,5.748,17354,5.959,20500,8.419,20503,10.225,20554,11.633,20562,6.578,20563,6.578,20564,7.115,20565,9.625,20566,7.115,20567,8.898,20568,7.115,20569,9.625,20570,7.115]],["title/injectables/ToolLaunchService.html",[105,0.91,20548,5.694]],["body/injectables/ToolLaunchService.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.077,8,0.921,26,2.547,27,0.466,29,0.844,30,0.001,31,0.603,32,0.163,33,0.521,35,1.22,36,2.161,39,2.45,47,0.649,95,0.167,99,0.855,101,0.009,103,0,104,0,105,1.02,107,1.235,108,6.792,111,2.646,112,2.489,127,0.955,139,7.195,140,7.015,145,1.93,148,2.346,154,2.347,158,6.399,160,8.394,163,1.577,165,0.597,175,7.177,187,0.741,192,2.271,198,2.489,199,1.937,200,3.355,201,4.63,204,1.739,205,4.139,206,2.607,208,1.914,209,2.519,210,3.354,212,7.622,216,2.088,217,1.626,218,7.046,221,2.333,227,0.944,234,1.636,305,2.593,564,2.794,1353,2.474,2565,5.045,2598,10.061,3364,5.136,4519,7.394,5334,9.157,5350,5.428,5358,4.292,5737,6.616,5965,4.013,5966,3.58,6057,7.501,6074,4.73,6100,7.17,6105,4.013,7693,7.046,8606,4.482,8608,3.725,11660,7.96,15335,10.061,18226,4.737,20548,6.383,20549,11.106,20571,11.693,20572,5.124,20573,7.622,20574,7.622,20575,9.101,20576,9.101,20577,7.622,20578,7.622,20579,5.124,20580,7.622,20581,5.124,20582,5.124,20583,5.124,20584,5.124,20585,5.124,20586,4.482,20587,5.124,20588,5.124,20589,5.124,20590,5.124,20591,5.124,20592,5.124,20593,7.046,20594,5.124,20595,5.124,20596,5.124,20597,5.124,20598,5.124,20599,4.737,20600,5.124]],["title/injectables/ToolLaunchUc.html",[105,0.91,20301,5.694]],["body/injectables/ToolLaunchUc.html",[0,0.262,3,0.018,4,0.018,5,0.009,7,0.116,8,1.224,26,2.781,27,0.418,29,0.794,30,0.001,31,0.568,32,0.138,33,0.49,35,0.93,36,2.173,39,2.069,95,0.171,99,1.283,101,0.013,103,0.001,104,0.001,105,1.356,107,1.853,108,6.585,111,2.273,112,2.499,127,1.269,140,6.612,160,8.428,175,7.216,187,1.111,199,4.555,200,3.156,201,3.91,208,2.871,216,2.096,217,1.569,221,2.624,227,0.797,766,3.215,843,4.472,1795,5.477,1801,4.606,2725,3.482,3010,4.298,3267,6.741,5815,8.586,6056,9.752,6073,6.018,6074,4.769,6082,6.722,6086,6.208,20301,8.487,20491,9.368,20548,10.775,20593,9.368,20601,11.337,20602,7.686,20603,7.686,20604,7.686,20605,10.134,20606,7.686,20607,7.105,20608,7.686,20609,7.686]],["title/modules/ToolModule.html",[425,1.812,1954,5.055]],["body/modules/ToolModule.html",[0,0.252,3,0.017,4,0.017,5,0.009,30,0.001,95,0.17,101,0.012,103,0.001,104,0.001,187,1.069,192,2.202,199,2.793,200,3.463,209,4.087,210,4.836,425,2.963,427,2.669,428,2.872,429,2.957,430,2.944,431,2.932,432,4.091,433,4.202,442,3.95,443,2.895,444,2.826,449,3.917,704,3.659,766,3.091,1852,3.12,1865,3.366,1869,5.786,1953,6.898,1954,10.546,1959,4.027,2440,4.21,2531,3.994,5030,4.25,5328,7.177,5334,10.738,5808,11.077,5813,10.448,5814,10.738,6105,5.786,8836,9.694,8845,6.189,20543,11.485,20610,7.39,20611,7.39,20612,7.39,20613,7.39,20614,7.39]],["title/injectables/ToolPermissionHelper.html",[105,0.91,6056,5.055]],["body/injectables/ToolPermissionHelper.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.088,8,1.015,26,2.584,27,0.405,29,0.77,30,0.001,31,0.55,32,0.134,33,0.475,35,1.017,36,2.302,39,2.891,95,0.165,99,0.977,101,0.01,103,0,104,0,105,1.124,107,1.411,111,2.279,112,2.608,116,3.686,127,1.052,129,6.662,130,8.226,132,6.34,139,6.699,140,6.581,187,0.847,188,3.966,189,4.657,191,3.245,192,3.2,197,3.678,199,4.981,200,2.617,201,4.274,216,2.102,217,1.48,221,2.631,234,0.95,284,3.164,305,1.668,315,7.348,316,4.169,317,5.412,322,5.412,334,0.629,367,2.792,425,1.56,461,2.248,504,3.831,574,2.57,667,2.775,766,3.514,839,2.792,843,4.738,1031,1.834,1734,4.352,1795,6.588,1852,2.472,1884,6.588,1939,6.865,1953,4.09,1957,4.46,1973,4.169,1978,4.584,1981,5.12,1982,5.035,2487,3.726,2627,3.531,2651,4.169,2725,2.652,2727,5.151,3088,5.982,3115,7.805,3129,4.729,3572,7.981,4140,3.831,4151,4.729,4184,3.951,4773,3.509,5462,4.09,5905,5.412,6056,6.245,6072,4.352,6079,5.412,8560,9.083,8561,8.594,8569,5.412,8571,5.12,11774,3.726,14098,4.584,16958,4.903,18886,5.12,19838,4.729,20615,10.736,20616,9.826,20617,9.826,20618,5.854,20619,5.854,20620,5.854,20621,6.578,20622,9.083,20623,9.083,20624,5.854,20625,5.854,20626,9.826,20627,8.401,20628,7.766,20629,5.854,20630,5.854]],["title/classes/ToolReference.html",[0,0.232,5957,5.181]],["body/classes/ToolReference.html",[0,0.288,2,0.943,3,0.02,4,0.02,5,0.01,7,0.128,27,0.544,29,0.663,30,0.001,31,0.474,32,0.179,33,0.574,47,0.941,95,0.109,101,0.014,103,0.001,104,0.001,127,1.06,165,0.845,198,4.109,200,4.179,347,2.181,564,4.352,2037,4.964,3449,7.4,5350,8.454,5694,7.794,5698,6.04,5717,5.385,5736,6.7,5752,5.537,5957,10.059,5975,9.59,5976,7.821,5977,7.821,5978,7.4,5979,9.942,5980,7.821,20631,13.418,20632,10.785,20633,10.785,20634,8.46,20635,8.46,20636,8.46,20637,8.46,20638,7.821,20639,7.821,20640,8.46]],["title/controllers/ToolReferenceController.html",[481,2.611,20307,5.947]],["body/controllers/ToolReferenceController.html",[0,0.212,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,27,0.361,29,0.687,30,0.001,31,0.491,32,0.164,33,0.424,35,1.061,36,2.365,95,0.159,100,2.081,101,0.01,103,0.001,104,0.001,112,2.66,158,5.392,185,4.69,187,0.899,199,3.838,200,3.863,206,3.162,209,3.844,215,1.984,216,1.149,217,1.514,221,2.029,227,0.909,234,1.009,264,4.268,364,1.597,376,1.422,379,2.735,447,2.576,461,2.897,481,2.386,483,2.964,491,6.102,494,6.611,513,6.267,535,5.914,549,7.57,553,6.155,555,3.231,556,3.306,561,3.332,563,5.254,1865,5.024,1904,2.6,2630,7.583,2727,2.982,2930,3.332,3743,5.144,3961,6.845,5129,6.243,5694,5.899,5757,9.238,5802,8.404,5950,5.205,5957,8.404,5959,9.749,5962,5.746,5972,5.746,8743,8.91,13941,7.383,13942,7.383,16929,7.55,20302,8.505,20307,7.668,20310,8.204,20326,5.746,20333,8.104,20345,4.867,20351,5.436,20352,5.436,20358,5.205,20438,8.104,20439,8.637,20641,6.215,20642,6.215,20643,8.883,20644,9.389,20645,6.215,20646,6.215,20647,6.215,20648,6.215,20649,6.215,20650,6.215,20651,6.215,20652,6.215,20653,6.215,20654,9.648,20655,6.215,20656,6.215,20657,6.215,20658,6.215,20659,6.215,20660,6.215,20661,6.215,20662,6.215]],["title/classes/ToolReferenceListResponse.html",[0,0.232,20654,5.947]],["body/classes/ToolReferenceListResponse.html",[0,0.318,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.473,29,0.732,30,0.001,31,0.523,32,0.169,33,0.452,95,0.147,101,0.016,103,0.001,104,0.001,127,1.17,145,2.366,163,4.092,165,0.899,200,3.869,209,3.088,364,1.702,376,2.137,467,3.011,1006,6.528,1009,6.537,1011,4.721,1026,5.179,1865,5.658,5694,7.215,5732,8.986,5959,11.076,18159,10.864,20654,10.037,20663,9.343]],["title/classes/ToolReferenceMapper.html",[0,0.232,20664,5.947]],["body/classes/ToolReferenceMapper.html",[0,0.302,2,0.989,3,0.021,4,0.021,5,0.011,7,0.134,8,1.342,27,0.366,29,0.695,30,0.001,31,0.497,32,0.121,33,0.429,35,1.074,95,0.156,101,0.015,103,0.001,104,0.001,140,7.157,158,6.532,198,4.308,200,3.779,201,4.513,217,1.154,227,0.92,234,1.44,274,7.758,564,4.663,627,3.723,1904,3.71,5350,9.058,5694,6.454,5698,4.513,5736,5.006,5957,10.182,5965,6.946,5967,7.758,5975,7.165,5979,7.428,8593,7.165,8880,6.758,20360,10.272,20664,9.719,20665,8.87,20666,12.134,20667,8.87,20668,8.87]],["title/classes/ToolReferenceResponse.html",[0,0.232,5959,5.493]],["body/classes/ToolReferenceResponse.html",[0,0.23,2,0.754,3,0.016,4,0.016,5,0.008,7,0.102,27,0.511,29,0.529,30,0.001,31,0.595,32,0.168,33,0.514,34,1.581,47,0.884,95,0.119,101,0.011,103,0.001,104,0.001,127,0.846,150,3.217,165,0.728,199,3.512,200,3.954,209,4.336,234,1.509,347,1.879,364,2.184,368,5.202,369,2.869,370,4.082,371,3.728,375,3.54,376,1.546,379,3.009,467,3.146,564,4.396,779,6.908,1031,2.118,2037,3.965,2130,2.952,2888,4.096,2889,4.601,3766,5.292,5694,7.373,5698,5.403,5717,4.301,5736,5.994,5752,4.423,5761,9.289,5959,10.009,5975,8.579,5979,8.894,7060,7.506,7316,6.082,9633,6.617,11779,7.506,18158,10.63,18159,11.102,20638,6.247,20639,6.247,20669,6.757,20670,9.292,20671,9.292,20672,6.757,20673,6.757,20674,6.757,20675,9.292,20676,6.757,20677,8.59,20678,6.757,20679,6.757,20680,6.757,20681,6.757,20682,6.757,20683,6.757]],["title/injectables/ToolReferenceService.html",[105,0.91,5817,5.694]],["body/injectables/ToolReferenceService.html",[0,0.24,3,0.017,4,0.017,5,0.009,7,0.107,8,1.156,26,2.469,27,0.395,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,35,0.854,36,2.052,95,0.173,99,1.177,101,0.012,103,0.001,104,0.001,105,1.28,107,1.7,111,2.44,112,2.393,127,1.198,139,6.399,140,6.424,158,6.135,187,1.02,192,2.851,198,3.426,199,2.666,200,4.068,201,4.868,206,3.589,216,2.251,217,1.584,221,2.513,227,0.731,564,3.508,1904,2.95,1964,6.52,3267,5.351,5334,10.053,5350,6.814,5694,6.307,5815,8.402,5817,8.013,5957,8.872,5966,4.928,5978,6.169,6057,8.529,6074,5.937,6077,5.127,6086,5.697,6100,7.696,6105,5.523,6106,5.697,8566,5.523,8567,9.543,8594,6.52,8595,6.52,8596,6.52,8608,5.127,20599,6.52,20643,8.369,20664,6.169,20684,10.859,20685,7.053,20686,9.568,20687,7.053,20688,7.053]],["title/injectables/ToolReferenceUc.html",[105,0.91,20302,5.694]],["body/injectables/ToolReferenceUc.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,8,0.98,26,2.898,27,0.46,29,0.874,30,0.001,31,0.625,32,0.158,33,0.539,34,0.949,35,1.271,36,2.8,39,3.234,47,0.579,95,0.154,99,0.931,101,0.009,103,0,104,0,105,1.085,107,1.345,111,2.516,112,2.905,127,1.016,140,7.296,167,3.863,187,0.807,197,6.596,198,2.71,199,3.066,200,3.625,216,1.768,217,1.659,221,2.78,227,1.157,234,0.906,766,2.334,784,3.015,843,3.58,1345,2.213,1369,3.04,1795,4.385,1801,3.344,1904,2.334,2362,3.208,2725,2.527,3010,3.12,3267,5.872,4773,6.292,5694,6.761,5697,6.871,5760,6.596,5815,7.618,5817,10.06,5957,10.125,5965,6.353,6039,4.147,6056,8.929,6073,4.368,6086,4.506,6091,4.25,6099,5.157,20302,6.795,20420,5.157,20607,5.157,20643,7.096,20644,8.839,20689,11.639,20690,5.579,20691,8.113,20692,9.562,20693,5.579,20694,8.113,20695,5.579,20696,8.113,20697,5.579,20698,5.579,20699,5.579,20700,5.579,20701,5.579,20702,5.579,20703,5.579,20704,5.579,20705,5.579,20706,8.113,20707,5.579,20708,8.113,20709,8.113,20710,5.579]],["title/controllers/ToolSchoolController.html",[481,2.611,20305,5.947]],["body/controllers/ToolSchoolController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.813,10,1.756,27,0.413,29,0.785,30,0.001,31,0.561,32,0.172,33,0.485,34,1.942,35,1.419,36,2.568,95,0.157,100,1.456,101,0.007,103,0,104,0,111,1.858,112,2.822,127,0.545,139,7.099,163,2.852,185,4.555,187,0.629,192,2.006,200,3.73,206,2.213,209,2.224,216,1.714,217,1.558,221,2.32,227,0.961,264,3.894,364,1.826,367,4.419,376,0.995,379,2.504,447,1.803,461,1.883,481,1.67,483,2.074,491,6.355,493,5.128,494,5.554,500,2.985,502,4.177,503,6.145,504,6.065,511,4.16,513,6.527,520,4.472,524,5.33,529,2.926,538,3.033,543,5.963,549,6.36,553,6.423,554,4.229,555,2.261,556,2.314,558,2.087,561,2.332,563,6.007,564,1.595,565,3.355,1016,3.254,1410,2.455,1467,1.388,1904,1.82,2255,4.793,2356,1.787,2357,3.066,2412,5.241,2727,2.087,2928,3.162,2929,3.871,2930,2.332,3743,6.219,4007,2.733,4171,3.314,4205,1.466,4466,5.383,5837,3.314,5874,3.098,5941,3.314,6064,4.284,7252,6.577,8528,6.599,9264,5.637,13924,4.021,13939,5.437,13941,4.893,13942,7.704,16929,7.878,17977,4.021,18099,9.377,18108,9.256,18146,5.637,18152,9.666,18153,3.805,18157,8.561,18163,5.637,18172,5.637,18186,8.105,18220,6.895,18222,7.611,18223,7.611,18224,7.611,18225,7.611,20305,5.887,20310,8.561,20345,3.406,20355,8.567,20387,3.805,20389,5.887,20408,5.887,20409,5.637,20416,3.805,20444,4.021,20465,4.021,20502,6.222,20711,4.35,20712,8.233,20713,4.35,20714,4.35,20715,4.35,20716,4.35,20717,4.35,20718,4.35,20719,4.35,20720,4.35,20721,4.35,20722,4.35,20723,4.35,20724,8.233,20725,4.35,20726,4.35,20727,4.35,20728,4.35,20729,4.35,20730,4.35,20731,4.35,20732,4.35,20733,4.35,20734,4.35,20735,4.35,20736,4.35,20737,4.35,20738,4.35,20739,4.35,20740,6.731,20741,4.35,20742,4.35,20743,6.731,20744,4.35,20745,4.35,20746,4.35,20747,4.35,20748,4.35]],["title/classes/ToolStatusOutdatedLoggableException.html",[0,0.232,20586,5.947]],["body/classes/ToolStatusOutdatedLoggableException.html",[0,0.287,2,0.941,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,26,2.843,27,0.444,29,0.661,30,0.001,31,0.473,32,0.146,33,0.408,35,1.022,39,3.194,95,0.152,99,1.409,101,0.014,103,0.001,104,0.001,108,6.889,111,1.693,127,1.057,163,2.598,187,1.221,209,2.79,214,3.396,215,2.695,216,1.992,227,0.875,404,1.941,406,2.746,415,4.563,461,1.931,564,4.58,1216,3.308,1464,5.462,1465,6.121,1467,2.695,1469,6.186,2643,6.889,8288,6.166,8289,6.41,8738,5.374,8740,6.012,8745,4.954,8746,5.176,8776,6.808,8929,6.137,10696,6.82,18400,6.82,20499,7.384,20500,7.384,20586,9.42,20749,11.86,20750,11.86,20751,8.443]],["title/classes/ToolStatusResponseMapper.html",[0,0.232,5963,5.694]],["body/classes/ToolStatusResponseMapper.html",[0,0.321,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,8,1.394,27,0.389,29,0.739,30,0.001,31,0.528,32,0.128,33,0.456,35,1.142,95,0.148,101,0.019,103,0.001,104,0.001,199,3.564,200,2.937,217,1.227,227,0.978,564,4.572,627,3.827,974,5.592,975,6.398,1031,2.955,1180,4.059,3770,10.095,5350,9.255,5358,7.898,5359,8.718,5837,7.185,5963,9.666,18158,10.445,18181,8.718,20752,11.542,20753,9.431,20754,9.431,20755,9.431,20756,9.431,20757,9.431,20758,9.431]],["title/interfaces/ToolVersion.html",[334,0.731,5352,3.99]],["body/interfaces/ToolVersion.html",[3,0.025,4,0.025,5,0.013,7,0.158,8,1.486,27,0.432,30,0.001,35,1.269,55,2.649,101,0.017,103,0.001,104,0.001,334,1.127,336,2.509,5352,7.217,5700,10.257,20759,12.299,20760,10.486,20761,10.486]],["title/classes/UnauthorizedLoggableException.html",[0,0.232,1741,5.694]],["body/classes/UnauthorizedLoggableException.html",[0,0.3,2,0.983,3,0.021,4,0.021,5,0.011,7,0.133,8,1.337,27,0.456,29,0.69,30,0.001,31,0.494,32,0.15,33,0.426,35,1.067,47,0.951,48,5.979,51,5.876,59,2.745,95,0.155,101,0.015,103,0.001,104,0.001,111,1.767,127,1.104,163,2.712,187,1.274,214,3.489,215,2.813,216,2.046,217,1.147,227,0.914,404,1.994,406,2.866,407,7.118,417,6.405,1216,4.336,1464,5.572,1469,6.283,1741,9.267,2004,8.303,8288,6.597,8738,5.609,8740,6.275,8745,5.17,8746,5.403,10699,7.38,10700,7.38,18400,7.118,20762,12.098,20763,8.812,20764,8.146]],["title/classes/UpdateElementContentBodyParams.html",[0,0.232,8182,4.517]],["body/classes/UpdateElementContentBodyParams.html",[0,0.456,2,0.65,3,0.014,4,0.014,5,0.007,7,0.088,9,2.747,27,0.24,30,0.001,31,0.636,32,0.185,47,0.809,83,1.783,95,0.138,99,0.973,101,0.022,103,0,104,0,144,3.121,145,2.121,150,2.018,163,3.017,165,0.656,240,1.849,364,1.062,369,1.294,374,1.86,375,3.734,376,1.333,379,1.898,404,2.045,467,3.592,470,4.747,471,3.973,524,3.352,999,5.331,1000,3.41,1031,1.826,1044,2.796,1770,3.386,2303,4.6,2553,4.178,2848,2.814,2849,2.521,2889,2.886,3251,3.456,3253,3.456,3259,5.059,3262,2.987,3267,3.26,4009,3.71,4037,3.71,4038,7.043,4096,5.745,5562,6.325,5564,6.325,5566,6.325,5568,6.325,5570,6.325,5604,3.815,5643,6.512,5644,6.512,5645,6.512,5646,6.512,5647,6.512,5835,3.662,5836,6.808,6979,3.872,7039,3.71,8169,8.216,8170,5.748,8171,4,8174,7.119,8175,7.119,8176,4,8177,7.119,8178,3.574,8179,3.934,8180,7.119,8181,7.119,8182,5.564,8183,5.564,8184,3.872,8185,5.564,8186,4,8187,4,8188,4,8189,4,8190,4,8619,5.098,20765,5.829,20766,5.829]],["title/classes/UpdateFlagParams.html",[0,0.232,12770,5.947]],["body/classes/UpdateFlagParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,95,0.169,101,0.016,103,0.001,104,0.001,165,0.925,347,2.389,364,1.785,373,6.333,374,3.127,376,2.241,379,2.22,461,2.241,467,3.099,520,7.848,1013,4.487,4476,5.267,10658,8.86,10691,8.781,12770,10.332,20767,10.92,20768,9.798,20769,9.798,20770,9.798]],["title/classes/UpdateMatchParams.html",[0,0.232,12762,5.947]],["body/classes/UpdateMatchParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,39,3.4,47,0.837,95,0.169,101,0.016,103,0.001,104,0.001,165,0.92,364,1.767,374,3.097,376,2.22,379,2.199,461,2.889,467,3.081,520,7.802,1000,4.781,1013,4.444,1639,7.475,1865,5.349,4476,5.236,12762,10.271,20767,10.856,20771,9.703,20772,9.703,20773,9.703]],["title/classes/UpdateNewsParams.html",[0,0.232,14963,5.694]],["body/classes/UpdateNewsParams.html",[0,0.416,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,27,0.475,30,0.001,32,0.157,33,0.501,47,0.871,83,3.168,95,0.157,99,1.326,100,3.467,101,0.013,103,0.001,104,0.001,165,0.956,364,2.099,374,2.535,375,4.65,376,1.817,379,2.767,380,2.759,469,3.487,470,4.819,471,4.949,685,5.465,950,8.109,999,6.591,1397,4.239,1770,6.015,2303,5.133,2385,6.349,2794,6.14,3259,4.099,6153,7.107,6853,7.654,6858,7.638,7033,6.947,7039,6.591,7040,8.672,7041,7.889,7051,7.889,7052,7.343,14963,8.672,20774,12.209,20775,10.355,20776,10.355,20777,9.057,20778,7.943,20779,7.943,20780,7.943,20781,7.943,20782,7.943,20783,7.943]],["title/classes/UpdateSubmissionItemBodyParams.html",[0,0.232,3731,5.947]],["body/classes/UpdateSubmissionItemBodyParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.131,95,0.15,101,0.016,103,0.001,104,0.001,165,0.914,347,2.646,364,1.75,368,4.575,369,2.591,373,6.259,374,3.068,376,2.198,379,2.178,467,3.063,2849,5.657,3264,8.123,3731,10.212,7055,9.143,7057,8.884,7058,8.406,7059,10.212,7060,9.431,7061,8.884,20784,11.675]],["title/entities/User.html",[380,1.445,461,1.555]],["body/entities/User.html",[0,0.149,3,0.01,4,0.01,5,0.005,7,0.19,27,0.541,30,0.001,32,0.177,33,0.658,34,0.744,47,0.977,83,3.592,95,0.129,96,1.196,101,0.014,103,0,104,0,116,1.362,144,1.203,165,0.867,192,3.3,214,1.379,217,1.075,227,0.454,234,1.509,240,4.188,305,1.246,319,1.307,334,0.726,347,1.671,364,2.39,369,2.988,370,4.135,380,1.975,381,1.455,386,7.151,394,2.491,396,3.425,398,1.289,399,2.682,400,1.93,402,1.813,404,0.788,405,1.165,406,1.422,461,1.546,496,3.924,844,4.576,851,4.791,852,4.791,853,5.185,854,5.042,1019,2.54,1031,1.37,1180,3.555,1843,2.073,1849,4.146,1850,3.825,2632,4.627,2636,3.683,2640,3.683,3090,1.892,3110,5.702,4052,2.566,4198,6.493,4199,7.081,4205,2.278,4210,6.313,4262,6.918,4293,3.425,4294,3.251,4989,3.096,6497,3.825,6511,4.097,6521,2.682,6543,2.714,6544,2.621,6871,2.593,6872,2.682,7299,5.15,9538,2.906,9539,3.179,9540,2.906,9541,3.179,9542,3.332,9543,3.533,9876,7.081,9938,3.533,9942,3.663,11801,6.673,11802,6.673,11803,6.673,12040,5.66,12160,3.663,12161,3.533,12162,3.663,12163,3.533,12165,3.663,12169,5.66,12170,3.533,12183,6.378,12209,3.425,12210,3.251,12554,3.425,12581,5.46,12582,4.043,12583,7.278,12584,7.081,12585,6.909,12586,7.278,12587,6.248,12588,6.248,12589,6.248,12590,6.918,12591,3.663,12592,4.043,12593,3.663,12594,4.043,12595,3.663,12596,4.043,12597,3.663,12598,4.043,12599,3.663,12600,4.043,12601,4.043,12602,6.248,20785,4.373,20786,4.373,20787,4.373,20788,4.373,20789,4.373,20790,4.373,20791,4.373,20792,4.373,20793,4.373,20794,4.373,20795,4.373,20796,4.373,20797,4.373,20798,4.373,20799,4.373,20800,4.373,20801,4.373,20802,4.373,20803,4.373]],["title/classes/UserAlreadyAssignedToImportUserError.html",[0,0.232,20804,6.286]],["body/classes/UserAlreadyAssignedToImportUserError.html",[0,0.269,2,0.881,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.544,30,0.001,32,0.184,33,0.499,35,0.956,47,0.819,55,1.701,95,0.156,101,0.013,103,0.001,104,0.001,127,1.439,165,0.808,204,4.133,216,2.527,364,2.302,404,1.859,406,2.568,461,2.36,564,2.895,596,3.954,795,7.044,1013,5.579,1016,2.772,1142,5.321,1180,3.399,1216,4.501,1395,8.303,1396,6.545,1397,4.078,1398,7.313,1402,5.095,1403,4.377,1404,5.095,1405,5.095,1406,5.095,1407,5.095,1408,5.095,1409,4.733,1411,6.183,1416,4.961,1865,3.597,3427,5.419,3498,8.639,3961,4.9,4140,5.168,9603,5.026,13817,6.907,20804,9.536,20805,10.315,20806,10.315,20807,7.896,20808,7.896,20809,10.315]],["title/interfaces/UserAndAccountParams.html",[334,0.731,855,5.694]],["body/interfaces/UserAndAccountParams.html",[0,0.234,3,0.016,4,0.016,5,0.008,26,1.993,30,0.001,47,0.86,48,4.43,49,3.699,51,4.566,94,6.63,95,0.155,99,1.147,101,0.016,103,0.001,104,0.001,111,1.885,116,3.337,185,4.955,192,2.801,217,1.714,227,1.251,334,1.151,336,1.645,404,1.694,461,3.076,627,3.701,658,5.552,734,3.915,840,9.647,841,6.011,842,6.011,843,5.083,844,4.282,845,4.996,846,4.894,847,6.011,848,8.203,849,5.236,850,10.061,851,4.483,852,4.483,853,4.852,854,4.717,855,10.678,856,5.756,857,6.011,858,8.222,859,6.011,860,6.011,861,6.011,862,8.973,863,8.222,864,8.222,865,5.756,866,9.371,867,9.371,868,6.011,869,8.222,870,8.222,871,5.756,872,6.011,873,8.222,874,6.694,875,5.756]],["title/classes/UserAndAccountTestFactory.html",[0,0.232,856,5.694]],["body/classes/UserAndAccountTestFactory.html",[0,0.191,2,0.625,3,0.013,4,0.013,5,0.007,7,0.085,8,0.983,26,1.725,27,0.461,29,0.875,30,0.001,31,0.626,32,0.167,33,0.54,35,1.352,47,0.797,48,3.835,49,3.202,51,3.953,94,6.46,95,0.143,99,0.935,101,0.014,103,0,104,0,111,2.337,116,2.985,138,4.187,144,2.893,185,5.126,192,2.425,217,1.635,227,1.159,319,3.144,334,1.03,404,1.009,461,3.042,627,4.11,658,4.525,734,3.191,840,8.027,841,10.195,842,4.9,843,5.63,844,3.707,845,4.072,846,3.989,847,4.9,848,7.491,849,4.268,850,9.416,851,3.881,852,3.881,853,4.2,854,4.084,855,11.286,856,6.815,857,7.118,858,7.118,859,7.118,860,4.9,861,8.383,862,10.52,863,7.118,864,7.118,865,4.691,866,8.383,867,8.383,868,8.383,869,7.118,870,7.118,871,4.691,872,8.383,873,7.118,874,5.795,875,4.691,20810,8.138,20811,8.138,20812,5.602,20813,5.602,20814,5.602,20815,5.602,20816,5.602,20817,5.602,20818,5.602,20819,5.602]],["title/modules/UserApiModule.html",[425,1.812,18510,5.493]],["body/modules/UserApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.351,425,3.31,427,3.375,428,3.631,429,3.738,430,3.723,431,3.707,432,4.571,433,3.531,442,4.592,443,3.661,444,3.573,446,5.87,447,4.757,449,4.553,481,3.587,2727,4.482,3568,8.505,12787,10.934,18510,11.185,20820,9.343,20821,9.343,20822,9.343,20823,9.343,20824,10.864,20825,9.343]],["title/interfaces/UserBoardRoles.html",[334,0.731,3109,5.181]],["body/interfaces/UserBoardRoles.html",[0,0.267,3,0.019,4,0.019,5,0.009,7,0.118,26,2.673,30,0.001,32,0.171,33,0.587,34,1.333,39,3.27,47,0.922,95,0.132,101,0.021,102,3.932,103,0.001,104,0.001,145,2.599,165,0.804,227,1.064,334,1.103,336,1.875,359,2.732,404,1.849,521,6.329,728,2.996,843,3.457,851,5.791,852,5.791,1031,3.216,1787,5.961,1790,4.333,1855,4.923,1873,4.862,1942,5.377,2545,4.167,2805,6.135,3088,5.579,3089,6.853,3090,4.439,3091,8.29,3097,10.834,3099,9.81,3100,8.29,3101,8.976,3102,6.329,3103,6.853,3104,3.549,3105,7.285,3106,5.792,3107,6.853,3108,6.853,3109,9.253,3110,6.053,3111,6.562,3112,6.329,3113,8.976,3114,6.853]],["title/controllers/UserController.html",[481,2.611,20824,5.947]],["body/controllers/UserController.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.118,8,1.238,27,0.423,29,0.803,30,0.001,31,0.574,32,0.139,33,0.496,35,1.241,36,2.602,95,0.166,100,2.618,101,0.013,103,0.001,104,0.001,112,2.849,185,4.443,187,1.131,206,3.979,215,2.496,216,1.446,217,1.579,221,2.372,227,1.063,234,1.27,364,1.867,376,1.789,447,3.241,461,2.615,481,3.002,483,3.729,491,6.481,513,6.656,543,5.215,552,5.046,555,4.065,556,4.159,561,4.192,1750,3.468,1849,5.144,2470,5.367,2727,3.752,2736,5.118,2930,4.192,3110,3.898,4196,10.163,12787,9.236,17411,6.84,17415,6.549,19256,10.001,20824,8.965,20826,7.82,20827,11.434,20828,7.82,20829,10.25,20830,7.82,20831,7.82,20832,10.25,20833,7.82,20834,7.82,20835,6.84,20836,7.82,20837,7.82,20838,9.475,20839,7.82,20840,7.82,20841,7.82,20842,7.82]],["title/classes/UserDO.html",[0,0.232,7074,3.561]],["body/classes/UserDO.html",[0,0.201,2,0.66,3,0.014,4,0.014,5,0.007,7,0.089,26,2.095,27,0.572,29,0.463,30,0.001,31,0.331,32,0.189,33,0.686,34,1.44,47,0.989,83,3.825,95,0.139,101,0.01,103,0,104,0,127,0.741,165,0.663,347,1.712,404,1.525,496,2.497,591,4.295,592,4.477,596,1.804,620,3.816,622,3.816,851,4.712,852,4.712,853,5.1,854,4.959,1180,3.642,1790,2.497,1844,3.545,1865,2.694,1872,6.265,2545,3.146,3110,4.926,4198,6.904,4199,7.529,4205,3.331,4210,6.209,4282,3.507,4294,4.397,4394,5.467,5708,4.299,6871,3.507,7074,5.978,7080,6.67,7149,4.631,7180,4.506,7183,6.627,7184,4.631,7192,5.173,9538,3.929,9540,3.929,9542,4.506,11801,7.983,11802,7.983,11803,7.983,12183,6.782,12210,4.397,12583,7.738,12584,7.529,12585,7.346,12586,7.738,12590,8.276,12591,4.953,12593,4.953,12595,4.953,12597,4.953,12599,4.953,20843,5.914,20844,8.463,20845,5.914,20846,5.914,20847,5.914,20848,5.914,20849,5.914,20850,5.914,20851,5.914,20852,5.914,20853,5.914,20854,5.914,20855,5.914,20856,5.914,20857,5.914,20858,5.914,20859,5.914,20860,5.914,20861,5.914,20862,5.914,20863,5.914,20864,5.914,20865,5.914,20866,5.914,20867,5.914,20868,5.914,20869,5.914,20870,5.914,20871,5.914,20872,5.914,20873,5.914,20874,5.914,20875,5.914,20876,5.914,20877,5.914,20878,5.914,20879,5.914,20880,5.914,20881,5.914,20882,5.914,20883,5.914]],["title/injectables/UserDORepo.html",[105,0.91,20884,5.694]],["body/injectables/UserDORepo.html",[0,0.117,3,0.008,4,0.008,5,0.004,7,0.052,8,0.674,10,2.844,12,2.555,18,2.819,26,2.365,27,0.522,29,0.983,30,0.001,31,0.709,32,0.171,33,0.607,34,1.627,35,1.519,36,2.576,40,2.693,47,0.83,48,4.948,55,0.74,56,1.647,58,2.216,59,1.07,95,0.143,96,0.939,99,0.573,101,0.006,103,0,104,0,105,0.746,107,0.828,111,2.408,112,2.892,144,0.944,145,1.413,148,1.057,165,0.269,167,2.593,187,0.497,192,1.023,217,1.563,221,2.213,227,1.157,234,1.553,247,1.346,277,2.844,305,0.978,319,1.026,347,1.129,359,1.945,371,1.539,380,1.724,381,1.142,398,1.012,404,1.005,450,1.411,461,2.748,496,3.769,510,2.496,529,1.493,558,1.647,591,1.493,592,1.556,595,1.15,596,3.611,661,2.345,701,2.492,844,1.564,851,2.661,852,2.661,853,2.88,854,4.479,878,3.898,884,2.629,885,4.51,915,1.904,964,2.357,1008,3.016,1014,3.869,1167,1.887,1345,1.362,1790,2.976,2051,1.956,2144,3.149,2343,8.448,2345,3.973,2346,3.973,2347,3.973,2348,3.973,2349,3.898,2350,3.898,2351,3.973,2352,3.898,2353,3.973,2360,2.445,2362,4.667,2363,2.445,2365,2.445,2367,2.248,2368,3.898,2369,2.445,2371,2.445,2373,3.973,2377,3.973,2379,3.766,2380,3.898,2382,2.445,2384,2.058,2385,2.106,2386,2.445,2388,2.445,2390,3.898,2391,2.445,2394,3.308,2408,2.399,2409,2.553,2418,3.004,3110,4.045,3307,3.175,3391,2.248,4198,3.898,4205,1.157,4210,3.506,4369,2.216,4379,3.004,4383,2.876,4384,2.876,4428,2.774,4431,2.158,4435,2.318,4572,2.445,4659,5.93,4661,2.945,5853,4.673,5862,2.496,5863,2.496,5864,2.496,5865,2.496,5866,2.496,5867,2.496,5868,2.496,5869,2.496,5870,2.496,5882,2.399,6612,2.058,6677,2.876,6902,4.918,6912,7.491,6931,2.496,6932,2.496,7074,6.447,7080,5.477,7081,2.774,7083,2.774,7086,3.004,8469,3.016,8583,3.175,8961,4.251,8985,2.876,8989,3.004,8991,3.004,9005,3.175,9019,4.88,9149,6.354,9382,3.175,9384,3.175,9385,3.175,9386,5.158,9387,3.175,10293,3.121,11028,2.876,11801,2.774,11802,2.774,11803,2.774,12183,3.829,12581,7.725,12583,4.369,12584,4.251,12585,4.148,12586,4.369,12590,2.876,13778,2.445,13814,4.673,14014,4.88,14018,4.88,14036,3.175,14043,3.175,14047,3.175,14712,3.175,16350,3.175,18140,2.774,18142,3.004,18143,3.004,20174,4.88,20176,4.88,20884,4.673,20885,10.076,20886,5.58,20887,5.158,20888,5.58,20889,3.434,20890,3.434,20891,7.501,20892,3.434,20893,3.434,20894,5.158,20895,3.434,20896,3.434,20897,3.434,20898,3.434,20899,3.434,20900,3.434,20901,3.175,20902,4.88,20903,3.434,20904,3.434,20905,3.434,20906,3.434,20907,3.434,20908,3.434,20909,3.175,20910,3.434,20911,3.434,20912,3.434,20913,3.175,20914,6.515,20915,3.434,20916,3.175,20917,3.434,20918,5.58,20919,3.434,20920,3.434,20921,3.434,20922,3.175,20923,3.434,20924,3.175,20925,3.175,20926,3.175,20927,3.175,20928,3.434,20929,3.434,20930,3.434,20931,3.434,20932,3.175,20933,3.175,20934,3.175,20935,3.175,20936,3.175,20937,3.434,20938,3.434,20939,3.434,20940,3.434,20941,3.434,20942,3.434,20943,3.434,20944,3.434,20945,3.434,20946,3.434,20947,3.434,20948,3.434,20949,3.434,20950,3.434]],["title/interfaces/UserData.html",[334,0.731,9667,5.324]],["body/interfaces/UserData.html",[0,0.134,3,0.009,4,0.009,5,0.005,7,0.06,26,1.863,30,0.001,31,0.349,32,0.138,34,1.061,36,2.497,47,0.946,51,5.176,55,0.85,72,1.787,95,0.157,99,0.658,101,0.007,103,0,104,0,105,0.834,111,2.517,112,2.567,127,0.494,130,5.219,139,4.829,140,4.638,158,6.251,163,3.4,165,0.488,167,2.295,187,0.571,188,4.2,190,2.933,197,2.479,200,2.737,201,3.934,216,1.881,217,1.755,221,3.086,227,1.232,234,1.652,247,2.443,284,5.172,305,2.503,316,4.441,318,2.933,334,1.028,336,0.944,347,0.798,427,1.425,461,0.902,574,1.732,688,2.022,738,2.051,766,2.609,1166,4.216,1905,2.391,2210,8.344,2280,2.247,2439,2.315,2468,2.365,2633,2.992,4205,1.33,4324,4.798,4571,4.214,4572,2.809,4593,1.993,4737,4.491,4748,4.871,5034,3.006,5209,2.621,5462,2.756,5697,5.061,5735,4.357,5799,2.663,5800,4.143,5815,5.061,5875,4.441,5966,2.756,6039,5.748,6057,5.137,6074,4.798,6077,2.868,6091,4.751,6100,4.741,6473,3.622,6476,4.859,6477,2.756,6580,2.868,6629,3.089,7074,5.013,7080,4.209,7271,3.87,7803,2.546,8369,2.391,8528,2.809,8586,3.006,8608,2.868,8776,4.789,8801,6.257,8917,2.809,8920,6.949,8926,5.137,8955,3.006,9627,3.006,9628,3.187,9629,3.187,9630,3.187,9631,3.187,9632,3.187,9633,2.809,9634,3.187,9647,5.307,9649,3.187,9652,3.187,9654,3.187,9656,3.187,9657,7.098,9659,3.187,9661,3.187,9663,3.187,9665,3.187,9667,8.65,9668,3.187,9670,3.187,9672,3.187,9674,2.756,9675,2.868,9676,3.187,9677,4.883,9678,6.881,9679,4.883,9680,5.037,9681,5.037,9682,7.73,9683,5.037,9684,3.187,9685,5.037,9686,3.187,9687,3.187,9688,5.037,9689,3.187,9690,3.187,9691,5.037,9692,3.187,9693,3.187,9694,3.187,9695,3.187,9696,3.187,9697,3.187,9698,3.187,9699,3.187,9700,3.187,9701,3.187,9702,6.246,9703,3.187,9704,3.187,9705,3.187,9706,3.187,9707,3.187,9708,3.187,9709,3.187,9710,3.187,9711,3.187,9712,3.187,9713,3.187,9714,5.037,9715,3.187,9716,3.089,9717,3.187,9718,4.143,9719,2.663,9720,3.089,9721,3.089,9722,3.187,9723,5.037,9724,3.187,9725,5.037,9726,3.187,9727,3.089,9728,3.187,9729,3.187,9730,3.187,9731,3.187,9732,3.187,9733,3.187,9734,3.187,9735,3.089,9736,3.089]],["title/classes/UserDataResponse.html",[0,0.232,19080,5.694]],["body/classes/UserDataResponse.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,27,0.527,29,0.702,30,0.001,31,0.502,32,0.174,33,0.434,39,3.538,47,0.956,95,0.115,101,0.015,103,0.001,104,0.001,127,1.402,165,0.876,364,2.221,376,2.052,415,4.847,467,3.566,851,6.266,852,6.266,966,4.563,9538,5.958,9540,5.958,19080,11.005,20951,13.141,20952,8.969,20953,8.969,20954,8.969,20955,8.969,20956,8.969]],["title/classes/UserDoFactory.html",[0,0.232,20957,6.286]],["body/classes/UserDoFactory.html",[0,0.167,2,0.546,3,0.012,4,0.012,5,0.006,7,0.074,8,0.89,26,1.561,27,0.535,29,1.025,30,0.001,31,0.712,32,0.183,33,0.607,34,1.506,35,1.495,47,0.525,49,1.926,55,2.481,59,3.29,95,0.136,99,0.817,101,0.008,103,0,104,0,127,0.613,138,4.303,144,3.259,148,1.506,165,0.577,185,4.875,216,1.362,217,0.958,227,0.764,234,0.795,319,3.542,359,2.568,366,2.737,379,2.006,380,1.881,381,2.45,404,1.327,461,1.119,538,3.318,596,3.921,627,2.26,660,7.065,661,4.665,662,5.559,665,4.156,666,5.559,667,5.617,668,4.156,669,4.156,670,4.156,671,4.082,672,4.537,673,4.997,674,6.513,675,5.856,676,7.016,677,2.788,682,2.762,683,4.156,684,2.788,685,5.199,686,5.368,687,4.199,688,5.047,689,4.119,690,2.762,691,2.603,692,4.147,693,2.69,694,2.645,695,2.762,696,5.121,697,2.788,698,4.908,699,2.762,700,7.174,701,4.19,702,6.688,703,2.788,704,3.647,705,2.762,706,2.788,707,2.762,708,2.788,709,2.762,712,2.762,713,6.153,714,2.788,715,2.762,716,4.156,717,3.887,718,4.156,719,2.788,720,2.667,721,2.645,722,2.182,723,2.762,724,2.762,725,2.762,726,2.788,727,2.788,728,1.872,729,2.762,730,2.788,731,2.91,732,2.762,733,2.788,734,2.788,735,2.843,737,2.933,851,2.334,852,2.334,853,2.526,1790,2.066,3110,4.413,4205,1.65,4313,6.305,4315,3.558,4571,4.013,7074,2.563,7081,3.953,7743,4.281,12829,4.281,20957,8.185,20958,4.894,20959,7.364,20960,7.364,20961,4.894,20962,4.894,20963,4.524,20964,4.524]],["title/classes/UserDto.html",[0,0.232,20965,5.694]],["body/classes/UserDto.html",[0,0.236,2,0.772,3,0.016,4,0.016,5,0.008,7,0.105,26,2.564,27,0.567,29,0.542,30,0.001,31,0.388,32,0.187,33,0.674,34,1.829,47,0.968,83,3.534,95,0.089,99,1.155,101,0.012,103,0.001,104,0.001,127,0.867,144,2.598,165,0.74,319,2.823,347,1.91,380,1.47,461,2.16,618,2.83,722,3.085,738,3.598,851,5.127,852,5.127,853,5.549,854,5.396,1180,4.065,3146,4.597,3147,4.465,4198,7.512,4199,8.192,4205,3.624,4210,6.756,4282,4.103,4294,5.144,4756,5.59,6871,4.103,9538,4.597,9540,4.597,9542,5.272,11318,8.731,12583,8.42,12584,8.192,12585,7.993,12586,8.42,12591,5.795,12593,5.795,12595,5.795,12597,5.795,12599,5.795,12646,5.419,13131,6.053,14827,6.397,18373,6.397,20965,10.127,20966,6.92,20967,9.94,20968,6.92,20969,6.92,20970,6.92,20971,6.92,20972,6.92,20973,6.92,20974,6.92,20975,6.92,20976,6.92,20977,6.92,20978,6.92,20979,6.92,20980,6.92,20981,6.92,20982,6.92,20983,6.92,20984,6.92,20985,6.053,20986,6.92,20987,6.92]],["title/classes/UserFactory.html",[0,0.232,848,4.842]],["body/classes/UserFactory.html",[0,0.137,2,0.447,3,0.009,4,0.009,5,0.005,7,0.061,8,0.763,27,0.533,29,1.02,30,0.001,31,0.734,32,0.179,33,0.609,34,1.33,35,1.384,47,0.451,55,2.31,59,3.005,95,0.138,99,0.67,101,0.007,103,0,104,0,127,0.503,138,2.76,144,3.282,148,1.235,165,0.495,185,4.896,192,1.196,216,1.168,217,1.579,227,1.063,319,3.567,359,2.203,366,2.244,379,1.772,380,2.05,381,2.102,404,1.139,461,1.788,496,5.197,538,2.847,596,3.754,627,1.939,660,6.99,661,4.307,662,5.006,665,3.566,666,5.006,667,5.419,668,3.566,669,3.566,670,3.566,671,3.503,672,4.006,673,4.412,674,6.107,675,5.348,676,6.809,677,2.286,682,2.264,683,3.566,684,2.286,685,4.681,686,4.833,687,3.781,688,4.545,689,3.534,690,2.264,691,2.134,692,3.828,693,2.205,694,2.168,695,2.264,696,4.611,697,2.286,698,4.334,699,2.264,700,7.178,701,3.929,702,6.271,703,2.286,704,3.871,705,2.264,706,2.286,707,2.264,708,2.286,709,2.264,710,2.554,711,2.379,712,2.264,713,5.681,714,2.286,715,2.264,716,3.566,717,3.335,718,3.566,719,2.286,720,2.186,721,2.168,722,1.789,723,2.264,724,2.264,725,2.264,726,2.286,727,2.286,728,1.534,729,2.264,730,2.286,731,2.497,732,2.264,733,2.286,735,2.33,736,2.379,737,5.783,843,5.164,845,2.916,846,2.857,848,5.567,851,1.913,852,1.913,853,2.071,862,8.582,865,5.292,871,5.292,875,5.292,1849,5.382,2191,5.842,3110,5.108,4571,4.833,6736,3.142,6737,3.241,6746,3.142,9718,2.665,9719,2.708,12012,3.057,12581,3.241,12829,3.509,20158,3.709,20162,8.199,20963,3.709,20964,3.709,20988,4.012,20989,6.319,20990,6.319,20991,6.319,20992,6.319,20993,4.012,20994,4.012,20995,4.012,20996,6.319,20997,4.012,20998,6.319,20999,4.012,21000,6.319,21001,6.319,21002,6.319,21003,4.012,21004,4.012,21005,7.818,21006,4.012]],["title/classes/UserForGroupNotFoundLoggable.html",[0,0.232,16323,5.947]],["body/classes/UserForGroupNotFoundLoggable.html",[0,0.305,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,8,1.35,27,0.461,29,0.701,30,0.001,31,0.501,32,0.122,33,0.433,35,1.083,95,0.143,100,2.996,101,0.015,103,0.001,104,0.001,127,1.121,163,2.754,214,3.523,215,2.856,216,1.655,227,0.928,461,2.047,1166,6.121,1216,3.506,1345,3.55,1464,5.611,1465,6.288,1467,2.856,1469,6.318,1646,5.005,3049,6.505,4571,4.877,7027,5.553,8288,6.334,8289,6.585,8430,9.992,8443,5.945,10910,8.306,11156,6.505,16323,9.773,18258,8.273,18259,8.273,18260,8.273,21007,12.183,21008,8.949,21009,8.949,21010,8.949]],["title/interfaces/UserGroup.html",[334,0.731,9679,5.324]],["body/interfaces/UserGroup.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.059,26,1.856,30,0.001,31,0.534,32,0.144,34,1.055,36,2.492,47,0.945,51,4.252,55,1.658,72,1.775,95,0.157,99,0.654,101,0.007,103,0,104,0,105,0.83,111,2.513,112,2.561,127,0.491,130,5.196,139,4.811,140,4.62,158,6.242,163,3.392,165,0.486,167,2.282,187,0.567,188,4.191,190,2.913,197,2.462,200,2.726,201,3.917,216,1.876,217,1.754,221,3.083,227,1.23,234,1.647,247,2.43,284,5.155,305,2.494,316,4.417,318,2.913,334,1.025,336,0.938,347,0.793,427,1.415,461,0.896,574,1.72,688,2.008,738,2.037,766,2.594,1166,4.2,1905,2.375,2210,6.855,2280,2.232,2439,2.299,2468,2.348,2633,2.976,4205,1.321,4324,4.777,4571,4.195,4572,2.79,4593,1.98,4737,4.471,4748,4.853,5034,2.985,5209,2.603,5462,2.738,5697,5.038,5735,4.333,5799,2.645,5800,4.121,5815,5.038,5875,4.417,5966,2.738,6039,5.723,6057,5.114,6074,4.777,6077,2.848,6091,4.726,6100,4.72,6473,3.603,6476,4.837,6477,2.738,6580,2.848,6629,3.068,7074,4.996,7080,4.186,7271,3.849,7803,2.528,8369,2.375,8528,2.79,8586,2.985,8608,2.848,8776,4.77,8801,6.234,8917,2.79,8920,6.937,8926,5.114,8955,2.985,9627,2.985,9628,3.165,9629,3.165,9630,3.165,9631,3.165,9632,3.165,9633,2.79,9634,3.165,9647,5.283,9649,3.165,9652,3.165,9654,3.165,9656,3.165,9657,7.071,9659,3.165,9661,3.165,9663,3.165,9665,3.165,9667,8.322,9668,3.165,9670,3.165,9672,3.165,9674,2.738,9675,2.848,9676,3.165,9677,4.857,9678,6.855,9679,6.028,9680,7.705,9681,7.705,9682,7.705,9683,5.01,9684,3.165,9685,5.01,9686,3.165,9687,3.165,9688,5.01,9689,3.165,9690,3.165,9691,5.01,9692,3.165,9693,3.165,9694,3.165,9695,3.165,9696,3.165,9697,3.165,9698,3.165,9699,3.165,9700,3.165,9701,3.165,9702,6.218,9703,3.165,9704,3.165,9705,3.165,9706,3.165,9707,3.165,9708,3.165,9709,3.165,9710,3.165,9711,3.165,9712,3.165,9713,3.165,9714,5.01,9715,3.165,9716,3.068,9717,3.165,9718,4.121,9719,2.645,9720,3.068,9721,3.068,9722,3.165,9723,5.01,9724,3.165,9725,5.01,9726,3.165,9727,3.068,9728,3.165,9729,3.165,9730,3.165,9731,3.165,9732,3.165,9733,3.165,9734,3.165,9735,3.068,9736,3.068]],["title/interfaces/UserGroups.html",[334,0.731,9678,5.324]],["body/interfaces/UserGroups.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.868,30,0.001,31,0.351,32,0.145,34,1.065,36,2.501,47,0.926,51,4.28,55,0.854,72,1.796,95,0.158,99,0.662,101,0.007,103,0,104,0,105,0.837,111,2.519,112,2.57,127,0.497,130,5.236,138,2.735,139,4.842,140,4.65,158,6.256,163,3.661,165,0.49,167,2.304,187,0.573,188,4.207,190,2.947,197,2.491,200,2.744,201,3.947,216,1.885,217,1.756,221,3.088,227,1.234,234,1.655,247,2.453,284,5.185,305,2.51,316,4.458,318,2.947,334,1.031,336,0.949,347,0.802,427,1.432,461,0.907,574,1.741,688,2.031,738,2.061,766,2.619,1166,4.227,1905,2.403,2210,6.9,2280,2.259,2439,2.326,2468,2.376,2633,3.003,4205,1.336,4324,4.814,4571,4.227,4572,2.823,4593,2.003,4737,4.506,4748,4.884,5034,3.021,5209,2.634,5462,2.77,5697,5.077,5735,4.374,5799,2.676,5800,4.159,5815,5.077,5875,4.458,5966,2.77,6039,5.767,6057,5.154,6074,4.814,6077,2.882,6091,4.77,6100,4.756,6473,3.636,6476,4.874,6477,2.77,6580,2.882,6629,3.105,7074,5.025,7080,4.225,7271,3.885,7803,2.558,8369,2.403,8528,2.823,8586,3.021,8608,2.882,8776,4.802,8801,6.274,8917,2.823,8920,6.958,8926,5.154,8955,3.021,9627,3.021,9628,3.203,9629,3.203,9630,3.203,9631,3.203,9632,3.203,9633,2.823,9634,3.203,9647,5.324,9649,3.203,9652,3.203,9654,3.203,9656,3.203,9657,7.117,9659,3.203,9661,3.203,9663,3.203,9665,3.203,9667,8.359,9668,3.203,9670,3.203,9672,3.203,9674,2.77,9675,2.882,9676,3.203,9677,4.902,9678,7.512,9679,4.902,9680,5.057,9681,5.057,9682,7.749,9683,5.057,9684,3.203,9685,5.057,9686,3.203,9687,3.203,9688,5.057,9689,3.203,9690,3.203,9691,5.057,9692,3.203,9693,3.203,9694,3.203,9695,3.203,9696,3.203,9697,3.203,9698,3.203,9699,3.203,9700,3.203,9701,3.203,9702,6.266,9703,3.203,9704,3.203,9705,3.203,9706,3.203,9707,3.203,9708,3.203,9709,3.203,9710,3.203,9711,3.203,9712,3.203,9713,3.203,9714,5.057,9715,3.203,9716,3.105,9717,3.203,9718,4.159,9719,2.676,9720,3.105,9721,3.105,9722,3.203,9723,5.057,9724,3.203,9725,5.057,9726,3.203,9727,3.105,9728,3.203,9729,3.203,9730,3.203,9731,3.203,9732,3.203,9733,3.203,9734,3.203,9735,3.105,9736,3.105]],["title/classes/UserInfoMapper.html",[0,0.232,15035,5.947]],["body/classes/UserInfoMapper.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,8,1.404,27,0.393,29,0.747,30,0.001,31,0.534,32,0.13,33,0.461,34,1.623,35,1.155,95,0.149,99,1.593,100,3.892,101,0.016,103,0.001,104,0.001,217,1.242,227,0.99,234,1.549,461,3.06,627,3.847,738,4.961,851,4.55,852,4.55,975,6.444,982,4.756,3146,6.34,3147,6.157,15006,10.541,15035,10.168,17413,10.168,18294,8.346,18296,8.346,21011,11.625]],["title/classes/UserInfoResponse.html",[0,0.232,15006,5.493]],["body/classes/UserInfoResponse.html",[0,0.283,2,0.928,3,0.02,4,0.02,5,0.01,7,0.126,27,0.512,29,0.652,30,0.001,31,0.72,32,0.169,33,0.621,34,2.274,47,0.937,95,0.107,101,0.014,103,0.001,104,0.001,127,1.337,165,0.836,364,2.146,375,4.487,376,1.903,379,2.816,380,2.267,461,3.007,467,2.8,475,4.067,575,6.395,618,3.403,851,6.126,852,6.126,966,4.233,1403,5.915,2213,6.515,2883,5.446,2884,5.676,2885,5.676,4344,7.692,6986,9.333,9538,5.528,9540,5.528,15006,10.378,18301,7.277,21012,12.848,21013,8.32,21014,7.692]],["title/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.232,18907,5.493]],["body/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.282,2,0.922,3,0.02,4,0.02,5,0.01,7,0.125,8,1.284,26,2.628,27,0.438,29,0.648,30,0.001,31,0.463,32,0.144,33,0.4,35,1.001,52,5.876,83,3.593,95,0.151,99,1.38,101,0.014,103,0.001,104,0.001,111,1.658,127,1.036,163,2.545,187,1.196,192,2.464,214,3.351,215,2.639,216,1.965,227,0.857,355,5.274,404,1.915,406,2.689,795,7.601,1216,3.24,1464,5.409,1465,6.062,1467,2.639,1469,6.138,1477,5.336,4476,5.237,8288,6.106,8289,6.348,8738,5.264,8740,5.889,8745,4.852,8746,5.07,9058,7.578,10340,6.475,12208,8.206,13984,6.475,18400,6.68,18907,8.585,19785,6.68,21015,9.836,21016,11.745,21017,7.644,21018,9.707,21019,8.269,21020,8.269]],["title/modules/UserLoginMigrationApiModule.html",[425,1.812,18511,5.493]],["body/modules/UserLoginMigrationApiModule.html",[0,0.237,3,0.016,4,0.016,5,0.008,30,0.001,52,3.297,95,0.174,101,0.012,103,0.001,104,0.001,187,1.006,191,3.856,192,2.073,206,3.539,349,4.695,355,4.652,425,2.873,427,2.513,428,2.703,429,2.783,430,2.771,431,2.76,432,3.967,433,2.629,438,5.856,442,3.792,443,2.725,444,2.66,446,4.37,447,3.929,449,3.76,461,1.591,1467,2.22,1507,8.304,1546,9.788,1878,6.756,2725,3.151,2727,3.337,4475,10.468,4476,3.101,5333,7.957,10423,5.447,13913,9.524,15420,5.447,15578,9.788,16469,10.468,17433,10.468,18511,11.573,18532,5.825,18899,10.468,20266,10.468,21021,6.956,21022,6.956,21023,6.956,21024,10.097,21025,9.43,21026,9.43,21027,9.478,21028,9.478,21029,6.956]],["title/controllers/UserLoginMigrationController.html",[481,2.611,21026,5.947]],["body/controllers/UserLoginMigrationController.html",[0,0.11,3,0.008,4,0.008,5,0.004,7,0.049,8,0.639,27,0.404,29,0.768,30,0.001,31,0.549,32,0.185,33,0.474,35,1.186,36,2.533,47,0.48,52,6.388,55,1.14,95,0.144,99,0.537,100,1.077,101,0.005,103,0,104,0,111,1.729,112,2.795,127,0.403,145,1.976,185,3.604,187,0.465,192,2.326,204,1.092,206,1.637,216,1.595,217,1.537,221,2.268,227,1.016,234,0.522,264,2.223,355,5.548,364,1.785,376,0.736,379,2.911,447,1.334,461,3.112,481,1.235,483,1.534,491,6.281,498,2.208,511,5.172,513,6.127,529,2.299,543,5.395,549,3.631,553,3.206,555,1.673,556,1.711,561,1.725,563,1.928,564,1.939,694,1.739,728,2.023,774,3.631,795,6.276,1014,2.523,1016,2.74,1433,3.244,1477,5.036,1583,3.462,1605,4.627,2537,5.108,2702,2.384,2727,1.544,2929,1.85,2930,1.725,3104,2.397,3743,5.06,4007,2.022,4475,5.642,4476,4.564,4479,4.627,4489,6.323,4491,5.754,4493,6.111,4494,5.946,4661,4.119,5438,2.106,6761,3.846,7088,5.946,9603,4.968,10933,4.43,12759,4.89,13733,3.846,13940,7.543,13941,7.441,13942,5.673,13946,8.269,13951,4.797,14855,4.627,15277,4.273,15497,6.826,16929,7.285,17433,5.642,17435,4.627,18276,6.111,18349,6.536,18350,6.536,18352,6.826,18397,4.43,18899,5.642,18902,4.627,18907,6.304,19298,2.974,19785,8.818,20266,5.642,20268,5.892,20348,2.974,20409,8.572,20835,2.814,21024,5.442,21026,4.627,21030,9.463,21031,2.974,21032,5.29,21033,6.228,21034,6.228,21035,6.737,21036,3.217,21037,3.217,21038,9.463,21039,5.29,21040,5.29,21041,3.217,21042,3.217,21043,3.217,21044,5.29,21045,3.217,21046,3.217,21047,3.217,21048,9.273,21049,3.217,21050,3.217,21051,3.217,21052,6.536,21053,3.217,21054,3.217,21055,3.217,21056,3.217,21057,3.217,21058,3.217,21059,3.217,21060,3.217,21061,3.217,21062,3.217,21063,5.29,21064,6.536,21065,3.217,21066,5.29,21067,3.217,21068,3.217,21069,6.826,21070,3.217,21071,3.217,21072,3.217,21073,4.89,21074,3.217,21075,3.217,21076,3.217,21077,3.217,21078,3.217,21079,3.217,21080,6.737,21081,5.29,21082,2.814,21083,6.304,21084,9.227,21085,6.826,21086,3.217,21087,3.217,21088,3.217,21089,3.217,21090,3.217,21091,3.217,21092,3.217,21093,3.217,21094,3.217,21095,5.29,21096,3.217,21097,6.737,21098,3.217,21099,3.217,21100,3.217,21101,3.217,21102,3.217,21103,3.217,21104,6.737,21105,3.217,21106,3.217,21107,3.217,21108,3.217,21109,3.217,21110,3.217,21111,3.217,21112,3.217,21113,3.217,21114,3.217,21115,3.217,21116,3.217,21117,3.217]],["title/classes/UserLoginMigrationDO.html",[0,0.232,4489,4.387]],["body/classes/UserLoginMigrationDO.html",[0,0.262,2,0.857,3,0.018,4,0.018,5,0.009,7,0.116,26,2.781,27,0.555,29,0.602,30,0.001,31,0.43,32,0.183,33,0.663,34,1.724,47,0.548,83,4.073,95,0.13,101,0.013,103,0.001,104,0.001,127,0.963,165,0.794,208,2.871,355,5.413,404,1.826,405,2.7,595,2.573,596,2.344,1872,7.001,4205,3.821,4282,4.557,4283,5.713,4489,8.084,5708,5.587,5712,5.856,7180,5.856,18325,8.428,18353,8.638,21018,8.878,21118,13.471,21119,7.686,21120,9.158,21121,8.878,21122,8.878,21123,10.134,21124,7.686,21125,7.686,21126,7.686,21127,7.686,21128,7.686,21129,7.686,21130,7.105,21131,7.105,21132,7.105,21133,7.105,21134,6.722,21135,6.722,21136,6.722,21137,6.722,21138,6.722,21139,6.722,21140,6.722,21141,6.722]],["title/entities/UserLoginMigrationEntity.html",[380,1.445,12185,5.055]],["body/entities/UserLoginMigrationEntity.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.104,27,0.526,30,0.001,32,0.177,33,0.628,83,3.975,95,0.148,96,1.887,101,0.016,103,0.001,104,0.001,145,2.718,165,0.738,192,3.199,216,1.275,240,3.955,355,5.221,364,2.325,369,2.883,370,4.204,371,2.598,380,2.002,381,2.294,386,6.114,398,2.032,399,3.738,400,3.043,402,2.858,404,1.243,405,1.838,406,2.243,844,5.254,1639,4.39,2641,7.379,4989,4.916,6543,4.279,6544,4.133,6751,6.36,8469,6.898,11044,4.818,12185,7.005,16482,8.67,16483,8.67,18074,6.375,18353,8.178,21018,8.405,21120,8.67,21122,8.405,21134,6.032,21135,6.032,21136,6.032,21137,6.032,21138,6.032,21139,6.032,21140,6.032,21141,6.032,21142,12.992,21143,6.896,21144,6.896,21145,6.896,21146,6.896,21147,6.896,21148,6.896,21149,6.896,21150,6.896,21151,6.896,21152,8.711,21153,6.896,21154,6.896,21155,6.896,21156,6.896,21157,6.896,21158,6.896]],["title/classes/UserLoginMigrationError.html",[0,0.232,21159,5.947]],["body/classes/UserLoginMigrationError.html",[0,0.262,2,0.857,3,0.018,4,0.018,5,0.009,7,0.116,8,1.224,27,0.541,29,0.602,30,0.001,31,0.43,32,0.185,33,0.548,35,0.93,47,0.808,52,5.374,55,1.655,59,2.394,95,0.13,101,0.013,103,0.001,104,0.001,127,0.963,165,0.794,187,1.111,204,4.09,216,2.515,355,4.844,364,2.282,404,1.826,406,2.5,461,1.758,558,3.687,564,2.818,596,3.925,798,6.367,1013,5.52,1016,2.698,1142,5.251,1180,5.188,1216,4.442,1395,8.26,1396,7.137,1397,4.036,1398,7.217,1402,4.959,1403,4.261,1404,4.959,1405,4.959,1406,4.959,1407,4.959,1408,4.959,1409,4.606,1410,4.338,1416,4.829,4476,4.518,6833,4.829,7027,4.769,8744,6.436,13723,5.713,13758,8.487,18279,6.722,21015,8.487,21159,8.863,21160,7.686]],["title/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.232,4493,5.324]],["body/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.279,2,0.913,3,0.019,4,0.019,5,0.01,7,0.124,8,1.275,26,2.618,27,0.435,29,0.641,30,0.001,31,0.458,32,0.144,33,0.396,35,0.991,52,5.853,83,3.576,95,0.15,99,1.366,101,0.014,103,0.001,104,0.001,111,1.641,127,1.025,163,2.519,187,1.184,214,3.329,215,2.613,216,1.952,227,0.849,355,5.351,404,1.903,406,2.662,461,1.872,1216,3.207,1464,5.383,1465,6.032,1467,2.613,1469,6.115,4476,5.211,4493,8.268,8288,6.077,8289,6.317,8745,4.803,8746,5.019,9058,7.542,12208,8.166,13984,6.41,14855,7.159,18349,10.342,18350,10.342,18351,7.567,18352,10.801,18353,9.409,21015,9.789,21017,7.567,21161,8.185,21162,8.185,21163,8.185,21164,8.185,21165,8.185]],["title/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.232,20273,5.947]],["body/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.285,2,0.934,3,0.02,4,0.02,5,0.01,7,0.126,8,1.294,26,2.838,27,0.442,29,0.656,30,0.001,31,0.469,32,0.114,33,0.405,35,1.013,39,3.181,52,5.903,95,0.138,99,1.397,101,0.014,103,0.001,104,0.001,111,2.368,127,1.342,163,2.577,192,3.193,214,3.378,216,2.185,227,0.868,347,2.39,355,5.379,415,4.525,461,1.915,540,6.086,564,3.069,1216,3.28,1464,5.441,1465,6.097,1467,2.672,1469,6.167,4476,5.267,8288,6.142,8289,6.385,10340,6.556,10696,6.763,11843,9.258,12208,8.701,13412,7.323,13984,6.556,20273,9.37,21166,10.921,21167,8.372,21168,8.372,21169,8.372,21170,8.372]],["title/classes/UserLoginMigrationMandatoryParams.html",[0,0.232,21069,5.947]],["body/classes/UserLoginMigrationMandatoryParams.html",[0,0.405,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,27,0.408,30,0.001,32,0.134,52,5.632,95,0.153,101,0.017,103,0.001,104,0.001,165,0.931,347,2.403,355,5.308,364,1.802,373,6.37,374,3.158,376,2.263,467,3.117,4476,5.298,7330,7.538,11843,9.467,21069,10.393,21171,10.984,21172,9.894,21173,9.894]],["title/classes/UserLoginMigrationMapper.html",[0,0.232,21082,5.947]],["body/classes/UserLoginMigrationMapper.html",[0,0.285,2,0.932,3,0.02,4,0.02,5,0.01,7,0.126,8,1.292,27,0.441,29,0.838,30,0.001,31,0.599,32,0.145,33,0.517,35,1.295,39,2.25,52,3.96,95,0.152,99,1.394,101,0.014,103,0.001,104,0.001,217,1.392,227,1.109,234,1.357,355,5.377,529,5.13,627,4.038,982,4.165,1016,3.756,1790,3.528,4476,5.262,4489,8.03,18325,6.211,18353,6.366,21018,6.542,21052,10.422,21082,9.358,21083,10.052,21084,10.391,21120,6.749,21121,6.542,21122,6.542,21174,11.802,21175,7.724,21176,10.699,21177,10.699,21178,10.699,21179,8.355,21180,8.355,21181,10.699,21182,8.355,21183,8.355,21184,8.355,21185,8.355,21186,8.355,21187,8.355,21188,8.355,21189,8.355,21190,8.355]],["title/modules/UserLoginMigrationModule.html",[425,1.812,13913,5.181]],["body/modules/UserLoginMigrationModule.html",[0,0.239,3,0.017,4,0.017,5,0.008,30,0.001,95,0.168,101,0.012,103,0.001,104,0.001,187,1.015,191,3.89,192,2.091,355,3.831,425,2.886,427,2.535,428,2.727,429,2.807,430,2.796,431,2.784,432,3.985,433,4.093,437,8.924,438,5.871,442,3.815,443,2.749,444,2.683,449,3.783,450,2.882,766,2.935,1467,2.239,1548,8.756,1564,5.346,1567,4.815,3568,7.874,4476,3.128,4482,9.686,4483,10.111,4484,10.987,4593,3.545,5333,7.977,13913,10.935,14813,11.391,14817,9.814,15396,10.651,18532,5.876,21191,7.016,21192,7.016,21193,7.016,21194,7.016,21195,7.016]],["title/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.232,4494,5.181]],["body/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.283,2,0.926,3,0.02,4,0.02,5,0.01,7,0.125,8,1.287,26,2.833,27,0.439,29,0.65,30,0.001,31,0.465,32,0.145,33,0.402,35,1.005,52,5.885,59,2.586,95,0.151,99,1.386,101,0.014,103,0.001,104,0.001,111,1.665,127,1.04,163,2.555,187,1.201,192,2.474,214,3.36,215,2.65,216,1.97,227,0.861,355,5.369,404,1.92,406,2.701,461,1.899,1216,3.253,1464,5.42,1465,6.073,1467,2.65,1469,6.148,2644,6.309,4205,3.966,4282,4.923,4476,5.247,4494,8.119,4661,4.382,5511,5.604,8288,6.118,8289,6.36,8738,5.285,8740,5.913,8745,4.872,8746,5.091,12208,8.674,13984,6.502,15325,10.879,18399,7.676,18400,6.707,21015,9.855,21196,8.303]],["title/interfaces/UserLoginMigrationQuery.html",[334,0.731,21083,5.493]],["body/interfaces/UserLoginMigrationQuery.html",[3,0.025,4,0.025,5,0.013,7,0.157,30,0.001,32,0.141,33,0.591,39,3.613,47,0.927,52,4.919,101,0.017,103,0.001,104,0.001,165,0.958,334,1.115,336,2.484,355,4.912,4476,4.627,9272,9.077,21083,9.875,21197,10.378]],["title/injectables/UserLoginMigrationRepo.html",[105,0.91,14817,5.324]],["body/injectables/UserLoginMigrationRepo.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,8,0.87,10,2.906,12,3.298,18,3.638,26,2.677,27,0.541,29,1.02,30,0.001,31,0.729,32,0.177,33,0.63,34,1.65,35,1.562,36,2.578,40,2.293,95,0.146,96,1.97,97,2.054,99,0.793,101,0.008,103,0,104,0,105,0.963,107,1.145,111,2.354,112,2.87,127,0.595,145,1.203,148,1.462,165,0.372,167,2.649,187,0.687,192,2.146,216,1.331,217,1.263,221,1.099,227,1.138,234,1.169,355,4.19,359,2.51,380,2.062,398,1.399,404,1.297,595,1.59,596,3.897,661,3.654,844,2.163,878,5.03,884,3.393,885,5.268,915,2.633,1467,1.516,1790,3.671,2051,2.706,2343,9.006,2345,5.127,2346,5.127,2347,5.127,2348,5.127,2349,5.03,2350,5.03,2351,5.127,2352,5.03,2353,5.127,2354,3.453,2355,5.58,2356,3.985,2357,4.419,2359,5.234,2360,3.382,2362,5.58,2363,3.382,2365,3.382,2367,3.109,2368,5.03,2369,3.382,2371,3.382,2373,5.127,2377,5.127,2379,4.859,2380,5.03,2382,3.382,2384,2.847,2385,2.912,2386,3.382,2388,3.382,2390,3.319,2391,3.382,2397,3.206,4205,2.931,4369,3.065,4489,8.148,4491,4.468,5862,3.453,5863,3.453,5864,3.453,5865,3.453,5866,3.453,5867,3.453,5868,3.453,5869,3.453,5870,3.453,5878,3.619,8469,2.567,8997,4.391,9007,3.619,12185,8.729,12186,3.837,12187,3.837,14025,4.391,14052,6.656,14817,5.638,16482,3.837,16483,3.837,18121,6.656,18131,6.656,18140,3.837,18142,4.154,18143,4.154,18325,3.531,18353,5.486,21018,5.638,21120,5.816,21121,3.719,21122,5.638,21152,10.539,21198,9.702,21199,4.75,21200,4.75,21201,4.75,21202,4.75,21203,4.75,21204,4.75,21205,4.75,21206,4.75,21207,4.75,21208,4.75,21209,4.75,21210,4.75,21211,4.75,21212,4.75,21213,4.75,21214,7.2,21215,7.2,21216,4.75,21217,4.75,21218,4.75,21219,4.75,21220,4.75]],["title/classes/UserLoginMigrationResponse.html",[0,0.232,21084,5.493]],["body/classes/UserLoginMigrationResponse.html",[0,0.232,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,27,0.525,29,0.535,30,0.001,31,0.382,32,0.173,33,0.636,34,1.954,47,0.819,52,6.418,83,4.237,95,0.088,101,0.011,103,0.001,104,0.001,127,0.855,165,0.733,355,5.566,364,2.264,368,3.666,375,4.584,376,1.561,379,2.817,405,2.493,467,2.801,595,2.286,1013,4.285,1403,6.367,1477,6.038,2074,7.558,2702,4.216,3104,5.204,3264,6.962,4476,5.779,7921,8.184,10318,7.558,18325,7.937,18349,7.836,18350,7.836,18353,8.134,21018,8.36,21084,9.721,21120,8.624,21121,8.36,21122,8.36,21130,6.31,21131,6.31,21132,6.31,21133,6.31,21134,5.97,21135,5.97,21136,5.97,21137,5.97,21138,5.97,21139,5.97,21140,5.97,21141,5.97,21221,11.982,21222,6.31,21223,9.357,21224,6.826,21225,6.826,21226,6.826,21227,6.826,21228,6.826]],["title/injectables/UserLoginMigrationRevertService.html",[105,0.91,4484,5.493]],["body/injectables/UserLoginMigrationRevertService.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,27,0.449,29,0.854,30,0.001,31,0.611,32,0.148,33,0.527,35,1.042,36,2.338,52,5.672,95,0.162,99,1.436,101,0.014,103,0.001,104,0.001,105,1.458,107,2.074,111,2.185,112,2.637,127,1.365,129,7.806,132,7.721,187,1.244,191,4.77,192,2.564,216,2.016,221,2.523,355,5.413,461,1.968,4476,5.335,4481,6.951,4482,9.443,4484,8.806,4489,8.117,4491,5.34,12184,6.128,13315,7.206,16335,7.526,21229,10.466,21230,8.605,21231,10.901,21232,8.605,21233,10.901,21234,8.605,21235,8.605,21236,8.605]],["title/injectables/UserLoginMigrationRule.html",[105,0.91,1899,5.694]],["body/injectables/UserLoginMigrationRule.html",[0,0.267,3,0.019,4,0.019,5,0.009,7,0.119,8,1.241,27,0.472,29,0.897,30,0.001,31,0.642,32,0.165,33,0.554,35,1.244,95,0.162,101,0.013,103,0.001,104,0.001,105,1.375,107,1.892,116,4.031,127,0.983,187,1.135,199,4.33,214,2.475,215,2.506,216,1.452,217,1.337,227,1.066,347,2.618,355,4.884,380,2.802,461,3.094,806,3.196,1795,6.569,1823,8.031,1844,4.705,1861,7.366,1899,8.606,2002,6.63,2006,6.376,2013,5.215,3385,6.827,3386,5.298,3389,6.725,3391,5.138,3392,5.298,3393,6.935,3394,5.836,4489,8.63,5987,5.59,18183,7.257,21237,12.153,21238,7.85,21239,7.85,21240,7.85,21241,7.85]],["title/classes/UserLoginMigrationSearchListResponse.html",[0,0.232,21085,5.947]],["body/classes/UserLoginMigrationSearchListResponse.html",[0,0.263,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,27,0.517,29,0.604,30,0.001,31,0.432,32,0.183,33,0.607,52,4.816,55,3.017,56,6.179,59,3.164,70,6.378,95,0.146,101,0.013,103,0.001,104,0.001,127,0.966,145,1.954,163,3.86,165,0.796,355,5.041,364,2.199,376,1.765,404,1.831,461,1.765,467,2.665,469,3.387,596,3.682,1005,7.235,1006,5.39,1007,8.051,1008,6.961,1009,5.787,1011,3.898,1013,5.202,1014,3.679,1015,4.315,1016,2.709,1017,5.39,1018,6.555,1019,5.901,1020,5.049,1021,4.104,1022,5.39,1023,5.39,1025,4.847,1026,4.277,4476,4.53,9265,7.132,9266,7.132,16121,7.132,21084,10.607,21085,8.886,21221,9.391]],["title/classes/UserLoginMigrationSearchParams.html",[0,0.232,21052,5.694]],["body/classes/UserLoginMigrationSearchParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,33,0.571,39,3.415,47,0.842,52,5.599,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,355,5.291,364,1.785,374,3.127,375,4.499,376,2.241,470,4.941,471,4.788,4476,5.267,9267,8.569,9270,8.569,21052,9.892,21171,10.92,21242,9.798]],["title/injectables/UserLoginMigrationService.html",[105,0.91,4482,4.842]],["body/injectables/UserLoginMigrationService.html",[0,0.232,3,0.008,4,0.008,5,0.004,7,0.049,8,0.648,26,2.261,27,0.473,29,0.899,30,0.001,31,0.643,32,0.156,33,0.555,35,1.361,36,2.664,39,0.88,47,0.886,48,1.541,55,1.468,59,2.122,83,2.859,95,0.137,99,0.546,101,0.005,102,1.641,103,0,104,0,105,0.717,107,0.788,111,2.378,112,2.931,127,0.671,129,4.89,132,4.396,145,2.906,148,1.006,167,3.791,187,0.473,189,5.913,191,1.813,192,2.03,204,1.819,216,1.608,217,1.656,221,2.999,227,1.166,234,1.897,235,1.845,264,3.312,305,2.662,347,2.363,355,5.258,369,0.726,450,1.343,571,2.054,574,2.353,1345,1.297,1353,1.578,1567,2.244,1944,3.679,2130,1.428,2131,1.598,2132,1.541,2440,3.054,3104,1.481,3601,2.86,3859,1.829,4205,3.937,4476,5.209,4479,4.689,4482,3.817,4483,7.336,4489,8.359,4491,7.946,4494,2.491,4496,5.706,4498,5.335,4501,5.065,4502,4.689,4593,1.652,4661,1.726,4737,5.428,6741,2.56,7074,4.128,9058,2.11,9646,2.641,11196,7.027,11217,5.158,11224,4.198,11257,3.023,11843,5.858,12184,2.328,12641,3.023,13073,5.503,13315,2.738,13651,2.738,13926,5.959,13998,7.12,13999,7.12,14000,7.849,14101,3.023,14110,8.041,14116,3.023,14122,2.738,14123,7.285,14817,7.728,14822,2.641,14823,4.955,16335,2.86,17074,2.641,17435,4.689,17945,3.817,18320,3.023,18325,2.431,18366,6.298,18367,3.023,18385,4.955,18902,4.689,19373,2.56,19473,3.023,19506,3.023,20268,4.689,21121,4.198,21122,2.56,21229,10.218,21243,5.361,21244,5.361,21245,5.361,21246,5.361,21247,5.361,21248,5.361,21249,5.361,21250,3.27,21251,5.361,21252,3.27,21253,5.361,21254,3.27,21255,5.361,21256,3.27,21257,5.361,21258,3.27,21259,5.361,21260,3.27,21261,5.361,21262,3.27,21263,4.955,21264,3.023,21265,5.361,21266,3.27,21267,5.361,21268,3.27,21269,5.361,21270,3.27,21271,5.361,21272,5.361,21273,5.361,21274,5.361,21275,6.813,21276,2.641,21277,3.27,21278,5.361,21279,5.361,21280,5.361,21281,3.27,21282,5.361,21283,3.27,21284,5.361,21285,3.27,21286,3.27,21287,5.361,21288,3.27,21289,3.27,21290,3.27,21291,5.361,21292,3.27,21293,3.27,21294,3.27,21295,5.361,21296,4.955,21297,3.27]],["title/classes/UserLoginMigrationStartLoggable.html",[0,0.232,17440,5.694]],["body/classes/UserLoginMigrationStartLoggable.html",[0,0.295,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.322,26,2.86,27,0.451,29,0.678,30,0.001,31,0.485,32,0.118,33,0.419,35,1.048,39,3.232,52,5.977,95,0.141,99,1.445,101,0.014,103,0.001,104,0.001,111,1.736,127,1.085,163,2.665,192,3.262,214,3.451,215,2.764,216,2.024,227,0.898,355,5.338,415,4.681,540,6.295,1216,3.393,1464,5.527,1465,6.194,1467,2.764,1469,6.244,1477,5.588,4476,5.351,8288,6.24,8289,6.487,10696,6.996,12208,8.81,13984,6.782,17440,9.167,18288,8.006,18289,8.006,21166,11.095,21298,8.66]],["title/injectables/UserLoginMigrationUc.html",[105,0.91,21024,5.493]],["body/injectables/UserLoginMigrationUc.html",[0,0.128,3,0.009,4,0.009,5,0.005,7,0.057,8,0.726,26,2.57,27,0.411,29,0.781,30,0.001,31,0.559,32,0.136,33,0.482,34,0.641,35,1.133,36,2.33,39,2.926,47,0.956,52,2.85,59,2.667,95,0.16,99,0.629,100,1.262,101,0.006,103,0,104,0,105,0.804,107,0.908,111,2.351,112,2.631,127,0.753,145,1.9,148,1.16,163,2.88,167,2.761,187,0.545,189,5.187,192,3.119,204,2.905,216,2.01,217,1.362,221,2.658,227,0.778,234,1.765,247,1.476,305,2.841,349,2.543,355,5.046,461,2.14,511,1.904,529,3.261,549,4.127,564,1.381,766,1.576,784,2.037,806,1.534,843,1.663,905,1.569,954,2.801,1014,4.462,1142,3.966,1180,1.622,1216,2.939,1345,1.495,1369,2.053,1396,3.425,1423,3.935,1467,1.203,1549,7.78,1798,3.393,1799,2.284,1814,2.586,1852,2.539,1884,5.656,1961,4.201,1982,2.258,2303,2.437,2356,3.082,2357,3.9,2538,2.683,2725,1.707,2783,2.258,2848,4.133,3580,2.448,4184,2.543,4205,3.361,4476,4.666,4478,3.044,4482,7.453,4483,7.78,4489,4.841,4491,6.189,4495,2.951,4497,3.483,4614,2.871,4671,7.063,8369,2.284,8443,2.503,8452,3.778,9674,2.633,9675,2.739,10027,2.801,10708,3.156,11156,2.739,11415,7.973,11435,4.371,11568,5.25,11643,6.098,13063,3.296,13089,6.537,13122,7.558,13381,5.259,13829,5.558,13951,5.342,14424,3.483,14822,3.044,15277,4.857,15339,4.857,15395,8.195,15396,7.809,15420,2.951,15421,3.296,15434,3.044,15452,3.156,15506,3.483,15512,3.296,15513,3.296,15673,5.558,15844,2.951,16125,3.044,16204,3.483,16207,5.558,16212,3.483,16226,3.296,16227,8.723,16228,3.483,16229,5.558,16230,5.558,16232,3.483,16233,3.483,16327,3.483,16410,3.483,16458,4.708,16481,5.259,16482,6.917,16483,8.454,16484,7.49,16490,3.296,18303,3.296,18325,9.012,21024,4.857,21033,5.558,21034,5.558,21083,6.917,21159,5.259,21299,10.465,21300,5.558,21301,7.502,21302,3.768,21303,3.768,21304,6.013,21305,3.768,21306,6.013,21307,3.768,21308,5.558,21309,3.768,21310,3.768,21311,3.768,21312,3.768,21313,3.768,21314,7.502,21315,3.768,21316,3.768,21317,3.768,21318,3.768,21319,3.768,21320,8.563,21321,3.768,21322,3.768,21323,6.013,21324,3.483,21325,3.483,21326,3.768,21327,6.013,21328,6.013,21329,6.013,21330,3.768,21331,3.768,21332,3.768,21333,3.768,21334,3.768,21335,3.768,21336,3.768,21337,9.357,21338,3.768,21339,6.013,21340,3.768]],["title/classes/UserMapper.html",[0,0.232,21341,5.947]],["body/classes/UserMapper.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.011,7,0.138,8,1.369,27,0.377,29,0.717,30,0.001,31,0.513,32,0.124,33,0.443,34,1.557,35,1.108,95,0.146,99,1.527,101,0.015,103,0.001,104,0.001,227,0.949,234,1.486,380,1.945,461,2.942,496,4.784,627,3.776,851,4.364,852,4.364,853,4.723,854,4.593,4198,6.394,4205,3.085,4210,5.75,4369,5.905,4379,8.005,7083,7.393,11028,7.665,12583,7.167,12584,6.973,12585,6.803,12586,7.167,17518,9.489,17522,9.489,18140,7.393,20925,8.46,20926,8.46,20927,8.46,20932,8.46,20933,8.46,20934,8.46,20935,8.46,20936,8.46,20965,10.771,20967,8.46,21341,9.91,21342,9.152,21343,9.152,21344,9.152,21345,9.152]],["title/classes/UserMatchListResponse.html",[0,0.232,12784,5.694]],["body/classes/UserMatchListResponse.html",[0,0.353,2,0.719,3,0.015,4,0.015,5,0.008,7,0.097,27,0.486,29,0.505,30,0.001,31,0.504,32,0.181,33,0.57,34,1.096,39,1.735,47,0.799,55,2.946,56,5.857,59,2.801,70,6.046,95,0.151,101,0.015,103,0.001,104,0.001,127,0.807,145,1.632,163,3.628,165,0.704,167,2.371,200,2.007,355,2.59,364,2.041,369,1.43,374,2.057,375,3.425,376,1.474,379,2.767,404,1.62,405,1.717,415,3.483,416,4.102,461,2.866,467,3.287,469,2.829,496,2.721,538,2.904,577,5.845,596,3.418,728,2.464,851,4.288,852,4.288,1000,3.661,1007,7.682,1008,6.599,1009,5.122,1011,3.256,1013,4.743,1014,3.073,1015,3.604,1016,2.262,1017,4.502,1018,5.802,1019,5.223,1020,4.218,1021,3.428,1022,4.502,1023,4.502,1025,4.049,1026,3.572,1031,2.818,1639,7.134,3104,2.919,3105,4.102,3106,3.637,3110,3.212,3282,4.049,4476,4.009,5022,4.102,5477,4.102,9538,4.281,9539,4.684,9540,4.281,9541,4.684,10659,4.423,10677,4.502,10678,4.589,10679,5.45,12008,4.91,12009,4.349,12026,7.53,12049,5.397,12784,7.53,12834,10.009,12836,7.89,12839,5.397,12840,5.397,12841,5.397,12842,5.397,12906,9.058,21346,8.312,21347,5.957,21348,6.444,21349,6.444,21350,5.636]],["title/classes/UserMatchMapper.html",[0,0.232,12776,5.694]],["body/classes/UserMatchMapper.html",[0,0.246,2,0.805,3,0.017,4,0.017,5,0.009,7,0.109,8,1.174,27,0.401,29,0.761,30,0.001,31,0.615,32,0.132,33,0.47,35,1.176,39,1.943,59,2.248,95,0.158,99,1.205,100,3.254,101,0.012,103,0.001,104,0.001,167,4.043,217,1.645,227,1.31,234,1.172,277,3.922,305,2.056,307,4.535,309,6.319,319,2.157,369,1.602,461,2.806,529,4.224,540,5.247,558,3.463,627,3.878,738,3.752,851,3.442,852,3.442,975,5.387,982,3.598,3105,4.594,3106,4.073,3146,4.795,3147,4.657,4476,4.899,4571,5.296,4572,5.14,10659,4.953,10693,9.844,12008,7.404,12009,6.559,12010,10.606,12055,9.495,12646,5.652,12776,8.139,12778,6.313,12834,9.204,12836,8.371,12859,5.652,12861,6.044,12913,5.652,17413,8.5,17536,8.984,17541,6.672,17542,6.672,17543,6.672,21351,10.987,21352,7.217,21353,9.718,21354,7.217,21355,7.217,21356,7.217,21357,7.217,21358,9.718,21359,7.217,21360,7.217,21361,7.217,21362,7.217,21363,9.718,21364,7.217,21365,7.217,21366,7.217,21367,7.217,21368,7.217]],["title/classes/UserMatchResponse.html",[0,0.232,12834,5.324]],["body/classes/UserMatchResponse.html",[0,0.345,2,0.689,3,0.015,4,0.015,5,0.007,7,0.093,27,0.511,29,0.484,30,0.001,31,0.567,32,0.179,33,0.489,34,1.485,39,2.725,47,0.902,55,2.18,56,4.188,70,4.322,95,0.149,101,0.015,103,0,104,0,127,0.774,163,2.686,165,0.684,167,2.273,200,2.719,355,3.508,364,2.194,369,1.937,374,1.972,375,3.325,376,1.413,379,2.73,404,1.113,405,2.326,415,3.339,416,3.932,461,3.069,467,3.248,469,2.712,496,2.608,538,3.933,577,6.549,595,2.068,728,3.338,851,5.533,852,5.533,1000,3.554,1007,5.352,1008,3.339,1009,3.519,1013,5.038,1025,3.881,1026,3.424,1031,3.447,1403,3.424,1639,8.05,3104,3.954,3105,5.556,3106,4.926,3110,4.351,3282,5.484,3795,3.625,4476,5.638,5022,5.556,5477,5.556,9538,4.104,9539,4.49,9540,4.104,9541,4.49,10659,6.947,10677,6.098,10678,6.216,10679,6.667,12008,7.712,12009,6.832,12026,7.31,12049,5.173,12784,5.173,12834,9.902,12836,8.841,12839,5.173,12840,5.173,12841,5.173,12842,5.173,12906,10.15,21346,11.69,21347,5.71,21350,7.634,21369,6.177,21370,6.177,21371,6.177,21372,6.177,21373,6.177,21374,6.177,21375,6.177]],["title/interfaces/UserMetdata.html",[334,0.731,9677,5.324]],["body/interfaces/UserMetdata.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.868,30,0.001,31,0.351,32,0.145,34,1.065,36,2.501,47,0.926,51,4.28,55,0.854,72,1.796,95,0.158,99,0.662,101,0.007,103,0,104,0,105,0.837,111,2.519,112,2.57,127,0.497,130,5.236,138,2.735,139,4.842,140,4.65,158,6.256,163,3.661,165,0.49,167,2.304,187,0.573,188,4.207,190,2.947,197,2.491,200,2.744,201,3.947,216,1.885,217,1.756,221,3.088,227,1.234,234,1.655,247,2.453,284,5.185,305,2.51,316,4.458,318,2.947,334,1.031,336,0.949,347,0.802,427,1.432,461,0.907,574,1.741,688,2.031,738,2.061,766,2.619,1166,4.227,1905,2.403,2210,6.9,2280,2.259,2439,2.326,2468,2.376,2633,3.003,4205,1.336,4324,4.814,4571,4.227,4572,2.823,4593,2.003,4737,4.506,4748,4.884,5034,3.021,5209,2.634,5462,2.77,5697,5.077,5735,4.374,5799,2.676,5800,4.159,5815,5.077,5875,4.458,5966,2.77,6039,5.767,6057,5.154,6074,4.814,6077,2.882,6091,4.77,6100,4.756,6473,3.636,6476,4.874,6477,2.77,6580,2.882,6629,3.105,7074,5.025,7080,4.225,7271,3.885,7803,2.558,8369,2.403,8528,2.823,8586,3.021,8608,2.882,8776,4.802,8801,6.274,8917,2.823,8920,6.958,8926,5.154,8955,3.021,9627,3.021,9628,3.203,9629,3.203,9630,3.203,9631,3.203,9632,3.203,9633,2.823,9634,3.203,9647,5.324,9649,3.203,9652,3.203,9654,3.203,9656,3.203,9657,7.117,9659,3.203,9661,3.203,9663,3.203,9665,3.203,9667,8.359,9668,3.203,9670,3.203,9672,3.203,9674,2.77,9675,2.882,9676,3.203,9677,6.075,9678,6.9,9679,4.902,9680,5.057,9681,5.057,9682,7.749,9683,5.057,9684,3.203,9685,5.057,9686,3.203,9687,3.203,9688,5.057,9689,3.203,9690,3.203,9691,5.057,9692,3.203,9693,3.203,9694,3.203,9695,3.203,9696,3.203,9697,3.203,9698,3.203,9699,3.203,9700,3.203,9701,3.203,9702,6.266,9703,3.203,9704,3.203,9705,3.203,9706,3.203,9707,3.203,9708,3.203,9709,3.203,9710,3.203,9711,3.203,9712,3.203,9713,3.203,9714,5.057,9715,3.203,9716,3.105,9717,3.203,9718,4.159,9719,2.676,9720,3.105,9721,3.105,9722,3.203,9723,5.057,9724,3.203,9725,5.057,9726,3.203,9727,3.105,9728,3.203,9729,3.203,9730,3.203,9731,3.203,9732,3.203,9733,3.203,9734,3.203,9735,3.105,9736,3.105]],["title/controllers/UserMigrationController.html",[481,2.611,21025,5.947]],["body/controllers/UserMigrationController.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,8,1.297,27,0.347,29,0.659,30,0.001,31,0.471,32,0.114,33,0.407,35,1.018,36,2.303,52,5.092,95,0.169,100,2.815,101,0.014,102,4.219,103,0.001,104,0.001,111,1.685,112,2.609,187,1.216,206,4.278,215,2.683,216,1.986,217,1.398,221,1.946,227,0.872,355,4.757,364,1.531,376,1.923,447,3.485,461,1.923,481,3.228,483,4.009,529,3.654,555,4.371,1016,3.771,2303,4.798,2727,4.033,4476,4.789,12780,7.353,16125,6.791,16458,8.411,16469,9.913,16473,8.996,16478,10.91,20835,7.353,21024,8.677,21025,9.395,21030,9.93,21031,7.772,21376,10.742,21377,8.407,21378,10.742,21379,8.407,21380,10.742,21381,8.407,21382,8.407,21383,8.407,21384,8.407,21385,8.407,21386,8.407,21387,8.407,21388,8.407]],["title/classes/UserMigrationIsNotEnabled.html",[0,0.232,21389,6.286]],["body/classes/UserMigrationIsNotEnabled.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,8,1.404,27,0.393,30,0.001,35,1.155,52,5.943,95,0.123,101,0.016,103,0.001,104,0.001,192,2.844,214,3.665,227,0.99,461,2.183,1188,4.496,1216,3.739,1464,5.774,1465,6.47,1467,3.046,1469,6.461,4476,5.183,6712,6.157,8288,6.518,8289,6.776,10691,7.093,12927,6.549,21389,10.746,21390,11.625,21391,9.542,21392,9.542,21393,9.542]],["title/classes/UserMigrationMapper.html",[0,0.232,16123,5.947]],["body/classes/UserMigrationMapper.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,35,1.158,95,0.149,100,3.203,101,0.016,103,0.001,104,0.001,217,1.245,227,0.992,234,1.553,355,3.844,627,3.851,982,4.768,1016,4.087,2170,6.172,4593,4.833,13951,9.3,14834,10.182,14835,10.182,16115,8.366,16119,11.21,16123,10.182,21175,8.842,21394,11.642,21395,9.565,21396,9.565]],["title/classes/UserMigrationResponse.html",[0,0.232,16119,5.694]],["body/classes/UserMigrationResponse.html",[0,0.34,2,1.114,3,0.024,4,0.024,5,0.012,7,0.151,27,0.493,29,0.783,30,0.001,31,0.56,32,0.162,33,0.483,47,0.852,101,0.017,103,0.001,104,0.001,127,1.252,165,0.936,405,3.185,595,3.346,2170,8.252,2186,8.368,16119,11.346,21222,9.237,21397,12.789,21398,9.992,21399,9.992,21400,9.992]],["title/injectables/UserMigrationService.html",[105,0.91,15396,5.324]],["body/injectables/UserMigrationService.html",[0,0.11,3,0.008,4,0.008,5,0.004,7,0.049,8,0.643,26,1.663,27,0.488,29,0.804,30,0.001,31,0.575,32,0.158,33,0.497,35,1.243,36,2.347,47,1.001,52,1.537,55,0.699,59,1.659,66,7.063,83,0.992,85,5.06,94,4.521,95,0.152,99,0.541,101,0.005,102,1.628,103,0,104,0,105,0.712,107,0.782,111,2.681,112,2.645,127,0.667,128,2.62,129,4.866,132,3.436,144,1.863,150,2.346,154,1.485,165,0.417,167,1.193,187,0.469,189,2.952,191,1.798,192,2.337,204,1.807,216,2.332,217,1.628,221,2.596,227,1.135,234,1.922,256,2.837,305,1.93,307,2.038,309,3.896,319,2.344,355,4.935,369,0.72,461,0.742,784,1.753,818,7.492,1083,2.62,1216,1.271,1345,2.113,1369,1.767,1467,1.035,1583,2.123,1732,2.411,1852,2.248,2072,4.371,2097,2.411,2130,1.417,2131,1.585,2132,1.528,2170,4.371,2303,3.773,2356,2.783,2357,3.572,2362,3.063,2643,1.884,2644,1.739,3104,1.469,3405,3.655,3580,2.168,3859,1.814,4476,5.351,4593,1.639,4611,2.62,4671,3.594,4737,5.712,4866,2.54,5442,1.848,5511,2.189,6173,4.501,7027,2.013,7035,4.733,7074,6.201,7081,2.62,7363,3.346,7927,2.54,8443,6.822,8452,3.346,9058,2.093,10027,2.411,11196,7.003,11217,6.092,11828,2.411,11944,3.959,12311,3.871,12573,2.716,12605,5.926,13062,4.17,13082,4.923,13374,2.62,13651,2.716,13658,2.716,13778,2.31,13951,7.987,14104,4.658,14821,2.837,14822,2.62,14831,8.605,15396,4.17,15408,6.996,15439,4.923,15457,6.263,15477,6.263,15478,2.998,15994,2.471,16084,4.923,16458,7.701,16461,5.674,16462,5.674,16475,2.998,16481,5.926,16482,2.62,16483,2.62,16484,6.859,16490,2.837,18313,6.263,18317,6.263,18325,9.218,21121,6.141,21229,10.497,21264,4.923,21296,2.998,21300,4.923,21308,4.923,21401,7.842,21402,5.325,21403,5.325,21404,5.325,21405,7.842,21406,5.325,21407,3.243,21408,3.243,21409,3.243,21410,3.243,21411,5.325,21412,3.243,21413,5.325,21414,7.842,21415,3.243,21416,3.243,21417,3.243,21418,5.325,21419,3.243,21420,3.243,21421,8.661,21422,3.243,21423,6.775,21424,3.243,21425,3.243,21426,3.243,21427,3.243,21428,3.243,21429,3.243,21430,3.243,21431,6.775,21432,5.325,21433,3.243,21434,3.243,21435,3.243,21436,3.243,21437,3.243,21438,3.243,21439,3.243,21440,3.243,21441,3.243,21442,3.243,21443,3.243,21444,6.775,21445,3.243,21446,3.243,21447,3.243,21448,3.243,21449,3.243,21450,3.243,21451,3.243,21452,3.243,21453,3.243,21454,3.243,21455,3.243,21456,3.243,21457,5.325,21458,3.243,21459,3.243,21460,3.243,21461,3.243,21462,5.325,21463,3.243,21464,3.243,21465,3.243,21466,3.243,21467,3.243,21468,3.243,21469,3.243,21470,3.243,21471,3.243,21472,3.243,21473,3.243,21474,3.243,21475,3.243,21476,3.243,21477,3.243,21478,3.243]],["title/modules/UserModule.html",[425,1.812,3568,4.272]],["body/modules/UserModule.html",[0,0.27,3,0.019,4,0.019,5,0.01,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,187,1.149,191,4.403,192,2.367,425,3.07,427,2.869,428,3.087,429,3.178,430,3.165,431,3.151,432,4.239,433,4.354,437,9.246,438,6.082,441,8.309,442,4.143,443,3.112,444,3.038,449,4.108,450,3.263,1467,2.535,1547,9.651,1564,6.052,3568,8.953,4646,7.343,4737,8.052,5333,8.264,20884,10.873,21479,7.943,21480,7.943,21481,7.943,21482,7.943,21483,7.943,21484,7.343,21485,7.343,21486,7.943]],["title/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.232,15422,5.947]],["body/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.249,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,8,1.185,26,2.507,27,0.523,29,0.574,30,0.001,31,0.41,32,0.168,33,0.354,35,0.886,47,0.961,48,5.571,59,2.281,95,0.142,99,1.222,101,0.012,103,0.001,104,0.001,111,2.219,127,1.229,144,2.699,163,2.254,165,0.769,192,2.182,204,2.484,214,3.094,216,2.514,227,0.759,319,2.933,404,1.768,406,2.382,417,5.323,461,1.675,511,5.592,596,3.607,1216,4.336,1464,5.097,1465,5.712,1467,2.337,1469,5.855,3049,5.323,3849,5.579,4661,3.865,5438,4.792,5442,5.59,6712,4.725,6833,4.601,8288,5.754,8289,5.982,8443,7.353,8446,6.405,8452,7.429,8456,5.443,8738,4.661,8740,5.214,8741,6.405,8745,4.296,8746,4.49,11156,7.133,11432,9.23,11434,6.405,15341,8.583,15342,8.583,15343,8.218,15377,6.769,15378,6.132,15422,8.583,15446,6.405,21487,11.068,21488,11.068,21489,7.322,21490,7.322,21491,7.322,21492,7.322,21493,7.322,21494,7.322]],["title/classes/UserParams.html",[0,0.232,850,5.493]],["body/classes/UserParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,39,3.408,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,361,6.529,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,461,2.694,467,3.09,850,9.514,1000,4.795,3795,5.721,21495,9.75,21496,9.75]],["title/injectables/UserRepo.html",[105,0.91,441,4.075]],["body/injectables/UserRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,10,2.382,12,2.703,18,2.982,26,2.198,27,0.489,29,0.893,30,0.001,31,0.639,32,0.155,33,0.551,34,1.257,35,1.41,36,2.749,39,1.589,40,2.849,47,0.793,48,3.982,49,1.449,55,0.793,56,1.766,59,1.838,70,1.823,72,2.674,95,0.133,96,1.615,97,1.592,98,2.183,99,0.614,101,0.006,103,0,104,0,105,0.79,107,0.888,111,1.481,112,2.909,144,1.013,148,1.133,167,2.172,187,0.532,192,2.518,217,1.668,221,2.494,227,1.075,234,0.958,247,3.624,305,1.049,307,3.709,309,5.32,319,2.208,367,2.815,369,1.31,371,1.628,380,0.782,381,1.963,398,1.085,404,1.064,425,1.573,441,3.538,461,2.372,496,3.568,558,1.766,577,4.769,596,2.578,692,4.353,701,3.49,731,2.919,779,2.737,844,3.849,851,1.756,852,1.756,853,3.046,854,2.962,877,6.084,879,6.829,881,5.456,883,2.504,884,2.781,885,3.733,905,1.533,908,2.258,909,2.285,910,2.258,911,2.285,913,2.258,914,2.285,915,2.041,919,2.805,929,3.22,1008,1.99,1015,2.059,1166,1.766,1167,4.06,1174,6.143,1187,3.523,1188,3.481,1189,3.481,1190,3.682,1191,2.007,1192,2.527,1195,2.805,1345,2.342,1498,2.232,1852,1.555,1854,2.446,2144,3.331,2384,3.538,3090,4,3110,3.682,3427,4.051,4205,1.989,4428,2.974,4431,2.313,4435,3.984,4659,6.145,4661,1.943,5209,5.614,5429,4.835,5880,4.908,6612,2.207,6677,3.084,6782,2.805,6901,5.261,6902,5.122,6912,4.388,6931,2.677,6932,2.677,6974,4.622,8894,4.497,9876,2.805,10293,3.301,10379,6.462,10969,3.22,10970,3.22,11981,3.404,12016,9.025,12017,2.622,12044,3.22,12055,6.826,12859,2.883,12913,2.883,13001,3.404,13012,3.084,13013,3.404,13015,3.404,13020,3.22,13021,3.404,13778,2.622,13814,4.943,20174,5.163,20176,5.163,20887,5.456,20894,5.456,20913,3.404,20916,3.404,20922,3.404,20924,3.404,21497,3.682,21498,5.456,21499,5.456,21500,7.388,21501,5.456,21502,3.682,21503,5.456,21504,3.682,21505,3.682,21506,3.682,21507,3.682,21508,3.682,21509,3.682,21510,3.682,21511,3.682,21512,3.682,21513,3.682,21514,3.682,21515,3.682,21516,3.682,21517,5.456,21518,3.682,21519,3.682,21520,5.903,21521,5.903,21522,5.903,21523,3.682,21524,3.682,21525,7.388,21526,3.682,21527,3.682,21528,3.682,21529,5.903,21530,3.682,21531,3.682,21532,3.084,21533,5.903,21534,3.682,21535,3.682,21536,5.903,21537,3.682,21538,3.682,21539,5.903,21540,5.903,21541,5.903,21542,5.903,21543,5.903,21544,5.903,21545,5.903,21546,7.388,21547,3.682,21548,3.682,21549,3.682,21550,3.682,21551,3.682,21552,3.682,21553,5.456,21554,3.682]],["title/injectables/UserRule.html",[105,0.91,1900,5.694]],["body/injectables/UserRule.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.121,8,1.259,27,0.477,29,0.907,30,0.001,31,0.648,32,0.167,33,0.56,35,1.262,95,0.157,101,0.013,103,0.001,104,0.001,105,1.394,107,1.934,116,4.055,127,1.005,187,1.16,199,4.375,214,2.529,215,2.561,216,1.483,217,1.507,227,1.081,347,2.479,380,2.855,461,3.239,806,3.266,1795,6.623,1823,8.078,1844,4.808,1861,7.428,1900,8.728,2002,6.725,2006,6.467,2013,5.33,3385,6.924,3386,5.414,3389,6.821,3392,5.414,3393,7.034,3394,5.964,21555,8.022,21556,8.022,21557,8.022,21558,8.022,21559,10.422]],["title/classes/UserScope.html",[0,0.232,20902,5.947]],["body/classes/UserScope.html",[0,0.209,2,0.684,3,0.014,4,0.014,5,0.007,7,0.093,8,1.049,26,2.324,27,0.537,29,0.968,30,0.001,31,0.692,32,0.177,33,0.597,35,1.495,59,3.604,83,4.215,95,0.111,99,1.023,101,0.01,103,0,104,0,111,2.409,144,1.686,145,2.93,148,1.887,165,0.68,192,1.827,227,1.2,277,5.181,319,1.832,347,2.43,371,1.69,404,1.564,450,2.518,461,1.402,529,2.664,596,3.53,2394,5.977,2801,6.182,4205,3.397,5991,5.859,5992,5.859,5993,5.859,5998,5.859,5999,5.859,6000,4.207,6001,4.138,6002,4.207,6003,4.207,6012,4.138,6013,5.859,6014,4.207,6015,4.138,6016,4.207,6017,4.138,6018,7.81,6475,7.178,6922,4.952,10212,7.593,10221,7.593,12223,9.69,12584,7.68,12585,6.454,14273,5.362,18370,10.696,20902,11.625,20909,8.025,21560,6.13,21561,8.682,21562,8.682,21563,6.13,21564,8.682,21565,6.13,21566,8.682,21567,6.13,21568,8.682,21569,6.13,21570,8.682,21571,6.13,21572,8.682]],["title/injectables/UserService.html",[105,0.91,4737,3.949]],["body/injectables/UserService.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.757,12,2.872,18,3.168,26,2.691,27,0.513,29,0.974,30,0.001,31,0.696,32,0.169,33,0.601,34,1.067,35,1.486,36,2.913,39,2.375,40,3.027,47,0.876,48,4.156,59,1.237,66,4.046,94,1.93,95,0.164,99,0.663,101,0.007,102,1.993,103,0,104,0,105,0.839,107,0.958,111,2.22,112,3.045,127,0.785,148,1.93,187,0.574,216,1.776,217,1.679,221,2.638,227,1.255,234,0.645,305,1.132,336,0.951,347,1.571,359,2.186,369,1.958,383,2.6,441,6.116,450,1.632,461,2.809,504,2.6,529,1.727,574,1.744,701,3.119,789,6.992,801,2.307,818,8.14,853,2.05,854,1.993,1014,2.99,1083,3.209,1131,3.672,1564,3.027,1732,2.953,1846,3.474,1849,3.146,2018,4.91,2280,2.263,2352,4.381,2368,4.381,2440,2.263,2643,4.512,3090,3.359,3146,2.639,3147,4.046,3391,2.6,4198,2.775,4199,8.14,4541,5.427,4552,2.953,4652,7.942,4674,3.327,4737,3.642,5698,3.19,6902,5.346,7062,2.953,7074,6.432,7077,4.661,7080,4.232,7086,3.474,9548,5.484,12232,3.209,14014,5.484,14018,5.484,16215,3.672,16354,5.796,17325,3.474,20838,5.796,20884,8.947,20891,8.154,20901,3.672,20914,3.672,20965,6.505,20985,3.474,21341,3.474,21484,3.672,21485,3.672,21498,5.796,21499,5.796,21501,5.796,21503,5.796,21553,5.796,21573,3.972,21574,6.27,21575,6.27,21576,6.27,21577,6.27,21578,5.796,21579,3.972,21580,6.27,21581,3.972,21582,3.972,21583,3.972,21584,3.972,21585,3.972,21586,6.27,21587,3.972,21588,6.27,21589,3.972,21590,6.27,21591,3.972,21592,6.27,21593,3.972,21594,5.796,21595,3.972,21596,5.796,21597,8.821,21598,3.972,21599,6.27,21600,3.972,21601,6.27,21602,3.972,21603,3.972,21604,3.972,21605,3.972,21606,3.972,21607,3.972,21608,3.972,21609,3.972,21610,3.972,21611,3.972,21612,3.972,21613,3.972,21614,6.27,21615,3.972,21616,3.972,21617,3.972,21618,3.972,21619,3.972,21620,6.27,21621,3.972,21622,3.972,21623,3.972,21624,3.972,21625,3.972,21626,3.672,21627,3.972,21628,3.672,21629,3.972]],["title/injectables/UserUc.html",[105,0.91,12787,5.493]],["body/injectables/UserUc.html",[0,0.252,3,0.018,4,0.018,5,0.009,7,0.112,8,1.194,26,2.756,27,0.49,29,0.93,30,0.001,31,0.665,32,0.161,33,0.574,35,1.347,36,2.546,39,2.662,95,0.163,99,1.236,101,0.012,103,0.001,104,0.001,105,1.322,107,1.785,111,2.381,112,2.806,127,0.927,148,3.042,185,4.325,187,1.071,204,3.354,215,2.363,216,1.828,217,1.448,221,2.576,227,1.025,234,1.202,305,2.109,336,1.772,369,2.194,383,4.845,441,7.63,450,3.041,461,2.716,789,8.507,801,4.3,982,3.69,1846,6.475,1849,4.961,2018,7.741,2643,4.3,4196,9.946,4199,9.048,12232,5.98,12787,7.985,17325,6.475,20985,6.475,21578,9.138,21594,9.138,21596,9.138,21626,6.844,21628,6.844,21630,7.403,21631,9.885,21632,7.403,21633,9.885,21634,7.403,21635,7.403,21636,7.403,21637,7.403,21638,7.403,21639,7.403,21640,7.403]],["title/classes/UsersList.html",[0,0.232,6538,5.694]],["body/classes/UsersList.html",[0,0.21,2,0.855,3,0.009,4,0.009,5,0.005,7,0.16,26,2.248,27,0.316,30,0.001,31,0.43,32,0.144,34,1.618,39,2.065,47,0.902,62,2.286,83,3.096,95,0.155,96,1.066,101,0.013,103,0,104,0,111,1.749,116,3.614,127,0.488,145,2.562,148,1.9,165,0.484,188,3.223,192,1.84,208,1.455,214,1.228,217,1.685,227,1.343,234,1.786,240,3.489,305,1.759,319,2.292,334,0.419,347,1.249,369,2.441,370,3.133,371,1.074,379,1.738,380,1.312,394,3.517,398,1.148,399,2.449,400,1.719,402,1.615,404,0.702,405,1.038,406,1.267,461,2.315,475,1.904,535,2.089,565,3.077,618,1.593,627,1.894,686,2.123,701,1.377,738,2.025,770,3.661,844,3.974,851,4.161,852,4.161,905,1.622,922,3.262,1031,2.403,1107,2.722,1353,2.98,1397,1.304,1843,2.926,1852,2.607,1858,2.04,1946,2.588,2075,2.141,2095,3.462,2632,4.66,2636,5.514,2640,4.179,2648,2.722,2650,2.417,3090,3.774,3146,2.588,3147,2.514,3319,2.361,3429,2.48,3753,2.417,3777,4.041,3778,4.041,3981,2.832,4052,2.286,4205,1.313,4206,5.461,4221,3.262,4255,5.575,4281,2.697,4324,4.759,4748,2.16,4878,2.389,4989,2.828,6375,2.896,6436,2.774,6468,3.407,6469,6.319,6470,5.176,6471,5.461,6472,4.102,6473,4.454,6474,2.674,6475,5.461,6476,4.818,6477,4.313,6478,5.575,6480,3.407,6482,3.407,6485,3.407,6486,2.514,6488,3.407,6490,6.708,6493,3.407,6495,3.407,6504,3.407,6508,2.417,6509,3.407,6510,3.407,6511,3.742,6512,4.396,6513,3.407,6514,5.701,6515,3.407,6516,4.488,6517,3.147,6518,3.623,6519,2.588,6520,4.041,6521,2.389,6522,3.879,6523,2.179,6524,4.987,6525,4.987,6526,3.407,6527,3.147,6528,2.774,6529,3.407,6530,3.407,6531,3.262,6532,2.896,6533,3.407,6534,3.407,6535,3.051,6536,3.407,6537,3.785,6538,10.484,6539,5.461,6540,3.147,6541,4.167,6542,2.55,6543,2.417,6544,2.335,6545,3.147,6546,3.407,6547,3.407,6548,5.4,6549,5.4,6550,5.4,6551,7.048,6552,4.987,6553,4.704,6554,5.4,6555,4.589,6556,4.704,6557,2.896,6558,3.407,6559,3.407,6560,2.48,6561,4.102,6562,3.407,6563,3.407,6564,3.407,6565,5.4,6566,3.407,6567,3.407,6568,3.407,6569,3.407,6570,3.407,6571,3.407,6572,3.407,6573,6.195,6574,6.708,6575,3.407,6576,3.407,6577,3.407,6578,3.407,6579,3.407,6580,2.832,6581,3.407,6582,3.407,6583,3.407,6584,3.407,6585,3.407,6586,2.629,6587,3.407,6588,3.262,6589,3.407,6590,6.708,6591,5.4,6592,3.407,6593,3.407,6594,3.147,6595,3.147,6596,2.674,6597,3.407,6598,6.195,6599,3.407,6600,3.407,6601,3.407,6602,3.407,21641,3.896,21642,3.896,21643,3.896]],["title/classes/ValidationError.html",[0,0.232,503,4.169]],["body/classes/ValidationError.html",[0,0.265,2,0.867,3,0.018,4,0.018,5,0.009,7,0.117,8,1.233,27,0.542,29,0.609,30,0.001,31,0.435,32,0.185,33,0.551,35,0.941,47,0.92,55,1.675,59,2.422,95,0.131,101,0.013,103,0.001,104,0.001,127,0.974,165,0.8,187,1.124,204,4.267,216,2.52,364,2.29,404,1.84,406,2.529,503,6.26,564,2.85,596,3.937,1013,5.545,1016,2.73,1142,5.281,1180,5.211,1216,5.057,1395,8.278,1396,7.494,1397,4.054,1398,7.258,1402,5.016,1403,4.31,1404,5.016,1405,5.016,1406,5.016,1407,5.016,1408,5.016,1409,4.66,1410,4.388,1411,6.088,1412,6.511,1415,4.767,1416,4.885,1417,6.088,1817,6.088,21644,7.775,21645,7.775,21646,7.775]],["title/classes/ValidationErrorDetailResponse.html",[0,0.232,1427,5.947]],["body/classes/ValidationErrorDetailResponse.html",[0,0.346,2,1.134,3,0.024,4,0.024,5,0.012,27,0.419,29,0.796,30,0.001,31,0.57,32,0.138,33,0.492,47,0.984,101,0.017,103,0.001,104,0.001,127,1.274,204,4.098,216,1.88,1412,8.516,1423,8.433,1427,10.564,12043,8.978,21647,12.078,21648,10.168,21649,10.168,21650,10.168]],["title/modules/ValidationModule.html",[425,1.812,6428,5.694]],["body/modules/ValidationModule.html",[0,0.347,3,0.024,4,0.024,5,0.012,30,0.001,95,0.166,101,0.017,103,0.001,104,0.001,187,1.474,425,3.223,427,3.683,432,3.751,836,5.921,6428,10.13,6441,11.182,8370,7.767,8374,7.767,10856,10.58,21651,10.194,21652,10.194,21653,10.194]],["title/entities/VideoConference.html",[380,1.445,6537,4.169]],["body/entities/VideoConference.html",[0,0.356,3,0.019,4,0.019,5,0.01,7,0.185,27,0.478,30,0.001,32,0.167,47,0.745,95,0.134,96,2.203,101,0.02,103,0.001,104,0.001,165,0.908,216,1.489,240,4.134,347,2.346,364,2.113,380,2.22,381,2.679,396,6.307,398,2.373,399,4.146,400,3.554,402,3.338,404,1.451,405,2.146,406,2.62,701,4.339,1031,2.524,2702,5.53,3434,5.987,4748,5.792,5106,6.506,6537,6.407,6857,7.277,6883,5.627,8012,4.505,8014,5.272,8033,5.528,8034,5.528,8035,5.855,11645,8.182,15013,6.307,15169,9.369,21654,11.346,21655,7.446,21656,9.124,21657,8.054,21658,8.054,21659,8.054,21660,7.045,21661,7.446,21662,7.446,21663,6.506,21664,6.745,21665,6.506,21666,6.307,21667,9.139,21668,7.446,21669,7.446,21670,7.446,21671,7.446,21672,7.446]],["title/classes/VideoConference-1.html",[0,0.193,905,2.354,6537,3.466]],["body/classes/VideoConference-1.html",[0,0.302,2,0.989,3,0.021,4,0.021,5,0.011,7,0.134,27,0.524,29,0.695,30,0.001,31,0.497,32,0.173,33,0.587,95,0.156,99,1.48,100,2.97,101,0.015,103,0.001,104,0.001,127,1.111,165,0.87,460,6.979,843,5.897,2049,6.76,2059,6.197,2065,5.316,2237,10.182,3890,9.306,6537,8.031,8012,4.961,8014,5.805,8025,6.594,8027,7.165,21673,11.456,21674,8.87,21675,11.112,21676,8.87,21677,9.245,21678,8.87,21679,8.2,21680,8.2,21681,8.87,21682,8.87,21683,8.2]],["title/modules/VideoConferenceApiModule.html",[425,1.812,18512,5.493]],["body/modules/VideoConferenceApiModule.html",[0,0.282,3,0.02,4,0.02,5,0.01,30,0.001,95,0.169,101,0.014,103,0.001,104,0.001,187,1.196,425,3.13,427,2.987,428,3.214,429,3.309,430,3.295,431,3.281,432,4.322,433,3.125,442,4.253,443,3.24,444,3.162,446,5.196,447,4.405,449,4.217,481,3.175,1878,7.093,2049,4.268,2725,3.746,2727,3.967,3568,8.246,4593,4.178,8012,4.625,8014,5.412,18512,11.502,18535,6.68,21684,8.269,21685,8.269,21686,8.269,21687,10.991,21688,10.991,21689,10.991,21690,10.991,21691,10.991,21692,9.836,21693,8.269]],["title/classes/VideoConferenceBaseResponse.html",[0,0.232,8015,5.324]],["body/classes/VideoConferenceBaseResponse.html",[0,0.382,2,1.388,3,0.018,4,0.018,5,0.009,7,0.114,27,0.493,29,0.59,30,0.001,31,0.422,32,0.162,33,0.543,47,0.8,95,0.128,99,1.256,101,0.019,102,5.999,103,0.001,104,0.001,127,0.943,150,2.606,165,0.783,234,1.941,347,2.27,404,1.801,460,6.454,564,4.114,574,5.249,701,2.661,843,5.644,1016,4.197,1178,4.857,2037,4.417,2049,6.422,2439,7.015,6196,4.068,8010,7.827,8011,9.744,8012,7.578,8013,6.584,8014,8.144,8015,10.22,8016,9.362,8018,5.735,8021,9.065,8024,6.304,8025,5.596,8026,6.304,8027,6.081,8028,6.584,8029,8.074,8030,8.742,8031,6.304,8032,5.361,8033,5.166,8034,5.166,8035,5.472,8036,6.304,21694,9.995,21695,7.528,21696,7.528]],["title/classes/VideoConferenceConfiguration.html",[0,0.232,21697,5.947]],["body/classes/VideoConferenceConfiguration.html",[0,0.29,2,0.949,3,0.02,4,0.02,5,0.01,7,0.129,27,0.446,30,0.001,32,0.147,47,0.97,95,0.153,101,0.014,103,0.001,104,0.001,144,2.978,165,0.848,319,3.559,334,0.915,347,2.19,627,4.058,1308,6.563,1322,8.479,2049,6.145,2065,7.926,2130,3.719,2131,4.162,2132,4.012,2246,8.747,2247,9.471,2249,9.618,3859,4.762,4866,8.479,6537,7.301,8012,6.659,11577,5.746,12603,10.414,12605,9.471,18535,9.618,21697,9.471,21698,10.828,21699,10.828,21700,10.828,21701,8.514,21702,10.828,21703,10.01,21704,8.514]],["title/controllers/VideoConferenceController.html",[481,2.611,21692,5.694]],["body/controllers/VideoConferenceController.html",[0,0.129,3,0.02,4,0.009,5,0.005,7,0.057,8,0.731,27,0.355,29,0.854,30,0.001,31,0.482,32,0.148,33,0.416,35,1.448,36,2.337,95,0.148,100,2.526,101,0.006,103,0,104,0,111,1.725,112,2.637,127,0.476,145,3.185,163,3.355,185,2.932,187,0.55,204,1.289,216,1.591,217,1.462,221,1.991,227,0.628,234,1.625,264,3.949,305,1.083,334,0.408,364,1.567,367,4.103,368,4.271,376,0.869,379,3.141,447,1.575,461,2.493,481,1.459,483,1.812,491,5.976,504,7.135,513,6.138,538,2.728,543,3.08,553,5.695,554,7.976,555,1.976,556,2.021,561,2.037,563,5.157,564,4.692,574,4.786,843,4.81,883,2.568,1021,4.998,1410,2.145,1417,6.738,1433,7.061,1477,5.552,1744,2.655,2049,4.849,2145,6.849,2189,8.559,2226,8.546,2241,6.756,2255,6.127,2262,5.294,2280,4.901,2412,3.853,2681,8.805,2727,1.823,2794,3.589,2930,2.037,3049,7.924,4007,2.388,6616,2.278,8012,7.533,8014,8.495,8018,6.555,8744,7.206,10253,6.396,10709,2.895,10710,7.954,10966,7.954,13057,3.324,18474,8.559,21656,6.396,21688,6.318,21689,6.318,21690,6.318,21691,6.318,21692,5.069,21705,8.686,21706,3.8,21707,3.8,21708,3.513,21709,11.966,21710,10.625,21711,3.8,21712,9.254,21713,3.8,21714,7.954,21715,3.8,21716,3.513,21717,3.8,21718,3.8,21719,3.8,21720,3.8,21721,3.8,21722,3.8,21723,6.053,21724,3.8,21725,3.8,21726,3.8,21727,6.95,21728,3.8,21729,6.053,21730,3.8,21731,3.182,21732,3.182,21733,3.07,21734,4.612,21735,4.612,21736,6.318,21737,6.318,21738,3.513,21739,3.8,21740,3.8,21741,3.513,21742,3.8,21743,6.053,21744,3.8,21745,8.604,21746,8.604,21747,3.8,21748,3.8,21749,3.8,21750,3.8,21751,3.8,21752,3.8,21753,3.8,21754,3.8,21755,3.8,21756,3.8,21757,3.8]],["title/classes/VideoConferenceCreateParams.html",[0,0.232,21727,5.493]],["body/classes/VideoConferenceCreateParams.html",[0,0.343,2,0.851,3,0.018,4,0.018,5,0.009,7,0.115,27,0.496,30,0.001,32,0.163,33,0.643,47,0.719,95,0.145,101,0.013,103,0.001,104,0.001,150,4.161,165,0.79,319,3.376,334,0.819,346,6.418,347,2.597,364,2.189,371,2.103,373,6.443,374,2.435,375,4.76,376,1.745,379,1.728,444,3.856,471,5.066,1216,3.951,1403,4.228,1477,6.506,1904,4.218,2049,6.45,2072,7.288,2257,6.111,3090,4.361,3580,4.105,8012,7.323,8032,8.043,8033,7.752,8034,7.752,8616,6.161,8623,7.051,16496,9.321,20439,7.896,21727,8.145,21758,11.552,21759,11.295,21760,11.295,21761,7.627,21762,7.627,21763,10.083,21764,8.819,21765,10.083,21766,10.083,21767,10.083,21768,7.627,21769,7.627,21770,7.627,21771,10.083,21772,6.388,21773,6.671,21774,6.671,21775,6.671,21776,7.627]],["title/injectables/VideoConferenceCreateUc.html",[105,0.91,21688,5.694]],["body/injectables/VideoConferenceCreateUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.924,26,2.483,27,0.466,29,0.886,30,0.001,31,0.656,32,0.154,33,0.547,35,1.307,36,2.426,47,0.807,95,0.155,99,0.86,100,1.725,101,0.009,103,0,104,0,105,1.023,107,1.242,111,2.648,112,2.709,127,0.958,145,2.311,148,1.585,187,0.745,188,1.902,216,1.688,217,1.472,221,2.895,227,0.534,234,1.242,277,5.049,284,2.784,305,1.467,334,0.553,461,1.75,496,3.231,701,4.543,766,2.155,784,4.135,883,3.246,947,4.761,957,2.855,1021,2.74,1141,3.158,1369,4.17,1636,8.837,1982,3.087,2015,4.033,2048,5.688,2049,6.045,2053,5.448,2065,3.087,2066,4.161,2071,4.505,2111,9.894,2134,8.409,2149,4.161,2177,4.505,2211,8.454,2237,5.829,2239,8.619,2362,2.962,2487,3.279,2783,3.087,3961,3.196,4205,1.736,4593,2.602,4671,6.161,4737,6.803,6537,3.158,6847,3.122,7074,4.008,8012,6.551,12227,8.721,14098,4.033,14266,4.761,15994,3.924,18474,9.531,21656,9.299,21666,4.033,21688,6.408,21777,9.809,21778,5.151,21779,7.651,21780,9.128,21781,7.651,21782,7.651,21783,4.313,21784,9.461,21785,5.151,21786,7.651,21787,5.151,21788,7.651,21789,5.151,21790,5.151,21791,9.443,21792,5.151,21793,7.651,21794,5.151,21795,7.651,21796,5.151,21797,4.313,21798,5.151,21799,5.151,21800,7.645,21801,5.151,21802,4.505,21803,4.505,21804,5.151,21805,4.761,21806,7.645,21807,4.761,21808,4.505,21809,5.151,21810,5.151,21811,9.128,21812,5.151,21813,5.151,21814,5.151,21815,5.151,21816,5.151,21817,5.151,21818,4.505,21819,5.151,21820,5.151,21821,4.761]],["title/classes/VideoConferenceDO.html",[0,0.232,21822,5.324]],["body/classes/VideoConferenceDO.html",[0,0.365,2,0.934,3,0.02,4,0.02,5,0.01,7,0.126,27,0.531,29,0.656,30,0.001,31,0.469,32,0.175,33,0.571,34,1.822,47,0.842,95,0.138,101,0.018,103,0.001,104,0.001,127,1.049,165,0.839,347,2.39,404,1.93,596,2.554,701,4.177,1790,3.535,1872,7.234,2702,5.323,5106,6.763,5708,6.086,6857,7.005,6883,5.849,7180,6.379,7183,8.389,7184,6.556,8012,4.683,8032,5.962,8033,5.746,8034,5.746,8035,6.086,15013,6.556,18475,9.251,21663,6.763,21664,7.012,21665,6.763,21666,6.556,21818,7.323,21822,10.08,21823,11.899,21824,7.74,21825,10.713,21826,10.43,21827,8.372,21828,8.372,21829,7.74,21830,7.74,21831,7.323,21832,7.74,21833,7.74,21834,7.74]],["title/controllers/VideoConferenceDeprecatedController.html",[481,2.611,21835,5.947]],["body/controllers/VideoConferenceDeprecatedController.html",[0,0.15,3,0.022,4,0.01,5,0.005,7,0.067,8,0.821,10,1.779,27,0.342,29,0.835,30,0.001,31,0.465,32,0.183,33,0.401,35,1.344,36,2.285,47,0.839,95,0.157,100,3.124,101,0.007,102,4.166,103,0,104,0,112,2.593,163,3.279,185,3.226,187,0.637,215,1.407,216,0.815,217,1.214,221,2.334,227,0.861,264,1.852,277,5.131,334,0.473,364,1.512,368,4.175,376,1.008,379,3.027,447,1.827,461,2.437,481,3.187,483,2.101,491,5.912,498,4.666,502,6.611,504,6.973,506,6.973,513,6.072,538,3.064,543,3.459,553,5.656,554,7.685,555,2.291,556,2.344,561,2.363,563,4.975,564,4.406,574,2.985,843,4.701,883,2.884,1353,5.36,1433,7.031,1477,4.387,1744,3.079,2049,4.816,2059,3.079,2065,2.641,2189,5.18,2226,6.783,2241,5.602,2255,6.645,2262,5.947,2280,4.729,2439,3.989,2440,3.873,2643,6.45,2681,8.606,2727,2.114,2783,6.655,2929,2.535,2930,2.363,3049,7.745,3709,2.928,4878,2.702,6537,5.089,8010,6.5,8012,7.18,8014,7.865,8015,3.451,8032,3.138,8033,3.025,8034,3.025,8362,8.343,9571,10.27,18475,9.41,21677,3.358,21692,5.694,21705,8.626,21708,4.074,21712,9.849,21714,7.673,21716,4.074,21727,7.538,21734,6.324,21735,5.18,21738,4.074,21772,3.691,21773,3.855,21774,3.855,21775,3.855,21835,5.947,21836,4.407,21837,8.301,21838,4.407,21839,4.407,21840,4.407,21841,4.407,21842,4.407,21843,4.407,21844,4.407,21845,4.407,21846,3.855,21847,4.407,21848,6.285,21849,4.407,21850,4.074,21851,4.407,21852,4.407,21853,4.407,21854,8.301,21855,8.301,21856,4.407,21857,6.799,21858,4.407,21859,3.691,21860,4.407,21861,4.074,21862,4.074,21863,4.074,21864,4.407,21865,4.407,21866,4.407,21867,4.407,21868,4.407,21869,4.407,21870,4.407]],["title/injectables/VideoConferenceEndUc.html",[105,0.91,21689,5.694]],["body/injectables/VideoConferenceEndUc.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.104,8,1.14,26,2.447,27,0.389,29,0.739,30,0.001,31,0.528,32,0.128,33,0.456,35,0.836,36,2.023,39,1.86,47,0.673,95,0.167,99,1.153,100,2.313,101,0.012,103,0.001,104,0.001,105,1.262,107,1.665,111,2.154,112,2.368,127,1.182,154,3.164,187,0.999,188,2.552,216,1.986,217,1.692,221,2.887,227,0.716,234,1.744,277,4.659,284,3.734,305,1.968,460,3.973,461,2.158,738,3.591,766,2.89,843,3.048,957,3.83,1982,4.14,2015,5.409,2048,7.986,2049,5.544,2053,4.919,2059,4.826,2065,4.14,2066,5.58,2134,8.581,2149,5.58,2237,8.795,2239,9.504,2241,6.367,2783,4.14,4593,3.49,4671,4.662,4737,7.416,6537,7.078,6847,4.187,7074,4.941,8012,6.008,12227,7.62,14098,5.409,15994,5.263,18474,8.795,18534,5.58,21677,5.263,21689,7.9,21732,5.785,21733,5.58,21777,8.997,21783,5.785,21784,10.314,21791,6.042,21797,5.785,21800,7.9,21802,6.042,21803,6.042,21806,7.9,21808,6.042,21821,6.386,21871,6.908,21872,6.908,21873,9.434,21874,6.908,21875,6.042,21876,5.785,21877,6.042,21878,6.908,21879,6.908,21880,6.908,21881,6.386,21882,6.386]],["title/classes/VideoConferenceInfo.html",[0,0.232,21734,5.181]],["body/classes/VideoConferenceInfo.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.525,29,0.696,30,0.001,31,0.498,32,0.173,33,0.43,47,0.634,95,0.156,100,2.976,101,0.015,103,0.001,104,0.001,127,1.113,165,0.872,240,2.82,334,0.955,364,2.027,396,6.961,404,2.005,596,3.705,701,4.294,2049,5.743,2065,5.328,2211,6.961,2702,5.014,3890,9.319,6537,8.198,6857,6.598,8012,6.793,8014,5.818,8035,6.462,11925,7.775,15169,7.181,21656,9.029,21673,9.732,21734,9.986,21883,8.89,21884,8.89,21885,8.89,21886,8.89,21887,8.89,21888,8.89]],["title/classes/VideoConferenceInfoResponse.html",[0,0.232,21736,5.694]],["body/classes/VideoConferenceInfoResponse.html",[0,0.289,2,0.945,3,0.02,4,0.02,5,0.01,7,0.128,27,0.49,29,0.664,30,0.001,31,0.475,32,0.162,33,0.41,95,0.153,101,0.014,103,0.001,104,0.001,127,1.062,165,0.846,364,1.967,376,1.939,379,2.693,460,7.432,467,3.118,701,4.569,1013,3.883,1031,2.657,2049,6.457,2213,6.639,2888,5.138,2889,5.347,8011,9.798,8012,7.734,8014,8.646,8016,8.456,8018,6.459,8021,10.844,8024,7.1,8025,6.302,8026,7.1,8035,6.163,8036,7.1,21014,9.983,21736,10.822,21889,9.952,21890,8.478,21891,7.837]],["title/injectables/VideoConferenceInfoUc.html",[105,0.91,21690,5.694]],["body/injectables/VideoConferenceInfoUc.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.011,26,2.27,27,0.404,29,0.767,30,0.001,31,0.549,32,0.133,33,0.474,35,1.013,36,2.296,95,0.163,99,0.971,100,1.949,101,0.01,103,0,104,0,105,1.119,107,1.403,111,2.368,112,2.603,127,1.048,154,2.666,187,0.842,188,2.15,216,1.811,217,1.65,221,2.935,227,0.868,234,1.739,277,4.578,284,3.146,305,1.658,334,0.625,347,1.177,460,4.812,461,1.914,701,4.483,766,2.435,784,4.522,843,3.692,957,3.226,1016,3.759,1369,4.559,1982,3.488,2015,4.558,2048,7.281,2049,5.526,2053,4.145,2065,3.488,2066,4.702,2134,8.432,2149,6.758,2211,4.558,2237,8.158,2239,8.998,2244,7.734,2783,3.488,4593,2.941,4671,6.61,4737,7.067,6847,3.528,7074,4.382,8012,5.989,12227,6.758,14098,4.558,15994,4.434,18474,9.27,18534,4.702,21656,7.281,21666,4.558,21677,4.434,21690,7.006,21732,4.874,21733,4.702,21734,8.158,21772,7.006,21777,8.967,21783,4.874,21784,9.829,21791,5.091,21797,4.874,21800,8.202,21802,5.091,21803,5.091,21805,5.38,21806,8.967,21807,5.38,21808,7.317,21822,6.551,21826,8.202,21859,4.874,21875,5.091,21876,4.874,21877,5.091,21882,7.734,21892,5.82,21893,8.366,21894,5.82,21895,8.366,21896,5.82,21897,8.366,21898,5.82,21899,5.82,21900,5.82,21901,5.38,21902,5.38,21903,5.82,21904,5.82,21905,5.82,21906,5.82,21907,5.82,21908,5.38,21909,5.82]],["title/classes/VideoConferenceJoin.html",[0,0.232,21735,5.181]],["body/classes/VideoConferenceJoin.html",[0,0.304,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.526,29,0.699,30,0.001,31,0.5,32,0.173,33,0.432,47,0.796,95,0.143,99,1.49,100,2.99,101,0.015,103,0.001,104,0.001,127,1.118,150,4.214,165,0.874,460,7,843,5.907,2049,6.773,3890,9.344,6196,4.826,8012,7.486,8014,5.844,8025,6.638,8027,7.213,21673,11.479,21677,9.273,21679,8.254,21680,8.254,21683,8.254,21735,9.999,21910,8.929,21911,11.158,21912,8.929,21913,8.929,21914,8.929]],["title/classes/VideoConferenceJoinResponse.html",[0,0.232,21737,5.694]],["body/classes/VideoConferenceJoinResponse.html",[0,0.32,2,1.049,3,0.022,4,0.022,5,0.011,7,0.142,27,0.475,29,0.737,30,0.001,31,0.527,32,0.157,33,0.455,47,0.822,95,0.121,101,0.016,103,0.001,104,0.001,127,1.179,150,4.613,165,0.903,364,1.714,376,2.152,379,2.132,467,3.024,1013,4.309,2049,6.43,2189,8.781,2206,8.698,6196,5.085,8011,9.757,8012,7.452,8014,7.543,8016,9.025,8018,7.168,8031,7.879,21737,11.158,21915,11.525]],["title/injectables/VideoConferenceJoinUc.html",[105,0.91,21691,5.694]],["body/injectables/VideoConferenceJoinUc.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,26,2.433,27,0.385,29,0.732,30,0.001,31,0.523,32,0.127,33,0.452,35,0.825,36,2.004,47,0.486,95,0.166,99,1.137,100,2.282,101,0.011,103,0.001,104,0.001,105,1.25,107,1.643,111,2.139,112,2.351,127,1.171,150,3.236,187,0.985,216,1.972,217,1.617,221,2.784,227,0.707,234,1.732,277,4.305,305,1.941,460,3.919,461,1.559,496,3.946,766,2.851,843,3.007,1308,4.13,2049,5.505,2053,4.853,2065,4.084,2066,5.505,2134,5.066,2168,5.96,2188,9.33,2189,8.127,2239,9.465,2783,5.602,3147,4.397,4593,3.443,4671,6.308,4737,7.389,6537,4.178,7074,4.895,7420,5.066,8012,6.42,15994,5.192,18474,8.745,18534,5.505,21677,5.192,21691,7.827,21732,5.707,21733,5.505,21735,9.163,21777,8.933,21783,5.707,21784,10.276,21797,5.707,21800,8.933,21806,7.827,21822,7.319,21859,5.707,21875,5.96,21876,5.707,21877,5.96,21902,9.861,21908,6.3,21916,6.815,21917,6.815,21918,9.346,21919,6.815,21920,6.815,21921,6.815,21922,6.815,21923,6.815,21924,6.815,21925,9.346,21926,6.815,21927,9.346,21928,6.815,21929,6.815,21930,6.815,21931,6.815,21932,6.815,21933,6.815]],["title/classes/VideoConferenceMapper.html",[0,0.232,21731,5.694]],["body/classes/VideoConferenceMapper.html",[0,0.24,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,8,1.156,27,0.48,29,0.912,30,0.001,31,0.652,32,0.158,33,0.563,35,1.41,95,0.161,99,1.177,101,0.016,103,0.001,104,0.001,150,2.442,185,2.741,217,1.245,227,1.207,234,1.763,334,0.758,460,5.503,627,4.177,701,2.494,843,3.112,982,3.516,1744,4.928,2049,6.282,2065,4.227,2072,4.551,2134,5.243,2149,5.697,2151,6.52,8012,3.945,8021,8.771,8032,5.023,8033,4.841,8034,4.841,21656,8.072,21677,8.872,21727,9.406,21731,8.013,21734,9.274,21735,9.274,21736,9.751,21737,9.751,21741,6.52,21772,5.907,21773,6.169,21774,6.169,21775,6.169,21859,5.907,21861,6.52,21862,6.52,21863,6.52,21876,5.907,21881,6.52,21889,5.907,21891,6.52,21901,6.52,21934,12.172,21935,7.053,21936,9.568,21937,9.568,21938,9.568,21939,9.568,21940,9.568,21941,7.053,21942,9.568,21943,7.053,21944,9.568,21945,7.053,21946,9.568,21947,7.053,21948,6.52,21949,7.053,21950,7.053,21951,7.053,21952,7.053,21953,7.053,21954,7.053,21955,7.053,21956,7.053,21957,7.053,21958,7.053]],["title/modules/VideoConferenceModule.html",[425,1.812,21687,5.694]],["body/modules/VideoConferenceModule.html",[0,0.206,3,0.014,4,0.014,5,0.007,30,0.001,80,7.512,95,0.177,101,0.01,102,3.03,103,0,104,0,154,2.766,187,0.873,191,3.347,192,1.799,334,0.649,425,2.664,427,2.181,428,2.347,429,2.416,430,2.406,431,2.396,432,4.007,433,4.115,438,5.601,442,3.437,443,2.366,444,2.309,447,3.56,449,3.408,450,2.48,481,2.318,558,2.897,766,2.526,836,4.989,1155,3.507,1307,6.116,1467,1.927,1852,4.221,1878,6.462,1923,8.888,1936,8.206,1959,5.448,1961,6.984,2049,3.116,2065,3.619,2239,10.099,2250,10.013,2252,7.512,2725,2.736,2727,2.897,3568,8.037,3583,4.728,3911,10.013,3917,5.797,4593,3.051,5333,7.61,5343,5.057,8012,4.804,8014,6.543,10142,4.219,10424,4.878,10425,4.878,12606,7.94,13848,8.514,14107,4.489,18535,4.878,21687,11.94,21697,5.281,21703,5.582,21784,10.707,21835,9.524,21848,11.371,21959,6.038,21960,6.038,21961,6.038,21962,6.038,21963,10.457,21964,6.038,21965,6.038,21966,6.038,21967,6.038,21968,6.038,21969,6.038,21970,6.038,21971,6.038,21972,8.589]],["title/classes/VideoConferenceOptions.html",[0,0.232,21656,5.055]],["body/classes/VideoConferenceOptions.html",[0,0.354,2,0.891,3,0.019,4,0.019,5,0.01,7,0.185,27,0.505,29,0.626,30,0.001,31,0.448,32,0.172,33,0.386,47,0.57,95,0.133,96,2.186,101,0.02,103,0.001,104,0.001,127,1.001,165,0.905,216,1.478,240,3.882,347,2.63,380,2.209,398,2.354,399,4.124,400,3.526,402,3.312,404,1.44,405,2.129,406,2.599,701,4.085,1031,2.504,2702,4.684,3434,5.94,4748,5.763,5106,8.397,6537,4.899,6857,6.164,6883,5.583,8012,4.469,8014,5.23,8033,7.93,8034,7.93,8035,5.808,11645,8.14,15013,6.257,15169,8.397,21654,11.727,21655,7.387,21656,9.667,21660,10.106,21661,7.387,21662,7.387,21663,6.454,21664,6.692,21665,6.454,21666,6.257,21667,9.092,21668,7.387,21669,7.387,21670,7.387,21671,7.387,21672,7.387,21973,10.395,21974,7.99,21975,7.99]],["title/classes/VideoConferenceOptionsDO.html",[0,0.232,21826,5.694]],["body/classes/VideoConferenceOptionsDO.html",[0,0.371,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.519,29,0.674,30,0.001,31,0.482,32,0.171,33,0.416,47,0.614,95,0.14,101,0.018,103,0.001,104,0.001,127,1.078,165,0.854,347,2.682,404,1.551,701,3.854,1872,6.332,2702,3.877,5106,8.806,6857,5.102,6883,6.012,7180,6.556,7183,6.738,7184,6.738,8012,4.813,8032,8.521,8033,8.212,8034,8.212,8035,6.255,15013,6.738,18475,8.537,21663,6.951,21664,7.206,21665,6.951,21666,6.738,21818,7.526,21822,8.537,21823,11.999,21824,7.955,21826,11.106,21829,7.955,21830,7.955,21831,7.526,21832,7.955,21833,7.955,21834,7.955,21976,10.901,21977,8.605,21978,8.605]],["title/classes/VideoConferenceOptionsResponse.html",[0,0.232,21889,5.694]],["body/classes/VideoConferenceOptionsResponse.html",[0,0.278,2,0.909,3,0.019,4,0.019,5,0.01,7,0.123,27,0.508,29,0.639,30,0.001,31,0.457,32,0.168,33,0.394,95,0.105,101,0.014,103,0.001,104,0.001,127,1.021,165,0.825,347,2.644,364,2.125,369,2.337,371,3.4,376,1.865,379,2.644,467,3.235,1013,5.343,2049,6.589,2177,10.784,2189,8.023,2230,11.398,2536,7.836,8011,9.997,8012,7.14,8016,8.246,8018,6.211,8032,8.307,8033,8.006,8034,8.006,13046,8.819,21663,6.585,21665,6.585,21831,7.13,21889,10.691,21979,8.152,21980,10.531,21981,12.33,21982,10.531,21983,8.152,21984,8.152,21985,10.531,21986,8.152,21987,8.152,21988,8.152]],["title/injectables/VideoConferenceRepo.html",[105,0.91,21963,5.947]],["body/injectables/VideoConferenceRepo.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.075,8,0.901,10,3.011,12,3.417,18,3.769,26,2.525,27,0.541,29,1.02,30,0.001,31,0.729,32,0.177,33,0.63,34,1.69,35,1.576,36,2.612,40,2.403,47,0.638,95,0.143,96,1.362,99,0.831,101,0.008,103,0,104,0,105,0.998,107,1.2,111,2.388,112,2.894,148,1.532,165,0.39,187,0.72,217,1.164,221,1.152,227,1.104,234,1.211,359,2.601,380,2.261,398,1.467,404,1.344,595,1.667,596,3.935,661,5.006,701,2.638,878,5.212,884,3.515,885,5.377,915,2.76,1790,3.777,2051,2.836,2343,9.078,2345,5.312,2346,5.312,2347,5.312,2348,5.312,2349,5.212,2350,5.212,2351,5.312,2352,5.212,2353,5.312,2360,3.545,2362,5.714,2363,3.545,2365,3.545,2367,3.259,2368,5.212,2369,3.545,2371,3.545,2373,5.312,2377,5.312,2379,5.035,2380,5.212,2382,3.545,2384,2.984,2385,3.053,2386,3.545,2388,3.545,2390,3.478,2391,3.545,2409,3.701,2702,4.031,4052,4.377,4369,3.213,4878,3.053,5862,3.619,5863,3.619,5864,3.619,5865,3.619,5866,3.619,5867,3.619,5868,3.619,5869,5.423,5870,5.423,6537,7.102,6857,5.304,8032,3.545,8033,5.12,8034,5.12,9007,3.793,9571,6.026,14700,4.17,15169,4.022,18475,9.07,21660,4.355,21667,9.771,21822,9.07,21963,6.525,21989,8.946,21990,4.979,21991,7.46,21992,7.46,21993,4.979,21994,4.979,21995,4.979,21996,4.979,21997,4.979,21998,4.979,21999,7.46,22000,7.46,22001,7.46,22002,7.46,22003,4.979,22004,4.979,22005,4.979,22006,4.979,22007,4.603,22008,4.979,22009,4.979,22010,4.979,22011,4.979,22012,4.979,22013,4.979,22014,4.979,22015,4.979,22016,4.979]],["title/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.232,21846,5.947]],["body/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.469,29,0.891,30,0.001,31,0.637,32,0.155,33,0.55,35,1.376,95,0.155,101,0.013,102,6.467,103,0.001,104,0.001,150,2.676,227,1.179,234,1.846,460,6.539,574,4.466,627,4.138,701,2.733,843,5.017,974,4.583,1744,5.4,2049,6.235,2059,5.4,2065,4.633,2439,5.969,2440,5.795,5955,6.761,6537,7.407,8010,9.46,8012,4.323,8014,5.059,8015,9.46,8029,9.758,17597,7.146,18171,7.146,21731,6.473,21733,6.244,21734,9.204,21735,9.204,21846,8.897,21850,7.146,21948,7.146,22017,12.08,22018,10.172,22019,10.172,22020,10.172,22021,10.172,22022,10.172,22023,10.172,22024,10.172,22025,11.369,22026,11.369,22027,7.73,22028,7.73]],["title/classes/VideoConferenceScopeParams.html",[0,0.232,21710,5.947]],["body/classes/VideoConferenceScopeParams.html",[0,0.38,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.461,30,0.001,32,0.152,47,0.797,95,0.156,99,1.493,101,0.015,103,0.001,104,0.001,165,0.875,277,4.917,364,2.035,368,4.999,369,2.704,370,3.681,371,3.519,374,2.856,376,2.047,467,3.196,1000,4.549,1031,3.501,1044,4.293,2049,6.288,2889,5.533,5761,9.773,8012,6.814,9571,9.841,18475,10.488,21710,9.773,21758,11.262,22029,8.949,22030,8.949,22031,8.949,22032,8.949,22033,8.949,22034,8.949]],["title/classes/VisibilitySettingsResponse.html",[0,0.232,4074,5.694]],["body/classes/VisibilitySettingsResponse.html",[0,0.33,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.484,29,0.76,30,0.001,31,0.543,32,0.16,33,0.611,47,0.837,95,0.125,101,0.016,103,0.001,104,0.001,127,1.471,165,0.92,364,1.767,375,4.81,376,2.22,966,4.937,4074,11.255,22035,12.629,22036,9.703,22037,13.439,22038,9.703,22039,9.703,22040,9.703]],["title/dependencies.html",[428,3.184,22041,4.945]],["body/dependencies.html",[0,0.25,4,0.012,5,0.009,10,1.968,30,0.001,32,0.066,34,0.829,36,1.894,56,2.339,96,2.417,97,2.109,103,0,104,0,112,1.947,187,0.705,346,3.104,367,3.502,374,2.82,376,1.115,381,1.622,398,1.437,428,1.895,543,2.481,734,2.778,766,2.04,775,2.99,801,2.832,846,3.472,853,2.517,948,3.715,1016,1.712,1069,4.265,1155,2.832,1157,3.192,1161,3.347,1303,4.265,1351,3.407,1352,3.146,1431,2.778,1560,4.265,1562,3.625,1570,3.625,1605,2.891,1639,4.675,1738,3.545,1770,2.832,1804,2.955,1905,5.355,2007,8.52,2033,5.131,2065,2.923,2075,2.68,2131,2.384,2132,3.461,2133,3.104,2222,3.472,2374,3.818,2449,3.347,3364,2.752,3491,3.064,3492,2.891,3579,2.399,3580,4.003,3861,5.596,3871,4.265,3872,5.751,3873,8.259,4515,3.939,5030,2.805,5072,5.339,5120,3.939,5121,3.939,5438,3.192,5442,2.778,5609,3.625,5610,3.818,5835,3.064,6137,4.508,6430,3.818,6432,4.084,6528,3.472,6616,6.321,6855,3.625,7772,4.508,7803,3.146,7961,6.151,8342,5.751,8370,3.715,8716,3.939,8798,4.508,9748,4.265,9821,4.508,9925,8.191,10327,4.508,10581,3.472,10679,2.955,11506,4.084,11507,4.084,11616,3.347,11643,3.472,12850,3.818,13158,7.699,13229,3.625,13421,3.715,13769,4.508,14559,4.508,14896,3.939,15250,4.265,15559,4.265,15560,4.508,16431,4.508,16666,4.508,17351,4.265,17854,4.508,17855,4.508,18483,4.265,22042,4.876,22043,7.344,22044,4.876,22045,10.547,22046,4.876,22047,4.876,22048,8.835,22049,7.344,22050,4.876,22051,4.876,22052,4.876,22053,4.876,22054,7.344,22055,4.876,22056,9.832,22057,7.344,22058,9.832,22059,4.876,22060,4.876,22061,4.876,22062,4.876,22063,4.876,22064,4.876,22065,4.876,22066,4.876,22067,4.876,22068,4.876,22069,4.876,22070,4.876,22071,4.876,22072,4.876,22073,4.876,22074,4.876,22075,4.876,22076,4.876,22077,4.876,22078,4.876,22079,4.876,22080,4.876,22081,7.344,22082,4.876,22083,4.876,22084,4.876,22085,7.344,22086,4.876,22087,4.876,22088,7.344,22089,4.876,22090,4.876,22091,4.876,22092,4.876,22093,7.344,22094,7.344,22095,4.876,22096,4.876,22097,4.876,22098,4.876,22099,4.876,22100,4.876,22101,4.876,22102,4.876,22103,4.876,22104,4.876,22105,4.876,22106,4.876,22107,4.876,22108,4.876,22109,4.876,22110,4.876,22111,4.876,22112,4.876,22113,7.344,22114,4.876,22115,4.876,22116,4.876,22117,4.876,22118,4.876,22119,4.876,22120,4.876,22121,4.876,22122,4.876,22123,4.265,22124,4.876,22125,4.876,22126,8.167,22127,4.876,22128,4.876,22129,4.876,22130,4.876,22131,8.835,22132,4.876,22133,4.876,22134,7.344,22135,4.876,22136,4.876,22137,4.876,22138,4.876,22139,4.876,22140,4.876,22141,4.876,22142,4.876,22143,4.876,22144,4.876,22145,4.876,22146,7.344,22147,4.508,22148,4.876,22149,4.876,22150,7.344,22151,4.876,22152,4.876,22153,4.876,22154,4.876,22155,4.876,22156,4.876,22157,4.876,22158,4.876,22159,4.876,22160,4.876,22161,4.876,22162,4.876,22163,4.876,22164,4.876,22165,7.344,22166,4.876,22167,4.876,22168,4.876,22169,4.508,22170,4.876,22171,4.876,22172,4.876,22173,4.876,22174,4.876,22175,4.876,22176,4.876,22177,4.508,22178,4.876,22179,4.876,22180,4.876,22181,4.876,22182,4.876,22183,4.876,22184,4.876,22185,6.789,22186,4.508,22187,4.876,22188,4.876,22189,4.876,22190,4.876,22191,4.876,22192,4.876,22193,4.876,22194,4.876,22195,4.876,22196,4.876]],["title/index.html",[7,0.085,1477,3.648,22197,4.945]],["body/index.html",[30,0.001,31,0.482,34,1.029,55,2.155,102,3.035,103,0,104,0.001,199,2.286,200,2.678,204,2.917,234,0.982,319,1.807,367,4.1,379,1.37,428,2.35,483,4.771,511,3.056,571,5.402,574,2.655,575,3.625,576,7.098,577,3.413,671,3.352,688,3.099,722,3.834,728,2.313,769,3.586,883,4.244,946,3.958,951,4.608,956,3.958,1021,3.217,1042,5.065,1125,3.586,1126,4.736,1128,10.306,1141,3.708,1142,4.634,1216,2.369,1396,3.445,1397,2.025,1414,4.809,1433,5.272,1647,6.25,1770,3.513,1804,3.665,1855,3.8,1905,6.977,1920,3.849,1939,4.225,1959,3.296,1965,8.802,2075,4.725,2130,2.642,2132,2.85,2144,3.413,2450,6.207,2468,6.531,2469,5.548,2470,5.901,2475,4.15,2487,5.473,2536,3.625,2537,3.958,2769,6.286,3104,2.74,3281,4.018,3492,6.825,3495,7.131,3834,6.551,3835,8.51,3909,4.608,3981,4.396,4140,3.958,4518,4.885,4661,3.192,5030,3.478,5183,5.402,5289,5.065,5406,5.335,5449,4.396,5463,4.608,5684,4.885,6064,3.849,6153,4.15,6250,5.627,6333,4.885,6436,4.306,6437,4.396,6616,6.531,6712,5.548,6858,4.898,6863,4.608,7453,4.496,7821,4.15,8745,3.548,8890,6.551,9511,5.289,9570,4.736,10303,8.302,10686,4.885,11372,4.306,11614,4.082,11757,4.736,11762,6.25,11774,5.473,11808,5.289,12042,6.551,13062,7.834,13637,8.082,13838,4.496,14107,4.496,14167,6.733,14305,4.885,14851,4.885,15238,4.608,15254,5.065,15598,5.065,15599,4.885,16436,7.52,16790,4.736,16796,6.945,17014,4.306,18262,5.289,20439,4.736,21532,5.065,21764,5.289,22198,7.201,22199,4.608,22200,5.289,22201,5.065,22202,5.289,22203,4.885,22204,7.201,22205,6.945,22206,5.289,22207,5.289,22208,5.289,22209,7.948,22210,7.201,22211,5.59,22212,5.59,22213,5.59,22214,5.065,22215,7.623,22216,5.289,22217,7.948,22218,5.065,22219,5.065,22220,7.948,22221,5.289,22222,4.608,22223,5.065,22224,5.289,22225,5.289,22226,4.885,22227,5.59,22228,5.289,22229,5.59,22230,5.065,22231,4.736,22232,5.289,22233,7.948,22234,7.948,22235,8.751,22236,10.068,22237,5.289,22238,5.59,22239,7.948,22240,5.289,22241,5.59,22242,5.59,22243,5.59,22244,7.948,22245,5.59,22246,5.59,22247,5.59,22248,5.065,22249,5.59,22250,4.885,22251,5.59,22252,6.945,22253,7.201,22254,5.59,22255,5.065,22256,5.59,22257,5.289,22258,5.59,22259,5.065]],["title/license.html",[1477,3.648,12097,4.202,22197,4.945]],["body/license.html",[0,0.041,4,0.029,5,0.003,8,0.147,27,0.05,30,0,53,2.839,55,0.484,56,1.078,72,3.48,74,0.982,76,1.124,77,0.774,79,1.966,83,0.372,87,0.61,95,0.016,103,0,104,0,111,0.244,116,3.37,148,0.374,163,0.965,192,0.362,199,0.459,227,0.126,234,1.004,240,0.386,277,0.491,309,2.246,334,0.613,336,0.75,359,3.378,363,1.431,368,1.53,380,0.478,444,0.465,460,0.699,461,1.945,494,1.879,511,0.614,520,0.808,534,1.124,535,3.316,538,1.013,543,0.619,564,0.446,565,0.606,574,4.253,575,0.729,578,1.124,685,0.642,688,2.001,701,0.43,704,1.934,711,0.721,713,0.674,721,2.476,722,1.741,731,0.48,744,0.884,766,0.94,768,0.834,772,1.063,782,1.063,783,2.367,795,0.745,836,3.007,843,3.09,905,1.907,907,2.151,954,1.671,956,4.048,957,2.165,959,1.063,960,9.137,1021,0.647,1126,1.76,1142,5.316,1184,2.165,1189,0.573,1198,1.57,1342,0.764,1396,0.693,1422,1.671,1430,4.841,1433,3.793,1498,0.737,1499,3.849,1516,3.7,1588,3.617,1639,1.431,1645,7.057,1646,2.184,1733,1.816,1750,0.997,1770,2.268,1820,0.754,1821,1.063,1849,3.515,1854,5.103,1855,3.253,1906,0.952,1939,4.893,1941,0.774,1945,0.834,1950,1.601,1951,2.532,1952,1.124,1959,1.225,2035,0.657,2074,0.982,2075,4.043,2115,8.114,2143,1.966,2144,1.268,2226,2.839,2241,0.82,2257,2.367,2280,1.28,2303,0.493,2362,1.293,2449,2.151,2450,3.99,2461,4.459,2464,4.612,2487,3.296,2503,2.078,2504,1.712,2524,6.02,2536,4.781,2537,0.796,2538,1.601,2686,3.764,2688,7.827,2736,2.556,2997,1.018,3090,3.182,3104,2.075,3144,0.952,3195,0.754,3281,5.3,3282,1.412,3303,1.601,3430,3.2,3541,4.612,3578,2.015,3579,0.598,3602,1.76,3649,3.989,3812,0.952,3831,0.982,3833,1.543,3835,0.774,3837,1.76,3901,0.982,3961,1.945,4137,1.063,4139,2.742,4140,3.389,4143,1.124,4198,1.57,4277,1.018,4514,0.884,4518,4.612,4520,1.063,4603,1.018,4661,1.186,4662,1.018,4663,1.543,4670,1.882,4882,1.412,5007,6.084,5022,1.431,5030,0.699,5058,2.594,5059,1.517,5101,1.76,5295,0.982,5406,1.395,5441,1.063,5449,2.278,5455,2.388,5630,3.144,6064,0.774,6153,2.151,6160,2.898,6375,2.33,6432,1.018,6531,1.018,6616,1.347,6712,0.784,6740,0.904,6761,2.278,6832,3.587,6860,0.866,6887,1.634,7041,0.926,7047,0.884,7059,1.063,7060,3.154,7453,2.33,7483,3.2,7493,0.926,7921,1.063,7922,1.882,7982,2.903,8178,0.745,8244,4.997,8887,0.884,8890,2.975,9342,2.454,9589,2.975,9595,2.898,9603,3.296,9620,2.454,9633,2.232,10039,0.82,10055,2.33,10298,0.926,10318,4.997,10686,6.204,10709,1.712,10761,0.82,10862,0.952,10870,1.966,10877,1.816,11350,1.712,11352,1.063,11603,0.926,11609,0.884,11616,2.68,11617,0.904,11636,0.982,11681,1.124,11714,4.766,11726,1.063,11762,2.278,11774,1.995,11784,0.904,11798,4.006,11805,2.078,11844,1.124,11865,5.078,12042,0.926,12097,9.977,12224,1.063,12537,1.018,12718,0.952,13063,4.994,13381,1.063,13403,1.063,13412,4.006,13413,1.124,13474,2.078,13546,6.435,13637,0.982,13733,0.884,13831,1.063,13895,0.982,13899,0.982,13917,2.232,14409,4.994,14519,9.185,14554,1.124,14561,2.839,14849,0.982,14854,1.124,14909,3.27,14998,2.078,15167,1.124,15235,3.27,15238,2.388,15598,1.018,15601,7.121,16529,1.018,16546,1.124,17081,4.529,17090,1.063,17194,7.1,17234,1.124,18261,2.898,18346,1.063,18485,1.124,18566,1.063,18607,0.952,18612,1.882,18625,1.712,18877,2.388,19284,2.898,19835,1.966,19838,3.7,19840,1.063,19845,6.474,20033,1.063,20035,8.071,20077,2.078,20229,0.904,20292,1.816,20487,4.529,20567,2.078,20777,5.786,21038,8.277,21064,1.018,22208,1.063,22210,9.921,22215,4.35,22222,7.12,22223,9.141,22224,2.742,22252,2.532,22255,1.882,22260,8.954,22261,8.737,22262,1.216,22263,1.216,22264,3.134,22265,10.719,22266,8.483,22267,4.58,22268,1.216,22269,1.216,22270,2.248,22271,4.58,22272,3.134,22273,3.134,22274,1.216,22275,1.216,22276,2.248,22277,4.234,22278,5.278,22279,2.248,22280,2.248,22281,7.627,22282,6.186,22283,1.216,22284,1.124,22285,5.178,22286,1.124,22287,7.357,22288,11.79,22289,3.134,22290,1.216,22291,1.216,22292,3.905,22293,6.615,22294,1.216,22295,6.615,22296,1.216,22297,4.58,22298,0.982,22299,1.018,22300,3.61,22301,1.124,22302,8.503,22303,0.982,22304,1.124,22305,7.004,22306,7.357,22307,4.58,22308,7.681,22309,1.216,22310,2.248,22311,1.216,22312,1.216,22313,2.898,22314,1.216,22315,1.216,22316,1.216,22317,1.216,22318,1.216,22319,3.61,22320,1.124,22321,1.063,22322,1.124,22323,3.134,22324,1.216,22325,1.216,22326,1.216,22327,2.248,22328,1.216,22329,1.216,22330,2.625,22331,1.124,22332,2.248,22333,2.248,22334,3.134,22335,6.681,22336,4.58,22337,4.786,22338,3.134,22339,2.248,22340,1.216,22341,1.216,22342,1.216,22343,3.134,22344,1.216,22345,1.216,22346,2.248,22347,1.216,22348,1.216,22349,1.216,22350,3.905,22351,2.248,22352,10.262,22353,3.134,22354,6.615,22355,3.415,22356,1.216,22357,2.248,22358,3.134,22359,6.615,22360,7.004,22361,1.124,22362,3.905,22363,2.248,22364,3.905,22365,1.216,22366,3.134,22367,0.982,22368,10.384,22369,2.248,22370,1.124,22371,6.186,22372,1.216,22373,3.134,22374,4.336,22375,8.503,22376,3.134,22377,2.248,22378,7.357,22379,5.178,22380,1.216,22381,2.248,22382,7.978,22383,2.248,22384,1.216,22385,1.216,22386,2.898,22387,1.216,22388,1.216,22389,1.063,22390,3.134,22391,3.905,22392,1.124,22393,1.216,22394,1.216,22395,1.063,22396,2.898,22397,3.134,22398,1.216,22399,4.58,22400,1.124,22401,2.898,22402,1.216,22403,1.124,22404,1.216,22405,1.216,22406,1.216,22407,2.898,22408,1.018,22409,6.435,22410,2.248,22411,1.063,22412,1.216,22413,2.248,22414,1.216,22415,1.966,22416,4.006,22417,1.216,22418,5.709,22419,3.61,22420,1.216,22421,4.58,22422,1.216,22423,1.216,22424,1.216,22425,1.216,22426,1.216,22427,3.134,22428,1.216,22429,2.248,22430,1.216,22431,1.216,22432,1.216,22433,1.124,22434,1.216,22435,1.216,22436,3.134,22437,0.952,22438,1.216,22439,0.982,22440,1.216,22441,1.216,22442,1.216,22443,4.58,22444,1.216,22445,1.216,22446,3.134,22447,1.216,22448,1.216,22449,3.905,22450,1.216,22451,2.248,22452,1.216,22453,1.216,22454,1.216,22455,1.216,22456,1.216,22457,1.216,22458,2.248,22459,1.216,22460,1.216,22461,1.216,22462,2.248,22463,1.216,22464,1.216,22465,1.216,22466,1.216,22467,1.216,22468,2.078,22469,6.115,22470,1.216,22471,5.178,22472,1.216,22473,1.216,22474,3.134,22475,3.905,22476,3.905,22477,3.905,22478,1.216,22479,4.58,22480,4.006,22481,1.124,22482,3.134,22483,1.216,22484,2.248,22485,1.216,22486,1.966,22487,2.248,22488,3.61,22489,3.905,22490,1.216,22491,3.134,22492,4.58,22493,1.216,22494,1.216,22495,2.898,22496,2.248,22497,1.124,22498,1.216,22499,1.124,22500,1.216,22501,1.216,22502,2.898,22503,1.216,22504,1.216,22505,2.248,22506,1.216,22507,1.216,22508,1.216,22509,3.134,22510,1.216,22511,3.134,22512,2.248,22513,5.178,22514,3.134,22515,2.248,22516,2.248,22517,2.248,22518,3.415,22519,1.966,22520,1.216,22521,1.216,22522,1.216,22523,5.178,22524,2.248,22525,1.216,22526,1.216,22527,1.216,22528,2.248,22529,1.216,22530,2.248,22531,1.216,22532,1.216,22533,4.997,22534,1.216,22535,6.801,22536,1.216,22537,1.216,22538,1.216,22539,1.216,22540,2.248,22541,1.216,22542,4.006,22543,3.905,22544,2.248,22545,1.216,22546,1.216,22547,1.216,22548,1.216,22549,1.216,22550,2.248,22551,1.216,22552,1.216,22553,1.063,22554,1.216,22555,2.248,22556,2.248,22557,1.216,22558,1.216,22559,1.216,22560,1.216,22561,1.216,22562,1.216,22563,1.216,22564,1.216,22565,1.124,22566,1.216,22567,1.216,22568,1.216,22569,1.216,22570,4.58,22571,1.216,22572,1.216,22573,3.905,22574,1.216,22575,1.216,22576,1.216,22577,1.216,22578,1.216,22579,1.216,22580,1.216,22581,5.709,22582,2.898,22583,1.216,22584,3.905,22585,1.216,22586,1.216,22587,3.134,22588,1.216,22589,1.216,22590,3.134,22591,1.216,22592,2.248,22593,1.216,22594,1.216,22595,1.216,22596,1.216,22597,1.216,22598,1.063,22599,2.078,22600,1.216,22601,1.063,22602,2.248,22603,2.078,22604,1.216,22605,3.905,22606,1.216,22607,2.898,22608,1.216,22609,2.078,22610,3.134,22611,2.248,22612,1.216,22613,3.134,22614,5.709,22615,1.216,22616,2.248,22617,1.216,22618,2.078,22619,1.216,22620,1.216,22621,1.216,22622,3.905,22623,3.134,22624,1.216,22625,1.216,22626,1.216,22627,1.216,22628,1.216,22629,1.216,22630,2.248,22631,2.248,22632,2.248,22633,3.134,22634,1.216,22635,2.248,22636,1.124,22637,3.134,22638,1.216,22639,2.078,22640,2.248,22641,1.216,22642,1.216,22643,2.248,22644,9.991,22645,3.134,22646,1.216,22647,4.58,22648,7.004,22649,3.134,22650,1.216,22651,1.216,22652,3.905,22653,1.216,22654,3.134,22655,1.216,22656,1.216,22657,1.216,22658,1.216,22659,1.216,22660,1.216,22661,1.216,22662,1.216,22663,3.905,22664,1.216,22665,1.216,22666,3.134,22667,1.216,22668,2.248,22669,3.134,22670,1.063,22671,2.248,22672,1.216,22673,1.216,22674,1.216,22675,1.216,22676,2.248,22677,3.134,22678,1.124,22679,1.216,22680,1.216,22681,1.216,22682,1.124,22683,1.216,22684,1.216,22685,1.216,22686,3.134,22687,2.248,22688,1.124,22689,1.216,22690,1.216,22691,3.905,22692,1.216,22693,3.134,22694,1.216,22695,1.216,22696,1.216,22697,1.216,22698,1.216,22699,3.134,22700,2.248,22701,2.248,22702,1.216,22703,2.248,22704,5.709,22705,2.248,22706,3.134,22707,3.905,22708,1.124,22709,1.124,22710,2.248,22711,1.216,22712,3.134,22713,1.216,22714,1.216,22715,1.216,22716,1.216,22717,1.216,22718,3.134,22719,2.248,22720,1.216,22721,1.216,22722,1.216,22723,1.216,22724,2.248,22725,2.248,22726,1.216,22727,2.078,22728,1.216,22729,1.124,22730,1.124,22731,1.216,22732,3.134,22733,1.216,22734,1.216,22735,1.216,22736,2.248,22737,3.134,22738,1.216,22739,1.216,22740,1.216,22741,1.216,22742,2.248,22743,1.216,22744,1.216,22745,1.216,22746,1.216,22747,1.216,22748,1.216,22749,1.216,22750,1.216,22751,1.216,22752,1.216,22753,1.216,22754,1.216,22755,1.216,22756,3.905,22757,1.216,22758,1.216,22759,2.248,22760,1.216,22761,1.124,22762,1.216,22763,1.216,22764,1.216,22765,1.216,22766,1.216,22767,1.216,22768,1.124,22769,1.216,22770,1.216,22771,1.216,22772,1.216,22773,2.248,22774,1.216,22775,1.216,22776,1.216,22777,1.216,22778,1.063,22779,2.248,22780,1.216,22781,1.216,22782,1.216,22783,1.124,22784,1.124,22785,1.018,22786,1.216,22787,2.248,22788,1.124,22789,2.078,22790,1.216,22791,1.216,22792,3.134,22793,2.078,22794,1.216,22795,2.078,22796,2.248,22797,2.248,22798,1.124,22799,1.063,22800,1.216,22801,1.216,22802,1.124,22803,1.216,22804,1.216,22805,1.216,22806,2.248,22807,1.216,22808,3.134,22809,1.216,22810,1.216,22811,1.216,22812,1.216,22813,1.216,22814,1.216,22815,1.216,22816,1.216,22817,1.216,22818,1.216,22819,1.216,22820,1.018,22821,1.216,22822,1.216,22823,1.216,22824,1.216,22825,1.216,22826,1.216,22827,1.216,22828,1.216,22829,1.216,22830,1.216,22831,1.216,22832,1.216,22833,1.063,22834,1.124,22835,2.248,22836,2.078,22837,1.216,22838,1.216,22839,1.216,22840,1.216,22841,1.216,22842,1.216,22843,1.216,22844,1.216,22845,1.216,22846,1.018,22847,1.216,22848,1.124,22849,0.982,22850,1.216,22851,1.216,22852,1.124,22853,1.216]],["title/modules.html",[427,3.371]],["body/modules.html",[30,0,103,0,104,0,426,3.906,427,1.747,437,3.443,438,2.265,817,3.786,1295,4.049,1503,3.786,1507,3.212,1545,3.906,1546,3.786,1547,3.594,1548,3.378,1878,2.613,1883,3.906,1923,3.594,1954,3.594,1956,3.684,2449,9.965,2461,7.582,2711,3.906,3566,3.786,3567,3.594,3568,3.038,3911,4.049,4402,4.049,4578,4.049,4583,3.594,4631,3.906,5328,3.515,5333,3.078,5610,9.796,5808,3.906,5813,3.684,5814,3.786,6338,3.515,6422,3.212,6426,3.906,6427,4.049,6428,4.049,7856,4.049,8255,3.515,8835,3.786,8836,3.684,10344,4.049,10355,4.049,10409,4.229,10413,3.906,10418,3.786,10575,3.443,10576,3.378,10585,4.049,10588,3.594,10642,4.229,10645,3.378,10746,4.229,10757,4.229,10935,3.906,10939,3.906,11390,4.049,11399,4.229,12657,3.786,12658,3.906,12918,3.906,13296,4.049,13844,3.906,13848,3.443,13849,3.594,13867,3.594,13909,3.906,13913,3.684,14126,3.906,14680,4.049,14744,3.786,14758,3.786,14772,4.049,14779,4.049,15063,3.906,15574,3.906,15578,3.786,15756,3.906,15760,4.049,16607,4.229,16610,4.049,16914,3.906,17317,3.906,17501,3.906,18488,4.229,18502,4.049,18505,3.786,18506,3.906,18507,3.906,18508,3.906,18509,3.906,18510,3.906,18511,3.906,18512,3.906,18582,4.049,18862,4.049,20166,4.049,20543,4.049,21687,4.049,22854,14.52,22855,14.52,22856,13.459]],["title/properties.html",[165,0.642,22041,4.945]],["body/properties.html",[30,0.001,103,0.001,104,0.001,165,0.817,379,2.364,1904,4.364,1905,6.323,2075,5.733,2532,9.643,4533,6.473,7803,6.731,12097,7.755,17014,7.429,20218,7.948,22618,9.643,22852,9.643,22857,10.725,22858,9.643,22859,8.736,22860,10.432,22861,10.432,22862,10.432,22863,10.432]],["title/todo.html",[1477,3.648,1852,2.387,22197,4.945]],["body/todo.html",[0,0.191,5,0.007,30,0.001,31,0.457,32,0.111,34,1.387,36,1.205,47,0.401,72,2.545,99,0.937,100,2.73,103,0,104,0,112,2.116,127,0.704,150,1.945,165,0.44,199,3.082,204,2.767,319,3.148,336,1.344,359,1.959,367,3.888,368,2.201,380,2.62,381,1.869,425,2.98,433,2.123,444,3.118,449,2.229,461,1.865,481,2.157,483,2.679,509,4.083,524,3.231,571,3.53,574,4.624,576,5.418,667,2.663,685,2.965,701,3.394,704,2.782,722,4.987,778,3.791,779,7.136,798,3.53,839,2.679,1021,2.988,1125,7.137,1129,5.521,1141,5.886,1174,4.083,1184,3.114,1188,3.842,1272,4.28,1414,5.891,1415,3.444,1423,3.677,1431,4.645,1605,3.331,1630,5.928,1647,5.928,1750,2.492,1852,2.372,1874,7.965,1904,4.406,1905,4.942,1942,3.855,1948,3.367,1959,6.958,2051,4.645,2075,3.087,2130,2.454,2132,3.842,2142,4.176,2146,3.791,2222,4,2356,2.307,2440,3.2,2449,3.855,2465,8.039,2468,4.887,2469,7.957,2531,3.036,2727,2.695,3280,3.855,3282,3.53,3319,4.942,3495,3.677,3578,5.773,3649,3.925,3937,4.176,4007,5.124,4140,3.677,4519,3.855,4565,9.035,4588,2.899,4661,5.066,4662,6.829,4663,3.855,4882,3.53,5022,3.576,5058,3.732,5467,4.538,6115,4.913,6153,5.597,6430,6.385,6436,5.807,6439,3.925,6440,4.913,6443,4.704,6532,7.136,6854,3.036,6858,3.2,6885,3.677,7027,3.486,7801,4.399,7802,4.176,7803,7.217,7804,7.314,7810,3.444,8244,4.538,8303,4.28,8310,5.697,8312,4.176,8369,3.405,9603,3.576,9756,6.829,9925,6.836,10289,4.704,10793,5.193,10862,4.399,11609,4.083,11614,3.791,11616,3.855,11617,4.176,11635,4.083,11714,3.486,11762,5.928,12312,6.385,12927,3.855,13143,4.704,13817,4.913,13895,4.538,14909,4.704,15599,4.538,16740,4.913,16790,4.399,17014,4,17784,5.193,18607,7.517,18919,5.193,19652,5.193,20218,4.28,20229,4.176,20499,4.913,21073,5.193,22041,4.913,22169,5.193,22199,6.213,22216,4.913,22219,4.704,22259,4.704,22298,4.538,22403,5.193,22408,4.704,22433,5.193,22553,4.913,22833,7.132,22849,4.538,22864,5.617,22865,5.193,22866,4.704,22867,4.913,22868,5.193,22869,5.617,22870,5.617,22871,5.617,22872,4.704,22873,5.617,22874,5.617,22875,5.617,22876,4.704,22877,5.617,22878,5.617,22879,5.193,22880,5.617,22881,5.617,22882,5.617,22883,5.617,22884,5.617,22885,4.704,22886,4.913,22887,5.617,22888,5.617,22889,5.617,22890,5.617,22891,5.193,22892,5.617,22893,5.193,22894,5.617,22895,5.617,22896,5.617,22897,5.617,22898,5.617,22899,5.617,22900,4.913,22901,5.617,22902,5.617,22903,5.617,22904,5.617,22905,5.193,22906,5.617,22907,5.617,22908,5.617,22909,5.617,22910,5.617,22911,5.617,22912,5.617,22913,5.617,22914,9.6,22915,5.617,22916,5.617,22917,5.617,22918,5.617,22919,5.617,22920,5.617,22921,4.704,22922,8.154,22923,5.617,22924,5.617]],["title/additional-documentation/nestjs-application.html",[1014,2.307,1430,2.839,3492,2.868,3835,3.079]],["body/additional-documentation/nestjs-application.html",[5,0.012,18,1.888,30,0.001,31,0.418,33,0.289,72,1.693,78,6.289,87,1.875,95,0.048,103,0,104,0,163,3.21,185,1.452,210,2.446,240,1.185,319,1.117,336,0.894,355,1.502,359,2.082,367,1.782,368,1.464,404,0.673,425,2.271,427,2.158,443,2.34,475,1.827,511,3.77,524,2.149,574,4.905,577,2.109,627,2.289,667,4.417,704,2.957,722,4.154,744,2.716,766,1.563,774,4.099,779,5.546,781,3.268,784,2.02,803,3.706,845,2.716,948,4.55,951,4.55,956,3.909,957,3.311,1014,2.848,1021,4.956,1125,5.525,1126,7.296,1129,3.435,1141,3.662,1142,4.602,1184,3.311,1187,4.064,1190,2.977,1323,7.287,1336,3.268,1352,5.499,1396,3.402,1414,4.766,1430,2.193,1431,2.129,1433,4.574,1477,5.499,1583,2.446,1618,3.469,1630,5.423,1644,3.129,1645,3.018,1646,5.557,1734,2.778,1855,2.348,1874,2.661,1905,3.62,1939,2.611,1941,2.379,1942,4.099,1948,3.58,1950,2.661,1959,2.036,2075,5.461,2130,1.632,2131,1.827,2132,4.016,2226,4.342,2276,5.224,2303,1.515,2362,3.435,2374,7.781,2440,2.129,2461,2.265,2468,3.58,2469,7.911,2470,2.565,2471,2.446,2487,2.379,2536,4.472,2538,2.661,2615,2.661,2736,3.909,2794,5.053,2800,2.446,2850,2.24,3104,1.693,3281,2.482,3282,3.753,3490,5.12,3491,6.243,3492,6.793,3495,4.883,3578,1.928,3579,5.496,3580,1.521,3586,2.926,3832,3.018,3833,2.565,3835,7.448,3861,2.847,4661,3.152,5007,2.02,5058,2.482,5295,3.018,5445,3.268,5460,3.909,5530,1.863,6154,2.482,6234,2.522,6250,2.446,6251,2.482,6327,5.521,6375,2.778,6433,3.454,6472,3.968,6528,2.661,6616,2.24,6712,2.411,7044,2.379,7799,6.51,7803,6.012,7818,5.002,7821,5.849,7963,4.824,7982,6.335,8268,3.454,8745,2.193,8887,4.342,9589,4.55,10005,4.677,10289,3.129,10293,4.766,10298,2.847,10340,2.926,10609,4.44,10610,4.55,10677,2.611,10679,2.265,11350,2.847,11372,4.253,11526,3.129,11603,2.847,11614,2.522,11615,4.253,11635,5.423,11637,2.716,11644,2.926,11685,3.268,11714,5.288,11774,2.379,11812,3.268,11838,9.185,11842,3.454,11843,2.778,11950,3.129,11980,3.268,12329,2.482,12850,2.926,13044,3.018,13142,3.018,13380,3.268,13637,3.018,13838,2.778,13897,3.018,13899,3.018,14469,6.897,14849,8.026,14896,6.026,15238,2.847,15254,3.129,15599,3.018,15601,3.129,16529,3.129,16740,8.15,17945,2.661,20218,6.493,20228,3.268,20229,6.927,20623,3.454,20677,5.521,21064,3.129,21276,4.824,22126,3.454,22177,3.454,22185,3.454,22186,3.454,22198,3.129,22199,9.341,22200,5.224,22201,3.129,22203,3.018,22206,3.268,22214,6.248,22215,10.078,22235,3.268,22321,3.268,22367,3.018,22400,5.521,22407,3.454,22408,6.248,22409,5.224,22518,3.268,22533,3.018,22542,5.224,22601,3.268,22639,3.454,22682,3.454,22688,3.454,22799,5.224,22820,3.129,22856,3.454,22872,9.356,22885,5.002,22886,5.224,22900,5.224,22905,8.614,22925,3.737,22926,3.737,22927,7.803,22928,3.737,22929,3.737,22930,3.737,22931,3.737,22932,3.737,22933,5.973,22934,3.737,22935,6.525,22936,3.737,22937,3.737,22938,3.737,22939,3.737,22940,3.737,22941,3.737,22942,3.737,22943,3.737,22944,3.737,22945,3.737,22946,3.737,22947,3.737,22948,3.737,22949,3.737,22950,8.614,22951,3.454,22952,3.454,22953,3.454,22954,3.454,22955,3.454,22956,3.454,22957,3.454,22958,3.454,22959,3.737,22960,3.454,22961,3.737,22962,3.737,22963,3.737,22964,5.973,22965,3.268,22966,3.454,22967,3.268,22968,3.268,22969,3.737,22970,9.318,22971,3.454,22972,3.737,22973,3.737,22974,9.936,22975,3.737,22976,3.737,22977,3.737,22978,3.737,22979,5.973,22980,8.522,22981,3.737,22982,5.973,22983,3.737,22984,5.973,22985,5.973,22986,3.737,22987,3.737,22988,8.522,22989,3.737,22990,3.737,22991,3.737,22992,3.737,22993,5.973,22994,3.737,22995,3.737,22996,3.737,22997,3.737,22998,5.973,22999,3.737,23000,3.737,23001,3.737,23002,3.454,23003,3.737,23004,3.737,23005,3.737,23006,5.973,23007,3.737,23008,3.737,23009,3.737,23010,3.737,23011,3.737,23012,3.737,23013,3.737,23014,5.973,23015,7.461,23016,3.737,23017,3.737,23018,7.461,23019,5.973,23020,3.737,23021,3.737,23022,3.737,23023,3.737,23024,3.737,23025,3.737,23026,3.737,23027,3.737,23028,5.973,23029,3.737,23030,5.973,23031,5.973,23032,3.454,23033,3.737,23034,6.897,23035,3.737,23036,3.737,23037,3.737,23038,3.454,23039,3.454,23040,3.737,23041,3.737,23042,3.737,23043,3.737,23044,3.737,23045,3.737,23046,3.737,23047,3.737]],["title/additional-documentation/nestjs-application/software-architecture.html",[1014,2.307,1430,2.839,22205,3.908,22266,4.051]],["body/additional-documentation/nestjs-application/software-architecture.html",[0,0.326,2,0.695,5,0.005,7,0.06,8,0.476,27,0.394,30,0.001,72,4.607,95,0.051,101,0.015,103,0,104,0,105,0.527,107,0.95,116,2.407,200,2.979,208,2.887,234,0.64,334,1.186,336,2.721,381,2.073,425,3.433,427,4.578,428,1.532,432,2.844,433,1.49,447,3.203,449,2.472,461,0.902,481,1.513,535,3.341,565,1.965,569,2.705,571,2.476,573,3.003,574,2.736,667,2.954,672,4.5,687,1.68,694,2.13,711,2.337,744,2.865,766,1.649,768,5.304,784,3.368,883,1.672,946,2.58,950,3.086,956,5.058,957,4.284,960,2.705,1142,5.114,1184,3.454,1198,4.353,1312,2.446,1342,2.476,1414,6.511,1415,2.417,1433,2.417,1646,2.204,1734,7.111,1852,1.664,1854,2.618,1855,5.518,1904,5.428,1939,6.136,1941,2.509,1945,4.277,1946,6.355,1947,3.086,1948,2.362,1950,2.807,2045,2.754,2075,4.247,2144,3.517,2146,4.206,2241,4.206,2257,5.323,2268,3.55,2440,3.55,2450,6.068,2460,3.301,2461,2.389,2464,3.184,2469,2.543,2470,2.705,2487,3.966,2504,3.003,2535,3.643,2536,6.096,2537,4.078,2538,2.807,2630,2.476,2727,1.891,2736,2.58,3104,4.825,3281,2.618,3282,4.855,3364,3.517,3492,2.337,3578,2.034,3588,4.632,3602,3.086,3649,4.353,3813,4.277,3831,3.184,3833,6.027,3835,3.966,3961,2.446,4007,2.476,4140,6.656,4198,2.754,4466,2.289,4514,2.865,4565,5.033,4603,3.301,5058,5.835,5285,3.643,5406,4.795,5449,2.865,5455,3.003,5466,3.301,5574,5.76,5609,5.745,5610,3.086,6152,3.086,6154,4.14,6164,3.643,6434,2.754,6833,2.476,6834,4.53,7027,2.446,7128,3.184,7493,4.747,7804,3.003,7982,2.93,8303,3.003,8312,4.632,8890,3.003,9589,3.003,9603,4.919,9621,7.453,9786,3.003,9914,2.93,10039,2.66,10142,2.754,10293,3.485,10318,3.184,10709,3.003,10863,5.76,10877,3.184,11613,2.58,11614,4.206,11714,3.867,11743,8.011,11762,4.53,11763,5.218,11784,4.632,12311,6.384,12312,3.086,12617,3.301,12718,4.879,12850,3.086,13046,6.472,13142,3.184,13838,4.632,13890,3.086,13895,5.033,13897,3.184,14106,5.76,14167,6.051,14409,3.447,14519,3.447,15256,3.643,15844,3.086,16535,3.447,17014,6.812,17861,5.45,18607,4.879,18612,3.301,18877,3.003,19456,3.643,19650,3.184,19785,3.184,19833,3.447,20034,3.301,20292,3.184,20621,10.161,20777,3.447,21064,3.301,21350,3.447,22199,3.003,22205,8.215,22207,5.45,22218,3.301,22219,3.301,22222,3.003,22231,4.879,22252,5.033,22255,3.301,22266,5.218,22298,3.184,22299,8.011,22330,3.301,22331,7.144,22337,3.643,22352,3.447,22355,5.45,22367,3.184,22374,3.301,22386,3.643,22389,3.447,22411,3.447,22416,6.759,22437,3.086,22468,3.643,22480,3.447,22488,3.643,22518,3.447,22519,3.447,22542,5.45,22678,7.144,22729,3.643,22768,3.643,22783,3.643,22785,6.472,22834,5.76,22846,3.301,22859,3.301,22866,6.472,22876,8.011,22968,3.447,23048,3.941,23049,3.941,23050,9.566,23051,3.941,23052,3.941,23053,3.941,23054,3.941,23055,3.941,23056,8.782,23057,3.941,23058,3.643,23059,3.941,23060,3.941,23061,7.728,23062,3.941,23063,3.941,23064,7.144,23065,3.941,23066,3.941,23067,3.941,23068,3.447,23069,3.643,23070,3.941,23071,3.301,23072,3.941,23073,7.728,23074,8.366,23075,5.218,23076,3.941,23077,3.941,23078,7.681,23079,3.941,23080,6.231,23081,3.447,23082,3.941,23083,6.231,23084,3.941,23085,3.941,23086,3.941,23087,3.941,23088,3.941,23089,3.941,23090,3.941,23091,3.643,23092,3.941,23093,3.941,23094,3.643,23095,3.941,23096,6.231,23097,3.643,23098,3.941,23099,3.941,23100,3.941,23101,8.119,23102,3.941,23103,3.643,23104,3.941,23105,3.941,23106,3.941,23107,3.643,23108,3.941,23109,3.941,23110,6.231,23111,3.941,23112,3.941,23113,3.941,23114,3.447,23115,3.941,23116,3.643,23117,3.941,23118,3.941,23119,3.941,23120,3.941,23121,3.643,23122,3.941,23123,3.941,23124,3.941,23125,3.941,23126,3.941,23127,5.76,23128,3.941,23129,3.941,23130,6.231,23131,6.231,23132,7.728,23133,7.728,23134,6.231,23135,6.231,23136,3.643,23137,3.941,23138,3.941,23139,3.301,23140,6.231,23141,3.941,23142,3.941,23143,3.941,23144,3.941,23145,3.447,23146,3.941,23147,3.941,23148,3.941,23149,3.941,23150,3.941,23151,6.231,23152,3.941,23153,3.643,23154,3.941]],["title/additional-documentation/nestjs-application/file-structure.html",[5,0.006,1014,2.307,1430,2.839,5283,3.788]],["body/additional-documentation/nestjs-application/file-structure.html",[0,0.376,2,0.371,3,0.008,5,0.014,9,2.56,27,0.388,30,0.001,31,0.557,32,0.074,34,0.565,36,1.165,72,3.975,95,0.07,100,3.327,101,0.016,103,0,104,0,105,0.727,112,1.519,127,0.416,154,1.522,163,2.449,165,0.54,185,1.292,192,2.053,206,4.464,208,2.574,215,1.061,217,1.036,221,1.257,227,0.715,234,1.119,235,1.876,240,1.054,309,5.046,319,0.993,331,2.116,334,0.357,336,1.3,355,1.336,359,1.894,364,1.45,368,1.302,374,2.199,380,2.112,381,3.133,425,3.35,427,4.082,428,1.292,431,1.319,432,1.999,433,3.559,441,1.992,447,2.856,449,2.155,461,1.576,481,3.981,491,2.673,494,1.992,513,2.745,535,5.558,543,1.691,569,2.281,571,2.088,574,5.472,575,1.992,577,1.876,667,1.575,672,4.496,687,1.417,696,1.728,704,3.941,722,1.482,744,3.949,766,5.051,768,4.729,769,3.221,782,2.907,839,2.591,845,2.416,883,3.376,940,5.022,951,2.532,954,2.471,956,3.556,957,1.842,1016,1.167,1021,1.768,1125,3.221,1141,5.774,1142,2.516,1174,5.009,1184,3.012,1190,1.657,1273,5.396,1294,4.254,1414,5.558,1415,4.225,1422,5.916,1423,2.175,1430,4.043,1431,1.893,1583,2.175,1605,1.971,1646,1.859,1647,5.009,1750,3.056,1843,1.575,1854,2.208,1855,3.414,1856,2.685,1870,4.752,1878,1.796,1883,5.566,1884,2.936,1890,6.428,1904,2.882,1905,6.989,1906,2.603,1920,3.458,1939,2.322,1942,2.281,2051,1.893,2075,1.827,2146,3.667,2241,3.667,2257,2.014,2268,3.095,2303,2.202,2450,1.893,2469,4.446,2471,5.209,2476,2.783,2477,2.907,2531,3.724,2536,5.259,2538,2.367,2630,2.088,2727,1.594,2736,4.51,2848,1.604,2929,1.912,3050,2.532,3282,3.414,3341,2.685,3364,1.876,3405,2.281,3452,2.088,3492,6.361,3578,3.556,3649,2.322,3743,1.95,3812,4.254,3813,2.281,3814,2.471,3833,3.729,3834,4.139,3835,2.116,3961,2.062,3981,3.949,4007,2.088,4137,2.907,4140,2.175,4466,3.156,4565,4.389,4588,1.715,4614,2.532,4661,1.754,4663,2.281,5022,5.066,5159,2.145,5283,2.603,5406,4.276,5449,2.416,5461,2.532,6064,2.116,6098,2.175,6116,3.072,6153,2.281,6154,2.208,6161,2.367,6430,5.396,6439,3.796,6444,2.685,6472,4.578,6858,3.925,7031,4.389,7044,3.458,7088,2.532,7493,2.532,7745,2.532,7821,4.729,8050,2.416,8155,6.37,8252,2.532,8303,2.532,8313,2.783,8369,2.014,8404,6.846,8890,2.532,9062,2.907,9545,3.072,9550,3.072,9589,2.532,9603,3.458,9620,2.603,9621,6.998,9622,5.566,9623,2.685,9624,2.783,9625,2.783,9739,2.907,9756,4.55,9757,2.603,9914,2.471,9925,2.367,10657,2.783,10708,2.783,10820,2.685,11317,2.685,11349,5.022,11350,2.532,11742,2.783,11743,5.771,11774,4.386,11784,5.122,11798,2.907,11837,6.027,12041,4.55,12042,2.532,12311,5.009,12850,6.871,13132,2.907,13197,3.072,13890,4.254,14851,2.685,14912,3.072,14974,3.072,14975,3.072,14976,3.072,14977,2.907,15015,2.907,15238,2.532,15276,6.027,15844,2.603,16790,2.603,17014,2.367,17504,4.752,18607,7.374,18850,2.907,19658,4.55,19750,3.072,20621,7.374,22205,4.389,22214,2.783,22230,2.783,22231,5.396,22240,2.907,22248,5.771,22250,2.685,22252,6.428,22257,2.907,22259,2.783,22301,3.072,22303,2.685,22374,2.783,22389,2.907,22395,2.907,22396,3.072,22415,2.907,22419,3.072,22439,2.685,22495,3.072,22533,2.685,22601,2.907,22708,6.37,22778,2.907,22785,2.783,22802,3.072,22820,2.783,22848,3.072,22849,4.389,22859,2.783,22866,6.665,22867,6.027,22876,2.783,22921,5.771,22927,4.55,22966,3.072,22967,6.027,22968,2.907,22971,3.072,23068,2.907,23074,2.907,23075,2.783,23078,2.907,23136,3.072,23155,7.357,23156,4.752,23157,6.37,23158,3.072,23159,3.324,23160,5.433,23161,3.324,23162,9.417,23163,7.958,23164,3.324,23165,3.324,23166,3.324,23167,5.433,23168,7.958,23169,3.324,23170,3.324,23171,3.324,23172,3.324,23173,5.433,23174,2.907,23175,3.324,23176,3.324,23177,3.324,23178,3.324,23179,3.324,23180,3.324,23181,3.324,23182,3.324,23183,3.324,23184,3.324,23185,3.324,23186,3.324,23187,3.324,23188,3.072,23189,3.324,23190,3.324,23191,3.324,23192,3.324,23193,3.324,23194,3.324,23195,3.324,23196,3.324,23197,3.324,23198,3.324,23199,3.324,23200,3.324,23201,3.072,23202,3.324,23203,3.072,23204,5.022,23205,3.324,23206,3.324,23207,3.324,23208,3.324,23209,3.324,23210,3.324,23211,3.324,23212,3.324,23213,3.324,23214,3.324,23215,3.324,23216,3.324,23217,3.324,23218,3.324,23219,3.324,23220,3.324,23221,3.324,23222,3.324,23223,3.324,23224,3.072,23225,3.324,23226,3.324,23227,3.324,23228,3.324,23229,3.324,23230,3.072,23231,3.324,23232,3.324,23233,3.324,23234,3.324,23235,3.324,23236,3.324,23237,6.37,23238,2.907,23239,5.433,23240,3.324,23241,3.324,23242,3.324,23243,3.324,23244,3.324,23245,3.324]],["title/additional-documentation/nestjs-application/api-design.html",[1014,2.307,1414,2.706,1430,2.839,22859,4.051]],["body/additional-documentation/nestjs-application/api-design.html",[30,0.001,103,0.001,104,0.001,22598,9.81]],["title/additional-documentation/nestjs-application/logging.html",[1014,2.696,1430,3.317,6437,4.109]],["body/additional-documentation/nestjs-application/logging.html",[0,0.35,3,0.019,8,0.948,26,1.664,30,0.001,39,3.085,95,0.101,101,0.017,103,0.001,104,0.001,116,2.445,163,3.74,199,2.967,204,3.486,214,3.24,215,3.28,216,1.452,227,0.814,234,1.275,235,4.431,277,3.168,334,0.843,415,4.243,425,2.092,574,4.511,675,4.352,688,4.022,728,3.002,738,4.081,777,8.047,839,3.743,883,3.33,1141,4.813,1216,4.942,1423,6.725,1464,5.597,1465,5.303,1467,2.506,1469,3.887,2356,5.649,2357,3.576,2450,4.472,2461,4.758,2475,5.388,2536,7.284,4007,4.932,4619,6.866,4663,7.862,5460,5.138,5467,6.341,6333,6.341,6437,8.835,6834,5.707,6887,5.707,7810,4.813,8310,9.212,8311,7.257,8342,6.147,8369,4.758,10877,6.341,11601,5.981,11743,6.574,12043,5.836,12079,8.988,12080,6.866,12312,6.147,12617,6.574,13897,6.341,14433,6.574,18980,6.866,20439,8.047,22437,6.147,22481,7.257,22533,6.341,22849,6.341,23246,7.85,23247,7.85,23248,7.85,23249,10.276,23250,7.85,23251,7.85,23252,7.85,23253,7.85,23254,7.85,23255,7.85,23256,7.85,23257,7.85,23258,7.85,23259,7.85,23260,7.257,23261,7.257,23262,7.85]],["title/additional-documentation/nestjs-application/exception-handling.html",[1014,2.307,1430,2.839,6436,3.445,8369,2.932]],["body/additional-documentation/nestjs-application/exception-handling.html",[0,0.309,9,3.076,30,0.001,31,0.366,32,0.161,47,0.804,48,5.31,51,4.407,72,4.11,101,0.015,103,0.001,104,0.001,111,1.309,116,2.033,163,3.209,204,4.52,214,2.86,215,2.083,216,1.678,217,0.849,227,0.677,234,1.83,240,2.878,305,2.971,319,3.117,334,0.701,367,3.113,404,1.176,406,2.123,407,5.273,417,4.745,425,1.739,503,5.563,565,4.522,571,4.101,574,4.578,672,4.649,676,3.528,685,3.445,689,3.651,722,4.045,744,4.745,784,3.528,883,2.769,954,4.852,1016,3.185,1142,4.83,1216,4.803,1342,4.101,1369,3.557,1396,3.719,1397,2.186,1413,6.034,1414,5.074,1415,6.394,1421,6.595,1423,8.023,1430,5.323,1431,5.94,1433,4.002,1438,4.212,1464,5.646,1469,3.232,1733,5.273,1741,5.467,1748,6.034,1855,4.101,2004,4.48,2268,3.719,2466,5.467,2468,3.912,2475,4.48,2536,7.348,3050,4.973,3281,4.337,3303,4.648,3492,6.183,3580,2.658,3812,5.111,3831,9.567,3832,5.273,3837,8.166,4007,6.552,4614,4.973,4663,4.48,5469,5.467,6436,4.648,6437,6.595,6443,5.467,7990,5.467,8288,3.394,8303,7.945,8310,4.56,8362,5.111,8368,6.034,8369,7.991,8371,5.467,8745,3.83,8746,4.002,9603,5.775,9757,5.111,10803,6.034,12043,4.852,13899,5.273,14909,5.467,20764,6.034,22198,5.467,22277,6.034,22437,5.111,22603,12.037,23075,5.467,23139,5.467,23188,6.034,23263,6.034,23264,6.528,23265,9.073,23266,6.528,23267,6.528,23268,6.528,23269,6.528,23270,6.528,23271,6.528,23272,6.528,23273,6.528,23274,6.528,23275,6.528,23276,6.528,23277,6.528,23278,6.528,23279,6.034,23280,6.528,23281,6.528,23282,6.528,23283,6.528,23284,6.034,23285,6.528]],["title/additional-documentation/nestjs-application/domain-object-validation.html",[359,1.474,1014,2.016,1415,2.592,1430,2.481,1904,1.768]],["body/additional-documentation/nestjs-application/domain-object-validation.html",[0,0.306,30,0.001,103,0.001,104,0.001,116,2.8,188,3.32,334,1.204,347,1.818,359,4.585,475,5.477,574,3.946,667,4.261,685,4.744,692,3.358,704,4.451,783,5.448,957,6.211,1415,5.511,1805,5.972,1855,5.648,1904,5.501,1945,6.169,2146,6.067,2439,6.574,2460,7.528,2468,6.716,2475,7.69,2531,4.858,2536,5.387,2649,4.996,2849,3.888,3106,5.073,3498,7.528,5443,7.862,5449,6.534,6098,5.883,7982,6.682,8179,6.067,9621,6.067,9888,6.682,10298,8.537,11615,6.401,12311,6.534,13890,7.039,18877,6.848,22226,7.261,22335,9.383,22367,7.261,22497,8.309,22778,7.862,22788,10.358,23069,8.309,23237,12.815,23286,8.989,23287,8.989,23288,8.989,23289,8.989,23290,11.205,23291,8.989,23292,8.989,23293,8.989,23294,8.989,23295,11.205,23296,8.989]],["title/additional-documentation/nestjs-application/testing.html",[1014,2.696,1430,3.317,11372,4.026]],["body/additional-documentation/nestjs-application/testing.html",[0,0.18,27,0.165,29,0.415,30,0.001,31,0.297,32,0.106,35,0.485,36,1.675,51,1.125,72,4.368,79,3.504,94,1.125,95,0.03,96,0.633,100,0.775,103,0,104,0,112,2.407,144,1.736,150,1.387,163,3.065,188,1.48,199,0.875,200,1.65,204,3.475,209,0.765,217,1.395,221,2.305,227,0.81,234,0.376,235,3.563,290,1.358,309,4.492,319,1.197,379,0.908,380,0.851,381,1.762,394,2.282,425,2.362,428,2.453,432,1.949,443,0.907,444,0.885,447,1.661,449,0.919,460,3.046,461,0.916,475,1.132,481,0.889,500,1.589,511,1.17,535,3.384,569,1.589,571,2.517,573,1.764,574,4.706,575,1.388,672,1.186,687,4.366,688,3.234,691,4.154,698,1.283,704,4.389,711,1.373,728,2.728,744,1.683,766,2.64,768,2.75,774,1.589,779,4.692,784,1.251,795,1.42,836,2.327,839,1.104,883,3.314,905,0.964,948,3.053,954,1.721,1018,1.494,1125,7.604,1126,1.813,1129,2.304,1142,4.105,1174,1.683,1184,3.499,1189,1.091,1190,1.154,1195,1.764,1307,1.649,1369,2.183,1414,4.957,1422,1.721,1423,1.515,1431,1.319,1433,1.42,1435,3.504,1477,1.494,1581,4.495,1584,2.14,1627,2.025,1646,1.295,1647,1.683,1734,2.978,1750,3.464,1804,1.403,1805,2.662,1854,1.538,1855,1.455,1857,1.764,1869,1.813,1939,3.7,1942,2.75,1945,1.589,1946,1.538,1948,5.779,1949,3.504,1951,4.278,2051,1.319,2075,2.202,2142,1.721,2144,1.307,2145,2.517,2222,1.649,2226,1.683,2276,2.025,2355,3.046,2401,4.589,2412,2.55,2439,1.358,2440,3.596,2450,4.773,2461,3.21,2468,2.401,2469,8.241,2471,1.515,2476,1.939,2479,2.025,2504,1.764,2524,1.358,2531,4.529,2536,5.779,2537,5.112,2538,4.495,2630,1.455,2642,1.683,2688,3.355,2929,1.332,3010,2.241,3090,1.001,3104,1.049,3106,1.307,3110,1.154,3144,4.943,3281,1.538,3303,1.649,3319,2.428,3364,1.307,3430,1.618,3492,2.376,3495,6.868,3586,1.813,3649,1.618,3813,2.75,3833,1.589,3834,1.764,3835,1.474,3937,2.978,4139,2.025,4140,2.622,4514,4.589,4588,2.068,4614,3.053,4661,1.222,4663,3.635,4669,1.813,5022,1.474,5050,1.474,5058,1.538,5183,3.328,5283,5.586,5289,1.939,5406,2.486,5449,2.912,5460,1.515,5461,1.764,5463,1.764,5464,1.87,5465,1.764,5471,1.764,5496,1.939,5609,1.721,5630,2.75,5684,1.87,6098,1.515,6111,1.939,6154,2.662,6229,1.538,6434,1.618,6436,2.853,6472,1.538,6528,1.649,6532,1.721,6761,4.589,6833,1.455,6834,1.683,6844,1.721,6858,1.319,6885,3.466,6935,6.239,7027,1.437,7034,1.813,7483,1.618,7493,3.053,7773,3.053,7801,1.813,7803,3.417,7812,3.504,7818,3.355,7821,2.75,7920,2.025,8050,2.912,8252,1.764,8312,6.588,8716,7.495,9342,1.813,9589,5.435,9590,2.14,9603,4.541,9620,3.137,9621,1.563,9757,6.94,9786,1.764,10004,1.813,10298,1.764,10299,2.14,10318,3.236,10607,1.683,10610,3.053,10645,2.799,10651,5.678,10654,1.721,10687,1.939,10862,1.813,10872,2.14,11350,1.764,11351,1.813,11370,7.22,11372,7.778,11609,1.683,11614,2.704,11615,1.649,11757,1.813,11758,2.14,11762,1.683,11774,2.55,11837,2.025,12042,3.053,12311,2.912,12618,2.14,13037,4.278,13044,1.87,13143,1.939,13403,2.025,13410,5.521,13638,1.87,13785,2.14,13831,2.025,13836,2.025,13889,3.504,13890,1.813,13897,1.87,13898,2.14,13899,1.87,13917,1.649,14107,3.937,14167,1.813,14429,3.704,14433,3.355,15016,2.025,15068,3.236,15235,3.355,15445,2.14,15844,1.813,16796,1.87,17014,3.772,17084,1.939,17094,2.025,17313,1.939,17827,2.025,17861,2.025,17964,3.504,18612,1.939,18877,1.764,19033,2.025,19650,1.87,19658,1.939,19785,3.236,19835,3.504,19837,2.14,19843,2.14,20034,1.939,20035,1.87,20216,3.704,20218,4.809,20219,5.835,20223,5.835,20228,5.521,20229,2.978,20487,3.504,20621,3.137,21263,7.746,21276,3.236,21517,4.896,22123,2.025,22147,2.14,22199,3.053,22201,3.355,22210,3.355,22215,1.764,22222,1.764,22226,1.87,22228,2.025,22231,4.943,22250,1.87,22266,1.939,22278,2.14,22281,2.14,22284,2.14,22286,2.14,22298,1.87,22299,1.939,22303,1.87,22304,2.14,22319,2.14,22320,2.14,22335,3.355,22352,3.504,22367,4.278,22374,1.939,22392,2.14,22395,2.025,22401,2.14,22409,2.025,22411,2.025,22416,2.025,22439,1.87,22480,2.025,22486,2.025,22519,2.025,22533,1.87,22553,2.025,22598,2.025,22709,2.14,22727,2.14,22761,2.14,22789,2.14,22793,2.14,22799,2.025,22833,2.025,22846,1.939,22866,1.939,22867,2.025,22876,4.436,22891,4.896,22893,3.704,22921,1.939,22927,7.422,22965,2.025,23032,2.14,23064,2.14,23074,2.025,23075,1.939,23078,3.504,23081,2.025,23094,2.14,23101,2.14,23103,2.14,23114,3.504,23116,2.14,23121,8.913,23139,3.355,23145,3.504,23153,3.704,23155,4.896,23156,2.025,23157,3.704,23158,2.14,23174,3.504,23203,2.14,23204,2.14,23230,2.14,23261,2.14,23263,2.14,23279,2.14,23297,2.315,23298,2.315,23299,2.315,23300,6.312,23301,2.025,23302,2.315,23303,5.296,23304,2.315,23305,4.007,23306,2.315,23307,2.315,23308,4.007,23309,2.315,23310,2.315,23311,2.315,23312,2.025,23313,2.315,23314,2.315,23315,2.315,23316,2.315,23317,2.315,23318,2.315,23319,2.315,23320,2.315,23321,2.315,23322,2.315,23323,2.315,23324,2.315,23325,6.312,23326,2.315,23327,2.14,23328,2.315,23329,2.315,23330,2.14,23331,2.315,23332,2.315,23333,7.811,23334,2.315,23335,2.315,23336,2.315,23337,2.315,23338,2.315,23339,2.14,23340,3.704,23341,4.007,23342,7.133,23343,4.007,23344,2.315,23345,2.315,23346,2.025,23347,2.315,23348,5.296,23349,4.007,23350,4.007,23351,7.811,23352,4.007,23353,2.315,23354,2.315,23355,2.14,23356,2.025,23357,5.296,23358,2.315,23359,5.296,23360,4.007,23361,7.133,23362,4.007,23363,5.296,23364,2.315,23365,2.315,23366,2.315,23367,4.007,23368,8.379,23369,2.315,23370,2.315,23371,2.315,23372,2.315,23373,2.315,23374,2.315,23375,2.315,23376,2.315,23377,2.315,23378,2.315,23379,2.315,23380,2.315,23381,2.315,23382,2.315,23383,2.315,23384,2.315,23385,2.315,23386,4.007,23387,2.315,23388,2.14,23389,5.296,23390,2.315,23391,2.315,23392,2.315,23393,2.315,23394,5.296,23395,2.315,23396,4.007,23397,4.007,23398,2.315,23399,2.315,23400,2.315,23401,2.315,23402,2.315,23403,4.007,23404,4.007,23405,4.007,23406,5.296,23407,2.315,23408,2.315,23409,4.007,23410,4.007,23411,4.007,23412,5.296,23413,2.315,23414,2.315,23415,2.315,23416,4.007,23417,2.315,23418,4.007,23419,2.315,23420,2.315,23421,2.315,23422,2.315,23423,4.007,23424,4.007,23425,2.315,23426,2.315,23427,2.315,23428,2.315,23429,7.133,23430,2.315,23431,5.296,23432,2.14,23433,2.025,23434,2.315,23435,2.315,23436,2.315,23437,2.315,23438,2.315,23439,2.315,23440,2.315,23441,2.315,23442,6.312,23443,2.315,23444,2.315,23445,4.007,23446,4.007,23447,2.315,23448,4.007,23449,2.315,23450,2.315,23451,2.315,23452,2.315,23453,2.315,23454,2.315,23455,2.315,23456,2.14,23457,2.315,23458,2.315,23459,2.315,23460,2.315,23461,2.315,23462,2.315,23463,4.007,23464,2.315,23465,2.315,23466,2.315,23467,2.315,23468,2.315,23469,2.315,23470,2.315,23471,2.315,23472,2.315,23473,2.315,23474,2.315]],["title/additional-documentation/nestjs-application/vscode.html",[1014,2.696,1430,3.317,22203,4.567]],["body/additional-documentation/nestjs-application/vscode.html",[5,0.014,30,0.001,72,4.364,103,0.001,104,0.001,210,6.305,722,5.213,795,5.907,950,7.544,1021,5.124,1125,5.712,2226,7.003,2469,7.544,3492,6.933,3578,6.034,3834,7.34,3835,7.443,4661,6.171,6154,6.4,6229,6.4,6432,8.068,7982,7.161,11779,7.782,11784,7.161,14401,8.426,20218,8.908,22203,9.445,22232,10.227,22408,8.068,22499,8.906,22670,8.426,22784,8.906,22836,11.638,22865,8.906,22872,8.068,22927,8.068,22967,8.426,23002,8.906,23038,8.906,23071,8.068,23174,8.426,23238,10.227,23475,9.634,23476,9.634,23477,9.634,23478,9.634,23479,9.634,23480,9.634,23481,9.634]],["title/additional-documentation/nestjs-application/git.html",[1014,2.696,1430,3.317,22204,4.734]],["body/additional-documentation/nestjs-application/git.html",[30,0.001,31,0.419,55,2.41,72,3.391,77,4.765,103,0.001,104,0.001,154,3.428,309,4.305,319,2.237,379,1.696,444,2.863,543,3.809,569,5.138,574,3.286,722,3.338,728,2.863,957,6.203,1021,3.982,1128,6.269,1142,5.183,1189,3.527,1216,2.933,1397,2.506,1644,6.269,1645,6.047,1646,5.57,1805,6.616,1854,7.435,1874,7.091,1941,4.765,1946,4.973,1959,4.079,1965,10.033,1966,9.788,2144,4.225,2241,5.052,2268,4.264,2439,4.392,2450,4.264,2469,6.426,2471,4.899,2524,4.392,2536,6.707,2659,3.507,2794,4.438,2848,4.807,3430,5.23,4661,3.951,5058,7.435,5406,4.645,5465,5.703,6115,8.71,6439,5.23,6712,4.83,6829,5.862,7044,4.765,7745,5.703,7821,5.138,8312,5.565,9342,5.862,10142,5.23,11613,4.899,11617,5.565,11757,5.862,11869,5.331,11870,5.331,12014,6.547,12041,6.269,12310,6.547,13836,6.547,13838,8.867,14107,5.565,15157,6.547,19666,6.92,22204,9.99,22221,6.547,22226,6.047,22236,6.547,22237,6.547,22248,9.372,22253,8.34,22299,9.99,22300,6.92,22313,9.206,22437,7.798,22439,6.047,22486,9.788,22565,6.92,22730,6.92,22849,9.039,22879,6.92,22900,8.71,23058,6.92,23071,8.34,23091,6.92,23156,8.71,23201,6.92,23432,6.92,23433,6.547,23482,7.486,23483,7.486,23484,7.486,23485,7.486,23486,7.486,23487,7.486,23488,7.486,23489,7.486,23490,7.486,23491,7.486,23492,7.486,23493,7.486,23494,7.486,23495,7.486,23496,9.958,23497,7.486,23498,7.486,23499,9.958,23500,7.486,23501,7.486,23502,7.486,23503,7.486,23504,7.486,23505,7.486,23506,7.486,23507,7.486,23508,7.486,23509,7.486,23510,7.486,23511,7.486]],["title/additional-documentation/nestjs-application/keycloak.html",[773,3.598,1014,2.696,1430,3.317]],["body/additional-documentation/nestjs-application/keycloak.html",[5,0.005,18,2.269,30,0.001,31,0.601,51,3.351,53,6.105,78,7.985,87,3.462,95,0.121,101,0.016,103,0,104,0,163,3.304,235,2.534,355,1.804,363,4.391,379,1.563,432,1.652,443,1.759,444,1.717,461,1.578,538,2.023,540,5.014,569,3.082,573,3.421,574,4.138,722,3.076,728,2.638,773,8.566,774,3.082,803,2.786,883,1.905,938,3.264,954,3.338,958,5.777,960,3.082,1021,5.409,1125,4.09,1161,3.082,1184,2.489,1270,2.662,1271,5.346,1323,3.137,1396,3.93,1414,3.858,1423,2.939,1615,5.777,1639,5.346,1646,3.858,1849,3.462,1854,4.583,1920,2.858,1941,2.858,2035,3.728,2075,6.34,2132,4.441,2144,2.534,2226,3.264,2257,2.722,2362,6.635,2374,9.034,2385,2.753,2461,2.722,2470,5.764,2471,2.939,2475,3.082,2536,6.915,2615,3.198,2800,7.905,2850,6.915,2929,3.967,3090,3.633,3104,2.034,3282,5.277,3490,5.764,3495,4.515,3580,1.828,3584,3.031,3835,2.858,3909,6.399,4514,3.264,4588,4.335,4663,3.082,5406,2.786,5455,3.421,5510,3.928,6154,2.983,6375,3.338,6431,3.516,6473,2.608,6712,4.451,6761,3.264,6833,4.334,7027,4.28,7044,2.858,7280,6.851,7799,5.868,7982,5.128,8310,4.819,8312,3.338,8716,8.671,9621,3.031,10049,3.516,10289,3.761,10609,3.338,10679,2.722,11156,6.105,11372,5.981,11585,2.558,11603,7.748,11613,2.939,11614,5.669,11631,3.516,11644,7.38,11685,8.243,11714,4.28,11742,3.761,11812,3.928,11941,3.627,12927,6.468,13283,7.346,13380,7.346,13383,7.613,13421,7.18,13515,3.928,13638,3.627,13640,4.151,13838,6.244,14401,3.928,14849,3.627,14896,6.784,15255,4.151,15378,3.761,15601,3.761,17014,5.981,19840,3.928,20218,3.421,20229,5.128,21276,3.627,22199,3.421,22202,3.928,22215,9.5,22225,3.928,22253,3.761,22303,3.627,22321,3.928,22361,4.151,22437,5.402,22469,4.151,22502,4.151,22535,4.151,22607,4.151,22857,8.894,22872,7.892,22935,10.748,22950,9.401,22951,7.764,22952,6.377,22953,6.377,22954,6.377,22955,8.712,22956,6.377,22957,6.377,22958,8.712,22960,4.151,23034,6.377,23330,4.151,23339,4.151,23346,3.928,23388,4.151,23512,4.49,23513,4.49,23514,4.49,23515,4.49,23516,9.424,23517,4.49,23518,4.49,23519,4.49,23520,6.898,23521,4.49,23522,4.49,23523,6.898,23524,4.49,23525,4.49,23526,4.49,23527,4.49,23528,6.898,23529,4.49,23530,6.898,23531,6.898,23532,6.898,23533,6.898,23534,11.179,23535,6.898,23536,6.898,23537,6.898,23538,6.898,23539,4.49,23540,4.49,23541,4.49,23542,10.169,23543,6.898,23544,6.898,23545,4.49,23546,4.49,23547,6.898,23548,4.49,23549,4.49,23550,4.49,23551,4.49,23552,4.49,23553,4.49,23554,4.49,23555,6.898,23556,4.49,23557,4.49,23558,4.49,23559,6.898,23560,6.898,23561,4.49,23562,4.49,23563,4.49,23564,4.49,23565,4.49,23566,4.49,23567,4.49,23568,4.49,23569,4.49,23570,4.49]],["title/additional-documentation/nestjs-application/rocket.chat.html",[1014,2.696,1430,3.317,23571,5.226]],["body/additional-documentation/nestjs-application/rocket.chat.html",[5,0.009,30,0.001,31,0.416,103,0.001,104,0.001,210,4.863,247,2.911,574,3.262,948,9.912,1021,3.952,1129,4.274,1141,6.076,1167,4.084,1183,5.191,1248,5.661,1294,7.76,1322,5.819,1856,6.002,2075,5.446,2132,3.501,2362,8.247,2374,5.819,2439,4.36,2536,7.426,2850,4.453,3104,3.366,3490,5.1,3491,4.669,3495,4.863,3580,4.034,3835,4.73,6375,5.524,7041,5.661,8887,5.401,10039,5.015,11637,5.401,14896,6.002,15158,6.499,15276,6.499,16529,6.223,17504,8.667,19650,6.002,19659,6.869,20229,5.524,21532,6.223,22215,7.55,22439,6.002,22857,6.499,22885,6.223,22935,10.836,23238,6.499,23571,10.307,23572,7.43,23573,7.43,23574,7.43,23575,7.43,23576,7.43,23577,9.909,23578,7.43,23579,7.43,23580,7.43,23581,7.43,23582,7.43,23583,7.43,23584,9.909,23585,7.43,23586,7.43,23587,7.43,23588,7.43,23589,7.43,23590,7.43,23591,7.43,23592,7.43,23593,7.43,23594,7.43,23595,7.43,23596,7.43,23597,7.43,23598,7.43,23599,7.43,23600,7.43,23601,7.43,23602,7.43,23603,7.43,23604,7.43,23605,7.43,23606,7.43,23607,7.43,23608,7.43,23609,7.43,23610,7.43,23611,7.43,23612,7.43,23613,7.43,23614,7.43,23615,7.43,23616,7.43,23617,7.43,23618,7.43,23619,9.909,23620,9.909,23621,7.43,23622,7.43]],["title/additional-documentation/nestjs-application/configuration.html",[1014,2.696,1430,3.317,2130,2.469]],["body/additional-documentation/nestjs-application/configuration.html",[30,0.001,31,0.482,34,1.029,55,2.155,102,3.035,103,0,104,0.001,199,2.286,200,2.678,204,2.917,234,0.982,319,1.807,367,4.1,379,1.37,428,2.35,483,4.771,511,3.056,571,5.402,574,2.655,575,3.625,576,7.098,577,3.413,671,3.352,688,3.099,722,3.834,728,2.313,769,3.586,883,4.244,946,3.958,951,4.608,956,3.958,1021,3.217,1042,5.065,1125,3.586,1126,4.736,1128,10.306,1141,3.708,1142,4.634,1216,2.369,1396,3.445,1397,2.025,1414,4.809,1433,5.272,1647,6.25,1770,3.513,1804,3.665,1855,3.8,1905,6.977,1920,3.849,1939,4.225,1959,3.296,1965,8.802,2075,4.725,2130,2.642,2132,2.85,2144,3.413,2450,6.207,2468,6.531,2469,5.548,2470,5.901,2475,4.15,2487,5.473,2536,3.625,2537,3.958,2769,6.286,3104,2.74,3281,4.018,3492,6.825,3495,7.131,3834,6.551,3835,8.51,3909,4.608,3981,4.396,4140,3.958,4518,4.885,4661,3.192,5030,3.478,5183,5.402,5289,5.065,5406,5.335,5449,4.396,5463,4.608,5684,4.885,6064,3.849,6153,4.15,6250,5.627,6333,4.885,6436,4.306,6437,4.396,6616,6.531,6712,5.548,6858,4.898,6863,4.608,7453,4.496,7821,4.15,8745,3.548,8890,6.551,9511,5.289,9570,4.736,10303,8.302,10686,4.885,11372,4.306,11614,4.082,11757,4.736,11762,6.25,11774,5.473,11808,5.289,12042,6.551,13062,7.834,13637,8.082,13838,4.496,14107,4.496,14167,6.733,14305,4.885,14851,4.885,15238,4.608,15254,5.065,15598,5.065,15599,4.885,16436,7.52,16790,4.736,16796,6.945,17014,4.306,18262,5.289,20439,4.736,21532,5.065,21764,5.289,22198,7.201,22199,4.608,22200,5.289,22201,5.065,22202,5.289,22203,4.885,22204,7.201,22205,6.945,22206,5.289,22207,5.289,22208,5.289,22209,7.948,22210,7.201,22211,5.59,22212,5.59,22213,5.59,22214,5.065,22215,7.623,22216,5.289,22217,7.948,22218,5.065,22219,5.065,22220,7.948,22221,5.289,22222,4.608,22223,5.065,22224,5.289,22225,5.289,22226,4.885,22227,5.59,22228,5.289,22229,5.59,22230,5.065,22231,4.736,22232,5.289,22233,7.948,22234,7.948,22235,8.751,22236,10.068,22237,5.289,22238,5.59,22239,7.948,22240,5.289,22241,5.59,22242,5.59,22243,5.59,22244,7.948,22245,5.59,22246,5.59,22247,5.59,22248,5.065,22249,5.59,22250,4.885,22251,5.59,22252,6.945,22253,7.201,22254,5.59,22255,5.065,22256,5.59,22257,5.289,22258,5.59,22259,5.065]],["title/additional-documentation/nestjs-application/authorisation.html",[1014,2.696,1430,3.317,3586,4.427]],["body/additional-documentation/nestjs-application/authorisation.html",[0,0.075,5,0.006,8,0.464,9,1.04,10,1.551,26,1.925,27,0.091,30,0.001,31,0.342,32,0.052,33,0.107,34,0.868,47,0.617,72,4.28,74,1.782,94,1.072,101,0.009,103,0,104,0,105,0.295,111,1.224,112,1.526,116,1.197,137,6.074,185,2.69,188,4.218,192,3.313,199,3.693,200,0.687,208,1.435,214,0.696,215,0.704,216,0.944,217,1.535,221,1.891,227,0.898,234,1.124,235,2.169,240,0.7,277,5.038,290,1.294,307,2.414,309,2.936,334,0.237,347,1.032,359,2.65,367,1.052,368,2.393,369,1.355,371,1.06,379,0.5,380,1.929,381,1.698,404,0.398,406,0.718,425,2.517,427,1.388,433,1.452,461,2.91,475,1.878,483,1.052,495,5.645,496,4.247,535,2.06,540,3.71,571,3.837,574,4.529,575,1.322,672,1.969,687,0.94,688,2.615,691,3.682,698,1.223,722,0.984,728,1.469,731,2.413,744,1.604,766,4.833,768,4.751,769,3.621,781,1.93,795,3.744,806,0.898,843,3.055,851,1.052,852,1.052,853,1.139,883,3.673,905,0.919,950,1.728,954,3.794,956,3.341,957,5.033,960,1.514,1021,1.173,1031,1.599,1127,1.404,1129,4.98,1141,1.353,1142,1.022,1184,3.838,1193,2.593,1198,1.541,1352,3.94,1369,1.202,1414,3.415,1423,1.444,1430,3.583,1433,1.353,1583,3.341,1587,2.039,1588,1.541,1605,1.308,1643,1.93,1646,3.872,1750,1.704,1795,1.192,1798,5.952,1799,4.606,1804,3.093,1805,3.391,1820,8.044,1821,6.055,1823,2.384,1843,2.419,1849,6.264,1854,2.553,1855,4.35,1856,1.782,1857,1.681,1858,2.013,1861,3.093,1865,1.005,1869,1.728,1875,2.927,1889,3.794,1904,4.578,1905,1.337,1906,5.951,1941,4.837,1942,1.514,1944,4.191,1945,2.637,1947,1.728,1948,1.322,1949,5.341,1950,4.93,1951,4.123,1959,3.773,1977,2.039,1982,4.149,1984,1.728,2002,1.424,2006,5.862,2007,1.782,2013,1.466,2045,2.684,2051,2.908,2075,2.805,2114,1.489,2132,1.04,2144,1.245,2146,2.593,2257,1.337,2258,2.039,2439,3.583,2440,1.257,2450,4.329,2451,4.123,2452,2.039,2461,1.337,2466,3.218,2468,1.322,2471,1.444,2487,6.403,2524,2.995,2536,6.845,2537,2.515,2538,5.412,2553,0.94,2633,2.449,2649,0.984,2659,2.391,2702,2.3,2727,3.646,2794,1.308,2801,5.818,2925,1.322,3050,3.889,3090,1.662,3102,1.782,3104,3.701,3105,2.446,3106,3.447,3110,4.709,3195,1.369,3282,5.134,3364,1.245,3389,1.444,3393,2.593,3405,3.503,3429,1.404,3491,1.386,3492,2.278,3578,3.573,3579,3.004,3580,0.898,3588,1.64,3649,4.837,3811,1.782,3813,4.751,3832,1.782,3834,1.681,3835,4.407,4140,5.942,4184,4.122,4205,1.295,4515,1.782,4519,2.637,4520,1.93,4533,5.07,4618,1.514,4659,1.466,4661,1.164,4663,6.706,4878,1.353,5022,2.446,5058,2.553,5183,4.775,5283,3.009,5455,1.681,5464,1.782,5684,1.782,6098,2.515,6153,1.514,6251,1.466,6430,1.728,6434,1.541,6439,1.541,6471,1.571,6525,1.782,6532,2.856,6616,1.322,6712,3.94,6761,1.604,6791,1.93,6792,1.848,6834,1.604,6854,2.077,6858,4.932,6860,1.571,6862,3.889,6876,1.728,6881,1.681,6985,2.039,7029,5.341,7039,1.404,7047,2.793,7279,1.782,7363,1.386,7453,1.64,7483,1.541,7773,1.681,7795,1.728,7809,3.889,8050,1.604,8303,1.681,8312,3.794,8313,1.848,8745,1.294,8887,1.604,9062,1.93,9603,3.887,9621,5.129,9623,4.123,9786,1.681,9888,1.64,10039,1.489,10142,1.541,10496,1.848,10502,1.93,10679,3.093,10691,1.64,10709,5.79,10870,1.93,11379,4.718,11615,1.571,11617,1.64,11695,2.039,11714,1.369,11762,5.032,11774,1.404,11839,2.039,11936,2.553,12030,1.782,12043,1.64,12311,5.524,12617,4.274,12942,1.93,13046,3.218,13143,1.848,13144,4.274,13790,3.552,13791,1.848,13834,2.039,13838,1.64,13889,1.93,13890,3.009,13895,1.782,13917,1.571,14167,3.009,14184,3.218,14250,2.039,14261,2.039,14305,1.782,14433,1.848,14561,2.793,14851,3.104,15235,3.218,15238,1.681,15250,1.93,15844,1.728,16337,2.039,16535,1.93,16560,2.039,16637,1.93,16790,1.728,16796,1.782,17014,2.736,17084,1.848,17671,3.361,18346,1.93,18839,2.039,19650,3.104,19651,2.039,19658,1.848,19731,2.039,19833,6.647,19838,4.123,19864,5.645,19982,2.039,20035,1.782,20229,2.856,20247,2.039,20292,3.104,20621,3.009,20622,2.039,21276,4.933,21324,2.039,21325,2.039,22007,3.552,22123,7.941,22218,1.848,22222,3.889,22223,1.848,22230,1.848,22231,1.728,22250,1.782,22298,3.104,22303,5.592,22322,2.039,22330,1.848,22335,3.218,22355,1.93,22370,2.039,22415,3.361,22582,2.039,22599,2.039,22670,5.341,22785,1.848,22795,2.039,22798,2.039,22820,1.848,22846,1.848,22868,2.039,22885,1.848,22886,1.93,22965,4.464,23039,2.039,23068,1.93,23071,3.218,23081,1.93,23097,4.718,23107,2.039,23114,1.93,23127,3.552,23145,4.464,23224,3.552,23260,2.039,23301,1.93,23312,1.93,23327,2.039,23340,2.039,23346,1.93,23355,2.039,23433,1.93,23456,3.552,23623,2.206,23624,2.206,23625,3.842,23626,2.206,23627,5.104,23628,2.206,23629,2.206,23630,2.039,23631,6.107,23632,3.842,23633,2.206,23634,2.206,23635,3.842,23636,3.842,23637,3.842,23638,2.206,23639,2.206,23640,3.842,23641,8.658,23642,2.206,23643,2.206,23644,2.206,23645,3.842,23646,2.206,23647,2.206,23648,2.206,23649,2.206,23650,2.206,23651,2.206,23652,3.842,23653,2.206,23654,2.206,23655,2.206,23656,2.206,23657,5.104,23658,2.206,23659,3.842,23660,3.842,23661,2.206,23662,3.842,23663,2.206,23664,2.206,23665,2.206,23666,2.206,23667,2.206,23668,2.206,23669,2.206,23670,2.206,23671,2.206,23672,2.206,23673,2.206,23674,2.206,23675,3.842,23676,3.842,23677,2.206,23678,2.206,23679,2.206,23680,2.206,23681,3.842,23682,2.206,23683,2.206,23684,2.206,23685,2.206,23686,2.206,23687,2.206,23688,5.104,23689,2.206,23690,2.206,23691,2.206,23692,2.206,23693,2.206,23694,2.206,23695,2.206,23696,2.206,23697,5.104,23698,2.206,23699,6.107,23700,2.206,23701,2.206,23702,3.842,23703,2.206,23704,2.206,23705,2.206,23706,2.206,23707,2.206,23708,2.206,23709,2.206,23710,2.206,23711,2.206,23712,2.206,23713,2.206,23714,2.206,23715,3.842,23716,2.206,23717,2.206,23718,3.842,23719,2.206,23720,2.206,23721,2.206,23722,2.039,23723,2.206,23724,2.206,23725,2.206,23726,3.842,23727,2.206,23728,2.206,23729,2.206,23730,2.206,23731,2.206,23732,2.206,23733,2.206,23734,2.206,23735,2.206,23736,2.206,23737,2.206,23738,2.206,23739,2.206,23740,2.206,23741,2.206]],["title/additional-documentation/nestjs-application/code-style.html",[1014,2.307,1142,2.24,1430,2.839,23356,4.231]],["body/additional-documentation/nestjs-application/code-style.html",[0,0.293,2,1.216,8,1.445,30,0.001,31,0.705,35,1.042,47,0.853,101,0.014,103,0.001,104,0.001,127,1.365,165,0.937,188,3.178,204,3.699,227,0.892,305,2.451,347,2.205,405,2.293,430,3.428,483,5.706,533,7.526,574,3.778,687,5.741,905,3.583,957,4.77,1129,6.27,1142,3.985,1184,6.043,1804,5.215,1855,6.85,1861,5.215,1988,6.397,2144,6.153,2268,4.902,2536,6.534,2538,6.128,3004,7.955,3284,7.206,3541,6.951,3847,7.955,5503,7.526,6588,7.206,7483,6.012,7982,6.397,10859,11.062,11714,5.34,12500,6.738,15600,7.955,22222,6.556,22330,7.206,22609,7.955,22636,7.955,22858,7.955,22921,7.206,23139,7.206,23301,7.526,23312,9.535,23356,7.526,23722,7.955,23742,8.605,23743,8.605,23744,8.605,23745,8.605,23746,8.605,23747,8.605,23748,8.605,23749,8.605]],["title/additional-documentation/nestjs-application/s3clientmodule.html",[1014,2.696,1430,3.317,10588,4.202]],["body/additional-documentation/nestjs-application/s3clientmodule.html",[0,0.373,30,0.001,31,0.486,101,0.02,103,0.001,104,0.001,105,1.161,111,1.74,127,1.087,216,1.605,217,1.426,235,4.898,351,5.5,394,4.944,425,3.201,427,3.135,432,4.033,449,3.443,569,8.245,574,5.274,728,3.319,766,3.63,883,4.65,950,6.796,957,4.811,1858,4.546,2130,3.791,2145,5.453,2146,5.858,2536,5.202,3579,4.27,3580,4.891,4140,7.174,6267,6.977,6268,6.796,6269,6.064,6270,6.064,6271,6.064,6272,6.064,7963,10.901,10496,7.268,10603,7.268,10765,7.011,10766,6.452,11616,7.523,11757,6.796,11980,9.587,13421,6.612,17095,7.591,20292,7.011,20621,6.796,20628,8.023,23284,8.023,23630,8.023,23750,8.679,23751,8.679,23752,8.679,23753,8.679,23754,8.679,23755,12.014,23756,8.679,23757,8.679,23758,8.679,23759,8.679]]],"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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/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":{},"injectables/FeathersRosterService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesService.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICleanOptions.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":{},"entities/LessonEntity.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"injectables/LtiToolRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OpenGraphProxyService.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/SortHelper.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["0.0.19",{"_index":22068,"title":{},"body":{"dependencies.html":{}}}],["0.1.1",{"_index":22141,"title":{},"body":{"dependencies.html":{}}}],["0.1.13",{"_index":22170,"title":{},"body":{"dependencies.html":{}}}],["0.1.4",{"_index":22179,"title":{},"body":{"dependencies.html":{}}}],["0.14.0",{"_index":22102,"title":{},"body":{"dependencies.html":{}}}],["0.4.0",{"_index":22088,"title":{},"body":{"dependencies.html":{}}}],["0.4.11",{"_index":22076,"title":{},"body":{"dependencies.html":{}}}],["0.5.1",{"_index":22193,"title":{},"body":{"dependencies.html":{}}}],["0.5.19",{"_index":22182,"title":{},"body":{"dependencies.html":{}}}],["0.5.2",{"_index":22155,"title":{},"body":{"dependencies.html":{}}}],["0.5.4",{"_index":22145,"title":{},"body":{"dependencies.html":{}}}],["0.5.9",{"_index":22077,"title":{},"body":{"dependencies.html":{}}}],["0.6.0",{"_index":22146,"title":{},"body":{"dependencies.html":{}}}],["0.7.0",{"_index":22181,"title":{},"body":{"dependencies.html":{}}}],["0.8.0",{"_index":22083,"title":{},"body":{"dependencies.html":{}}}],["0.8.1",{"_index":22149,"title":{},"body":{"dependencies.html":{}}}],["0.9.7",{"_index":22143,"title":{},"body":{"dependencies.html":{}}}],["0000d231816abba584714c9e",{"_index":23259,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0000dcfbfb5c7a3f00bf21ab",{"_index":5766,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["0000dcfbfb5c7a3f00bf21ab'})@ismongoid",{"_index":5762,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["05",{"_index":23256,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["08",{"_index":18981,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["0]?.id",{"_index":13279,"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/ICleanOptions.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":{},"classes/SortHelper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"classes/UsersList.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":22165,"title":{},"body":{"dependencies.html":{}}}],["1.0.3",{"_index":22049,"title":{},"body":{"dependencies.html":{}}}],["1.0.5",{"_index":22129,"title":{},"body":{"dependencies.html":{}}}],["1.0.56",{"_index":22117,"title":{},"body":{"dependencies.html":{}}}],["1.0a",{"_index":14559,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"dependencies.html":{}}}],["1.1",{"_index":23445,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.1.1",{"_index":22163,"title":{},"body":{"dependencies.html":{}}}],["1.1.4",{"_index":22171,"title":{},"body":{"dependencies.html":{}}}],["1.15.2",{"_index":22095,"title":{},"body":{"dependencies.html":{}}}],["1.17.3",{"_index":22122,"title":{},"body":{"dependencies.html":{}}}],["1.2",{"_index":23446,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.2.0",{"_index":22093,"title":{},"body":{"dependencies.html":{}}}],["1.21.2",{"_index":22092,"title":{},"body":{"dependencies.html":{}}}],["1.25.0",{"_index":22130,"title":{},"body":{"dependencies.html":{}}}],["1.25.1",{"_index":22070,"title":{},"body":{"dependencies.html":{}}}],["1.28.1",{"_index":22133,"title":{},"body":{"dependencies.html":{}}}],["1.3.4",{"_index":22050,"title":{},"body":{"dependencies.html":{}}}],["1.5.0",{"_index":22091,"title":{},"body":{"dependencies.html":{}}}],["1.6.0",{"_index":22097,"title":{},"body":{"dependencies.html":{}}}],["1.6.2",{"_index":22107,"title":{},"body":{"dependencies.html":{}}}],["1.9.4",{"_index":22157,"title":{},"body":{"dependencies.html":{}}}],["10",{"_index":907,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICleanOptions.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":22062,"title":{},"body":{"dependencies.html":{}}}],["10.1.1",{"_index":22060,"title":{},"body":{"dependencies.html":{}}}],["10.2.4",{"_index":22058,"title":{},"body":{"dependencies.html":{}}}],["100",{"_index":894,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{}}}],["1000",{"_index":1763,"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":19689,"title":{},"body":{"classes/TaskFactory.html":{}}}],["100000",{"_index":7018,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/FileRecordFactory.html":{},"classes/JwtTestFactory.html":{}}}],["1010",{"_index":21970,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["1055",{"_index":1962,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["10start",{"_index":23579,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["11",{"_index":22451,"title":{},"body":{"license.html":{}}}],["123",{"_index":13996,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["1234",{"_index":23489,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["12345",{"_index":19351,"title":{},"body":{"classes/SystemFactory.html":{}}}],["124",{"_index":15275,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["1296",{"_index":17233,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["13",{"_index":4277,"title":{},"body":{"entities/ClassEntity.html":{},"classes/GroupUcMapper.html":{},"interfaces/IClassEntityProps.html":{},"license.html":{}}}],["13.1.0",{"_index":22166,"title":{},"body":{"dependencies.html":{}}}],["14.14",{"_index":10341,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["15",{"_index":11805,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["150",{"_index":4122,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{}}}],["15672:15672",{"_index":22937,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["15:20:30.888",{"_index":23258,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["16",{"_index":22616,"title":{},"body":{"license.html":{}}}],["172.29.173.128",{"_index":23583,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["173",{"_index":2437,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["17t14:17:51.958+00:00",{"_index":18982,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["18.5.0",{"_index":22127,"title":{},"body":{"dependencies.html":{}}}],["19",{"_index":22262,"title":{},"body":{"license.html":{}}}],["1993",{"_index":23502,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["1996",{"_index":22457,"title":{},"body":{"license.html":{}}}],["2",{"_index":7483,"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":14481,"title":{},"body":{"controllers/LoginController.html":{}}}],["2.0",{"_index":5510,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["2.0.0",{"_index":22099,"title":{},"body":{"dependencies.html":{}}}],["2.0.1",{"_index":22066,"title":{},"body":{"dependencies.html":{}}}],["2.0.5",{"_index":22135,"title":{},"body":{"dependencies.html":{}}}],["2.1.0",{"_index":22057,"title":{},"body":{"dependencies.html":{}}}],["2.1.2",{"_index":22101,"title":{},"body":{"dependencies.html":{}}}],["2.1375.0",{"_index":22090,"title":{},"body":{"dependencies.html":{}}}],["2.19.2",{"_index":22142,"title":{},"body":{"dependencies.html":{}}}],["2.2.5",{"_index":22072,"title":{},"body":{"dependencies.html":{}}}],["2.2.6",{"_index":22158,"title":{},"body":{"dependencies.html":{}}}],["2.3.2",{"_index":22131,"title":{},"body":{"dependencies.html":{}}}],["2.8.1",{"_index":22112,"title":{},"body":{"dependencies.html":{}}}],["2.8.32",{"_index":22074,"title":{},"body":{"dependencies.html":{}}}],["2.9.0",{"_index":22098,"title":{},"body":{"dependencies.html":{}}}],["20",{"_index":22455,"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":22264,"title":{},"body":{"license.html":{}}}],["200})@apiinternalservererrorresponse({description",{"_index":21059,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["201",{"_index":2902,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/ShareTokenController.html":{}}}],["2023",{"_index":18980,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["204",{"_index":2947,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["204})@apiresponse({status",{"_index":2910,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["21.1.2",{"_index":22051,"title":{},"body":{"dependencies.html":{}}}],["24",{"_index":6739,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["250",{"_index":3554,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["28",{"_index":22752,"title":{},"body":{"license.html":{}}}],["2984",{"_index":17780,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["2a$10$/dsztv5o6p5piw2ewjsxw.4nhovmjgba.qnwitmuz/uvuc40b.uhu",{"_index":743,"title":{},"body":{"classes/AccountFactory.html":{}}}],["2auth",{"_index":22895,"title":{},"body":{"todo.html":{}}}],["3",{"_index":3541,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LdapService.html":{},"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["3.0",{"_index":22863,"title":{},"body":{"properties.html":{}}}],["3.0.0",{"_index":22056,"title":{},"body":{"dependencies.html":{}}}],["3.0.1",{"_index":22059,"title":{},"body":{"dependencies.html":{}}}],["3.0.2",{"_index":22173,"title":{},"body":{"dependencies.html":{}}}],["3.1.0",{"_index":22160,"title":{},"body":{"dependencies.html":{}}}],["3.100.0",{"_index":22042,"title":{},"body":{"dependencies.html":{}}}],["3.13.0",{"_index":22174,"title":{},"body":{"dependencies.html":{}}}],["3.2.2",{"_index":22081,"title":{},"body":{"dependencies.html":{}}}],["3.3",{"_index":15602,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["3.3.4",{"_index":22156,"title":{},"body":{"dependencies.html":{}}}],["3.8.2",{"_index":22196,"title":{},"body":{"dependencies.html":{}}}],["30",{"_index":22659,"title":{},"body":{"license.html":{}}}],["300",{"_index":13782,"title":{},"body":{"injectables/LdapService.html":{}}}],["3000:3000",{"_index":23616,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["302",{"_index":11446,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["3030/api/v3/docs",{"_index":23024,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["3030/docs",{"_index":23029,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["31",{"_index":23257,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["335",{"_index":12649,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["3532",{"_index":23503,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["389:389",{"_index":23543,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["3990",{"_index":1967,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["4",{"_index":7453,"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":22048,"title":{},"body":{"dependencies.html":{}}}],["4.0.1",{"_index":22164,"title":{},"body":{"dependencies.html":{}}}],["4.1.6",{"_index":22188,"title":{},"body":{"dependencies.html":{}}}],["4.13.2",{"_index":22121,"title":{},"body":{"dependencies.html":{}}}],["4.14.0",{"_index":22120,"title":{},"body":{"dependencies.html":{}}}],["4.17.19",{"_index":22139,"title":{},"body":{"dependencies.html":{}}}],["4.18.2",{"_index":22187,"title":{},"body":{"dependencies.html":{}}}],["4.2.0",{"_index":22114,"title":{},"body":{"dependencies.html":{}}}],["4.2.5",{"_index":22103,"title":{},"body":{"dependencies.html":{}}}],["4.5.11",{"_index":22045,"title":{},"body":{"dependencies.html":{}}}],["4.5.16",{"_index":22044,"title":{},"body":{"dependencies.html":{}}}],["4.6.0",{"_index":22096,"title":{},"body":{"dependencies.html":{}}}],["4.x",{"_index":22930,"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":{},"injectables/OpenGraphProxyService.html":{},"controllers/ShareTokenController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["400/bad",{"_index":23274,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["401",{"_index":5475,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["4011:80",{"_index":23531,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.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":23272,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["4096",{"_index":7001,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["4444",{"_index":22987,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["456",{"_index":14001,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["47494638",{"_index":8788,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["4xx",{"_index":10949,"title":{},"body":{"controllers/GroupController.html":{}}}],["5",{"_index":17090,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["5.0.0",{"_index":22085,"title":{},"body":{"dependencies.html":{}}}],["5.0.1",{"_index":22086,"title":{},"body":{"dependencies.html":{}}}],["5.0.3",{"_index":22124,"title":{},"body":{"dependencies.html":{}}}],["5.1.1",{"_index":22162,"title":{},"body":{"dependencies.html":{}}}],["5.13.20",{"_index":22144,"title":{},"body":{"dependencies.html":{}}}],["5.2.1",{"_index":22055,"title":{},"body":{"dependencies.html":{}}}],["5.4.2",{"_index":22054,"title":{},"body":{"dependencies.html":{}}}],["500",{"_index":8362,"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":18637,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["5069",{"_index":2016,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["5672",{"_index":22939,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["5672:5672",{"_index":22936,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["59",{"_index":13262,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["5xx",{"_index":10951,"title":{},"body":{"controllers/GroupController.html":{}}}],["6.0.0",{"_index":22109,"title":{},"body":{"dependencies.html":{}}}],["6.1.3",{"_index":22110,"title":{},"body":{"dependencies.html":{}}}],["6.2.2",{"_index":22159,"title":{},"body":{"dependencies.html":{}}}],["6.3.0",{"_index":22125,"title":{},"body":{"dependencies.html":{}}}],["6.9.7",{"_index":22167,"title":{},"body":{"dependencies.html":{}}}],["60",{"_index":6740,"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":17557,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["632",{"_index":15439,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["64",{"_index":23486,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["673",{"_index":14105,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["699615164",{"_index":22888,"title":{},"body":{"todo.html":{}}}],["6b",{"_index":22529,"title":{},"body":{"license.html":{}}}],["6d",{"_index":22548,"title":{},"body":{"license.html":{}}}],["7",{"_index":10055,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/TaskUC.html":{},"license.html":{}}}],["7.0.0",{"_index":22113,"title":{},"body":{"dependencies.html":{}}}],["7.1.10",{"_index":22064,"title":{},"body":{"dependencies.html":{}}}],["7.3.1",{"_index":22175,"title":{},"body":{"dependencies.html":{}}}],["789",{"_index":14002,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["8",{"_index":10311,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["8.1.0",{"_index":22105,"title":{},"body":{"dependencies.html":{}}}],["8.3.0",{"_index":22195,"title":{},"body":{"dependencies.html":{}}}],["8.8.2",{"_index":22079,"title":{},"body":{"dependencies.html":{}}}],["80",{"_index":23022,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080",{"_index":22994,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080:8080",{"_index":22952,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["820",{"_index":21323,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["8443:8443",{"_index":22953,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["86400000",{"_index":10119,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["885",{"_index":21972,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["89504e47",{"_index":8786,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["9.0.0",{"_index":22134,"title":{},"body":{"dependencies.html":{}}}],["9.2.0",{"_index":22053,"title":{},"body":{"dependencies.html":{}}}],["9000:9000",{"_index":22944,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001",{"_index":22949,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001:9001",{"_index":22945,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["91",{"_index":15962,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["9229",{"_index":22982,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["99",{"_index":1038,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["990",{"_index":9785,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["999",{"_index":22239,"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":10786,"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":10784,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9]{24",{"_index":2885,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["_${now.getdate()}_${now.gethours()}_${now.getminutes()}_${now.getseconds",{"_index":11694,"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":14893,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.snakecase(classname).touppercase",{"_index":10844,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.snakecase(exceptionname).touppercase",{"_index":10854,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.spec.ts",{"_index":23159,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["_.startcase(exceptionname",{"_index":10855,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.startcase(name",{"_index":10845,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.test.[ts|js",{"_index":23001,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["_.times(20",{"_index":14892,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.union(userpermissions",{"_index":21005,"title":{},"body":{"classes/UserFactory.html":{}}}],["_\\w\\d",{"_index":14905,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["__v",{"_index":9911,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_allowemptyquery",{"_index":5991,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_collectdefaultmetrics",{"_index":16734,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_collectmetricsroutemetrics",{"_index":16735,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_columnboardid",{"_index":4874,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["_contextid",{"_index":3366,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_contexttype",{"_index":3368,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["_creatorid",{"_index":9872,"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":2359,"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":1167,"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":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["_id.$oid",{"_index":11777,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_instance",{"_index":16736,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_iscopyfrom",{"_index":10006,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_isenabled",{"_index":16737,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_lockid",{"_index":9873,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_oauthconfigcache",{"_index":13516,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["_operator",{"_index":5992,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_origintoolid",{"_index":7127,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["_ownerid",{"_index":9874,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_parentid",{"_index":9875,"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":16738,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_queries",{"_index":5993,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_route",{"_index":16739,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_schoolid",{"_index":10007,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_self",{"_index":5319,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["_updatedat",{"_index":1177,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["a.getmetadata().title",{"_index":7468,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["a.localecompare(b",{"_index":18890,"title":{},"body":{"classes/SortHelper.html":{}}}],["a.m",{"_index":22256,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["a.position",{"_index":3274,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["a.userid.$oid",{"_index":13706,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["a.width",{"_index":16444,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["aaa",{"_index":23331,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["abbreviation",{"_index":6456,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ability",{"_index":22589,"title":{},"body":{"license.html":{}}}],["aborted",{"_index":13681,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["above",{"_index":22252,"title":{},"body":{"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":22478,"title":{},"body":{"license.html":{}}}],["absolute",{"_index":11681,"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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/INewsProperties.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":{},"classes/RpcMessageProducer.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/AccountServiceDb.html":{}}}],["abstractaccountservice:108",{"_index":1050,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:113",{"_index":1051,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:117",{"_index":1063,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:122",{"_index":1062,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:127",{"_index":1067,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:146",{"_index":1058,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:18",{"_index":1054,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:24",{"_index":1059,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:29",{"_index":1055,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:34",{"_index":1056,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:42",{"_index":1057,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:47",{"_index":1061,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:83",{"_index":1066,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:91",{"_index":1064,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:99",{"_index":1065,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractbootstrapconsole",{"_index":20214,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["abstraction",{"_index":23630,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["abstraction/detail",{"_index":23062,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractions",{"_index":23099,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractlaunchstrategy",{"_index":106,"title":{"injectables/AbstractLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:114",{"_index":2606,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:125",{"_index":2607,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:141",{"_index":2603,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:167",{"_index":2612,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:18",{"_index":2601,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:19",{"_index":15337,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:204",{"_index":2611,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:24",{"_index":15338,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:249",{"_index":2604,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:26",{"_index":2609,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:33",{"_index":2602,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:50",{"_index":2610,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:65",{"_index":2608,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:9",{"_index":2600,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:91",{"_index":2605,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["acacac",{"_index":6535,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.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/ExternalToolElement.html":{},"classes/FileElement.html":{},"controllers/FwuLearningContentsController.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["accept(visitor",{"_index":2759,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptance",{"_index":22663,"title":{},"body":{"license.html":{}}}],["acceptasync",{"_index":2752,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["acceptasync(visitor",{"_index":2763,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptconsentrequest",{"_index":15809,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequest(challenge",{"_index":15815,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequestbody",{"_index":335,"title":{"interfaces/AcceptConsentRequestBody.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["accepted",{"_index":22875,"title":{},"body":{"todo.html":{}}}],["acceptloginrequest",{"_index":15967,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(challenge",{"_index":16041,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptloginrequest(currentuserid",{"_index":15971,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["acceptloginrequestbody",{"_index":354,"title":{"interfaces/AcceptLoginRequestBody.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest",{"_index":15848,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(@param",{"_index":15926,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptlogoutrequest(challenge",{"_index":16043,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(params",{"_index":15853,"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":{}}}],["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":{},"controllers/ToolReferenceController.html":{},"classes/UsersList.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":1194,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["access.token.claim",{"_index":13482,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["access_token",{"_index":352,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["accessed",{"_index":6863,"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":22327,"title":{},"body":{"license.html":{}}}],["accessing",{"_index":23116,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["accesskeyid",{"_index":6271,"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":{},"classes/ExternalToolElement.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"classes/Group.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"classes/LinkElement.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":{}}}],["accesstoken",{"_index":1625,"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":{},"classes/OauthLoginResponse.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/TestApiClient.html":{},"classes/TokenRequestMapper.html":{}}}],["accesstokendto",{"_index":14548,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accesstokendto.accesstoken",{"_index":14550,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accompanied",{"_index":22514,"title":{},"body":{"license.html":{}}}],["accompanies",{"_index":22831,"title":{},"body":{"license.html":{}}}],["accomplish",{"_index":22329,"title":{},"body":{"license.html":{}}}],["accord",{"_index":22477,"title":{},"body":{"license.html":{}}}],["according",{"_index":22823,"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/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":{},"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":{},"interfaces/OauthCurrentUser.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":12690,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["account.'})@apiresponse({status",{"_index":501,"title":{},"body":{"controllers/AccountController.html":{}}}],["account._id.$oid",{"_index":13716,"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":13576,"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":13577,"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":{},"injectables/Oauth2Strategy.html":{}}}],["account.interface",{"_index":13699,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.interface.ts",{"_index":12059,"title":{},"body":{"interfaces/IJsonAccount.html":{}}}],["account.lastname",{"_index":13578,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.lasttriedfailedlogin",{"_index":647,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["account.lasttriedfailedlogin.gettime",{"_index":1762,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["account.module",{"_index":451,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["account.params.ts",{"_index":16525,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:13",{"_index":16536,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:24",{"_index":16534,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:33",{"_index":16530,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:42",{"_index":16531,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:51",{"_index":16532,"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":1070,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["account.systemid",{"_index":1083,"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":20819,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:28",{"_index":20812,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:34",{"_index":20816,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:49",{"_index":20818,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:61",{"_index":20814,"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":13717,"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?.id",{"_index":1148,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["account?.systemid?.tostring",{"_index":1149,"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":21421,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountcopy.systemid",{"_index":21457,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountdbcaccountid",{"_index":12696,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdbcuserid",{"_index":12699,"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/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":1087,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.credentialhash",{"_index":1092,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.expiresat",{"_index":1088,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.id",{"_index":1080,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.lasttriedfailedlogin",{"_index":1089,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.password",{"_index":1090,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.systemid",{"_index":1084,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.token",{"_index":1093,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.username",{"_index":1086,"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":1073,"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":1076,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(await",{"_index":1109,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(foundaccounts",{"_index":654,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentitytodtomapper.mapsearchresult(accountentities",{"_index":1101,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapsearchresult(await",{"_index":1132,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.maptodto(account",{"_index":1095,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"classes/IdentityManagementService.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/UserMigrationService.html":{}}}],["accountid?.tostring",{"_index":1146,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountidmtodtomapper",{"_index":748,"title":{"injectables/AccountIdmToDtoMapper.html":{}},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.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":{}}}],["accountidmtodtomapperfactory(configservice",{"_index":834,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountidmtodtomapperidm",{"_index":761,"title":{"classes/AccountIdmToDtoMapperIdm.html":{}},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.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":14395,"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/ICleanOptions.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":1135,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accounts.find((a",{"_index":13705,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["accounts.find((foundaccount",{"_index":1747,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["accounts.length",{"_index":13662,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["accounts.map((accountentity",{"_index":656,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accounts_allowanonymousread=false",{"_index":23599,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowemailchange=false",{"_index":23598,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowrealnamechange=false",{"_index":23596,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowusernamechange=false",{"_index":23597,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_method=get",{"_index":23614,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_url=http://localhost:4000/rocketchat/authget",{"_index":23595,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_enabled=true",{"_index":23593,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_url=http://localhost:4000/rocketchat/iframe",{"_index":23594,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_activating=false",{"_index":23600,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_deactivating=false",{"_index":23601,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_setdefaultavatar=false",{"_index":23612,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_usedefaultblockeddomainslist=false",{"_index":23602,"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/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":{},"body":{"modules/AccountModule.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/AccountServiceDb.html":{}}}],["accountserviceidm",{"_index":822,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountsfile",{"_index":12066,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["accountuc",{"_index":439,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountuserid",{"_index":14398,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountvalidationservice",{"_index":819,"title":{"injectables/AccountValidationService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{}}}],["achieve",{"_index":22834,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["achieved",{"_index":23430,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["acknowledges",{"_index":22425,"title":{},"body":{"license.html":{}}}],["acquired",{"_index":22710,"title":{},"body":{"license.html":{}}}],["acr",{"_index":356,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["acr_values",{"_index":16265,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["act",{"_index":23330,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["action",{"_index":1798,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/BaseDomainObject.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.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/KeycloakConfigurationService.html":{},"injectables/LessonRule.html":{},"classes/PatchMyAccountParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["action.enum",{"_index":1800,"title":{},"body":{"interfaces/AuthorizationContext.html":{}}}],["action.read",{"_index":1814,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/LessonRule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["action.write",{"_index":1813,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/ElementUc.html":{},"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{}}}],["actions",{"_index":22670,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.loggable",{"_index":16628,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["actions.loggable.ts",{"_index":16576,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:4",{"_index":16578,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:7",{"_index":16579,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.read",{"_index":2452,"title":{},"body":{"classes/BaseDomainObject.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.write",{"_index":23688,"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":11613,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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/SystemEntity.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":22366,"title":{},"body":{"license.html":{}}}],["activity",{"_index":22747,"title":{},"body":{"license.html":{}}}],["actor",{"_index":23102,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["actual",{"_index":22730,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["actually",{"_index":22565,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["adapt",{"_index":22348,"title":{},"body":{"license.html":{}}}],["adapter",{"_index":4515,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adapter.mapper",{"_index":4551,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.mapper.ts",{"_index":4560,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.mapper.ts:16",{"_index":4563,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.module",{"_index":4640,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["adapter.module.ts",{"_index":4587,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.service",{"_index":15427,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthModule.html":{}}}],["adapter.service.ts",{"_index":15546,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:11",{"_index":15549,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:14",{"_index":15551,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:23",{"_index":15556,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:37",{"_index":15554,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapters",{"_index":23470,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["add",{"_index":1646,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GroupRoleUnknownLoggable.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/OpenGraphProxyService.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":2753,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addchild(child",{"_index":2766,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addclientprotocolmappers",{"_index":13318,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addclientprotocolmappers(defaultclientinternalid",{"_index":13335,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["added",{"_index":11774,"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":{},"injectables/ToolPermissionHelper.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":13399,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addexternaloauth2datatoconfig",{"_index":9273,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addexternaloauth2datatoconfig(config",{"_index":9287,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addgroupmoderator(groupname",{"_index":1237,"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":{},"classes/UsersList.html":{}}}],["additional",{"_index":1430,"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":{}}}],["additionalinfo",{"_index":13110,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["additionallaunchdataproperties",{"_index":223,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["additionally",{"_index":22230,"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":13670,"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":{}}}],["additionaly",{"_index":22975,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["addlessons",{"_index":4995,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addlessons(builder",{"_index":5005,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addorganization",{"_index":5104,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addorganization(props",{"_index":5113,"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/OAuth2ToolLaunchStrategy.html":{}}}],["addparameters(propertydata",{"_index":133,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addprometheusmetricsmiddlewaresifenabled",{"_index":16797,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["addproperty",{"_index":114,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addproperty(propertydata",{"_index":142,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addquery",{"_index":5998,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addquery(query",{"_index":6012,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addreferences",{"_index":10878,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addreferences(anotherreference",{"_index":7461,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addresourcetofile",{"_index":5105,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addresourcetofile(props",{"_index":5117,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization",{"_index":5267,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization(props",{"_index":5131,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["address",{"_index":16529,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["addressed",{"_index":22345,"title":{},"body":{"license.html":{}}}],["addroom",{"_index":7397,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["addroom(room",{"_index":7418,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["adds",{"_index":11695,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addtasks",{"_index":4996,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addtasks(builder",{"_index":5010,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addteacherroleifadmin",{"_index":17974,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addteacherroleifadmin(externaluser",{"_index":17978,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addtokentowhitelist",{"_index":13203,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtokentowhitelist(redisidentifier",{"_index":13211,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist",{"_index":13186,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist(accountid",{"_index":13192,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["adduser",{"_index":10906,"title":{},"body":{"classes/Group.html":{}}}],["adduser(user",{"_index":10909,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["adduserids",{"_index":15302,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adduserids.tostring",{"_index":15306,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adjust",{"_index":5341,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["adm",{"_index":5120,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["admin",{"_index":10679,"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":23591,"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":1163,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminidandtoken",{"_index":1151,"title":{"interfaces/AdminIdAndToken.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.id",{"_index":1262,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.token",{"_index":1261,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["administration.module",{"_index":12663,"title":{},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration.module.ts",{"_index":13227,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["administration.service",{"_index":13234,"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":13237,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:21",{"_index":13254,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:26",{"_index":13261,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:35",{"_index":13258,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:39",{"_index":13255,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:43",{"_index":13256,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:47",{"_index":13257,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:57",{"_index":13260,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:62",{"_index":13259,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:66",{"_index":13253,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:7",{"_index":13263,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:9",{"_index":13251,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration/interface/keycloak",{"_index":12071,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["administration/keycloak",{"_index":12662,"title":{},"body":{"modules/IdentityManagementModule.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration/service/keycloak",{"_index":13236,"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":1162,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminpermissions",{"_index":21000,"title":{},"body":{"classes/UserFactory.html":{}}}],["adminstrator",{"_index":23655,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["admintoken",{"_index":1164,"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":5111,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["adopted",{"_index":22454,"title":{},"body":{"license.html":{}}}],["adversely",{"_index":22595,"title":{},"body":{"license.html":{}}}],["advised",{"_index":22819,"title":{},"body":{"license.html":{}}}],["aes",{"_index":19267,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["aes_key",{"_index":8268,"title":{},"body":{"modules/EncryptionModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["aeskey",{"_index":8265,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["affected",{"_index":23283,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["affecteduserid",{"_index":21458,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["affects",{"_index":11844,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["affero",{"_index":22261,"title":{},"body":{"license.html":{}}}],["affirmed",{"_index":22692,"title":{},"body":{"license.html":{}}}],["affirms",{"_index":22423,"title":{},"body":{"license.html":{}}}],["afterall",{"_index":23418,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterall(async",{"_index":23409,"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":19806,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["afterduedateornone(duedate",{"_index":19888,"title":{},"body":{"classes/TaskScope.html":{}}}],["aftereach",{"_index":23325,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterwards",{"_index":23230,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["again",{"_index":6251,"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":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["against",{"_index":11350,"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":11344,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["against.ts:8",{"_index":11348,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["age",{"_index":23647,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["aggregate",{"_index":22502,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["aggregate.attrs",{"_index":13478,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["agility",{"_index":23052,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["agnostic",{"_index":13021,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["ago",{"_index":7923,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["agpl",{"_index":22852,"title":{},"body":{"license.html":{},"properties.html":{}}}],["agree",{"_index":22765,"title":{},"body":{"license.html":{}}}],["agreed",{"_index":22807,"title":{},"body":{"license.html":{}}}],["agreement",{"_index":22718,"title":{},"body":{"license.html":{}}}],["aims",{"_index":23048,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["aint",{"_index":23087,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ajax",{"_index":11388,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["ajv",{"_index":22078,"title":{},"body":{"dependencies.html":{}}}],["aktuelle",{"_index":4828,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["alert",{"_index":8328,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alert(loggable",{"_index":8333,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alg",{"_index":1617,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["algorithm",{"_index":1568,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/JwtConstants.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["algorithms",{"_index":1589,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{}}}],["algorithms.includes(jwtconstants.jwtoptions.algorithm",{"_index":1603,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["alias",{"_index":12329,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"additional-documentation/nestjs-application.html":{}}}],["all('seed",{"_index":7843,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["all_entities",{"_index":10583,"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":{}}}],["allcollectionswithfilepaths",{"_index":11711,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.filter",{"_index":11718,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.map((file",{"_index":11722,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["alleging",{"_index":22698,"title":{},"body":{"license.html":{}}}],["allforcreator",{"_index":19796,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(allforfinishedcoursesandlessonsforcreator.query",{"_index":19799,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closeddraftsforcreator.query",{"_index":19798,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closedwithoutparentforcreator.query",{"_index":19797,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons",{"_index":19782,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.addquery(parentsfinished.query",{"_index":19783,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.bydraft(false",{"_index":19784,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator",{"_index":19793,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.addquery(parentsfinished.query",{"_index":19794,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.bycreatorid(parentids.creatorid",{"_index":19795,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allmappers",{"_index":13438,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allmappers.find((mapper",{"_index":13441,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allow",{"_index":6229,"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":3961,"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":{},"controllers/ToolReferenceController.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":4173,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedcontexttype",{"_index":18844,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["alloweddos",{"_index":4189,"title":{},"body":{"injectables/CardUc.html":{}}}],["alloweddos.push(boarddo",{"_index":4188,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedparenttype",{"_index":18837,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["allowedstrings",{"_index":10477,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowedstrings.includes(input",{"_index":10479,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowemptyquery",{"_index":5999,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(isemptyqueryallowed",{"_index":6015,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(true",{"_index":8989,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["allowglobalcontext",{"_index":14898,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{}}}],["allowmodstounmuteusers",{"_index":2069,"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":17013,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["allrooms",{"_index":7398,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["allteacherpseudonyms",{"_index":9711,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["allteacherpseudonyms.map((pseudonym",{"_index":9715,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["alone",{"_index":23322,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["along",{"_index":22480,"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":{},"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":{},"classes/SchoolNumberDuplicateLoggableException.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":4701,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["alternate",{"_index":22314,"title":{},"body":{"license.html":{}}}],["alternative",{"_index":13413,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["alternativetext",{"_index":3253,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["alternativetext(value",{"_index":9842,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["although",{"_index":23227,"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":2091,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["always_deny",{"_index":2092,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["ambiguous",{"_index":19839,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["amount",{"_index":1018,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BoardManagementUc.html":{},"classes/ClassInfoSearchListResponse.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":{}}}],["amqp",{"_index":22080,"title":{},"body":{"dependencies.html":{}}}],["amqp.module.ts",{"_index":10415,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["amqpconnection",{"_index":1338,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{}}}],["amqpconnectionmanager",{"_index":17077,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqplib",{"_index":22082,"title":{},"body":{"dependencies.html":{}}}],["amr",{"_index":357,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["analysis",{"_index":23019,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["analytics",{"_index":22192,"title":{},"body":{"dependencies.html":{}}}],["analytics_features_messages=false",{"_index":23603,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_rooms=false",{"_index":23604,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_users=false",{"_index":23605,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ancestor",{"_index":3646,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestorids",{"_index":3132,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["ancestornodes",{"_index":3655,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestornodes.foreach((node",{"_index":3657,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestors",{"_index":3644,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancillary",{"_index":22664,"title":{},"body":{"license.html":{}}}],["and/opr",{"_index":23366,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["and/or",{"_index":22307,"title":{},"body":{"license.html":{}}}],["annotations",{"_index":23170,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["anonymous",{"_index":7113,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["another",{"_index":15844,"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":10892,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["antareskey",{"_index":6448,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["anti",{"_index":22442,"title":{},"body":{"license.html":{}}}],["antivirus.service",{"_index":1305,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirus_service_options",{"_index":1306,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirusmodule",{"_index":1295,"title":{"modules/AntivirusModule.html":{}},"body":{"modules/AntivirusModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["antivirusmodule.forroot",{"_index":10596,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["antivirusmoduleoptions",{"_index":1299,"title":{"interfaces/AntivirusModuleOptions.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["antivirusservice",{"_index":1304,"title":{"injectables/AntivirusService.html":{}},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["antivirusservice:checkstream",{"_index":1372,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusservice:send",{"_index":1385,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusserviceoptions",{"_index":1329,"title":{"interfaces/AntivirusServiceOptions.html":{}},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["anyboarddo",{"_index":2557,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.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":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/RecursiveCopyVisitor.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":4169,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["anycontentelementresponse",{"_index":2556,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{}}}],["anyelementcontentbody",{"_index":5604,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":1587,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anyone",{"_index":22489,"title":{},"body":{"license.html":{}}}],["anything",{"_index":22355,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anywhere",{"_index":23136,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["api",{"_index":1414,"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":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.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":{},"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":10653,"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/PseudonymApiModule.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":23003,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v1",{"_index":22211,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3",{"_index":22212,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/docs",{"_index":23025,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v3/news",{"_index":22220,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/sso/oauth",{"_index":15479,"title":{},"body":{"injectables/OAuthService.html":{}}}],["api/v3/sso/oauth/migration",{"_index":15478,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["api_enable_cors=true",{"_index":23607,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_enable_rate_limiter_limit_calls_default=255",{"_index":23592,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_keys",{"_index":23650,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["api_response_time_metric_middleware_successfully_added",{"_index":16788,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["api_validation_error",{"_index":1413,"title":{},"body":{"classes/ApiValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["api_version_path",{"_index":1356,"title":{},"body":{"injectables/AntivirusService.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["api_version_path}/file/download/${filerecord.id}/${encodeuricomponent(filerecord.name",{"_index":6197,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["apibadrequestresponse",{"_index":20502,"title":{},"body":{"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apibody",{"_index":4932,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apicreatedresponse",{"_index":20408,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiexcludeendpoint",{"_index":10259,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10254,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@put(filesstorageinternalactions.updatesecuritystatus",{"_index":10257,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiextramodels",{"_index":4008,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(lti11toolconfigcreateparams",{"_index":8629,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["apiextramodels(lti11toolconfigupdateparams",{"_index":9429,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(submissionitemresponse",{"_index":8224,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiforbiddenresponse",{"_index":16929,"title":{},"body":{"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apifoundresponse",{"_index":13939,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiinternalservererrorresponse",{"_index":21080,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinocontentresponse",{"_index":21081,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinotfoundresponse",{"_index":13940,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiokresponse",{"_index":13941,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/OauthSSOController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.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/GroupController.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"controllers/PseudonymController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apioperation({summary",{"_index":2900,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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/ExternalSourceResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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/OauthLoginResponse.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/PseudonymParams.html":{},"classes/PseudonymResponse.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/SubmissionsResponse.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":18059,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["apiproperty()@apipropertyoptional",{"_index":7260,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["apiproperty()@decodehtmlentities",{"_index":2742,"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":5821,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileRecordParams.html":{},"classes/SchoolIdParams.html":{},"classes/SingleFileParams.html":{}}}],["apiproperty()@isnumber",{"_index":5833,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["apiproperty()@isstring",{"_index":6223,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/DownloadFileParams.html":{}}}],["apiproperty()@isstring()@ismongoid",{"_index":18110,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["apiproperty()@isstring()@isnotempty",{"_index":17335,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["apiproperty()@matches('([a",{"_index":10781,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["apiproperty()@validatenested",{"_index":6226,"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/ClassInfoSearchListResponse.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/TooManyPseudonymsLoggableException.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":2888,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassInfoResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.html":{},"classes/LinkElementResponse.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":5761,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty({pattern",{"_index":2883,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementResponse.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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileUrlParams.html":{},"classes/GroupResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/LinkElementContentBody.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/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionsResponse.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/ClassInfoResponse.html":{},"classes/ClassSortParams.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/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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/GroupResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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/OauthLoginResponse.html":{},"classes/PaginationParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.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/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.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/UpdateElementContentBodyParams.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":3457,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{}}}],["apipropertyoptional()@isoptional()@isboolean",{"_index":10664,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["apipropertyoptional()@isoptional()@isstring()@isnotempty",{"_index":10662,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["apipropertyoptional()@isstring()@isoptional",{"_index":21242,"title":{},"body":{"classes/UserLoginMigrationSearchParams.html":{}}}],["apipropertyoptional({default",{"_index":21759,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({description",{"_index":1403,"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/OauthLoginResponse.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SystemFilterParams.html":{},"classes/TaskResponse.html":{},"classes/TooManyPseudonymsLoggableException.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":10669,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/PreviewParams.html":{}}}],["apipropertyoptional({nullable",{"_index":20674,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["apipropertyoptional({type",{"_index":6159,"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/GroupController.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":17378,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetrichistogram.observe(labels",{"_index":17385,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetriclabelnames",{"_index":17364,"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/GroupController.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/PseudonymController.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/ToolReferenceController.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":14487,"title":{},"body":{"controllers/LoginController.html":{}}}],["apitags('board",{"_index":2937,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apitags('collaborative",{"_index":4625,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["apitags('courses",{"_index":6625,"title":{},"body":{"controllers/CourseController.html":{}}}],["apitags('dashboard",{"_index":7381,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apitags('file",{"_index":10261,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apitags('fwu",{"_index":10726,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["apitags('group",{"_index":10964,"title":{},"body":{"controllers/GroupController.html":{}}}],["apitags('h5p",{"_index":11373,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["apitags('lesson",{"_index":14142,"title":{},"body":{"controllers/LessonController.html":{}}}],["apitags('news",{"_index":14972,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["apitags('oauth2",{"_index":15897,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["apitags('pseudonym",{"_index":16934,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apitags('rooms",{"_index":17704,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apitags('school",{"_index":13947,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["apitags('sharetoken",{"_index":18649,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apitags('sso",{"_index":16128,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apitags('submission",{"_index":19010,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apitags('systems",{"_index":19301,"title":{},"body":{"controllers/SystemController.html":{}}}],["apitags('task",{"_index":19572,"title":{},"body":{"controllers/TaskController.html":{}}}],["apitags('tool",{"_index":20345,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["apitags('user",{"_index":20834,"title":{},"body":{"controllers/UserController.html":{}}}],["apitags('userimport",{"_index":12785,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["apitags('userloginmigration",{"_index":21091,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apitags('usermigration",{"_index":21382,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["apitags('videoconference",{"_index":21738,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiunauthorizedresponse",{"_index":13942,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiunprocessableentityresponse",{"_index":20409,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apivalidationerror",{"_index":1392,"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":{}}}],["apivalidationerror(errors",{"_index":10875,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apivalidationerror.validationerrors.foreach((validationerror",{"_index":1446,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apivalidationerrorresponse",{"_index":1418,"title":{"classes/ApiValidationErrorResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/GlobalErrorFilter.html":{}}}],["apivalidationerrorresponse(error",{"_index":10847,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apivalidationerror})@apiresponse({status",{"_index":2904,"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":1647,"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":23231,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["app.use(createapiresponsetimemetricmiddleware",{"_index":16801,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["app_filter",{"_index":6443,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["app_guard",{"_index":6442,"title":{},"body":{"modules/CoreModule.html":{}}}],["app_interceptor",{"_index":6440,"title":{},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"todo.html":{}}}],["app_pipe",{"_index":6441,"title":{},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{}}}],["append",{"_index":22924,"title":{},"body":{"todo.html":{}}}],["appendedattachment",{"_index":1482,"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":2697,"title":{},"body":{"entities/Board.html":{}}}],["applicable",{"_index":22359,"title":{},"body":{"license.html":{}}}],["applicaiton",{"_index":22984,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["application",{"_index":3835,"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":1631,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/CalendarService.html":{},"classes/TestApiClient.html":{}}}],["application/octet",{"_index":9827,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{}}}],["application/x",{"_index":13544,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["application/xml",{"_index":2304,"title":{},"body":{"injectables/BBBService.html":{}}}],["application/zip",{"_index":6637,"title":{},"body":{"controllers/CourseController.html":{}}}],["applications",{"_index":22198,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["applied",{"_index":11742,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["applies",{"_index":4520,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["apply",{"_index":11714,"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":13088,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["applypagination",{"_index":11189,"title":{},"body":{"injectables/GroupUc.html":{}}}],["applypagination(combinedclassinfo",{"_index":11199,"title":{},"body":{"injectables/GroupUc.html":{}}}],["applypropertiestopathparams",{"_index":115,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["applypropertiestopathparams(url",{"_index":149,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["appname",{"_index":1461,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["approach",{"_index":23428,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appropriate",{"_index":4518,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["appropriately",{"_index":22473,"title":{},"body":{"license.html":{}}}],["approve",{"_index":21985,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["approximate",{"_index":4136,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["approximates",{"_index":22827,"title":{},"body":{"license.html":{}}}],["apps/server",{"_index":22971,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["apps/server/doc",{"_index":23033,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src",{"_index":23037,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src/apps/helpers/app",{"_index":1459,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["apps/server/src/apps/helpers/prometheus",{"_index":16775,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["apps/server/src/config/database.config.ts",{"_index":10788,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["apps/server/src/console/api",{"_index":20211,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["apps/server/src/console/console.module.ts",{"_index":18491,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["apps/server/src/console/server.console.ts",{"_index":18477,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:11",{"_index":18481,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:17",{"_index":18484,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:6",{"_index":18480,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/core/core.module.ts",{"_index":6429,"title":{},"body":{"modules/CoreModule.html":{}}}],["apps/server/src/core/error/dto/api",{"_index":1419,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts",{"_index":8375,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:10",{"_index":8381,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:15",{"_index":8380,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:20",{"_index":8379,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:25",{"_index":8378,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:30",{"_index":8377,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/validation",{"_index":21647,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["apps/server/src/core/error/error.module.ts",{"_index":8367,"title":{},"body":{"modules/ErrorModule.html":{}}}],["apps/server/src/core/error/filter/global",{"_index":10792,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apps/server/src/core/error/interface/error",{"_index":11961,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["apps/server/src/core/error/interface/feathers",{"_index":9613,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts",{"_index":8276,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:11",{"_index":8284,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:13",{"_index":8287,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:34",{"_index":8286,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:47",{"_index":8291,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:56",{"_index":8293,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:8",{"_index":8282,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts",{"_index":8382,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:16",{"_index":8391,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:20",{"_index":8396,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:24",{"_index":8388,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:6",{"_index":8393,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/interceptor/interceptor.module.ts",{"_index":13043,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["apps/server/src/core/interfaces/core",{"_index":11927,"title":{},"body":{"interfaces/ICoreModuleConfig.html":{}}}],["apps/server/src/core/logger/error",{"_index":8326,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["apps/server/src/core/logger/interfaces/legacy",{"_index":12077,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts",{"_index":14406,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts:4",{"_index":14407,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/logger",{"_index":12094,"title":{},"body":{"interfaces/ILoggerConfig.html":{}}}],["apps/server/src/core/logger/legacy",{"_index":13870,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["apps/server/src/core/logger/logger.module.ts",{"_index":14428,"title":{},"body":{"modules/LoggerModule.html":{}}}],["apps/server/src/core/logger/logger.ts",{"_index":14408,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:13",{"_index":14420,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:18",{"_index":14417,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:23",{"_index":14415,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:28",{"_index":14413,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:33",{"_index":14418,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:9",{"_index":14411,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logging.utils.ts",{"_index":14449,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:13",{"_index":14459,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:18",{"_index":14457,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:6",{"_index":14454,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/validation/pipe/global",{"_index":10857,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apps/server/src/core/validation/validation.module.ts",{"_index":21651,"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":{}}}],["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":16524,"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.validation.service.ts",{"_index":1111,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:11",{"_index":1117,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:29",{"_index":1121,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:34",{"_index":1119,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:8",{"_index":1115,"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":1509,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["apps/server/src/modules/authentication/authentication.module.ts",{"_index":1557,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["apps/server/src/modules/authentication/constants.ts",{"_index":13137,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/ldap",{"_index":13736,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/local",{"_index":14373,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts",{"_index":14511,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts:5",{"_index":14512,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth",{"_index":15714,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth2",{"_index":15496,"title":{},"body":{"classes/Oauth2AuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts",{"_index":14463,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:31",{"_index":14473,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:47",{"_index":14477,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:62",{"_index":14482,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/mapper/login",{"_index":14532,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["apps/server/src/modules/authentication/errors/brute",{"_index":3797,"title":{},"body":{"classes/BruteForceError.html":{}}}],["apps/server/src/modules/authentication/errors/ldap",{"_index":13756,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["apps/server/src/modules/authentication/errors/school",{"_index":18278,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["apps/server/src/modules/authentication/errors/unauthorized.loggable",{"_index":20762,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["apps/server/src/modules/authentication/guard/jwt",{"_index":13133,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["apps/server/src/modules/authentication/interface/jwt",{"_index":7023,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["apps/server/src/modules/authentication/interface/user.ts",{"_index":11939,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["apps/server/src/modules/authentication/mapper/current",{"_index":7063,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts",{"_index":1706,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:17",{"_index":1715,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:25",{"_index":1722,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:42",{"_index":1720,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:57",{"_index":1728,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:65",{"_index":1717,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:76",{"_index":1731,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:80",{"_index":1726,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:84",{"_index":1724,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts",{"_index":13762,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:14",{"_index":13766,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:23",{"_index":13768,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:9",{"_index":13764,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt",{"_index":13152,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts",{"_index":13161,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12",{"_index":13164,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25",{"_index":13166,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts",{"_index":13794,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16",{"_index":13799,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28",{"_index":13808,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56",{"_index":13805,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68",{"_index":13803,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75",{"_index":13801,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:91",{"_index":13806,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts",{"_index":14376,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:15",{"_index":14380,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:25",{"_index":14388,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:46",{"_index":14386,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:54",{"_index":14383,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts",{"_index":15503,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15",{"_index":15504,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20",{"_index":15505,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts",{"_index":14503,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts:2",{"_index":14504,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts",{"_index":14540,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:12",{"_index":14545,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:9",{"_index":14543,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authorization/authorization",{"_index":1937,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["apps/server/src/modules/authorization/authorization.module.ts",{"_index":1901,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["apps/server/src/modules/authorization/domain/error/forbidden.loggable",{"_index":10695,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["apps/server/src/modules/authorization/domain/mapper/authorization",{"_index":1802,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["apps/server/src/modules/authorization/domain/rules/board",{"_index":3383,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/context",{"_index":5982,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course",{"_index":6785,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts",{"_index":6939,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:10",{"_index":6942,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:16",{"_index":6941,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:7",{"_index":6940,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts",{"_index":11160,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:11",{"_index":11163,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:17",{"_index":11162,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:8",{"_index":11161,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/legacy",{"_index":14056,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts",{"_index":14233,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:16",{"_index":14245,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:22",{"_index":14244,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:40",{"_index":14247,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:53",{"_index":14249,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:59",{"_index":14251,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:73",{"_index":14243,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:79",{"_index":14241,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:9",{"_index":14239,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/school",{"_index":18182,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts",{"_index":19171,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:11",{"_index":19189,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:17",{"_index":19184,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:27",{"_index":19179,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:41",{"_index":19188,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:47",{"_index":19186,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:61",{"_index":19183,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:70",{"_index":19181,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:8",{"_index":19177,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts",{"_index":19863,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:16",{"_index":19869,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:22",{"_index":19868,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:43",{"_index":19867,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:9",{"_index":19865,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts",{"_index":20113,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:10",{"_index":20116,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:14",{"_index":20115,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:7",{"_index":20114,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user",{"_index":21237,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts",{"_index":21555,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:10",{"_index":21558,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:16",{"_index":21557,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:7",{"_index":21556,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization",{"_index":1963,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts",{"_index":1824,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:14",{"_index":1837,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:21",{"_index":1839,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:32",{"_index":1833,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:38",{"_index":1842,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:7",{"_index":1835,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts",{"_index":1985,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:11",{"_index":1991,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:18",{"_index":1997,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:24",{"_index":2003,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:31",{"_index":1993,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:38",{"_index":2000,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:42",{"_index":1995,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:49",{"_index":2001,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:53",{"_index":1999,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts",{"_index":12123,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:39",{"_index":17326,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:69",{"_index":17329,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:77",{"_index":17328,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/rule",{"_index":17788,"title":{},"body":{"injectables/RuleManager.html":{}}}],["apps/server/src/modules/authorization/domain/type/authorization",{"_index":1796,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts",{"_index":17785,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:6",{"_index":17787,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:7",{"_index":17786,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/feathers/feathers",{"_index":9544,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{}}}],["apps/server/src/modules/board/board",{"_index":2719,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["apps/server/src/modules/board/board.module.ts",{"_index":3577,"title":{},"body":{"modules/BoardModule.html":{}}}],["apps/server/src/modules/board/controller/board",{"_index":3718,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts",{"_index":2891,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:33",{"_index":2921,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:50",{"_index":2916,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:68",{"_index":2927,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:83",{"_index":2912,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:93",{"_index":2907,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts",{"_index":3966,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:113",{"_index":3988,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:141",{"_index":3984,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:47",{"_index":3995,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:68",{"_index":3999,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:83",{"_index":4003,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:98",{"_index":4006,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts",{"_index":4909,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:34",{"_index":4928,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:49",{"_index":4931,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:64",{"_index":4924,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:75",{"_index":4921,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board",{"_index":2880,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts",{"_index":3693,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:17",{"_index":3697,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:21",{"_index":3700,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:26",{"_index":3696,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:29",{"_index":3699,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:6",{"_index":3695,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts",{"_index":3794,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11",{"_index":3796,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/card",{"_index":4132,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts",{"_index":4948,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:17",{"_index":4951,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:21",{"_index":4953,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:26",{"_index":4950,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:29",{"_index":4952,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:6",{"_index":4949,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts",{"_index":4984,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11",{"_index":4985,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/content",{"_index":5690,"title":{},"body":{"classes/ContentElementUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/move",{"_index":14913,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts",{"_index":17331,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12",{"_index":17334,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/set",{"_index":18588,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts",{"_index":4190,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts:11",{"_index":4191,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card",{"_index":4048,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts",{"_index":4066,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:21",{"_index":4068,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:34",{"_index":4071,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:38",{"_index":4073,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:41",{"_index":4070,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:55",{"_index":4069,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:58",{"_index":4075,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:61",{"_index":4072,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/create",{"_index":6977,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/move",{"_index":14923,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["apps/server/src/modules/board/controller/dto/card/visibility",{"_index":22035,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/create",{"_index":6982,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/element/external",{"_index":8649,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/file",{"_index":9848,"title":{},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/link",{"_index":14338,"title":{},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/rich",{"_index":17479,"title":{},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/submission",{"_index":18979,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/update",{"_index":8170,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":7055,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionsResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts",{"_index":20260,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:11",{"_index":20264,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:14",{"_index":20262,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:17",{"_index":20263,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:3",{"_index":20261,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/user",{"_index":20951,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts",{"_index":8191,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:110",{"_index":8202,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:125",{"_index":8198,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:51",{"_index":8206,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:89",{"_index":8211,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/mapper/base",{"_index":2548,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/board",{"_index":3705,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/card",{"_index":4080,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/column",{"_index":4956,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/content",{"_index":5573,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["apps/server/src/modules/board/controller/mapper/external",{"_index":8671,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/file",{"_index":9867,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/link",{"_index":14352,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/rich",{"_index":17490,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/submission",{"_index":18988,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["apps/server/src/modules/board/repo/board",{"_index":3197,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["apps/server/src/modules/board/repo/recursive",{"_index":17198,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["apps/server/src/modules/board/service/board",{"_index":3116,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoService.html":{},"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["apps/server/src/modules/board/service/card.service.ts",{"_index":4089,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:16",{"_index":4103,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:20",{"_index":4106,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:29",{"_index":4097,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:50",{"_index":4101,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:54",{"_index":4109,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:58",{"_index":4111,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:64",{"_index":4113,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:70",{"_index":4099,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:9",{"_index":4093,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/column",{"_index":4736,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts",{"_index":4965,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:11",{"_index":4971,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:16",{"_index":4967,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:32",{"_index":4969,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:36",{"_index":4975,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:40",{"_index":4977,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:8",{"_index":4966,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/content",{"_index":5593,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["apps/server/src/modules/board/service/open",{"_index":16419,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["apps/server/src/modules/board/service/submission",{"_index":19093,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts",{"_index":4146,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:19",{"_index":4165,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:30",{"_index":4157,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:49",{"_index":4160,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:58",{"_index":4168,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:75",{"_index":4155,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:8",{"_index":4153,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:83",{"_index":4163,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts",{"_index":8228,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:17",{"_index":8230,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:29",{"_index":8235,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:38",{"_index":8233,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:76",{"_index":8231,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/submission",{"_index":19108,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["apps/server/src/modules/class/class.module.ts",{"_index":4408,"title":{},"body":{"modules/ClassModule.html":{}}}],["apps/server/src/modules/class/domain/class",{"_index":4440,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts",{"_index":4203,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:22",{"_index":4216,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:26",{"_index":4218,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:30",{"_index":4220,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:34",{"_index":4222,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:38",{"_index":4224,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:42",{"_index":4226,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:46",{"_index":4228,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:50",{"_index":4230,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:54",{"_index":4232,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:58",{"_index":4234,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:62",{"_index":4236,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:66",{"_index":4237,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:70",{"_index":4238,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:74",{"_index":4214,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts",{"_index":4312,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8",{"_index":4314,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/entity/class",{"_index":4447,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts",{"_index":4256,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:26",{"_index":4260,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:30",{"_index":4261,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:34",{"_index":4269,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:38",{"_index":4268,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:41",{"_index":4258,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:44",{"_index":4270,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:47",{"_index":4257,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:50",{"_index":4259,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:53",{"_index":4267,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:57",{"_index":4263,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:60",{"_index":4266,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts",{"_index":4302,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7",{"_index":4305,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts",{"_index":4453,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:12",{"_index":4459,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:20",{"_index":4461,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:28",{"_index":4463,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:9",{"_index":4457,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts",{"_index":4355,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:26",{"_index":4367,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:43",{"_index":4363,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:47",{"_index":4365,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:7",{"_index":4361,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/service/class.service.ts",{"_index":4409,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:10",{"_index":4417,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:16",{"_index":4415,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:7",{"_index":4413,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/collaborative",{"_index":4600,"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":6150,"title":{},"body":{"classes/CopyApiResponse.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["apps/server/src/modules/files",{"_index":6170,"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/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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/TestHelper.html":{}}}],["apps/server/src/modules/files/entity/file",{"_index":9979,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts",{"_index":9871,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:106",{"_index":9898,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:109",{"_index":9887,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:116",{"_index":9912,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:39",{"_index":9894,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:42",{"_index":9893,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:45",{"_index":9895,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:48",{"_index":9896,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:51",{"_index":9904,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:54",{"_index":9910,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:57",{"_index":9905,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:60",{"_index":9892,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:63",{"_index":9907,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:66",{"_index":9908,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:69",{"_index":9909,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:72",{"_index":9902,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:76",{"_index":9903,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:80",{"_index":9891,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:88",{"_index":9890,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:95",{"_index":9900,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:99",{"_index":9885,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/files.module.ts",{"_index":10359,"title":{},"body":{"modules/FilesModule.html":{}}}],["apps/server/src/modules/files/job/delete",{"_index":7912,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts",{"_index":10360,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:10",{"_index":10364,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:15",{"_index":10373,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:19",{"_index":10372,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:33",{"_index":10366,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:44",{"_index":10369,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/service/files.service.ts",{"_index":10388,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:10",{"_index":10395,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:14",{"_index":10401,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:28",{"_index":10397,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:32",{"_index":10399,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:7",{"_index":10393,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/uc/delete",{"_index":7936,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["apps/server/src/modules/fwu",{"_index":10712,"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/controller/dto/request/class",{"_index":4427,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["apps/server/src/modules/group/controller/dto/request/group",{"_index":11051,"title":{},"body":{"classes/GroupIdParams.html":{}}}],["apps/server/src/modules/group/controller/dto/response/class",{"_index":4343,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/external",{"_index":8474,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group",{"_index":11316,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts",{"_index":11091,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:11",{"_index":11096,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:14",{"_index":11098,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:17",{"_index":11100,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:20",{"_index":11094,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:23",{"_index":11093,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:8",{"_index":11095,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts",{"_index":10945,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:23",{"_index":10953,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:51",{"_index":10959,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/mapper/group",{"_index":11110,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["apps/server/src/modules/group/domain/group",{"_index":11303,"title":{},"body":{"classes/GroupUser.html":{}}}],["apps/server/src/modules/group/domain/group.ts",{"_index":10905,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["apps/server/src/modules/group/domain/group.ts:25",{"_index":10915,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:29",{"_index":10916,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:33",{"_index":10918,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:37",{"_index":10920,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:41",{"_index":10922,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:45",{"_index":10914,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:49",{"_index":10912,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:53",{"_index":10911,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/entity/group",{"_index":11309,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts",{"_index":11035,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:32",{"_index":11037,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:35",{"_index":11039,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:38",{"_index":11036,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:41",{"_index":11041,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:44",{"_index":11040,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:47",{"_index":11038,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/group",{"_index":10941,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["apps/server/src/modules/group/group.module.ts",{"_index":11058,"title":{},"body":{"modules/GroupModule.html":{}}}],["apps/server/src/modules/group/repo/group",{"_index":10978,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts",{"_index":11063,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:10",{"_index":11066,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:100",{"_index":11067,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:13",{"_index":11070,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:27",{"_index":11069,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:46",{"_index":11072,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:60",{"_index":11073,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:75",{"_index":11074,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/service/group.service.ts",{"_index":11166,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:12",{"_index":11173,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:22",{"_index":11179,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:28",{"_index":11172,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:34",{"_index":11174,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:40",{"_index":11175,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:46",{"_index":11177,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:52",{"_index":11171,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:9",{"_index":11169,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/uc/dto/class",{"_index":4319,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["apps/server/src/modules/group/uc/dto/resolved",{"_index":17402,"title":{},"body":{"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts",{"_index":11188,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:117",{"_index":11211,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:137",{"_index":11213,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:155",{"_index":11200,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:161",{"_index":11215,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:172",{"_index":11202,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:18",{"_index":11198,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:30",{"_index":11204,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:60",{"_index":11207,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:71",{"_index":11205,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:94",{"_index":11209,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/mapper/group",{"_index":11276,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["apps/server/src/modules/group/util/sort",{"_index":18885,"title":{},"body":{"classes/SortHelper.html":{}}}],["apps/server/src/modules/h5p",{"_index":11355,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["apps/server/src/modules/learnroom/common",{"_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":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts",{"_index":6604,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:23",{"_index":6613,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:36",{"_index":6610,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts",{"_index":7362,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:15",{"_index":7365,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:22",{"_index":7370,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:38",{"_index":7375,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course",{"_index":6822,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts",{"_index":6890,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14",{"_index":6892,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts",{"_index":6975,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11",{"_index":6976,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts",{"_index":7581,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100",{"_index":7590,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105",{"_index":7586,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108",{"_index":7755,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118",{"_index":7757,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124",{"_index":7756,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16",{"_index":7605,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22",{"_index":7607,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27",{"_index":7606,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32",{"_index":7604,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35",{"_index":7585,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4",{"_index":7603,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62",{"_index":7592,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68",{"_index":7595,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73",{"_index":7593,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78",{"_index":7587,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83",{"_index":7596,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88",{"_index":7597,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94",{"_index":7591,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts",{"_index":7785,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11",{"_index":7786,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson",{"_index":14147,"title":{},"body":{"classes/LessonCopyApiParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts",{"_index":14311,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11",{"_index":14312,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/move",{"_index":14927,"title":{},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/patch",{"_index":16520,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room",{"_index":17649,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts",{"_index":17652,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11",{"_index":17653,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/single",{"_index":2732,"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":17681,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:33",{"_index":17693,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:43",{"_index":17696,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:57",{"_index":17699,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:67",{"_index":17687,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:78",{"_index":17690,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/learnroom",{"_index":13853,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["apps/server/src/modules/learnroom/learnroom.module.ts",{"_index":13868,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["apps/server/src/modules/learnroom/mapper/board",{"_index":3768,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts",{"_index":6808,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts:5",{"_index":6811,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts",{"_index":7608,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15",{"_index":7612,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36",{"_index":7614,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5",{"_index":7616,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/room",{"_index":17590,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["apps/server/src/modules/learnroom/service/board",{"_index":2959,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/column",{"_index":4887,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["apps/server/src/modules/learnroom/service/common",{"_index":4992,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["apps/server/src/modules/learnroom/service/course",{"_index":6641,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts",{"_index":6953,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:13",{"_index":6961,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:19",{"_index":6958,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:29",{"_index":6959,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:6",{"_index":6956,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:9",{"_index":6963,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts",{"_index":6795,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:15",{"_index":6801,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:6",{"_index":6799,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:9",{"_index":6803,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts",{"_index":17721,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:10",{"_index":17725,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:19",{"_index":17729,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:33",{"_index":17727,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/uc/course",{"_index":6696,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts",{"_index":6969,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:10",{"_index":6973,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:7",{"_index":6971,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts",{"_index":7758,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13",{"_index":7764,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26",{"_index":7766,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41",{"_index":7768,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57",{"_index":7770,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7",{"_index":7763,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/lesson",{"_index":14150,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["apps/server/src/modules/learnroom/uc/room",{"_index":8054,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts",{"_index":17654,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11",{"_index":17662,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17",{"_index":17660,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24",{"_index":17666,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45",{"_index":17664,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts",{"_index":17744,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:10",{"_index":17748,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:20",{"_index":17750,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:31",{"_index":17755,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:52",{"_index":17753,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/legacy",{"_index":9777,"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":14309,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11",{"_index":14310,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts",{"_index":14137,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts:14",{"_index":14141,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/lesson",{"_index":14131,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["apps/server/src/modules/lesson/lesson.module.ts",{"_index":14208,"title":{},"body":{"modules/LessonModule.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts",{"_index":8401,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:12",{"_index":8407,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:9",{"_index":8405,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts",{"_index":14274,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:13",{"_index":14281,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:19",{"_index":14288,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:23",{"_index":14286,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:27",{"_index":14285,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:33",{"_index":14283,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:7",{"_index":14279,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts",{"_index":15217,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:12",{"_index":15221,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:9",{"_index":15219,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts",{"_index":14299,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:13",{"_index":14302,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:7",{"_index":14300,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lti",{"_index":14685,"title":{},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{}}}],["apps/server/src/modules/management/console/board",{"_index":3477,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["apps/server/src/modules/management/console/database",{"_index":7788,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["apps/server/src/modules/management/controller/database",{"_index":7827,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts",{"_index":3805,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:11",{"_index":3818,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:21",{"_index":3809,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/management",{"_index":14775,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["apps/server/src/modules/management/management.module.ts",{"_index":14762,"title":{},"body":{"modules/ManagementModule.html":{}}}],["apps/server/src/modules/management/uc/board",{"_index":3503,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["apps/server/src/modules/management/uc/database",{"_index":11668,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["apps/server/src/modules/news/controller/dto/create",{"_index":7032,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/filter",{"_index":10683,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts",{"_index":15001,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:101",{"_index":15116,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:106",{"_index":15112,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:111",{"_index":15124,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:116",{"_index":15111,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:12",{"_index":15109,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:121",{"_index":15123,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:126",{"_index":15115,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:129",{"_index":15002,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:51",{"_index":15114,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:56",{"_index":15122,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:61",{"_index":15110,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:66",{"_index":15113,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:73",{"_index":15117,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:78",{"_index":15118,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:85",{"_index":15121,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:91",{"_index":15120,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:96",{"_index":15119,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts",{"_index":15214,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts:11",{"_index":15216,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/school",{"_index":18300,"title":{},"body":{"classes/SchoolInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/target",{"_index":19514,"title":{},"body":{"classes/TargetInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts",{"_index":20136,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts:11",{"_index":20137,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/update",{"_index":20774,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/user",{"_index":21012,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts",{"_index":14948,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:26",{"_index":14951,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:40",{"_index":14956,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:61",{"_index":14960,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:71",{"_index":14965,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:89",{"_index":14954,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/team",{"_index":20069,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["apps/server/src/modules/news/loggable/news",{"_index":14991,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts",{"_index":15017,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:38",{"_index":15025,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:52",{"_index":15023,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:65",{"_index":15031,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:74",{"_index":15027,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:9",{"_index":15029,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/school",{"_index":18293,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/target",{"_index":19509,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/user",{"_index":21011,"title":{},"body":{"classes/UserInfoMapper.html":{}}}],["apps/server/src/modules/news/news.module.ts",{"_index":15069,"title":{},"body":{"modules/NewsModule.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts",{"_index":15143,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:100",{"_index":15160,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:122",{"_index":15172,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:148",{"_index":15153,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:159",{"_index":15164,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:179",{"_index":15170,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:197",{"_index":15162,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:207",{"_index":15166,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:23",{"_index":15150,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:39",{"_index":15152,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:67",{"_index":15155,"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":1908,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11",{"_index":1912,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15",{"_index":1915,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19",{"_index":1916,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23",{"_index":1917,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27",{"_index":1918,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/sso",{"_index":17931,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["apps/server/src/modules/oauth/controller/dto/stateless",{"_index":18912,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/system",{"_index":19377,"title":{},"body":{"classes/SystemIdParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/user",{"_index":21397,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["apps/server/src/modules/oauth/controller/oauth",{"_index":16080,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apps/server/src/modules/oauth/interface/oauth",{"_index":15486,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["apps/server/src/modules/oauth/loggable/oauth",{"_index":15374,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["apps/server/src/modules/oauth/loggable/user",{"_index":21487,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["apps/server/src/modules/oauth/mapper/oauth",{"_index":15734,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/token",{"_index":20280,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/user",{"_index":21394,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["apps/server/src/modules/oauth/oauth",{"_index":15580,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["apps/server/src/modules/oauth/oauth.module.ts",{"_index":15754,"title":{},"body":{"modules/OauthModule.html":{}}}],["apps/server/src/modules/oauth/service/dto/authentication",{"_index":1515,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts",{"_index":6140,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2",{"_index":6144,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4",{"_index":6143,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts",{"_index":11466,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13",{"_index":11470,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15",{"_index":11471,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17",{"_index":11469,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19",{"_index":11472,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21",{"_index":11468,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4",{"_index":11467,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/oauth",{"_index":15360,"title":{},"body":{"classes/OAuthProcessDto.html":{},"interfaces/OauthTokenResponse.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts",{"_index":11483,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:126",{"_index":11495,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:19",{"_index":11490,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:27",{"_index":11503,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:29",{"_index":11497,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:43",{"_index":11502,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:79",{"_index":11499,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:99",{"_index":11493,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/oauth",{"_index":15545,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts",{"_index":15384,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:116",{"_index":15404,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:132",{"_index":15413,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:142",{"_index":15417,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:154",{"_index":15419,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:169",{"_index":15409,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:189",{"_index":15406,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:205",{"_index":15411,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:214",{"_index":15402,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:22",{"_index":15397,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:37",{"_index":15400,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:63",{"_index":15415,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/uc/dto/oauth",{"_index":15722,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["apps/server/src/modules/oauth/uc/hydra",{"_index":11406,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts",{"_index":16196,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:142",{"_index":16203,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:26",{"_index":16201,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:40",{"_index":16211,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:66",{"_index":16209,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:97",{"_index":16206,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/provisioning/dto/external",{"_index":8420,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalUserDto.html":{}}}],["apps/server/src/modules/provisioning/dto/oauth",{"_index":15693,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning",{"_index":16889,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts",{"_index":16831,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2",{"_index":16833,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/loggable/group",{"_index":11148,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/school",{"_index":18257,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/user",{"_index":21007,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/mapper/provisioning",{"_index":16894,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["apps/server/src/modules/provisioning/provisioning.module.ts",{"_index":16841,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts",{"_index":16847,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:16",{"_index":16868,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:19",{"_index":16856,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:32",{"_index":16867,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:36",{"_index":16860,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:50",{"_index":16858,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:56",{"_index":16865,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:62",{"_index":16862,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts",{"_index":16885,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:5",{"_index":16888,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:7",{"_index":16887,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:9",{"_index":16886,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv",{"_index":13067,"title":{},"body":{"classes/IservMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts",{"_index":13084,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19",{"_index":13087,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65",{"_index":13092,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc",{"_index":16291,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts",{"_index":16402,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9",{"_index":16404,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/service/oidc",{"_index":16301,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis",{"_index":17938,"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":17996,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis",{"_index":17999,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts",{"_index":17973,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21",{"_index":17976,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:69",{"_index":17979,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym",{"_index":16959,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts",{"_index":16961,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:11",{"_index":16962,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:5",{"_index":16963,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:8",{"_index":16964,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts",{"_index":16923,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts:27",{"_index":16928,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/domain/pseudonym",{"_index":16978,"title":{},"body":{"interfaces/PseudonymSearchQuery.html":{}}}],["apps/server/src/modules/pseudonym/entity/external",{"_index":8918,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts",{"_index":16941,"title":{},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18",{"_index":16942,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21",{"_index":16943,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24",{"_index":16944,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts",{"_index":16967,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:13",{"_index":16976,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:20",{"_index":16974,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:6",{"_index":16972,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/loggable/too",{"_index":20291,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts",{"_index":16946,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts:5",{"_index":16948,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym",{"_index":16919,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym.module.ts",{"_index":16957,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["apps/server/src/modules/pseudonym/repo/external",{"_index":8932,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts",{"_index":17044,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10",{"_index":17050,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21",{"_index":17049,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36",{"_index":17048,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44",{"_index":17046,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65",{"_index":17047,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7",{"_index":17045,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71",{"_index":17052,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82",{"_index":17051,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/service/feathers",{"_index":9628,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts",{"_index":16979,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:105",{"_index":16992,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:11",{"_index":16988,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:112",{"_index":17007,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:120",{"_index":17001,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:126",{"_index":17000,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:132",{"_index":17005,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:17",{"_index":16994,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:27",{"_index":16995,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:50",{"_index":16999,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:74",{"_index":16990,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:87",{"_index":17003,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:93",{"_index":16997,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:99",{"_index":16993,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts",{"_index":17031,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:16",{"_index":17035,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:9",{"_index":17033,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/rocketchat/rocket",{"_index":1152,"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":17516,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:13",{"_index":17520,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:5",{"_index":17523,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/role.module.ts",{"_index":17532,"title":{},"body":{"modules/RoleModule.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts",{"_index":17511,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:4",{"_index":17513,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:6",{"_index":17514,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:8",{"_index":17512,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/role.service.ts",{"_index":17563,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:11",{"_index":17570,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:16",{"_index":17567,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:22",{"_index":17568,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:28",{"_index":17569,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:8",{"_index":17566,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts",{"_index":17581,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:10",{"_index":17584,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:7",{"_index":17583,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts",{"_index":18500,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts:7",{"_index":18501,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/server.config.ts",{"_index":12231,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["apps/server/src/modules/server/server.module.ts",{"_index":18513,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:154",{"_index":18516,"title":{},"body":{"modules/ServerModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:185",{"_index":18586,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:189",{"_index":18587,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/sharing/controller/dto/share",{"_index":18600,"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":18619,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apps/server/src/modules/sharing/domainobject/share",{"_index":18668,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["apps/server/src/modules/sharing/entity/share",{"_index":12250,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["apps/server/src/modules/sharing/mapper/context",{"_index":18616,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/metadata",{"_index":14801,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/parent",{"_index":18710,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/share",{"_index":18704,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["apps/server/src/modules/sharing/repo/share",{"_index":18722,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["apps/server/src/modules/sharing/service/share",{"_index":18755,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["apps/server/src/modules/sharing/service/token",{"_index":20276,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["apps/server/src/modules/sharing/sharing.module.ts",{"_index":18863,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["apps/server/src/modules/sharing/uc/dto/share",{"_index":18696,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["apps/server/src/modules/sharing/uc/share",{"_index":18786,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["apps/server/src/modules/system/controller/dto/oauth",{"_index":15667,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/public",{"_index":17061,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/system",{"_index":19378,"title":{},"body":{"classes/SystemIdParams-1.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts",{"_index":19369,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:10",{"_index":19375,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:16",{"_index":19372,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/mapper/system",{"_index":19443,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts",{"_index":19279,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:23",{"_index":19286,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:38",{"_index":19292,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/mapper/system",{"_index":19401,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts",{"_index":19380,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:20",{"_index":19386,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:39",{"_index":19383,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:6",{"_index":19384,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/service/dto/oauth",{"_index":15637,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/oidc",{"_index":16245,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts",{"_index":19313,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:10",{"_index":19323,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:12",{"_index":19316,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:14",{"_index":19317,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:16",{"_index":19320,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:18",{"_index":19321,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:20",{"_index":19319,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:22",{"_index":19315,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:6",{"_index":19318,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:8",{"_index":19322,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/system",{"_index":19414,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts",{"_index":19459,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:10",{"_index":19462,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:16",{"_index":19463,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:25",{"_index":19465,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:40",{"_index":19469,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:66",{"_index":19467,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/system",{"_index":19274,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["apps/server/src/modules/system/system.module.ts",{"_index":19397,"title":{},"body":{"modules/SystemModule.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts",{"_index":19501,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:11",{"_index":19504,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:25",{"_index":19505,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:8",{"_index":19502,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts",{"_index":19217,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:14",{"_index":19224,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:17",{"_index":19227,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:20",{"_index":19226,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:23",{"_index":19223,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:26",{"_index":19225,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:29",{"_index":19228,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:3",{"_index":19222,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:32",{"_index":19218,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:38",{"_index":19219,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts",{"_index":19246,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts:11",{"_index":19247,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task",{"_index":19591,"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":19691,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:22",{"_index":19857,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:26",{"_index":19860,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:29",{"_index":19849,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:32",{"_index":19856,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:36",{"_index":19851,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:39",{"_index":19859,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:42",{"_index":19850,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:49",{"_index":19854,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:52",{"_index":19858,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:55",{"_index":19855,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:58",{"_index":19852,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:61",{"_index":19862,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:64",{"_index":19861,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:67",{"_index":19692,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:9",{"_index":19848,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts",{"_index":20028,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts:11",{"_index":20029,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts",{"_index":18998,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:15",{"_index":19006,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:29",{"_index":19002,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts",{"_index":19541,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:100",{"_index":19550,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:22",{"_index":19551,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:30",{"_index":19554,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:37",{"_index":19556,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:54",{"_index":19559,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:63",{"_index":19562,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:72",{"_index":19565,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:85",{"_index":19548,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts",{"_index":19139,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts:5",{"_index":19142,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/task",{"_index":19929,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts",{"_index":19698,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:39",{"_index":19705,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:54",{"_index":19702,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:6",{"_index":19707,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts",{"_index":19201,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:13",{"_index":19211,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:17",{"_index":19208,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:23",{"_index":19206,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:7",{"_index":19204,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/task",{"_index":19593,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts",{"_index":19913,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:15",{"_index":19922,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:24",{"_index":19917,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:32",{"_index":19919,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:39",{"_index":19921,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:8",{"_index":19915,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/task",{"_index":19535,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["apps/server/src/modules/task/task.module.ts",{"_index":19739,"title":{},"body":{"modules/TaskModule.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts",{"_index":19229,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:13",{"_index":19237,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:22",{"_index":19233,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:39",{"_index":19235,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:7",{"_index":19232,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/task",{"_index":19627,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts",{"_index":19940,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:110",{"_index":19965,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:126",{"_index":19955,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:155",{"_index":19957,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:185",{"_index":19961,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:19",{"_index":19946,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:197",{"_index":19963,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:218",{"_index":19958,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:225",{"_index":19949,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:28",{"_index":19953,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:69",{"_index":19951,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:85",{"_index":19948,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts",{"_index":20121,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:15",{"_index":20127,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:6",{"_index":20125,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:9",{"_index":20129,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/teams",{"_index":20167,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["apps/server/src/modules/teams/teams.module.ts",{"_index":20172,"title":{},"body":{"modules/TeamsModule.html":{}}}],["apps/server/src/modules/tool/common/common",{"_index":5337,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["apps/server/src/modules/tool/common/domain/custom",{"_index":7205,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntry.html":{}}}],["apps/server/src/modules/tool/common/entity/custom",{"_index":7248,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["apps/server/src/modules/tool/common/interface/external",{"_index":9271,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{}}}],["apps/server/src/modules/tool/common/interface/tool",{"_index":20759,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["apps/server/src/modules/tool/common/mapper/tool",{"_index":20752,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["apps/server/src/modules/tool/common/service/common",{"_index":5344,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{}}}],["apps/server/src/modules/tool/common/uc/tool",{"_index":20615,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["apps/server/src/modules/tool/context",{"_index":5694,"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":{},"classes/ToolReference.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["apps/server/src/modules/tool/external",{"_index":2559,"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":{}}}],["apps/server/src/modules/tool/school",{"_index":7252,"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":{},"classes/AuthenticationValues.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11EncryptionService.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":20614,"title":{},"body":{"modules/ToolModule.html":{}}}],["apps/server/src/modules/user",{"_index":4476,"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":17423,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts",{"_index":4197,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts:8",{"_index":4201,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts",{"_index":19257,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:3",{"_index":19259,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:9",{"_index":19260,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts",{"_index":20826,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:15",{"_index":20833,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:25",{"_index":20830,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/interfaces/user",{"_index":12580,"title":{},"body":{"interfaces/IUserConfig.html":{}}}],["apps/server/src/modules/user/mapper/resolved",{"_index":17412,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts",{"_index":21342,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts:5",{"_index":21343,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/service/user.service.ts",{"_index":21573,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:103",{"_index":21598,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:112",{"_index":21581,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:118",{"_index":21582,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:20",{"_index":21579,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:29",{"_index":21595,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:39",{"_index":21593,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:46",{"_index":21591,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:55",{"_index":21585,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:61",{"_index":21600,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:67",{"_index":21602,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:73",{"_index":21587,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:79",{"_index":21584,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:85",{"_index":21583,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:91",{"_index":21589,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts",{"_index":20966,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:20",{"_index":20973,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:22",{"_index":20969,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:24",{"_index":20971,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:26",{"_index":20976,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:28",{"_index":20980,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:3",{"_index":20968,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:30",{"_index":20981,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:32",{"_index":20977,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:34",{"_index":20970,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:36",{"_index":20974,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:38",{"_index":20972,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:41",{"_index":20979,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:43",{"_index":20975,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:45",{"_index":20978,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts",{"_index":21630,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:12",{"_index":21636,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:19",{"_index":21634,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:25",{"_index":21637,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:9",{"_index":21632,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/user",{"_index":20823,"title":{},"body":{"modules/UserApiModule.html":{}}}],["apps/server/src/modules/user/user.module.ts",{"_index":21483,"title":{},"body":{"modules/UserModule.html":{}}}],["apps/server/src/modules/video",{"_index":2049,"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":{}}}],["apps/server/src/shared/common/error/api",{"_index":1393,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts",{"_index":1816,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts:4",{"_index":1818,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts",{"_index":3830,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:12",{"_index":3839,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:15",{"_index":3842,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:18",{"_index":3841,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:21",{"_index":3840,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:25",{"_index":3838,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:47",{"_index":3843,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/entity",{"_index":8270,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["apps/server/src/shared/common/error/forbidden",{"_index":10704,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["apps/server/src/shared/common/error/user",{"_index":20805,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts",{"_index":21644,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts:4",{"_index":21645,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/interceptor/duration",{"_index":8153,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/interfaces/interceptor",{"_index":12056,"title":{},"body":{"interfaces/IInterceptorConfig.html":{}}}],["apps/server/src/shared/common/interceptor/request",{"_index":17387,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts",{"_index":20245,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11",{"_index":20249,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14",{"_index":20250,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/loggable",{"_index":15323,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts",{"_index":6131,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts:9",{"_index":6134,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/guard",{"_index":11343,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts",{"_index":18949,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:10",{"_index":18952,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:2",{"_index":18954,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts",{"_index":16499,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:14",{"_index":16500,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:8",{"_index":16501,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts",{"_index":16504,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:11",{"_index":16507,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:14",{"_index":16510,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:17",{"_index":16509,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:20",{"_index":16508,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:3",{"_index":16506,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts",{"_index":18894,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:13",{"_index":18895,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:18",{"_index":18897,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/domain/domain",{"_index":1788,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts",{"_index":2340,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts:5",{"_index":2342,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/board/board",{"_index":2750,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts",{"_index":3941,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:10",{"_index":3949,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:14",{"_index":3951,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:18",{"_index":3953,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:22",{"_index":3955,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column",{"_index":4719,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts",{"_index":4710,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:10",{"_index":4714,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:6",{"_index":4713,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/content",{"_index":5548,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["apps/server/src/shared/domain/domainobject/board/external",{"_index":8633,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/file",{"_index":9830,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/link",{"_index":14314,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/rich",{"_index":17460,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/submission",{"_index":18969,"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":2805,"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":8459,"title":{},"body":{"classes/ExternalSource.html":{}}}],["apps/server/src/shared/domain/domainobject/legacy",{"_index":13960,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts",{"_index":7175,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:17",{"_index":14659,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:19",{"_index":14668,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:21",{"_index":14655,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:23",{"_index":14666,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:25",{"_index":14656,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:27",{"_index":14657,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:29",{"_index":14658,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:31",{"_index":14664,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:33",{"_index":14665,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:35",{"_index":14663,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:37",{"_index":14650,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:39",{"_index":14654,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:41",{"_index":14653,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:43",{"_index":14662,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:45",{"_index":14660,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:47",{"_index":14651,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:49",{"_index":14667,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:51",{"_index":14661,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:53",{"_index":14652,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:55",{"_index":14649,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:6",{"_index":7178,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:8",{"_index":7177,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts",{"_index":16454,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:2",{"_index":16456,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:4",{"_index":16455,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts",{"_index":16902,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13",{"_index":16904,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17",{"_index":16906,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21",{"_index":16907,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25",{"_index":16908,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29",{"_index":16909,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/role",{"_index":17547,"title":{},"body":{"classes/RoleReference.html":{}}}],["apps/server/src/shared/domain/domainobject/user",{"_index":21118,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts",{"_index":20843,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:11",{"_index":20846,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:13",{"_index":20849,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:15",{"_index":20855,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:17",{"_index":20860,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:19",{"_index":20861,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:21",{"_index":20857,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:23",{"_index":20848,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:25",{"_index":20852,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:27",{"_index":20850,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:29",{"_index":20856,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:31",{"_index":20847,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:33",{"_index":20853,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:35",{"_index":20851,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:37",{"_index":20859,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:39",{"_index":20854,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:41",{"_index":20858,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:43",{"_index":20844,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:7",{"_index":20845,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:9",{"_index":20862,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/video",{"_index":21823,"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":2454,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:11",{"_index":2459,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:25",{"_index":2481,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:28",{"_index":2483,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:31",{"_index":2482,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:34",{"_index":2485,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:8",{"_index":2457,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts",{"_index":3587,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29",{"_index":3591,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32",{"_index":3589,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35",{"_index":3592,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39",{"_index":3595,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42",{"_index":3593,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/card",{"_index":4058,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/column",{"_index":4770,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/external",{"_index":8658,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/file",{"_index":9855,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/link",{"_index":14343,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/rich",{"_index":17484,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/submission",{"_index":18985,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/types/board",{"_index":3156,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts",{"_index":6468,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:100",{"_index":6492,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:103",{"_index":6481,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:106",{"_index":6494,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:44",{"_index":21642,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:46",{"_index":21641,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:48",{"_index":21643,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:57",{"_index":6496,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:60",{"_index":6489,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:64",{"_index":6498,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:68",{"_index":6503,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:72",{"_index":6506,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:76",{"_index":6505,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:79",{"_index":6487,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:83",{"_index":6483,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:86",{"_index":6501,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:90",{"_index":6507,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:93",{"_index":6484,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:97",{"_index":6500,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts",{"_index":6747,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:21",{"_index":6750,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:25",{"_index":6755,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:29",{"_index":6749,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:33",{"_index":6753,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts",{"_index":7396,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:100",{"_index":10902,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:108",{"_index":10891,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:117",{"_index":10897,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:138",{"_index":10901,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:14",{"_index":11995,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:142",{"_index":10904,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:16",{"_index":11997,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:161",{"_index":7416,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:163",{"_index":7414,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:165",{"_index":7415,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:167",{"_index":7417,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:169",{"_index":7438,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:176",{"_index":7444,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:18",{"_index":11996,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:180",{"_index":7413,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:193",{"_index":7432,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:197",{"_index":7436,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:20",{"_index":11993,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:201",{"_index":7430,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:213",{"_index":7427,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:22",{"_index":11992,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:221",{"_index":7442,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:231",{"_index":7451,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:24",{"_index":11998,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:240",{"_index":7448,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:255",{"_index":7423,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:266",{"_index":7421,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:272",{"_index":7419,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:278",{"_index":7429,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:286",{"_index":7435,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:298",{"_index":7446,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:307",{"_index":7440,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:38",{"_index":10887,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:40",{"_index":10890,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:42",{"_index":10889,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:52",{"_index":10886,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:60",{"_index":10895,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:64",{"_index":10894,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:68",{"_index":10896,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:72",{"_index":10893,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:76",{"_index":10888,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:78",{"_index":10900,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:8",{"_index":11994,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:82",{"_index":10898,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:86",{"_index":10899,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:90",{"_index":10903,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts",{"_index":7549,"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":7556,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45",{"_index":7557,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48",{"_index":7558,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52",{"_index":7555,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56",{"_index":7553,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76",{"_index":7637,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81",{"_index":7639,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/external",{"_index":8464,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/federal",{"_index":6446,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["apps/server/src/shared/domain/entity/import",{"_index":12006,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["apps/server/src/shared/domain/entity/legacy",{"_index":2628,"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":11864,"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":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:101",{"_index":14193,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:104",{"_index":14186,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:107",{"_index":14191,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:110",{"_index":14194,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:81",{"_index":12093,"title":{},"body":{"interfaces/ILessonParent.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:87",{"_index":14192,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:91",{"_index":14190,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:95",{"_index":14187,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:98",{"_index":14188,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts",{"_index":7102,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:101",{"_index":14630,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:33",{"_index":14637,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:36",{"_index":14648,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:39",{"_index":14633,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:42",{"_index":14646,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:45",{"_index":14634,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:48",{"_index":14635,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:51",{"_index":14636,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:54",{"_index":14642,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:58",{"_index":14645,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:65",{"_index":14641,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:68",{"_index":14627,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:71",{"_index":14632,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:74",{"_index":14631,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:77",{"_index":14626,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:85",{"_index":14638,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:89",{"_index":14628,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:92",{"_index":14647,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:95",{"_index":14639,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:98",{"_index":14629,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts",{"_index":12096,"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":14783,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:34",{"_index":14784,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:37",{"_index":14785,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:40",{"_index":14786,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:43",{"_index":14787,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:46",{"_index":14788,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:49",{"_index":14789,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:52",{"_index":14790,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:55",{"_index":14791,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:58",{"_index":14792,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts",{"_index":6845,"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":18391,"title":{},"body":{"entities/SchoolNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:116",{"_index":6846,"title":{},"body":{"entities/CourseNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:127",{"_index":20068,"title":{},"body":{"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:34",{"_index":14945,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:38",{"_index":14935,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:43",{"_index":14937,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:46",{"_index":14938,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:49",{"_index":14941,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:52",{"_index":14942,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:55",{"_index":14943,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:59",{"_index":14944,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:62",{"_index":14940,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:65",{"_index":14936,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:68",{"_index":14946,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:70",{"_index":14939,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts",{"_index":12159,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:15",{"_index":17507,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:18",{"_index":17508,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:21",{"_index":17510,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts",{"_index":12180,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:104",{"_index":18075,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:107",{"_index":18065,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:47",{"_index":18405,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:50",{"_index":18404,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:56",{"_index":18406,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:59",{"_index":18407,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:66",{"_index":18064,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:69",{"_index":18066,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:72",{"_index":18067,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:75",{"_index":18063,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:78",{"_index":18071,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:81",{"_index":18068,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:84",{"_index":18069,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:87",{"_index":18073,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:90",{"_index":18070,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:93",{"_index":18072,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts",{"_index":12222,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:13",{"_index":18440,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:16",{"_index":18441,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:19",{"_index":18439,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts",{"_index":12261,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:15",{"_index":18941,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:18",{"_index":18940,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:21",{"_index":18943,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:24",{"_index":18942,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts",{"_index":12274,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:30",{"_index":18962,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:34",{"_index":18966,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:37",{"_index":18963,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:40",{"_index":18958,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:43",{"_index":18967,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:46",{"_index":18957,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:49",{"_index":18964,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:52",{"_index":18961,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:55",{"_index":18959,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:58",{"_index":18960,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts",{"_index":12328,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:102",{"_index":13746,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:105",{"_index":13747,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:108",{"_index":13745,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:111",{"_index":13754,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:114",{"_index":13751,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:117",{"_index":13752,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:120",{"_index":13753,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:123",{"_index":13749,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:126",{"_index":13750,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:153",{"_index":16236,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:166",{"_index":16238,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:169",{"_index":16239,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:172",{"_index":16241,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:175",{"_index":16237,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:178",{"_index":16243,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:18",{"_index":15623,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:181",{"_index":16242,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:184",{"_index":16244,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:187",{"_index":16240,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:206",{"_index":19340,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:209",{"_index":19341,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:212",{"_index":19331,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:215",{"_index":19332,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:218",{"_index":19335,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:222",{"_index":19338,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:225",{"_index":19336,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:228",{"_index":19334,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:231",{"_index":19339,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:36",{"_index":15625,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:39",{"_index":15626,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:42",{"_index":15628,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:45",{"_index":15633,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:48",{"_index":15627,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:51",{"_index":15636,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:54",{"_index":15624,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:57",{"_index":15634,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:60",{"_index":15635,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:63",{"_index":15632,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:66",{"_index":15631,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:69",{"_index":15629,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:72",{"_index":15630,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:76",{"_index":13742,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:93",{"_index":13743,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:96",{"_index":13744,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:99",{"_index":13748,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts",{"_index":12441,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:16",{"_index":20031,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:18",{"_index":20030,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:35",{"_index":12442,"title":{},"body":{"interfaces/ITaskParent.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:45",{"_index":19524,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:48",{"_index":19518,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:51",{"_index":19519,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:54",{"_index":19515,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:58",{"_index":19520,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:61",{"_index":19525,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:64",{"_index":19526,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:67",{"_index":19529,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:71",{"_index":19517,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:75",{"_index":19516,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:79",{"_index":19527,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:83",{"_index":19523,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:86",{"_index":19528,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:90",{"_index":19521,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts",{"_index":12551,"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":20141,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:27",{"_index":20144,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:30",{"_index":20142,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:33",{"_index":20143,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:36",{"_index":20145,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:40",{"_index":20147,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:44",{"_index":20149,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:48",{"_index":20151,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:56",{"_index":20040,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:59",{"_index":20041,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/user",{"_index":21142,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts",{"_index":12582,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:41",{"_index":20786,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:44",{"_index":20789,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:47",{"_index":20795,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:51",{"_index":20802,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:55",{"_index":20803,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:59",{"_index":20797,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:62",{"_index":20788,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:65",{"_index":20800,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:69",{"_index":20792,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:72",{"_index":20790,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:75",{"_index":20796,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:78",{"_index":20787,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:81",{"_index":20793,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:84",{"_index":20791,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:87",{"_index":20799,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:91",{"_index":20785,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:94",{"_index":20794,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:97",{"_index":20798,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/video",{"_index":21654,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["apps/server/src/shared/domain/interface/base",{"_index":2446,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["apps/server/src/shared/domain/interface/entity.ts",{"_index":11957,"title":{},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/interface/find",{"_index":11990,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["apps/server/src/shared/domain/interface/learnroom.ts",{"_index":12075,"title":{},"body":{"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts",{"_index":16551,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:17",{"_index":16557,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:26",{"_index":16562,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:51",{"_index":16555,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/types/importuser.types.ts",{"_index":12052,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["apps/server/src/shared/domain/types/news.types.ts",{"_index":11931,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["apps/server/src/shared/domain/types/rich",{"_index":17449,"title":{},"body":{"classes/RichText.html":{}}}],["apps/server/src/shared/domain/types/task.types.ts",{"_index":12434,"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":1296,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts:8",{"_index":1300,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts",{"_index":1333,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:10",{"_index":1340,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:17",{"_index":1343,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:44",{"_index":1349,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:62",{"_index":1347,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts",{"_index":1327,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["apps/server/src/shared/infra/cache/cache.module.ts",{"_index":3868,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts",{"_index":3855,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts:7",{"_index":3857,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/calendar/calendar.module.ts",{"_index":3916,"title":{},"body":{"modules/CalendarModule.html":{}}}],["apps/server/src/shared/infra/calendar/dto/calendar",{"_index":3887,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["apps/server/src/shared/infra/calendar/interface/calendar",{"_index":11582,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts",{"_index":3897,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7",{"_index":3900,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts",{"_index":3920,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:15",{"_index":3930,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:17",{"_index":3924,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:24",{"_index":3927,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:46",{"_index":3929,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/collaborative",{"_index":4511,"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":5540,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{}}}],["apps/server/src/shared/infra/database/management/database",{"_index":7861,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{}}}],["apps/server/src/shared/infra/database/mongo",{"_index":14884,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts",{"_index":11948,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:5",{"_index":11954,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:6",{"_index":11952,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.module.ts",{"_index":8258,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts",{"_index":19262,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:15",{"_index":19265,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:23",{"_index":19264,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:8",{"_index":19263,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/feathers/feathers",{"_index":9738,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["apps/server/src/shared/infra/feathers/feathers.module.ts",{"_index":9619,"title":{},"body":{"modules/FeathersModule.html":{}}}],["apps/server/src/shared/infra/file",{"_index":10274,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["apps/server/src/shared/infra/identity",{"_index":11585,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":1483,"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":14745,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts:11",{"_index":14747,"title":{},"body":{"modules/MailModule.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts",{"_index":14751,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:12",{"_index":14753,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:18",{"_index":14754,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts",{"_index":16733,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:12",{"_index":16750,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:14",{"_index":16755,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:18",{"_index":16749,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:20",{"_index":16757,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:24",{"_index":16745,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:26",{"_index":16759,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:30",{"_index":16746,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:32",{"_index":16761,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:34",{"_index":16744,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:4",{"_index":16747,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:44",{"_index":16762,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:52",{"_index":16751,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:6",{"_index":16748,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:8",{"_index":16753,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts",{"_index":17338,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10",{"_index":17345,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12",{"_index":17347,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14",{"_index":17349,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16",{"_index":17343,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32",{"_index":17432,"title":{},"body":{"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6",{"_index":17346,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8",{"_index":17344,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/oauth",{"_index":337,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.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/preview",{"_index":16574,"title":{},"body":{"classes/PreviewActionsLoggable.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["apps/server/src/shared/infra/rabbitmq/error.mapper.ts",{"_index":8352,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/error.mapper.ts:6",{"_index":8356,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/exchange/files",{"_index":11917,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts",{"_index":17076,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:55",{"_index":17099,"title":{},"body":{"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rpc",{"_index":11959,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{}}}],["apps/server/src/shared/infra/redis/redis.module.ts",{"_index":17320,"title":{},"body":{"modules/RedisModule.html":{}}}],["apps/server/src/shared/infra/s3",{"_index":6263,"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":2344,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:11",{"_index":2393,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:111",{"_index":2372,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:116",{"_index":2376,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:13",{"_index":2375,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:15",{"_index":2381,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:17",{"_index":2378,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:19",{"_index":2387,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:24",{"_index":2389,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:42",{"_index":2361,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:50",{"_index":2392,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:63",{"_index":2364,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:77",{"_index":2383,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:8",{"_index":2358,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:85",{"_index":2366,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:98",{"_index":2370,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts",{"_index":2530,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:13",{"_index":2539,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:16",{"_index":2544,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:18",{"_index":2540,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:22",{"_index":2543,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:26",{"_index":2541,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:30",{"_index":2542,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts",{"_index":3660,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:11",{"_index":3668,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:17",{"_index":3671,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:25",{"_index":3666,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:38",{"_index":3673,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:7",{"_index":3674,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/contextexternaltool/context",{"_index":5838,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts",{"_index":6894,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:120",{"_index":6907,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:129",{"_index":6910,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:21",{"_index":6952,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:32",{"_index":6951,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:37",{"_index":6948,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:47",{"_index":6950,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:55",{"_index":6911,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:59",{"_index":6900,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:71",{"_index":6903,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:9",{"_index":6949,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:95",{"_index":6905,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts",{"_index":6774,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19",{"_index":6777,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26",{"_index":6780,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9",{"_index":6781,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts",{"_index":7641,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112",{"_index":7664,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128",{"_index":7659,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16",{"_index":7652,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19",{"_index":7670,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24",{"_index":7666,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34",{"_index":7661,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42",{"_index":7672,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51",{"_index":7668,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64",{"_index":7657,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75",{"_index":7674,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95",{"_index":7654,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts",{"_index":7726,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14",{"_index":11946,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15",{"_index":11945,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16",{"_index":11947,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20",{"_index":7730,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24",{"_index":7736,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30",{"_index":7738,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36",{"_index":7732,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42",{"_index":7734,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/externaltool/external",{"_index":8992,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["apps/server/src/shared/repo/federalstate/federal",{"_index":9771,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts",{"_index":12928,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:11",{"_index":12943,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:27",{"_index":12941,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:34",{"_index":12937,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:52",{"_index":12939,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:69",{"_index":12934,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts",{"_index":12983,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:10",{"_index":13007,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:100",{"_index":13003,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:113",{"_index":13011,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:17",{"_index":13009,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:24",{"_index":12996,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:38",{"_index":12998,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:54",{"_index":13000,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:69",{"_index":13005,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:86",{"_index":12994,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson",{"_index":14268,"title":{},"body":{"classes/LessonScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts",{"_index":14209,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:13",{"_index":14213,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:23",{"_index":14215,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:41",{"_index":14217,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:9",{"_index":14218,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts",{"_index":14687,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17",{"_index":14693,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26",{"_index":14695,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31",{"_index":14692,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9",{"_index":14698,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts",{"_index":14798,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts:7",{"_index":14799,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts",{"_index":14903,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts:6",{"_index":14907,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/news/news",{"_index":15125,"title":{},"body":{"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts",{"_index":15074,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:10",{"_index":15088,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:12",{"_index":15089,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:21",{"_index":15081,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:36",{"_index":15083,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:51",{"_index":15087,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:58",{"_index":15085,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts",{"_index":17550,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:11",{"_index":17558,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:13",{"_index":17554,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:23",{"_index":17556,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:28",{"_index":17553,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:7",{"_index":17559,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/school/legacy",{"_index":14012,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["apps/server/src/shared/repo/schoolexternaltool/school",{"_index":18118,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["apps/server/src/shared/repo/scope.ts",{"_index":18457,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:11",{"_index":18460,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:13",{"_index":18459,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:20",{"_index":18465,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:31",{"_index":18462,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:35",{"_index":18463,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:9",{"_index":18461,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts",{"_index":18944,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12",{"_index":18947,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16",{"_index":18946,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7",{"_index":18945,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts",{"_index":19148,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:10",{"_index":19161,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:21",{"_index":19155,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:30",{"_index":19157,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:35",{"_index":19153,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:41",{"_index":19160,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/system/system",{"_index":19457,"title":{},"body":{"classes/SystemScope.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts",{"_index":19427,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:12",{"_index":19431,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:31",{"_index":19429,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:8",{"_index":19432,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/task/task",{"_index":19877,"title":{},"body":{"classes/TaskScope.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts",{"_index":19740,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:106",{"_index":19749,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:11",{"_index":19760,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:15",{"_index":19759,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:164",{"_index":19755,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:190",{"_index":19757,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:26",{"_index":19747,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:38",{"_index":19753,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts",{"_index":20173,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:12",{"_index":20178,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:35",{"_index":20175,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:42",{"_index":20177,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:8",{"_index":20179,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts",{"_index":18918,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:10",{"_index":18924,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:21",{"_index":18927,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:36",{"_index":18929,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/user/user",{"_index":20885,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts",{"_index":21497,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:158",{"_index":21504,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:166",{"_index":21502,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:173",{"_index":21510,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:185",{"_index":21512,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:189",{"_index":21509,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:21",{"_index":21513,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:36",{"_index":21505,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:48",{"_index":21508,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts",{"_index":21560,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:12",{"_index":21569,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:19",{"_index":21567,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:28",{"_index":21571,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:35",{"_index":21563,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:5",{"_index":21565,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/userloginmigration/user",{"_index":21198,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["apps/server/src/shared/repo/videoconference/video",{"_index":21989,"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":2020,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts",{"_index":2486,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:110",{"_index":2492,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:122",{"_index":2499,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:134",{"_index":2502,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:144",{"_index":2500,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:148",{"_index":2497,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:15",{"_index":2490,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:160",{"_index":2501,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:32",{"_index":2498,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:47",{"_index":2493,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:60",{"_index":2496,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:75",{"_index":2494,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:84",{"_index":2495,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:98",{"_index":2491,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts",{"_index":6724,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:12",{"_index":6728,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:19",{"_index":6729,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:26",{"_index":6731,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:33",{"_index":6734,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts",{"_index":6769,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts:8",{"_index":6770,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/board/column",{"_index":4764,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/do",{"_index":8038,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/domain",{"_index":8046,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/legacy",{"_index":13988,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/context",{"_index":5792,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/external",{"_index":7262,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/school",{"_index":18093,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/external",{"_index":8700,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts",{"_index":10114,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts:10",{"_index":10116,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/import",{"_index":12817,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts",{"_index":6991,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:18",{"_index":13184,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:22",{"_index":13183,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/lesson.factory.ts",{"_index":14196,"title":{},"body":{"classes/LessonFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts",{"_index":14670,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:14",{"_index":14674,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:7",{"_index":14672,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/material.factory.ts",{"_index":14794,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["apps/server/src/shared/testing/factory/readable",{"_index":17101,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["apps/server/src/shared/testing/factory/share",{"_index":18681,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts",{"_index":19022,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:15",{"_index":19027,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:21",{"_index":19026,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:27",{"_index":19029,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:9",{"_index":19025,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts",{"_index":19342,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:28",{"_index":19347,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:40",{"_index":19350,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:7",{"_index":19349,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts",{"_index":19683,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:11",{"_index":19684,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:17",{"_index":19687,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:23",{"_index":19688,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:29",{"_index":19686,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts",{"_index":20043,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:14",{"_index":20049,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:7",{"_index":20047,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts",{"_index":20152,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:19",{"_index":20155,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:9",{"_index":20153,"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":20958,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts:8",{"_index":20961,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts",{"_index":20988,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:11",{"_index":20999,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:17",{"_index":20997,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:23",{"_index":20994,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:32",{"_index":20995,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:41",{"_index":20993,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/test",{"_index":1623,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["apps\\server\\src\\shared\\testing\\factory",{"_index":23458,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appstartinfo",{"_index":1458,"title":{"interfaces/AppStartInfo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["appstartloggable",{"_index":1468,"title":{"classes/AppStartLoggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["appthis",{"_index":22213,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["arbitrary",{"_index":23247,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["arc",{"_index":2534,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["architectural",{"_index":23059,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["architecture",{"_index":22205,"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":23235,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["archive",{"_index":22847,"title":{},"body":{"license.html":{}}}],["archived",{"_index":6831,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["archivegroup(groupname",{"_index":1227,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["are.claim.values.regex",{"_index":13473,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["area",{"_index":23639,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["areas",{"_index":23327,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["aresubmissionspublic",{"_index":12507,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["arg",{"_index":22084,"title":{},"body":{"dependencies.html":{}}}],["args",{"_index":18483,"title":{},"body":{"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{}}}],["argument",{"_index":1195,"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":10804,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["arising",{"_index":22811,"title":{},"body":{"license.html":{}}}],["around",{"_index":19652,"title":{},"body":{"injectables/TaskCopyUC.html":{},"todo.html":{}}}],["arrange",{"_index":22727,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["arrangement",{"_index":22737,"title":{},"body":{"license.html":{}}}],["array",{"_index":1858,"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/FederalStateEntity.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["array(length).keys()].map((_",{"_index":3557,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["array.from(modelentity.gridelements).foreach((el",{"_index":7717,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["array.from(new",{"_index":11262,"title":{},"body":{"injectables/GroupUc.html":{}}}],["array.isarray(boardnode",{"_index":3289,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(cardidparams.ids",{"_index":4019,"title":{},"body":{"controllers/CardController.html":{}}}],["array.isarray(collectionnamefilter",{"_index":11715,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["array.isarray(domainobjects",{"_index":2432,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(id",{"_index":2441,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(matches",{"_index":12037,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(permissions",{"_index":9600,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["array.isarray(props.classnames",{"_index":12023,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(props.rolenames",{"_index":12020,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(requiredpermissions",{"_index":1859,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["array.isarray(t",{"_index":3285,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(user.attributes[attributename",{"_index":13615,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.isarray(user.permissions",{"_index":9565,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["array.isarray(value",{"_index":13627,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["arraybuffer",{"_index":8806,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["article",{"_index":22450,"title":{},"body":{"license.html":{}}}],["asadmin",{"_index":20989,"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":10375,"title":{},"body":{"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["asguest",{"_index":2190,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["asguest(isguest",{"_index":21924,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["asguest(value",{"_index":2193,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["ask",{"_index":14266,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["ask_moderator",{"_index":2093,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["asks",{"_index":5444,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["aspnetcore_environment='development",{"_index":23532,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["assert",{"_index":22304,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assets",{"_index":22682,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["assigned",{"_index":3498,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["assignemnt",{"_index":12849,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["assigning",{"_index":23203,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assignment",{"_index":1204,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["assignment,@typescript",{"_index":1201,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["associated",{"_index":20033,"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":20990,"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":22802,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["assumption",{"_index":22830,"title":{},"body":{"license.html":{}}}],["assumptions",{"_index":22632,"title":{},"body":{"license.html":{}}}],["asteacher",{"_index":20991,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"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":23365,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["atm",{"_index":1643,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["attach",{"_index":22836,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["attachment",{"_index":1491,"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":1493,"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":22642,"title":{},"body":{"license.html":{}}}],["attempted",{"_index":14877,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["attendee",{"_index":2230,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["attendeepw",{"_index":2070,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["attendees",{"_index":2214,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["attends",{"_index":12848,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["attention",{"_index":23694,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["attribute",{"_index":12710,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["attributename",{"_index":12707,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributes",{"_index":3906,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["attributes.summary",{"_index":3910,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributes['x",{"_index":3908,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributevalue",{"_index":12712,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributions",{"_index":22619,"title":{},"body":{"license.html":{}}}],["aud",{"_index":6992,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["audience",{"_index":1609,"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":4813,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["autenticationresponse",{"_index":1640,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["auth",{"_index":1272,"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":13134,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["auth.provider",{"_index":9596,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["auth.provider.ts",{"_index":9545,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["auth.provider.ts:13",{"_index":9551,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:16",{"_index":9559,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:26",{"_index":9561,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:38",{"_index":9555,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:55",{"_index":9553,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:60",{"_index":9557,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth_token",{"_index":2207,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["authcode",{"_index":15399,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authconfig",{"_index":13141,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.jwtoptions",{"_index":13150,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.secret",{"_index":13149,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authendpoint",{"_index":11557,"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/SystemEntity.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/GroupController.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/PseudonymController.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/ToolReferenceController.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/GroupController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["authenticate('jwt')@delete('auth/sessions/consent",{"_index":15883,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@delete('clients/:id",{"_index":15858,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('auth/sessions/consent",{"_index":15871,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients",{"_index":15873,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients/:id",{"_index":15866,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('consentrequest/:challenge",{"_index":15861,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('consentrequest/:challenge",{"_index":15876,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('loginrequest/:challenge",{"_index":15879,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('logoutrequest/:challenge",{"_index":15854,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@post('clients",{"_index":15856,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@put('clients/:id",{"_index":15885,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticated",{"_index":522,"title":{},"body":{"controllers/AccountController.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"interfaces/OauthCurrentUser.html":{}}}],["authenticateuser",{"_index":15385,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticateuser(systemid",{"_index":15398,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticating",{"_index":23113,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["authentication",{"_index":1920,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentResponse.html":{},"interfaces/ICleanOptions.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":1511,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["authentication/authentication",{"_index":11403,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["authentication/authentication.module",{"_index":10753,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["authentication/local",{"_index":1635,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationapimodule",{"_index":1503,"title":{"modules/AuthenticationApiModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["authenticationcodegranttokenrequest",{"_index":1514,"title":{"classes/AuthenticationCodeGrantTokenRequest.html":{}},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/TokenRequestMapper.html":{}}}],["authenticationexecutioninforepresentation",{"_index":13365,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationflowrepresentation",{"_index":13367,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationmodule",{"_index":1507,"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":1622,"title":{"interfaces/AuthenticationResponse.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationresponse.accesstoken",{"_index":1705,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationservice",{"_index":1549,"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":15468,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["authenticationurl.searchparams.append('client_id",{"_index":15470,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('kc_idp_hint",{"_index":15475,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('redirect_uri",{"_index":15471,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('response_type",{"_index":15472,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('scope",{"_index":15473,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('state",{"_index":15474,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.tostring",{"_index":15476,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationvalues",{"_index":1776,"title":{"classes/AuthenticationValues.html":{}},"body":{"classes/AuthenticationValues.html":{}}}],["authguard",{"_index":13136,"title":{},"body":{"injectables/JwtAuthGuard.html":{},"controllers/LoginController.html":{}}}],["authguard('jwt",{"_index":13135,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["authheader",{"_index":16184,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.split",{"_index":16187,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.tolowercase().startswith('bearer",{"_index":16186,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["author",{"_index":22618,"title":{},"body":{"license.html":{},"properties.html":{}}}],["authoriation",{"_index":23707,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorisation",{"_index":3586,"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":{}}}],["authorisation.checkpermission",{"_index":14180,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorisationservice",{"_index":8056,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["authorizable",{"_index":19136,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["authorizable.service.ts",{"_index":3117,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:11",{"_index":5727,"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":5726,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.ts",{"_index":3089,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizable.ts:32",{"_index":3093,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:36",{"_index":3095,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:40",{"_index":3098,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizableobject",{"_index":1787,"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":{},"injectables/CopyHelperService.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":1973,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.boardnode",{"_index":10561,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.contextexternaltoolentity",{"_index":6079,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.course",{"_index":6707,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.lesson",{"_index":10557,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.school",{"_index":10555,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{}}}],["authorizablereferencetype.submission",{"_index":10559,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.task",{"_index":10550,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.user",{"_index":10553,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizableuser",{"_index":14098,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["authorization",{"_index":1820,"title":{},"body":{"classes/AuthorizationError.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/CalendarService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/CourseCopyUC.html":{},"injectables/HydraOauthUc.html":{},"modules/ImportUserModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.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":13737,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:12",{"_index":13741,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:13",{"_index":14374,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:17",{"_index":13738,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:21",{"_index":13739,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:7",{"_index":13740,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:8",{"_index":14375,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.helper",{"_index":2005,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["authorization.module",{"_index":1958,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorization.params",{"_index":16127,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authorization.params.ts",{"_index":18913,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:12",{"_index":18915,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:16",{"_index":18916,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:20",{"_index":18917,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:8",{"_index":18914,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.service",{"_index":1979,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["authorization.service.ts",{"_index":9581,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:16",{"_index":9592,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:32",{"_index":9588,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:54",{"_index":9594,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:6",{"_index":9586,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization_code",{"_index":11561,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{}}}],["authorization_operation",{"_index":1819,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["authorization_timebox_ms",{"_index":13238,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorizationapimodule",{"_index":1943,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorizationcontext",{"_index":1795,"title":{"interfaces/AuthorizationContext.html":{}},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationReferenceService.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/GroupRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ShareTokenUC.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":1801,"title":{"classes/AuthorizationContextBuilder.html":{}},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/GroupUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read",{"_index":17043,"title":{},"body":{"injectables/PseudonymUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{}}}],["authorizationcontextbuilder.read([permission.class_list",{"_index":11226,"title":{},"body":{"injectables/GroupUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_admin",{"_index":6095,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_user",{"_index":20607,"title":{},"body":{"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read([permission.course_edit",{"_index":6720,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["authorizationcontextbuilder.read([permission.filestorage_view",{"_index":23666,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([permission.group_view",{"_index":11275,"title":{},"body":{"injectables/GroupUc.html":{}}}],["authorizationcontextbuilder.read([permission.school_edit",{"_index":14124,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["authorizationcontextbuilder.read([permission.school_tool_admin",{"_index":8587,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["authorizationcontextbuilder.read([permission.submissions_view",{"_index":19245,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.read([permission.topic_create",{"_index":14178,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorizationcontextbuilder.read([permissions.course_view",{"_index":23663,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write",{"_index":14184,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.change_team_roles",{"_index":4682,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["authorizationcontextbuilder.write([permission.context_tool_admin",{"_index":6076,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["authorizationcontextbuilder.write([permission.course_create",{"_index":6705,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_create",{"_index":23665,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_edit",{"_index":23667,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_remove",{"_index":23668,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.instance",{"_index":23675,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.submissions_edit",{"_index":19242,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.write([permission.topic_view",{"_index":14307,"title":{},"body":{"injectables/LessonUC.html":{}}}],["authorizationcontextbuilder.write([permission.user_login_migration_admin",{"_index":17444,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["authorizationcontextbuilder.write(requiredpermissions",{"_index":18842,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["authorizationerror",{"_index":1815,"title":{"classes/AuthorizationError.html":{}},"body":{"classes/AuthorizationError.html":{}}}],["authorizationhelper",{"_index":1823,"title":{"injectables/AuthorizationHelper.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":1868,"title":{"interfaces/AuthorizationLoaderService.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizationloaderservicegeneric",{"_index":1876,"title":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/GroupService.html":{}}}],["authorizationmodule",{"_index":1878,"title":{"modules/AuthorizationModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.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/PseudonymApiModule.html":{},"modules/PseudonymModule.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":1907,"title":{"classes/AuthorizationParams.html":{}},"body":{"classes/AuthorizationParams.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["authorizationreferencemodule",{"_index":1923,"title":{"modules/AuthorizationReferenceModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["authorizationreferenceservice",{"_index":1928,"title":{"injectables/AuthorizationReferenceService.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ShareTokenUC.html":{}}}],["authorizations",{"_index":19651,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationservice",{"_index":1884,"title":{"injectables/AuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/GroupUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/NewsUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PermissionService.html":{},"injectables/PseudonymUc.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":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationurl",{"_index":12417,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["authorize",{"_index":16535,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizeaccess",{"_index":13240,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorized",{"_index":1821,"title":{},"body":{"classes/AuthorizationError.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizes",{"_index":22705,"title":{},"body":{"license.html":{}}}],["authorizing",{"_index":22741,"title":{},"body":{"license.html":{}}}],["authors",{"_index":22623,"title":{},"body":{"license.html":{}}}],["authparams",{"_index":11453,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["authservice",{"_index":4654,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LoginUc.html":{}}}],["authtoken",{"_index":1213,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["auto",{"_index":10677,"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":23297,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["automatic",{"_index":22674,"title":{},"body":{"license.html":{}}}],["automatically",{"_index":8890,"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":8877,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameters.includes(customparameter.type",{"_index":8915,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["avaible",{"_index":1875,"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":2461,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementOauthService.html":{},"classes/OauthLoginResponse.html":{},"injectables/OpenGraphProxyService.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":12238,"title":{},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{}}}],["availabledate",{"_index":3752,"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":19807,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["availableschoolexternaltools",{"_index":8521,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["availableschoolexternaltools.map",{"_index":8548,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["availabletools",{"_index":8538,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["availabletools.foreach((externaltool",{"_index":8591,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext",{"_index":8599,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext.foreach((tooltemplateinfo",{"_index":8602,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["avoid",{"_index":1949,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["awaited",{"_index":23367,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["awaiting_scan_status",{"_index":10033,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["awaits",{"_index":20628,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["away",{"_index":22284,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["aws",{"_index":7961,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"dependencies.html":{}}}],["axios",{"_index":2033,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{},"dependencies.html":{}}}],["axiosconfig",{"_index":11447,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosheaders",{"_index":2028,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaders(props.headers",{"_index":2042,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaderskeyvalue",{"_index":2034,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheadervalue",{"_index":2032,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosrequestconfig",{"_index":3928,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponse",{"_index":2022,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponsefactory",{"_index":2046,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseimp",{"_index":2019,"title":{"classes/AxiosResponseImp.html":{}},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseprops",{"_index":2024,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["b",{"_index":2686,"title":{},"body":{"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"injectables/GroupUc.html":{},"interfaces/IGridElement.html":{},"injectables/OpenGraphProxyService.html":{},"classes/SortHelper.html":{},"license.html":{}}}],["b.getmetadata().title",{"_index":7470,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["b.position",{"_index":3275,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["b.width",{"_index":16445,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["b[sortby",{"_index":11231,"title":{},"body":{"injectables/GroupUc.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":14528,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["backchannelsupported",{"_index":16288,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["backend",{"_index":23618,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["backendurl",{"_index":8791,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["backendurl}${filledtemplate",{"_index":8795,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["background",{"_index":10049,"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":11678,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["backup/idm/keycloak",{"_index":23567,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup/setup/accounts.json",{"_index":13292,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["backup/setup/users.json",{"_index":13293,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["bad",{"_index":12310,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["badrequest",{"_index":19653,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["badrequestexception",{"_index":2643,"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":{}}}],["badrequestexception('dashboard",{"_index":7492,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('destination",{"_index":18833,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["badrequestexception('elements",{"_index":2680,"title":{},"body":{"entities/Board.html":{}}}],["badrequestexception('language",{"_index":21628,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["badrequestexception('this",{"_index":7478,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('unknown",{"_index":21450,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["badrequestexception(`cannot",{"_index":2793,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(`invalid",{"_index":2791,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(errorobj.message",{"_index":8360,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["badrequestexception(errortype.file_name_empty",{"_index":10081,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["badrequestexception})@apiresponse({status",{"_index":11363,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["badrequestloggableexception",{"_index":23281,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["base",{"_index":2051,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BaseDORepo.html":{},"classes/BusinessError.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LtiToolRepo.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":7180,"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":14025,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["base.do.repo.ts",{"_index":2480,"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/FederalStateEntity.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/SchoolYearEntity.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UsersList.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":8039,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["base.interface.strategy",{"_index":15258,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["base.repo",{"_index":3675,"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":2165,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{}}}],["base.response.ts",{"_index":2061,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["base.strategy",{"_index":13099,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{}}}],["base64",{"_index":8798,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"dependencies.html":{}}}],["base64content",{"_index":1486,"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":8802,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["base_string",{"_index":14565,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["base_url",{"_index":17365,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["based",{"_index":2487,"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/ToolPermissionHelper.html":{},"injectables/VideoConferenceCreateUc.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":11682,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["basedo",{"_index":1872,"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":5708,"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":2445,"title":{"classes/BaseDomainObject.html":{}},"body":{"classes/BaseDomainObject.html":{}}}],["basedorepo",{"_index":2343,"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":5860,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:111",{"_index":5866,"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":9007,"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":20897,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:13",{"_index":14690,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["basedorepo:19",{"_index":5868,"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":8997,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:24",{"_index":5869,"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":18729,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:28",{"_index":18127,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:29",{"_index":20890,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:34",{"_index":5852,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:37",{"_index":21994,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:40",{"_index":21203,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:42",{"_index":5862,"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":14697,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:45",{"_index":14017,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:46",{"_index":18728,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:49",{"_index":14023,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:50",{"_index":5870,"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:55",{"_index":21202,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:56",{"_index":5855,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:60",{"_index":20896,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:63",{"_index":5863,"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:66",{"_index":14022,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:69",{"_index":14696,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:74",{"_index":18133,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:77",{"_index":5867,"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":5861,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:84",{"_index":9006,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:85",{"_index":5864,"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":9005,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["basedorepo:98",{"_index":5865,"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":2395,"title":{"classes/BaseEntity.html":{}},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYearEntity.html":{}}}],["baseentityproperties",{"_index":2396,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["baseentityproperties.includes(key",{"_index":2429,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["baseentityreference",{"_index":2463,"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/FederalStateEntity.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/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.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":2047,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalToolEntityFactory.html":{}}}],["basefactory.define(readablestreamwithfiletypeimp",{"_index":17111,"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":8048,"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":4315,"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":14769,"title":{},"body":{"modules/ManagementModule.html":{}}}],["basepath",{"_index":1462,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/ICollectionFilePath.html":{}}}],["basepermission",{"_index":23696,"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":6779,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["baserepo:14",{"_index":19158,"title":{},"body":{"injectables/SubmissionRepo.html":{},"injectables/TeamsRepo.html":{}}}],["baserepo:15",{"_index":12935,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["baserepo:17",{"_index":14216,"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":21506,"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":3669,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["baserepo:63",{"_index":6908,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["baseresponsemapper",{"_index":2547,"title":{"interfaces/BaseResponseMapper.html":{}},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["baseroute",{"_index":1648,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["baseurl",{"_index":238,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"classes/BasicToolConfig.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/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchData.html":{}}}],["baseurl.com",{"_index":7275,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["bash",{"_index":23516,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["basic",{"_index":13403,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["basictoolconfig",{"_index":2558,"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":9127,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["basictoolconfigentity",{"_index":2570,"title":{"classes/BasicToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["basictoolconfigfactory",{"_index":7272,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigfactory.build",{"_index":7320,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigparams",{"_index":2580,"title":{"classes/BasicToolConfigParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["basictoolconfigresponse",{"_index":2590,"title":{"classes/BasicToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["basictoollaunchstrategy",{"_index":2598,"title":{"injectables/BasicToolLaunchStrategy.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["batch",{"_index":7929,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["batchcounter",{"_index":7967,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["batchsize",{"_index":7919,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["bbb",{"_index":2065,"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":{},"dependencies.html":{}}}],["bbbbasemeetingconfig",{"_index":2048,"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":2089,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["bbbbaseresponse",{"_index":2059,"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":2067,"title":{"classes/BBBCreateConfig.html":{}},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbcreateconfigbuilder",{"_index":2111,"title":{"classes/BBBCreateConfigBuilder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["bbbcreateresponse",{"_index":2154,"title":{"interfaces/BBBCreateResponse.html":{}},"body":{"interfaces/BBBCreateResponse.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfig",{"_index":2166,"title":{"classes/BBBJoinConfig.html":{}},"body":{"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfigbuilder",{"_index":2188,"title":{"classes/BBBJoinConfigBuilder.html":{}},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["bbbjoinresponse",{"_index":2205,"title":{"interfaces/BBBJoinResponse.html":{}},"body":{"interfaces/BBBJoinResponse.html":{}}}],["bbbmeetinginforesponse",{"_index":2211,"title":{"interfaces/BBBMeetingInfoResponse.html":{}},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbresp",{"_index":2309,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.message",{"_index":2315,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.returncode",{"_index":2312,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresponse",{"_index":2237,"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":2134,"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":{}}}],["bbbrole.moderator",{"_index":2149,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbrole.viewer",{"_index":2151,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbservice",{"_index":2239,"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":2318,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:end",{"_index":2324,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:getmeetinginfo",{"_index":2326,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbsettings",{"_index":2252,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbstatus",{"_index":2064,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/BBBService.html":{}}}],["bbbstatus.success",{"_index":2313,"title":{},"body":{"injectables/BBBService.html":{}}}],["bc",{"_index":1966,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["bcc",{"_index":1501,"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":1068,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LocalStrategy.html":{}}}],["bcrypt.compare(comparepassword",{"_index":1104,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcrypt.compare(enteredpassword",{"_index":14405,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["bcrypt.hash(password",{"_index":1108,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcryptjs",{"_index":1069,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/LocalStrategy.html":{},"dependencies.html":{}}}],["bearer",{"_index":1633,"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":22326,"title":{},"body":{"license.html":{}}}],["becoming",{"_index":23633,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["beetween",{"_index":4279,"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":23416,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeall(async",{"_index":23394,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeeach",{"_index":23417,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforehand",{"_index":22985,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["beginning",{"_index":22240,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["behalf",{"_index":22431,"title":{},"body":{"license.html":{}}}],["behaves",{"_index":23282,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["behavior",{"_index":947,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["behaviour",{"_index":6434,"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":20247,"title":{},"body":{"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["being",{"_index":2504,"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":22735,"title":{},"body":{"license.html":{}}}],["belong",{"_index":4120,"title":{},"body":{"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["belongs",{"_index":5503,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["below",{"_index":22437,"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":22310,"title":{},"body":{"license.html":{}}}],["ber",{"_index":4858,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["berechtigungen",{"_index":4841,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["beside",{"_index":22967,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["best",{"_index":22833,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["better",{"_index":22849,"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":{}}}],["bettermarks",{"_index":9632,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["between",{"_index":768,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TaskCopyUC.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":23083,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["beyond",{"_index":22504,"title":{},"body":{"license.html":{}}}],["bezeichnung",{"_index":17940,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["big",{"_index":23072,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bigbluebutton",{"_index":21763,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["bigbluebutton/api/${callname",{"_index":2339,"title":{},"body":{"injectables/BBBService.html":{}}}],["binary",{"_index":6236,"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":9977,"title":{},"body":{"classes/FileParams.html":{}}}],["bind",{"_index":13790,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["binding",{"_index":13837,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["bis",{"_index":17955,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["blackbox",{"_index":23305,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["block",{"_index":23339,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["blocked",{"_index":10029,"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":23308,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["blti",{"_index":5185,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_bundle",{"_index":5192,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_icon",{"_index":5194,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["bn",{"_index":3283,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["bn.type",{"_index":3287,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["board",{"_index":2627,"title":{"entities/Board.html":{}},"body":{"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":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardUrlParams.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"controllers/GroupController.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":{},"entities/LessonEntity.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.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":{},"modules/ToolApiModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["board.'})@apiresponse({status",{"_index":2901,"title":{},"body":{"controllers/BoardController.html":{}}}],["board.children.map((column",{"_index":3711,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.createdat",{"_index":3717,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.displaycolor",{"_index":17605,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.do",{"_index":2844,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["board.do.factory.ts",{"_index":4765,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.factory.ts:9",{"_index":4767,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.ts",{"_index":4720,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["board.do.ts:10",{"_index":4725,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:14",{"_index":4727,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:18",{"_index":4729,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:6",{"_index":4724,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.elements.foreach((element",{"_index":17607,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.getbytargetid(elementid",{"_index":17765,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.id",{"_index":3549,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{}}}],["board.isarchived",{"_index":17606,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.module",{"_index":2726,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["board.references.getitems",{"_index":3684,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.references.init",{"_index":3683,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.reorderelements(orderedlist",{"_index":17768,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.response",{"_index":3445,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.response.ts",{"_index":2734,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:15",{"_index":2740,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:19",{"_index":2743,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:22",{"_index":2741,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:25",{"_index":2739,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:28",{"_index":2744,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:31",{"_index":2738,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:4",{"_index":2737,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.roomid",{"_index":17604,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.service.ts",{"_index":4783,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:130",{"_index":4791,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:18",{"_index":4787,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:25",{"_index":4798,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:31",{"_index":4799,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:37",{"_index":4801,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:42",{"_index":4789,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:57",{"_index":4796,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:61",{"_index":4804,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:66",{"_index":4793,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.syncboardelementreferences(boardelementtargets",{"_index":17737,"title":{},"body":{"injectables/RoomsService.html":{}}}],["board.title",{"_index":3710,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardService.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.types",{"_index":8095,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["board.updatedat",{"_index":3716,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board/board",{"_index":2733,"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":2629,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:29",{"_index":2635,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:32",{"_index":2639,"title":{},"body":{"entities/Board.html":{}}}],["board/board.response.ts",{"_index":18870,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:19",{"_index":18875,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:25",{"_index":18876,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:30",{"_index":18872,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:36",{"_index":18873,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:41",{"_index":18874,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:6",{"_index":18871,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/boardelement.entity.ts",{"_index":3425,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:26",{"_index":3428,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:30",{"_index":3426,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/column",{"_index":4872,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{}}}],["board/lesson",{"_index":14134,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["board/task",{"_index":19539,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardapimodule",{"_index":2711,"title":{"modules/BoardApiModule.html":{}},"body":{"modules/BoardApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["boardauthorizable",{"_index":19125,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardauthorizable.users.filter((user",{"_index":19127,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardcolumnboardresponse",{"_index":2731,"title":{"classes/BoardColumnBoardResponse.html":{}},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardcomposite",{"_index":2749,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcomposite:13",{"_index":8637,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:14",{"_index":4712,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:17",{"_index":8635,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:19",{"_index":3945,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:21",{"_index":8636,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{}}}],["boardcomposite:22",{"_index":4723,"title":{},"body":{"classes/ColumnBoard.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:23",{"_index":4711,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:25",{"_index":9831,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:26",{"_index":3944,"title":{},"body":{"classes/Card.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:27",{"_index":4721,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:28",{"_index":19039,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:29",{"_index":9832,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:30",{"_index":17461,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:31",{"_index":4722,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:32",{"_index":19040,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:35",{"_index":3947,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:36",{"_index":3942,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:37",{"_index":14317,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:39",{"_index":3946,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:40",{"_index":3943,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:41",{"_index":14315,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:45",{"_index":14316,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcompositeprops",{"_index":2804,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitor",{"_index":2760,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitorasync",{"_index":2764,"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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcontext",{"_index":2944,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse",{"_index":2879,"title":{"classes/BoardContextResponse.html":{}},"body":{"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{}}}],["boardcontextresponse(boardcontext",{"_index":2946,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse})@apiresponse({status",{"_index":2914,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontroller",{"_index":2720,"title":{"controllers/BoardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{}}}],["boardcopy",{"_index":3020,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyparams",{"_index":2977,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyservice",{"_index":2958,"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/CardUc.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddo.id",{"_index":3134,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boarddoauthorizable",{"_index":3088,"title":{"classes/BoardDoAuthorizable.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizable.requireduserrole",{"_index":3397,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddoauthorizable.users.find",{"_index":3396,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find((u",{"_index":19133,"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/CardUc.html":{},"injectables/ElementUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["boarddobuilder",{"_index":3155,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boarddobuilderimpl",{"_index":3196,"title":{"classes/BoardDoBuilderImpl.html":{}},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(children).builddomainobject(boardnode",{"_index":3358,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(descendants).builddomainobject(boardnode",{"_index":3349,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddocopyparams",{"_index":3296,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["boarddocopyservice",{"_index":3293,"title":{"injectables/BoardDoCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.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/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["boarddorule",{"_index":1886,"title":{"injectables/BoardDoRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/BoardDoRule.html":{},"injectables/RuleManager.html":{}}}],["boarddos",{"_index":4162,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddos.map((boarddo",{"_index":4185,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddoservice",{"_index":3402,"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":2651,"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":{},"injectables/ToolPermissionHelper.html":{}}}],["boardelement.entity",{"_index":2653,"title":{},"body":{"entities/Board.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts",{"_index":14135,"title":{},"body":{"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts:13",{"_index":14136,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["boardelement.entity.ts:16",{"_index":19540,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardelement.ts",{"_index":4986,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelement.ts:13",{"_index":4988,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelementprops",{"_index":3431,"title":{},"body":{"entities/BoardElement.html":{}}}],["boardelementreference",{"_index":2652,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{}}}],["boardelementresponse",{"_index":3435,"title":{"classes/BoardElementResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["boardelements",{"_index":2982,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelements.map((element",{"_index":3032,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelementservice",{"_index":20616,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardelementtarget",{"_index":2709,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets",{"_index":17736,"title":{},"body":{"injectables/RoomsService.html":{}}}],["boardelementtargets.filter(isnotcontained).map(maptoboardelement",{"_index":2705,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets.includes(ref.target",{"_index":2695,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtype",{"_index":3001,"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":3044,"title":{},"body":{"injectables/BoardCopyService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.lesson",{"_index":3041,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.task",{"_index":3037,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardexternalreference",{"_index":3329,"title":{"interfaces/BoardExternalReference.html":{}},"body":{"injectables/BoardDoRepo.html":{},"interfaces/BoardExternalReference.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{}}}],["boardexternalreferencetype",{"_index":2887,"title":{},"body":{"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/RoomsService.html":{}}}],["boardexternalreferencetype.course",{"_index":3066,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/RoomsService.html":{}}}],["boardid",{"_index":3499,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/BoardUrlParams.html":{},"injectables/ColumnBoardService.html":{}}}],["boardids",{"_index":4802,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["boardlessonresponse",{"_index":3439,"title":{"classes/BoardLessonResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardmanagementconsole",{"_index":3476,"title":{"classes/BoardManagementConsole.html":{}},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["boardmanagementuc",{"_index":3482,"title":{"injectables/BoardManagementUc.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ManagementModule.html":{}}}],["boardmodule",{"_index":1956,"title":{"modules/BoardModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/LearnroomModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["boardnode",{"_index":3143,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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.alternativetext",{"_index":3254,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.ancestorids",{"_index":3376,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.caption",{"_index":3252,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.completed",{"_index":3265,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.context",{"_index":3240,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.contextexternaltool?.id",{"_index":3268,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.createdat",{"_index":3238,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.duedate",{"_index":3263,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.entity",{"_index":4061,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnode.foreach((bn",{"_index":3290,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.height",{"_index":3249,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.id",{"_index":3236,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnode.imageurl",{"_index":3257,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.inputformat",{"_index":3260,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.joinpath(props.parent.path",{"_index":3604,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.joinpath(this.path",{"_index":3616,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.parentid",{"_index":3373,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.text",{"_index":3258,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.title",{"_index":3237,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.updatedat",{"_index":3239,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.url",{"_index":3255,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.usedobuilder(this",{"_index":3231,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.userid",{"_index":3266,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnodeauthorizableservice",{"_index":12126,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["boardnodeprops",{"_index":3598,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnoderepo",{"_index":3315,"title":{"injectables/BoardNodeRepo.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnodes",{"_index":3353,"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":3356,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.map((o",{"_index":3370,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.reduce((map",{"_index":3361,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodetype",{"_index":3222,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnodetype.card",{"_index":3241,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["boardnodetype.column",{"_index":3233,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{}}}],["boardnodetype.column_board",{"_index":4775,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["boardnodetype.external_tool",{"_index":3247,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["boardnodetype.file_element",{"_index":3243,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["boardnodetype.link_element",{"_index":3244,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["boardnodetype.rich_text_element",{"_index":3245,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["boardnodetype.submission_container_element",{"_index":3246,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["boardnodetype.submission_item",{"_index":3261,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardprops",{"_index":2661,"title":{},"body":{"entities/Board.html":{}}}],["boardrepo",{"_index":2970,"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":2931,"title":{"classes/BoardResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper",{"_index":2935,"title":{"classes/BoardResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper.maptoresponse(board",{"_index":2942,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardresponse})@apiresponse({status",{"_index":2919,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardroles",{"_index":3099,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"interfaces/UserBoardRoles.html":{}}}],["boardroles.editor",{"_index":3148,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boardroles.reader",{"_index":3153,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boards",{"_index":2892,"title":{},"body":{"controllers/BoardController.html":{},"injectables/ColumnBoardService.html":{}}}],["boardservice",{"_index":20617,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardstatus",{"_index":3000,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["boardstatus.elements",{"_index":3078,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardsubmissioncontroller",{"_index":2724,"title":{"controllers/BoardSubmissionController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["boardtask",{"_index":17613,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.availabledate",{"_index":17628,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.course",{"_index":17624,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.createdat",{"_index":17621,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.description",{"_index":17634,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.duedate",{"_index":17630,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.getparentdata",{"_index":17615,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.id",{"_index":17619,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.name",{"_index":17620,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.updatedat",{"_index":17622,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc",{"_index":17614,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc.color",{"_index":17632,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskresponse",{"_index":3438,"title":{"classes/BoardTaskResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatus",{"_index":17616,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper",{"_index":3767,"title":{"classes/BoardTaskStatusMapper.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper.maptoresponse(status",{"_index":17617,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusresponse",{"_index":3763,"title":{"classes/BoardTaskStatusResponse.html":{}},"body":{"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{}}}],["boardtaskstatusresponse(status",{"_index":3773,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["boarduc",{"_index":2715,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["boardurlparams",{"_index":2899,"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":{},"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":21116,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.create",{"_index":20101,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.delete",{"_index":20102,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.destinationcourseid",{"_index":18666,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.expiresindays",{"_index":18655,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.mandatory",{"_index":21110,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.newname",{"_index":18665,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parentid",{"_index":18653,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parenttype",{"_index":18652,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.read",{"_index":20103,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.redirecturi",{"_index":21117,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.schoolexclusive",{"_index":18654,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.session",{"_index":15840,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["body.share",{"_index":20104,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.systemid",{"_index":21115,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.write",{"_index":20105,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["bodyparams",{"_index":2923,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.completed",{"_index":3750,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.data.content",{"_index":8221,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.height",{"_index":4031,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.title",{"_index":2951,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["bodyparams.toboardid",{"_index":4939,"title":{},"body":{"controllers/ColumnController.html":{}}}],["bodyparams.tocardid",{"_index":8217,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.tocolumnid",{"_index":4027,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.toposition",{"_index":4028,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyproperties",{"_index":2617,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["bom",{"_index":22184,"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":{},"interfaces/AntivirusModuleOptions.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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRule.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IAccountConfig.html":{},"interfaces/ICleanOptions.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/IFileStorageConfig.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/IRetryOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.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":{},"interfaces/OauthCurrentUser.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":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.html":{},"classes/PrometheusMetricsConfig.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/PseudonymScope.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":{},"interfaces/ScanResult.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"interfaces/UserData.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"classes/UsersList.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":{},"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":11651,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["bootstrap",{"_index":431,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bootstrap.boot([process.argv0",{"_index":20231,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts",{"_index":20213,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts:8",{"_index":20215,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrapconsole",{"_index":20222,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstraps",{"_index":23392,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["both",{"_index":22768,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bound",{"_index":14365,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["box",{"_index":23388,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["branch",{"_index":1128,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["break",{"_index":5209,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"injectables/ContentElementFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{}}}],["breaking",{"_index":23624,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["breakout",{"_index":2215,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["breakoutrooms",{"_index":2216,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["bring",{"_index":6985,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["broadcast",{"_index":1172,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["broken",{"_index":23080,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["broker",{"_index":13380,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["brokerconfig",{"_index":19492,"title":{},"body":{"injectables/SystemService.html":{}}}],["brokering",{"_index":23523,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["browse",{"_index":22856,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application.html":{}}}],["browser",{"_index":22854,"title":{},"body":{"modules.html":{}}}],["brute",{"_index":73,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{}}}],["bruteforceerror",{"_index":1740,"title":{"classes/BruteForceError.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["bruteforceerror(timetowait",{"_index":1768,"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/PseudonymScope.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"dependencies.html":{}}}],["bson/ejson",{"_index":3816,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["bsonconverter",{"_index":3804,"title":{"injectables/BsonConverter.html":{}},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["bsondocuments",{"_index":3815,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["btw",{"_index":2477,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bucket",{"_index":6270,"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":23753,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buffer",{"_index":6996,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"classes/JwtTestFactory.html":{}}}],["buffer.from(externaltool.logo",{"_index":8797,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(manifest",{"_index":5161,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(newresource.content",{"_index":5142,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(resource.content",{"_index":5147,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(response.data",{"_index":8809,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(tool.logo",{"_index":8818,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.length",{"_index":8799,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.tostring('base64",{"_index":8811,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["bufferencoding",{"_index":10321,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["bug",{"_index":12556,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["bugs",{"_index":22862,"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":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.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":10234,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["build(id",{"_index":6260,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["build(name",{"_index":9814,"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(props",{"_index":18418,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["build(requiredpermissions",{"_index":1806,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["build(schoolid",{"_index":9971,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["build(type",{"_index":5555,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["build(userid",{"_index":6281,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["buildaccount",{"_index":20810,"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":20813,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildcard",{"_index":3158,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcard(boardnode",{"_index":3167,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren",{"_index":3201,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren(boardnode",{"_index":3209,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn",{"_index":3159,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn(boardnode",{"_index":3170,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard",{"_index":3160,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard(boardnode",{"_index":3173,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcopyentitydict",{"_index":6348,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["buildcopyentitydict(status",{"_index":6351,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["builddomainobject",{"_index":3202,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddomainobject(boardnode",{"_index":3213,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddtowithelements",{"_index":8058,"title":{},"body":{"classes/DtoCreator.html":{}}}],["builddtowithelements(elements",{"_index":8072,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["builder",{"_index":2114,"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":5047,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.build",{"_index":5042,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.buildcard(this",{"_index":4065,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["builder.buildcolumn(this",{"_index":4947,"title":{},"body":{"entities/ColumnNode.html":{}}}],["builder.buildcolumnboard(this",{"_index":4782,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["builder.buildexternaltoolelement(this",{"_index":8665,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["builder.buildfileelement(this",{"_index":9861,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["builder.buildlinkelement(this",{"_index":14347,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["builder.buildrichtextelement(this",{"_index":17489,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["builder.buildsubmissioncontainerelement(this",{"_index":18987,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["builder.buildsubmissionitem(this",{"_index":19067,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["builder.ts",{"_index":5099,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:24",{"_index":11862,"title":{},"body":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:28",{"_index":11859,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:30",{"_index":11860,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:32",{"_index":11861,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:35",{"_index":5268,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:42",{"_index":5271,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:46",{"_index":5273,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:52",{"_index":5269,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:63",{"_index":5110,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:65",{"_index":5112,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:67",{"_index":5109,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:69",{"_index":5108,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:73",{"_index":5115,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:79",{"_index":5118,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:88",{"_index":5119,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder:2",{"_index":2120,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["builder:26",{"_index":2121,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["builder:8",{"_index":2199,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["buildexternaltool",{"_index":5550,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildexternaltoolelement",{"_index":3161,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildexternaltoolelement(boardnode",{"_index":3176,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfile",{"_index":5551,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/PreviewGeneratorBuilder.html":{}}}],["buildfile(preview",{"_index":16615,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["buildfileelement",{"_index":3162,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfileelement(boardnode",{"_index":3179,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfromaxiosresponse",{"_index":9812,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromaxiosresponse(name",{"_index":9816,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest",{"_index":9813,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest(fileinfo",{"_index":9818,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildgroupsclaim",{"_index":12622,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildgroupsclaim(teams",{"_index":12628,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildlink",{"_index":5552,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildlinkelement",{"_index":3163,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildlinkelement(boardnode",{"_index":3182,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.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":7263,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["buildlistwitheachtype(params",{"_index":7264,"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":8758,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildlogourl(template",{"_index":8765,"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":{}}}],["buildparams",{"_index":16586,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildparams(filerecord",{"_index":16588,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload",{"_index":16587,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload(params",{"_index":16590,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildrichtext",{"_index":5553,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildrichtextelement",{"_index":3164,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildrichtextelement(boardnode",{"_index":3185,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["builds",{"_index":2276,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["buildscope",{"_index":5840,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildscope(query",{"_index":5845,"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":20815,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildsubmissioncontainer",{"_index":5554,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildsubmissioncontainerelement",{"_index":3165,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissioncontainerelement(boardnode",{"_index":3188,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem",{"_index":3166,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem(boardnode",{"_index":3191,"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":20817,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildtokenrequestpayload",{"_index":15386,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtokenrequestpayload(code",{"_index":15401,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtoollaunchdatafromconcreteconfig",{"_index":117,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromconcreteconfig(userid",{"_index":153,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool",{"_index":118,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool(externaltool",{"_index":157,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools",{"_index":119,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools(data",{"_index":161,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload",{"_index":120,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload(url",{"_index":164,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl",{"_index":121,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl(toollaunchdatado",{"_index":168,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.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":13405,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["bundle",{"_index":22868,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["busboy",{"_index":9821,"title":{},"body":{"classes/FileDtoBuilder.html":{},"dependencies.html":{}}}],["business",{"_index":3831,"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":1411,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ForbiddenOperationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/ValidationError.html":{}}}],["businesserror",{"_index":1395,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:12",{"_index":1402,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:15",{"_index":1407,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:18",{"_index":1406,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:21",{"_index":1405,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:25",{"_index":1404,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:47",{"_index":1408,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businessexception",{"_index":23265,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["businesslogic",{"_index":23126,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["button",{"_index":16496,"title":{},"body":{"classes/PageContentResponse.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["byavailable",{"_index":19878,"title":{},"body":{"classes/TaskScope.html":{}}}],["byavailable(availabledate",{"_index":19890,"title":{},"body":{"classes/TaskScope.html":{}}}],["byclasses",{"_index":12984,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclasses(classes",{"_index":12993,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclientid",{"_index":9254,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(clientid",{"_index":9257,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(query.clientid",{"_index":9017,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["bycontextid",{"_index":5994,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontextid(contextid",{"_index":6004,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype",{"_index":5995,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype(contexttype",{"_index":6006,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycourseids",{"_index":14269,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycourseids(courseids",{"_index":14270,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycreator",{"_index":15126,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreator(creatorid",{"_index":15130,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreatorid",{"_index":19879,"title":{},"body":{"classes/TaskScope.html":{}}}],["bycreatorid(creatorid",{"_index":19892,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft",{"_index":19880,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft(isdraft",{"_index":19893,"title":{},"body":{"classes/TaskScope.html":{}}}],["byexpires",{"_index":10191,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["byfilerecordid",{"_index":10209,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfilerecordid(filerecordid",{"_index":10214,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfinished",{"_index":19881,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfinished(userid",{"_index":19895,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfirstname",{"_index":12985,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byfirstname(firstname",{"_index":12995,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byhidden",{"_index":9255,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(ishidden",{"_index":9259,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(query.ishidden",{"_index":9018,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byid",{"_index":5996,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byid(id",{"_index":6008,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bylastname",{"_index":12986,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylastname(lastname",{"_index":12997,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylessonids",{"_index":19882,"title":{},"body":{"classes/TaskScope.html":{}}}],["bylessonids(lessonids",{"_index":19896,"title":{},"body":{"classes/TaskScope.html":{}}}],["byloginname",{"_index":12987,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byloginname(loginname",{"_index":12999,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymarkedfordelete",{"_index":10210,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymarkedfordelete(ismarked",{"_index":10216,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymatches",{"_index":12988,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymatches(matches",{"_index":13002,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byname",{"_index":9256,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(name",{"_index":9261,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(query.name",{"_index":9016,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byonlycreatorid",{"_index":19883,"title":{},"body":{"classes/TaskScope.html":{}}}],["byonlycreatorid(creatorid",{"_index":19898,"title":{},"body":{"classes/TaskScope.html":{}}}],["byparentid",{"_index":10211,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byparentid(parentid",{"_index":10219,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bypassdocumentvalidation",{"_index":7897,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["bypasstest",{"_index":1325,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["bypseudonym",{"_index":16968,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(pseudonym",{"_index":16971,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(query.pseudonym",{"_index":8986,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bypublished",{"_index":15127,"title":{},"body":{"classes/NewsScope.html":{}}}],["byrole",{"_index":12989,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byrole(rolename",{"_index":13004,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool",{"_index":12990,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool(school",{"_index":13006,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschoolid",{"_index":10212,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschoolid(query.schoolid",{"_index":20906,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["byschoolid(schoolid",{"_index":10221,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschooltoolid",{"_index":5997,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byschooltoolid(schooltoolid",{"_index":6010,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bysecuritycheckrequesttoken",{"_index":10213,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bysecuritycheckrequesttoken(token",{"_index":10223,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bytargets",{"_index":15128,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytargets(targets",{"_index":15132,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytes",{"_index":10736,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["bytesrange",{"_index":10730,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["bytoolid",{"_index":16969,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["bytoolid(query.toolid",{"_index":8987,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bytoolid(toolid",{"_index":16973,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["byunpublished",{"_index":15129,"title":{},"body":{"classes/NewsScope.html":{}}}],["byuserid",{"_index":16970,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuserid(query.userid",{"_index":8988,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["byuserid(userid",{"_index":16975,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuseridquery",{"_index":19149,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byuseridquery(userid",{"_index":19152,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byusermatch",{"_index":12991,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byusermatch(user",{"_index":13008,"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":19973,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished",{"_index":19992,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished()).map((c",{"_index":19972,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.user",{"_index":14296,"title":{},"body":{"injectables/LessonService.html":{}}}],["cache",{"_index":3872,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/OauthAdapterService.html":{},"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{},"dependencies.html":{}}}],["cache_manager",{"_index":13201,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachedstate",{"_index":16205,"title":{},"body":{"injectables/OauthUc.html":{}}}],["cacheexpiration",{"_index":17551,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["cachemanager",{"_index":13191,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachemodule",{"_index":3869,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemodule.registerasync",{"_index":3876,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemoduleoptions",{"_index":3870,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cacheservice",{"_index":3854,"title":{"injectables/CacheService.html":{}},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cacheservice.getstoretype",{"_index":3877,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachestoretype",{"_index":3858,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachestoretype.memory",{"_index":3864,"title":{},"body":{"injectables/CacheService.html":{}}}],["cachestoretype.redis",{"_index":3863,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachewrappermodule",{"_index":1545,"title":{"modules/CacheWrapperModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CacheWrapperModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["caf",{"_index":13023,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["cafe",{"_index":13025,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["calculatenumberofsubmitters(submissions",{"_index":12514,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["calculations",{"_index":23106,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["calendareventdto",{"_index":3886,"title":{"classes/CalendarEventDto.html":{}},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["calendarmapper",{"_index":3896,"title":{"injectables/CalendarMapper.html":{}},"body":{"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarmodule",{"_index":3911,"title":{"modules/CalendarModule.html":{}},"body":{"modules/CalendarModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["calendarservice",{"_index":3915,"title":{"injectables/CalendarService.html":{}},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarservice:findevent",{"_index":3939,"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/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":2277,"title":{},"body":{"injectables/BBBService.html":{}}}],["callback",{"_index":23370,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["callback_uri",{"_index":1382,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["callbackuri",{"_index":1376,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["calld",{"_index":23415,"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":{},"injectables/FeathersRosterService.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":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":8160,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["calling",{"_index":16560,"title":{},"body":{"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callkcadminclient",{"_index":13241,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["callname",{"_index":2269,"title":{},"body":{"injectables/BBBService.html":{}}}],["calls",{"_index":16796,"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":23202,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["can't",{"_index":1585,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cancel",{"_index":16495,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["cancelbuttonurl",{"_index":16461,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["caninline",{"_index":5167,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["canmap",{"_index":2550,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["canmap(element",{"_index":2551,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["cant",{"_index":23138,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["capabilities",{"_index":22996,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["caption",{"_index":3251,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["caption(value",{"_index":9840,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["card",{"_index":2818,"title":{"classes/Card.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.'})@apiextramodels(externaltoolelementresponse",{"_index":3976,"title":{},"body":{"controllers/CardController.html":{}}}],["card.'})@apiresponse({status",{"_index":3986,"title":{},"body":{"controllers/CardController.html":{}}}],["card.addchild(text1",{"_index":4834,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text2",{"_index":4850,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text3",{"_index":4862,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text4",{"_index":4869,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.body.params",{"_index":4934,"title":{},"body":{"controllers/ColumnController.html":{}}}],["card.body.params.ts",{"_index":6978,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:10",{"_index":14916,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:13",{"_index":6981,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["card.body.params.ts:18",{"_index":14918,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.children.map((element",{"_index":4086,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.constructor.name",{"_index":4962,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["card.createdat",{"_index":4088,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.do",{"_index":2843,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["card.height",{"_index":4085,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.id",{"_index":4083,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.response",{"_index":4057,"title":{},"body":{"classes/CardListResponse.html":{}}}],["card.title",{"_index":4084,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.updatedat",{"_index":4087,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["cardcontroller",{"_index":2722,"title":{"controllers/CardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{}}}],["cardid",{"_index":4104,"title":{},"body":{"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardidparams",{"_index":3990,"title":{},"body":{"controllers/CardController.html":{}}}],["cardidparams.ids",{"_index":4020,"title":{},"body":{"controllers/CardController.html":{}}}],["cardids",{"_index":4018,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardidsparams",{"_index":3991,"title":{"classes/CardIdsParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardIdsParams.html":{}}}],["cardlistresponse",{"_index":4010,"title":{"classes/CardListResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardListResponse.html":{}}}],["cardlistresponse})@apiresponse({status",{"_index":3993,"title":{},"body":{"controllers/CardController.html":{}}}],["cardnode",{"_index":3168,"title":{"entities/CardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["cardnodefactory",{"_index":3528,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodefactory.build",{"_index":3552,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodeprops",{"_index":4062,"title":{"interfaces/CardNodeProps.html":{}},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["cardprops",{"_index":3964,"title":{"interfaces/CardProps.html":{}},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["cardresponse",{"_index":4055,"title":{"classes/CardResponse.html":{}},"body":{"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper",{"_index":4015,"title":{"classes/CardResponseMapper.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper.maptoresponse(card",{"_index":4023,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["cardresponses",{"_index":4022,"title":{},"body":{"controllers/CardController.html":{}}}],["cardresponse})@apiresponse({status",{"_index":4918,"title":{},"body":{"controllers/ColumnController.html":{}}}],["cards",{"_index":3242,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cards.map((card",{"_index":3545,"title":{},"body":{"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{}}}],["cards.some((card",{"_index":4118,"title":{},"body":{"injectables/CardService.html":{}}}],["cardservice",{"_index":3569,"title":{"injectables/CardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardskeletonresponse",{"_index":4131,"title":{"classes/CardSkeletonResponse.html":{}},"body":{"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardspercolumn",{"_index":3538,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardspercolumn.flat",{"_index":3542,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["carduc",{"_index":2716,"title":{"injectables/CardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["cardurlparams",{"_index":3974,"title":{"classes/CardUrlParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardUrlParams.html":{}}}],["care",{"_index":23174,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["careful",{"_index":23490,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["carefully",{"_index":23438,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cares",{"_index":23268,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["carry",{"_index":22484,"title":{},"body":{"license.html":{}}}],["cartridge",{"_index":4993,"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":11852,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{}}}],["cartridge/common",{"_index":5098,"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":5033,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["cartridge_basiclti_link",{"_index":5176,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_bundle",{"_index":5190,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_icon",{"_index":5193,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cascading",{"_index":5340,"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":{},"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":5397,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["cases",{"_index":1951,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/TaskFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cast",{"_index":1638,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["catch",{"_index":1369,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.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/TaskCopyUC.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["catch((error",{"_index":2316,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["catch(error",{"_index":10803,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["catcherror",{"_index":1158,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["catcherror((e",{"_index":1274,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["catcherror((err",{"_index":17400,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["cause",{"_index":3837,"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":8398,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["caution",{"_index":13888,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["cc",{"_index":1500,"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":22646,"title":{},"body":{"license.html":{}}}],["ceating",{"_index":11932,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["centralldap",{"_index":18291,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["certain",{"_index":22609,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cessation",{"_index":22655,"title":{},"body":{"license.html":{}}}],["ch.id",{"_index":2798,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["chaining",{"_index":23276,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["chains",{"_index":22891,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["chalk",{"_index":22100,"title":{},"body":{"dependencies.html":{}}}],["challenge",{"_index":4194,"title":{},"body":{"classes/ChallengeParams.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.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":4192,"title":{"classes/ChallengeParams.html":{}},"body":{"classes/ChallengeParams.html":{},"controllers/OauthProviderController.html":{}}}],["change",{"_index":5058,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.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":10340,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"additional-documentation/nestjs-application.html":{}}}],["changefinishedforuser",{"_index":19941,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changefinishedforuser(userid",{"_index":19947,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changelanguage",{"_index":20827,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguage(params",{"_index":20828,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguageparams",{"_index":4196,"title":{"classes/ChangeLanguageParams.html":{}},"body":{"classes/ChangeLanguageParams.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["changes",{"_index":13838,"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":21064,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["channel",{"_index":17088,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["chapter",{"_index":2535,"title":{},"body":{"injectables/BaseRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["character",{"_index":937,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["characterized",{"_index":22586,"title":{},"body":{"license.html":{}}}],["characters",{"_index":10297,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/MongoPatterns.html":{}}}],["charge",{"_index":22293,"title":{},"body":{"license.html":{}}}],["chat",{"_index":1294,"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":17502,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.module.ts:7",{"_index":17503,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service",{"_index":17505,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service.ts",{"_index":1153,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["chat.service.ts:42",{"_index":17500,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:44",{"_index":17499,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:47",{"_index":17498,"title":{},"body":{"classes/RocketChatError.html":{}}}],["check",{"_index":1129,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/GuardAgainst.html":{},"interfaces/ICleanOptions.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":9915,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["check.entity.ts",{"_index":10238,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["check.entity.ts:14",{"_index":10246,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:17",{"_index":10242,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:20",{"_index":10243,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:23",{"_index":10241,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:26",{"_index":10240,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.service.ts",{"_index":14815,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:15",{"_index":14820,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:8",{"_index":14818,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["checkallpermissions",{"_index":1986,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkallpermissions(user",{"_index":1992,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkandaddprefix",{"_index":20189,"title":{},"body":{"classes/TestApiClient.html":{}}}],["checkandaddprefix(inputpath",{"_index":1683,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["checkavaiblelanguages",{"_index":21631,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavaiblelanguages(settedlanguage",{"_index":21633,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavailablelanguages",{"_index":21574,"title":{},"body":{"injectables/UserService.html":{}}}],["checkavailablelanguages(language",{"_index":21580,"title":{},"body":{"injectables/UserService.html":{}}}],["checkbrutforce",{"_index":1707,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkbrutforce(account",{"_index":1716,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkcontextreadpermission",{"_index":18788,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcontextreadpermission(userid",{"_index":18794,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission",{"_index":18789,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission(userid",{"_index":18796,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcredentials",{"_index":13795,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["checkcredentials(account",{"_index":13800,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkcredentials(enteredpassword",{"_index":14381,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["checkcustomparameterentries",{"_index":5364,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkcustomparameterentries(loadedexternaltool",{"_index":5372,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkdestinationcourseauthorisation",{"_index":19628,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorisation(authorizableuser",{"_index":19635,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorization",{"_index":14151,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationcourseauthorization(user",{"_index":14155,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationlessonauthorization",{"_index":19629,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationlessonauthorization(authorizableuser",{"_index":19637,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkduplicateincontext",{"_index":6097,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checkduplicateincontext(contextexternaltool",{"_index":6102,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checked",{"_index":1586,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/HydraSsoService.html":{}}}],["checkentitypermissions",{"_index":9582,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkentitypermissions(userid",{"_index":9587,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkerror",{"_index":10614,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkerror(response",{"_index":10623,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkexpired",{"_index":18756,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkexpired(sharetoken",{"_index":18763,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkfeatureenabled",{"_index":6698,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["checkfeatureenabled(parenttype",{"_index":18798,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkforduplicateparameters",{"_index":5365,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkforduplicateparameters(validatabletool",{"_index":5376,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkifpreviewpossible",{"_index":16694,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checkifpreviewpossible(filerecord",{"_index":16700,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checking",{"_index":10859,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkinputisvalid",{"_index":23748,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["checkldapcredentials",{"_index":13763,"title":{},"body":{"injectables/LdapService.html":{}}}],["checkldapcredentials(system",{"_index":13765,"title":{},"body":{"injectables/LdapService.html":{}}}],["checklist",{"_index":22245,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checklistscontainingequalentities(first",{"_index":2683,"title":{},"body":{"entities/Board.html":{}}}],["checkofficialschoolnumbersmatch",{"_index":18312,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkofficialschoolnumbersmatch(schooldo",{"_index":18321,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkoneofpermissions",{"_index":1987,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoneofpermissions(user",{"_index":1994,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoptionalparameter",{"_index":5366,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoptionalparameter(param",{"_index":5378,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoriginallessonauthorization",{"_index":14152,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginallessonauthorization(user",{"_index":14158,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginaltaskauthorization",{"_index":19630,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkoriginaltaskauthorization(authorizableuser",{"_index":19640,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkout",{"_index":22249,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checkparameterregex",{"_index":5367,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparameterregex(foundentry",{"_index":5381,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype",{"_index":5368,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype(foundentry",{"_index":5383,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparentwritepermission",{"_index":18790,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkparentwritepermission(userid",{"_index":18800,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkpermission",{"_index":1988,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/GroupUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkpermission(user",{"_index":1996,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermission(userid",{"_index":4154,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/GroupUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["checkpermissionbyreferences",{"_index":1968,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpermissionbyreferences(userid",{"_index":1972,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpreconditions",{"_index":18901,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checkpreconditions(userid",{"_index":18903,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checks",{"_index":11615,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":{}}}],["checkschoolauthorization",{"_index":14094,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkschoolauthorization(authorizableuser",{"_index":14096,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkscopeandvalidateparameter",{"_index":5369,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkscopeandvalidateparameter(validatabletool",{"_index":5385,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkshorttitle",{"_index":7481,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["checkstream",{"_index":1334,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstream(stream",{"_index":1341,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstreamresponsive",{"_index":17823,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checkstreamresponsive(stream",{"_index":17830,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checksum",{"_index":2267,"title":{},"body":{"injectables/BBBService.html":{}}}],["checkvalue",{"_index":13796,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkvalue(value",{"_index":13802,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkversionmatch",{"_index":18245,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["checkversionmatch(schoolexternaltoolversion",{"_index":18247,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["child",{"_index":2769,"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":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["child.accept(this",{"_index":17269,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["child.acceptasync(this",{"_index":17188,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["child.constructor.name",{"_index":2789,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["child.id",{"_index":2799,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["childcopy",{"_index":17195,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childid",{"_index":3333,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["children",{"_index":2757,"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/RecursiveCopyVisitor.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["children.length",{"_index":3277,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["children.sort((a",{"_index":3273,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["childrenmap",{"_index":3200,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["childrenmap[boardnode.pathofchildren",{"_index":3357,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["childstatus",{"_index":17191,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses",{"_index":17189,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses.push(childstatus",{"_index":17193,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["choose",{"_index":22789,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["choosing",{"_index":22791,"title":{},"body":{"license.html":{}}}],["chunk",{"_index":22168,"title":{},"body":{"dependencies.html":{}}}],["circumstances",{"_index":22435,"title":{},"body":{"license.html":{}}}],["circumvention",{"_index":22443,"title":{},"body":{"license.html":{}}}],["civil",{"_index":22829,"title":{},"body":{"license.html":{}}}],["cjs",{"_index":13231,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["cjs/keycloak",{"_index":13230,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["claim",{"_index":13474,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["claim.name",{"_index":13483,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["claims",{"_index":22707,"title":{},"body":{"license.html":{}}}],["clamconnection",{"_index":1339,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["clamdscan",{"_index":1321,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["clamscan",{"_index":1303,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"dependencies.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/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"classes/ClassSortParams.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/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/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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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/OauthLoginResponse.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.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/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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/RpcMessageProducer.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/SchoolSpecificFileCopyServiceImpl.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/SortHelper.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/SubmissionsResponse.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/TooManyPseudonymsLoggableException.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/ToolStatusResponseMapper.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/UsersList.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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"classes/AuthenticationValues.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":4316,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classattributenamemapping",{"_index":12402,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classentity",{"_index":4255,"title":{"entities/ClassEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"entities/Course.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["classentity.id",{"_index":4473,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classentityfactory",{"_index":4301,"title":{"classes/ClassEntityFactory.html":{}},"body":{"classes/ClassEntityFactory.html":{}}}],["classentityfactory.define(classentity",{"_index":4308,"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/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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/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/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":{},"entities/Course.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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/OauthLoginResponse.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.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/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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/RpcMessageProducer.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/SchoolSpecificFileCopyServiceImpl.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/SortHelper.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/SubmissionsResponse.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/TooManyPseudonymsLoggableException.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/ToolStatusResponseMapper.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/UsersList.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.map(async",{"_index":11241,"title":{},"body":{"injectables/GroupUc.html":{}}}],["classes.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13035,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["classesentities",{"_index":4468,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesentities.map((classentity",{"_index":4471,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesrepo",{"_index":4407,"title":{"injectables/ClassesRepo.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{}}}],["classfactory",{"_index":4311,"title":{"classes/ClassFactory.html":{}},"body":{"classes/ClassFactory.html":{}}}],["classfactory.define(class",{"_index":4317,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classids",{"_index":6480,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["classinfo",{"_index":11119,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.externalsourcename",{"_index":11131,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.id",{"_index":11128,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.isupgradable",{"_index":11134,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.name",{"_index":11130,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.schoolyear",{"_index":11133,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.teachers",{"_index":11132,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.type",{"_index":11129,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfodto",{"_index":4318,"title":{"classes/ClassInfoDto.html":{}},"body":{"classes/ClassInfoDto.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["classinforesponse",{"_index":4342,"title":{"classes/ClassInfoResponse.html":{}},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfos",{"_index":11116,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.data.map((classinfo",{"_index":11125,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.total",{"_index":11127,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse",{"_index":4352,"title":{"classes/ClassInfoSearchListResponse.html":{}},"body":{"classes/ClassInfoSearchListResponse.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse})@apiresponse({status",{"_index":10948,"title":{},"body":{"controllers/GroupController.html":{}}}],["classinfosfromclasses",{"_index":11236,"title":{},"body":{"injectables/GroupUc.html":{}}}],["classinfosfromgroups",{"_index":11237,"title":{},"body":{"injectables/GroupUc.html":{}}}],["classmapper",{"_index":4354,"title":{"classes/ClassMapper.html":{}},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{}}}],["classmapper.maptodos(classes",{"_index":4467,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper.maptoentities(classes",{"_index":4469,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmodule",{"_index":4402,"title":{"modules/ClassModule.html":{}},"body":{"modules/ClassModule.html":{},"modules/GroupApiModule.html":{},"modules.html":{}}}],["classname",{"_index":9615,"title":{},"body":{"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["classnames",{"_index":12007,"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":12392,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classprops",{"_index":4241,"title":{"interfaces/ClassProps.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{}}}],["classroottype",{"_index":4331,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupUcMapper.html":{}}}],["classroottype.class",{"_index":11299,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classroottype.group",{"_index":11288,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classserializerinterceptor",{"_index":13045,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["classservice",{"_index":4406,"title":{"injectables/ClassService.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/GroupUc.html":{}}}],["classsortby",{"_index":4432,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["classsortparams",{"_index":4426,"title":{"classes/ClassSortParams.html":{}},"body":{"classes/ClassSortParams.html":{},"controllers/GroupController.html":{}}}],["classsourceoptions",{"_index":4239,"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":4264,"title":{"classes/ClassSourceOptionsEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["classsourceoptionsentityprops",{"_index":4449,"title":{"interfaces/ClassSourceOptionsEntityProps.html":{}},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["classsourceoptionsprops",{"_index":4442,"title":{"interfaces/ClassSourceOptionsProps.html":{}},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classvalidatormetadatastorage",{"_index":8277,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["clause",{"_index":955,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["clazz",{"_index":11242,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel",{"_index":11294,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel}${clazz.name",{"_index":11295,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.id",{"_index":11298,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.name",{"_index":11296,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.source",{"_index":11300,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.successor",{"_index":11297,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.teacherids.map((teacherid",{"_index":11243,"title":{},"body":{"injectables/GroupUc.html":{}}}],["clazz.year",{"_index":11245,"title":{},"body":{"injectables/GroupUc.html":{}}}],["clean",{"_index":10142,"title":{},"body":{"classes/FileRecordMapper.html":{},"interfaces/ICleanOptions.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":11624,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["clean(pagesize",{"_index":13488,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["cleans",{"_index":11620,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleanup",{"_index":6532,"title":{},"body":{"entities/Course.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICourseProperties.html":{},"injectables/TaskCopyUC.html":{},"classes/UsersList.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cleanupinput",{"_index":14377,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanupinput(username",{"_index":14385,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanuppath",{"_index":20190,"title":{},"body":{"classes/TestApiClient.html":{}}}],["cleanuppath(inputpath",{"_index":1686,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["clear",{"_index":11726,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"license.html":{}}}],["clearcollection",{"_index":7865,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearcollection(collectionname",{"_index":7873,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearly",{"_index":23139,"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":17916,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["cli",{"_index":23034,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["click",{"_index":21765,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["client",{"_index":3580,"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/FileDto.html":{},"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.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/IServerConfig.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/IdParams.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/LdapService.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":{},"interfaces/PreviewConfig.html":{},"classes/PreviewGeneratorBuilder.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.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":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":17924,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.adapter.ts",{"_index":17821,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:111",{"_index":17843,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:134",{"_index":17845,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:155",{"_index":17833,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:179",{"_index":17838,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:199",{"_index":17840,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:21",{"_index":17829,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:226",{"_index":17831,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:32",{"_index":17836,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:49",{"_index":17841,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:82",{"_index":17835,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.bind(username",{"_index":13786,"title":{},"body":{"injectables/LdapService.html":{}}}],["client.body.ts",{"_index":15586,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:10",{"_index":15589,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:15",{"_index":15590,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:20",{"_index":15591,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:26",{"_index":15596,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:36",{"_index":15617,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:46",{"_index":15611,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:56",{"_index":15606,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:65",{"_index":15594,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:71",{"_index":15595,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:77",{"_index":15597,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.getsigningkey",{"_index":15563,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["client.histogram",{"_index":17379,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["client.interface",{"_index":16821,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["client.mapper",{"_index":9974,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["client.mapper.ts",{"_index":10448,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:17",{"_index":10456,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:27",{"_index":10464,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:39",{"_index":10458,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:49",{"_index":10466,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:62",{"_index":10460,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:7",{"_index":10462,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.module.ts",{"_index":10489,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"modules/S3ClientModule.html":{}}}],["client.module.ts:25",{"_index":17923,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.on('connect",{"_index":3883,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.on('error",{"_index":3881,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.response",{"_index":5522,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["client.send(deletioncommand",{"_index":8009,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["client.service",{"_index":6310,"title":{},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{}}}],["client.service.ts",{"_index":10427,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:11",{"_index":10433,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:16",{"_index":10435,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:23",{"_index":10439,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:31",{"_index":10437,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.ts",{"_index":1624,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["client.ts:104",{"_index":20205,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:110",{"_index":20196,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:120",{"_index":20197,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:129",{"_index":20202,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:136",{"_index":20204,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:142",{"_index":20201,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:26",{"_index":20194,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:28",{"_index":20195,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:30",{"_index":20193,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:38",{"_index":20200,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:45",{"_index":20198,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:54",{"_index":20209,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:64",{"_index":20207,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:74",{"_index":20208,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:84",{"_index":20206,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client/dto",{"_index":18413,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["client/dto/copy",{"_index":6171,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["client/dto/file.dto.ts",{"_index":9801,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:10",{"_index":9806,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:12",{"_index":9803,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:6",{"_index":9804,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:8",{"_index":9805,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/files",{"_index":10488,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["client/interface/index.ts",{"_index":6264,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/S3Config-1.html":{}}}],["client/interfaces/copy",{"_index":11923,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["client/interfaces/file",{"_index":11963,"title":{},"body":{"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{}}}],["client/interfaces/files",{"_index":11989,"title":{},"body":{"interfaces/IFilesStorageClientConfig.html":{}}}],["client/lib/defs/authenticationexecutioninforepresentation",{"_index":13366,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/authenticationflowrepresentation",{"_index":13368,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/clientrepresentation",{"_index":13370,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityprovidermapperrepresentation",{"_index":13371,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityproviderrepresentation",{"_index":13372,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["client/lib/defs/protocolmapperrepresentation",{"_index":13373,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/userrepresentation",{"_index":13573,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["client/mapper/copy",{"_index":6279,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["client/mapper/files",{"_index":9970,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["client/s3",{"_index":17820,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["client/service/copy",{"_index":6292,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["client/service/files",{"_index":10426,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["client_id",{"_index":1518,"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":5526,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ListOauthClientsParams.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{}}}],["client_secret",{"_index":1519,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["client_secret_basic",{"_index":15615,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client_secret_post",{"_index":15614,"title":{},"body":{"classes/OauthClientBody.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["clientauthmethod",{"_index":16287,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["clientid",{"_index":5530,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["clientinternalid",{"_index":13277,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clientname",{"_index":5528,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["clientrepresentation",{"_index":13369,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["clients",{"_index":7990,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["clients.map",{"_index":15910,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["clients.params.ts",{"_index":14361,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:16",{"_index":14366,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:27",{"_index":14369,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:36",{"_index":14362,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:45",{"_index":14370,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients_configuration_path='/tmp/config/clients",{"_index":23536,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["clientsecret",{"_index":7278,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["clientsecret.value",{"_index":13281,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clienttype",{"_index":2235,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["clienturl",{"_index":4865,"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":2523,"title":{},"body":{"classes/BaseFactory.html":{}}}],["close",{"_index":17094,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed",{"_index":19785,"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":21016,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["closedat",{"_index":21018,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["closeddraftsforcreator",{"_index":19789,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.addquery(parentsopen.query",{"_index":19790,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.bycreatorid(parentids.creatorid",{"_index":19792,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.byfinished(parentids.creatorid",{"_index":19791,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons",{"_index":19778,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.addquery(parentsopen.query",{"_index":19779,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.bydraft(false",{"_index":19780,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.byfinished(parentids.creatorid",{"_index":19781,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator",{"_index":19786,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byfinished(parentids.creatorid",{"_index":19787,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byonlycreatorid(parentids.creatorid",{"_index":19788,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closely",{"_index":22826,"title":{},"body":{"license.html":{}}}],["closemigration",{"_index":4479,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["closemigration(@currentuser",{"_index":21112,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(currentuser",{"_index":21036,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(schoolid",{"_index":21249,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["closemigration(userid",{"_index":4486,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["closeuserloginmigrationuc",{"_index":4475,"title":{"injectables/CloseUserLoginMigrationUc.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["closing",{"_index":23453,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cloud",{"_index":15254,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["cloud.github.io/schulcloud",{"_index":22909,"title":{},"body":{"todo.html":{}}}],["cloud/commons",{"_index":2133,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LessonCopyUC.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.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":3859,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"classes/DtoCreator.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IToolFeatures.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PseudonymService.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":23582,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["cloud/erwin",{"_index":22956,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/node",{"_index":22137,"title":{},"body":{"dependencies.html":{}}}],["cloud/sc",{"_index":23544,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/schulcloud",{"_index":22886,"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":814,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_imports",{"_index":815,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_providers",{"_index":816,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_authenticationapimodule",{"_index":1504,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_imports",{"_index":1505,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_providers",{"_index":1506,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationmodule",{"_index":1541,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_exports",{"_index":1542,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_imports",{"_index":1544,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_providers",{"_index":1543,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authorizationmodule",{"_index":1879,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_exports",{"_index":1881,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_imports",{"_index":1880,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_providers",{"_index":1882,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationreferencemodule",{"_index":1924,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_exports",{"_index":1925,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_imports",{"_index":1927,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_providers",{"_index":1926,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_boardapimodule",{"_index":2712,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_imports",{"_index":2713,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_providers",{"_index":2714,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardmodule",{"_index":3562,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_exports",{"_index":3563,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_imports",{"_index":3564,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_providers",{"_index":3565,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_cachewrappermodule",{"_index":3865,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_exports",{"_index":3867,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_providers",{"_index":3866,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_calendarmodule",{"_index":3912,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_exports",{"_index":3914,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_providers",{"_index":3913,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_classmodule",{"_index":4403,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_exports",{"_index":4405,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_providers",{"_index":4404,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_collaborativestorageadaptermodule",{"_index":4579,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_exports",{"_index":4581,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_imports",{"_index":4580,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_providers",{"_index":4582,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestoragemodule",{"_index":4632,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_exports",{"_index":4634,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_imports",{"_index":4633,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_providers",{"_index":4635,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_commontoolmodule",{"_index":5329,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_exports",{"_index":5331,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_imports",{"_index":5330,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_providers",{"_index":5332,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_consolewritermodule",{"_index":5537,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_exports",{"_index":5538,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_providers",{"_index":5539,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_contextexternaltoolmodule",{"_index":5809,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_exports",{"_index":5811,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_imports",{"_index":5812,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_providers",{"_index":5810,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_copyhelpermodule",{"_index":6339,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_exports",{"_index":6340,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_providers",{"_index":6341,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_coremodule",{"_index":6423,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_exports",{"_index":6424,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_imports",{"_index":6425,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_databasemanagementmodule",{"_index":7857,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_exports",{"_index":7858,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_providers",{"_index":7859,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_encryptionmodule",{"_index":8256,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_encryptionmodule_imports",{"_index":8257,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_errormodule",{"_index":8365,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_errormodule_imports",{"_index":8366,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_externaltoolmodule",{"_index":8831,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_exports",{"_index":8832,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_imports",{"_index":8834,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_providers",{"_index":8833,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_feathersmodule",{"_index":9616,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_exports",{"_index":9618,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_providers",{"_index":9617,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_filesmodule",{"_index":10356,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_imports",{"_index":10358,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_providers",{"_index":10357,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesstorageamqpmodule",{"_index":10410,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_imports",{"_index":10411,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_providers",{"_index":10412,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageapimodule",{"_index":10419,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_imports",{"_index":10420,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_providers",{"_index":10421,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageclientmodule",{"_index":10484,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_exports",{"_index":10485,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_imports",{"_index":10486,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_providers",{"_index":10487,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstoragemodule",{"_index":10571,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_exports",{"_index":10574,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_imports",{"_index":10572,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_providers",{"_index":10573,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragetestmodule",{"_index":10643,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesstoragetestmodule_imports",{"_index":10644,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesystemmodule",{"_index":10345,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_exports",{"_index":10346,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_providers",{"_index":10347,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_fwulearningcontentsmodule",{"_index":10747,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_imports",{"_index":10749,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_providers",{"_index":10748,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentstestmodule",{"_index":10758,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_imports",{"_index":10759,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_providers",{"_index":10760,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_groupapimodule",{"_index":10936,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_imports",{"_index":10938,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_providers",{"_index":10937,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupmodule",{"_index":11053,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_exports",{"_index":11055,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_providers",{"_index":11054,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_h5peditormodule",{"_index":11391,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_imports",{"_index":11393,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_providers",{"_index":11392,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditortestmodule",{"_index":11400,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_h5peditortestmodule_imports",{"_index":11401,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_identitymanagementmodule",{"_index":12654,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_exports",{"_index":12655,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_imports",{"_index":12656,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_importusermodule",{"_index":12919,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_imports",{"_index":12921,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_providers",{"_index":12920,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_keycloakadministrationmodule",{"_index":13223,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_exports",{"_index":13225,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_providers",{"_index":13224,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakconfigurationmodule",{"_index":13297,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_exports",{"_index":13299,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_imports",{"_index":13298,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_providers",{"_index":13300,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakmodule",{"_index":13682,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_exports",{"_index":13683,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_imports",{"_index":13685,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_providers",{"_index":13684,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_learnroomapimodule",{"_index":13845,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_imports",{"_index":13847,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_providers",{"_index":13846,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroommodule",{"_index":13863,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_exports",{"_index":13866,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_imports",{"_index":13864,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_providers",{"_index":13865,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_legacyschoolapimodule",{"_index":13910,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_imports",{"_index":13911,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_providers",{"_index":13912,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolmodule",{"_index":14005,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_exports",{"_index":14006,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_imports",{"_index":14007,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_providers",{"_index":14008,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_lessonapimodule",{"_index":14127,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_imports",{"_index":14129,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_providers",{"_index":14128,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonmodule",{"_index":14203,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_exports",{"_index":14204,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_imports",{"_index":14206,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_providers",{"_index":14205,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_loggermodule",{"_index":14425,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_exports",{"_index":14426,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_providers",{"_index":14427,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_ltitoolmodule",{"_index":14681,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_exports",{"_index":14683,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_providers",{"_index":14682,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_managementmodule",{"_index":14759,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_imports",{"_index":14760,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_providers",{"_index":14761,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementservermodule",{"_index":14773,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservermodule_imports",{"_index":14774,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservertestmodule",{"_index":14780,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_managementservertestmodule_imports",{"_index":14781,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_newsmodule",{"_index":15064,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_exports",{"_index":15065,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_imports",{"_index":15066,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_providers",{"_index":15067,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_oauthapimodule",{"_index":15575,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_imports",{"_index":15577,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_providers",{"_index":15576,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthmodule",{"_index":15750,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_exports",{"_index":15752,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_imports",{"_index":15753,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_providers",{"_index":15751,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthproviderapimodule",{"_index":15757,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_imports",{"_index":15759,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_providers",{"_index":15758,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthprovidermodule",{"_index":16009,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_exports",{"_index":16011,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_imports",{"_index":16012,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_providers",{"_index":16010,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthproviderservicemodule",{"_index":16066,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_oauthproviderservicemodule_exports",{"_index":16067,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_previewgeneratoramqpmodule",{"_index":16608,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratoramqpmodule_imports",{"_index":16609,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratorproducermodule",{"_index":16645,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_exports",{"_index":16647,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_imports",{"_index":16646,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_providers",{"_index":16648,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_provisioningmodule",{"_index":16835,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_exports",{"_index":16836,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_imports",{"_index":16838,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_providers",{"_index":16837,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_pseudonymapimodule",{"_index":16915,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_imports",{"_index":16917,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_providers",{"_index":16916,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymmodule",{"_index":16952,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_exports",{"_index":16953,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_imports",{"_index":16955,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_providers",{"_index":16954,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_redismodule",{"_index":17318,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_redismodule_imports",{"_index":17319,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_rolemodule",{"_index":17527,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_exports",{"_index":17528,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_providers",{"_index":17529,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_schoolexternaltoolmodule",{"_index":18102,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_exports",{"_index":18104,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_imports",{"_index":18105,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_providers",{"_index":18103,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_serverconsolemodule",{"_index":18489,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_serverconsolemodule_imports",{"_index":18490,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_servermodule",{"_index":18503,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servermodule_imports",{"_index":18504,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servertestmodule",{"_index":18584,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_servertestmodule_imports",{"_index":18585,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_sharingapimodule",{"_index":18859,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_imports",{"_index":18860,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_providers",{"_index":18861,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingmodule",{"_index":18866,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_exports",{"_index":18867,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_imports",{"_index":18869,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_providers",{"_index":18868,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_systemapimodule",{"_index":19270,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_imports",{"_index":19272,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_providers",{"_index":19271,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemmodule",{"_index":19393,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_exports",{"_index":19396,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_imports",{"_index":19395,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_providers",{"_index":19394,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_taskapimodule",{"_index":19530,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_imports",{"_index":19531,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_providers",{"_index":19532,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskmodule",{"_index":19735,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_exports",{"_index":19737,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_imports",{"_index":19738,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_providers",{"_index":19736,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_teamsapimodule",{"_index":20164,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsapimodule_imports",{"_index":20165,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsmodule",{"_index":20169,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_exports",{"_index":20171,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_providers",{"_index":20170,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_toolapimodule",{"_index":20298,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_imports",{"_index":20300,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_providers",{"_index":20299,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toollaunchmodule",{"_index":20544,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_exports",{"_index":20545,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_imports",{"_index":20547,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_providers",{"_index":20546,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toolmodule",{"_index":20610,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_exports",{"_index":20611,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_imports",{"_index":20613,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_providers",{"_index":20612,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_userapimodule",{"_index":20820,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_imports",{"_index":20822,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_providers",{"_index":20821,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userloginmigrationapimodule",{"_index":21021,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_imports",{"_index":21022,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_providers",{"_index":21023,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationmodule",{"_index":21191,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_exports",{"_index":21194,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_imports",{"_index":21193,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_providers",{"_index":21192,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_usermodule",{"_index":21479,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_exports",{"_index":21482,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_imports",{"_index":21481,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_providers",{"_index":21480,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_videoconferenceapimodule",{"_index":21684,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_imports",{"_index":21686,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_providers",{"_index":21685,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferencemodule",{"_index":21959,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_exports",{"_index":21961,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_imports",{"_index":21962,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_providers",{"_index":21960,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["code",{"_index":1142,"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/TooManyPseudonymsLoggableException.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":15383,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["codebase",{"_index":23124,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["coded",{"_index":11840,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["coersion",{"_index":10865,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["cohesion",{"_index":23150,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["collaborative",{"_index":4516,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/NextcloudStrategy.html":{}}}],["collaborativestorage",{"_index":11659,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["collaborativestorageadapter",{"_index":4510,"title":{"injectables/CollaborativeStorageAdapter.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["collaborativestorageadaptermapper",{"_index":4528,"title":{"injectables/CollaborativeStorageAdapterMapper.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["collaborativestorageadaptermodule",{"_index":4578,"title":{"modules/CollaborativeStorageAdapterModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules.html":{}}}],["collaborativestoragecontroller",{"_index":4599,"title":{"controllers/CollaborativeStorageController.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["collaborativestoragemodule",{"_index":4631,"title":{"modules/CollaborativeStorageModule.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["collaborativestorageservice",{"_index":4636,"title":{"injectables/CollaborativeStorageService.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collaborativestorageuc",{"_index":4620,"title":{"injectables/CollaborativeStorageUc.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collect",{"_index":22767,"title":{},"body":{"license.html":{}}}],["collectdefaultmetrics",{"_index":16742,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collected",{"_index":16794,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting",{"_index":16793,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_default_metrics_disabled",{"_index":16792,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_metrics_route_metrics_disabled",{"_index":16795,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collection",{"_index":1843,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["collection(this",{"_index":2636,"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":{},"classes/UsersList.html":{}}}],["collection.deletemany",{"_index":7900,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.find({}).toarray",{"_index":7898,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.insertmany(jsondocuments",{"_index":7895,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.name",{"_index":7905,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionexists",{"_index":7866,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionexists(collectionname",{"_index":7875,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname",{"_index":7836,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter",{"_index":11709,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter.length",{"_index":11716,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter?.includes(collectionname",{"_index":11719,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnames",{"_index":7903,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname}.json",{"_index":11701,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionname}:${data.length",{"_index":11739,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections",{"_index":7795,"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":7907,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.includes(data.collectionname",{"_index":11734,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.length",{"_index":11733,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.map((collection",{"_index":7904,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.map((collectionname",{"_index":11699,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport",{"_index":11768,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport.map(async",{"_index":11770,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed",{"_index":11747,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed.map(async",{"_index":11749,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionswithfilepaths",{"_index":11698,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectmetricsroutemetrics",{"_index":16743,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collects",{"_index":23706,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["color",{"_index":6469,"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":{},"classes/UsersList.html":{}}}],["column",{"_index":2655,"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/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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsService.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["column.'})@apiresponse({status",{"_index":4917,"title":{},"body":{"controllers/ColumnController.html":{}}}],["column.addchild(card",{"_index":4817,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["column.body.params.ts",{"_index":14919,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:11",{"_index":14921,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:19",{"_index":14922,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.children.map((card",{"_index":4960,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.constructor.name",{"_index":3713,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["column.createdat",{"_index":4964,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.do",{"_index":2845,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["column.id",{"_index":4958,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.response",{"_index":3701,"title":{},"body":{"classes/BoardResponse.html":{}}}],["column.title",{"_index":4959,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.updatedat",{"_index":4963,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["columnboard",{"_index":2823,"title":{"classes/ColumnBoard.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomsService.html":{}}}],["columnboard.addchild(column",{"_index":4811,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["columnboard.context",{"_index":17275,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.id",{"_index":17271,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.title",{"_index":17272,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboardboardelement",{"_index":2654,"title":{"entities/ColumnboardBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardcopyservice",{"_index":2973,"title":{"injectables/ColumnBoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["columnboardelement",{"_index":3072,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["columnboardelements",{"_index":3691,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["columnboardfactory",{"_index":4763,"title":{"classes/ColumnBoardFactory.html":{}},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardfactory.define(columnboard",{"_index":4769,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardid",{"_index":2735,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"injectables/BoardCopyService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardids",{"_index":4895,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardids.length",{"_index":17740,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardids.map((id",{"_index":4902,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardids.push(columnboard.id",{"_index":17742,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardinfo",{"_index":17640,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.columnboardid",{"_index":17643,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.createdat",{"_index":17646,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.id",{"_index":17642,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.published",{"_index":17645,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.title",{"_index":17644,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.updatedat",{"_index":17647,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardmetadata",{"_index":8092,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardnode",{"_index":3174,"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":3529,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodefactory.build",{"_index":3534,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodeprops",{"_index":4776,"title":{"interfaces/ColumnBoardNodeProps.html":{}},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["columnboardprops",{"_index":4734,"title":{"interfaces/ColumnBoardProps.html":{}},"body":{"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{}}}],["columnboardservice",{"_index":3570,"title":{"injectables/ColumnBoardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget",{"_index":2656,"title":{"entities/ColumnBoardTarget.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.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":3063,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.createdat",{"_index":8140,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.id",{"_index":8138,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.published",{"_index":8142,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.title",{"_index":8139,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.updatedat",{"_index":8141,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtargetprops",{"_index":4879,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["columnboardtargets",{"_index":4901,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardtargetservice",{"_index":4886,"title":{"injectables/ColumnBoardTargetService.html":{}},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["columncontroller",{"_index":2721,"title":{"controllers/ColumnController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ColumnController.html":{}}}],["columnid",{"_index":4972,"title":{},"body":{"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{}}}],["columnnode",{"_index":3171,"title":{"entities/ColumnNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnnodefactory",{"_index":3530,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnnodefactory.build",{"_index":3551,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnprops",{"_index":4717,"title":{"interfaces/ColumnProps.html":{}},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["columnresponse",{"_index":2932,"title":{"classes/ColumnResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper",{"_index":2936,"title":{"classes/ColumnResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper.maptoresponse(column",{"_index":2957,"title":{},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["columnresponse})@apiresponse({status",{"_index":2903,"title":{},"body":{"controllers/BoardController.html":{}}}],["columns",{"_index":3234,"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":3539,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnservice",{"_index":3571,"title":{"injectables/ColumnService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnService.html":{}}}],["columnurlparams",{"_index":4915,"title":{"classes/ColumnUrlParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{}}}],["colums",{"_index":7490,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["combination",{"_index":17084,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["combinations",{"_index":23557,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["combine",{"_index":22778,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["combined",{"_index":18877,"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":{}}}],["combinedclassinfo",{"_index":11201,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combinedclassinfo.length",{"_index":11235,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combinedclassinfo.slice(skip",{"_index":11272,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combinedclassinfo.sort((a",{"_index":11229,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combineduri",{"_index":21451,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.pathname",{"_index":21453,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.tostring",{"_index":21454,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combines",{"_index":23739,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["come",{"_index":22322,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["comes",{"_index":22490,"title":{},"body":{"license.html":{}}}],["coming",{"_index":23658,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["command",{"_index":3490,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICleanOptions.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":3486,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/KeycloakConsole.html":{},"classes/ServerConsole.html":{}}}],["commander",{"_index":22104,"title":{},"body":{"dependencies.html":{}}}],["commandname",{"_index":13513,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["commandoption",{"_index":11590,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["commandoutput",{"_index":17877,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["commandresponse",{"_index":20230,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["commands",{"_index":11603,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["comment",{"_index":8894,"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":23499,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["commercial",{"_index":22568,"title":{},"body":{"license.html":{}}}],["commit",{"_index":22253,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["commitment",{"_index":22719,"title":{},"body":{"license.html":{}}}],["commits",{"_index":23496,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["committing",{"_index":22247,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common",{"_index":5030,"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":{},"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":5781,"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":{},"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/SchoolExternalToolService.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["common/interface",{"_index":5711,"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/mapper/tool",{"_index":5964,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["common/service",{"_index":6105,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["common/uc/tool",{"_index":6073,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["commoncartridgeexportservice",{"_index":4991,"title":{"injectables/CommonCartridgeExportService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomModule.html":{}}}],["commoncartridgefilebuilder",{"_index":5006,"title":{"classes/CommonCartridgeFileBuilder.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeintendedusetype",{"_index":5028,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeintendedusetype.assignment",{"_index":5096,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeintendedusetype.unspecified",{"_index":5071,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeltiresource",{"_index":5163,"title":{"classes/CommonCartridgeLtiResource.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeltiresource(props",{"_index":5299,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgemanifestelement",{"_index":5126,"title":{"classes/CommonCartridgeManifestElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgemetadataelement",{"_index":5228,"title":{"classes/CommonCartridgeMetadataElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["commoncartridgemetadataelement(this.metadataprops).transform",{"_index":5245,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeorganizationbuilder",{"_index":5132,"title":{"classes/CommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationbuilder(props",{"_index":5143,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement",{"_index":5130,"title":{"classes/CommonCartridgeOrganizationItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement(this.props",{"_index":5133,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationwrapperelement",{"_index":5229,"title":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["commoncartridgeorganizationwrapperelement(this.organizations).transform",{"_index":5246,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeresourceitemelement",{"_index":5128,"title":{"classes/CommonCartridgeResourceItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(props",{"_index":5138,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(resourceprops",{"_index":5135,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourcetype",{"_index":5029,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.lti",{"_index":5174,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeresourcetype.web_content",{"_index":5069,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeresourcetype.web_link_v1",{"_index":5078,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.web_link_v3",{"_index":5077,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcewrapperelement",{"_index":5231,"title":{"classes/CommonCartridgeResourceWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["commoncartridgeresourcewrapperelement(this.resources).transform",{"_index":5247,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeversion",{"_index":5008,"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":5095,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeversion.v_1_3_0",{"_index":5076,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgewebcontentresource",{"_index":5294,"title":{"classes/CommonCartridgeWebContentResource.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgewebcontentresource(props",{"_index":5300,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeweblinkresourceelement",{"_index":5296,"title":{"classes/CommonCartridgeWebLinkResourceElement.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeweblinkresourceelement(props",{"_index":5301,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commonobject",{"_index":5175,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$.xmlns",{"_index":5196,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:blti",{"_index":5198,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticm",{"_index":5200,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticp",{"_index":5202,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xsi:schemalocation",{"_index":5204,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonprops",{"_index":5062,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commontags",{"_index":5318,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commontoolmodule",{"_index":5328,"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":5334,"title":{"injectables/CommonToolService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["commontoolvalidationservice",{"_index":5335,"title":{"injectables/CommonToolValidationService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["commontoolvalidationservice.typecheckers[type",{"_index":5395,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["communicate",{"_index":23722,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["communication",{"_index":22415,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["community",{"_index":22280,"title":{},"body":{"license.html":{}}}],["comparator",{"_index":23206,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["comparealphabetic",{"_index":2685,"title":{},"body":{"entities/Board.html":{}}}],["compared",{"_index":23508,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["compareparameters",{"_index":9467,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["compareparameters(oldparams",{"_index":9475,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["comparepassword",{"_index":92,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["compass",{"_index":23461,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["compatible",{"_index":22942,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["compilation",{"_index":22496,"title":{},"body":{"license.html":{}}}],["compilation's",{"_index":22503,"title":{},"body":{"license.html":{}}}],["compilations",{"_index":22750,"title":{},"body":{"license.html":{}}}],["compile",{"_index":20228,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["compiler",{"_index":22405,"title":{},"body":{"license.html":{}}}],["complete",{"_index":14851,"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":3264,"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":19050,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["completed.loggable.ts",{"_index":14844,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:3",{"_index":14846,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:6",{"_index":14847,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completion",{"_index":23413,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["completly",{"_index":23705,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["complex",{"_index":13890,"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":23625,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["compliance",{"_index":22679,"title":{},"body":{"license.html":{}}}],["comply",{"_index":22430,"title":{},"body":{"license.html":{}}}],["compodoc",{"_index":23031,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["component",{"_index":5630,"title":{},"body":{"injectables/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":{},"entities/LessonEntity.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["component.constructor.name",{"_index":5688,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["components",{"_index":22231,"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":{}}}],["componenttype",{"_index":5026,"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.etherpad",{"_index":5079,"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":5074,"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":11879,"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.lernstore",{"_index":11880,"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.nexboard",{"_index":11881,"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":5068,"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":6378,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["composite",{"_index":2806,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["composite.do",{"_index":3956,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["composite.do.ts",{"_index":2751,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["composite.do.ts:11",{"_index":2780,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:15",{"_index":2782,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:19",{"_index":2768,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:33",{"_index":2773,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:35",{"_index":2775,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:39",{"_index":2771,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:45",{"_index":2761,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:47",{"_index":2765,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:7",{"_index":2778,"title":{},"body":{"classes/BoardComposite.html":{}}}],["compression",{"_index":22106,"title":{},"body":{"dependencies.html":{}}}],["computer",{"_index":22362,"title":{},"body":{"license.html":{}}}],["concatenating",{"_index":15244,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["concept",{"_index":23163,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concepts",{"_index":23162,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concern",{"_index":23096,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["concerns",{"_index":22785,"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":23226,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concurrently",{"_index":22108,"title":{},"body":{"dependencies.html":{}}}],["cond",{"_index":19874,"title":{},"body":{"injectables/TaskRule.html":{}}}],["condition",{"_index":23312,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["conditioned",{"_index":22744,"title":{},"body":{"license.html":{}}}],["conditions",{"_index":22335,"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":2302,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference",{"_index":8012,"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":21712,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference.controller.ts",{"_index":21706,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:105",{"_index":21719,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:132",{"_index":21715,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:44",{"_index":21730,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:77",{"_index":21725,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.do.ts",{"_index":21824,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:19",{"_index":21827,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:21",{"_index":21828,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:23",{"_index":21825,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:5",{"_index":21977,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:7",{"_index":21978,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:9",{"_index":21976,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.entity",{"_index":21997,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.entity.ts",{"_index":21655,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:10",{"_index":21974,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:12",{"_index":21975,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:14",{"_index":21973,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:31",{"_index":21658,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:34",{"_index":21659,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:37",{"_index":21657,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.mapper",{"_index":21733,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference.mapper.ts",{"_index":21935,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:25",{"_index":21941,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:32",{"_index":21943,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:38",{"_index":21947,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:42",{"_index":21945,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.module",{"_index":21693,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["conference.module.ts",{"_index":21964,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo",{"_index":21967,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo.ts",{"_index":21990,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:20",{"_index":21995,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:28",{"_index":21993,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.ts",{"_index":21674,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:10",{"_index":21675,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:6",{"_index":21678,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:8",{"_index":21676,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference/bbb/bbb",{"_index":11579,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["conference/bbb/bbb.service.ts",{"_index":2240,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:107",{"_index":2273,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:136",{"_index":2264,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:14",{"_index":2251,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:150",{"_index":2282,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:167",{"_index":2275,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:21",{"_index":2286,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:25",{"_index":2288,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:29",{"_index":2290,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:39",{"_index":2254,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:61",{"_index":2271,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:72",{"_index":2279,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:84",{"_index":2261,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/builder/bbb",{"_index":2112,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["conference/bbb/builder/builder.ts",{"_index":3824,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:2",{"_index":3826,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:8",{"_index":3828,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/request/bbb",{"_index":2050,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["conference/bbb/response/bbb",{"_index":2060,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["conference/bbb/response/bbb.response.ts",{"_index":2238,"title":{},"body":{"interfaces/BBBResponse.html":{}}}],["conference/controller/dto/request/video",{"_index":21758,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference/controller/dto/response/video",{"_index":8011,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["conference/controller/video",{"_index":21705,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference/error/error",{"_index":21875,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/error/invalid",{"_index":13058,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["conference/interface/video",{"_index":12604,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["conference/mapper/vc",{"_index":22017,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference/mapper/video",{"_index":21934,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference/uc/dto/scope",{"_index":12228,"title":{},"body":{"interfaces/IScopeInfo.html":{},"classes/ScopeRef.html":{}}}],["conference/uc/dto/video",{"_index":21673,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["conference/uc/video",{"_index":21777,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/video",{"_index":18535,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["conferences",{"_index":21971,"title":{},"body":{"modules/VideoConferenceModule.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":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.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":19371,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["config.allowmodstounmuteusers",{"_index":2108,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.attendeepw",{"_index":2106,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.builder.ts",{"_index":2113,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:10",{"_index":2196,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:11",{"_index":2129,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:15",{"_index":2198,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:16",{"_index":2123,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:21",{"_index":2127,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:5",{"_index":2194,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:6",{"_index":2125,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.clientid",{"_index":9729,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["config.connectionname",{"_index":17928,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["config.do",{"_index":2567,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts",{"_index":2561,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:11",{"_index":14573,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:13",{"_index":14574,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:15",{"_index":14571,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:17",{"_index":15518,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:4",{"_index":2563,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{}}}],["config.do.ts:5",{"_index":14572,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:6",{"_index":8499,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["config.do.ts:7",{"_index":14576,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:9",{"_index":14575,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.dto",{"_index":19325,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["config.dto.ts",{"_index":15638,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:1",{"_index":16248,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:10",{"_index":15644,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:12",{"_index":15652,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:14",{"_index":15641,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:16",{"_index":15650,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:18",{"_index":15651,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:2",{"_index":15642,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:20",{"_index":15648,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:22",{"_index":16249,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:24",{"_index":16252,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:25",{"_index":15647,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:26",{"_index":16251,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:27",{"_index":15646,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:28",{"_index":16253,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:29",{"_index":15640,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:30",{"_index":16250,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:4",{"_index":15643,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:6",{"_index":15645,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:8",{"_index":15649,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.entity",{"_index":2576,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts",{"_index":2572,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:10",{"_index":8504,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:11",{"_index":15536,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:12",{"_index":14597,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:15",{"_index":14596,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:18",{"_index":14594,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:21",{"_index":14595,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:24",{"_index":14592,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:6",{"_index":2573,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["config.entity.ts:7",{"_index":8505,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:8",{"_index":15537,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:9",{"_index":14593,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.frontchannellogouturi",{"_index":9363,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.fullname",{"_index":2180,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guest",{"_index":2185,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guestpolicy",{"_index":2102,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.json",{"_index":23534,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["config.logouturl",{"_index":2098,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.meetingid",{"_index":2058,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"injectables/BBBService.html":{}}}],["config.moderatorpw",{"_index":2104,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.module",{"_index":8845,"title":{},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{}}}],["config.module.ts",{"_index":20318,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["config.name",{"_index":2096,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.params",{"_index":2588,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["config.params.ts",{"_index":2582,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:4",{"_index":8502,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:6",{"_index":8501,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.redirect",{"_index":2187,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.redirecturis",{"_index":9361,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.response",{"_index":2597,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["config.response.ts",{"_index":2592,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:10",{"_index":2594,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["config.response.ts:13",{"_index":14600,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:16",{"_index":14603,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:19",{"_index":14601,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:22",{"_index":14602,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:23",{"_index":15677,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:25",{"_index":14599,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:28",{"_index":15541,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:30",{"_index":15672,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:37",{"_index":15680,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:4",{"_index":8508,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:44",{"_index":15670,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:51",{"_index":15678,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:58",{"_index":15679,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:6",{"_index":8507,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:65",{"_index":15676,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:72",{"_index":15675,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:79",{"_index":15674,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:86",{"_index":15669,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:9",{"_index":15671,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.role",{"_index":2182,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.scope",{"_index":9357,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.tokenendpointauthmethod",{"_index":9359,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.ts",{"_index":11577,"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":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{},"classes/ToolConfiguration.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:12",{"_index":21704,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:14",{"_index":20320,"title":{},"body":{"classes/ToolConfiguration.html":{}}}],["config.ts:4",{"_index":13294,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["config.ts:5",{"_index":13221,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["config.ts:6",{"_index":21701,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.type",{"_index":8497,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["config.userid",{"_index":2183,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.welcome",{"_index":2100,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config/development.json",{"_index":11982,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config/test.json",{"_index":11983,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config['meta_bbb",{"_index":2110,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["configbuilder",{"_index":21811,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withguestpolicy(guestpolicy.ask_moderator",{"_index":21817,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withmuteonstart(true",{"_index":21819,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configmodule",{"_index":10582,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions",{"_index":16644,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(config",{"_index":10595,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(serverconfig",{"_index":14770,"title":{},"body":{"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configs",{"_index":13448,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/S3ClientModule.html":{}}}],["configs.flatmap((config",{"_index":17927,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["configservice",{"_index":789,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.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/PreviewProducer.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["configservice.get('feature_identity_management_login_enabled",{"_index":835,"title":{},"body":{"modules/AccountModule.html":{}}}],["configservice.get('incoming_request_timeout",{"_index":13048,"title":{},"body":{"modules/InterceptorModule.html":{},"injectables/PreviewProducer.html":{}}}],["configservice.get('incoming_request_timeout_copy_api",{"_index":10631,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["configservice.get('nest_log_level",{"_index":14435,"title":{},"body":{"modules/LoggerModule.html":{}}}],["configservice.get(aeskey",{"_index":8266,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["configtoupdate",{"_index":9412,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["configtype",{"_index":20529,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["configuration",{"_index":2130,"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/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/PseudonymService.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":{},"classes/SchoolExternalToolResponse.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":13307,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.console.ts",{"_index":11588,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:121",{"_index":13508,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:156",{"_index":13511,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:172",{"_index":13512,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:201",{"_index":13510,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:23",{"_index":13504,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:32",{"_index":13505,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:51",{"_index":13506,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:77",{"_index":13507,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:99",{"_index":13514,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.controller",{"_index":13314,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.controller.ts",{"_index":13630,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:109",{"_index":20337,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:19",{"_index":13634,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration.controller.ts:38",{"_index":20331,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:60",{"_index":20327,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:86",{"_index":20341,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.externaltoolid",{"_index":5748,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.get",{"_index":12243,"title":{},"body":{"interfaces/IServerConfig.html":{},"injectables/ShareTokenUC.html":{}}}],["configuration.get('antivirus_exchange",{"_index":10599,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('antivirus_routing_key",{"_index":10600,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('calendar_uri",{"_index":3932,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('clamav__service_hostname",{"_index":10601,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('clamav__service_port",{"_index":10602,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('column_board_feedback_link",{"_index":4853,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('column_board_help_link",{"_index":4837,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('cookie__expires_seconds",{"_index":16175,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__http_only",{"_index":16168,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__same_site",{"_index":16170,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__secure",{"_index":16174,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('ctl_tools__external_tool_max_logo_size_in_bytes",{"_index":12572,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('enable_file_security_check",{"_index":10597,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('feature_column_board_enabled",{"_index":8112,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["configuration.get('feature_copy_service_enabled",{"_index":6710,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["configuration.get('feature_course_share_new",{"_index":18851,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_ctl_context_configuration_enabled",{"_index":12571,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_ctl_tools_tab_enabled",{"_index":12569,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_fwu_content_enabled",{"_index":10728,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["configuration.get('feature_identity_management_enabled",{"_index":12245,"title":{},"body":{"interfaces/IServerConfig.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["configuration.get('feature_identity_management_login_enabled",{"_index":12247,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_identity_management_store_enabled",{"_index":12246,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_imscc_course_export_enabled",{"_index":12244,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_lesson_share",{"_index":18853,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_lti_tools_tab_enabled",{"_index":12570,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_prometheus_metrics_enabled",{"_index":16768,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('feature_sanis_group_provisioning_enabled",{"_index":16414,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["configuration.get('feature_task_share",{"_index":18854,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_videoconference_enabled",{"_index":21702,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('files_storage__exchange",{"_index":11919,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["configuration.get('files_storage__incoming_request_timeout",{"_index":11974,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__max_file_size",{"_index":11978,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_access_key_id",{"_index":11987,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_bucket",{"_index":11986,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_endpoint",{"_index":11984,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_region",{"_index":11985,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_secret_access_key",{"_index":11988,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__service_base_url",{"_index":10598,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('files_storage__use_stream_to_antivirus",{"_index":11979,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('host",{"_index":4866,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/HydraSsoService.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('hydra_public_uri",{"_index":11425,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["configuration.get('i18n__available_languages",{"_index":12239,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('identity_management__admin_clientid",{"_index":13220,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_password",{"_index":13219,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_user",{"_index":13218,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__clientid",{"_index":13217,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__tenant",{"_index":13216,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__uri",{"_index":13215,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('incoming_request_timeout_api",{"_index":12237,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('incoming_request_timeout_copy_api",{"_index":11977,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('login_block_time",{"_index":12242,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('mail_send_exchange",{"_index":17092,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('mail_send_routing_key",{"_index":18543,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('migration_end_grace_period_ms",{"_index":21273,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["configuration.get('nest_log_level",{"_index":11972,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('nextcloud_scopes",{"_index":11570,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["configuration.get('nextcloud_sociallogin_oidc_internal_name",{"_index":4598,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["configuration.get('node_env",{"_index":12241,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_default_metrics",{"_index":16771,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_metrics_route_metrics",{"_index":16772,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_port",{"_index":16770,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_route",{"_index":16769,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('public_backend_url",{"_index":12573,"title":{},"body":{"interfaces/IToolFeatures.html":{},"injectables/OAuthService.html":{},"classes/ToolConfiguration.html":{},"injectables/UserMigrationService.html":{}}}],["configuration.get('rabbitmq_uri",{"_index":17093,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('redis_uri",{"_index":3879,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["configuration.get('request_option__timeout_ms",{"_index":3934,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('rocket_chat_admin_id",{"_index":18546,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_password",{"_index":18549,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_token",{"_index":18547,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_user",{"_index":18548,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_uri",{"_index":18545,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('s3_key",{"_index":18931,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["configuration.get('sc_domain",{"_index":2141,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('sc_theme",{"_index":4864,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('session__expires_seconds",{"_index":18552,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__http_only",{"_index":18571,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__name",{"_index":18565,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__proxy",{"_index":18568,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__same_site",{"_index":18570,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secret",{"_index":18561,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secure",{"_index":18569,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('videoconference_default_presentation",{"_index":21700,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_host",{"_index":21698,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_salt",{"_index":21699,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get(placeholder",{"_index":11820,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.has('column_board_feedback_link",{"_index":4851,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('column_board_help_link",{"_index":4835,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('redis_uri",{"_index":3862,"title":{},"body":{"injectables/CacheService.html":{},"modules/RedisModule.html":{}}}],["configuration.has('session__name",{"_index":18564,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has('session__proxy",{"_index":18567,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has(placeholder",{"_index":11819,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.logourl",{"_index":5753,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.mapper",{"_index":20344,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.mapper.ts",{"_index":20361,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:12",{"_index":20375,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:28",{"_index":20373,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:41",{"_index":20370,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:60",{"_index":20367,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.module",{"_index":14763,"title":{},"body":{"modules/ManagementModule.html":{}}}],["configuration.module.ts",{"_index":13304,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.name",{"_index":5751,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.parameters",{"_index":5754,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.schoolexternaltoolid",{"_index":5750,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.service",{"_index":13311,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.service.ts",{"_index":8511,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:108",{"_index":13339,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:12",{"_index":8518,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:128",{"_index":13340,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:15",{"_index":8531,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:155",{"_index":13341,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:167",{"_index":13336,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:191",{"_index":13358,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:214",{"_index":13344,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:224",{"_index":13362,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:235",{"_index":13349,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:24",{"_index":8527,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:240",{"_index":13364,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:254",{"_index":13346,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:26",{"_index":13333,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:262",{"_index":13353,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:277",{"_index":13350,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:34",{"_index":13338,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:46",{"_index":8522,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:77",{"_index":8533,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.uc",{"_index":11593,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["configuration.uc.ts",{"_index":8559,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:116",{"_index":8580,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:136",{"_index":8578,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:16",{"_index":13487,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:165",{"_index":8572,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:17",{"_index":8568,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:177",{"_index":8570,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:20",{"_index":13489,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:24",{"_index":13492,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:28",{"_index":8576,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:32",{"_index":13490,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:64",{"_index":8574,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:8",{"_index":13486,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.version",{"_index":5756,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration/console/keycloak",{"_index":11587,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration/controller/keycloak",{"_index":13629,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration/interface/json",{"_index":12058,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["configuration/interface/keycloak",{"_index":12064,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["configuration/keycloak",{"_index":13290,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{}}}],["configuration/mapper/identity",{"_index":16275,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["configuration/service/keycloak",{"_index":13317,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["configuration/uc/keycloak",{"_index":13484,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configurations",{"_index":11980,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configure",{"_index":11637,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":18514,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configure(options",{"_index":11638,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configureaction",{"_index":13377,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.action",{"_index":13430,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.create",{"_index":13431,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.delete",{"_index":13435,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.update",{"_index":13433,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureactions",{"_index":13428,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurebrokerflows",{"_index":13319,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureclient",{"_index":13320,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configured",{"_index":14878,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["configureidentityproviders",{"_index":13321,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurerealm",{"_index":13322,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configures",{"_index":6431,"title":{},"body":{"modules/CoreModule.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["confirmed",{"_index":16540,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["confirmpassword",{"_index":16538,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["conflict",{"_index":6665,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["conflicts",{"_index":23161,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["conjunction",{"_index":23541,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["connect",{"_index":13421,"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":13767,"title":{},"body":{"injectables/LdapService.html":{}}}],["connected",{"_index":18262,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["connecting",{"_index":22962,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["connection",{"_index":11616,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":13774,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error",{"_index":13771,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error.ts",{"_index":13757,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.error.ts:4",{"_index":13759,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.managedconnection.close",{"_index":17098,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["connection.unbind",{"_index":13775,"title":{},"body":{"injectables/LdapService.html":{}}}],["connectionname",{"_index":6268,"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":17095,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connectredis",{"_index":18536,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis(session",{"_index":18555,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis.redisstore",{"_index":18553,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connects",{"_index":13635,"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":17446,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.params.ts:7",{"_index":17447,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.response",{"_index":16826,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consent_request",{"_index":16825,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consentflowuc",{"_index":15898,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequest",{"_index":15931,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequestbody",{"_index":5430,"title":{"classes/ConsentRequestBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["consentresponse",{"_index":5480,"title":{"classes/ConsentResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consentresponse.client?.client_id",{"_index":15835,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentresponse.requested_scope",{"_index":15834,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentsessionresponse",{"_index":5523,"title":{"classes/ConsentSessionResponse.html":{}},"body":{"classes/ConsentSessionResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consequence",{"_index":22666,"title":{},"body":{"license.html":{}}}],["consequential",{"_index":22810,"title":{},"body":{"license.html":{}}}],["considerations",{"_index":23148,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["considered",{"_index":22634,"title":{},"body":{"license.html":{}}}],["consistent",{"_index":2143,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/GlobalErrorFilter.html":{},"license.html":{}}}],["console",{"_index":3491,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICleanOptions.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":5547,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["console/board",{"_index":14764,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/database",{"_index":14766,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/keycloak",{"_index":13306,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["consolelogger",{"_index":13896,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["consolemodule",{"_index":18496,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["consolewriter",{"_index":3484,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{}}}],["consolewritermodule",{"_index":3566,"title":{"modules/ConsoleWriterModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["consolewriterservice",{"_index":3481,"title":{"injectables/ConsoleWriterService.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["conspicuously",{"_index":22472,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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/AuthorizationReferenceService.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/BoardDoCopyService.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/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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/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":{},"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":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.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":{},"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":1572,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{},"injectables/S3ClientAdapter.html":{}}}],["constitutes",{"_index":22424,"title":{},"body":{"license.html":{}}}],["constraint",{"_index":17087,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthenticationValues.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationReferenceService.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":{},"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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/FeathersRosterService.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/GroupResponse.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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":{},"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/OauthLoginResponse.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":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/PseudonymResponse.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/SubmissionsResponse.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":{},"classes/TooManyPseudonymsLoggableException.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.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":{},"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":16282,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(@inject(mikroorm",{"_index":14900,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["constructor(@inject(request",{"_index":9752,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["constructor(@inject(toolfeatures",{"_index":8534,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["constructor(@inject(winston_module_provider",{"_index":8345,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["constructor(_em",{"_index":2354,"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(accountrepo",{"_index":1048,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["constructor(adapter",{"_index":4651,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["constructor(amqpconnection",{"_index":1337,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["constructor(apivalidationerror",{"_index":1425,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["constructor(app",{"_index":1650,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["constructor(authenticationservice",{"_index":14378,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["constructor(authorisation",{"_index":14153,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["constructor(authorisationservice",{"_index":17586,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["constructor(authorization",{"_index":6699,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["constructor(authorizationhelper",{"_index":3386,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":4151,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["constructor(authservice",{"_index":14542,"title":{},"body":{"injectables/LoginUc.html":{}}}],["constructor(bbbservice",{"_index":21783,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["constructor(bbbsettings",{"_index":2248,"title":{},"body":{"injectables/BBBService.html":{}}}],["constructor(boarddorepo",{"_index":3120,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["constructor(cachemanager",{"_index":13189,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["constructor(classesrepo",{"_index":4412,"title":{},"body":{"injectables/ClassService.html":{}}}],["constructor(client",{"_index":17828,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["constructor(clientid",{"_index":5527,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/IdTokenCreationLoggableException.html":{}}}],["constructor(columnboardservice",{"_index":4891,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["constructor(config",{"_index":2054,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["constructor(configuration",{"_index":5738,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["constructor(consentresponse",{"_index":5488,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["constructor(console",{"_index":13503,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["constructor(consolewriter",{"_index":3480,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ServerConsole.html":{}}}],["constructor(content",{"_index":5626,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["constructor(contextexternaltool",{"_index":14874,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["constructor(contextexternaltoolrepo",{"_index":5725,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{}}}],["constructor(contextexternaltoolservice",{"_index":6099,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolReferenceUc.html":{}}}],["constructor(copyhelperservice",{"_index":6297,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["constructor(county",{"_index":6450,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["constructor(courseexportservice",{"_index":6714,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["constructor(courserepo",{"_index":6646,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{},"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["constructor(courserule",{"_index":17792,"title":{},"body":{"injectables/RuleManager.html":{}}}],["constructor(courseservice",{"_index":5001,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["constructor(customkey",{"_index":18923,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["constructor(dashboardrepo",{"_index":7762,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["constructor(data",{"_index":1009,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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":16278,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(deletefilesuc",{"_index":7915,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["constructor(descendants",{"_index":3205,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["constructor(descriptionoroptions",{"_index":13725,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["constructor(details",{"_index":13758,"title":{},"body":{"classes/LdapConnectionError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["constructor(domainobject",{"_index":7183,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(dto",{"_index":3890,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["constructor(e",{"_index":1186,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["constructor(em",{"_index":3314,"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":2489,"title":{},"body":{"classes/BaseFactory.html":{}}}],["constructor(entityname",{"_index":8272,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["constructor(error",{"_index":8281,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["constructor(externaltoolid",{"_index":8753,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["constructor(externaltoollogo",{"_index":8730,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["constructor(externaltoolrepo",{"_index":9282,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["constructor(externaltoolservice",{"_index":8566,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["constructor(externaluserid",{"_index":21489,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["constructor(feathersauthprovider",{"_index":9585,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["constructor(feathersserviceprovider",{"_index":8403,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/NexboardService.html":{}}}],["constructor(federalstaterepo",{"_index":9781,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["constructor(field",{"_index":21649,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(file",{"_index":9792,"title":{},"body":{"classes/FileDto.html":{}}}],["constructor(filecopyservice",{"_index":17120,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["constructor(filerecord",{"_index":6193,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["constructor(filesrepo",{"_index":7943,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["constructor(filesstorageclientadapterservice",{"_index":18416,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["constructor(filesstorageservice",{"_index":10495,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["constructor(group",{"_index":11092,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["constructor(grouprepo",{"_index":11168,"title":{},"body":{"injectables/GroupService.html":{}}}],["constructor(groupservice",{"_index":11195,"title":{},"body":{"injectables/GroupUc.html":{}}}],["constructor(groupuser",{"_index":21008,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["constructor(httpservice",{"_index":3923,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/OauthAdapterService.html":{}}}],["constructor(id",{"_index":2341,"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":1479,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["constructor(init",{"_index":3825,"title":{},"body":{"classes/Builder.html":{}}}],["constructor(inusermigration",{"_index":14845,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["constructor(jwtservice",{"_index":1713,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["constructor(jwtvalidationadapter",{"_index":13163,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["constructor(kcadmin",{"_index":13331,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["constructor(kcadminclient",{"_index":13249,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["constructor(kcadminservice",{"_index":13518,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["constructor(key",{"_index":7176,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["constructor(ldapconfig",{"_index":12360,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(lessonrepo",{"_index":14278,"title":{},"body":{"injectables/LessonService.html":{}}}],["constructor(loader",{"_index":1970,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["constructor(logger",{"_index":2969,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ErrorLogger.html":{},"injectables/FilesStorageClientAdapterService.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":14515,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["constructor(logourl",{"_index":8739,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["constructor(logouturl",{"_index":13060,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["constructor(ltirepo",{"_index":11488,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["constructor(ltitoolrepo",{"_index":14739,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["constructor(ltitoolservice",{"_index":15951,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["constructor(message",{"_index":1817,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/ForbiddenOperationError.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/PreviewActionsLoggable.html":{},"classes/ValidationError.html":{}}}],["constructor(newsrepo",{"_index":15149,"title":{},"body":{"injectables/NewsUc.html":{}}}],["constructor(oauthconfig",{"_index":12337,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oauthconfigdto",{"_index":15639,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["constructor(oauthconfigresponse",{"_index":15668,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["constructor(oauthproviderloginflowservice",{"_index":12625,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["constructor(oauthproviderservice",{"_index":15781,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["constructor(oauthservice",{"_index":11414,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["constructor(officialschoolnumber",{"_index":18395,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["constructor(oidcconfig",{"_index":12404,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oidcconfigdto",{"_index":16247,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["constructor(oidcprovisioningservice",{"_index":16403,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["constructor(operation",{"_index":14993,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["constructor(operator",{"_index":18458,"title":{},"body":{"classes/Scope.html":{}}}],["constructor(options",{"_index":5106,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(organizationelements",{"_index":5278,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["constructor(parametertype",{"_index":16515,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["constructor(params",{"_index":13962,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["constructor(payload",{"_index":18715,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["constructor(previewgeneratorservice",{"_index":16620,"title":{},"body":{"injectables/PreviewGeneratorConsumer.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":{},"injectables/AuthorizationReferenceService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.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/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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/SchoolSpecificFileCopyServiceFactory.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.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":{},"classes/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalUserDto.html":{},"entities/FederalStateEntity.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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/OauthLoginResponse.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":{},"classes/ResolvedGroupUser.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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/SystemEntity.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":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["constructor(protected",{"_index":2397,"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":16832,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["constructor(pseudonym",{"_index":20294,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["constructor(pseudonymrepo",{"_index":16987,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["constructor(pseudonymservice",{"_index":17032,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["constructor(readonly",{"_index":1412,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(redirectreponse",{"_index":17309,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["constructor(relation",{"_index":11150,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["constructor(repo",{"_index":6798,"title":{},"body":{"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/FilesService.html":{}}}],["constructor(req",{"_index":17342,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(request",{"_index":9763,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["constructor(requesttimeout",{"_index":20248,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["constructor(res",{"_index":17362,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(resourceelements",{"_index":5306,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["constructor(resourcename",{"_index":15326,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["constructor(resp",{"_index":8016,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["constructor(response",{"_index":5931,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["constructor(responsemapper",{"_index":17975,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["constructor(rolerepo",{"_index":17565,"title":{},"body":{"injectables/RoleService.html":{}}}],["constructor(roleservice",{"_index":17582,"title":{},"body":{"injectables/RoleUc.html":{}}}],["constructor(rulemanager",{"_index":1990,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["constructor(schoolexternaltoolrepo",{"_index":18194,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["constructor(schoolexternaltoolservice",{"_index":18226,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["constructor(schoolid",{"_index":18399,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["constructor(schoolname",{"_index":18283,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["constructor(schoolrepo",{"_index":14068,"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":18451,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["constructor(service",{"_index":4692,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["constructor(sharetokenservice",{"_index":18792,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["constructor(state",{"_index":16777,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["constructor(storageclient",{"_index":16656,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["constructor(strategy",{"_index":4526,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["constructor(submissionitemsresponse",{"_index":19249,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["constructor(submissionrepo",{"_index":19203,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["constructor(submissionservice",{"_index":19231,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["constructor(successful",{"_index":19258,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["constructor(system",{"_index":17066,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{}}}],["constructor(systemrepo",{"_index":13798,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["constructor(systemresponses",{"_index":17062,"title":{},"body":{"classes/PublicSystemListResponse.html":{}}}],["constructor(systemservice",{"_index":16852,"title":{},"body":{"injectables/ProvisioningService.html":{},"injectables/SystemUc.html":{}}}],["constructor(task",{"_index":12449,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["constructor(taskrepo",{"_index":19596,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["constructor(taskservice",{"_index":17724,"title":{},"body":{"injectables/RoomsService.html":{}}}],["constructor(teamsrepo",{"_index":20124,"title":{},"body":{"injectables/TeamService.html":{}}}],["constructor(timetowait",{"_index":3799,"title":{},"body":{"classes/BruteForceError.html":{}}}],["constructor(tokengenerator",{"_index":18760,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["constructor(toolfeatures",{"_index":8516,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{}}}],["constructor(toollaunchservice",{"_index":20603,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["constructor(toolpermissionhelper",{"_index":6055,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["constructor(toolreference",{"_index":20632,"title":{},"body":{"classes/ToolReference.html":{}}}],["constructor(toolreferenceresponse",{"_index":20670,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["constructor(total",{"_index":16505,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["constructor(type",{"_index":8376,"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/LinkElementContent.html":{},"classes/LinkElementResponse.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":11318,"title":{},"body":{"classes/GroupUserResponse.html":{},"classes/UserDto.html":{}}}],["constructor(userid",{"_index":10696,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["constructor(userloginmigrationid",{"_index":21017,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["constructor(userloginmigrationservice",{"_index":4481,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["constructor(usermatchschoolid",{"_index":18269,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["constructor(usermigrationdto",{"_index":14829,"title":{},"body":{"classes/MigrationDto.html":{}}}],["constructor(usermigrationservice",{"_index":21302,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["constructor(username",{"_index":20763,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["constructor(userrepo",{"_index":17325,"title":{},"body":{"injectables/ReferenceLoader.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["constructor(userservice",{"_index":9646,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["constructor(validationerrors",{"_index":1399,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["construed",{"_index":22754,"title":{},"body":{"license.html":{}}}],["consumer",{"_index":14561,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewProducer.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["consumer.authorize(requestdata",{"_index":14569,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["consumer.module.ts",{"_index":16636,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["consumer.module.ts:13",{"_index":16639,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["contact",{"_index":22843,"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":5021,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["container",{"_index":2850,"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":3725,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["container.url.params.ts",{"_index":18994,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["container.url.params.ts:11",{"_index":18996,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["containing",{"_index":15598,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["contains",{"_index":5406,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICurrentUser.html":{},"classes/ImportUserScope.html":{},"classes/LoginRequestBody.html":{},"injectables/NewsRepo.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"interfaces/OauthCurrentUser.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":2303,"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/ContentElementService.html":{},"injectables/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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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.body.params.ts",{"_index":8171,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:13",{"_index":8173,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["content.body.params.ts:133",{"_index":20766,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:19",{"_index":9790,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:23",{"_index":9789,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:32",{"_index":9853,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["content.body.params.ts:37",{"_index":14313,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:46",{"_index":14341,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["content.body.params.ts:52",{"_index":17459,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:56",{"_index":17458,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:65",{"_index":17482,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["content.body.params.ts:74",{"_index":18968,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["content.body.params.ts:83",{"_index":18983,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["content.body.params.ts:90",{"_index":8613,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["content.body.params.ts:99",{"_index":8656,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["content.component",{"_index":5067,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.description",{"_index":5081,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.url",{"_index":5080,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.dto",{"_index":16475,"title":{},"body":{"injectables/PageContentMapper.html":{},"injectables/UserMigrationService.html":{}}}],["content.dto.ts",{"_index":16460,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:2",{"_index":16464,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:4",{"_index":16463,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.identifier",{"_index":5277,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.mapper.ts",{"_index":16471,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.mapper.ts:7",{"_index":16472,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.numberofdrafttasks",{"_index":8133,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.numberofplannedtasks",{"_index":8135,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.response.ts",{"_index":16493,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:12",{"_index":16494,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:7",{"_index":16498,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.title",{"_index":5066,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.title}${content.content.text",{"_index":5073,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content/:contentid/:file",{"_index":11385,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["content_developer",{"_index":7107,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdeveloper",{"_index":7108,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdisposition",{"_index":1485,"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":3574,"title":{"injectables/ContentElementFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["contentelementid",{"_index":5692,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"injectables/ElementUc.html":{}}}],["contentelementresponsefactory",{"_index":4016,"title":{"classes/ContentElementResponseFactory.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{}}}],["contentelementresponsefactory.maptoresponse(element",{"_index":4047,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ElementController.html":{}}}],["contentelementservice",{"_index":3572,"title":{"injectables/ContentElementService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contentelementtype",{"_index":4096,"title":{},"body":{"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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":8172,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["contentelementtype.external_tool",{"_index":5570,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.file",{"_index":5562,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.link",{"_index":5564,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.rich_text",{"_index":5566,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":5568,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":5607,"title":{"injectables/ContentElementUpdateVisitor.html":{}},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["contentelementupdatevisitor(content",{"_index":5619,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["contentelementurlparams",{"_index":5689,"title":{"classes/ContentElementUrlParams.html":{}},"body":{"classes/ContentElementUrlParams.html":{},"controllers/ElementController.html":{}}}],["contentid",{"_index":1490,"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":6276,"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":6277,"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":10761,"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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"license.html":{}}}],["contents.config",{"_index":10756,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["contents.controller",{"_index":10755,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.controller.ts",{"_index":10715,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.controller.ts:25",{"_index":10720,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.module.ts",{"_index":10751,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["contents.params",{"_index":10725,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.params.ts",{"_index":10779,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.params.ts:11",{"_index":10785,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.push(element",{"_index":14201,"title":{},"body":{"classes/LessonFactory.html":{}}}],["contents.uc",{"_index":10723,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.uc.ts",{"_index":10764,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:15",{"_index":10768,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:7",{"_index":10767,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents/controller/dto/fwu",{"_index":10778,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents/controller/fwu",{"_index":10714,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents/fwu",{"_index":10750,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents/interface/config.ts",{"_index":17930,"title":{},"body":{"interfaces/S3Config.html":{}}}],["contents/uc/fwu",{"_index":10763,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contenttype",{"_index":6275,"title":{},"body":{"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":8782,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["contenttypedetector[imagesignature",{"_index":8822,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["context",{"_index":199,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"controllers/BoardController.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardManagementUc.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/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/GroupRule.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonRule.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.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/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusResponseMapper.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.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":20326,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["context(context",{"_index":4731,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["context.action",{"_index":3399,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["context.builder",{"_index":23715,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["context.builder.ts",{"_index":1803,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:11",{"_index":1811,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:17",{"_index":1809,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:5",{"_index":1807,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.contextid",{"_index":18846,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["context.controller.ts",{"_index":20384,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:122",{"_index":20399,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:146",{"_index":20407,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:44",{"_index":20390,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:70",{"_index":20394,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:89",{"_index":20403,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.getclass",{"_index":20257,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.gethandler",{"_index":20256,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.interface",{"_index":16823,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/Rule.html":{}}}],["context.interface.ts",{"_index":1797,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/ProviderOidcContext.html":{}}}],["context.params.ts",{"_index":5759,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:18",{"_index":5765,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:8",{"_index":5763,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.reponse",{"_index":2934,"title":{},"body":{"controllers/BoardController.html":{}}}],["context.reponse.ts",{"_index":2881,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:13",{"_index":2886,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:16",{"_index":2890,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:4",{"_index":2882,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.requiredpermissions",{"_index":3394,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/GroupRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["context.response",{"_index":5520,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["context.response.ts",{"_index":16264,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:12",{"_index":16271,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:15",{"_index":16272,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:19",{"_index":16274,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:6",{"_index":16269,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:9",{"_index":16270,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.switchtohttp().getrequest",{"_index":17393,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["context_external_tools",{"_index":5784,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextcanwrite",{"_index":14183,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextconfigurationenabled",{"_index":12564,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["contextdo",{"_index":20625,"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":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"controllers/ToolContextController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltool'})@httpcode(httpstatus.no_content",{"_index":20393,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltool(contextexternaltooldto",{"_index":6081,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.contextref",{"_index":6114,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref.id",{"_index":313,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltool.contextref.type",{"_index":315,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool.displayname",{"_index":5967,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.id",{"_index":5965,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltool.parameters",{"_index":282,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["contextexternaltool.schooltoolref",{"_index":6113,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.schooltoolref.schoolid",{"_index":6087,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.schooltoolref.schooltoolid",{"_index":5966,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltool.toolversion",{"_index":5968,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltoolauthorizableservice",{"_index":5723,"title":{"injectables/ContextExternalToolAuthorizableService.html":{}},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse",{"_index":5729,"title":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20383,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplateresponse",{"_index":5731,"title":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolcontextparams",{"_index":5757,"title":{"classes/ContextExternalToolContextParams.html":{}},"body":{"classes/ContextExternalToolContextParams.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltooldto",{"_index":5915,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltooldto.schooltoolref.schoolid",{"_index":6080,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltooldto.schooltoolref.schooltoolid",{"_index":6078,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltoolentity",{"_index":5768,"title":{"entities/ContextExternalToolEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["contextexternaltoolentity(props",{"_index":5879,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltoolfactory",{"_index":5791,"title":{"classes/ContextExternalToolFactory.html":{}},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolfactory.define(contextexternaltool",{"_index":5801,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolid",{"_index":3267,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ElementContentBody.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contextexternaltoolid(value",{"_index":8643,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["contextexternaltoolidparams",{"_index":5802,"title":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{}},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolmodule",{"_index":5808,"title":{"modules/ContextExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["contextexternaltoolpostparams",{"_index":5819,"title":{"classes/ContextExternalToolPostParams.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolprops",{"_index":5701,"title":{"interfaces/ContextExternalToolProps.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["contextexternaltoolquery",{"_index":5846,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{}}}],["contextexternaltoolrepo",{"_index":5336,"title":{"injectables/ContextExternalToolRepo.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{}}}],["contextexternaltoolrequestmapper",{"_index":5908,"title":{"classes/ContextExternalToolRequestMapper.html":{}},"body":{"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolrequestmapper.mapcontextexternaltoolrequest(body",{"_index":20411,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse",{"_index":5929,"title":{"classes/ContextExternalToolResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper",{"_index":5950,"title":{"classes/ContextExternalToolResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(contextexternaltool",{"_index":20425,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(createdtool",{"_index":20413,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(tool",{"_index":20421,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(updatedtool",{"_index":20428,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponse(toolreference",{"_index":20658,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponses(toolreferences",{"_index":20661,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiunprocessableentityresponse()@apioperation({summary",{"_index":20406,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20388,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apioperation({summary",{"_index":20397,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolrule",{"_index":1887,"title":{"injectables/ContextExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/RuleManager.html":{}}}],["contextexternaltools",{"_index":6039,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltools.length",{"_index":9732,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltools.map",{"_index":20420,"title":{},"body":{"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolscope",{"_index":5848,"title":{"classes/ContextExternalToolScope.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["contextexternaltoolsearchlistresponse",{"_index":6019,"title":{"classes/ContextExternalToolSearchListResponse.html":{}},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse(mappedtools",{"_index":20422,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse})@apioperation({summary",{"_index":20402,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolservice",{"_index":5815,"title":{"injectables/ContextExternalToolService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltoolsinuse",{"_index":8526,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["contextexternaltoolsinuse.some",{"_index":8545,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["contextexternaltooltemplateinfo",{"_index":8524,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltooltype",{"_index":5773,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltooltype.board_element",{"_index":5906,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooltype.course",{"_index":5904,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooluc",{"_index":6047,"title":{"injectables/ContextExternalToolUc.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolvalidationservice",{"_index":5816,"title":{"injectables/ContextExternalToolValidationService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["contextid",{"_index":5760,"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":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextparameter",{"_index":7303,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["contextreadwithtopiccreate",{"_index":14177,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextref",{"_index":5697,"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/FeathersRosterService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextref.id",{"_index":9734,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextrefparams",{"_index":6126,"title":{"classes/ContextRefParams.html":{}},"body":{"classes/ContextRefParams.html":{},"controllers/ToolConfigurationController.html":{}}}],["contexttoolid",{"_index":5975,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["contexttype",{"_index":4773,"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":{}}}],["continue",{"_index":22592,"title":{},"body":{"license.html":{}}}],["continued",{"_index":22576,"title":{},"body":{"license.html":{}}}],["contractual",{"_index":22631,"title":{},"body":{"license.html":{}}}],["contradict",{"_index":22761,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contrast",{"_index":22286,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contributor",{"_index":22704,"title":{},"body":{"license.html":{}}}],["contributor's",{"_index":22706,"title":{},"body":{"license.html":{}}}],["control",{"_index":20487,"title":{},"body":{"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controlled",{"_index":22709,"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/GroupController.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/PseudonymController.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/ToolReferenceController.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":{},"modules/GroupApiModule.html":{},"controllers/GroupController.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/PseudonymController.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/ToolReferenceController.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":14488,"title":{},"body":{"controllers/LoginController.html":{}}}],["controller('board",{"_index":3739,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["controller('boards",{"_index":2938,"title":{},"body":{"controllers/BoardController.html":{}}}],["controller('cards",{"_index":4017,"title":{},"body":{"controllers/CardController.html":{}}}],["controller('collaborative",{"_index":4626,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["controller('columns",{"_index":4935,"title":{},"body":{"controllers/ColumnController.html":{}}}],["controller('courses",{"_index":6626,"title":{},"body":{"controllers/CourseController.html":{}}}],["controller('dashboard",{"_index":7382,"title":{},"body":{"controllers/DashboardController.html":{}}}],["controller('elements",{"_index":8213,"title":{},"body":{"controllers/ElementController.html":{}}}],["controller('fwu",{"_index":10727,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["controller('groups",{"_index":10965,"title":{},"body":{"controllers/GroupController.html":{}}}],["controller('h5p",{"_index":11374,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["controller('lessons",{"_index":14143,"title":{},"body":{"controllers/LessonController.html":{}}}],["controller('management/database",{"_index":7848,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["controller('management/idm",{"_index":13643,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["controller('news",{"_index":14973,"title":{},"body":{"controllers/NewsController.html":{}}}],["controller('oauth2",{"_index":15896,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["controller('pseudonyms",{"_index":16935,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["controller('rooms",{"_index":17705,"title":{},"body":{"controllers/RoomsController.html":{}}}],["controller('school",{"_index":13948,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["controller('sharetoken",{"_index":18650,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["controller('sso",{"_index":16129,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["controller('submissions",{"_index":19011,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["controller('systems",{"_index":19302,"title":{},"body":{"controllers/SystemController.html":{}}}],["controller('tasks",{"_index":19573,"title":{},"body":{"controllers/TaskController.html":{}}}],["controller('team",{"_index":20076,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["controller('tools",{"_index":20346,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolLaunchController.html":{}}}],["controller('tools/context",{"_index":20410,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["controller('tools/external",{"_index":20459,"title":{},"body":{"controllers/ToolController.html":{}}}],["controller('tools/school",{"_index":20731,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["controller('tools/tool",{"_index":20655,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["controller('user",{"_index":20835,"title":{},"body":{"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["controller('user/import",{"_index":12786,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["controller('videoconference",{"_index":21851,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["controller('videoconference2",{"_index":21739,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["controller.ts",{"_index":23173,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["controller/account.controller",{"_index":452,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["controller/api",{"_index":23468,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["controller/collaborative",{"_index":4647,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["controller/course.controller",{"_index":13856,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/dashboard.controller",{"_index":13857,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/database",{"_index":14767,"title":{},"body":{"modules/ManagementModule.html":{}}}],["controller/dto",{"_index":982,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/ContentElementService.html":{},"injectables/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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/PseudonymMapper.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":21356,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["controller/dto/password",{"_index":1002,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["controller/dto/response/video",{"_index":21948,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["controller/dto/single",{"_index":17601,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["controller/dto/target",{"_index":19511,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["controller/dto/task",{"_index":19932,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["controller/dto/team",{"_index":4702,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["controller/fwu",{"_index":10754,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["controller/h5p",{"_index":11396,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["controller/import",{"_index":12925,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["controller/keycloak",{"_index":13313,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["controller/legacy",{"_index":13920,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["controller/news.controller",{"_index":15071,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/oauth",{"_index":15582,"title":{},"body":{"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{}}}],["controller/pseudonym.controller",{"_index":16922,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["controller/rooms.controller",{"_index":13858,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/server.controller",{"_index":18539,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["controller/share",{"_index":18864,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["controller/team",{"_index":15072,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/transformer/sanitize",{"_index":17454,"title":{},"body":{"classes/RichText.html":{}}}],["controller/user",{"_index":21027,"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":{},"modules/GroupApiModule.html":{},"controllers/GroupController.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.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/ToolReferenceController.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":13810,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["controllers/login.controller",{"_index":1512,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["convenient",{"_index":22380,"title":{},"body":{"license.html":{}}}],["convention",{"_index":23307,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["conventions",{"_index":23156,"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":15289,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter((userid",{"_index":15303,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter(boolean",{"_index":15296,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.includes(userid",{"_index":15299,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["converter/bson.converter",{"_index":11670,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["converterutil",{"_index":2250,"title":{"injectables/ConverterUtil.html":{}},"body":{"injectables/BBBService.html":{},"injectables/ConverterUtil.html":{},"modules/VideoConferenceModule.html":{}}}],["converts",{"_index":794,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["converttodatabasevalue",{"_index":18921,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttodatabasevalue(value",{"_index":18926,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue",{"_index":18922,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue(value",{"_index":18928,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["convey",{"_index":22368,"title":{},"body":{"license.html":{}}}],["conveyance",{"_index":22739,"title":{},"body":{"license.html":{}}}],["conveyed",{"_index":22587,"title":{},"body":{"license.html":{}}}],["conveying",{"_index":22375,"title":{},"body":{"license.html":{}}}],["conveys",{"_index":22630,"title":{},"body":{"license.html":{}}}],["cookie",{"_index":11530,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["cookie.parse(request.headers.cookie",{"_index":13159,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookie.startswith('oauth2",{"_index":11546,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["cookiedefaultoptions",{"_index":16166,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookieoptions",{"_index":16116,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookies",{"_index":11456,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{}}}],["cookies[name",{"_index":13160,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookiesdto",{"_index":6139,"title":{"classes/CookiesDto.html":{}},"body":{"classes/CookiesDto.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["cooperation",{"_index":22279,"title":{},"body":{"license.html":{}}}],["copied",{"_index":1582,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/LessonCopyApiParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/TaskCopyApiParams.html":{}}}],["copies",{"_index":17194,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"license.html":{}}}],["copies.push(childcopy",{"_index":17197,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy",{"_index":2524,"title":{},"body":{"classes/BaseFactory.html":{},"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CourseCopyService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyUC.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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(original",{"_index":17123,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy(params",{"_index":3295,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy(paths",{"_index":17832,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copy(userid",{"_index":10072,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["copy.id",{"_index":17170,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.interface",{"_index":3302,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.interface.ts",{"_index":18409,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.interface.ts:18",{"_index":18412,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.params",{"_index":6401,"title":{},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{}}}],["copy.params.ts",{"_index":14148,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:14",{"_index":14149,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:22",{"_index":19592,"title":{},"body":{"classes/TaskCopyApiParams.html":{}}}],["copy.service",{"_index":3006,"title":{},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/CourseCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["copy.service.ts",{"_index":2960,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:112",{"_index":2986,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:120",{"_index":2989,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:128",{"_index":2984,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:14",{"_index":3297,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.service.ts:143",{"_index":2993,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:15",{"_index":6648,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.service.ts:16",{"_index":4739,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copy.service.ts:164",{"_index":2999,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:177",{"_index":2996,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:18",{"_index":19597,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:25",{"_index":4741,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:36",{"_index":2975,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:42",{"_index":19602,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:46",{"_index":2978,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:56",{"_index":6652,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:63",{"_index":19607,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:70",{"_index":19605,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:72",{"_index":6657,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:78",{"_index":2981,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["copy.service.ts:9",{"_index":18422,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.uc",{"_index":17701,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/TaskController.html":{}}}],["copy.uc.ts",{"_index":6697,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:10",{"_index":6700,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:102",{"_index":19649,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:11",{"_index":19634,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:112",{"_index":19639,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:12",{"_index":14154,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:16",{"_index":6703,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:21",{"_index":14162,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:27",{"_index":6701,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:55",{"_index":14159,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:61",{"_index":19641,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:63",{"_index":14156,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:68",{"_index":14157,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:69",{"_index":19636,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:74",{"_index":19638,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:81",{"_index":19644,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:92",{"_index":19647,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.visitor",{"_index":3300,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.visitor.ts",{"_index":17114,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:126",{"_index":17142,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:146",{"_index":17144,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:165",{"_index":17146,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:183",{"_index":17148,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:192",{"_index":17138,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:21",{"_index":17122,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:210",{"_index":17132,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:214",{"_index":17128,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:227",{"_index":17126,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:23",{"_index":17121,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:27",{"_index":17124,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:38",{"_index":17136,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:59",{"_index":17134,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:77",{"_index":17130,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:96",{"_index":17140,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy_files_of_parent",{"_index":11920,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["copyapiresponse",{"_index":6149,"title":{"classes/CopyApiResponse.html":{}},"body":{"classes/CopyApiResponse.html":{},"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copyapiresponse})@apiresponse({status",{"_index":18634,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["copyboard",{"_index":2961,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboard(params",{"_index":2976,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements",{"_index":2962,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements(boardelements",{"_index":2979,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard",{"_index":2963,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["copycolumnboard(columnboardtarget",{"_index":2983,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard(props",{"_index":4740,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copycourse",{"_index":6642,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourse(currentuser",{"_index":17685,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copycourse(undefined",{"_index":6649,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourse(userid",{"_index":6702,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourseentity",{"_index":6643,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourseentity(params",{"_index":6650,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copydict",{"_index":3076,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copydictionary",{"_index":6353,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copyelementtype",{"_index":3007,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.board",{"_index":3021,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.card",{"_index":17162,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.column",{"_index":17160,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.columnboard",{"_index":17157,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.content",{"_index":19623,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.course",{"_index":6694,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.coursegroup_group",{"_index":6691,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.external_tool_element",{"_index":17186,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file",{"_index":6331,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_element",{"_index":17176,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_group",{"_index":6336,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.lesson",{"_index":3082,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.link_element",{"_index":17179,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.ltitool_group",{"_index":6686,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.metadata",{"_index":6684,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.richtext_element",{"_index":17182,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_container_element",{"_index":17184,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_group",{"_index":19624,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.submission_item",{"_index":17185,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.task",{"_index":19626,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.time_group",{"_index":6687,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.user_group",{"_index":6685,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyentity",{"_index":3023,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyentity.course?.id",{"_index":6413,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyentity.id",{"_index":6411,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyfiledto",{"_index":6169,"title":{"classes/CopyFileDto.html":{}},"body":{"classes/CopyFileDto.html":{},"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfiledto.id",{"_index":17173,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.name",{"_index":17174,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.sourceid",{"_index":17175,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfilelistresponse",{"_index":6182,"title":{"classes/CopyFileListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse.map((response",{"_index":10470,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["copyfileparams",{"_index":6220,"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":6185,"title":{"classes/CopyFileResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["copyfileresponsebuilder",{"_index":6257,"title":{"classes/CopyFileResponseBuilder.html":{}},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["copyfiles",{"_index":6262,"title":{"interfaces/CopyFiles.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["copyfilesofentity",{"_index":6294,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofentity(originalentity",{"_index":6300,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparent",{"_index":10428,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(param",{"_index":10434,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["copyfilesofparent(params",{"_index":18410,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(payload",{"_index":10499,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:finished",{"_index":10635,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:started",{"_index":10633,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparentparambuilder",{"_index":6278,"title":{"classes/CopyFilesOfParentParamBuilder.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparambuilder.build(userid",{"_index":6317,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparams",{"_index":6242,"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":6243,"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":6291,"title":{"injectables/CopyFilesService.html":{}},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["copyhelpermodule",{"_index":6338,"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":2974,"title":{"injectables/CopyHelperService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copying",{"_index":6832,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"license.html":{}}}],["copyingsince",{"_index":6470,"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":{},"classes/UsersList.html":{}}}],["copyleft",{"_index":22275,"title":{},"body":{"license.html":{}}}],["copylesson",{"_index":2964,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copylesson(currentuser",{"_index":17688,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copylesson(originallesson",{"_index":2985,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copylesson(userid",{"_index":14160,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copymap",{"_index":17115,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copymapper",{"_index":6386,"title":{"classes/CopyMapper.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maplessoncopytodomain(params",{"_index":17720,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copymapper.maptaskcopytodomain(params",{"_index":19589,"title":{},"body":{"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(copystatus",{"_index":17717,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(element",{"_index":6417,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyname",{"_index":6659,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copyobjectcommand",{"_index":17847,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyobjectcommandoutput",{"_index":17848,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths",{"_index":17883,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths.map((p",{"_index":17893,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyprops",{"_index":1794,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["copyrequest",{"_index":17887,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyrequests",{"_index":17897,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyright",{"_index":22265,"title":{},"body":{"license.html":{}}}],["copyrightable",{"_index":22342,"title":{},"body":{"license.html":{}}}],["copyrighted",{"_index":22434,"title":{},"body":{"license.html":{}}}],["copyrightowners",{"_index":5036,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["copysource",{"_index":17899,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copystatus",{"_index":2992,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"classes/RecursiveCopyVisitor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copystatus.copyentity",{"_index":6409,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.copyentity.context",{"_index":4760,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copystatus.elements",{"_index":6414,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.status",{"_index":6408,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.title",{"_index":6406,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.type",{"_index":6407,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatusenum",{"_index":3008,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.fail",{"_index":3031,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copystatusenum.not_doing",{"_index":6367,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.not_implemented",{"_index":6692,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copystatusenum.partial",{"_index":6361,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copystatusenum.success",{"_index":6332,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copytask",{"_index":2965,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copytask(currentuser",{"_index":19546,"title":{},"body":{"controllers/TaskController.html":{}}}],["copytask(originaltask",{"_index":2988,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copytask(params",{"_index":19598,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytask(userid",{"_index":18804,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copytaskentity",{"_index":19594,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytaskentity(params",{"_index":19600,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["core",{"_index":6430,"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":23511,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["core/error",{"_index":23269,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["core/logger/logger.module",{"_index":454,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["coremodule",{"_index":6422,"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":4614,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.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":22805,"title":{},"body":{"license.html":{}}}],["correctly",{"_index":23300,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["correctness",{"_index":23055,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["corresponding",{"_index":14519,"title":{},"body":{"classes/LoginResponse-1.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["cors",{"_index":22111,"title":{},"body":{"dependencies.html":{}}}],["cost",{"_index":22524,"title":{},"body":{"license.html":{}}}],["count",{"_index":5880,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/FileRecordRepo.html":{},"interfaces/ICleanOptions.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/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.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":12965,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["countednewslist",{"_index":15093,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["countedtasklist",{"_index":19803,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["counterclaim",{"_index":22696,"title":{},"body":{"license.html":{}}}],["counties",{"_index":6457,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countpipeline",{"_index":21533,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countpipeline.push",{"_index":21534,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countries",{"_index":22365,"title":{},"body":{"license.html":{}}}],["country",{"_index":22732,"title":{},"body":{"license.html":{}}}],["counts",{"_index":6830,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["county",{"_index":6445,"title":{"classes/County.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.antareskey",{"_index":6462,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.countyid",{"_index":6460,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.name",{"_index":6458,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countyid",{"_index":6449,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["coupling",{"_index":23151,"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/ColumnBoardCopyService.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":{},"injectables/FeathersRosterService.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/LessonCopyUC.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/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.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":5039,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.description",{"_index":23684,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.entity",{"_index":2646,"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.extractids(this.students",{"_index":6562,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.substitutionteachers",{"_index":6566,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.teachers",{"_index":6563,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractuserlist(users",{"_index":6574,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.factory",{"_index":6771,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["course.getmetadata",{"_index":6814,"title":{},"body":{"classes/CourseMapper.html":{}}}],["course.getstudentslist().map((user",{"_index":3152,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getsubstitutionteacherslist().map((user",{"_index":3150,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getteacherslist().map((user",{"_index":3145,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.id",{"_index":9691,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.name",{"_index":318,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CourseCopyService.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.removeuser(userid",{"_index":6967,"title":{},"body":{"injectables/CourseService.html":{}}}],["course.rule",{"_index":6790,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["course.school",{"_index":23682,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.school.id",{"_index":4754,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["course.service",{"_index":5031,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.students.contains(user",{"_index":17670,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.students.length",{"_index":9692,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.students.loaditems",{"_index":9698,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.substitutionteachers.contains(user",{"_index":17668,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.substitutionteachers.loaditems",{"_index":9700,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.teachers",{"_index":5082,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.teachers.contains(user",{"_index":17669,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.teachers.loaditems",{"_index":9699,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursecolumnboardtargets",{"_index":17734,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursecontroller",{"_index":6603,"title":{"controllers/CourseController.html":{}},"body":{"controllers/CourseController.html":{},"modules/LearnroomApiModule.html":{}}}],["coursecopy",{"_index":6654,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.copyingsince",{"_index":6682,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.name",{"_index":6693,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyparams",{"_index":6651,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyservice",{"_index":6640,"title":{"injectables/CourseCopyService.html":{}},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenUC.html":{}}}],["coursecopyuc",{"_index":6695,"title":{"injectables/CourseCopyUC.html":{}},"body":{"injectables/CourseCopyUC.html":{},"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["courseexportservice",{"_index":6716,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["courseexportuc",{"_index":6619,"title":{"injectables/CourseExportUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomApiModule.html":{}}}],["coursefactory",{"_index":6723,"title":{"classes/CourseFactory.html":{}},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.build",{"_index":6773,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.define(course",{"_index":6744,"title":{},"body":{"classes/CourseFactory.html":{}}}],["coursefeatures",{"_index":6490,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["coursegroup",{"_index":6518,"title":{"entities/CourseGroup.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.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":{},"classes/UsersList.html":{}}}],["coursegroup.course",{"_index":14222,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["coursegroup.entity",{"_index":6519,"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":{},"classes/UsersList.html":{}}}],["coursegroup.removestudent(userid",{"_index":6806,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupfactory",{"_index":6768,"title":{"classes/CourseGroupFactory.html":{}},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupfactory.define(coursegroup",{"_index":6772,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupid",{"_index":11883,"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":12295,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["coursegrouppermission",{"_index":14234,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouppermission(user",{"_index":14240,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouprepo",{"_index":1929,"title":{"injectables/CourseGroupRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["coursegrouprule",{"_index":1888,"title":{"injectables/CourseGroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{}}}],["coursegroups",{"_index":6471,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["coursegroups.foreach((coursegroup",{"_index":6805,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupservice",{"_index":6794,"title":{"injectables/CourseGroupService.html":{}},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupsexist",{"_index":6688,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursegroupsofuser",{"_index":19166,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["courseid",{"_index":2633,"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":{},"injectables/FeathersRosterService.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["courseids",{"_index":6778,"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":17731,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursemapper",{"_index":6623,"title":{"classes/CourseMapper.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMapper.html":{}}}],["coursemapper.maptometadataresponse(course",{"_index":6630,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadata",{"_index":6813,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.copyingsince",{"_index":6821,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.displaycolor",{"_index":6818,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.id",{"_index":6815,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.shorttitle",{"_index":6817,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.startdate",{"_index":6819,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.title",{"_index":6816,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.untildate",{"_index":6820,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadatalistresponse",{"_index":6622,"title":{"classes/CourseMetadataListResponse.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursemetadatalistresponse(courseresponses",{"_index":6631,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadataresponse",{"_index":6812,"title":{"classes/CourseMetadataResponse.html":{}},"body":{"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursename",{"_index":3451,"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":6844,"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":6877,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["coursepermission",{"_index":14235,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursepermission(user",{"_index":14242,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursequeryparams",{"_index":6608,"title":{"classes/CourseQueryParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseQueryParams.html":{}}}],["coursereference",{"_index":4794,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/RoomsService.html":{}}}],["courserepo",{"_index":1930,"title":{"injectables/CourseRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.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":6628,"title":{},"body":{"controllers/CourseController.html":{}}}],["courserule",{"_index":1889,"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":4748,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/DashboardUc.html":{},"injectables/FeathersRosterService.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["courses.filter((c",{"_index":19971,"title":{},"body":{"injectables/TaskUC.html":{}}}],["courses.foreach((course",{"_index":6966,"title":{},"body":{"injectables/CourseService.html":{}}}],["courses.map((course",{"_index":6629,"title":{},"body":{"controllers/CourseController.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["courses.map(async",{"_index":9724,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursescope",{"_index":6913,"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":{},"injectables/FeathersRosterService.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursestatus",{"_index":6675,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursetasks",{"_index":17733,"title":{},"body":{"injectables/RoomsService.html":{}}}],["courseuc",{"_index":6617,"title":{"injectables/CourseUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"modules/LearnroomApiModule.html":{}}}],["courseurlparams",{"_index":6607,"title":{"classes/CourseUrlParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseUrlParams.html":{}}}],["court",{"_index":22760,"title":{},"body":{"license.html":{}}}],["courts",{"_index":22825,"title":{},"body":{"license.html":{}}}],["covenant",{"_index":22722,"title":{},"body":{"license.html":{}}}],["cover",{"_index":23303,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["coverage",{"_index":1126,"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":22352,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["cp",{"_index":23566,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cr",{"_index":13418,"title":{},"body":{"injectables/KeycloakConfigurationService.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":14974,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["create(config",{"_index":2253,"title":{},"body":{"injectables/BBBService.html":{}}}],["create(context",{"_index":4788,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["create(currentuser",{"_index":14950,"title":{},"body":{"controllers/NewsController.html":{}}}],["create(currentuserid",{"_index":21786,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create(data",{"_index":9740,"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":4094,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["create(path",{"_index":17834,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["create(userid",{"_index":15151,"title":{},"body":{"injectables/NewsUc.html":{},"injectables/SubmissionItemService.html":{}}}],["create.config.ts",{"_index":2068,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:23",{"_index":2087,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:25",{"_index":2081,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:27",{"_index":2085,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:29",{"_index":2083,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:31",{"_index":2088,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:33",{"_index":2082,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:35",{"_index":2086,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:37",{"_index":2080,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:39",{"_index":2084,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:9",{"_index":2079,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.params.ts",{"_index":8616,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:14",{"_index":21762,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:16",{"_index":19676,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:17",{"_index":8624,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:19",{"_index":21770,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:21",{"_index":14587,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:22",{"_index":8627,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:25",{"_index":15531,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{}}}],["create.params.ts:26",{"_index":14586,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:27",{"_index":8623,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:30",{"_index":14583,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:33",{"_index":19681,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:34",{"_index":14585,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:35",{"_index":15530,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:38",{"_index":14581,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:39",{"_index":15529,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:41",{"_index":19678,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:43",{"_index":15533,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:48",{"_index":8621,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:49",{"_index":19674,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:55",{"_index":8626,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:57",{"_index":19680,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:59",{"_index":8622,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:63",{"_index":8625,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:9",{"_index":21761,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.response.ts",{"_index":2155,"title":{},"body":{"interfaces/BBBCreateResponse.html":{}}}],["create.uc.ts",{"_index":21778,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:19",{"_index":21785,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:26",{"_index":21789,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:40",{"_index":21787,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:67",{"_index":21792,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:88",{"_index":21796,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:92",{"_index":21794,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create_tokens_for_users=true",{"_index":23589,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["createaccount",{"_index":12678,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createaccount(account",{"_index":12687,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createandjoin",{"_index":21837,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandjoin(currentuser",{"_index":21838,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandstartprometheusmetricsappifenabled",{"_index":16803,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createapiresponsetimemetricmiddleware",{"_index":16781,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["createauthenticationcodegranttokenrequestpayload",{"_index":20281,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createauthenticationcodegranttokenrequestpayload(clientid",{"_index":20283,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createboard",{"_index":3479,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboard(courseid",{"_index":3485,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboardelementfor(boardelementtarget",{"_index":2708,"title":{},"body":{"entities/Board.html":{}}}],["createboardforcourse",{"_index":3661,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createboardforcourse(courseid",{"_index":3665,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createbucket",{"_index":17824,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createbucketcommand",{"_index":17849,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createcard",{"_index":4910,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcard(urlparams",{"_index":4914,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcardbodyparams",{"_index":4916,"title":{"classes/CreateCardBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["createcardbodyparams})@post(':columnid/cards",{"_index":4920,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcards",{"_index":3505,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcards(amount",{"_index":3513,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createclient",{"_index":7939,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["createclient(storageprovider",{"_index":7947,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["createcollection",{"_index":7867,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcollection(collectionname",{"_index":7877,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcolumn",{"_index":2893,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumn(urlparams",{"_index":2898,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumns",{"_index":3506,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcolumns(amount",{"_index":3515,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createconfigmoduleoptions",{"_index":10592,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["createcontentelementbodyparams",{"_index":3975,"title":{"classes/CreateContentElementBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CreateContentElementBodyParams.html":{}}}],["createcontextexternaltool",{"_index":6050,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(currentuser",{"_index":20386,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(userid",{"_index":6059,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["createcourse",{"_index":6895,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["createcourse(course",{"_index":6899,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["createcourse(userid",{"_index":23686,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["created",{"_index":2412,"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":21729,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["created.id",{"_index":2415,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["createdaccountid",{"_index":13677,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdaccountid.id",{"_index":13679,"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":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"entities/FederalStateEntity.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/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/LinkElementResponseMapper.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["createdat.$date",{"_index":11778,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createdate",{"_index":2156,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createddate",{"_index":756,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createdir",{"_index":10278,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdir(folderpath",{"_index":10287,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdmodel",{"_index":7697,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["createdschoolexternaltool",{"_index":18217,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["createdschoolexternaltooldo",{"_index":20746,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createdto",{"_index":8149,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createdto(undefined",{"_index":17588,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["createdtool",{"_index":6084,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createelement",{"_index":3967,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["createelement(urlparams",{"_index":3973,"title":{},"body":{"controllers/CardController.html":{}}}],["createelement(userid",{"_index":4156,"title":{},"body":{"injectables/CardUc.html":{}}}],["createelements",{"_index":3507,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createelements(amount",{"_index":3517,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createemptyelements",{"_index":4090,"title":{},"body":{"injectables/CardService.html":{}}}],["createemptyelements(card",{"_index":4098,"title":{},"body":{"injectables/CardService.html":{}}}],["createentity",{"_index":2345,"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":2360,"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":10795,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorloggable(error",{"_index":10806,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse",{"_index":10796,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse(error",{"_index":10808,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror",{"_index":10797,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror(error",{"_index":10810,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror",{"_index":10798,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror(error",{"_index":10812,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception",{"_index":10799,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception(exception",{"_index":10814,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforunknownerror",{"_index":10800,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createetherpad",{"_index":8402,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createetherpad(userid",{"_index":8406,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createexternaltool",{"_index":9274,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["createexternaltool(currentuser",{"_index":20432,"title":{},"body":{"controllers/ToolController.html":{}}}],["createexternaltool(externaltool",{"_index":9289,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["createexternaltool(userid",{"_index":9394,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["createfile",{"_index":20234,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileresponse",{"_index":20235,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileurlreplacements",{"_index":6295,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createfileurlreplacements(filedtos",{"_index":6302,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createflowrequest",{"_index":13396,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["creategridelement",{"_index":7642,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategridelement(elementwithposition",{"_index":7653,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategroup(name",{"_index":1247,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createhttpexceptionoptions",{"_index":8383,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createhttpexceptionoptions(error",{"_index":8387,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createidentifier",{"_index":5032,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["createidentifier(content._id",{"_index":5063,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(courseid",{"_index":5035,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lesson.id",{"_index":5048,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lessonid)}/${createidentifier(content._id)}.html",{"_index":5065,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(task.id",{"_index":5091,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentityprovider",{"_index":13323,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidentityprovider(oidcconfig",{"_index":13342,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper",{"_index":13324,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper(idpalias",{"_index":13345,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidtoken",{"_index":12623,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createidtoken(userid",{"_index":12630,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createifnotrunning",{"_index":21779,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createifnotrunning(currentuserid",{"_index":21788,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createiframesubject",{"_index":12624,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createiframesubject(user",{"_index":12632,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createinstance(targetmodel",{"_index":6875,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["createjwt",{"_index":13182,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["createjwt(params",{"_index":7009,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtparams",{"_index":6990,"title":{"interfaces/CreateJwtParams.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtpayload",{"_index":1719,"title":{"interfaces/CreateJwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/JwtPayload.html":{},"injectables/LoginUc.html":{}}}],["createlaunchdata",{"_index":122,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchdata(userid",{"_index":171,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest",{"_index":123,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdata",{"_index":173,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdatado",{"_index":12578,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["createlesson",{"_index":14210,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(lesson",{"_index":14212,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(userid",{"_index":23690,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createlogmessageforvalidationerrors",{"_index":8278,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createlogmessageforvalidationerrors(error",{"_index":8285,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createmessage",{"_index":13872,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessage(message",{"_index":13876,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessagewithcontext",{"_index":14450,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmessagewithcontext(loggable",{"_index":14453,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmikroormmodule",{"_index":14894,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["createmock",{"_index":20216,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["createnewaccount",{"_index":16343,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["createnewentityfromdo",{"_index":2346,"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":2363,"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":21243,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewmigration(school",{"_index":21251,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewsparams",{"_index":7031,"title":{"classes/CreateNewsParams.html":{}},"body":{"classes/CreateNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["createnexboard",{"_index":15218,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createnexboard(userid",{"_index":15220,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createoauth2client",{"_index":15776,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["createoauth2client(currentuser",{"_index":15783,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["createoauth2client(data",{"_index":16045,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["createorupdate",{"_index":8934,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdate(domainobject",{"_index":8943,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdateboardnode",{"_index":17241,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateboardnode(boardnode",{"_index":17245,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateidmaccount",{"_index":13652,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdateidmaccount(account",{"_index":13654,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createpath",{"_index":16592,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpath(schoolid",{"_index":16596,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewdirectorypath",{"_index":16711,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewdirectorypath(filerecord.getschoolid",{"_index":16718,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewfilepath",{"_index":16593,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewfilepath(schoolid",{"_index":16599,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash",{"_index":16594,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash(id",{"_index":16598,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createprometheusmetricsapp",{"_index":16782,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createprometheusmetricsapp(route",{"_index":16811,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createqueryordermap",{"_index":20886,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createqueryordermap(sort",{"_index":20888,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createredisidentifierfromjwtdata",{"_index":13204,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createredisidentifierfromjwtdata(accountid",{"_index":13210,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createrequest",{"_index":10615,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrequest(event",{"_index":10625,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrichtextelement",{"_index":4784,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createrichtextelement(text",{"_index":4790,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creates",{"_index":2255,"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":17925,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["creates3clientadapter(config",{"_index":17929,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["createschoolbysuperhero(userid",{"_index":23671,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createschoolexternaltool",{"_index":18222,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(currentuser",{"_index":20713,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(userid",{"_index":18228,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["createsharetoken",{"_index":18621,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["createsharetoken(currentuser",{"_index":18624,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["createsharetoken(userid",{"_index":18806,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["createstudentstatusforuser(user",{"_index":12534,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createsubmissionitem",{"_index":8192,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["createsubmissionitem(urlparams",{"_index":8194,"title":{},"body":{"controllers/ElementController.html":{}}}],["createsubmissionitem(userid",{"_index":8232,"title":{},"body":{"injectables/ElementUc.html":{}}}],["createsubmissionitembodyparams",{"_index":7054,"title":{"classes/CreateSubmissionItemBodyParams.html":{}},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{}}}],["createsubmissionitembodyparams})@post(':contentelementid/submissions",{"_index":8197,"title":{},"body":{"controllers/ElementController.html":{}}}],["createtask",{"_index":19741,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtask(task",{"_index":19746,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtaskstatus",{"_index":8059,"title":{},"body":{"classes/DtoCreator.html":{}}}],["createtaskstatus(task",{"_index":8076,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createteacherstatusforuser(user",{"_index":12525,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createteam",{"_index":4521,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createteam(team",{"_index":4530,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createtestingmodule",{"_index":23414,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["createtime",{"_index":2157,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createtmpdir",{"_index":10279,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtmpdir(dirnameprefix",{"_index":10291,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtoken",{"_index":18757,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createtoken(payload",{"_index":18765,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createuser(email",{"_index":1253,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createuserbyadmin(userid",{"_index":23674,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createusermigrationdto",{"_index":21402,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusermigrationdto(urlpath",{"_index":21406,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusersearchindex",{"_index":11787,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createusertoken(userid",{"_index":1217,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createwelcomecolumnboard",{"_index":4785,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createwelcomecolumnboard(coursereference",{"_index":4792,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creating",{"_index":7034,"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":3502,"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":5038,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["creator",{"_index":6854,"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":9884,"title":{},"body":{"entities/FileEntity.html":{}}}],["creatorid",{"_index":6216,"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/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{}}}],["credential",{"_index":13584,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["credentialdata",{"_index":13671,"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":7995,"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":8329,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["crit(loggable",{"_index":8335,"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":22388,"title":{},"body":{"license.html":{}}}],["cross",{"_index":6432,"title":{},"body":{"modules/CoreModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["crossing",{"_index":23233,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["crud",{"_index":2451,"title":{},"body":{"classes/BaseDomainObject.html":{},"controllers/CollaborativeStorageController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["crud.uc",{"_index":15893,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crud.uc.ts",{"_index":15774,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:15",{"_index":15794,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:22",{"_index":15790,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:41",{"_index":15788,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:50",{"_index":15784,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:59",{"_index":15792,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:72",{"_index":15786,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:9",{"_index":15782,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crudoperation",{"_index":14994,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["cruduc",{"_index":15900,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crypto",{"_index":1738,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BBBService.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"dependencies.html":{}}}],["crypto.createhash('sha1",{"_index":2329,"title":{},"body":{"injectables/BBBService.html":{}}}],["crypto.generatekeypairsync('rsa",{"_index":6999,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["cryptojs",{"_index":14557,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(data",{"_index":19269,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(value",{"_index":18938,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.aes.encrypt(data",{"_index":19268,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.encrypt(value",{"_index":18935,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.hmacsha1(base_string",{"_index":14567,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["cryptojs.sha256(saveduser.id",{"_index":16358,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["ctl",{"_index":9631,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["ctltoolstabenabled",{"_index":12565,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["cumbersome",{"_index":2467,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["cure",{"_index":22658,"title":{},"body":{"license.html":{}}}],["curl",{"_index":13640,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currenlty",{"_index":17676,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["current",{"_index":4618,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"controllers/GroupController.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":18446,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["currentdatetime",{"_index":11691,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["currentldapid",{"_index":13130,"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":11454,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{}}}],["currentrooms",{"_index":7517,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentrooms.foreach((room",{"_index":7519,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentteacher",{"_index":5088,"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":{},"classes/CurrentUserMapper.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.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":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.accountid",{"_index":7087,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.impersonated",{"_index":7091,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.isexternaluser",{"_index":7092,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.roles",{"_index":7089,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.schoolid",{"_index":7088,"title":{},"body":{"classes/CurrentUserMapper.html":{},"controllers/GroupController.html":{},"controllers/NewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.systemid",{"_index":7090,"title":{},"body":{"classes/CurrentUserMapper.html":{},"controllers/OauthSSOController.html":{}}}],["currentuser.userid",{"_index":3743,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CourseController.html":{},"classes/CurrentUserMapper.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuserid",{"_index":4671,"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":7062,"title":{"classes/CurrentUserMapper.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserService.html":{}}}],["currentusermapper.jwttoicurrentuser(payload",{"_index":13180,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["currentusermapper.mapcurrentusertocreatejwtpayload(userinfo",{"_index":14547,"title":{},"body":{"injectables/LoginUc.html":{}}}],["currentusermapper.maptooauthcurrentuser",{"_index":15516,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["currentusermapper.maptooauthcurrentuser(account.id",{"_index":21611,"title":{},"body":{"injectables/UserService.html":{}}}],["currentusermapper.usertoicurrentuser(account.id",{"_index":13823,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["currentyear",{"_index":12206,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["custom",{"_index":1431,"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":23266,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["customarily",{"_index":22516,"title":{},"body":{"license.html":{}}}],["customary",{"_index":22775,"title":{},"body":{"license.html":{}}}],["customer",{"_index":22521,"title":{},"body":{"license.html":{}}}],["customfields",{"_index":1171,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["customizations",{"_index":18580,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["customizing",{"_index":6435,"title":{},"body":{"modules/CoreModule.html":{}}}],["customkey",{"_index":18925,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["customltiproperty",{"_index":7101,"title":{"interfaces/CustomLtiProperty.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["customltipropertydo",{"_index":7174,"title":{"classes/CustomLtiPropertyDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["customltipropertydo('key",{"_index":14676,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["customparam",{"_index":7313,"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":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter.default",{"_index":328,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regex",{"_index":8913,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regexcomment",{"_index":8914,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.scope",{"_index":327,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some",{"_index":8905,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some((item",{"_index":8903,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.type",{"_index":308,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameter.type}/${contextexternaltool.contextref.type",{"_index":320,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdo.default",{"_index":9247,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.description",{"_index":9246,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.displayname",{"_index":9245,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.isoptional",{"_index":9253,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.name",{"_index":9244,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regex",{"_index":9248,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regexcomment",{"_index":9249,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdos",{"_index":135,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["customparameterdos.filter",{"_index":289,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdto",{"_index":9130,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterentity",{"_index":7230,"title":{"classes/CustomParameterEntity.html":{}},"body":{"classes/CustomParameterEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["customparameterentityfactory",{"_index":8714,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentityfactory.build",{"_index":8721,"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/OAuth2ToolLaunchStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterentryentity",{"_index":5776,"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":5827,"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":5937,"title":{"classes/CustomParameterEntryResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterfactory",{"_index":7261,"title":{"classes/CustomParameterFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.buildlist(number",{"_index":7314,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.define(customparameter",{"_index":7304,"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/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.body",{"_index":7306,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.path",{"_index":8717,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.query",{"_index":9161,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocationparams",{"_index":7332,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.body",{"_index":9162,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.path",{"_index":9159,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.query",{"_index":9160,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterparam",{"_index":5971,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparam.defaultvalue",{"_index":9197,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.description",{"_index":9196,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.displayname",{"_index":9195,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.isoptional",{"_index":9203,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.name",{"_index":5927,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparam.regex",{"_index":9198,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.regexcomment",{"_index":9199,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.value",{"_index":5928,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams",{"_index":5918,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams.map",{"_index":5970,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparams.map((customparameterparam",{"_index":5926,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterpostparams",{"_index":7322,"title":{"classes/CustomParameterPostParams.html":{}},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["customparameterresponse",{"_index":5743,"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":9099,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["customparameters.map((customparameterdo",{"_index":9243,"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":7338,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.context",{"_index":9157,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.global",{"_index":9155,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.school",{"_index":9156,"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":321,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.boolean",{"_index":324,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.number",{"_index":325,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.string",{"_index":326,"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":7341,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextid",{"_index":9167,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextname",{"_index":9168,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolid",{"_index":9169,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolnumber",{"_index":9170,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.boolean",{"_index":9165,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.number",{"_index":9166,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.string",{"_index":9164,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customproviderclass.name",{"_index":13887,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["customs",{"_index":7123,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["customtoparameterlocationmapping",{"_index":20532,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["customtoparameterlocationmapping[location",{"_index":20539,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["cycle",{"_index":3585,"title":{},"body":{"modules/BoardModule.html":{}}}],["cycles",{"_index":1735,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["d",{"_index":6375,"title":{},"body":{"injectables/CopyHelperService.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["damages",{"_index":22808,"title":{},"body":{"license.html":{}}}],["das",{"_index":4822,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["dash",{"_index":22241,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dashboard",{"_index":7363,"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":7782,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.getid",{"_index":7617,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboard.getuserid",{"_index":7784,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.model.mapper",{"_index":7739,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboard.moveelement(from",{"_index":7781,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.setlearnrooms(courses",{"_index":7777,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard_repo",{"_index":13862,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardcontroller",{"_index":7361,"title":{"controllers/DashboardController.html":{}},"body":{"controllers/DashboardController.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardelement",{"_index":7561,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardentity",{"_index":7395,"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":7690,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["dashboardentity(new",{"_index":7742,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardgridelementmodel",{"_index":7548,"title":{"entities/DashboardGridElementModel.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementmodelproperties",{"_index":7559,"title":{"interfaces/DashboardGridElementModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementresponse",{"_index":7580,"title":{"classes/DashboardGridElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse",{"_index":7588,"title":{"classes/DashboardGridSubElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse(metadata",{"_index":7636,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardid",{"_index":7386,"title":{},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{}}}],["dashboardmapper",{"_index":7376,"title":{"classes/DashboardMapper.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{}}}],["dashboardmapper.mapgridelement(elementwithposition",{"_index":7619,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maplearnroom(groupmetadata",{"_index":7635,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maptoresponse(dashboard",{"_index":7385,"title":{},"body":{"controllers/DashboardController.html":{}}}],["dashboardmodel",{"_index":7750,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelentity",{"_index":7560,"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":7640,"title":{"injectables/DashboardModelMapper.html":{}},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardprops",{"_index":7412,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["dashboardrepo",{"_index":7725,"title":{"injectables/DashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardresponse",{"_index":7380,"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":7378,"title":{"injectables/DashboardUc.html":{}},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardurl",{"_index":15457,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["dashboardurl.tostring",{"_index":15465,"title":{},"body":{"injectables/OAuthService.html":{}}}],["dashboardurlparams",{"_index":7367,"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":{},"modules/AuthorizationReferenceModule.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/ClassInfoSearchListResponse.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/FeathersRosterService.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":{},"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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"controllers/LoginController.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PreviewActionsLoggable.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.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":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/TooManyPseudonymsLoggableException.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":{},"interfaces/UserData.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":1474,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.body",{"_index":17866,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentlength",{"_index":17869,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentrange",{"_index":17870,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents.map((p",{"_index":17907,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents?.length",{"_index":17906,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contenttype",{"_index":17868,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.dto.ts",{"_index":15694,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:11",{"_index":15697,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:13",{"_index":15696,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:7",{"_index":15700,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:9",{"_index":15698,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.etag",{"_index":17871,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.externalgroups",{"_index":16415,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalgroups.map((externalgroup",{"_index":16417,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalschool",{"_index":16226,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.externalid",{"_index":16229,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.officialschoolnumber",{"_index":16230,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool?.officialschoolnumber",{"_index":15435,"title":{},"body":{"injectables/OAuthService.html":{}}}],["data.externaluser",{"_index":16412,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externaluser.externalid",{"_index":15434,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externaluser?.externalid",{"_index":13125,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["data.gridelement.getcontent",{"_index":7621,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.id",{"_index":6178,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.mountsdescription",{"_index":1476,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.name",{"_index":6181,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.port",{"_index":1472,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.pos",{"_index":7622,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.response",{"_index":19253,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["data.response.ts",{"_index":20952,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:11",{"_index":20954,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:14",{"_index":20955,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:17",{"_index":20956,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:3",{"_index":20953,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.result.ogdescription",{"_index":16439,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["data.result.ogimage",{"_index":16440,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["data.result.ogtitle",{"_index":16438,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["data.sourceid",{"_index":6180,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.system.systemid",{"_index":16410,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.ts",{"_index":16815,"title":{},"body":{"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["data.ts:11",{"_index":20509,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:4",{"_index":16817,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:5",{"_index":20510,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:6",{"_index":16818,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:7",{"_index":20513,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:8",{"_index":16816,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:9",{"_index":20511,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data/generateseeddata",{"_index":11672,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["database",{"_index":1948,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/DatabaseManagementConsole.html":{},"modules/DatabaseManagementModule.html":{},"interfaces/GlobalConstants.html":{},"interfaces/ICleanOptions.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":10608,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["database.module.ts",{"_index":14886,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:31",{"_index":14887,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:42",{"_index":14889,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/mongo",{"_index":14885,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/types",{"_index":10652,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["databasemanagementconsole",{"_index":7787,"title":{"classes/DatabaseManagementConsole.html":{}},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["databasemanagementcontroller",{"_index":7826,"title":{"controllers/DatabaseManagementController.html":{}},"body":{"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementmodule",{"_index":7856,"title":{"modules/DatabaseManagementModule.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["databasemanagementservice",{"_index":7860,"title":{"injectables/DatabaseManagementService.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementuc",{"_index":7792,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["dataformats",{"_index":23464,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["datamodel",{"_index":23123,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["datawithdefaults",{"_index":15802,"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/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":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/FederalStateEntity.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/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/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/LinkContentBody.html":{},"classes/LinkElementContentBody.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/RecursiveCopyVisitor.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/SchoolYearEntity.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/SystemEntity.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"license.html":{}}}],["date().gettime",{"_index":1761,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["date(2020",{"_index":13997,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["date(date.now",{"_index":6741,"title":{},"body":{"classes/CourseFactory.html":{},"classes/FileRecordFactory.html":{},"controllers/OauthSSOController.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"injectables/UserLoginMigrationService.html":{}}}],["date(now.gettime",{"_index":21283,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["date(user.createdtimestamp",{"_index":13620,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["date.now",{"_index":4508,"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":18848,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["days",{"_index":7922,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"license.html":{}}}],["dayssincedeletion",{"_index":7925,"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":{}}}],["db.service.ts",{"_index":1046,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:13",{"_index":1049,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:134",{"_index":1060,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:142",{"_index":1053,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db_password",{"_index":10589,"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":10590,"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":10591,"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":12695,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["dbcaccountid",{"_index":13579,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcaccountid:${accountdbcaccountid",{"_index":13595,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbcsystemid",{"_index":13581,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid",{"_index":13580,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid:${accountdbcuserid",{"_index":13599,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbildungscloud",{"_index":22857,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["dbname",{"_index":14891,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["dd",{"_index":14445,"title":{},"body":{"modules/LoggerModule.html":{}}}],["de",{"_index":7299,"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":23125,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["debug",{"_index":5460,"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":{},"injectables/OpenGraphProxyService.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":14412,"title":{},"body":{"injectables/Logger.html":{}}}],["debug(message",{"_index":12081,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["debugger",{"_index":22232,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["debugging",{"_index":10610,"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":{}}}],["debugmode",{"_index":1320,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["december",{"_index":22456,"title":{},"body":{"license.html":{}}}],["decide",{"_index":4662,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"todo.html":{}}}],["decides",{"_index":13359,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["decisions",{"_index":23090,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":17082,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["declared",{"_index":3847,"title":{},"body":{"classes/BusinessError.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declining",{"_index":22624,"title":{},"body":{"license.html":{}}}],["decodedjwt",{"_index":1755,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/OAuthService.html":{}}}],["decodedjwt.accountid",{"_index":1758,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodedjwt.jti",{"_index":1757,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodehtmlentities",{"_index":2745,"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":{}}}],["decodehtmlentities()@apiproperty({description",{"_index":7594,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["decorated",{"_index":10869,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["decorator",{"_index":8313,"title":{},"body":{"classes/ErrorLoggable.html":{},"controllers/LoginController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.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/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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.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/ExternalSourceResponse.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"classes/ExternalToolElementResponse.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/FederalStateEntity.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":{},"controllers/GroupController.html":{},"entities/GroupEntity.html":{},"classes/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"classes/LinkElementResponse.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":{},"classes/OauthLoginResponse.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":{},"injectables/PreviewGeneratorConsumer.html":{},"classes/PreviewParams.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.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/SchoolYearEntity.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"controllers/SystemController.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"controllers/ToolReferenceController.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":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.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":23462,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["decrypt",{"_index":11949,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decrypt(data",{"_index":11951,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decryptedclientsecret",{"_index":15482,"title":{},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["decryptedstring",{"_index":18937,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["deemed",{"_index":22444,"title":{},"body":{"license.html":{}}}],["deepmocked",{"_index":23403,"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":319,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.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":{},"classes/ClassSortParams.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":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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":{},"classes/KeycloakSeedService.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PaginationParams.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"classes/RecursiveCopyVisitor.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/UsersList.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.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":6529,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.color",{"_index":6482,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.description",{"_index":6488,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.name",{"_index":6495,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.schema.json",{"_index":22932,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["default_errorcode",{"_index":15341,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["default_language",{"_index":11806,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["default_message",{"_index":15342,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["defaultclientinternalid",{"_index":13337,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultcolumns",{"_index":7452,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["defaultconfig",{"_index":11970,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["defaultencryptionservice",{"_index":8259,"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":11594,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultmapper",{"_index":13440,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper.id",{"_index":13466,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper?.id",{"_index":13443,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmessage",{"_index":1416,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["defaultmikroormoptions",{"_index":10604,"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":15775,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["defaultoptions",{"_index":14901,"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":16285,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["defaultscopes",{"_index":12420,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["defaultsecretreplacementhinttext",{"_index":11676,"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":7325,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultvideoconferenceoptions",{"_index":21772,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everyattendeejoinsmuted",{"_index":21773,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everybodyjoinsasmoderator",{"_index":21774,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.moderatormustapprovejoinrequests",{"_index":21775,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defective",{"_index":22801,"title":{},"body":{"license.html":{}}}],["defending",{"_index":22311,"title":{},"body":{"license.html":{}}}],["defenses",{"_index":22757,"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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"classes/GroupIdParams.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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/UsersList.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":{},"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":22968,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["defining",{"_index":2476,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definition",{"_index":1422,"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":11784,"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":11612,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["delay(ms",{"_index":13509,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["delete",{"_index":10,"title":{},"body":{"classes/AbstractAccountService.html":{},"controllers/AccountController.html":{},"injectables/AccountRepo.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":{},"interfaces/ICleanOptions.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacySchoolRepo.html":{},"controllers/LessonController.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/RecursiveDeleteVisitor.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":2952,"title":{},"body":{"controllers/BoardController.html":{}}}],["delete(':cardid",{"_index":4034,"title":{},"body":{"controllers/CardController.html":{}}}],["delete(':columnid",{"_index":4942,"title":{},"body":{"controllers/ColumnController.html":{}}}],["delete(':contentelementid",{"_index":8222,"title":{},"body":{"controllers/ElementController.html":{}}}],["delete(':contextexternaltoolid",{"_index":20415,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20392,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':externaltoolid",{"_index":20480,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':externaltoolid')@apiforbiddenresponse({description",{"_index":20437,"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":12756,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["delete(':lessonid",{"_index":14140,"title":{},"body":{"controllers/LessonController.html":{}}}],["delete(':newsid",{"_index":14953,"title":{},"body":{"controllers/NewsController.html":{}}}],["delete(':schoolexternaltoolid",{"_index":20744,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20717,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':scope/:scopeid",{"_index":21868,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':scope/:scopeid')@apioperation({summary",{"_index":21842,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':submissionid",{"_index":19001,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["delete(':taskid",{"_index":19549,"title":{},"body":{"controllers/TaskController.html":{}}}],["delete('auth/sessions/consent",{"_index":15942,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete('clients/:id",{"_index":15915,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete(@param",{"_index":14144,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(board",{"_index":4795,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["delete(card",{"_index":4100,"title":{},"body":{"injectables/CardService.html":{}}}],["delete(column",{"_index":4968,"title":{},"body":{"injectables/ColumnService.html":{}}}],["delete(domainobject",{"_index":2438,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{}}}],["delete(domainobjects",{"_index":2365,"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":5597,"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":11170,"title":{},"body":{"injectables/GroupService.html":{}}}],["delete(id",{"_index":25,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/NewsUc.html":{}}}],["delete(path",{"_index":1663,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(paths",{"_index":17837,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["delete(submission",{"_index":19205,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["delete(subpath",{"_index":1661,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(task",{"_index":19916,"title":{},"body":{"injectables/TaskService.html":{}}}],["delete(urlparams",{"_index":14138,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(userid",{"_index":14301,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{}}}],["delete.vistor",{"_index":3344,"title":{},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{}}}],["delete.vistor.ts",{"_index":17199,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:20",{"_index":17202,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:26",{"_index":17209,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:31",{"_index":17208,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:36",{"_index":17205,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:41",{"_index":17211,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:48",{"_index":17212,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:54",{"_index":17213,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:59",{"_index":17214,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:64",{"_index":17215,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:69",{"_index":17210,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:76",{"_index":17204,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:80",{"_index":17207,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete_files_of_parent",{"_index":11922,"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":12691,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["deleteaccountbyid(currentuser",{"_index":490,"title":{},"body":{"controllers/AccountController.html":{}}}],["deleteaccountbyid(id",{"_index":13554,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteboard",{"_index":2894,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(@param",{"_index":2953,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(urlparams",{"_index":2909,"title":{},"body":{"controllers/BoardController.html":{}}}],["deletebyexternaltoolid",{"_index":18119,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyexternaltoolid(toolid",{"_index":18125,"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":2369,"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":6021,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":6027,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolids",{"_index":5841,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":5849,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyuserid",{"_index":11,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletebyuserid(userid",{"_index":37,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletecard",{"_index":3968,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(@param",{"_index":4035,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(urlparams",{"_index":3985,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecolumn",{"_index":4911,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(@param",{"_index":4943,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(urlparams",{"_index":4922,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecontextexternaltool",{"_index":6022,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(contextexternaltool",{"_index":6029,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletecontextexternaltool(currentuser",{"_index":20391,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(userid",{"_index":6061,"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":9876,"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":7899,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["deletedexternaltoolpseudonyms",{"_index":17019,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedfoldername",{"_index":17822,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedid",{"_index":14988,"title":{},"body":{"controllers/NewsController.html":{}}}],["deletedirectory",{"_index":17825,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedirectory(path",{"_index":17839,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedpseudonyms",{"_index":17018,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedsince",{"_index":6218,"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":{}}}],["deletedusernumber",{"_index":21553,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deletedusers",{"_index":13708,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["deleteelement",{"_index":4147,"title":{},"body":{"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["deleteelement(urlparams",{"_index":8199,"title":{},"body":{"controllers/ElementController.html":{}}}],["deleteelement(userid",{"_index":4158,"title":{},"body":{"injectables/CardUc.html":{}}}],["deleteentitybyid",{"_index":2347,"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":2371,"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":9275,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["deleteexternaltool(currentuser",{"_index":20436,"title":{},"body":{"controllers/ToolController.html":{}}}],["deleteexternaltool(toolid",{"_index":9291,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["deleteexternaltool(userid",{"_index":9396,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["deleteexternaltoolpseudonymsbyuserid",{"_index":16980,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deleteexternaltoolpseudonymsbyuserid(userid",{"_index":16991,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletefile",{"_index":7940,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefile(file",{"_index":7952,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage",{"_index":7941,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage(file",{"_index":7955,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefilesconsole",{"_index":7911,"title":{"classes/DeleteFilesConsole.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{}}}],["deletefilesofparent",{"_index":10429,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent(@rabbitpayload",{"_index":10528,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["deletefilesofparent(parentid",{"_index":10436,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["deletefilesofparent(payload",{"_index":10505,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:finished",{"_index":10641,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:started",{"_index":10639,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesuc",{"_index":7916,"title":{"injectables/DeleteFilesUc.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["deletegroup(groupname",{"_index":1251,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteidentityprovider",{"_index":13325,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteidentityprovider(alias",{"_index":13348,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteimportusersbyschool",{"_index":12929,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deleteimportusersbyschool(school",{"_index":12933,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deletelesson",{"_index":14275,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletelesson(lesson",{"_index":14280,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletemarkedfiles",{"_index":7914,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["deletemarkedfiles(dayssincedeletion",{"_index":7918,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["deletemarkedfiles(thresholddate",{"_index":7957,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletenode",{"_index":17200,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deletenode(domainobject",{"_index":17203,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deleteoauth2client",{"_index":15777,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["deleteoauth2client(@currentuser",{"_index":15916,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(currentuser",{"_index":15785,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(id",{"_index":16047,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["deleteobjectcommand",{"_index":7960,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deleteobjects",{"_index":17892,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deleteobjectscommand",{"_index":17850,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletepreviews",{"_index":16695,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepreviews(filerecords",{"_index":16702,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepseudonymsbyuserid",{"_index":8935,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletepseudonymsbyuserid(userid",{"_index":8945,"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":18223,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(currentuser",{"_index":20716,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(userid",{"_index":18230,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["deleteschoolexternaltoolbyid",{"_index":18188,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18195,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deletesubmissions",{"_index":19914,"title":{},"body":{"injectables/TaskService.html":{}}}],["deletesubmissions(task",{"_index":19918,"title":{},"body":{"injectables/TaskService.html":{}}}],["deleteteam",{"_index":4522,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteteam(teamid",{"_index":4534,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteuser",{"_index":21498,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(userid",{"_index":21501,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(username",{"_index":1256,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteuserdatafromclasses",{"_index":4410,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromclasses(userid",{"_index":4414,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromcourse",{"_index":6954,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcourse(userid",{"_index":6957,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcoursegroup",{"_index":6796,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromcoursegroup(userid",{"_index":6800,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromlessons",{"_index":14276,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromlessons(userid",{"_index":14282,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromteams",{"_index":20122,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserdatafromteams(userid",{"_index":20126,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserloginmigration",{"_index":21244,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deleteuserloginmigration(userloginmigration",{"_index":21253,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deletevisitor",{"_index":3316,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["deletewithdescendants",{"_index":3404,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deletewithdescendants(domainobject",{"_index":3407,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deleting",{"_index":7928,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["deletion",{"_index":5339,"title":{},"body":{"modules/CommonToolModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/S3ClientAdapter.html":{}}}],["deletioncommand",{"_index":8006,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletions",{"_index":7980,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["dem",{"_index":4814,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["demand",{"_index":15319,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["denied",{"_index":22593,"title":{},"body":{"license.html":{}}}],["denominated",{"_index":22720,"title":{},"body":{"license.html":{}}}],["depend",{"_index":23074,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":1734,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/BoardModule.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependent",{"_index":23588,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["depending",{"_index":10313,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["depends",{"_index":10299,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deployment",{"_index":13636,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["deployments",{"_index":23144,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["deprecated",{"_index":102,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AuthorizationParams.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/CourseCopyUC.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":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["deprecated.controller.ts",{"_index":21836,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:106",{"_index":21843,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:46",{"_index":21841,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:86",{"_index":21845,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.response",{"_index":21850,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecated.response.ts",{"_index":8013,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:10",{"_index":21695,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:12",{"_index":21694,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:25",{"_index":8037,"title":{},"body":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["deprecated.response.ts:37",{"_index":8019,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:43",{"_index":8017,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:8",{"_index":21696,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecatedvideoconferenceinforesponse",{"_index":8010,"title":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecatedvideoconferencejoinresponse",{"_index":8029,"title":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprive",{"_index":22728,"title":{},"body":{"license.html":{}}}],["depth",{"_index":3322,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["der",{"_index":4827,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["derivecopyname",{"_index":6349,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopyname(name",{"_index":6354,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopystatus",{"_index":6296,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filecopystatus",{"_index":19603,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filedtos",{"_index":6306,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["derivecoursestatus",{"_index":6644,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivecoursestatus(originalcourse",{"_index":6653,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivestatusfromelements",{"_index":6350,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivestatusfromelements(elements",{"_index":6357,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["des",{"_index":4845,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["desc",{"_index":3654,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["descendant",{"_index":3645,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendant.path.match(`^${n.pathofchildren",{"_index":3653,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendants",{"_index":3207,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["describe",{"_index":23121,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"course",{"_index":23316,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"when",{"_index":23318,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('[method",{"_index":23347,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('createcourse",{"_index":23317,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('somefunction",{"_index":23421,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('when",{"_index":23348,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["described",{"_index":15600,"title":{},"body":{"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["describes",{"_index":2460,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"modules/FeathersModule.html":{},"injectables/FeathersRosterService.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/ICleanOptions.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"classes/OauthLoginResponse.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"injectables/OpenGraphProxyService.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":{},"controllers/PseudonymController.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/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"controllers/SystemController.html":{},"entities/SystemEntity.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":{},"controllers/ToolReferenceController.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":{},"classes/UsersList.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(value",{"_index":14330,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["description.a",{"_index":23292,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["descriptioncommit",{"_index":23494,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["descriptioninputformat",{"_index":12435,"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":13727,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["descriptions",{"_index":12539,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptive",{"_index":12014,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["deserialize",{"_index":3806,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["deserialize(bsondocuments",{"_index":3808,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["deserializes",{"_index":3810,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["design",{"_index":22859,"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":22531,"title":{},"body":{"license.html":{}}}],["designed",{"_index":22278,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["desireable",{"_index":15964,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["desired",{"_index":23346,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["destination",{"_index":6157,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["destinationcourse",{"_index":2980,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destinationcourse).then((status",{"_index":3040,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourse.id",{"_index":3065,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourseid",{"_index":6155,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["destinationexternalreference",{"_index":3064,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["destinationlesson",{"_index":19601,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destroyed",{"_index":17096,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["detail",{"_index":22783,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["detail.response",{"_index":1444,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["detail.response.ts",{"_index":21648,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detail.response.ts:1",{"_index":21650,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detailed",{"_index":23057,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["details",{"_index":1396,"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/TooManyPseudonymsLoggableException.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":11745,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["detectable",{"_index":20553,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["detectcontenttypeorthrow",{"_index":8759,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detectcontenttypeorthrow(imagebuffer",{"_index":8767,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detected",{"_index":10148,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["detection",{"_index":75,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["determine",{"_index":23054,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["determineinput",{"_index":16848,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determineinput(systemid",{"_index":16857,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determinelaunchrequestmethod",{"_index":124,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinelaunchrequestmethod(properties",{"_index":176,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinenewroomsin",{"_index":7399,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["determinenewroomsin(rooms",{"_index":7422,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["determinestatus",{"_index":18189,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinestatus(tool",{"_index":18197,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinetoolconfigurationstatus",{"_index":5346,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determinetoolconfigurationstatus(externaltool",{"_index":5348,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determining",{"_index":16546,"title":{},"body":{"classes/PatchOrderParams.html":{},"license.html":{}}}],["deubg",{"_index":23475,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["dev",{"_index":22980,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["develop",{"_index":13637,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["developer",{"_index":5464,"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":22300,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["development",{"_index":11614,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":4141,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["dfsdfsf",{"_index":22258,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["di",{"_index":23185,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dialnumber",{"_index":2158,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["dictionary",{"_index":10577,"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":23506,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["diffenrent",{"_index":22916,"title":{},"body":{"todo.html":{}}}],["differ",{"_index":22782,"title":{},"body":{"license.html":{}}}],["different",{"_index":4140,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/NewsRepo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ToolPermissionHelper.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":23643,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["differently",{"_index":22615,"title":{},"body":{"license.html":{}}}],["differs",{"_index":23336,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dir",{"_index":11685,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["direct",{"_index":13379,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["direction",{"_index":22432,"title":{},"body":{"license.html":{}}}],["directions",{"_index":22537,"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":9920,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["directory",{"_index":10289,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dirnameprefix",{"_index":10295,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["dirpath",{"_index":10335,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["disable",{"_index":1188,"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":{},"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":15446,"title":{},"body":{"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["disallow",{"_index":23646,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["disclaim",{"_index":22466,"title":{},"body":{"license.html":{}}}],["disclaimer",{"_index":22792,"title":{},"body":{"license.html":{}}}],["disclaiming",{"_index":22612,"title":{},"body":{"license.html":{}}}],["discovery",{"_index":2465,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"todo.html":{}}}],["discriminator",{"_index":8183,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["discriminatorcolumn",{"_index":3432,"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":2577,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":22742,"title":{},"body":{"license.html":{}}}],["discussed",{"_index":2533,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["discussion",{"_index":23108,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["discussion_enabled=false",{"_index":23608,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["display",{"_index":9633,"title":{},"body":{"injectables/FeathersRosterService.html":{},"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/PublicSystemResponse.html":{},"classes/ToolReferenceResponse.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"license.html":{}}}],["displayat",{"_index":6853,"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":3753,"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":{},"classes/UsersList.html":{}}}],["displayed",{"_index":7041,"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":5698,"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/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":22377,"title":{},"body":{"license.html":{}}}],["disposable",{"_index":22115,"title":{},"body":{"dependencies.html":{}}}],["disposition",{"_index":6638,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["dist",{"_index":22186,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["distinguish",{"_index":15256,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["distinguished",{"_index":23328,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["distinguishing",{"_index":22786,"title":{},"body":{"license.html":{}}}],["distingush",{"_index":23648,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["distribute",{"_index":22272,"title":{},"body":{"license.html":{}}}],["distributed",{"_index":22841,"title":{},"body":{"license.html":{}}}],["distributing",{"_index":22745,"title":{},"body":{"license.html":{}}}],["distribution",{"_index":22336,"title":{},"body":{"license.html":{}}}],["dn",{"_index":4309,"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/SystemEntity.html":{}}}],["do.builder",{"_index":3198,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["do.builder.ts",{"_index":3157,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:23",{"_index":3175,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:24",{"_index":3172,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:25",{"_index":3169,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:26",{"_index":3181,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:27",{"_index":3184,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:28",{"_index":3187,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:29",{"_index":3190,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:30",{"_index":3193,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:31",{"_index":3178,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.mapper",{"_index":13101,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["do.mapper.ts",{"_index":13068,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:13",{"_index":13075,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:5",{"_index":13072,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.repo",{"_index":21485,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["do.repo.ts",{"_index":3307,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/UserDORepo.html":{}}}],["do.repo.ts:11",{"_index":3318,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:141",{"_index":20889,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:151",{"_index":20898,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:18",{"_index":3325,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:25",{"_index":20899,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:26",{"_index":3323,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:33",{"_index":20892,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:39",{"_index":3327,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:53",{"_index":3337,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:65",{"_index":3330,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:71",{"_index":20895,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:75",{"_index":3332,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:79",{"_index":20893,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:82",{"_index":3335,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:87",{"_index":3340,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:93",{"_index":3320,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.rule.ts",{"_index":3384,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:11",{"_index":3390,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:17",{"_index":3388,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:8",{"_index":3387,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.service",{"_index":4114,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["do.service.ts",{"_index":3403,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:20",{"_index":3412,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:6",{"_index":3406,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:9",{"_index":3408,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["dobasefactory",{"_index":4313,"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":7273,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["dobasefactory.define(lti11toolconfig",{"_index":7292,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["docker",{"_index":22935,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/mongo",{"_index":23575,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/rocketchat/rocket.chat:4.7.2envs",{"_index":23617,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["doclass",{"_index":3324,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["doclass.name",{"_index":3352,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["docs",{"_index":22904,"title":{},"body":{"todo.html":{}}}],["document",{"_index":6153,"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":22199,"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":22598,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["documents",{"_index":3811,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doe",{"_index":20964,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["doe${sequence",{"_index":12828,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["doescourseexist",{"_index":3508,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doescourseexist(courseid",{"_index":3519,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doesn't",{"_index":14305,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/OAuthService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doesnt",{"_index":17305,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["doing",{"_index":23105,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["domain",{"_index":1904,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"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/ExternalToolPseudonymRepo.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"classes/ResolvedGroupDto.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.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":23654,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain.mapper",{"_index":11075,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["domain.mapper.ts",{"_index":10979,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:15",{"_index":10986,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:43",{"_index":10989,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:60",{"_index":10993,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:72",{"_index":10991,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:81",{"_index":10998,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:90",{"_index":10996,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain/class",{"_index":4368,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domain/external",{"_index":8779,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["domain/rules",{"_index":1903,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["domainentity",{"_index":7676,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["domainerror",{"_index":17781,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["domainobject",{"_index":1790,"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/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":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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/GroupRule.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["domainobject.acceptasync(this.deletevisitor",{"_index":3382,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["domainobject.closedat",{"_index":21188,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.context",{"_index":18678,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.context?.contextid",{"_index":18743,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.context?.contexttype",{"_index":18742,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.createdat",{"_index":20863,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.customs",{"_index":7194,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.email",{"_index":20865,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.emailsearchvalues",{"_index":20877,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.expiresat",{"_index":18679,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.externalid",{"_index":20869,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.finishedat",{"_index":21189,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.firstname",{"_index":20866,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.firstnamesearchvalues",{"_index":20873,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.forcepasswordchange",{"_index":20879,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.friendlyurl",{"_index":7200,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.frontchannel_logout_uri",{"_index":7203,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.gradelevel",{"_index":4393,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.id",{"_index":2403,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["domainobject.importhash",{"_index":20871,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.invitationlink",{"_index":4390,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.ishidden",{"_index":7204,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.islocal",{"_index":7196,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.istemplate",{"_index":7195,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.key",{"_index":7186,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.language",{"_index":20878,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastloginsystemchange",{"_index":20881,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastname",{"_index":20867,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastnamesearchvalues",{"_index":20875,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.ldapdn",{"_index":4394,"title":{},"body":{"classes/ClassMapper.html":{},"classes/UserDO.html":{}}}],["domainobject.logo_url",{"_index":7188,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_message_type",{"_index":7189,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_version",{"_index":7190,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.mandatorysince",{"_index":21190,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.name",{"_index":4385,"title":{},"body":{"classes/ClassMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.oauthclientid",{"_index":7199,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.opennewtab",{"_index":7202,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.options",{"_index":21834,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.organizationid",{"_index":11165,"title":{},"body":{"injectables/GroupRule.html":{}}}],["domainobject.origintoolid",{"_index":7198,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.outdatedsince",{"_index":20882,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.payload",{"_index":18677,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.payload.parentid",{"_index":18741,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.payload.parenttype",{"_index":18740,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.preferences",{"_index":20880,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.previousexternalid",{"_index":20883,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.privacy_permission",{"_index":7193,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.removeuser(userid",{"_index":4423,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.resource_link_id",{"_index":7191,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.roles",{"_index":7192,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["domainobject.schoolid",{"_index":20868,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.secret",{"_index":7187,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.skipconsent",{"_index":7201,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.source",{"_index":4397,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourceoptions",{"_index":4398,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourcesystemid",{"_index":21185,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.startedat",{"_index":21187,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.successor",{"_index":4395,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.target",{"_index":21832,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetmodel",{"_index":21833,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetsystemid",{"_index":21186,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.teacherids.map((teacherid",{"_index":4387,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.token",{"_index":18676,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.updatedat",{"_index":20864,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.url",{"_index":7185,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.userids",{"_index":4422,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.userids?.map((userid",{"_index":4389,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.year",{"_index":4391,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject/share",{"_index":12256,"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":2776,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/LinkElement.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobject:8",{"_index":2758,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/LinkElement.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobjectfactory",{"_index":8045,"title":{"classes/DomainObjectFactory.html":{}},"body":{"classes/DomainObjectFactory.html":{}}}],["domainobjects",{"_index":2367,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/GroupRepo.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":17267,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["domainobjects.map((domainobject",{"_index":4400,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassService.html":{}}}],["domainrolenames",{"_index":21363,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles",{"_index":21361,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles.map((role",{"_index":21364,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domains",{"_index":22116,"title":{},"body":{"dependencies.html":{}}}],["domigration",{"_index":18313,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["domigration(externalid",{"_index":18324,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["domigration(userdo",{"_index":21409,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["don't",{"_index":2475,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/OAuthService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.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":{}}}],["done",{"_index":8312,"title":{},"body":{"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":19666,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["dos",{"_index":2431,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["dos.map((domainobj",{"_index":2433,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["dosomethingcrazy",{"_index":23357,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z",{"_index":23362,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).catch(err",{"_index":23377,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).then(result",{"_index":23372,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazysync(wrong",{"_index":23380,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["doubtful",{"_index":22562,"title":{},"body":{"license.html":{}}}],["down",{"_index":23081,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["download",{"_index":16696,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download(filerecord",{"_index":16704,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download_uri",{"_index":1381,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downloadbysecuritytoken",{"_index":10250,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(@param('token",{"_index":10263,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(token",{"_index":10252,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadfileparams",{"_index":6237,"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":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["downloadoriginfile",{"_index":16654,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloadoriginfile(pathtofile",{"_index":16658,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloaduri",{"_index":1374,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downstream",{"_index":22676,"title":{},"body":{"license.html":{}}}],["draft",{"_index":12487,"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":2532,"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":11756,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dropcollection",{"_index":7868,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollection(collectionname",{"_index":7879,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollectionifexists(collectionname",{"_index":11724,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dry",{"_index":23094,"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/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":{},"classes/ExternalToolElementResponseMapper.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":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":{},"classes/LinkElementResponseMapper.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":{},"controllers/PseudonymController.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/ToolReferenceController.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":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dto's",{"_index":23168,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dto.availabledate",{"_index":19721,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.bbbresponse",{"_index":21682,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["dto.builder.ts",{"_index":9811,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:13",{"_index":9820,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:19",{"_index":9817,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:7",{"_index":9815,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.cancelbuttonurl",{"_index":16477,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.classes",{"_index":12891,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.cookies",{"_index":11533,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["dto.createdat",{"_index":17416,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.currentredirect",{"_index":11462,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.description",{"_index":19719,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.descriptioninputformat",{"_index":19734,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.destinationcourseid",{"_index":6412,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.displaycolor",{"_index":19725,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.duedate",{"_index":19723,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.elements",{"_index":6415,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.enablemigrationstart",{"_index":14841,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.factory",{"_index":17757,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["dto.factory.ts",{"_index":8055,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:102",{"_index":8090,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:121",{"_index":8088,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:129",{"_index":8077,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:139",{"_index":8086,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:158",{"_index":8084,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:173",{"_index":8074,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:186",{"_index":17587,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:192",{"_index":17589,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:28",{"_index":8070,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:30",{"_index":8069,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:32",{"_index":8071,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:34",{"_index":8068,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:36",{"_index":8067,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:58",{"_index":8082,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:67",{"_index":8079,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:89",{"_index":8080,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:95",{"_index":8081,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.firstname",{"_index":12879,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.flagged",{"_index":12898,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.groupelements",{"_index":7633,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.groupid",{"_index":7632,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.id",{"_index":6410,"title":{},"body":{"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lastname",{"_index":12882,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lessonhidden",{"_index":19729,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.lessonname",{"_index":19728,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.loginname",{"_index":12885,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.mapper",{"_index":1123,"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":12877,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.matchedby",{"_index":21368,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["dto.matches",{"_index":12894,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.oauthmigrationfinalfinish",{"_index":14840,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationfinished",{"_index":14839,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationmandatory",{"_index":14838,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationpossible",{"_index":14837,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.options",{"_index":21888,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["dto.permission",{"_index":21683,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.permissions",{"_index":15265,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.proceedbuttonurl",{"_index":16476,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.provisioningstrategy",{"_index":16899,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.provisioningurl",{"_index":16901,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.redirect",{"_index":21396,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["dto.response",{"_index":11465,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.response.status",{"_index":11461,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.role",{"_index":12888,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.rolename",{"_index":15322,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.roles",{"_index":17422,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.schoolid",{"_index":17420,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.state",{"_index":21680,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.target",{"_index":15054,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.teamid",{"_index":3895,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto.teamname",{"_index":15321,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.title",{"_index":3893,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["dto.unpublished",{"_index":15056,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.updatedat",{"_index":17418,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.updater",{"_index":15051,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.url",{"_index":21914,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["dto/board/board",{"_index":2933,"title":{},"body":{"controllers/BoardController.html":{}}}],["dto/board/set",{"_index":4013,"title":{},"body":{"controllers/CardController.html":{}}}],["dto/card/create",{"_index":4933,"title":{},"body":{"controllers/ColumnController.html":{}}}],["dto/class",{"_index":11287,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["dto/context",{"_index":6075,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["dto/copy.response",{"_index":6405,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto/element/rich",{"_index":17494,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["dto/file.dto",{"_index":9822,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto/fwu",{"_index":10724,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["dto/migration.dto",{"_index":21429,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/oauth",{"_index":14103,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{}}}],["dto/oauth2",{"_index":21086,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/page",{"_index":21430,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/pseudonym",{"_index":16933,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["dto/public",{"_index":19295,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["dto/request/school",{"_index":21088,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/request/user",{"_index":21089,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/response/consent.response",{"_index":15892,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/redirect.response",{"_index":15894,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/video",{"_index":21849,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["dto/role.dto",{"_index":17572,"title":{},"body":{"injectables/RoleService.html":{}}}],["dto/school",{"_index":18239,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["dto/stateless",{"_index":16126,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dto/submission",{"_index":3736,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["dto/system",{"_index":19297,"title":{},"body":{"controllers/SystemController.html":{}}}],["dto/task",{"_index":19571,"title":{},"body":{"controllers/TaskController.html":{}}}],["dto/team",{"_index":4567,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto/team.dto",{"_index":4676,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["dto/user",{"_index":16120,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dtocreator",{"_index":8053,"title":{"classes/DtoCreator.html":{}},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dtolist",{"_index":12793,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["dtos",{"_index":4565,"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":3584,"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":3262,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/BoardTaskResponse.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.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":18973,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["dummy",{"_index":11361,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["dummypasswd!1",{"_index":741,"title":{},"body":{"classes/AccountFactory.html":{}}}],["dummyresponse",{"_index":11371,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["duplicate",{"_index":6111,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["duplicate.filter",{"_index":6117,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.id",{"_index":8902,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["duplicate.length",{"_index":6121,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.loggable",{"_index":18394,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["duplicates",{"_index":16566,"title":{},"body":{"injectables/PermissionService.html":{}}}],["duplicatetool",{"_index":6118,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.displayname",{"_index":6120,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.id",{"_index":6119,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplication",{"_index":2474,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["durable",{"_index":22515,"title":{},"body":{"license.html":{}}}],["duration",{"_index":2159,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/DurationLoggingInterceptor.html":{}}}],["durationlogginginterceptor",{"_index":8152,"title":{"injectables/DurationLoggingInterceptor.html":{}},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["during",{"_index":7027,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakConsole.html":{},"interfaces/OauthCurrentUser.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":22561,"title":{},"body":{"license.html":{}}}],["dynamically",{"_index":22412,"title":{},"body":{"license.html":{}}}],["dynamicmodule",{"_index":1301,"title":{},"body":{"modules/AntivirusModule.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/PreviewGeneratorConsumerModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["e",{"_index":2362,"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":2468,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/ConsentRequestBody.html":{},"injectables/FeathersRosterService.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/OauthCurrentUser.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":8308,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.response.data",{"_index":1206,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.data.errortype",{"_index":1208,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.statuscode",{"_index":1203,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.target",{"_index":8314,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.value",{"_index":8316,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["each",{"_index":2450,"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/ICleanOptions.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":12030,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolExternalToolEntity.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["earlier",{"_index":22351,"title":{},"body":{"license.html":{}}}],["ease",{"_index":23714,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["easier",{"_index":23437,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["easily",{"_index":23340,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["easy",{"_index":23050,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["eathers",{"_index":9743,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["edit",{"_index":6862,"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":23680,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["editor",{"_index":3100,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/UserBoardRoles.html":{}}}],["editor.config",{"_index":11398,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller",{"_index":11397,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller.ts",{"_index":11357,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:33",{"_index":11367,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:44",{"_index":11365,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.module",{"_index":11404,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["editor.module.ts",{"_index":11395,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor/controller/h5p",{"_index":11356,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor/h5p",{"_index":11394,"title":{},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["editusernameallowed",{"_index":13437,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["effect",{"_index":22822,"title":{},"body":{"license.html":{}}}],["effected",{"_index":22463,"title":{},"body":{"license.html":{}}}],["effective",{"_index":22445,"title":{},"body":{"license.html":{}}}],["effectively",{"_index":22838,"title":{},"body":{"license.html":{}}}],["effects",{"_index":2259,"title":{},"body":{"injectables/BBBService.html":{}}}],["efficient",{"_index":3648,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["effortless",{"_index":23302,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["efforts",{"_index":22690,"title":{},"body":{"license.html":{}}}],["einsatz",{"_index":4844,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ejson",{"_index":3820,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.deserialize(bsondocuments",{"_index":3823,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.serialize(documents",{"_index":3821,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["el",{"_index":3687,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CopyHelperService.html":{}}}],["el.getreferences()).flat",{"_index":7530,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["el.status",{"_index":6364,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["el.target.id",{"_index":2677,"title":{},"body":{"entities/Board.html":{}}}],["elapsedtimemilliseconds",{"_index":13288,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["electronic",{"_index":22844,"title":{},"body":{"license.html":{}}}],["element",{"_index":2553,"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":{},"injectables/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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponseMapper.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PatchGroupParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/RecursiveSaveVisitor.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":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["element.'})@apiextramodels(fileelementcontentbody",{"_index":8208,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiextramodels(submissionitemresponse)@apiresponse({status",{"_index":8195,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiresponse({status",{"_index":8200,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.acceptasync(updater",{"_index":5621,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.alternativetext",{"_index":9870,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.boardelementtype",{"_index":3036,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.body.params.ts",{"_index":6983,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:10",{"_index":14925,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:12",{"_index":14933,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:14",{"_index":6989,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:17",{"_index":14934,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:18",{"_index":14926,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:23",{"_index":14932,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:25",{"_index":6987,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:29",{"_index":14929,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.body.params.ts:33",{"_index":14930,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.caption",{"_index":9869,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.constructor.name",{"_index":5591,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["element.contextexternaltoolid",{"_index":8679,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["element.createdat",{"_index":8678,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.description",{"_index":14357,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.do",{"_index":2846,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["element.do.ts",{"_index":8634,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["element.do.ts:10",{"_index":17465,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:13",{"_index":9836,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:14",{"_index":17467,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:17",{"_index":9838,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:18",{"_index":17469,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:21",{"_index":14321,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:25",{"_index":14323,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:29",{"_index":14325,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:33",{"_index":14327,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:5",{"_index":8639,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:6",{"_index":17463,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:9",{"_index":8641,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.duedate",{"_index":18991,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.factory.ts",{"_index":5549,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:13",{"_index":5556,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:43",{"_index":5558,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:56",{"_index":5559,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:68",{"_index":5560,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:81",{"_index":5561,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:93",{"_index":5557,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.getreferences",{"_index":7518,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.getreferences().length",{"_index":7522,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.gridelement",{"_index":7500,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.id",{"_index":8676,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.imageurl",{"_index":14358,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.inputformat",{"_index":17497,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["element.interface",{"_index":5125,"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":11854,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.interface.ts:2",{"_index":11855,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.publish",{"_index":17766,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.removereference(room",{"_index":7521,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.removereferencebyindex(position.groupindex",{"_index":7543,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.response",{"_index":17495,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["element.response.ts",{"_index":3436,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:11",{"_index":8651,"title":{},"body":{"classes/ExternalToolElementContent.html":{}}}],["element.response.ts:12",{"_index":9850,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{}}}],["element.response.ts:14",{"_index":8666,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:15",{"_index":9849,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:17",{"_index":3443,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:18",{"_index":9862,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:20",{"_index":14339,"title":{},"body":{"classes/LinkElementContent.html":{}}}],["element.response.ts:22",{"_index":3440,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:23",{"_index":8668,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:26",{"_index":8670,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementResponse.html":{}}}],["element.response.ts:27",{"_index":9864,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:29",{"_index":8667,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:30",{"_index":9866,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:32",{"_index":8669,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:33",{"_index":9863,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:35",{"_index":14349,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:36",{"_index":9865,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:38",{"_index":14351,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:41",{"_index":14348,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:44",{"_index":14350,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:5",{"_index":8650,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/FileElementContent.html":{},"classes/LinkElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:7",{"_index":3437,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.service",{"_index":4115,"title":{},"body":{"injectables/CardService.html":{}}}],["element.service.ts",{"_index":5594,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:17",{"_index":5595,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:25",{"_index":5600,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:35",{"_index":5596,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:42",{"_index":5598,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:46",{"_index":5602,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:50",{"_index":5605,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.status",{"_index":6419,"title":{},"body":{"classes/CopyMapper.html":{}}}],["element.target",{"_index":2667,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.text",{"_index":4871,"title":{},"body":{"injectables/ColumnBoardService.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["element.title",{"_index":14356,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.ts",{"_index":5222,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:11",{"_index":5226,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:12",{"_index":5274,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:14",{"_index":5254,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:15",{"_index":5275,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:19",{"_index":5227,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["element.ts:21",{"_index":5290,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:3",{"_index":5279,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:38",{"_index":5291,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:42",{"_index":5292,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:46",{"_index":5293,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:6",{"_index":5281,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.type",{"_index":17608,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["element.unpublish",{"_index":17767,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.updatedat",{"_index":8677,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.url",{"_index":14355,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.url.params.ts",{"_index":5691,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:11",{"_index":5693,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:19",{"_index":17650,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["elementcontentbody",{"_index":8169,"title":{"classes/ElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["elementcontentbody:28",{"_index":9854,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["elementcontentbody:42",{"_index":14342,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["elementcontentbody:61",{"_index":17483,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["elementcontentbody:79",{"_index":18984,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["elementcontentbody:95",{"_index":8657,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["elementcontroller",{"_index":2723,"title":{"controllers/ElementController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ElementController.html":{}}}],["elementcopystatus",{"_index":3084,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementcopystatus.type",{"_index":3081,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementdata",{"_index":7620,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.copyingsince",{"_index":7628,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.displaycolor",{"_index":7625,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group",{"_index":7630,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group.map((groupmetadata",{"_index":7634,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.groupid",{"_index":7631,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.referencedid",{"_index":7629,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.shorttitle",{"_index":7624,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.title",{"_index":7623,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementid",{"_index":4159,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{}}}],["elementmapper",{"_index":5587,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmapper.maptoresponse(element",{"_index":5592,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmodel",{"_index":7675,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.dashboard",{"_index":7712,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.references.set(references",{"_index":7711,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.title",{"_index":7707,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.xpos",{"_index":7702,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.ypos",{"_index":7704,"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/NewsRepo.html":{},"classes/PaginationParams.html":{},"classes/PatchOrderParams.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskCopyService.html":{}}}],["elements.filter((el",{"_index":3686,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["elements.filter((element",{"_index":8105,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.foreach((element",{"_index":8115,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.map((el",{"_index":6363,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elements.map((elementcopystatus",{"_index":3080,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elements.push",{"_index":6690,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["elements.push(this.mapcolumnboard(element.content",{"_index":17611,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maplesson(element.content",{"_index":17610,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maptask(element.content",{"_index":17609,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elementservice",{"_index":4152,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["elementspercard",{"_index":3544,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementspercard.flat",{"_index":3547,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementsstatuses",{"_index":6362,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementsstatuses.filter((status",{"_index":6366,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementstoadd",{"_index":2704,"title":{},"body":{"entities/Board.html":{}}}],["elementtomove",{"_index":7506,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.getreferences",{"_index":7539,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.isgroup",{"_index":7538,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementuc",{"_index":2717,"title":{"injectables/ElementUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["elementwithposition",{"_index":7655,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.x",{"_index":7703,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.y",{"_index":7705,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elemmatch",{"_index":10380,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["em",{"_index":3319,"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":{},"classes/UsersList.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["em.config.options.clienturl",{"_index":23459,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["em.getreference(role",{"_index":11031,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(schoolentity",{"_index":11015,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(systementity",{"_index":11026,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(user",{"_index":11030,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["email",{"_index":853,"title":{},"body":{"interfaces/AccountParams.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":23118,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["emailsearchvalues",{"_index":11803,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["embeddable",{"_index":2574,"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/FederalStateEntity.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/SystemEntity.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded",{"_index":4271,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalStateEntity.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/SystemEntity.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded(undefined",{"_index":4265,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalStateEntity.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/TeamEntity.html":{}}}],["embedded({entity",{"_index":19333,"title":{},"body":{"entities/SystemEntity.html":{}}}],["embodied",{"_index":22512,"title":{},"body":{"license.html":{}}}],["emerg",{"_index":8330,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["emerg(loggable",{"_index":8337,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["employer",{"_index":22850,"title":{},"body":{"license.html":{}}}],["empty",{"_index":1857,"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":15134,"title":{},"body":{"classes/NewsScope.html":{},"classes/Scope.html":{}}}],["emptyresultquerytype",{"_index":6013,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["en",{"_index":12587,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["enable",{"_index":10862,"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":21391,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable.loggable.ts:4",{"_index":21392,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable_ldap_sync_during_migration",{"_index":12199,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enabled",{"_index":1308,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.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":{},"interfaces/ScanResult.html":{},"injectables/ShareTokenUC.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TaskCopyUC.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["enableimplicitconversion",{"_index":10867,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["enableldapsyncduringmigration",{"_index":12200,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enablemigrationstart",{"_index":14121,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["enableoauthmigrationfeature",{"_index":21245,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enableoauthmigrationfeature(schooldo",{"_index":21255,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enables",{"_index":22370,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["encapsulates",{"_index":4619,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/ConverterUtil.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["encoded",{"_index":2266,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FileSystemAdapter.html":{}}}],["encodeuricomponent(token",{"_index":1388,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["encoding",{"_index":10277,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["encouraged",{"_index":22318,"title":{},"body":{"license.html":{}}}],["encrypt",{"_index":11950,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application.html":{}}}],["encrypt(data",{"_index":11953,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encrypted",{"_index":1173,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["encryptedstring",{"_index":18934,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["encryption",{"_index":12660,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.interface",{"_index":8261,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.service",{"_index":8263,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryption.service.ts",{"_index":14553,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryption.service.ts:7",{"_index":14556,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryptionmodule",{"_index":8255,"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(configservice",{"_index":8264,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryptionservice",{"_index":9284,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["encryptpassword",{"_index":1047,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptpassword(password",{"_index":1052,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptsecrets(collectionname",{"_index":11824,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["encryptsecretsinsystems(systems",{"_index":11826,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["end",{"_index":2241,"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":21756,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["end(config",{"_index":2260,"title":{},"body":{"injectables/BBBService.html":{}}}],["end(currentuser",{"_index":21708,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["end(currentuserid",{"_index":21873,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.loggable.ts",{"_index":18282,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:3",{"_index":18284,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:6",{"_index":18285,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.uc.ts",{"_index":21871,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:11",{"_index":21872,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:18",{"_index":21874,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end2end",{"_index":23480,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["enddate",{"_index":12223,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["ended",{"_index":21767,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["endings",{"_index":23510,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["endpoint",{"_index":2145,"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/OauthConfigDto.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":11379,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["endpointurl",{"_index":12262,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["ends",{"_index":2262,"title":{},"body":{"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["endschoolinmaintenance",{"_index":12737,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(@currentuser",{"_index":12814,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(currentuser",{"_index":12745,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endtime",{"_index":2217,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["enforce",{"_index":20077,"title":{},"body":{"controllers/TeamNewsController.html":{},"license.html":{}}}],["enforces",{"_index":23337,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["enforcing",{"_index":22468,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["enities",{"_index":17521,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enities.map((entity",{"_index":17525,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enrichdatafromexternaltool",{"_index":18190,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichdatafromexternaltool(tool",{"_index":18199,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichedtools",{"_index":18212,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools",{"_index":18191,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools(tools",{"_index":18201,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["ensure",{"_index":9589,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"classes/NewsScope.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":3203,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureboardnodetype(boardnode",{"_index":3221,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurecontextpermissions",{"_index":8560,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensurecontextpermissions(userid",{"_index":8569,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureleafnode",{"_index":3204,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureleafnode(boardnode",{"_index":3224,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurepermission",{"_index":9389,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensurepermission(userid",{"_index":9398,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensures",{"_index":22214,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ensureschoolpermissions",{"_index":8561,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureschoolpermissions(userid",{"_index":8571,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensuretokeniswhitelisted",{"_index":13205,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["ensuretoolpermissions",{"_index":20691,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["ensuretoolpermissions(userid",{"_index":20694,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["entered",{"_index":22751,"title":{},"body":{"license.html":{}}}],["enteredpassword",{"_index":14384,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["entire",{"_index":22488,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["entirely",{"_index":22770,"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/ExternalToolElementNodeEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FederalStateEntity.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":{},"injectables/GroupRepo.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/LinkElementNode.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"dependencies.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":10404,"title":{},"body":{"injectables/FilesService.html":{}}}],["entities.length",{"_index":10403,"title":{},"body":{"injectables/FilesService.html":{},"injectables/LtiToolRepo.html":{}}}],["entities.map((entity",{"_index":2408,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/GroupRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SystemMapper.html":{},"injectables/UserDORepo.html":{}}}],["entitieswithfiles",{"_index":9972,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["entitiyids",{"_index":9610,"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/ExternalToolElementNodeEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalStateEntity.html":{},"entities/FileElementNode.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/ImportUser.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"entities/LinkElementNode.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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"entities/SubmissionItemNode.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.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":{},"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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/FederalStateEntity.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":{},"injectables/FilesService.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/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":{},"classes/PreviewBuilder.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.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":19388,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.closedat",{"_index":21212,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.config.type",{"_index":9063,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.contextid",{"_index":5892,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["entity.contexttype",{"_index":18737,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.course",{"_index":6793,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["entity.coursegroup",{"_index":14263,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.createdat",{"_index":4383,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.customs",{"_index":14714,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.displayname",{"_index":5894,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.email",{"_index":20925,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.emailsearchvalues",{"_index":20931,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.expiresat",{"_index":18739,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.externalid",{"_index":11028,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.externalsource",{"_index":11021,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.factory.ts",{"_index":8701,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:21",{"_index":8710,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:28",{"_index":8707,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:38",{"_index":8712,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:50",{"_index":8708,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:66",{"_index":8706,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.features",{"_index":14033,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{}}}],["entity.features.includes(feature",{"_index":14083,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["entity.federalstate",{"_index":14042,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.finishedat",{"_index":21213,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.firstname",{"_index":20926,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.firstnamesearchvalues",{"_index":20929,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.forcepasswordchange",{"_index":20933,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.friendlyurl",{"_index":14719,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.frontchannel_logout_uri",{"_index":14721,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.getgrid().map((elementwithposition",{"_index":7715,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getid",{"_index":7722,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getuserid",{"_index":7724,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.gradelevel",{"_index":4378,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.hidden",{"_index":14259,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.id",{"_index":4369,"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":20928,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.inmaintenancesince",{"_index":14034,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.inusermigration",{"_index":14035,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.invitationlink",{"_index":4376,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.isdraft",{"_index":19872,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.ishidden",{"_index":9072,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.islocal",{"_index":14716,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.istemplate",{"_index":14715,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.key",{"_index":14706,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.language",{"_index":20932,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastloginsystemchange",{"_index":20935,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastname",{"_index":20927,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastnamesearchvalues",{"_index":20930,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.ldapconfig?.active",{"_index":19392,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.ldapdn",{"_index":4379,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lesson",{"_index":19875,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.logo_url",{"_index":14708,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.logobase64",{"_index":9070,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.logourl",{"_index":9069,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.lti_message_type",{"_index":14709,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.lti_version",{"_index":14710,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.mandatorysince",{"_index":21210,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.markfordeletion",{"_index":10408,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.name",{"_index":4370,"title":{},"body":{"classes/ClassMapper.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RoleMapper.html":{}}}],["entity.oauthclientid",{"_index":14718,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.officialschoolnumber",{"_index":14037,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.oidcconfig",{"_index":19409,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["entity.opennewtab",{"_index":9073,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.options.everyattendejoinsmuted",{"_index":22010,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.everybodyjoinsasmoderator",{"_index":22009,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.moderatormustapprovejoinrequests",{"_index":22011,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.organization?.id",{"_index":11024,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.origintoolid",{"_index":14717,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.outdatedsince",{"_index":20936,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.parentid",{"_index":18736,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.parenttype",{"_index":18735,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.permissions",{"_index":17524,"title":{},"body":{"classes/RoleMapper.html":{}}}],["entity.preferences",{"_index":20934,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.previousexternalid",{"_index":14036,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.privacy_permission",{"_index":14713,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.provisioningstrategy",{"_index":19389,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.provisioningurl",{"_index":19390,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.pseudonym",{"_index":8979,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.removepermissionsbyrefid(userid",{"_index":10405,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.resource_link_id",{"_index":14711,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.role.id",{"_index":11034,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.roles",{"_index":14712,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.roles.getitems().map((role",{"_index":21345,"title":{},"body":{"classes/UserMapper.html":{}}}],["entity.roles.isinitialized",{"_index":20937,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.school.id",{"_index":18140,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{}}}],["entity.schoolid",{"_index":18183,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["entity.schoolid.tohexstring",{"_index":4371,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.schooltool.id",{"_index":5891,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltool.school.id",{"_index":5988,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schooltool.school?.id",{"_index":5890,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltoolref.schoolid",{"_index":5989,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schoolyear",{"_index":14038,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.secret",{"_index":14707,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.skipconsent",{"_index":14720,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.source",{"_index":4381,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourceoptions?.tspuid",{"_index":4382,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourcesystem?.id",{"_index":21208,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.startedat",{"_index":21211,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.successor?.tohexstring",{"_index":4380,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.system.id",{"_index":11029,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.systems.getitems().map((system",{"_index":14040,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.systems.isinitialized",{"_index":14039,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.target",{"_index":22007,"title":{},"body":{"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetmodel",{"_index":23702,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetsystem.id",{"_index":21209,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.teacherids.map((teacherid",{"_index":4374,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.teamusers.find((teamuser",{"_index":20118,"title":{},"body":{"injectables/TeamRule.html":{}}}],["entity.token",{"_index":18738,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.tool.id",{"_index":18139,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entity.toolid.tohexstring",{"_index":8980,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.toolversion",{"_index":5895,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entity.ts",{"_index":23167,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["entity.type",{"_index":19387,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.updatedat",{"_index":4384,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.url",{"_index":9068,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.user.id",{"_index":11033,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.userid.tohexstring",{"_index":8981,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.userids?.map((userid",{"_index":4372,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.userloginmigration?.id",{"_index":14041,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.users.map((groupuser",{"_index":11016,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod",{"_index":11018,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.from",{"_index":11019,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.until",{"_index":11020,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.version",{"_index":9074,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.year?.tohexstring",{"_index":4377,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity/course.entity",{"_index":11933,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/import",{"_index":12054,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["entity/pseudonym.scope",{"_index":8963,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["entity/role.entity",{"_index":16564,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity/school.entity",{"_index":11934,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/share",{"_index":18731,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity/team.entity",{"_index":11935,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/user.entity",{"_index":16565,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity[key",{"_index":2430,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entity[prop",{"_index":1866,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["entity_not_found",{"_index":3801,"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":10374,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["entitydo",{"_index":2379,"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":21219,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.config.type",{"_index":9087,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.contextref.id",{"_index":5897,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.customs",{"_index":14730,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.displayname",{"_index":5899,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.email",{"_index":20940,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.externalid",{"_index":14043,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.features",{"_index":14044,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.federalstate",{"_index":14055,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.finishedat",{"_index":21220,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.firstname",{"_index":20941,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.forcepasswordchange",{"_index":20947,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.friendlyurl",{"_index":14735,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.frontchannel_logout_uri",{"_index":14737,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.id",{"_index":17059,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["entitydo.inmaintenancesince",{"_index":14045,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.inusermigration",{"_index":14046,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.ishidden",{"_index":9096,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.islocal",{"_index":14732,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.istemplate",{"_index":14731,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.key",{"_index":14722,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.language",{"_index":20946,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastloginsystemchange",{"_index":20949,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastname",{"_index":20942,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.ldapdn",{"_index":20945,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.logo",{"_index":9094,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.logo_url",{"_index":14724,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.logourl",{"_index":9093,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.lti_message_type",{"_index":14725,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.lti_version",{"_index":14726,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.mandatorysince",{"_index":21217,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.name",{"_index":9091,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.oauthclientid",{"_index":14734,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.officialschoolnumber",{"_index":14048,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.opennewtab",{"_index":9097,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.options.everyattendeejoinsmuted",{"_index":22015,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.everybodyjoinsasmoderator",{"_index":22014,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.moderatormustapprovejoinrequests",{"_index":22016,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.origintoolid",{"_index":14733,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.outdatedsince",{"_index":20950,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.preferences",{"_index":20948,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.previousexternalid",{"_index":14047,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.privacy_permission",{"_index":14729,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.pseudonym",{"_index":8982,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entitydo.resource_link_id",{"_index":14727,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles",{"_index":14728,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles.map((roleref",{"_index":20943,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.schoolid",{"_index":18143,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.schooltoolref.schooltoolid",{"_index":5901,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.schoolyear",{"_index":14049,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.secret",{"_index":14723,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.skipconsent",{"_index":14736,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.sourcesystemid",{"_index":21215,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.startedat",{"_index":21218,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.systems",{"_index":14050,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.systems.map((systemid",{"_index":14051,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.target",{"_index":22012,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.targetsystemid",{"_index":21216,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.toolid",{"_index":18145,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.toolversion",{"_index":5902,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.url",{"_index":9092,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.userloginmigrationid",{"_index":14053,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.version",{"_index":9098,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydos",{"_index":2390,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.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":2402,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entityfactory",{"_index":2348,"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":2373,"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/AuthorizationReferenceService.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/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/ColumnBoardCopyService.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/FeathersRosterService.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":{},"injectables/GroupUc.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/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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.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":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"interfaces/OauthCurrentUser.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/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entitymanager",{"_index":2355,"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/AuthorizationReferenceService.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":{}}}],["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":1078,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror('user",{"_index":20920,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitynotfounderror(`account",{"_index":1106,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror(`user",{"_index":13612,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["entitynotfounderror(systementity.name",{"_index":19424,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["entitypermissions",{"_index":9604,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entitypermissions.includes(p",{"_index":9608,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entityprops",{"_index":2422,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entityschema",{"_index":2472,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["entitytype",{"_index":15062,"title":{},"body":{"classes/NewsMapper.html":{}}}],["entitywithembeddedfiles",{"_index":6308,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["entitywithid",{"_index":2512,"title":{},"body":{"classes/BaseFactory.html":{}}}],["entries",{"_index":9042,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entries.map",{"_index":9103,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry",{"_index":5427,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/JwtStrategy.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.do.ts",{"_index":7244,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:2",{"_index":7246,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:4",{"_index":7245,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.entity.ts",{"_index":7249,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:6",{"_index":7251,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:9",{"_index":7250,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.name",{"_index":9104,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.params",{"_index":18113,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["entry.params.ts",{"_index":7254,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:12",{"_index":7256,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:7",{"_index":7255,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.response",{"_index":18160,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["entry.response.ts",{"_index":7257,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:5",{"_index":7259,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:9",{"_index":7258,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.value",{"_index":9105,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["enum",{"_index":1031,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.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":{},"classes/ClassInfoResponse.html":{},"classes/ClassSortParams.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolResponse.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.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/SystemEntity.html":{},"entities/TeamNews.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["enum({array",{"_index":14643,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({fieldname",{"_index":12727,"title":{},"body":{"entities/ImportUser.html":{}}}],["enum({items",{"_index":14640,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({nullable",{"_index":6491,"title":{},"body":{"entities/Course.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"entities/ShareToken.html":{}}}],["enumname",{"_index":2889,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ContextExternalToolContextParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["enums",{"_index":5123,"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":14896,"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":22878,"title":{},"body":{"todo.html":{}}}],["envirement",{"_index":19672,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["envirements",{"_index":6709,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["envirment",{"_index":18849,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["environment",{"_index":13638,"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":10285,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["eq",{"_index":14273,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["equal",{"_index":19836,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["equivalent",{"_index":22427,"title":{},"body":{"license.html":{}}}],["eric",{"_index":23286,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["erorr",{"_index":19664,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["err",{"_index":1370,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.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":23378,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["err?.cause?.name",{"_index":17889,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["err?.code",{"_index":17872,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["error",{"_index":204,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICleanOptions.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":{},"injectables/LessonCopyUC.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":{},"classes/RpcMessageProducer.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/ScanResult.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/TaskCopyUC.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TooManyPseudonymsLoggableException.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":{},"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":3278,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["error('broken",{"_index":3034,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error('error",{"_index":11655,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('gradelevel",{"_index":4278,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["error('idm",{"_index":11595,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('invalid",{"_index":12913,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["error('multiple",{"_index":13597,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error('not",{"_index":2710,"title":{},"body":{"entities/Board.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["error('nothing",{"_index":17151,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["error('resource",{"_index":5302,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["error('rocket",{"_index":1293,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["error('roles",{"_index":12163,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["error('root",{"_index":3142,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["error('unexpected",{"_index":13033,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["error('unknown",{"_index":5907,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["error('user",{"_index":739,"title":{},"body":{"classes/AccountFactory.html":{}}}],["error(`${jwtconstants.jwtoptions.algorithm",{"_index":1604,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["error(`${testreqestconst.errormessage",{"_index":1703,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(`account",{"_index":13590,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error(`boardcopyservice",{"_index":3051,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error(`cannot",{"_index":5687,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["error(`duplicate",{"_index":13680,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["error(`login",{"_index":14400,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["error(`mapping",{"_index":10480,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["error(`no",{"_index":13777,"title":{},"body":{"injectables/LdapService.html":{}}}],["error(`opengraphproxyservice",{"_index":16435,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["error(`system",{"_index":19441,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["error(error",{"_index":1700,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(json.stringify(cause",{"_index":3852,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(json.stringify(error",{"_index":8399,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["error(loggable",{"_index":8339,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["error(message",{"_index":12083,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["error(string(cause",{"_index":3853,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(util.inspect(error",{"_index":10830,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.enum",{"_index":1921,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error.exception",{"_index":6510,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["error.filter",{"_index":8373,"title":{},"body":{"modules/ErrorModule.html":{}}}],["error.filter.ts",{"_index":10793,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"todo.html":{}}}],["error.filter.ts:102",{"_index":10816,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:15",{"_index":10802,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:19",{"_index":10805,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:34",{"_index":10807,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:49",{"_index":10818,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:56",{"_index":10809,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:72",{"_index":10813,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:80",{"_index":10811,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:92",{"_index":10815,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getresponse",{"_index":10848,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getstatus",{"_index":8813,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["error.interface.ts",{"_index":9614,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["error.mapper",{"_index":17774,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["error.officialschoolnumberfromsource",{"_index":21328,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.officialschoolnumberfromtarget",{"_index":21329,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.response",{"_index":1443,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts",{"_index":1420,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:10",{"_index":1426,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:21",{"_index":1442,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.ts",{"_index":20807,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.ts:3",{"_index":20808,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.validationerrors.map((e",{"_index":8306,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["error/error",{"_index":21798,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["error/id",{"_index":12634,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["error_debug",{"_index":5433,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_description",{"_index":1909,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error_hint",{"_index":5434,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_uri",{"_index":1910,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["errorcode",{"_index":15343,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["errorhandler",{"_index":16082,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorhandler(error",{"_index":16089,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorloggable",{"_index":8275,"title":{"classes/ErrorLoggable.html":{}},"body":{"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LdapStrategy.html":{}}}],["errorloggable(error",{"_index":10828,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorloggable(unknownerror",{"_index":10831,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorlogger",{"_index":8325,"title":{"injectables/ErrorLogger.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"modules/LoggerModule.html":{}}}],["errorlogmessage",{"_index":8288,"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/TooManyPseudonymsLoggableException.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":8351,"title":{"classes/ErrorMapper.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["errormapper.maprpcerrorresponsetodomainerror(error",{"_index":17782,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["errormessage",{"_index":1636,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["errormessages",{"_index":8305,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errormodule",{"_index":6426,"title":{"modules/ErrorModule.html":{}},"body":{"modules/CoreModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules.html":{}}}],["errorobj",{"_index":8357,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorobj.status",{"_index":8359,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorredirect",{"_index":16136,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('error",{"_index":16138,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('provider",{"_index":16140,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('sourceschoolnumber",{"_index":16146,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('targetschoolnumber",{"_index":16147,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorresponse",{"_index":1409,"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":{},"controllers/GroupController.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["errorresponse(type",{"_index":10846,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorresponse:10",{"_index":1436,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:15",{"_index":1434,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:20",{"_index":1432,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:25",{"_index":1428,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:30",{"_index":1429,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse})@apiresponse({status",{"_index":10950,"title":{},"body":{"controllers/GroupController.html":{}}}],["errorresponse})@get('/class",{"_index":10952,"title":{},"body":{"controllers/GroupController.html":{}}}],["errors",{"_index":1423,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/AuthenticationService.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/GlobalValidationPipe.html":{},"injectables/TaskCopyUC.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/ldap",{"_index":13770,"title":{},"body":{"injectables/LdapService.html":{}}}],["errors/school",{"_index":15508,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["errorstatus",{"_index":21797,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["errorstatus.guests_cannot_join_conference",{"_index":21929,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["errortype",{"_index":1185,"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":21468,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('sourcesystem",{"_index":21470,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('targetsystem",{"_index":21471,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.tostring",{"_index":21472,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorutils",{"_index":1354,"title":{"classes/ErrorUtils.html":{}},"body":{"injectables/AntivirusService.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":1371,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(error",{"_index":2317,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["errorutils.createhttpexceptionoptions(errorobj",{"_index":8364,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorutils.isbusinesserror(error",{"_index":10839,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isbusinesserror(this.error",{"_index":8301,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isfeatherserror(error",{"_index":10837,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isfeatherserror(this.error",{"_index":8299,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isnesthttpexception(error",{"_index":10841,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isnesthttpexception(this.error",{"_index":8302,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["erweitern",{"_index":4821,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["erwin",{"_index":22950,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["erwinidm",{"_index":22951,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["es",{"_index":12588,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["es256",{"_index":1596,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es384",{"_index":1597,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es512",{"_index":1598,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es6",{"_index":22118,"title":{},"body":{"dependencies.html":{}}}],["escape",{"_index":14908,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["escaped",{"_index":11816,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["escapedclasses",{"_index":13034,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedfirstname",{"_index":13018,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedlastname",{"_index":13026,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedloginname",{"_index":13029,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedname",{"_index":21525,"title":{},"body":{"injectables/UserRepo.html":{}}}],["escapedusername",{"_index":941,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["escapes",{"_index":936,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["eslint",{"_index":1187,"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":{},"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":21529,"title":{},"body":{"injectables/UserRepo.html":{}}}],["eslint/dot",{"_index":2527,"title":{},"body":{"classes/BaseFactory.html":{}}}],["eslint/no",{"_index":1191,"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":{},"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/restrict",{"_index":1267,"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":23021,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["especially",{"_index":23153,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["essential",{"_index":22401,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["etag",{"_index":6274,"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":22216,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["etherpad",{"_index":8418,"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":{}}}],["etherpadservice",{"_index":8400,"title":{"injectables/EtherpadService.html":{}},"body":{"injectables/EtherpadService.html":{},"modules/LessonModule.html":{}}}],["evaluate",{"_index":23270,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evaluated",{"_index":23271,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evans",{"_index":23287,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["even",{"_index":22255,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["event",{"_index":3901,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"license.html":{}}}],["event.data[0",{"_index":3907,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["event.dto",{"_index":3905,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.dto.ts",{"_index":3888,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:2",{"_index":3892,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:4",{"_index":3891,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.interface",{"_index":3903,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.interface.ts",{"_index":11583,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["eventid",{"_index":3926,"title":{},"body":{"injectables/CalendarService.html":{}}}],["events",{"_index":11645,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["everyattendeejoinsmuted",{"_index":8032,"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":21660,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everybodyjoinsasmoderator",{"_index":8033,"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":22270,"title":{},"body":{"license.html":{}}}],["everything",{"_index":23638,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exact",{"_index":12718,"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":21350,"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":2536,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceOptionsResponse.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/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":{}}}],["example'example",{"_index":23548,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["exampleapimodule",{"_index":23143,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplecolor",{"_index":7486,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["examplecontroller",{"_index":23142,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplemodule",{"_index":23133,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examples",{"_index":23629,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exampleuc",{"_index":23141,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exceeded",{"_index":8823,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/HydraOauthUc.html":{}}}],["except",{"_index":14909,"title":{},"body":{"classes/MongoPatterns.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception",{"_index":8369,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"modules/ErrorModule.html":{},"injectables/FeathersRosterService.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":10852,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.getstatus",{"_index":10849,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.loggable",{"_index":12635,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["exception.loggable.ts",{"_index":12613,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:4",{"_index":12614,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:9",{"_index":12615,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.message",{"_index":10850,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.ts",{"_index":8738,"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/TooManyPseudonymsLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:10",{"_index":18400,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["exception.ts:14",{"_index":15330,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:16",{"_index":10698,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["exception.ts:17",{"_index":8741,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:18",{"_index":20296,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:20",{"_index":8825,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["exception.ts:26",{"_index":14875,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:4",{"_index":8754,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception.ts:5",{"_index":8740,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:6",{"_index":20295,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:7",{"_index":10697,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:9",{"_index":8755,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception/not",{"_index":15324,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exceptionfactory",{"_index":10874,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["exceptionfilter",{"_index":10794,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptionname",{"_index":10851,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptions",{"_index":22603,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exceptionshandler",{"_index":19063,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["exchange",{"_index":1312,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.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":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"interfaces/ScanResult.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exchanges",{"_index":17091,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["excluded",{"_index":22552,"title":{},"body":{"license.html":{}}}],["excludedraftsofothers",{"_index":19884,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludedraftsofothers(creatorid",{"_index":19900,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers",{"_index":19885,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers(creatorid",{"_index":19902,"title":{},"body":{"classes/TaskScope.html":{}}}],["excluding",{"_index":22755,"title":{},"body":{"license.html":{}}}],["exclusion",{"_index":22839,"title":{},"body":{"license.html":{}}}],["exclusive",{"_index":22714,"title":{},"body":{"license.html":{}}}],["exclusively",{"_index":18612,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["excuse",{"_index":22762,"title":{},"body":{"license.html":{}}}],["exec",{"_index":23559,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["executable",{"_index":22397,"title":{},"body":{"license.html":{}}}],["execute",{"_index":20229,"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":21276,"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":{}}}],["executes",{"_index":22974,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["executing",{"_index":22361,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["execution",{"_index":13410,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["execution.id",{"_index":13411,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executioncontext",{"_index":8159,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["executionprovider",{"_index":13408,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executionproviders",{"_index":13386,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executions",{"_index":13409,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["exercise",{"_index":22691,"title":{},"body":{"license.html":{}}}],["exercising",{"_index":22464,"title":{},"body":{"license.html":{}}}],["exist",{"_index":1583,"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":2794,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/ContentElementUpdateVisitor.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":13676,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["existingaccounts",{"_index":13673,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts.length",{"_index":13674,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts[0].id",{"_index":13675,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingcourses",{"_index":6666,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingcourses.map((course",{"_index":6668,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingelements",{"_index":2675,"title":{},"body":{"entities/Board.html":{}}}],["existingentity",{"_index":11083,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["existinggroup",{"_index":16360,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.externalsource?.systemid",{"_index":16391,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.id",{"_index":16367,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.users",{"_index":16372,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupfromsystem.externalsource?.externalid",{"_index":16396,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser",{"_index":16387,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser.filter",{"_index":16390,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinglessons",{"_index":14172,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existinglessons.map((l",{"_index":14174,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existingmatch",{"_index":21520,"title":{},"body":{"injectables/UserRepo.html":{}}}],["existingnames",{"_index":6355,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["existingnames.includes(composedname",{"_index":6379,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingnames.includes(name",{"_index":6372,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingrooms",{"_index":7524,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingrooms.includes(room",{"_index":7527,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingschool",{"_index":16324,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingschool.externalid",{"_index":18364,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["existingschool.id",{"_index":16364,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existingschool.officialschoolnumber",{"_index":16330,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingtargets",{"_index":4898,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtargets.find((item",{"_index":4904,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtasks",{"_index":19667,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existingtasks.map((t",{"_index":19669,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existinguser",{"_index":15441,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["existinguser.email",{"_index":16349,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.firstname",{"_index":16345,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.lastname",{"_index":16347,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.roles",{"_index":16351,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.schoolid",{"_index":16352,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguserloginmigration",{"_index":14110,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["existinguserloginmigration?.closedat",{"_index":14114,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["exists",{"_index":2801,"title":{},"body":{"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":{}}}],["existssync",{"_index":10325,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["existssync(folderpath",{"_index":10333,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["exitonerror",{"_index":14436,"title":{},"body":{"modules/LoggerModule.html":{}}}],["exp",{"_index":7017,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["expect",{"_index":23114,"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":23379,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazy(x,y,z)).to",{"_index":23360,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazysync(wrong",{"_index":23382,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(mockservice.getuser).tohavebeencalled",{"_index":23425,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).to",{"_index":23363,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).toequal(resultuser",{"_index":23426,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expectation",{"_index":23352,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expected",{"_index":3144,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["expecting",{"_index":23368,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expects",{"_index":22566,"title":{},"body":{"license.html":{}}}],["expensive",{"_index":19844,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["expert",{"_index":23636,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["expiration",{"_index":7030,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtValidationAdapter.html":{}}}],["expire",{"_index":18605,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["expireafterseconds",{"_index":10054,"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":18352,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["expires",{"_index":10190,"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":1611,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{}}}],["expiresindays",{"_index":18602,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["explains",{"_index":23504,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["explanation",{"_index":23628,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicit",{"_index":2045,"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":1198,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":6719,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.service.ts",{"_index":4994,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:140",{"_index":5020,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:148",{"_index":5024,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:18",{"_index":5004,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:25",{"_index":5013,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:41",{"_index":5009,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:65",{"_index":5011,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:85",{"_index":5016,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.uc",{"_index":6621,"title":{},"body":{"controllers/CourseController.html":{}}}],["export.uc.ts",{"_index":6713,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:15",{"_index":6717,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:9",{"_index":6715,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["exportcollection",{"_index":7830,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(@param('collectionname",{"_index":7854,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(collectionname",{"_index":7833,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollections",{"_index":7789,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{}}}],["exportcollections(options",{"_index":7794,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["exportcollectionstofilesystem(collections",{"_index":11765,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportcourse",{"_index":4997,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(courseid",{"_index":5012,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(currentuser",{"_index":6606,"title":{},"body":{"controllers/CourseController.html":{}}}],["exported",{"_index":11743,"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":11769,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportedcollections.push(`${collectionname}:${sortedbsondocuments.length",{"_index":11783,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exporting",{"_index":22966,"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":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":12312,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"injectables/TaskCopyUC.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["exposed",{"_index":5466,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exposes",{"_index":23260,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["express",{"_index":6616,"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":22794,"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":22641,"title":{},"body":{"license.html":{}}}],["ext",{"_index":13052,"title":{},"body":{"interfaces/IntrospectResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["ext_official_school_missing",{"_index":18361,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_mismatch",{"_index":18387,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_missing",{"_index":18357,"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":23051,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extended",{"_index":3812,"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":18896,"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/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":{},"classes/ClassInfoSearchListResponse.html":{},"interfaces/ClassProps.html":{},"classes/ClassSortParams.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":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.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/FederalStateEntity.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":{},"injectables/FilesStorageProducer.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":{},"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/ICurrentUser.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":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"classes/LoginRequestBody.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"interfaces/PlainTextMailContent.html":{},"injectables/PreviewProducer.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymScope.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/SchoolYearEntity.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/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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/UsersList.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":23065,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extensions",{"_index":22499,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["extent",{"_index":22379,"title":{},"body":{"license.html":{}}}],["external",{"_index":200,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.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":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersRosterService.html":{},"classes/GroupResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRepoLoader.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":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthLoginResponse.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PseudonymScope.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.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/ToolReference.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusResponseMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"interfaces/UserMetdata.html":{},"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":{}}}],["external_source_name",{"_index":4438,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["external_sub",{"_index":6993,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["external_tool_logo_fetch_failed",{"_index":8742,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["external_tool_logo_fetched",{"_index":8751,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["external_tool_logo_not_found",{"_index":8756,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}}}],["external_tool_logo_size_exceeded",{"_index":8826,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["external_tool_logo_wrong_file_type",{"_index":8828,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["external_tools",{"_index":8696,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["externalauthconfig",{"_index":13139,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["externalgroup",{"_index":16311,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalid",{"_index":16362,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalorganizationid",{"_index":16363,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.from",{"_index":16370,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.name",{"_index":16368,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.type",{"_index":16369,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.until",{"_index":16371,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.map(async",{"_index":16376,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupdto",{"_index":8419,"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":18263,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroups",{"_index":15695,"title":{},"body":{"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalgroups.some",{"_index":16395,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuser",{"_index":16377,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuserdto",{"_index":8430,"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/ExternalSourceResponse.html":{},"classes/ExternalUserDto.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.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":{}}}],["externalidtoken",{"_index":7075,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginResponseMapper.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{}}}],["externalorganizationid",{"_index":8422,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalrolename",{"_index":11158,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["externalschool",{"_index":13120,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalschool.externalid",{"_index":16326,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.name",{"_index":16328,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.officialschoolnumber",{"_index":16329,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschooldto",{"_index":8450,"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":13829,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["externalsource",{"_index":8458,"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":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupDto.html":{}}}],["externalsource.externalid",{"_index":11025,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsource.systemid",{"_index":11027,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsourceentity",{"_index":8463,"title":{"classes/ExternalSourceEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["externalsourceentityprops",{"_index":8466,"title":{"interfaces/ExternalSourceEntityProps.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["externalsourcename",{"_index":4321,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassSortParams.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["externalsourceresponse",{"_index":8473,"title":{"classes/ExternalSourceResponse.html":{}},"body":{"classes/ExternalSourceResponse.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["externalsub",{"_index":7021,"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":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltool'})@httpcode(httpstatus.no_content",{"_index":20441,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltool.config",{"_index":9236,"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":9457,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientsecret",{"_index":9460,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.secret",{"_index":9316,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.type",{"_index":9453,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.id",{"_index":8801,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersRosterService.html":{},"classes/ToolConfigurationMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltool.ishidden",{"_index":8609,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.islti11config(externaltool.config",{"_index":9315,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(externaltool.config",{"_index":9318,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(loadedtool.config",{"_index":9452,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(tool.config",{"_index":9329,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.isoauth2config(toupdate.config",{"_index":9346,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.logo",{"_index":8796,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{}}}],["externaltool.logourl",{"_index":8593,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.name",{"_index":8880,"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":8556,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltool.parameters.foreach((param",{"_index":8882,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["externaltool.url",{"_index":9241,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.version",{"_index":9242,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolconfig",{"_index":2562,"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":2566,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:6",{"_index":2564,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfigcreateparams",{"_index":2583,"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":2585,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:9",{"_index":2587,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigdo",{"_index":9227,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltoolconfigentity",{"_index":2575,"title":{"classes/ExternalToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigparams",{"_index":9126,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolconfigresponse",{"_index":2593,"title":{"classes/ExternalToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:10",{"_index":2595,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:7",{"_index":2596,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigurationservice",{"_index":8509,"title":{"injectables/ExternalToolConfigurationService.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"modules/ToolApiModule.html":{}}}],["externaltoolconfigurationuc",{"_index":8557,"title":{"injectables/ExternalToolConfigurationUc.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["externaltoolcontentbody",{"_index":5643,"title":{"classes/ExternalToolContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["externaltoolcreate",{"_index":9120,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams",{"_index":8614,"title":{"classes/ExternalToolCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams.config",{"_index":9185,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.ishidden",{"_index":9193,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.logourl",{"_index":9192,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.name",{"_index":9190,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.opennewtab",{"_index":9194,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.parameters",{"_index":9189,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.url",{"_index":9191,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltooldomapper",{"_index":20460,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolelement",{"_index":2826,"title":{"classes/ExternalToolElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelement.contextexternaltoolid",{"_index":5685,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelement.id",{"_index":17300,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementcontent",{"_index":8648,"title":{"classes/ExternalToolElementContent.html":{}},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementcontentbody",{"_index":8181,"title":{"classes/ExternalToolElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["externaltoolelementnodeentity",{"_index":3177,"title":{"entities/ExternalToolElementNodeEntity.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementnodeentityprops",{"_index":8662,"title":{"interfaces/ExternalToolElementNodeEntityProps.html":{}},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["externaltoolelementprops",{"_index":8646,"title":{"interfaces/ExternalToolElementProps.html":{}},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["externaltoolelementresponse",{"_index":4011,"title":{"classes/ExternalToolElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementresponsemapper",{"_index":5582,"title":{"classes/ExternalToolElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementresponsemapper.getinstance",{"_index":5579,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["externaltoolelementresponsemapper.instance",{"_index":8675,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolentity",{"_index":8680,"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":9012,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolentityfactory",{"_index":8699,"title":{"classes/ExternalToolEntityFactory.html":{}},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolentityfactory.define",{"_index":8719,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolfactory",{"_index":7307,"title":{"classes/ExternalToolFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolfactory.define(externaltool",{"_index":7318,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolid",{"_index":5735,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/FeathersRosterService.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/ToolConfigurationMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltoolidparams",{"_index":8727,"title":{"classes/ExternalToolIdParams.html":{}},"body":{"classes/ExternalToolIdParams.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo",{"_index":8728,"title":{"classes/ExternalToolLogo.html":{}},"body":{"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.contenttype",{"_index":8735,"title":{},"body":{"classes/ExternalToolLogo.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.logo",{"_index":8733,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["externaltoollogofetchedloggable",{"_index":8748,"title":{"classes/ExternalToolLogoFetchedLoggable.html":{}},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchedloggable(logourl",{"_index":8808,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception",{"_index":8736,"title":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception(logourl",{"_index":8812,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception",{"_index":8752,"title":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception(toolid",{"_index":8816,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogoservice",{"_index":8567,"title":{"classes/ExternalToolLogoService.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"controllers/ToolController.html":{},"injectables/ToolReferenceService.html":{}}}],["externaltoollogosizeexceededloggableexception",{"_index":8780,"title":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["externaltoollogowrongfiletypeloggableexception",{"_index":8781,"title":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["externaltoolmodule",{"_index":5813,"title":{"modules/ExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["externaltoolparametervalidationservice",{"_index":8839,"title":{"injectables/ExternalToolParameterValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolparams",{"_index":20433,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolprops",{"_index":7268,"title":{"interfaces/ExternalToolProps.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolpseudonymentity",{"_index":8917,"title":{"entities/ExternalToolPseudonymEntity.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"classes/PseudonymScope.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltoolpseudonymentity(entityprops",{"_index":8973,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["externaltoolpseudonympromise",{"_index":17023,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolpseudonymrepo",{"_index":8931,"title":{"injectables/ExternalToolPseudonymRepo.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["externaltoolpseudonyms",{"_index":17010,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolrepo",{"_index":8840,"title":{"injectables/ExternalToolRepo.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["externaltoolrepomapper",{"_index":5876,"title":{"classes/ExternalToolRepoMapper.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentrydostoentities(entitydo.parameters",{"_index":5903,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.parameters",{"_index":5896,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.schoolparameters",{"_index":18141,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapdotoentityproperties(entitydo",{"_index":9021,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapentitytodo(entity",{"_index":9020,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrequestmapper",{"_index":9106,"title":{"injectables/ExternalToolRequestMapper.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponse",{"_index":9208,"title":{"classes/ExternalToolResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper",{"_index":9219,"title":{"injectables/ExternalToolResponseMapper.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.mapcustomparametertoresponse(externaltool.parameters",{"_index":20376,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(created",{"_index":20463,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(externaltool",{"_index":20475,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(tool",{"_index":20470,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(updated",{"_index":20479,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20457,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20434,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltools",{"_index":8523,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltools.data",{"_index":8601,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["externaltools.data.filter((tool",{"_index":8536,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.find",{"_index":8549,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.map",{"_index":20378,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltools.map((tooldo",{"_index":18173,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["externaltoolscope",{"_index":9011,"title":{"classes/ExternalToolScope.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{}}}],["externaltoolsearchlistresponse",{"_index":9264,"title":{"classes/ExternalToolSearchListResponse.html":{}},"body":{"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20725,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":20445,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolsearchparams",{"_index":9122,"title":{"classes/ExternalToolSearchParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSearchParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolsearchquery",{"_index":8998,"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":6100,"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/FeathersRosterService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltoolservice.deleteexternaltool",{"_index":5342,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["externaltoolservicemapper",{"_index":8841,"title":{"injectables/ExternalToolServiceMapper.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["externaltoolsortby",{"_index":18882,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["externaltoolsortingmapper",{"_index":9009,"title":{"classes/ExternalToolSortingMapper.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["externaltoolsortingmapper.mapdosortordertoqueryorder",{"_index":9014,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltooluc",{"_index":9388,"title":{"injectables/ExternalToolUc.html":{}},"body":{"injectables/ExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdate",{"_index":9153,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams",{"_index":9151,"title":{"classes/ExternalToolUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams.config",{"_index":9172,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.id",{"_index":9179,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.ishidden",{"_index":9183,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.logourl",{"_index":9182,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.name",{"_index":9180,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.opennewtab",{"_index":9184,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.parameters",{"_index":9178,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.url",{"_index":9181,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolvalidationservice",{"_index":8837,"title":{"injectables/ExternalToolValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolversion",{"_index":18248,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["externaltoolversionservice",{"_index":8838,"title":{"injectables/ExternalToolVersionService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["externaluser",{"_index":13118,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.email",{"_index":16348,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.externalid",{"_index":16353,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.firstname",{"_index":16344,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.lastname",{"_index":16346,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.roles",{"_index":16339,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.includes(rolename.administrator",{"_index":17994,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.push(rolename.teacher",{"_index":17995,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluserdto",{"_index":9534,"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":8443,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["extra",{"_index":23701,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["extract",{"_index":12034,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["extractaccount",{"_index":13550,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractaccount(user",{"_index":13556,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue",{"_index":13551,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue(value",{"_index":13559,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractids(users",{"_index":6567,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extracting",{"_index":10872,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["extractjwt",{"_index":13168,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromauthheaderasbearertoken",{"_index":13172,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromextractors",{"_index":13171,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor",{"_index":13169,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor.ts",{"_index":13153,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.ts:6",{"_index":13156,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractparamsfromrequest",{"_index":13797,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractparamsfromrequest(request",{"_index":13804,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractreferences",{"_index":2966,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extractreferences(statuses",{"_index":2991,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extracts",{"_index":2283,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["extractuserlist(users",{"_index":6579,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extractvalidationerrordetails",{"_index":1424,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["extractvalidationerrordetails(validationerror",{"_index":1440,"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":2884,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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":23314,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["facilitating",{"_index":22776,"title":{},"body":{"license.html":{}}}],["facilities",{"_index":22429,"title":{},"body":{"license.html":{}}}],["factories",{"_index":7812,"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":2506,"title":{},"body":{"classes/BaseFactory.html":{}}}],["factory/account.factory",{"_index":1628,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["fail",{"_index":22321,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failafter",{"_index":13783,"title":{},"body":{"injectables/LdapService.html":{}}}],["failed",{"_index":798,"title":{},"body":{"injectables/AccountLookupService.html":{},"classes/ApiValidationError.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"interfaces/ICleanOptions.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":14401,"title":{},"body":{"injectables/LocalStrategy.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failingfileids",{"_index":7970,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.length",{"_index":7971,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.push(result.fileid",{"_index":7978,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.tostring",{"_index":7983,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["fails",{"_index":11609,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":11352,"title":{},"body":{"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"license.html":{}}}],["fair",{"_index":22426,"title":{},"body":{"license.html":{}}}],["fallback",{"_index":19987,"title":{},"body":{"injectables/TaskUC.html":{}}}],["fallbackimage",{"_index":16451,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["false",{"_index":371,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"classes/CurrentUserMapper.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalStateEntity.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":{},"classes/GroupIdParams.html":{},"injectables/GroupRepo.html":{},"interfaces/ICleanOptions.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.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/PseudonymParams.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["false})@index",{"_index":9889,"title":{},"body":{"entities/FileEntity.html":{}}}],["false})@isoptional",{"_index":21769,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["false})@sanitizehtml",{"_index":17333,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["familiar",{"_index":23634,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["familienname",{"_index":17958,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["family",{"_index":22557,"title":{},"body":{"license.html":{}}}],["fantasy",{"_index":22243,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["far",{"_index":13715,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fashion",{"_index":22349,"title":{},"body":{"license.html":{}}}],["fast",{"_index":23311,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["favicon",{"_index":22178,"title":{},"body":{"dependencies.html":{}}}],["favor",{"_index":22563,"title":{},"body":{"license.html":{}}}],["featherjs",{"_index":7029,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathers",{"_index":1905,"title":{},"body":{"modules/AuthorizationModule.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtValidationAdapter.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":9754,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersapp.service(path",{"_index":9761,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersauthorizationservice",{"_index":1885,"title":{"injectables/FeathersAuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/NewsUc.html":{}}}],["feathersauthprovider",{"_index":1890,"title":{"injectables/FeathersAuthProvider.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["featherserror",{"_index":8394,"title":{"interfaces/FeathersError.html":{}},"body":{"classes/ErrorUtils.html":{},"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["featherserror)?.type",{"_index":8397,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["feathersexpress",{"_index":9759,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersexpress.services['nest",{"_index":23228,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersjs/authentication",{"_index":22043,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/configuration",{"_index":22046,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/errors",{"_index":7772,"title":{},"body":{"injectables/DashboardUc.html":{},"dependencies.html":{}}}],["feathersjs/express",{"_index":9748,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"dependencies.html":{}}}],["feathersjs/feathers",{"_index":22047,"title":{},"body":{"dependencies.html":{}}}],["feathersmodule",{"_index":1883,"title":{"modules/FeathersModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/FeathersModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersrosterservice",{"_index":9627,"title":{"injectables/FeathersRosterService.html":{}},"body":{"injectables/FeathersRosterService.html":{},"modules/PseudonymModule.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["feathersservice",{"_index":9737,"title":{"interfaces/FeathersService.html":{}},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceparams",{"_index":9741,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceprovider",{"_index":8404,"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":9750,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feature",{"_index":6712,"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":{},"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":22251,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature/sc",{"_index":22242,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature_disabled_app_will_not_be_created",{"_index":16791,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_disabled_middlewares_will_not_be_created",{"_index":16784,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_identity_management_enabled",{"_index":12002,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_login_enabled",{"_index":12003,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_store_enabled",{"_index":12004,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_imscc_course_export_enabled",{"_index":11853,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["features",{"_index":6472,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["featureundertest",{"_index":23405,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["federal",{"_index":12189,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolFactory.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstate",{"_index":9787,"title":{},"body":{"injectables/FederalStateService.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/SystemEntity.html":{}}}],["federalstateentity",{"_index":6464,"title":{"entities/FederalStateEntity.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstatefactory",{"_index":13990,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatefactory.build",{"_index":14003,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatenames",{"_index":16320,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstatenames.niedersachen",{"_index":16334,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstaterepo",{"_index":9770,"title":{"injectables/FederalStateRepo.html":{}},"body":{"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{}}}],["federalstates",{"_index":6463,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["federalstateservice",{"_index":9776,"title":{"injectables/FederalStateService.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{}}}],["fee",{"_index":22482,"title":{},"body":{"license.html":{}}}],["feedback",{"_index":4859,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feedbacklink",{"_index":4852,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feel",{"_index":1644,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fetch",{"_index":2681,"title":{},"body":{"entities/Board.html":{},"injectables/CourseCopyService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["fetchbase64logo",{"_index":8760,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchbase64logo(logourl",{"_index":8770,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetched",{"_index":8743,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["fetchedentity",{"_index":2417,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["fetchlogo",{"_index":8761,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchlogo(externaltool",{"_index":8772,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchopengraphdata",{"_index":16421,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["fetchopengraphdata(url",{"_index":16423,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["few",{"_index":23742,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["ffd8ffe0",{"_index":8783,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffd8ffe1",{"_index":8785,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffffff",{"_index":6745,"title":{},"body":{"classes/CourseFactory.html":{}}}],["field",{"_index":12043,"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":2632,"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":{},"classes/UsersList.html":{}}}],["fields",{"_index":2142,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":8003,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.collectionname",{"_index":11723,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["file.data",{"_index":9799,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.dto.ts",{"_index":6172,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:5",{"_index":6176,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:7",{"_index":6177,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:9",{"_index":6175,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.id",{"_index":8001,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.interface",{"_index":5173,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["file.interface.ts",{"_index":11856,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:2",{"_index":11857,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:3",{"_index":11858,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.isdirectory",{"_index":7998,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.mimetype",{"_index":9800,"title":{},"body":{"classes/FileDto.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.name",{"_index":9798,"title":{},"body":{"classes/FileDto.html":{}}}],["file.storagefilename",{"_index":8005,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.storageprovider",{"_index":8007,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file_could_not_be_copied_hint",{"_index":6311,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filecontent",{"_index":11750,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filecontentbody",{"_index":5644,"title":{"classes/FileContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["filecopy",{"_index":17165,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopy.map((copyfiledto",{"_index":17172,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservice",{"_index":3304,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservicefactory",{"_index":4738,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["filecopystatus",{"_index":6321,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["filecouldnotbecopied",{"_index":6312,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedto",{"_index":6324,"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":{}}}],["filedtobuilder",{"_index":9809,"title":{"classes/FileDtoBuilder.html":{}},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(fileinfo.filename",{"_index":9823,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(name",{"_index":9828,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtos",{"_index":6304,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map",{"_index":6330,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map((filedto",{"_index":6323,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileelement",{"_index":2829,"title":{"classes/FileElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.alternativetext",{"_index":5654,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.caption",{"_index":5651,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.id",{"_index":17283,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["fileelementcontent",{"_index":9847,"title":{"classes/FileElementContent.html":{}},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementcontentbody",{"_index":8174,"title":{"classes/FileElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["fileelementnode",{"_index":3180,"title":{"entities/FileElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelementnodeprops",{"_index":9858,"title":{"interfaces/FileElementNodeProps.html":{}},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["fileelementprops",{"_index":9845,"title":{"interfaces/FileElementProps.html":{}},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["fileelementresponse",{"_index":3977,"title":{"classes/FileElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper",{"_index":5583,"title":{"classes/FileElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper.getinstance",{"_index":5575,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["fileelementresponsemapper.instance",{"_index":9868,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["fileentity",{"_index":7953,"title":{"entities/FileEntity.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/ServerConsoleModule.html":{}}}],["fileentityprops",{"_index":9917,"title":{"interfaces/FileEntityProps.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["filegroupstatus",{"_index":6335,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileid",{"_index":6334,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/DeleteFilesUc.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["fileinfo",{"_index":9819,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfo.mimetype",{"_index":9824,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfos",{"_index":10443,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filename",{"_index":6234,"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":{},"additional-documentation/nestjs-application.html":{}}}],["filename.split('.')[0",{"_index":11706,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filename=\"${encodeuri(fileresponse.name",{"_index":10569,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filename=\"${encodeuri(params.fwulearningcontent",{"_index":10744,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["filenameobj",{"_index":10110,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameobj.name",{"_index":10112,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameprefix",{"_index":6222,"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":10307,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filenames.map((filename",{"_index":11704,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filenamewithoutextension",{"_index":10109,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["fileownermodel",{"_index":9899,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["fileownermodel.user",{"_index":10378,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["fileparambuilder",{"_index":6309,"title":{"classes/FileParamBuilder.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileParamBuilder.html":{}}}],["fileparambuilder.build(copyentity.getschoolid",{"_index":6316,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparambuilder.build(originalentity.getschoolid",{"_index":6315,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparams",{"_index":6235,"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":10312,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filepermissionentity",{"_index":9897,"title":{"classes/FilePermissionEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionentityprops",{"_index":9983,"title":{"interfaces/FilePermissionEntityProps.html":{}},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionreferencemodel",{"_index":9988,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filerecord",{"_index":6188,"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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"modules/ServerConsoleModule.html":{}}}],["filerecord.creatorid",{"_index":6205,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.deletedsince",{"_index":6211,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.getpreviewstatus",{"_index":6213,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.id",{"_index":6194,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.mimetype",{"_index":6207,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name",{"_index":6195,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.parentid",{"_index":6203,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.parenttype",{"_index":6209,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.schoolid",{"_index":10565,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filerecord.securitycheck.status",{"_index":6201,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.size",{"_index":6199,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordcopy",{"_index":10074,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordcopy.securitycheck",{"_index":10076,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordfactory",{"_index":10113,"title":{"classes/FileRecordFactory.html":{}},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordfactory.define(filerecord",{"_index":10120,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordid",{"_index":6238,"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":{}}}],["filerecordlistresponse",{"_index":6219,"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":10141,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse.map((record",{"_index":10468,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordmapper",{"_index":10125,"title":{"classes/FileRecordMapper.html":{}},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordmapper.maptofilerecordresponse(filerecord",{"_index":10140,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordparams",{"_index":6225,"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":{}}}],["filerecordparenttype",{"_index":6189,"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/RecursiveCopyVisitor.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SingleFileParams.html":{}}}],["filerecordparenttype'})@isenum(filerecordparenttype",{"_index":10152,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["filerecordparenttype.boardnode",{"_index":17171,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filerecordparenttype.course",{"_index":10122,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordparenttype.lesson",{"_index":10481,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.submission",{"_index":10483,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.task",{"_index":10482,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordrepo",{"_index":10155,"title":{"injectables/FileRecordRepo.html":{}},"body":{"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{}}}],["filerecordresponse",{"_index":6192,"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":10137,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse.id",{"_index":10473,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.name",{"_index":10474,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.parentid",{"_index":10475,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecords",{"_index":10048,"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":{}}}],["filerecords.map((filerecord",{"_index":10139,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/PreviewService.html":{}}}],["filerecordscanstatus",{"_index":6214,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordscope",{"_index":10166,"title":{"classes/FileRecordScope.html":{}},"body":{"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(false",{"_index":10183,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(true",{"_index":10185,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byparentid(parentid).bymarkedfordelete(false",{"_index":10186,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(false",{"_index":10188,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(true",{"_index":10189,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().bysecuritycheckrequesttoken(token",{"_index":10192,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordsecuritycheck",{"_index":10021,"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":6286,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["fileresponse",{"_index":10237,"title":{},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"classes/TestHelper.html":{}}}],["fileresponse.contentlength",{"_index":10570,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponse.contenttype",{"_index":10568,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponsebuilder",{"_index":10233,"title":{"classes/FileResponseBuilder.html":{}},"body":{"classes/FileResponseBuilder.html":{},"injectables/PreviewService.html":{}}}],["fileresponsebuilder.build(file",{"_index":16729,"title":{},"body":{"injectables/PreviewService.html":{}}}],["files",{"_index":3578,"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":{},"modules/PreviewGeneratorAMQPModule.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":7913,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:15",{"_index":7924,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:6",{"_index":7917,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.interface",{"_index":13295,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["files.interface.ts",{"_index":12065,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["files.length",{"_index":7979,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.map((file",{"_index":7973,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.service",{"_index":10490,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["files.service.ts",{"_index":6293,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:17",{"_index":6299,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:23",{"_index":6301,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:42",{"_index":6303,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:58",{"_index":6307,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.uc.ts",{"_index":7937,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:106",{"_index":7956,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:12",{"_index":7946,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:22",{"_index":7958,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:66",{"_index":7959,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:76",{"_index":7949,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:91",{"_index":7954,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files_storage_s3_connection",{"_index":11969,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{}}}],["filesdto",{"_index":10467,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesecuritycheckentity",{"_index":9901,"title":{"classes/FileSecurityCheckEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckentityprops",{"_index":10239,"title":{"interfaces/FileSecurityCheckEntityProps.html":{}},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus",{"_index":10244,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus.pending",{"_index":10245,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycontroller",{"_index":10247,"title":{"controllers/FileSecurityController.html":{}},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filesmodule",{"_index":10355,"title":{"modules/FilesModule.html":{}},"body":{"modules/FilesModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["filespreviewevents",{"_index":16626,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{}}}],["filespreviewevents.generate_preview",{"_index":16631,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["filespreviewexchange",{"_index":16624,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["filesrepo",{"_index":7944,"title":{"injectables/FilesRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{}}}],["filesservice",{"_index":10387,"title":{"injectables/FilesService.html":{}},"body":{"injectables/FilesService.html":{}}}],["filesservicebaseurl",{"_index":1310,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["filesstorageamqpmodule",{"_index":10409,"title":{"modules/FilesStorageAMQPModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules.html":{}}}],["filesstorageapimodule",{"_index":10418,"title":{"modules/FilesStorageApiModule.html":{}},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filesstorageclientadapterservice",{"_index":6298,"title":{"injectables/FilesStorageClientAdapterService.html":{}},"body":{"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SubmissionService.html":{},"injectables/TaskService.html":{}}}],["filesstorageclientmapper",{"_index":9973,"title":{"classes/FilesStorageClientMapper.html":{}},"body":{"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapcopyfilelistresponsetocopyfilesdto(response",{"_index":10444,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapcopyfileresponsetocopyfiledto(response",{"_index":10471,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapentitytoparenttype(parent",{"_index":9975,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["filesstorageclientmapper.mapfilerecordlistresponsetodomainfilesdto(response",{"_index":10446,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapfilerecordresponsetofiledto(record",{"_index":10469,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapstringtoparenttype(filerecordresponse.parenttype",{"_index":10472,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmodule",{"_index":3567,"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":10414,"title":{"injectables/FilesStorageConsumer.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageConsumer.html":{}}}],["filesstoragecontroller",{"_index":10422,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["filesstorageevents",{"_index":10514,"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":10521,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.delete_files_of_parent",{"_index":10527,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.list_files_of_parent",{"_index":10523,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageexchange",{"_index":10501,"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":1357,"title":{},"body":{"injectables/AntivirusService.html":{},"controllers/FileSecurityController.html":{}}}],["filesstoragemapper",{"_index":10518,"title":{"classes/FilesStorageMapper.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{}}}],["filesstoragemapper.maptofilerecordlistresponse(filerecords",{"_index":10526,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstoragemapper.maptofilerecordresponse(filerecord",{"_index":10566,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filesstoragemodule",{"_index":10413,"title":{"modules/FilesStorageModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["filesstorageproducer",{"_index":10432,"title":{"injectables/FilesStorageProducer.html":{}},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{}}}],["filesstorageservice",{"_index":10496,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["filesstoragetestmodule",{"_index":10642,"title":{"modules/FilesStorageTestModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules.html":{}}}],["filesstorageuc",{"_index":10260,"title":{},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filestatuses",{"_index":6329,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filestorageauthorizationcontext",{"_index":23664,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["filestorageconfig",{"_index":11975,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["filestoragemqproducer",{"_index":10431,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesystem",{"_index":7796,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["filesystemadapter",{"_index":10273,"title":{"injectables/FileSystemAdapter.html":{}},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filesystemmodule",{"_index":10344,"title":{"modules/FileSystemModule.html":{}},"body":{"modules/FileSystemModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filetype",{"_index":17104,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["filetyperesult",{"_index":17107,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["fileupload_enabled=false",{"_index":23609,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["fileurlparams",{"_index":6233,"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":6305,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements",{"_index":6319,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements.foreach",{"_index":19619,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["fill",{"_index":23457,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["filled",{"_index":8891,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["filledpathparams",{"_index":261,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledpathparams.join",{"_index":271,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledtemplate",{"_index":8793,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["filter",{"_index":7810,"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/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":11732,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filter((element",{"_index":6418,"title":{},"body":{"classes/CopyMapper.html":{}}}],["filter((entity",{"_index":19413,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["filter((group",{"_index":18051,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((groupuser",{"_index":11290,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["filter((key",{"_index":9385,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["filter((match",{"_index":13039,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["filter((rolename",{"_index":21366,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["filter((sanisgroupuser",{"_index":18040,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((systemid",{"_index":11260,"title":{},"body":{"injectables/GroupUc.html":{}}}],["filter((user",{"_index":13711,"title":{},"body":{"classes/KeycloakSeedService.html":{},"injectables/SanisResponseMapper.html":{}}}],["filter(issubmissionitem",{"_index":8249,"title":{},"body":{"injectables/ElementUc.html":{}}}],["filter.ts",{"_index":15142,"title":{},"body":{"interfaces/NewsTargetFilter.html":{}}}],["filter/global",{"_index":8372,"title":{},"body":{"modules/ErrorModule.html":{}}}],["filterallowed",{"_index":4148,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterallowed(userid",{"_index":4161,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterbypermission",{"_index":8060,"title":{},"body":{"classes/DtoCreator.html":{}}}],["filterbypermission(elements",{"_index":8078,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtercoursesbytoolavailability",{"_index":9635,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["filtercoursesbytoolavailability(courses",{"_index":9649,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["filtered",{"_index":6365,"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":6369,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filtered.length",{"_index":6368,"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":6371,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filteredaccounts",{"_index":1134,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts.length",{"_index":1138,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts[0].id.tostring",{"_index":1145,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredcollectionswithfilepaths",{"_index":11717,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredcollectionswithfilepaths.length",{"_index":11720,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredpathobjects",{"_index":17909,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["filteredtoolreferences",{"_index":20706,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["filteredusers",{"_index":16384,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["filterforavailableexternaltools",{"_index":8512,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableexternaltools(externaltools",{"_index":8520,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools",{"_index":8513,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools(schoolexternaltools",{"_index":8525,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools",{"_index":8514,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools(externaltools",{"_index":8529,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterimportuserparams",{"_index":10655,"title":{"classes/FilterImportUserParams.html":{}},"body":{"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["filtermatchtype",{"_index":10668,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.auto",{"_index":12907,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.manual",{"_index":12909,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.none",{"_index":12911,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filternewsparams",{"_index":10682,"title":{"classes/FilterNewsParams.html":{}},"body":{"classes/FilterNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["filterparametersforscope",{"_index":8515,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparametersforscope(externaltool",{"_index":8532,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparams",{"_index":19288,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterparams.onlyoauth",{"_index":19307,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterquery",{"_index":2394,"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/PseudonymScope.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":10673,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/RoleNameMapper.html":{}}}],["filterroletype.admin",{"_index":17544,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.student",{"_index":17546,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.teacher",{"_index":17545,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filters",{"_index":6901,"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":19825,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.classes",{"_index":12959,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.finished.value",{"_index":19818,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.firstname",{"_index":12951,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.flagged",{"_index":12963,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.lastname",{"_index":12953,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.loginname",{"_index":12955,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.matches",{"_index":12961,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.name.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":21526,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters.role",{"_index":12957,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters?.afterduedateornone",{"_index":19821,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.availableon",{"_index":19823,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.draft",{"_index":19829,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.finished",{"_index":19816,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.hidden",{"_index":14224,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["filters?.name",{"_index":21523,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters?.nofutureavailabledate",{"_index":19831,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.onlyactivecourses",{"_index":6928,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["filtersubmissionsbypermission",{"_index":19230,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtersubmissionsbypermission(submissions",{"_index":19234,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtertoolswithpermissions",{"_index":6051,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filtertoolswithpermissions(userid",{"_index":6063,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filterundefined",{"_index":14624,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["filteruserparams",{"_index":10693,"title":{"classes/FilterUserParams.html":{}},"body":{"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/UserMatchMapper.html":{}}}],["final",{"_index":11381,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["finally",{"_index":14854,"title":{},"body":{"classes/MigrationResponse.html":{},"license.html":{}}}],["find",{"_index":4661,"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":{},"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((item",{"_index":8250,"title":{},"body":{"injectables/ElementUc.html":{}}}],["find(@query",{"_index":19304,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(filterparams",{"_index":19281,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(params",{"_index":9744,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["find(query",{"_index":5853,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["findaccountbydbcaccountid",{"_index":12679,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcaccountid(accountdbcaccountid",{"_index":12693,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid",{"_index":12680,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid(accountdbcuserid",{"_index":12697,"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":12700,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["findaccountbyid(currentuser",{"_index":514,"title":{},"body":{"controllers/AccountController.html":{}}}],["findaccountbyid(id",{"_index":13563,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername",{"_index":12681,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername(username",{"_index":12702,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findall",{"_index":14949,"title":{},"body":{"controllers/NewsController.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findall(currentuser",{"_index":14955,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TaskController.html":{}}}],["findall(userid",{"_index":19950,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallbyconfigtype",{"_index":8993,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbyconfigtype(type",{"_index":9000,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbycontext",{"_index":6023,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycontext(contextref",{"_index":6031,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycourseids",{"_index":14211,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbycourseids(courseids",{"_index":14214,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbyparentids",{"_index":19742,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyparentids(parentids",{"_index":19748,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyschoolid",{"_index":4454,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbyschoolid(schoolid",{"_index":4458,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbytask",{"_index":19202,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{}}}],["findallbytask(taskid",{"_index":19207,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findallbytask(userid",{"_index":19236,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["findallbytaskids",{"_index":19150,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbytaskids(taskids",{"_index":19154,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbyuser",{"_index":6970,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuser(userid",{"_index":6972,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuserid",{"_index":4455,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallbyuserid(userid",{"_index":4460,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallclassesforschool",{"_index":11190,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findallclassesforschool(userid",{"_index":11203,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findallcoursegroupsbyuserid",{"_index":6797,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursegroupsbyuserid(userid",{"_index":6802,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursesbyuserid",{"_index":6955,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallcoursesbyuserid(userid",{"_index":6960,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallfinished",{"_index":19542,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findallfinished(currentuser",{"_index":19552,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallfinished(userid",{"_index":19952,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallfinishedbyparentids",{"_index":19743,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallfinishedbyparentids(parentids",{"_index":19752,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallforstudent",{"_index":19942,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforstudent(user",{"_index":19954,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher",{"_index":6896,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/TaskUC.html":{}}}],["findallforteacher(user",{"_index":19956,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher(userid",{"_index":6904,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher",{"_index":6897,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher(userid",{"_index":6906,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findallforteam",{"_index":20071,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforteam(urlparams",{"_index":20072,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforuser",{"_index":15144,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallforuser(userid",{"_index":15154,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallimportusers",{"_index":12738,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallimportusers(currentuser",{"_index":12748,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findalllessonsbyuserid",{"_index":14277,"title":{},"body":{"injectables/LessonService.html":{}}}],["findalllessonsbyuserid(userid",{"_index":14284,"title":{},"body":{"injectables/LessonService.html":{}}}],["findallpublished",{"_index":15076,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallpublished(targets",{"_index":15079,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findalltasks",{"_index":19543,"title":{},"body":{"controllers/TaskController.html":{}}}],["findalltasks(currentuser",{"_index":19555,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallunmatchedusers",{"_index":12739,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunmatchedusers(currentuser",{"_index":12751,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunpublishedbyuser",{"_index":15077,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallunpublishedbyuser(targets",{"_index":15082,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findandcount",{"_index":10157,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findandcount(scope",{"_index":10165,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyclassandid",{"_index":3308,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclassandid(doclass",{"_index":3321,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclientidandislocal",{"_index":14688,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(clientid",{"_index":14741,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(oauthclientid",{"_index":14691,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbycourseid",{"_index":3662,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseid(courseid",{"_index":3667,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseids",{"_index":6775,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbycourseids(courseids",{"_index":6776,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbyemail",{"_index":21499,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyemail(email",{"_index":21503,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid",{"_index":14014,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid(externalid",{"_index":14018,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalidorfail",{"_index":20887,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalidorfail(externalid",{"_index":20894,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalsource",{"_index":11064,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternalsource(externalid",{"_index":11068,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternaltoolid",{"_index":18120,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyexternaltoolid(toolid",{"_index":18129,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyfilter",{"_index":19428,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyfilter(type",{"_index":19430,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyid",{"_index":12,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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/ContextExternalToolService.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.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/SchoolExternalToolService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.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":4797,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyid(cardid",{"_index":4102,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyid(columnid",{"_index":4970,"title":{},"body":{"injectables/ColumnService.html":{}}}],["findbyid(contextexternaltoolid",{"_index":6033,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findbyid(courseid",{"_index":6962,"title":{},"body":{"injectables/CourseService.html":{}}}],["findbyid(elementid",{"_index":5599,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["findbyid(id",{"_index":40,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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/ExternalToolService.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/SchoolYearService.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":14287,"title":{},"body":{"injectables/LessonService.html":{}}}],["findbyid(schoolexternaltoolid",{"_index":18203,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findbyid(submissionid",{"_index":19210,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findbyid(taskid",{"_index":19920,"title":{},"body":{"injectables/TaskService.html":{}}}],["findbyids",{"_index":3309,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyids(cardids",{"_index":4105,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyids(ids",{"_index":3326,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyname",{"_index":8994,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbyname(name",{"_index":9002,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbynames",{"_index":17552,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbynames(names",{"_index":17555,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbyoauth2configclientid",{"_index":8995,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauth2configclientid(clientid",{"_index":9004,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauthclientid",{"_index":14689,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyoauthclientid(oauthclientid",{"_index":14694,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyowneruserid",{"_index":10361,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyowneruserid(owneruserid",{"_index":10365,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyparentid",{"_index":10158,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyparentid(parentid",{"_index":10168,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbypermissionrefid",{"_index":10362,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbypermissionrefid(permissionrefid",{"_index":10368,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyschoolid",{"_index":18121,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolid(schoolid",{"_index":18131,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolidandparentid",{"_index":10159,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentid(schoolid",{"_index":10170,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete",{"_index":10160,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete(schoolid",{"_index":10172,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolnumber",{"_index":14015,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyschoolnumber(officialschoolnumber",{"_index":14020,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyscopeandscopeid",{"_index":21991,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbyscopeandscopeid(scopeid",{"_index":21992,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbysecuritycheckrequesttoken",{"_index":10161,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysecuritycheckrequesttoken(token",{"_index":10174,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysingleparent",{"_index":19744,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbysingleparent(creatorid",{"_index":19754,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbytype",{"_index":19460,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbytype(type",{"_index":19464,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbyuser",{"_index":11065,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuser(user",{"_index":11071,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuserandtoolorthrow",{"_index":16981,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findbyuserandtoolorthrow(user",{"_index":15293,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/PseudonymService.html":{}}}],["findbyuserid",{"_index":13,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/LessonRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["findbyuseridandtoolid",{"_index":8936,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolid(userid",{"_index":8948,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail",{"_index":8937,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail(userid",{"_index":8950,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridorfail",{"_index":14,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyuseridorfail(userid",{"_index":44,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid",{"_index":15,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid(username",{"_index":46,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findcards",{"_index":4149,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcards(userid",{"_index":4164,"title":{},"body":{"injectables/CardUc.html":{}}}],["findclassesforschool",{"_index":4411,"title":{},"body":{"injectables/ClassService.html":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{}}}],["findclassesforschool(pagination",{"_index":10946,"title":{},"body":{"controllers/GroupController.html":{}}}],["findclassesforschool(schoolid",{"_index":4416,"title":{},"body":{"injectables/ClassService.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{}}}],["findcombinedclasslistforschool",{"_index":11191,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findcombinedclasslistforschool(schoolid",{"_index":11206,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findcontextexternaltools",{"_index":6024,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcontextexternaltools(query",{"_index":6035,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcurrentyear",{"_index":18443,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["finddescendants",{"_index":3623,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendants(node",{"_index":3627,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany",{"_index":3624,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany(nodes",{"_index":3629,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddocumentsofcollection",{"_index":7869,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["finddocumentsofcollection(collectionname",{"_index":7881,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["findevent",{"_index":3922,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findevent(userid",{"_index":3925,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findexistinggridelement",{"_index":7643,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistinggridelement(elementwithposition",{"_index":7656,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistingtargets",{"_index":4889,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexistingtargets(columnboardids",{"_index":4893,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexternaltool",{"_index":9390,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["findexternaltool(currentuser",{"_index":20443,"title":{},"body":{"controllers/ToolController.html":{}}}],["findexternaltool(userid",{"_index":9400,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["findexternaltoolbyname",{"_index":9276,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname(name",{"_index":9294,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid",{"_index":9277,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid(clientid",{"_index":9296,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolpseudonymsbyuserid",{"_index":16982,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltoolpseudonymsbyuserid(userid",{"_index":16996,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltools",{"_index":9278,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltools(query",{"_index":9298,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findfederalstatebyname",{"_index":9780,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfederalstatebyname(name",{"_index":9783,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfilesaccessiblebyuser",{"_index":10389,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesaccessiblebyuser(userid",{"_index":10394,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser",{"_index":10390,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser(userid",{"_index":10396,"title":{},"body":{"injectables/FilesService.html":{}}}],["findforcleanup",{"_index":10363,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforcleanup(thresholddate",{"_index":10371,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforuser",{"_index":6605,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findforuser(@currentuser",{"_index":7383,"title":{},"body":{"controllers/DashboardController.html":{}}}],["findforuser(currentuser",{"_index":6611,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findgroupsoftypeclassforschool",{"_index":11192,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findgroupsoftypeclassforschool(schoolid",{"_index":11208,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findidsbyexternalreference",{"_index":3310,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findidsbyexternalreference(reference",{"_index":3328,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findimportusers",{"_index":12930,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusers(school",{"_index":12936,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount",{"_index":12931,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount(query",{"_index":12938,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["finding",{"_index":3642,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["findlegacyltitool",{"_index":15228,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findmany",{"_index":16,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findmany(offset",{"_index":54,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findmigrationbyschool",{"_index":21246,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyschool(schoolid",{"_index":21257,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser",{"_index":21247,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser(userid",{"_index":21259,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmultiplebyuserid",{"_index":17,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findmultiplebyuserid(userids",{"_index":60,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findnewsandcount",{"_index":15078,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnewsandcount(query",{"_index":15084,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnextcloudtool",{"_index":15229,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findone",{"_index":6898,"title":{},"body":{"injectables/CourseRepo.html":{},"controllers/NewsController.html":{}}}],["findone(@param",{"_index":14983,"title":{},"body":{"controllers/NewsController.html":{}}}],["findone(courseid",{"_index":6909,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findone(urlparams",{"_index":14958,"title":{},"body":{"controllers/NewsController.html":{}}}],["findonebyid",{"_index":10162,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyid(id",{"_index":10176,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyidforuser",{"_index":15145,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidforuser(id",{"_index":15159,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidmarkedfordelete",{"_index":10163,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebyidmarkedfordelete(id",{"_index":10178,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebytoken",{"_index":18724,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findonebytoken(token",{"_index":18725,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findoneorfail",{"_index":10164,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfail(scope",{"_index":10180,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfailhandler",{"_index":10605,"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":16983,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatepseudonym(user",{"_index":16998,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatetargets",{"_index":4890,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findorcreatetargets(columnboardids",{"_index":4896,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findparentofid",{"_index":3311,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findparentofid(childid",{"_index":3331,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findpseudonym",{"_index":8938,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonym(query",{"_index":8952,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonymbypseudonym",{"_index":8939,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{}}}],["findpseudonymbypseudonym(pseudonym",{"_index":8955,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/PseudonymService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["findpseudonymbypseudonym(userid",{"_index":17034,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["findpseudonymsbyuserid",{"_index":16984,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findpseudonymsbyuserid(userid",{"_index":17002,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["finds",{"_index":890,"title":{},"body":{"injectables/AccountRepo.html":{},"controllers/SystemController.html":{},"injectables/TeamsRepo.html":{}}}],["findschoolexternaltools",{"_index":18192,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["findschoolexternaltools(query",{"_index":18204,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findschoolexternaltools(userid",{"_index":18233,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["findstatusesbytask",{"_index":18999,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findstatusesbytask(currentuser",{"_index":19003,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findsubmissionitems",{"_index":19110,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsubmissionitems(userid",{"_index":19114,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsystemnamesforgroups",{"_index":11193,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findsystemnamesforgroups(groups",{"_index":11210,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findtasksandcount",{"_index":19745,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findtasksandcount(query",{"_index":19756,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findteambyid",{"_index":4650,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findteambyid(teamid",{"_index":4658,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findtoolbyclientid",{"_index":15949,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["findtoolbyclientid(clientid",{"_index":15953,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["finduserafterprovisioningorthrow",{"_index":15387,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserafterprovisioningorthrow(externaluserid",{"_index":15403,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserdatafromteams",{"_index":20123,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserdatafromteams(userid",{"_index":20128,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserloginmigrationbyschool",{"_index":21033,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["finduserloginmigrationbyschool(user",{"_index":21046,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["finduserloginmigrationbyschool(userid",{"_index":21304,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["findusers",{"_index":21575,"title":{},"body":{"injectables/UserService.html":{}}}],["findusers(query",{"_index":21586,"title":{},"body":{"injectables/UserService.html":{}}}],["findusersforgroup",{"_index":11194,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findusersforgroup(group",{"_index":11212,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findwithoutimportuser",{"_index":21500,"title":{},"body":{"injectables/UserRepo.html":{}}}],["findwithoutimportuser(school",{"_index":21507,"title":{},"body":{"injectables/UserRepo.html":{}}}],["fine",{"_index":23345,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["finish",{"_index":19544,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(@param",{"_index":19582,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(urlparams",{"_index":19557,"title":{},"body":{"controllers/TaskController.html":{}}}],["finishcoursecopying",{"_index":6645,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishcoursecopying(coursecopy",{"_index":6656,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finished",{"_index":7935,"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":19685,"title":{},"body":{"classes/TaskFactory.html":{}}}],["finishedat",{"_index":18353,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["finishedcoursecopy",{"_index":6673,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishedcourseids",{"_index":19769,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["finishedids",{"_index":12484,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids",{"_index":12482,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids.map((id",{"_index":12485,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserid",{"_index":12496,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids",{"_index":12492,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids.some((finisheduserid",{"_index":12495,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishforuser(user",{"_index":12545,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishing",{"_index":18351,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["first",{"_index":575,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"entities/ImportUser.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/NewsUc.html":{},"interfaces/OauthCurrentUser.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":16283,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["firstchar",{"_index":6590,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["firstclass",{"_index":12830,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["firstname",{"_index":851,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.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":{},"interfaces/UserBoardRoles.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["firstname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13019,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["firstnamesearchvalues",{"_index":11801,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["firstvaluefrom",{"_index":2293,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["firstvaluefrom(observable",{"_index":2307,"title":{},"body":{"injectables/BBBService.html":{}}}],["firstvaluefrom(respobservable",{"_index":11575,"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":5428,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["fitness",{"_index":22797,"title":{},"body":{"license.html":{}}}],["fix",{"_index":1874,"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":23017,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["fixed",{"_index":6887,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/RpcMessageProducer.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["fixes",{"_index":22889,"title":{},"body":{"todo.html":{}}}],["fixing",{"_index":23734,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["fixme",{"_index":5057,"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":23440,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fixups",{"_index":23507,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["flag",{"_index":10691,"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":20768,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flag.params.ts:7",{"_index":20770,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flagged",{"_index":10658,"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":7809,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["flags.ts",{"_index":18308,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["flexible",{"_index":23092,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["flow",{"_index":13381,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["flow.id",{"_index":13395,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flow.service",{"_index":12638,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["flow.service.ts",{"_index":15948,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:11",{"_index":15952,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:18",{"_index":15954,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:39",{"_index":15956,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.uc",{"_index":15891,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["flow.uc.ts",{"_index":15808,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:106",{"_index":15978,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:15",{"_index":15814,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:19",{"_index":15970,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:21",{"_index":15818,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:26",{"_index":15820,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:28",{"_index":15974,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:33",{"_index":15976,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:48",{"_index":15972,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:50",{"_index":15823,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:58",{"_index":15816,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:6",{"_index":16004,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:80",{"_index":15826,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:9",{"_index":16006,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:94",{"_index":15980,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flowalias",{"_index":13378,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["flows",{"_index":13391,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flows.find((tempflow",{"_index":13393,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flush",{"_index":879,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["fn",{"_index":3522,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fn(i",{"_index":3558,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fname",{"_index":1168,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["folder",{"_index":7821,"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":11336,"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":15262,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foldername",{"_index":15273,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["folderpath",{"_index":10290,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["folders",{"_index":15276,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["folgendem",{"_index":4861,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["follow",{"_index":5455,"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":7982,"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":23530,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["foo",{"_index":23036,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["foractivecourses",{"_index":6919,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forallgrouptypes",{"_index":6944,"title":{},"body":{"classes/CourseScope.html":{}}}],["forallgrouptypes(userid",{"_index":6914,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forbid",{"_index":22462,"title":{},"body":{"license.html":{}}}],["forbidden",{"_index":10708,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/ToolLaunchController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["forbidden'})@apibadrequestresponse({description",{"_index":20498,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["forbidden_exception",{"_index":10701,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["forbidden_operation",{"_index":10707,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["forbiddenexception",{"_index":2783,"title":{},"body":{"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/UserLoginMigrationUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["forbiddenexception(\"you",{"_index":15843,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["forbiddenexception('accessing",{"_index":21315,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["forbiddenexception('could",{"_index":14182,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["forbiddenexception('some",{"_index":23278,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["forbiddenexception('user",{"_index":19135,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["forbiddenexception('you",{"_index":17763,"title":{},"body":{"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["forbiddenexception(`cannot",{"_index":2788,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["forbiddenexception(errorobj.message",{"_index":8361,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["forbiddenexception(errorstatus.guests_cannot_join_conference",{"_index":21906,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["forbiddenexception(errorstatus.insufficient_permission",{"_index":21821,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["forbiddenexception})@apiresponse({status",{"_index":2905,"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":3994,"title":{},"body":{"controllers/CardController.html":{}}}],["forbiddenexception})@get(':submissioncontainerid",{"_index":3727,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["forbiddenloggableexception",{"_index":1978,"title":{"classes/ForbiddenLoggableException.html":{}},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenloggableexception(user.id",{"_index":2009,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenloggableexception(userid",{"_index":1981,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenoperationerror",{"_index":507,"title":{"classes/ForbiddenOperationError.html":{}},"body":{"controllers/AccountController.html":{},"classes/ForbiddenOperationError.html":{},"controllers/LoginController.html":{}}}],["forbidnonwhitelisted",{"_index":10871,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["forbidunknownvalues",{"_index":10873,"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.ts",{"_index":3798,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force.error.ts:5",{"_index":3800,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force_subject_identifier",{"_index":358,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["forcepasswordchange",{"_index":12583,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["forcepathstyle",{"_index":7992,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["forceserverobjectid",{"_index":7896,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["forceupdate",{"_index":6252,"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":6945,"title":{},"body":{"classes/CourseScope.html":{}}}],["forcourseid(courseid",{"_index":6923,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["foreach((key",{"_index":9387,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["foreign",{"_index":13835,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["foreignfield",{"_index":21531,"title":{},"body":{"injectables/UserRepo.html":{}}}],["form",{"_index":13546,"title":{},"body":{"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/GetFileResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"classes/JwtTestFactory.html":{},"modules/LoggerModule.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/UsersList.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["format.'})@apioperation({summary",{"_index":20389,"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":12444,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/RichText.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["formatted",{"_index":776,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["formattedjwt",{"_index":1649,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["formatting",{"_index":23015,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["forms",{"_index":22508,"title":{},"body":{"license.html":{}}}],["forroot",{"_index":1297,"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":1298,"title":{},"body":{"modules/AntivirusModule.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":18573,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forteacher",{"_index":6946,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacher(userid",{"_index":6918,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher",{"_index":6947,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher(userid",{"_index":6917,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forwardref",{"_index":1953,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/PseudonymModule.html":{},"injectables/SubmissionItemUc.html":{},"modules/TaskModule.html":{},"modules/ToolLaunchModule.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":{},"classes/KeycloakSeedService.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":{},"controllers/PseudonymController.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/TooManyPseudonymsLoggableException.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":8271,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.error.ts:4",{"_index":8273,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.exception",{"_index":8582,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["found.loggable",{"_index":15325,"title":{},"body":{"classes/NotFoundLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["found.loggable.ts",{"_index":18258,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:4",{"_index":18259,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:7",{"_index":18260,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["foundaccount.systemid",{"_index":1136,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{}}}],["foundaccounts",{"_index":651,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/KeycloakMigrationService.html":{}}}],["foundation",{"_index":22267,"title":{},"body":{"license.html":{}}}],["foundentry",{"_index":5379,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.name",{"_index":5422,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.value",{"_index":5419,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry?.value",{"_index":5416,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundproperty",{"_index":266,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundproperty.value",{"_index":269,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundpseudonym",{"_index":17036,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundpseudonym.userid",{"_index":17038,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundschool",{"_index":18436,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundschool.id",{"_index":18438,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundtools",{"_index":15315,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools.length",{"_index":15317,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools[0",{"_index":15320,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundusers",{"_index":1124,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["foundusers.length",{"_index":1137,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers[0].id.tostring",{"_index":1143,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["frame",{"_index":11369,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["free",{"_index":1645,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["freedom",{"_index":22285,"title":{},"body":{"license.html":{}}}],["freejoin",{"_index":2236,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["freeport",{"_index":22128,"title":{},"body":{"dependencies.html":{}}}],["freuen",{"_index":4855,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["friendly",{"_index":7305,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["friendlyurl",{"_index":7132,"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":21768,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["from.options",{"_index":22028,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.permission",{"_index":22026,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.url",{"_index":22027,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["fromcookie",{"_index":13154,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromcookie(name",{"_index":13155,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromgroup",{"_index":10879,"title":{},"body":{"classes/GridElement.html":{}}}],["fromgroup(title",{"_index":7476,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedgroup",{"_index":10880,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedgroup(id",{"_index":7474,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedreference",{"_index":10881,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedreference(id",{"_index":7473,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["fromsinglereference",{"_index":10882,"title":{},"body":{"classes/GridElement.html":{}}}],["fromsinglereference(reference",{"_index":7475,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["front",{"_index":14527,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["frontchannel",{"_index":15593,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["frontchannel_logout_uri",{"_index":7134,"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":7281,"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":10326,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.accountsfile",{"_index":13718,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.usersfile",{"_index":13720,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.rm",{"_index":10339,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fsp",{"_index":10324,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fulfil",{"_index":23467,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fulfill",{"_index":23103,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fulfilling",{"_index":22448,"title":{},"body":{"license.html":{}}}],["fulfills",{"_index":23290,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["fulfils",{"_index":23746,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["full",{"_index":10298,"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":17366,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fullname",{"_index":2168,"title":{},"body":{"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["fullpath",{"_index":17339,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fully",{"_index":21324,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["function",{"_index":687,"title":{},"body":{"classes/AccountFactory.html":{},"modules/AccountModule.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"modules/EncryptionModule.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.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/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SchoolExternalToolFactory.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":{},"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":6433,"title":{},"body":{"modules/CoreModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["functionalities",{"_index":23514,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["functionality",{"_index":20034,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["functioning",{"_index":22577,"title":{},"body":{"license.html":{}}}],["functions",{"_index":21263,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["funktionen",{"_index":4826,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["further",{"_index":22533,"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":23404,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fut.somefunction",{"_index":23424,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["future",{"_index":1941,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":10716,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["fwu_content_s3_connection",{"_index":10769,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["fwulearningcontent",{"_index":10780,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["fwulearningcontentscontroller",{"_index":10711,"title":{"controllers/FwuLearningContentsController.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["fwulearningcontentsmodule",{"_index":10746,"title":{"modules/FwuLearningContentsModule.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules.html":{}}}],["fwulearningcontentstestmodule",{"_index":10757,"title":{"modules/FwuLearningContentsTestModule.html":{}},"body":{"modules/FwuLearningContentsTestModule.html":{},"modules.html":{}}}],["fwulearningcontentsuc",{"_index":10721,"title":{"injectables/FwuLearningContentsUc.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["g",{"_index":6327,"title":{},"body":{"injectables/CopyFilesService.html":{},"additional-documentation/nestjs-application.html":{}}}],["gates",{"_index":23018,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["general",{"_index":20035,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["generall",{"_index":2453,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["generally",{"_index":22411,"title":{},"body":{"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/PreviewProducer.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":{}}}],["generate(payload",{"_index":16687,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generatearray",{"_index":3509,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatearray(length",{"_index":3521,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatebrokersystems",{"_index":19461,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatebrokersystems(systems",{"_index":19466,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatechecksum",{"_index":2242,"title":{},"body":{"injectables/BBBService.html":{}}}],["generatechecksum(callname",{"_index":2263,"title":{},"body":{"injectables/BBBService.html":{}}}],["generateconfig",{"_index":11484,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generateconfig(oauthclientid",{"_index":11492,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generated",{"_index":6250,"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":2511,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedid.tohexstring",{"_index":2514,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedsystem",{"_index":19494,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.id",{"_index":19496,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig",{"_index":19497,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.idphint",{"_index":19498,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.redirecturi",{"_index":19500,"title":{},"body":{"injectables/SystemService.html":{}}}],["generateemptydashboard",{"_index":7740,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generateemptydashboard(userid",{"_index":7753,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generategroupfoldername",{"_index":15230,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupfoldername(teamid",{"_index":15241,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid",{"_index":15231,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid(dto",{"_index":15245,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generatejwt",{"_index":1708,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatejwt(user",{"_index":1718,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatelaunchrequest",{"_index":20573,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatelaunchrequest(toollaunchdata",{"_index":20578,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatepreview",{"_index":16619,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(@rabbitpayload",{"_index":16632,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generatepreview(params",{"_index":16661,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(payload",{"_index":16623,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generates",{"_index":15243,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generateseeddata",{"_index":11671,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generateseeddata((s",{"_index":11730,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generatesharetoken",{"_index":20277,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generating",{"_index":23026,"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":{},"modules/FilesStorageModule.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/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewService.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.builder",{"_index":16667,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.builder.ts",{"_index":16614,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.builder.ts:6",{"_index":16616,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.consumer",{"_index":16640,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["generator.consumer.ts",{"_index":16618,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:10",{"_index":16622,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:20",{"_index":16625,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.service",{"_index":16629,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/ShareTokenService.html":{}}}],["generator.service.ts",{"_index":16652,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/TokenGenerator.html":{}}}],["generator.service.ts:12",{"_index":16657,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:18",{"_index":16662,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:37",{"_index":16659,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:43",{"_index":16664,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:7",{"_index":20278,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generator/interface/preview",{"_index":16602,"title":{},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["generator/interface/preview.ts",{"_index":16605,"title":{},"body":{"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["generator/loggable/preview",{"_index":16575,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["generator/preview",{"_index":16613,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["generator/preview.producer.ts",{"_index":16685,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:11",{"_index":16686,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:23",{"_index":16688,"title":{},"body":{"injectables/PreviewProducer.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":23730,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["generic",{"_index":23068,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["genericdata",{"_index":1179,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["genericsortfunction",{"_index":18887,"title":{},"body":{"classes/SortHelper.html":{}}}],["genericsortfunction(a",{"_index":18888,"title":{},"body":{"classes/SortHelper.html":{}}}],["geogebra",{"_index":11869,"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":17965,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["get('*/:fwulearningcontent",{"_index":10719,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get('/:contentid/edit",{"_index":11378,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contentid/play",{"_index":11375,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contexttype/:contextid",{"_index":20659,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:contexttype/:contextid')@apioperation({summary",{"_index":20651,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:externaltoolid/logo",{"_index":20482,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo')@apioperation({summary",{"_index":20451,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:groupid",{"_index":10973,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/:groupid')@apioperation({summary",{"_index":10956,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/class",{"_index":10967,"title":{},"body":{"controllers/GroupController.html":{}}}],["get(':boardid",{"_index":2939,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':boardid/context",{"_index":2943,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':contextexternaltoolid",{"_index":20423,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apinotfoundresponse()@apiokresponse({description",{"_index":20396,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid",{"_index":20418,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid')@apiforbiddenresponse()@apiunauthorizedresponse()@apiokresponse({description",{"_index":20401,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid/available",{"_index":20324,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get(':courseid/export",{"_index":6609,"title":{},"body":{"controllers/CourseController.html":{}}}],["get(':externaltoolid",{"_index":20472,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':externaltoolid')@apioperation({summary",{"_index":20448,"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":14959,"title":{},"body":{"controllers/NewsController.html":{}}}],["get(':pseudonym",{"_index":16936,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':pseudonym')@apifoundresponse({description",{"_index":16926,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':roomid/board",{"_index":17692,"title":{},"body":{"controllers/RoomsController.html":{}}}],["get(':schoolexternaltoolid",{"_index":20736,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20721,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolid/migration",{"_index":13958,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':schoolid/migration')@authenticate('jwt')@apifoundresponse({description",{"_index":13929,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':scope/:scopeid",{"_index":21866,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid')@apioperation({summary",{"_index":21844,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid/end",{"_index":21755,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/end')@apioperation({summary",{"_index":21711,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info",{"_index":21752,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info')@apioperation({summary",{"_index":21717,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join",{"_index":21749,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join')@apioperation({summary",{"_index":21721,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':submissioncontainerid",{"_index":3740,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["get(':teamid/news",{"_index":20074,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["get(':token",{"_index":18658,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["get('auth/:oauthclientid",{"_index":16183,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/:oauthclientid')@authenticate('jwt",{"_index":16108,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/sessions/consent",{"_index":15936,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('baseurl",{"_index":15868,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients",{"_index":15904,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients/:id",{"_index":15901,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('consentrequest/:challenge",{"_index":15929,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('context",{"_index":20333,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["get('context/:contextexternaltoolid/launch",{"_index":20504,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('context/:contextexternaltoolid/launch')@apioperation({summary",{"_index":20494,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('finished",{"_index":19553,"title":{},"body":{"controllers/TaskController.html":{}}}],["get('hydra/:oauthclientid",{"_index":16179,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('hydra/:oauthclientid')@authenticate('jwt",{"_index":16098,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('login/:systemid",{"_index":16094,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('loginrequest/:challenge",{"_index":15864,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('me",{"_index":20832,"title":{},"body":{"controllers/UserController.html":{}}}],["get('oauth",{"_index":16113,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration",{"_index":16189,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration')@authenticate('jwt')@apiokresponse({description",{"_index":16101,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('page",{"_index":21378,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["get('public",{"_index":19303,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public')@apioperation({summary",{"_index":19283,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid",{"_index":19309,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid')@apioperation({summary",{"_index":19290,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('school",{"_index":20339,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('school/:schoolid/available",{"_index":20329,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('schools/:schoolid",{"_index":21099,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('schools/:schoolid')@apiforbiddenresponse()@apiokresponse({description",{"_index":21047,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('status/task/:taskid",{"_index":19005,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["get('unassigned",{"_index":12752,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["get()@apiforbiddenresponse()@apioperation({summary",{"_index":21053,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get()@apifoundresponse({description",{"_index":20444,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["get()@apioperation({summary",{"_index":531,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(`${this.options.uri}${path",{"_index":1269,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10262,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["get(id",{"_index":9746,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["get(path",{"_index":1265,"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":10717,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get(subpath",{"_index":1656,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["get(url",{"_index":11494,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["get/post",{"_index":11389,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getadditionalerrorinfo",{"_index":13085,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadditionalerrorinfo(email",{"_index":13091,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadminidandtoken",{"_index":1279,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getadminuser",{"_index":13242,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getallaccounts",{"_index":12682,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getalternativetext",{"_index":9835,"title":{},"body":{"classes/FileElement.html":{}}}],["getancestorids",{"_index":3312,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getancestorids(boarddo",{"_index":3334,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getandpseudonyms",{"_index":9636,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getandpseudonyms(users",{"_index":9652,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getapiresponsetimemetriclabels",{"_index":17368,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getapiresponsetimemetriclabels(req",{"_index":17384,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getasadmin(path",{"_index":1263,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getauthenticationurl",{"_index":15388,"title":{},"body":{"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{}}}],["getauthenticationurl(oauthconfig",{"_index":15405,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getauthenticationurl(session",{"_index":16091,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getavailabletoolsforcontext",{"_index":8562,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(currentuser",{"_index":20323,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(userid",{"_index":8573,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getavailabletoolsforschool",{"_index":8563,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(currentuser",{"_index":20328,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(userid",{"_index":8575,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getbaseurl",{"_index":2285,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig",{"_index":2243,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig(presentationurl",{"_index":2270,"title":{},"body":{"injectables/BBBService.html":{}}}],["getboard",{"_index":17745,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboard(roomid",{"_index":17749,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboardauthorizable",{"_index":3118,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardauthorizable(boarddo",{"_index":3124,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardcontext",{"_index":2895,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardcontext(urlparams",{"_index":2913,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardobjecttitlesbyid",{"_index":4786,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardobjecttitlesbyid(boardids",{"_index":4800,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardskeleton",{"_index":2896,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardskeleton(urlparams",{"_index":2917,"title":{},"body":{"controllers/BoardController.html":{}}}],["getbydraftforcreatorquery",{"_index":19886,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftforcreatorquery(creatorid",{"_index":19904,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery",{"_index":19887,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery(isdraft",{"_index":19906,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbyid(externaltoolpseudonymentity.name",{"_index":8971,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["getbyid(pseudonymentity.name",{"_index":17056,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["getbytargetid(id",{"_index":2665,"title":{},"body":{"entities/Board.html":{}}}],["getcaption",{"_index":9833,"title":{},"body":{"classes/FileElement.html":{}}}],["getcards",{"_index":3969,"title":{},"body":{"controllers/CardController.html":{}}}],["getcards(currentuser",{"_index":3989,"title":{},"body":{"controllers/CardController.html":{}}}],["getchildren",{"_index":2777,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["getchildren(boardnode",{"_index":3226,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["getclientid",{"_index":13243,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getclientsecret",{"_index":13244,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getcollectdefaultmetrics",{"_index":16758,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcollectionnames",{"_index":7870,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getcollectmetricsroutemetrics",{"_index":16760,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcompleted",{"_index":19042,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["getconfigurationtemplateforcontext",{"_index":20321,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforcontext(currentuser",{"_index":20332,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool",{"_index":20322,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool(currentuser",{"_index":20338,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconsentrequest",{"_index":15810,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(@param",{"_index":15930,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getconsentrequest(challenge",{"_index":15817,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(params",{"_index":15860,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getcontent",{"_index":7455,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getcontentfile",{"_index":11384,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getcontext",{"_index":4726,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["getcontextexternaltool",{"_index":6052,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(currentuser",{"_index":20395,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(userid",{"_index":6066,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcontextexternaltoolid",{"_index":8638,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["getcontextexternaltoolsforcontext",{"_index":6053,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(currentuser",{"_index":20400,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(userid",{"_index":6068,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcopiesforchildrenof",{"_index":17117,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopiesforchildrenof(original",{"_index":17125,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopyname",{"_index":19631,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopyname(originaltaskname",{"_index":19642,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopystatusesforchildrenof",{"_index":17118,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopystatusesforchildrenof(original",{"_index":17127,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcoursegroupitems",{"_index":6583,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getcoursegroupstudentids",{"_index":12294,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getcoursesfromuserspseudonym",{"_index":9637,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getcoursesfromuserspseudonym(pseudonym",{"_index":9654,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getcreatedat",{"_index":2779,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["getcurrentschoolyear",{"_index":18450,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["getdashboardbyid",{"_index":7727,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdashboardbyid(id",{"_index":7731,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdata",{"_index":13086,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(input",{"_index":13093,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(systemid",{"_index":16859,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getdatabasecollection",{"_index":7871,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdatabasecollection(collectionname",{"_index":7884,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdb",{"_index":7888,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdefaultmaxduedate",{"_index":19943,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getdescription",{"_index":14320,"title":{},"body":{"classes/LinkElement.html":{}}}],["getdestinationcourse",{"_index":19632,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationcourse(courseid",{"_index":19646,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson",{"_index":19633,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson(lessonid",{"_index":19648,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdisplayname",{"_index":21576,"title":{},"body":{"injectables/UserService.html":{}}}],["getdisplayname(user",{"_index":21588,"title":{},"body":{"injectables/UserService.html":{}}}],["getduedate",{"_index":18970,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["geteditor",{"_index":11359,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getelement",{"_index":7400,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getelement(position",{"_index":7425,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getelements",{"_index":2668,"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":9583,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getentitypermissions(userid",{"_index":9591,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["geteol",{"_index":10322,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["getestet",{"_index":4832,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getexternalid",{"_index":785,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalid(id",{"_index":792,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalsource",{"_index":10917,"title":{},"body":{"classes/Group.html":{}}}],["getexternalsubclientmapperconfiguration",{"_index":13326,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getexternaltool",{"_index":9391,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["getexternaltool(currentuser",{"_index":20447,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltool(userid",{"_index":9402,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["getexternaltoolbinarylogo",{"_index":8762,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoolbinarylogo(toolid",{"_index":8774,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoollogo",{"_index":20431,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(@param",{"_index":20483,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(params",{"_index":20450,"title":{},"body":{"controllers/ToolController.html":{}}}],["getfile",{"_index":6273,"title":{"interfaces/GetFile.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileResponseBuilder.html":{},"interfaces/GetFile.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["getfileresponse",{"_index":10236,"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":10494,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(@rabbitpayload",{"_index":10524,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(payload",{"_index":10507,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilteredgroupusers",{"_index":16303,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfilteredgroupusers(externalgroup",{"_index":16309,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfinisheduserids",{"_index":12479,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getfirstopenindex",{"_index":7401,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getflowexecutionsrequest",{"_index":13397,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getflowsrequest",{"_index":13387,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getformat",{"_index":16595,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getformat(previewparams.outputformat",{"_index":16597,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getfwulearningcontentparams",{"_index":10718,"title":{"classes/GetFwuLearningContentParams.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{}}}],["getgradedsubmissions",{"_index":12508,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getgradelevel",{"_index":4227,"title":{},"body":{"classes/Class.html":{}}}],["getgrid",{"_index":7402,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getgroup",{"_index":9638,"title":{},"body":{"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{},"injectables/GroupUc.html":{}}}],["getgroup(courseid",{"_index":9656,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getgroup(currentuser",{"_index":10954,"title":{},"body":{"controllers/GroupController.html":{}}}],["getgroup(userid",{"_index":11214,"title":{},"body":{"injectables/GroupUc.html":{}}}],["getgroupdata(groupname",{"_index":1245,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmembers(groupname",{"_index":1243,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmoderators(groupname",{"_index":1241,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getheight",{"_index":3952,"title":{},"body":{"classes/Card.html":{}}}],["gethello",{"_index":18478,"title":{},"body":{"classes/ServerConsole.html":{},"controllers/ServerController.html":{}}}],["gethydraoauthtoken",{"_index":16083,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["gethydraoauthtoken(query",{"_index":16096,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getid",{"_index":7403,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getidpmapperconfiguration",{"_index":13327,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getidpmapperconfiguration(idpalias",{"_index":13352,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getiframesubject",{"_index":16985,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getiframesubject(pseudonym",{"_index":17004,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getimageurl",{"_index":14324,"title":{},"body":{"classes/LinkElement.html":{}}}],["getinout",{"_index":18479,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinout(whatever",{"_index":18482,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinputformat",{"_index":17466,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getinstance",{"_index":8672,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.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":4223,"title":{},"body":{"classes/Class.html":{}}}],["getisenabled",{"_index":16752,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getitems",{"_index":20938,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["getjwtforuser",{"_index":16198,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtforuser(userid",{"_index":16202,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtfromresponse",{"_index":20191,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getjwtfromresponse(response",{"_index":1697,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getlaunchdata",{"_index":20574,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getlaunchdata(userid",{"_index":20580,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getldapdn",{"_index":4229,"title":{},"body":{"classes/Class.html":{}}}],["getlessoncomponents",{"_index":11907,"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":11908,"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":11909,"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":11382,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getlogindata",{"_index":14541,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getlogindata(userinfo",{"_index":14544,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getloginrequest",{"_index":15849,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(@param",{"_index":15918,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginrequest(challenge",{"_index":15973,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(params",{"_index":15863,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginurl",{"_index":21403,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getloginurl(system",{"_index":21411,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getlogmessage",{"_index":1469,"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/PreviewActionsLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.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":12486,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getmeetinginfo",{"_index":2244,"title":{},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["getmeetinginfo(config",{"_index":2272,"title":{},"body":{"injectables/BBBService.html":{}}}],["getmeetinginfo(currentuserid",{"_index":21895,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getmetadata",{"_index":6594,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"classes/UsersList.html":{}}}],["getmetadatastorage",{"_index":8283,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getmigration",{"_index":13925,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolid",{"_index":14099,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolparams",{"_index":13927,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["getmigrationconsentpageredirect",{"_index":21404,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationconsentpageredirect(officialschoolnumber",{"_index":21413,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationpagedetails",{"_index":21376,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(@query",{"_index":21383,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(pagetypequery",{"_index":21377,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationredirecturi",{"_index":21405,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrations",{"_index":21034,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["getmigrations(user",{"_index":21051,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["getmigrations(userid",{"_index":21306,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["getname",{"_index":4215,"title":{},"body":{"classes/Class.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getnewspermissions",{"_index":15146,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnewspermissions(userid",{"_index":15161,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnumberofdrafttasks",{"_index":11903,"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":11905,"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":11899,"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":15778,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getoauth2client(currentuser",{"_index":15787,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["getoauth2client(id",{"_index":16051,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["getoauthconfig",{"_index":12669,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["getoauthtoken",{"_index":11411,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getoauthtoken(oauthclientid",{"_index":11418,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getobjectcommand",{"_index":17851,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["getobjectreference",{"_index":880,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getobjectreference(entityname",{"_index":897,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getorconstructdashboardmodelentity",{"_index":7644,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorconstructdashboardmodelentity(entity",{"_index":7658,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorcreatecourseboard",{"_index":3663,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorcreatecourseboard(courseid",{"_index":3670,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorganization",{"_index":5270,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getorganizationid",{"_index":10919,"title":{},"body":{"classes/Group.html":{}}}],["getpagecontent",{"_index":21300,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getpagecontent(pagetype",{"_index":21308,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getparametervalue",{"_index":125,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparametervalue(customparameter",{"_index":179,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparent",{"_index":11894,"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":12538,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentinfo",{"_index":10097,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpath",{"_index":20192,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getpath(routenameinput",{"_index":1689,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getpermittedcourses",{"_index":19944,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedcourses(user",{"_index":19959,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedentities",{"_index":9584,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedentities(userid",{"_index":9593,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedlessonids",{"_index":20001,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons",{"_index":19945,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons(user",{"_index":19962,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedschools",{"_index":9546,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedschools(userid",{"_index":9552,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedtargets",{"_index":9547,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getpermittedtargets(userid",{"_index":9554,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getplayer",{"_index":11360,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getport",{"_index":16756,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getpostloginredirecturl",{"_index":15389,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpostloginredirecturl(idtoken",{"_index":15407,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpresentationurl",{"_index":2289,"title":{},"body":{"injectables/BBBService.html":{}}}],["getpreviewfile",{"_index":16697,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile(params",{"_index":16707,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname",{"_index":16712,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname(filerecord",{"_index":16726,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewstatus",{"_index":10098,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpropertyvalue",{"_index":8279,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getpropertyvalue(e",{"_index":8290,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getprops",{"_index":1793,"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/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/LinkElement.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["getprotectedroles",{"_index":17564,"title":{},"body":{"injectables/RoleService.html":{}}}],["getprovisioningstrategy",{"_index":16849,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getprovisioningstrategy(systemstrategy",{"_index":16861,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getpseudonym",{"_index":16903,"title":{},"body":{"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{}}}],["getpseudonym(params",{"_index":16924,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["getpublickey",{"_index":7008,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OauthAdapterService.html":{}}}],["getpublickey(jwksuri",{"_index":15550,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["getquery",{"_index":18464,"title":{},"body":{"classes/Scope.html":{}}}],["getredirecturi",{"_index":15390,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getredirecturi(migration",{"_index":15410,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getreferences",{"_index":7460,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getreferencesfromposition",{"_index":7404,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getreferencesfromposition(position",{"_index":7433,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getrepository",{"_index":16986,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrepository(tool",{"_index":17006,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrequiredpermissions",{"_index":15147,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequiredpermissions(unpublished",{"_index":15165,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequireduserrole",{"_index":3094,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getresolveduser",{"_index":21577,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolveduser(userid",{"_index":21590,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolvedvalues",{"_index":3011,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresolvedvalues(results",{"_index":3053,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresources",{"_index":5272,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getresponse",{"_index":1398,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["getroomboard",{"_index":17682,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroomboard(urlparams",{"_index":17691,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroute",{"_index":16754,"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":2287,"title":{},"body":{"injectables/BBBService.html":{}}}],["getschemapath",{"_index":4009,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(basictoolconfigparams",{"_index":8630,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(externaltoolelementcontentbody",{"_index":8190,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(externaltoolelementresponse",{"_index":4039,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(fileelementcontentbody",{"_index":8186,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(fileelementresponse",{"_index":4040,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(linkelementcontentbody",{"_index":8187,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(linkelementresponse",{"_index":4041,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(lti11toolconfigcreateparams",{"_index":8631,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(lti11toolconfigupdateparams",{"_index":9430,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(oauth2toolconfigcreateparams",{"_index":8632,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(oauth2toolconfigupdateparams",{"_index":9431,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(richtextelementcontentbody",{"_index":8188,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(richtextelementresponse",{"_index":4042,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(submissioncontainerelementcontentbody",{"_index":8189,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(submissioncontainerelementresponse",{"_index":4043,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschool",{"_index":20148,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["getschoolbyexternalid",{"_index":14063,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyexternalid(externalid",{"_index":14070,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid",{"_index":14064,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid(id",{"_index":14072,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber",{"_index":14065,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber(schoolnumber",{"_index":14074,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolexternaltool",{"_index":18224,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(currentuser",{"_index":20720,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(userid",{"_index":18235,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["getschoolexternaltools",{"_index":20712,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltools(currentuser",{"_index":20723,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolid",{"_index":4217,"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":{}}}],["getsecuritytoken",{"_index":10071,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getseedfolder",{"_index":11686,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["getservice",{"_index":9762,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["getservice(path",{"_index":9753,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["getshorttitle",{"_index":6588,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["getsource",{"_index":4233,"title":{},"body":{"classes/Class.html":{}}}],["getsourceoptions",{"_index":4235,"title":{},"body":{"classes/Class.html":{}}}],["getstoretype",{"_index":3856,"title":{},"body":{"injectables/CacheService.html":{}}}],["getstudentids",{"_index":6560,"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":{},"classes/UsersList.html":{}}}],["getstudentslist",{"_index":6571,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubmissionitems",{"_index":3721,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissionitems(currentuser",{"_index":3723,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["getsubmittedsubmissions",{"_index":12502,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmitterids",{"_index":12313,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getsubstitutionteacherids",{"_index":6564,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubstitutionteacherslist",{"_index":6577,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsuccessor",{"_index":4231,"title":{},"body":{"classes/Class.html":{}}}],["getsystem",{"_index":19280,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(@param",{"_index":19310,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(params",{"_index":19289,"title":{},"body":{"controllers/SystemController.html":{}}}],["gettargetfilters",{"_index":15148,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfilters(userid",{"_index":15168,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfolder(toseedfolder",{"_index":11688,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["gettasksitems",{"_index":11895,"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":4221,"title":{},"body":{"classes/Class.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteacherslist",{"_index":6575,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteammemberids",{"_index":12297,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["gettempfile",{"_index":11386,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["gettemplateforcontextexternaltool",{"_index":8564,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforcontextexternaltool(userid",{"_index":8577,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool",{"_index":8565,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool(userid",{"_index":8579,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getter",{"_index":6527,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["gettext",{"_index":17462,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getting",{"_index":22197,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{}}],["gettitle",{"_index":3948,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/LinkElement.html":{}}}],["gettitlesbyids",{"_index":3313,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettitlesbyids(id",{"_index":3336,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettoolid",{"_index":16905,"title":{},"body":{"classes/Pseudonym.html":{}}}],["gettoollaunchrequest",{"_index":20491,"title":{},"body":{"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["gettoollaunchrequest(currentuser",{"_index":20492,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["gettoollaunchrequest(userid",{"_index":20605,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["gettoolreference",{"_index":20643,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreference(contextexternaltoolid",{"_index":20686,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["gettoolreference(currentuser",{"_index":20645,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreference(userid",{"_index":20696,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext",{"_index":20644,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext(currentuser",{"_index":20650,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreferencesforcontext(userid",{"_index":20698,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettspuid",{"_index":4444,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["gettype",{"_index":10921,"title":{},"body":{"classes/Group.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getunitofwork",{"_index":8970,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["getupdatedat",{"_index":2781,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["geturl",{"_index":1335,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/LinkElement.html":{},"controllers/OauthProviderController.html":{}}}],["geturl(callname",{"_index":2274,"title":{},"body":{"injectables/BBBService.html":{}}}],["geturl(path",{"_index":1346,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["getuser",{"_index":9548,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/TeamUserEntity.html":{},"injectables/UserService.html":{}}}],["getuser(id",{"_index":21592,"title":{},"body":{"injectables/UserService.html":{}}}],["getuser(userid",{"_index":9556,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserattribute",{"_index":12683,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserattribute(userid",{"_index":12706,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getusergroups",{"_index":9639,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusergroups(pseudonym",{"_index":9659,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getuserid",{"_index":7405,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/Pseudonym.html":{},"classes/SubmissionItem.html":{}}}],["getuserids",{"_index":4219,"title":{},"body":{"classes/Class.html":{}}}],["getuserlist(querystring",{"_index":1221,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getuserparams",{"_index":20811,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["getuserparams(params",{"_index":857,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["getuserrole",{"_index":9640,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getuserrole(user",{"_index":9661,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusers",{"_index":3092,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"classes/Group.html":{}}}],["getuserschoolpermissions",{"_index":9549,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserschoolpermissions(userid",{"_index":9558,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getusersdashboard",{"_index":7728,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersdashboard(userid",{"_index":7733,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersmetadata",{"_index":9641,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusersmetadata(pseudonym",{"_index":9663,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusertargetpermissions",{"_index":9550,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["getusertargetpermissions(userid",{"_index":9560,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserwithpermissions",{"_index":1989,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getuserwithpermissions(userid",{"_index":1998,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getversion",{"_index":5700,"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":21893,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getvideoconferenceoptions(scope",{"_index":21897,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getwellknownurl",{"_index":13245,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getyear",{"_index":4225,"title":{},"body":{"classes/Class.html":{}}}],["ghcr.io/hpi",{"_index":22955,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ghcr.io/soluto/oidc",{"_index":23538,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["gi",{"_index":14906,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["gid",{"_index":11061,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["git",{"_index":22204,"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":22136,"title":{},"body":{"dependencies.html":{}}}],["git://github.com/leeroybrun/mongoose",{"_index":22152,"title":{},"body":{"dependencies.html":{}}}],["github",{"_index":22200,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["give",{"_index":22479,"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/OpenGraphProxyService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["givenname",{"_index":12395,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["gives",{"_index":9620,"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":22485,"title":{},"body":{"license.html":{}}}],["global",{"_index":6439,"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":10787,"title":{"interfaces/GlobalConstants.html":{}},"body":{"interfaces/GlobalConstants.html":{}}}],["globalerrorfilter",{"_index":8371,"title":{"classes/GlobalErrorFilter.html":{}},"body":{"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["globally",{"_index":13044,"title":{},"body":{"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["globalparameter",{"_index":7300,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["globals",{"_index":10789,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["globalsetup",{"_index":23190,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalteardown",{"_index":23191,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalvalidationpipe",{"_index":10856,"title":{"classes/GlobalValidationPipe.html":{}},"body":{"classes/GlobalValidationPipe.html":{},"modules/ValidationModule.html":{}}}],["gm",{"_index":16666,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"dependencies.html":{}}}],["gnu",{"_index":22260,"title":{},"body":{"license.html":{}}}],["go",{"_index":21764,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["goal",{"_index":22912,"title":{},"body":{"todo.html":{}}}],["goals",{"_index":22331,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["golevelup",{"_index":23401,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["golevelup/nestjs",{"_index":1351,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"dependencies.html":{}}}],["golevelup/ts",{"_index":20217,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["gonna",{"_index":23088,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["good",{"_index":13836,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["governed",{"_index":22605,"title":{},"body":{"license.html":{}}}],["gpl",{"_index":22332,"title":{},"body":{"license.html":{}}}],["grace",{"_index":18349,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["graceperiodduration",{"_index":21282,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["grade",{"_index":12105,"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":12275,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["graded",{"_index":3775,"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":12509,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradelevel",{"_index":4209,"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":1516,"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":1520,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/TokenRequestMapper.html":{}}}],["grant_types",{"_index":15587,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["granted",{"_index":22418,"title":{},"body":{"license.html":{}}}],["grants",{"_index":22669,"title":{},"body":{"license.html":{}}}],["granttype",{"_index":11560,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["graph",{"_index":5610,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{},"dependencies.html":{},"modules.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["gratis",{"_index":22532,"title":{},"body":{"license.html":{}}}],["greatest",{"_index":22832,"title":{},"body":{"license.html":{}}}],["grep",{"_index":23586,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["grid",{"_index":6828,"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":7741,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["gridelement",{"_index":7465,"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":7684,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.fromsinglereference(referenceforindex",{"_index":7542,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.fromsinglereference(room",{"_index":7533,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.getcontent().title",{"_index":7708,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.getid",{"_index":7701,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.hasid",{"_index":7699,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.isgroup",{"_index":7706,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.setgroupname(params",{"_index":7783,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["gridelementcontent",{"_index":7456,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelements",{"_index":7572,"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":7431,"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":7406,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["gridindexfromposition(pos",{"_index":7437,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridposition",{"_index":7426,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridpositionwithgroupindex",{"_index":7434,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["group",{"_index":1166,"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":{},"injectables/FeathersRosterService.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"interfaces/UserData.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{}}}],["group(props",{"_index":11078,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group(savedprops",{"_index":11089,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group.adduser(user",{"_index":16374,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.dto",{"_index":15703,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["group.dto.ts",{"_index":8421,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:10",{"_index":17407,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:11",{"_index":8425,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:12",{"_index":17408,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:13",{"_index":8429,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:14",{"_index":17404,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:15",{"_index":8428,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:16",{"_index":17403,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:17",{"_index":8423,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:5",{"_index":8424,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:6",{"_index":17405,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:7",{"_index":8426,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:8",{"_index":17406,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:9",{"_index":8431,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.externalsource",{"_index":11107,"title":{},"body":{"classes/GroupResponse.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.externalsource?.systemid",{"_index":11259,"title":{},"body":{"injectables/GroupUc.html":{}}}],["group.getprops",{"_index":11005,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["group.gruppe.bezeichnung",{"_index":18047,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.id",{"_index":18050,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.bis",{"_index":18049,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.von",{"_index":18048,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppenzugehoerigkeit.rollen",{"_index":18039,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.id",{"_index":11104,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.isempty",{"_index":16399,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.module",{"_index":10944,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["group.name",{"_index":1249,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["group.organizationid",{"_index":11109,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.params.ts",{"_index":16521,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.params.ts:14",{"_index":16523,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.removeuser(user",{"_index":16398,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.rule",{"_index":14252,"title":{},"body":{"injectables/LessonRule.html":{}}}],["group.rule.ts",{"_index":6786,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:11",{"_index":6789,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:17",{"_index":6788,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:8",{"_index":6787,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.type",{"_index":11105,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.users",{"_index":11106,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.users.map(async",{"_index":11268,"title":{},"body":{"injectables/GroupUc.html":{}}}],["group_id",{"_index":9680,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["groupapimodule",{"_index":10935,"title":{"modules/GroupApiModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["groupcontroller",{"_index":10942,"title":{"controllers/GroupController.html":{}},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{}}}],["groupdata",{"_index":7487,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupdomainmapper",{"_index":10977,"title":{"classes/GroupDomainMapper.html":{}},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapdomainobjecttoentityproperties(domainobject",{"_index":11081,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(entity",{"_index":11077,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(savedentity",{"_index":11088,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapgroupusertogroupuserentity(groupuser",{"_index":11013,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupelements",{"_index":7582,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["groupentity",{"_index":6514,"title":{"entities/GroupEntity.html":{}},"body":{"entities/Course.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["groupentity(entityprops",{"_index":11082,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupentityprops",{"_index":10987,"title":{"interfaces/GroupEntityProps.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes",{"_index":10999,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes.class",{"_index":11002,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypestogrouptypesmapping",{"_index":11001,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping[entity.type",{"_index":11023,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupfolder",{"_index":15236,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupfolders",{"_index":11333,"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":11337,"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":11335,"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":7464,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"classes/GroupIdParams.html":{},"injectables/GroupUc.html":{},"interfaces/IGridElement.html":{},"injectables/NextcloudStrategy.html":{}}}],["groupidparams",{"_index":10955,"title":{"classes/GroupIdParams.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupIdParams.html":{}}}],["groupids",{"_index":6493,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["groupindex",{"_index":7489,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["groupinfo",{"_index":1230,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupinfo.group._id",{"_index":1234,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["grouping",{"_index":3650,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["groupmetadata",{"_index":7484,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupmodule",{"_index":10939,"title":{"modules/GroupModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/ProvisioningModule.html":{},"modules.html":{}}}],["groupname",{"_index":1226,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupnameidtuple",{"_index":11059,"title":{"interfaces/GroupNameIdTuple.html":{}},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["groupprops",{"_index":10923,"title":{"interfaces/GroupProps.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{}}}],["grouprepo",{"_index":11057,"title":{"injectables/GroupRepo.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["groupresponse",{"_index":10962,"title":{"classes/GroupResponse.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper",{"_index":10963,"title":{"classes/GroupResponseMapper.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper.maptoclassinfostolistresponse",{"_index":10972,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponsemapper.maptogroupresponse(group",{"_index":10976,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponse})@apiresponse({status",{"_index":10958,"title":{},"body":{"controllers/GroupController.html":{}}}],["grouprolemapping",{"_index":18019,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprolemapping[relation.rollen[0",{"_index":18052,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable",{"_index":11147,"title":{"classes/GroupRoleUnknownLoggable.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable(relation",{"_index":18053,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprule",{"_index":1891,"title":{"injectables/GroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/GroupRule.html":{},"injectables/RuleManager.html":{}}}],["groups",{"_index":6473,"title":{},"body":{"entities/Course.html":{},"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/SanisResponseMapper.html":{},"interfaces/SuccessfulRes.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["groupservice",{"_index":11056,"title":{"injectables/GroupService.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem",{"_index":16389,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem.filter((existinggroupfromsystem",{"_index":16393,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupsoftypeclass",{"_index":11248,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupsoftypeclass.map(async",{"_index":11252,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupswithoutuser",{"_index":16392,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupswithoutuser.map(async",{"_index":16397,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["grouptype",{"_index":18034,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping",{"_index":18022,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping[group.gruppe.typ",{"_index":18035,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptyperesponse",{"_index":11097,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["grouptyperesponse.class",{"_index":11123,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["grouptypes",{"_index":8427,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponseMapper.html":{},"classes/ResolvedGroupDto.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypes.class",{"_index":11003,"title":{},"body":{"classes/GroupDomainMapper.html":{},"classes/GroupResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypestogroupentitytypesmapping",{"_index":11004,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["grouptypestogroupentitytypesmapping[props.type",{"_index":11009,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuc",{"_index":10940,"title":{"injectables/GroupUc.html":{}},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{},"injectables/GroupUc.html":{}}}],["groupucmapper",{"_index":11220,"title":{"classes/GroupUcMapper.html":{}},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["groupucmapper.mapclasstoclassinfodto(clazz",{"_index":11247,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupucmapper.mapgrouptoclassinfodto(group",{"_index":11256,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupucmapper.maptoresolvedgroupdto(group",{"_index":11274,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupuser",{"_index":10910,"title":{"classes/GroupUser.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupUc.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["groupuser.role.name",{"_index":11291,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.roleid",{"_index":11032,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser.user.lastname",{"_index":11293,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.userid",{"_index":10929,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{}}}],["groupuserentity",{"_index":10995,"title":{"classes/GroupUserEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserentityprops",{"_index":11311,"title":{"interfaces/GroupUserEntityProps.html":{}},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserids",{"_index":15285,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.filter((userid",{"_index":15298,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.includes(userid",{"_index":15304,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserresponse",{"_index":11099,"title":{"classes/GroupUserResponse.html":{}},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{}}}],["groupusers",{"_index":11324,"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":11000,"title":{"classes/GroupValidPeriodEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["groupvalidperiodentityprops",{"_index":11339,"title":{"interfaces/GroupValidPeriodEntityProps.html":{}},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["gruppe",{"_index":17939,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["gruppen",{"_index":17947,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["gruppenzugehoerige",{"_index":17952,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["gruppenzugehoerigkeit",{"_index":17948,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["gruppenzugehoerigkeiten",{"_index":18043,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["gt",{"_index":3635,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/NewsScope.html":{}}}],["gte",{"_index":6922,"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":23205,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["guardagainst",{"_index":11342,"title":{"classes/GuardAgainst.html":{}},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined",{"_index":14399,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(account.password",{"_index":14396,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(jwt",{"_index":14394,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(password",{"_index":14404,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(username",{"_index":14403,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guards",{"_index":11349,"title":{},"body":{"classes/GuardAgainst.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guest",{"_index":2169,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["guest:guest",{"_index":22941,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["guestpolicy",{"_index":2071,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["guests",{"_index":21930,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["guide",{"_index":23471,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["h5p",{"_index":11358,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["h5peditorcontroller",{"_index":11354,"title":{"controllers/H5PEditorController.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{}}}],["h5peditormodule",{"_index":11390,"title":{"modules/H5PEditorModule.html":{}},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["h5peditortestmodule",{"_index":11399,"title":{"modules/H5PEditorTestModule.html":{}},"body":{"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["halper",{"_index":20776,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["handed",{"_index":8179,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["handle",{"_index":3050,"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":{}}}],["handlecolumnboardintegration",{"_index":17722,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handlecolumnboardintegration(roomid",{"_index":17726,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handled",{"_index":3832,"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":14439,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handleparameterstoinclude",{"_index":126,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handleparameterstoinclude(propertydata",{"_index":183,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handler",{"_index":22901,"title":{},"body":{"todo.html":{}}}],["handlerejections",{"_index":14440,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handles",{"_index":23456,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handling",{"_index":6436,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"modules/CoreModule.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.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":15445,"title":{},"body":{"injectables/OAuthService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["happened",{"_index":23225,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["hard",{"_index":11839,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasaccesstoentity",{"_index":1825,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstoentity(user",{"_index":1830,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstosubmission",{"_index":19172,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasaccesstosubmission(user",{"_index":19178,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasallpermissions",{"_index":1826,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CourseGroupRule.html":{}}}],["hasallpermissions(user",{"_index":1834,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasallpermissionsbyrole",{"_index":1827,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasallpermissionsbyrole(role",{"_index":1836,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasbeenforciblyended",{"_index":2160,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasbodyproperty",{"_index":2623,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["haschangedparameternames",{"_index":9468,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameternames(oldparams",{"_index":9479,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex",{"_index":9469,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex(newparams",{"_index":9481,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope",{"_index":9470,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope(newparams",{"_index":9484,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes",{"_index":9471,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes(newparams",{"_index":9486,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters",{"_index":9472,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters(newparams",{"_index":9488,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschild",{"_index":2754,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["haschild(child",{"_index":2770,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["hascontextexternaltool",{"_index":8544,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["hascoursepermission",{"_index":17673,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{}}}],["hascoursereadpermission",{"_index":17655,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursereadpermission(user",{"_index":17659,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission",{"_index":17656,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission(user",{"_index":17661,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasduplicateattributes",{"_index":8846,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicateattributes(customparameter",{"_index":8857,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["haserror",{"_index":10087,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasfeature",{"_index":14066,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hasfeature(schoolid",{"_index":14077,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hash",{"_index":10775,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{}}}],["hash_function",{"_index":14564,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashiterations",{"_index":13672,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["hashiterations(310000",{"_index":13286,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["hashkey",{"_index":14566,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashkey).tostring(cryptojs.enc.base64",{"_index":14568,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hasid",{"_index":7454,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["hasjoinedvoice",{"_index":2233,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haslessonpermission",{"_index":14253,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["haslessonreadpermission",{"_index":17657,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["haslessonreadpermission(user",{"_index":17663,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasmatch",{"_index":12932,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmatch(user",{"_index":12940,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmigrated",{"_index":14826,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["hasname",{"_index":10083,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasname(name",{"_index":10082,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasnewrequiredparameter",{"_index":9473,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewrequiredparameter(oldparams",{"_index":9490,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewspermission",{"_index":23699,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasoneofpermissions",{"_index":1828,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasoneofpermissions(user",{"_index":1838,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasparent",{"_index":3617,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["hasparentpermission",{"_index":19864,"title":{},"body":{"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasparentpermission(user",{"_index":19866,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasparentreadpermission",{"_index":14260,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasparenttaskreadaccess",{"_index":19173,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskreadaccess(user",{"_index":19180,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess",{"_index":19174,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess(user",{"_index":19182,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparentwritepermission",{"_index":14262,"title":{},"body":{"injectables/LessonRule.html":{}}}],["haspath",{"_index":17341,"title":{},"body":{"classes/RequestInfo.html":{}}}],["haspath(reqroute",{"_index":17348,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["haspermission",{"_index":1861,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":2002,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":1969,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissionbyreferences(userid",{"_index":1975,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissions",{"_index":9606,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"injectables/PermissionService.html":{}}}],["hasreadaccess",{"_index":19175,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasreadaccess(user",{"_index":19185,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasrequiredpermission",{"_index":19871,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasscanstatuserror",{"_index":10086,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasscanstatuswontcheck",{"_index":10089,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasschoolmigrated",{"_index":18314,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrated(sourceexternalid",{"_index":18327,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser",{"_index":4504,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser(schoolid",{"_index":18331,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hastaskreadpermission",{"_index":17658,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hastaskreadpermission(user",{"_index":17665,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasuserallschoolpermissions",{"_index":16552,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserallschoolpermissions(user",{"_index":16554,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserjoined",{"_index":2161,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasusermigrated",{"_index":21295,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["hasuserpermission",{"_index":14257,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasvideo",{"_index":2234,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haswontcheckstatus",{"_index":10090,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["haswriteaccess",{"_index":19176,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["haswriteaccess(user",{"_index":19187,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["having",{"_index":3602,"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":1615,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"controllers/OauthSSOController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["headerconst",{"_index":1629,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headerconst.json",{"_index":1674,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headercookies",{"_index":11534,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["headers",{"_index":1270,"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/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":22317,"title":{},"body":{"license.html":{}}}],["height",{"_index":3248,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.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/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SetHeightBodyParams.html":{}}}],["height(height",{"_index":3960,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["height.body.params",{"_index":4014,"title":{},"body":{"controllers/CardController.html":{}}}],["height.body.params.ts",{"_index":18589,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height.body.params.ts:10",{"_index":18591,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height=100",{"_index":5322,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hell",{"_index":6530,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["help",{"_index":5461,"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":3010,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.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/LessonCopyUC.html":{},"modules/LessonModule.html":{},"classes/PreviewBuilder.html":{},"injectables/PreviewService.html":{},"classes/RecursiveCopyVisitor.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":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["helper.module",{"_index":19537,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["helper.module.ts",{"_index":6343,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service",{"_index":6345,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service.ts",{"_index":6347,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:10",{"_index":6358,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:28",{"_index":6356,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:45",{"_index":6352,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.ts",{"_index":18886,"title":{},"body":{"classes/SortHelper.html":{},"classes/TestHelper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:13",{"_index":20618,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:21",{"_index":20237,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper.ts:26",{"_index":20619,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:4",{"_index":18889,"title":{},"body":{"classes/SortHelper.html":{}}}],["helper.ts:51",{"_index":20620,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:6",{"_index":20236,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper/copy",{"_index":6342,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/TaskApiModule.html":{}}}],["helper/dto/copy.response.ts",{"_index":6151,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:17",{"_index":6163,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:22",{"_index":6166,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:29",{"_index":6167,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:34",{"_index":6158,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:41",{"_index":6165,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:47",{"_index":6162,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:7",{"_index":6156,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/mapper/copy.mapper.ts",{"_index":6387,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:10",{"_index":6399,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:30",{"_index":6392,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:39",{"_index":6396,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/service/copy",{"_index":6346,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper/types/copy.types",{"_index":6168,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helpers",{"_index":23189,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["helpful",{"_index":23369,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helplink",{"_index":4836,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["helps",{"_index":23354,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helpto",{"_index":22999,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["hendt/xml2json",{"_index":6137,"title":{},"body":{"injectables/ConverterUtil.html":{},"dependencies.html":{}}}],["here",{"_index":2471,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"modules/CommonToolModule.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/NextcloudStrategy.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":22711,"title":{},"body":{"license.html":{}}}],["hex",{"_index":780,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["hh:mm:ss.sss",{"_index":14446,"title":{},"body":{"modules/LoggerModule.html":{}}}],["hidden",{"_index":3452,"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":{},"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":4831,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hierarchy",{"_index":5285,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["high",{"_index":23149,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["higher",{"_index":23076,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["highly",{"_index":23640,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hilfebereich",{"_index":4848,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hint",{"_index":5471,"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":22871,"title":{},"body":{"todo.html":{}}}],["historywindows",{"_index":23509,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["hmac",{"_index":14563,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["holder",{"_index":22648,"title":{},"body":{"license.html":{}}}],["holders",{"_index":22611,"title":{},"body":{"license.html":{}}}],["holds",{"_index":23718,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["homepage",{"_index":22860,"title":{},"body":{"properties.html":{}}}],["homework",{"_index":23166,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["homeworkid",{"_index":12278,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["homeworkid'})@index",{"_index":18965,"title":{},"body":{"entities/Submission.html":{}}}],["homeworks",{"_index":12453,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["hook",{"_index":23728,"title":{},"body":{"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":22123,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hope",{"_index":6531,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"license.html":{}}}],["horizontal",{"_index":23146,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["host",{"_index":1322,"title":{},"body":{"modules/AntivirusModule.html":{},"classes/GlobalErrorFilter.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["host.gettype",{"_index":10824,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host.switchtohttp",{"_index":10834,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host=http://localhost:4000",{"_index":23527,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["hostname",{"_index":1328,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["hosts",{"_index":22539,"title":{},"body":{"license.html":{}}}],["hosturl",{"_index":12605,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["hot",{"_index":22905,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["household",{"_index":22558,"title":{},"body":{"license.html":{}}}],["hpi",{"_index":2131,"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/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":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/PseudonymService.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":5064,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hs256",{"_index":1590,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs384",{"_index":1591,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs512",{"_index":1592,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["html",{"_index":5072,"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":{}}}],["html.transformer",{"_index":17455,"title":{},"body":{"classes/RichText.html":{}}}],["htmlcontent",{"_index":1495,"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":1497,"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":1421,"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":12086,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["http(s",{"_index":23726,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["http://:4011",{"_index":23525,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://fsf.org",{"_index":22269,"title":{},"body":{"license.html":{}}}],["http://localhost:3030",{"_index":13416,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["http://localhost:3030/api/v1/sync?target=ldap",{"_index":23547,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://localhost:3030/api/v3/sso/oauth",{"_index":13529,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["http://localhost:8080",{"_index":23518,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/manifest",{"_index":5249,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/resource",{"_index":5250,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/manifest",{"_index":5236,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/resource",{"_index":5238,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://mock.de",{"_index":19366,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/auth",{"_index":19355,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/jwks",{"_index":19359,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/logout",{"_index":19357,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/mock/auth/public/mocktoken",{"_index":19353,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mockhost:3030/api/v3/sso/oauth",{"_index":19354,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://www.gnu.org/licenses",{"_index":22853,"title":{},"body":{"license.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd",{"_index":5252,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lommanifest_v1p0.xsd",{"_index":5253,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lomresource_v1p0.xsd",{"_index":5251,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd",{"_index":5244,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd",{"_index":5242,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd",{"_index":5325,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lommanifest_v1p0.xsd",{"_index":5243,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lomresource_v1p0.xsd",{"_index":5241,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsbasiclti_v1p0",{"_index":5199,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1",{"_index":5248,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1",{"_index":5326,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2",{"_index":5240,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1",{"_index":5234,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3",{"_index":5324,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3",{"_index":5197,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3.xsd",{"_index":5205,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticm_v1p0",{"_index":5201,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticp_v1p0",{"_index":5203,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.w3.org/2001/xmlschema",{"_index":5182,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["httpargumenthost",{"_index":10833,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpargumenthost.getresponse",{"_index":10835,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpcode",{"_index":2928,"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(201",{"_index":8218,"title":{},"body":{"controllers/ElementController.html":{}}}],["httpcode(204",{"_index":2948,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["httpcode(httpstatus.no_content",{"_index":20416,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(httpstatus.ok",{"_index":14490,"title":{},"body":{"controllers/LoginController.html":{}}}],["httpexception",{"_index":3708,"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":19123,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["httpexception(`unsupported",{"_index":4961,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["httpexceptionoptions",{"_index":8389,"title":{},"body":{"classes/ErrorUtils.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["httpexceptions",{"_index":23264,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["httpmodule",{"_index":3917,"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":16167,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["https://${scdomain",{"_index":13417,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["https://${scdomain}/api/v3/sso/oauth",{"_index":13530,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["https://${this.content.url",{"_index":5660,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["https://dbildungscloud.de",{"_index":22861,"title":{},"body":{"properties.html":{}}}],["https://docs.nestjs.com/first",{"_index":23193,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://example.com/tool",{"_index":20569,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["https://github.com/goldbergyoni/javascript",{"_index":23473,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["https://github.com/hpi",{"_index":22885,"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":10050,"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":2488,"title":{},"body":{"classes/BaseFactory.html":{}}}],["https://hpi",{"_index":22908,"title":{},"body":{"todo.html":{}}}],["https://jestjs.io",{"_index":23041,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://khalilstemmler.com/articles/software",{"_index":23234,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://logo.com",{"_index":7321,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://logourl.com",{"_index":8720,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["https://mikro",{"_index":23042,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://min.io",{"_index":23044,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://mock.tld/auth",{"_index":19361,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/logout",{"_index":19364,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/token",{"_index":19362,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/userinfo",{"_index":19363,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://nestjs.com",{"_index":23040,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://provisioningurl.de",{"_index":19368,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://stackoverflow.com/a/61909588",{"_index":22870,"title":{},"body":{"todo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/arc",{"_index":2436,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/bc",{"_index":17779,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/n21",{"_index":14104,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["https://url.com",{"_index":7319,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.basic",{"_index":7274,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.frontchannel.com",{"_index":7282,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.geogebra.org/m/${content.content.materialid",{"_index":5075,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd",{"_index":5327,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["https://www.lti11",{"_index":7294,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.npmjs.com/package/@golevelup/nestjs",{"_index":17079,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["https://www.oauth2",{"_index":7290,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.rabbitmq.com",{"_index":23045,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://www.redirect.com",{"_index":7284,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["httpservice",{"_index":1154,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["httpstatus",{"_index":1410,"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":{},"controllers/GroupController.html":{},"classes/LdapConnectionError.html":{},"controllers/LoginController.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SubmissionItemUc.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.bad_gateway",{"_index":13761,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["httpstatus.bad_request",{"_index":1417,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.conflict",{"_index":3848,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["httpstatus.forbidden",{"_index":10710,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.internal_server_error",{"_index":8744,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.not_acceptable",{"_index":8253,"title":{},"body":{"injectables/ElementUc.html":{}}}],["httpstatus.not_found",{"_index":8274,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["httpstatus.ok",{"_index":10966,"title":{},"body":{"controllers/GroupController.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.too_many_requests",{"_index":3802,"title":{},"body":{"classes/BruteForceError.html":{}}}],["httpstatus.unauthorized",{"_index":1822,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/SchoolInMigrationError.html":{}}}],["httpstatus.unprocessable_entity",{"_index":3714,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/SubmissionItemUc.html":{}}}],["human",{"_index":5469,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["hydra",{"_index":11567,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydra_public_uri",{"_index":11408,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraadapter",{"_index":16070,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["hydracookies",{"_index":6141,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydracookies.includes(cookie",{"_index":11547,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydracookies.push(cookie",{"_index":11548,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig",{"_index":11440,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig.redirecturi",{"_index":11444,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraoauthuc",{"_index":11405,"title":{"injectables/HydraOauthUc.html":{}},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["hydraredirectdto",{"_index":11430,"title":{"classes/HydraRedirectDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["hydraredirectdto(dto",{"_index":11519,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrassoservice",{"_index":11416,"title":{"injectables/HydraSsoService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"modules/OauthModule.html":{}}}],["hydrauc",{"_index":16130,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["hydrauri",{"_index":11556,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/.well",{"_index":11563,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/auth",{"_index":11558,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/sessions/logout",{"_index":11566,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/token",{"_index":11573,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["i...properties",{"_index":6534,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["i.name",{"_index":11795,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["i.width",{"_index":16450,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["iaccountconfig",{"_index":11576,"title":{"interfaces/IAccountConfig.html":{}},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["iat",{"_index":7016,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["ibbbsettings",{"_index":2249,"title":{"interfaces/IBbbSettings.html":{}},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["icalendarevent",{"_index":3899,"title":{"interfaces/ICalendarEvent.html":{}},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"interfaces/ICalendarEvent.html":{}}}],["iclassentityprops",{"_index":4274,"title":{"interfaces/IClassEntityProps.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"interfaces/IClassEntityProps.html":{}}}],["icleanoptions",{"_index":11584,"title":{"interfaces/ICleanOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["icollaborativestoragestrategy",{"_index":4527,"title":{"interfaces/ICollaborativeStorageStrategy.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["icollectionfilepath",{"_index":11667,"title":{"interfaces/ICollectionFilePath.html":{}},"body":{"interfaces/ICollectionFilePath.html":{}}}],["icolumnboardproperties",{"_index":4768,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["icommoncartridgeconfig",{"_index":11851,"title":{"interfaces/ICommonCartridgeConfig.html":{}},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icommoncartridgeelement",{"_index":5124,"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":5166,"title":{"interfaces/ICommonCartridgeFile.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["icommoncartridgefilebuilder",{"_index":5100,"title":{"interfaces/ICommonCartridgeFileBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefilebuilderoptions",{"_index":5107,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeltiresourceprops",{"_index":5168,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["icommoncartridgemanifestprops",{"_index":5223,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["icommoncartridgemetadataprops",{"_index":5225,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["icommoncartridgeorganizationbuilder",{"_index":5116,"title":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeorganizationprops",{"_index":5114,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeresourceprops",{"_index":5018,"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":5025,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["icommoncartridgeweblinkresourceprops",{"_index":5297,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["icomponentetherpadproperties",{"_index":11863,"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":{},"entities/LessonEntity.html":{}}}],["icomponentgeogebraproperties",{"_index":11873,"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":{},"entities/LessonEntity.html":{}}}],["icomponentinternalproperties",{"_index":11878,"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":11875,"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":{},"entities/LessonEntity.html":{}}}],["icomponentnexboardproperties",{"_index":11877,"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":{},"entities/LessonEntity.html":{}}}],["icomponentproperties",{"_index":5015,"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":{},"classes/LessonFactory.html":{},"injectables/LessonService.html":{}}}],["icomponenttextproperties",{"_index":11872,"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":{},"entities/LessonEntity.html":{}}}],["icons",{"_index":23481,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["icontextexternaltoolproperties",{"_index":5783,"title":{"interfaces/IContextExternalToolProperties.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["icopyfiledo",{"_index":10515,"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":6174,"title":{"interfaces/ICopyFileDomainObjectProps.html":{}},"body":{"classes/CopyFileDto.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{}}}],["icopyfilesofparentparams",{"_index":10617,"title":{"interfaces/ICopyFilesOfParentParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfilesrequestinfo",{"_index":6284,"title":{"interfaces/ICopyFilesRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["icoremoduleconfig",{"_index":11926,"title":{"interfaces/ICoreModuleConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icoursegroupproperties",{"_index":6756,"title":{"interfaces/ICourseGroupProperties.html":{}},"body":{"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["icourseproperties",{"_index":6524,"title":{"interfaces/ICourseProperties.html":{}},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["icreatenews",{"_index":11930,"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":{},"controllers/GroupController.html":{},"interfaces/ICurrentUser.html":{},"controllers/ImportUserController.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.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/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":{},"injectables/BoardCopyService.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.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/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/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewBuilder.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/ResolvedGroupDto.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":{},"injectables/SchoolYearService.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/UsersList.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.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":20495,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["id.'})@apiresponse({status",{"_index":10957,"title":{},"body":{"controllers/GroupController.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":13583,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["id.loggable.ts",{"_index":18268,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:11",{"_index":18273,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:4",{"_index":18271,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.params",{"_index":19298,"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":5804,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["id.params.ts:8",{"_index":5807,"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":23216,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["id.token.claim",{"_index":13481,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["id.tostring",{"_index":1107,"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":{},"classes/UsersList.html":{}}}],["id/authorization",{"_index":5495,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["id/challenge",{"_index":5531,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["id='${child.id",{"_index":2795,"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":16266,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["idashboardmodelproperties",{"_index":7571,"title":{"interfaces/IDashboardModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["idashboardrepo",{"_index":7744,"title":{"interfaces/IDashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["idea",{"_index":2448,"title":{},"body":{"classes/BaseDomainObject.html":{},"injectables/TaskUC.html":{}}}],["idempotent",{"_index":2256,"title":{},"body":{"injectables/BBBService.html":{}}}],["identical",{"_index":13198,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["identifiable",{"_index":22734,"title":{},"body":{"license.html":{}}}],["identified",{"_index":23273,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiedreference",{"_index":2462,"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":1438,"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":15327,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["identifierref",{"_index":5191,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["identifiers",{"_index":12013,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/JwtValidationAdapter.html":{}}}],["identifies",{"_index":18857,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["identify",{"_index":5496,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["identities",{"_index":23515,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["identity",{"_index":2800,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/ICleanOptions.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":{},"classes/OauthConfigDto.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":12659,"title":{"classes/IdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["identitymanagementoauthservice:24",{"_index":13521,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:54",{"_index":13522,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:61",{"_index":13524,"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":13565,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:126",{"_index":13566,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:131",{"_index":13555,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:136",{"_index":13567,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:14",{"_index":13553,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:152",{"_index":13568,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:46",{"_index":13570,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:62",{"_index":13572,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:76",{"_index":13564,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:84",{"_index":13561,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:98",{"_index":13562,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identityprovideralias",{"_index":13471,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapper",{"_index":13470,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapperrepresentation",{"_index":13354,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityproviderrepresentation",{"_index":13357,"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/ICleanOptions.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":{}}}],["idm/dev:latest",{"_index":22957,"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":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmaccountproperties",{"_index":401,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{}}}],["idmaccountupdate",{"_index":12688,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmoauthservice",{"_index":14379,"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":{}}}],["idmservice",{"_index":791,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["idmuserrepresentation",{"_index":13668,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["idp",{"_index":11941,"title":{},"body":{"interfaces/ICurrentUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OauthCurrentUser.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idpalias",{"_index":13347,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["idparams",{"_index":12608,"title":{"classes/IdParams.html":{}},"body":{"classes/IdParams.html":{},"controllers/OauthProviderController.html":{}}}],["idphint",{"_index":12359,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.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/OauthCurrentUser.html":{},"classes/PatchOrderParams.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/S3ClientAdapter.html":{},"classes/UsersList.html":{}}}],["ids.'})@apiresponse({status",{"_index":3992,"title":{},"body":{"controllers/CardController.html":{}}}],["ids.map((id",{"_index":2672,"title":{},"body":{"entities/Board.html":{}}}],["ids.map(async",{"_index":2442,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["ids.params.ts",{"_index":4049,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids.params.ts:10",{"_index":4053,"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/ICurrentUser.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/TokenRequestMapper.html":{}}}],["idtoken.external_sub",{"_index":16298,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["idtoken.uuid",{"_index":13104,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["idtokencreationloggableexception",{"_index":12611,"title":{"classes/IdTokenCreationLoggableException.html":{}},"body":{"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{}}}],["idtokencreationloggableexception(clientid",{"_index":12651,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["idtokenservice",{"_index":12619,"title":{"injectables/IdTokenService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["iencryptionservice",{"_index":9285,"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":2455,"title":{"interfaces/IEntity.html":{}},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ientitywithschool",{"_index":6511,"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":{},"classes/UsersList.html":{}}}],["ientitywithtimestamps",{"_index":11958,"title":{"interfaces/IEntityWithTimestamps.html":{}},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ierror",{"_index":8355,"title":{"interfaces/IError.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["ierrortype",{"_index":3836,"title":{"interfaces/IErrorType.html":{}},"body":{"classes/BusinessError.html":{},"interfaces/IErrorType.html":{}}}],["iexternaltoolproperties",{"_index":8695,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["iexternaltoolpseudonymentityprops",{"_index":8925,"title":{"interfaces/IExternalToolPseudonymEntityProps.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["if/else",{"_index":23338,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ifederalstateproperties",{"_index":6455,"title":{"interfaces/IFederalStateProperties.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ifiledo",{"_index":10516,"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":9802,"title":{"interfaces/IFileDomainObjectProps.html":{}},"body":{"classes/FileDto-1.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["ifilerecordparams",{"_index":10621,"title":{"interfaces/IFileRecordParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifilerecordproperties",{"_index":10046,"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":10038,"title":{"interfaces/IFileRecordSecurityCheckProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerequestinfo",{"_index":6282,"title":{"interfaces/IFileRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{}}}],["ifilesstorageclientconfig",{"_index":10629,"title":{"interfaces/IFilesStorageClientConfig.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IServerConfig.html":{}}}],["ifilestorageconfig",{"_index":11964,"title":{"interfaces/IFileStorageConfig.html":{}},"body":{"interfaces/IFileStorageConfig.html":{}}}],["ifindoptions",{"_index":6902,"title":{"interfaces/IFindOptions.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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/PseudonymService.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["iframe",{"_index":11062,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["iframe_restrict_access=false",{"_index":23613,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["iframesubject",{"_index":12653,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/PseudonymService.html":{}}}],["ignore",{"_index":2384,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardCopyService.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":{},"classes/RecursiveCopyVisitor.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":2479,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ignoreexpiration",{"_index":13174,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["igridelement",{"_index":7428,"title":{"interfaces/IGridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["iidentitymanagementconfig",{"_index":11999,"title":{"interfaces/IIdentityManagementConfig.html":{}},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{}}}],["iimportuserproperties",{"_index":12005,"title":{"interfaces/IImportUserProperties.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{}}}],["iimportuserrolename",{"_index":12011,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/RoleNameMapper.html":{}}}],["iimportuserscope",{"_index":12051,"title":{"interfaces/IImportUserScope.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["iinterceptorconfig",{"_index":11928,"title":{"interfaces/IInterceptorConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IInterceptorConfig.html":{},"modules/InterceptorModule.html":{}}}],["ijsonaccount",{"_index":12057,"title":{"interfaces/IJsonAccount.html":{}},"body":{"interfaces/IJsonAccount.html":{},"classes/KeycloakSeedService.html":{}}}],["ijsonuser",{"_index":12061,"title":{"interfaces/IJsonUser.html":{}},"body":{"interfaces/IJsonUser.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloakconfigurationinputfiles",{"_index":12063,"title":{"interfaces/IKeycloakConfigurationInputFiles.html":{}},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloaksettings",{"_index":12070,"title":{"interfaces/IKeycloakSettings.html":{}},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["ilearnroom",{"_index":6512,"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":{},"classes/UsersList.html":{}}}],["ilearnroomelement",{"_index":2645,"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":12076,"title":{"interfaces/ILegacyLogger.html":{}},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["ilessonparent",{"_index":6520,"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":{},"classes/UsersList.html":{}}}],["ilessonproperties",{"_index":11867,"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":11929,"title":{"interfaces/ILoggerConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/ILoggerConfig.html":{},"modules/LoggerModule.html":{}}}],["iltitoolproperties",{"_index":7103,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["im",{"_index":4847,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["image",{"_index":16433,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["image/gif",{"_index":8789,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/jpeg",{"_index":8784,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/png",{"_index":8787,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["image/webp",{"_index":20240,"title":{},"body":{"classes/TestHelper.html":{}}}],["imagebuffer",{"_index":8769,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagebuffer.tostring('hex",{"_index":8821,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagemagick",{"_index":16653,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["imageobject",{"_index":16426,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["images",{"_index":16429,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["images[0",{"_index":16452,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["images[0].width",{"_index":16453,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["imagesignature",{"_index":8820,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imageurl",{"_index":3256,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["imageurl(value",{"_index":14332,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["imateapotexception",{"_index":9749,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imateapotexception('this",{"_index":9760,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imaterialproperties",{"_index":12095,"title":{"interfaces/IMaterialProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["imigrationoptions",{"_index":11600,"title":{"interfaces/IMigrationOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["immediately",{"_index":9626,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["immutable",{"_index":9456,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["impact",{"_index":22218,"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":23501,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["impersonated",{"_index":7098,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impersonates",{"_index":11940,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impl",{"_index":3342,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["impl.ts",{"_index":3199,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:113",{"_index":3217,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:128",{"_index":3218,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:142",{"_index":3219,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:157",{"_index":3220,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:171",{"_index":3215,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:185",{"_index":3210,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:190",{"_index":3227,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:196",{"_index":3225,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:201",{"_index":3223,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:30",{"_index":3206,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:39",{"_index":3214,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:43",{"_index":3212,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:60",{"_index":3211,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:75",{"_index":3208,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:99",{"_index":3216,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["implemenation",{"_index":23735,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implement",{"_index":13895,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implementation",{"_index":2538,"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":23075,"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":13144,"title":{},"body":{"interfaces/JwtConstants.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implemented.loggable",{"_index":16514,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["implementing",{"_index":23107,"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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRule.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DomainObject.html":{},"classes/DownloadFileParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"classes/FileDto.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.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/LinkElementResponseMapper.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/PreviewActionsLoggable.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/ScanResultParams.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":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"entities/SchoolYearEntity.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SingleFileParams.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/TooManyPseudonymsLoggableException.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implications",{"_index":23245,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["implicit",{"_index":23631,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implicitly",{"_index":23652,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implied",{"_index":22756,"title":{},"body":{"license.html":{}}}],["implies",{"_index":5515,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":18690,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:13",{"_index":18694,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:22",{"_index":18693,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.module.ts",{"_index":12924,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["import.uc",{"_index":12781,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["import/controller/dto/filter",{"_index":10656,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["import/controller/dto/import",{"_index":12831,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{}}}],["import/controller/dto/sort",{"_index":18891,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["import/controller/dto/update",{"_index":20767,"title":{},"body":{"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{}}}],["import/controller/dto/user",{"_index":21346,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["import/controller/import",{"_index":12734,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["import/export",{"_index":23561,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["import/loggable/migration",{"_index":14843,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["import/loggable/school",{"_index":18267,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["import/loggable/user",{"_index":21390,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["import/mapper/import",{"_index":12852,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["import/mapper/match.mapper.ts",{"_index":12899,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:12",{"_index":12905,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:5",{"_index":12903,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/role",{"_index":17534,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["import/mapper/user",{"_index":21351,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["import/uc/ldap",{"_index":13722,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["import/user",{"_index":12923,"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":{},"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":7831,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollection(@param('collectionname",{"_index":7851,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollection(collectionname",{"_index":7839,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollections",{"_index":7832,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(@query('with",{"_index":7849,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(withindexes",{"_index":7842,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["imported",{"_index":11763,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/ShareTokenImportBodyParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["importeddocumentsamount",{"_index":11760,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["importhash",{"_index":12590,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["importing",{"_index":22702,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.html":{},"modules/PseudonymModule.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":13632,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["importsharetoken",{"_index":18622,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["importsharetoken(currentuser",{"_index":18630,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["importsharetoken(userid",{"_index":18808,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["importuser",{"_index":12017,"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":12873,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.firstname",{"_index":12869,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.flagged",{"_index":12874,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.id",{"_index":12867,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.lastname",{"_index":12870,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.loginname",{"_index":12868,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.matchedby",{"_index":12876,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.rolenames.map((role",{"_index":12871,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.scope",{"_index":12945,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuser.user",{"_index":12875,"title":{},"body":{"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["importuser.user).filter((user",{"_index":12971,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importusercontroller",{"_index":12733,"title":{"controllers/ImportUserController.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["importuserentities",{"_index":12967,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserentities.map((importuser",{"_index":12970,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserfactory",{"_index":12816,"title":{"classes/ImportUserFactory.html":{}},"body":{"classes/ImportUserFactory.html":{}}}],["importuserfactory.define(importuser",{"_index":12824,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["importuserid",{"_index":12847,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserlist",{"_index":12791,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlist.map((importuser",{"_index":12794,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlistresponse",{"_index":12782,"title":{"classes/ImportUserListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["importuserlistresponse(dtolist",{"_index":12796,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper",{"_index":12773,"title":{"classes/ImportUserMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["importusermapper.mapimportuserfilterquerytodomain(scope",{"_index":12790,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.mapsortingquerytodomain(sortingquery",{"_index":12789,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(importuser",{"_index":12795,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(result",{"_index":12800,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermatchmapper",{"_index":12861,"title":{"classes/ImportUserMatchMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["importusermatchmapper.mapimportusermatchscopetodomain(match",{"_index":12896,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusermatchmapper.mapmatchcreatortoresponse(matchcreator",{"_index":21367,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["importusermodule",{"_index":12918,"title":{"modules/ImportUserModule.html":{}},"body":{"modules/ImportUserModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["importuserrepo",{"_index":12922,"title":{"injectables/ImportUserRepo.html":{}},"body":{"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{}}}],["importuserresponse",{"_index":12783,"title":{"classes/ImportUserResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{}}}],["importusers",{"_index":12016,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"injectables/UserRepo.html":{}}}],["importuserschoolid",{"_index":18270,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserscope",{"_index":12944,"title":{"classes/ImportUserScope.html":{}},"body":{"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{}}}],["importusersortorder",{"_index":12860,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["importusersortorder.firstname",{"_index":12864,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusersortorder.lastname",{"_index":12865,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuserurlparams",{"_index":12755,"title":{"classes/ImportUserUrlParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserUrlParams.html":{}}}],["impose",{"_index":22633,"title":{},"body":{"license.html":{}}}],["imposed",{"_index":22759,"title":{},"body":{"license.html":{}}}],["impossile",{"_index":15139,"title":{},"body":{"classes/NewsScope.html":{}}}],["improvements",{"_index":22312,"title":{},"body":{"license.html":{}}}],["improves",{"_index":23298,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ims",{"_index":5255,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["imsbasiclti_v1p0p1.xsd",{"_index":5208,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticm_v1p0.xsd",{"_index":5207,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticp_v1p0.xsd",{"_index":5206,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["in.'})@apioperation({summary",{"_index":20440,"title":{},"body":{"controllers/ToolController.html":{}}}],["in/out",{"_index":23169,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["inability",{"_index":22812,"title":{},"body":{"license.html":{}}}],["inaccurate",{"_index":22815,"title":{},"body":{"license.html":{}}}],["inamematch",{"_index":12055,"title":{"interfaces/INameMatch.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["inc",{"_index":22268,"title":{},"body":{"license.html":{}}}],["incidental",{"_index":22809,"title":{},"body":{"license.html":{}}}],["include",{"_index":2464,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["included",{"_index":6160,"title":{},"body":{"classes/CopyApiResponse.html":{},"license.html":{}}}],["includes",{"_index":15235,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["including",{"_index":10318,"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":22507,"title":{},"body":{"license.html":{}}}],["incoming",{"_index":10863,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["incoming_request_timeout",{"_index":11973,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["incoming_request_timeout_copy_api",{"_index":11976,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incomplete",{"_index":11380,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["incorporate",{"_index":22316,"title":{},"body":{"license.html":{}}}],["incorporated",{"_index":22777,"title":{},"body":{"license.html":{}}}],["incorporation",{"_index":22560,"title":{},"body":{"license.html":{}}}],["increase",{"_index":9511,"title":{},"body":{"injectables/ExternalToolVersionService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["increaseversionofnewtoolifnecessary",{"_index":9474,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["increaseversionofnewtoolifnecessary(oldtool",{"_index":9492,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["indefinitely",{"_index":5452,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["indemnification",{"_index":22629,"title":{},"body":{"license.html":{}}}],["independent",{"_index":22497,"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/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":{},"classes/AuthenticationValues.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["index()@enum",{"_index":10019,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@enum(undefined",{"_index":3594,"title":{},"body":{"entities/BoardNode.html":{}}}],["index()@manytomany('course",{"_index":7554,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytomany('user",{"_index":6502,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{}}}],["index()@manytomany({fieldname",{"_index":20801,"title":{},"body":{"entities/User.html":{}}}],["index()@manytoone('course",{"_index":6748,"title":{},"body":{"entities/CourseGroup.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone('dashboardmodelentity",{"_index":7552,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytoone('lessonentity",{"_index":19522,"title":{},"body":{"entities/Task.html":{}}}],["index()@manytoone('user",{"_index":7638,"title":{},"body":{"entities/DashboardModelEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone(undefined",{"_index":6497,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["index()@property",{"_index":14189,"title":{},"body":{"entities/LessonEntity.html":{}}}],["index()@property({fieldname",{"_index":10011,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@property({nullable",{"_index":3590,"title":{},"body":{"entities/BoardNode.html":{},"entities/Course.html":{}}}],["index({options",{"_index":10014,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["index.ts",{"_index":22867,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["indexes",{"_index":7802,"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":11794,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["indicate",{"_index":22673,"title":{},"body":{"license.html":{}}}],["indicating",{"_index":7059,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["individual",{"_index":22505,"title":{},"body":{"license.html":{}}}],["individuals",{"_index":22347,"title":{},"body":{"license.html":{}}}],["industrial",{"_index":22569,"title":{},"body":{"license.html":{}}}],["inestapplication",{"_index":1626,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inewsproperties",{"_index":6852,"title":{"interfaces/INewsProperties.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["inewsscope",{"_index":11938,"title":{"interfaces/INewsScope.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["inferrable",{"_index":12851,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["info(currentuser",{"_index":21716,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["info(loggable",{"_index":14414,"title":{},"body":{"injectables/Logger.html":{}}}],["info(text",{"_index":5545,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["info.dto.ts",{"_index":4320,"title":{},"body":{"classes/ClassInfoDto.html":{},"interfaces/ShareTokenInfoDto.html":{}}}],["info.dto.ts:10",{"_index":4326,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:12",{"_index":4330,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:14",{"_index":4329,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:16",{"_index":4325,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:4",{"_index":4327,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:6",{"_index":4332,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:8",{"_index":4328,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.interface.ts",{"_index":12229,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["info.mapper",{"_index":15033,"title":{},"body":{"classes/NewsMapper.html":{}}}],["info.mapper.ts",{"_index":18294,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.mapper.ts:5",{"_index":18296,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.reponse.ts",{"_index":18698,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:13",{"_index":18702,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:16",{"_index":18701,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:20",{"_index":18700,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:5",{"_index":18699,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.response",{"_index":4353,"title":{},"body":{"classes/ClassInfoSearchListResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{}}}],["info.response.ts",{"_index":2213,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/ClassInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:11",{"_index":21890,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:12",{"_index":4347,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:13",{"_index":18302,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:14",{"_index":21014,"title":{},"body":{"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:15",{"_index":4345,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:18",{"_index":4349,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:19",{"_index":21013,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:21",{"_index":4348,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:24",{"_index":4344,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:3",{"_index":18301,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:6",{"_index":4346,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:9",{"_index":4350,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.ts",{"_index":11925,"title":{},"body":{"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"classes/VideoConferenceInfo.html":{}}}],["info.ts:6",{"_index":21883,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["info.uc.ts",{"_index":21892,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:12",{"_index":21894,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:19",{"_index":21896,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:74",{"_index":21898,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["infodto",{"_index":21856,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["infodto.state",{"_index":21858,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["inform",{"_index":22545,"title":{},"body":{"license.html":{}}}],["information",{"_index":1433,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/BBBService.html":{},"classes/ConsentRequestBody.html":{},"classes/ErrorResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/PseudonymController.html":{},"controllers/SystemController.html":{},"injectables/TaskCopyUC.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":4839,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["infra",{"_index":14771,"title":{},"body":{"modules/ManagementModule.html":{}}}],["infrastructure",{"_index":23179,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["infrastucture",{"_index":18579,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["infringe",{"_index":22671,"title":{},"body":{"license.html":{}}}],["infringed",{"_index":22699,"title":{},"body":{"license.html":{}}}],["infringement",{"_index":22358,"title":{},"body":{"license.html":{}}}],["inherit",{"_index":2466,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritance",{"_index":23635,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritances",{"_index":15104,"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/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/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/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.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/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.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":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"classes/Group.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/LinkElement.html":{},"classes/LinkElementContentBody.html":{},"classes/LoginRequestBody.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.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/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthLoginResponse.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PreviewProducer.html":{},"classes/Pseudonym.html":{},"classes/PseudonymScope.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/TooManyPseudonymsLoggableException.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":3827,"title":{},"body":{"classes/Builder.html":{}}}],["initauth",{"_index":11485,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initauth(oauthconfig",{"_index":11496,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initialdelay",{"_index":13780,"title":{},"body":{"injectables/LdapService.html":{}}}],["initialized",{"_index":17083,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["initializes3clientmap",{"_index":7942,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["initiate",{"_index":22694,"title":{},"body":{"license.html":{}}}],["initiated",{"_index":11943,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["initresponse",{"_index":11422,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["initresponse.config",{"_index":11458,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["inject",{"_index":839,"title":{},"body":{"modules/AccountModule.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.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":{},"modules/PreviewGeneratorConsumerModule.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":{},"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":1361,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["inject('dashboard_repo",{"_index":7774,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["inject('icollaborativestoragestrategy",{"_index":4553,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["inject('mail_service_options",{"_index":14756,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["inject('rocket_chat_options",{"_index":1210,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["inject(bbbsettings",{"_index":2295,"title":{},"body":{"injectables/BBBService.html":{}}}],["inject(cache_manager",{"_index":13207,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["inject(defaultencryptionservice",{"_index":9314,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["inject(files_storage_s3_connection",{"_index":16713,"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":10770,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["inject(keycloakconfigurationinputfiles",{"_index":13701,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inject(keycloaksettings",{"_index":13264,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["inject(ldapencryptionservice",{"_index":11679,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["inject(redis_client",{"_index":18574,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["inject(s3_client",{"_index":17858,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(s3_config",{"_index":17859,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(toolfeatures",{"_index":8790,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["inject(your_s3_uniq_connection_token",{"_index":23757,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/FeathersRosterService.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/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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/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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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/ToolReferenceService.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":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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":{},"injectables/FeathersRosterService.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/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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/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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/FeathersRosterService.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/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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/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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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/ToolReferenceService.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":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["injected",{"_index":9622,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["injectenvvars(json",{"_index":11811,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["injecting",{"_index":23750,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injection",{"_index":13897,"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":23708,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inline",{"_index":1489,"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":1488,"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":12181,"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":5289,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["innerpermissions",{"_index":12167,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerrole.resolvepermissions",{"_index":12168,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles",{"_index":12164,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles.foreach((innerrole",{"_index":12166,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["input",{"_index":2268,"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":{},"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":17988,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.dto.ts",{"_index":15710,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:4",{"_index":15712,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:6",{"_index":15713,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:8",{"_index":15711,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.mapper",{"_index":16871,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["input.mapper.ts",{"_index":16895,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.mapper.ts:6",{"_index":16898,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.system",{"_index":13123,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.provisioningurl",{"_index":17987,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.systemid",{"_index":13109,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["inputdto",{"_index":16879,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["inputfiles",{"_index":13690,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inputformat",{"_index":3259,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["inputformat(value",{"_index":17473,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["inputformat.plain_text",{"_index":5653,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["inputformat.rich_text_ck4",{"_index":12459,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"classes/TaskWithStatusVo.html":{}}}],["inputformat.rich_text_ck5",{"_index":3556,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/TaskMapper.html":{}}}],["inputpath",{"_index":1685,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputpath.charat(pos",{"_index":1682,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputroles",{"_index":16563,"title":{},"body":{"injectables/PermissionService.html":{}}}],["insensitive",{"_index":13001,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["insertedcount",{"_index":7894,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["inside",{"_index":3834,"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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inspect",{"_index":23585,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["inspired",{"_index":23472,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["install",{"_index":22407,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["installation",{"_index":22573,"title":{},"body":{"license.html":{}}}],["installed",{"_index":22590,"title":{},"body":{"license.html":{}}}],["instance",{"_index":5183,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ExternalToolElementResponseMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LegacyLogger.html":{},"classes/LinkElementResponseMapper.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/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":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/FilesStorageClientMapper.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupRule.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":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/NewsRepo.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/PseudonymService.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instances",{"_index":5684,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instant",{"_index":6533,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["instead",{"_index":2440,"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":{},"injectables/UserService.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":23186,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["instructor",{"_index":7106,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["intact",{"_index":22474,"title":{},"body":{"license.html":{}}}],["integration",{"_index":11370,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["intend",{"_index":11841,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["intended",{"_index":4137,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["intendeduse",{"_index":5070,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["intention",{"_index":22467,"title":{},"body":{"license.html":{}}}],["interact",{"_index":22846,"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":22772,"title":{},"body":{"license.html":{}}}],["interaction",{"_index":22373,"title":{},"body":{"license.html":{}}}],["interactions",{"_index":23119,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interactive",{"_index":22376,"title":{},"body":{"license.html":{}}}],["intercept",{"_index":8156,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["intercept(context",{"_index":8158,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["interceptor",{"_index":6444,"title":{},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interceptormodule",{"_index":6427,"title":{"modules/InterceptorModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"modules.html":{}}}],["interchange",{"_index":22517,"title":{},"body":{"license.html":{}}}],["interest",{"_index":22687,"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/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.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/ICleanOptions.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/IRetryOptions.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/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.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/OauthCurrentUser.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/PseudonymSearchQuery.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/ScanResult.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/SchoolSpecificFileCopyService.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/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserLoginMigrationQuery.html":{},"interfaces/UserMetdata.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.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":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersError.html":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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/ICleanOptions.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/IRetryOptions.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":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"interfaces/OauthCurrentUser.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"interfaces/PseudonymSearchQuery.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"entities/SchoolYearEntity.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/SystemEntity.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/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserLoginMigrationQuery.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.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":{},"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":3860,"title":{},"body":{"injectables/CacheService.html":{}}}],["interface/calendar",{"_index":3931,"title":{},"body":{"injectables/CalendarService.html":{}}}],["interface/json",{"_index":13698,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["interface/jwt",{"_index":1742,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{}}}],["interface/keycloak",{"_index":13222,"title":{},"body":{"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["interface/learnroom",{"_index":12445,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["interface/oauth",{"_index":1529,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["interface/oidc",{"_index":16822,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["interface/page",{"_index":16490,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["interface/preview",{"_index":10025,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.html":{}}}],["interface/redis.constants",{"_index":17322,"title":{},"body":{"modules/RedisModule.html":{}}}],["interface/sso",{"_index":1919,"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":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.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/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.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/ICleanOptions.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/IRetryOptions.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/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.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/OauthCurrentUser.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/PseudonymSearchQuery.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/ScanResult.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/SchoolSpecificFileCopyService.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/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserLoginMigrationQuery.html":{},"interfaces/UserMetdata.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":6285,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{}}}],["interfaces/legacy",{"_index":13892,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["interfered",{"_index":22579,"title":{},"body":{"license.html":{}}}],["intermediate",{"_index":1940,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["internal",{"_index":769,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationReferenceService.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":12616,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["internalaxiosrequestconfig",{"_index":2026,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["internalid",{"_index":1071,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["internally",{"_index":17861,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["internalmeetingid",{"_index":2162,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["internalrepo",{"_index":23130,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["internalservererrorexception",{"_index":1353,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/ClassService.html":{},"injectables/ColumnBoardCopyService.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":{},"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":{},"classes/UsersList.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["internalservererrorexception('cannot",{"_index":3601,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/UserLoginMigrationService.html":{}}}],["internalservererrorexception('copy",{"_index":6711,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["internalservererrorexception('courses",{"_index":6585,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["internalservererrorexception('expected",{"_index":4759,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["internalservererrorexception('feature",{"_index":10729,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["internalservererrorexception('import",{"_index":18852,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["internalservererrorexception('lessons",{"_index":11897,"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":17818,"title":{},"body":{"injectables/RuleManager.html":{}}}],["internalservererrorexception('provisioning",{"_index":16884,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["internalservererrorexception('s3clientadapter:copy",{"_index":17903,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:create",{"_index":17882,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:delete",{"_index":17891,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:get",{"_index":17876,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:restore",{"_index":17896,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('submissions",{"_index":12477,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('task.finished",{"_index":12481,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('tool",{"_index":15990,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception('unknown",{"_index":7693,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["internalservererrorexception('user",{"_index":4419,"title":{},"body":{"injectables/ClassService.html":{},"injectables/PseudonymService.html":{}}}],["internalservererrorexception(`${bbbresp.response.messagekey",{"_index":2314,"title":{},"body":{"injectables/BBBService.html":{}}}],["internalservererrorexception(`cannot",{"_index":15988,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception(`multiple",{"_index":14029,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["internalservererrorexception(`redirect",{"_index":11464,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["internalservererrorexception(errorobj.message",{"_index":8363,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["internalservererrorexception(null",{"_index":1384,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/ErrorMapper.html":{}}}],["internalservererrorexception(oauthclientid",{"_index":11554,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["internalservererrorexception})@apiresponse({status",{"_index":18636,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@get('/:contentid/edit",{"_index":11364,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get('/:contentid/play",{"_index":11366,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get(':token",{"_index":18642,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@post",{"_index":18628,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservice",{"_index":23131,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interpretation",{"_index":22821,"title":{},"body":{"license.html":{}}}],["interpreter",{"_index":22406,"title":{},"body":{"license.html":{}}}],["intimate",{"_index":22414,"title":{},"body":{"license.html":{}}}],["introduce",{"_index":9623,"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":23224,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introducing",{"_index":22925,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["introduction",{"_index":22864,"title":{},"body":{"todo.html":{}}}],["introspectoauth2token",{"_index":16038,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectoauth2token(token",{"_index":16053,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectresponse",{"_index":13050,"title":{"interfaces/IntrospectResponse.html":{}},"body":{"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{}}}],["inusermigration",{"_index":12182,"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/AuthenticationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["invalid_origin_for_logout_url",{"_index":13061,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["invalid_request",{"_index":5456,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["invalidate",{"_index":22494,"title":{},"body":{"license.html":{}}}],["invalidoriginforlogouturlloggableexception",{"_index":13057,"title":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/VideoConferenceController.html":{}}}],["invalidoriginforlogouturlloggableexception(params.logouturl",{"_index":21744,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["inversion",{"_index":23073,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["invitationlink",{"_index":4207,"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":1235,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["invoke",{"_index":23549,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["ip",{"_index":23584,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipaddress",{"_index":23587,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipagination",{"_index":8961,"title":{"interfaces/IPagination.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{}}}],["iparentinfo",{"_index":10047,"title":{"interfaces/IParentInfo.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iprimarykey",{"_index":10578,"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":12102,"title":{"interfaces/IRelatedResourceProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["irepoloader",{"_index":12122,"title":{"interfaces/IRepoLoader.html":{}},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["iretryoptions",{"_index":11597,"title":{"interfaces/IRetryOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["iroleproperties",{"_index":12158,"title":{"interfaces/IRoleProperties.html":{}},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["irrevocable",{"_index":22420,"title":{},"body":{"license.html":{}}}],["isactive",{"_index":8111,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isallowedaschild",{"_index":2755,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["isallowedaschild(child",{"_index":19041,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isallowedaschild(domainobject",{"_index":2772,"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":5606,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isanycontentelement(element",{"_index":5613,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isapplicable",{"_index":3385,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":3389,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":8146,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["isarray",{"_index":5477,"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":15528,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isarray()@ismongoid({each",{"_index":16545,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["isarray()@isoptional()@isstring({each",{"_index":5492,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{}}}],["isarray()@isstring({each",{"_index":5436,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["isatleastpartialsuccessfull",{"_index":6360,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isatleastpartialsuccessfull(status",{"_index":6370,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isauthenticated",{"_index":23743,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["isauthenticationresponse",{"_index":1694,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthenticationresponse(body",{"_index":1693,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthorizedstudent",{"_index":19111,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isauthorizedstudent(userid",{"_index":19116,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isautoparameterglobal",{"_index":8847,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isautoparameterglobal(customparameter",{"_index":8859,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isblocked",{"_index":10084,"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":{}}}],["isboolean()@apiproperty",{"_index":7330,"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":7058,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["isboolean()@isoptional()@apiproperty({description",{"_index":5440,"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":2218,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["isbusinesserror",{"_index":8384,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isbusinesserror(error",{"_index":8390,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["iscard(reference",{"_index":3965,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["ischoolexternaltoolproperties",{"_index":12171,"title":{"interfaces/ISchoolExternalToolProperties.html":{}},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["ischoolproperties",{"_index":12179,"title":{"interfaces/ISchoolProperties.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ischoolyearproperties",{"_index":12221,"title":{"interfaces/ISchoolYearProperties.html":{}},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["isclientidunique",{"_index":9432,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["isclientidunique(externaltool",{"_index":9437,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["iscolumn(reference",{"_index":4718,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["iscolumnboard",{"_index":4742,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(copystatus.copyentity",{"_index":4758,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(reference",{"_index":4735,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["iscolumnboardfeatureflagactive",{"_index":8061,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["iscolumnboardtarget",{"_index":3002,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(element.target",{"_index":3045,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(reference",{"_index":4885,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["iscopeinfo",{"_index":12227,"title":{"interfaces/IScopeInfo.html":{}},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["iscopyfrom",{"_index":10009,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iscoursefinished",{"_index":12497,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["iscreator",{"_index":17671,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iscustomparameternameempty",{"_index":8848,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iscustomparameternameempty(param",{"_index":8861,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdate",{"_index":999,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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()@isoptional()@apipropertyoptional({description",{"_index":7038,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isdefaultvalueofvalidregex",{"_index":8849,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidregex(param",{"_index":8863,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype",{"_index":8850,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype(param",{"_index":8865,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdirectory",{"_index":9877,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["isdraft",{"_index":3776,"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":{},"classes/PatchMyAccountParams.html":{}}}],["isemail()@isoptional()@apiproperty({description",{"_index":16528,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["isempty",{"_index":10907,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["isemptyqueryallowed",{"_index":6017,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["isenabled",{"_index":16741,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["isenum",{"_index":1044,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassSortParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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(classsortby",{"_index":4439,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isenum(contentelementtype",{"_index":6979,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(contentelementtype)@apiproperty({description",{"_index":6988,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isenum(customparameterlocationparams",{"_index":7345,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterlocationparams)@apiproperty",{"_index":7333,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams",{"_index":7344,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams)@apiproperty",{"_index":7339,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams",{"_index":7346,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams)@apiproperty",{"_index":7342,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(externaltoolsortby",{"_index":18884,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isenum(filerecordparenttype",{"_index":6232,"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":10680,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(filterroletype",{"_index":10681,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(importusersortorder",{"_index":18893,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isenum(inputformat",{"_index":8176,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(inputformat)@apiproperty",{"_index":17457,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["isenum(languagetype",{"_index":4202,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["isenum(ltimessagetype",{"_index":14589,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltimessagetype)@apiproperty",{"_index":14582,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission",{"_index":14590,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission)@apiproperty",{"_index":14584,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(newstargetmodel",{"_index":7053,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["isenum(newstargetmodel)@apiproperty({enum",{"_index":7046,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isenum(pagetypes",{"_index":16491,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["isenum(previewoutputmimetypes",{"_index":6245,"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":6247,"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":18614,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sharetokenparenttype)@apiproperty({description",{"_index":18609,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sortorder",{"_index":18898,"title":{},"body":{"classes/SortingParams.html":{}}}],["isenum(ssoauthenticationerror",{"_index":1922,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isenum(subjecttypeenum",{"_index":15622,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(subjecttypeenum)@isoptional()@apiproperty({description",{"_index":15608,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(systemtypeenum",{"_index":19376,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["isenum(tokenauthmethod",{"_index":15621,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenauthmethod)@isoptional()@apiproperty({description",{"_index":15613,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenendpointauthmethod",{"_index":15534,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(tokenendpointauthmethod)@apiproperty",{"_index":15532,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype",{"_index":2589,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype)@apiproperty",{"_index":2586,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolcontexttype",{"_index":5767,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{}}}],["isenum(toolcontexttype)@apiproperty",{"_index":5823,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({enum",{"_index":5764,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({type",{"_index":6129,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["isenum(videoconferencescope",{"_index":22034,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["iserv",{"_index":13100,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{}}}],["iserverconfig",{"_index":804,"title":{"interfaces/IServerConfig.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["iservlogouturl",{"_index":15461,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('id_token_hint",{"_index":15463,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('post_logout_redirect_uri",{"_index":15464,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.tostring",{"_index":15466,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservmapper",{"_index":13066,"title":{"classes/IservMapper.html":{}},"body":{"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternalschooldto(ldapschool",{"_index":13121,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternaluserdto(ldapuser",{"_index":13119,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservprovisioningstrategy",{"_index":13083,"title":{"injectables/IservProvisioningStrategy.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["iservstrategy",{"_index":16854,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["isession",{"_index":15738,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["isexternaltoolelement(reference",{"_index":8647,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["isexternaluser",{"_index":7025,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["isfeatherserror",{"_index":8385,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfeatherserror(error",{"_index":8392,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfileelement(reference",{"_index":9846,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["isfinished",{"_index":3777,"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":{},"classes/UsersList.html":{}}}],["isfinishedforuser",{"_index":12499,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser(user",{"_index":12491,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isflagged",{"_index":12992,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isflagged(flagged",{"_index":13010,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isglobal",{"_index":8916,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid",{"_index":8851,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid(customparameter",{"_index":8867,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isgraceperiodexpired",{"_index":4480,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraceperiodexpired(userloginmigration",{"_index":4488,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraded",{"_index":12323,"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":12326,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isgradedforuser(user",{"_index":12324,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgroup",{"_index":7457,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["isguest",{"_index":21902,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["isharetokenproperties",{"_index":12249,"title":{"interfaces/IShareTokenProperties.html":{}},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{}}}],["ishidden",{"_index":7135,"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":11523,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["isinfected",{"_index":1362,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["isinstancealive",{"_index":16039,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["isinstanceofloggable",{"_index":14451,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isinstanceofloggable(object",{"_index":14456,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isint",{"_index":5478,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isint()@isoptional()@apiproperty({description",{"_index":5447,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["isint()@isoptional()@ispositive()@apiproperty({description",{"_index":18604,"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":5347,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islatest(tool1",{"_index":5351,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islesson",{"_index":3003,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(element.target",{"_index":3042,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(reference",{"_index":11916,"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":{}}}],["islinkelement(reference",{"_index":14336,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["islisteningonly",{"_index":2232,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["islocal",{"_index":7125,"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":14588,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocale()@apiproperty",{"_index":14580,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocalhost",{"_index":1316,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["islti11config",{"_index":8479,"title":{},"body":{"classes/ExternalTool.html":{}}}],["islti11config(config",{"_index":8490,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["ismandatory",{"_index":18309,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ismarked",{"_index":10218,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["ismarkedfordeletion",{"_index":9940,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ismatched",{"_index":3393,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":12306,"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/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolIdParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/GroupIdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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/RichTextContentBody.html":{},"classes/RichTextElementContentBody.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/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.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/UpdateElementContentBodyParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["ismongoid()@apiproperty",{"_index":5806,"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":3795,"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":5803,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/GroupIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["ismongoid()@apiproperty({pattern",{"_index":7043,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ImportUserResponse.html":{}}}],["ismongoid()@apiproperty({required",{"_index":14915,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["ismongoid()@isoptional()@apipropertyoptional",{"_index":8612,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["ismongoid({each",{"_index":4050,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["isnameunique",{"_index":8852,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnameunique(externaltool",{"_index":8869,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnan",{"_index":5394,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnan(number(val",{"_index":5392,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnesthttpexception",{"_index":8386,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnesthttpexception(error",{"_index":8395,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnextcloud",{"_index":15965,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool",{"_index":15950,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool(tool",{"_index":15955,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnotcontained",{"_index":2698,"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":18950,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnotemptystring(value",{"_index":18951,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnumber",{"_index":3469,"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":5473,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["isnumber()@min(0)@apiproperty",{"_index":3466,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@apiproperty({required",{"_index":14917,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty",{"_index":3463,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty({description",{"_index":14367,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isnumber()@min(0)@isoptional()@apipropertyoptional({description",{"_index":14931,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@max(500)@isoptional()@apiproperty({description",{"_index":14363,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isoauth2config",{"_index":8480,"title":{},"body":{"classes/ExternalTool.html":{}}}],["isoauth2config(config",{"_index":8492,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["isoauthconfigavailable",{"_index":12670,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["isoauthprovisioningenabledforschool",{"_index":15391,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15412,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isolate",{"_index":23626,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["isolated",{"_index":23386,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isolation",{"_index":23321,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isopen",{"_index":6725,"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/ClassSortParams.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/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.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/LessonCopyApiParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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/RichTextContentBody.html":{},"classes/RichTextElementContentBody.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/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SystemFilterParams.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["isoptional()@apiproperty",{"_index":5499,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@apiproperty({description",{"_index":5490,"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":17933,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isboolean()@apiproperty({description",{"_index":458,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":10690,"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":20780,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isenum(classsortby)@apipropertyoptional({enum",{"_index":4433,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isoptional()@isenum(externaltoolsortby)@apipropertyoptional({enum",{"_index":18883,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isoptional()@isenum(filterroletype)@apipropertyoptional({enum",{"_index":10674,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isenum(importusersortorder)@apipropertyoptional({enum",{"_index":18892,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isoptional()@isenum(sortorder)@apipropertyoptional({enum",{"_index":4436,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["isoptional()@isenum(ssoauthenticationerror",{"_index":1914,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isint()@min(0)@apipropertyoptional({description",{"_index":6984,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isoptional()@ismongoid",{"_index":610,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@ismongoid()@apipropertyoptional({pattern",{"_index":10685,"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":17935,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isstring()@apiproperty({description",{"_index":18691,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["isoptional()@isstring()@isemail()@apiproperty({description",{"_index":465,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isstring()@isenum(newstargetmodel)@apipropertyoptional({enum",{"_index":10688,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["isoptional()@isstring()@isnotempty",{"_index":1911,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@isnotempty()@apipropertyoptional({type",{"_index":10660,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isstring()@sanitizehtml()@apipropertyoptional({description",{"_index":20782,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isstring()@sanitizehtml(inputformat.rich_text)@apipropertyoptional({description",{"_index":20778,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoutdated",{"_index":18370,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserScope.html":{}}}],["isoutdated(isoutdated",{"_index":21564,"title":{},"body":{"classes/UserScope.html":{}}}],["isoutdated(query.isoutdated",{"_index":20907,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["isowner",{"_index":21559,"title":{},"body":{"injectables/UserRule.html":{}}}],["ispending",{"_index":10092,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isplanned",{"_index":12501,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["ispositive",{"_index":18592,"title":{},"body":{"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["ispositive()@apiproperty({required",{"_index":18590,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["ispossible",{"_index":18310,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ispresenter",{"_index":2231,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["ispreviewpossible",{"_index":10095,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ispropertyprivacyprotected",{"_index":8280,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["ispropertyprivacyprotected(target",{"_index":8292,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["isprotecteduser",{"_index":21620,"title":{},"body":{"injectables/UserService.html":{}}}],["ispublished",{"_index":12500,"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":8853,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexcommentmandatoryandfilled(customparameter",{"_index":8871,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid",{"_index":8854,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid(param",{"_index":8873,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isrequiredtool",{"_index":9725,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["isrichtextelement(reference",{"_index":17477,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["iss",{"_index":6994,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["issatisfiedby(t",{"_index":23291,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["isschoolnumberunique",{"_index":18430,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isschoolnumberunique(school",{"_index":18432,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isslash",{"_index":1681,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isslash(inputpath",{"_index":1679,"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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.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/PseudonymParams.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":{}}}],["isstring()@apiproperty",{"_index":2584,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/LinkContentBody.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({nullable",{"_index":16960,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["isstring()@apiproperty({required",{"_index":17332,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["isstring()@ismongoid()@isoptional()@apipropertyoptional({description",{"_index":19675,"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":7328,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{}}}],["isstring()@isoptional()@apiproperty({description",{"_index":5454,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{}}}],["isstring()@isoptional()@apipropertyoptional",{"_index":5825,"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":19677,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@matches(undefined)@apiproperty({description",{"_index":6891,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["isstring()@sanitizehtml()@apiproperty({description",{"_index":7049,"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":7036,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isstring(value",{"_index":18953,"title":{},"body":{"classes/StringValidator.html":{}}}],["isstudent",{"_index":6915,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["issubmissioncontainerelement",{"_index":8236,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(reference",{"_index":18977,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["issubmissioncontainerelement(submissioncontainerelement",{"_index":8243,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(submissioncontainterelement",{"_index":19106,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["issubmissionitem",{"_index":8237,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissionitem(child",{"_index":8246,"title":{},"body":{"injectables/ElementUc.html":{}}}],["issubmissionitem(reference",{"_index":19056,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["issubmitted",{"_index":12304,"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":12309,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["issubmittedforuser(user",{"_index":12305,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubstitutionteacher",{"_index":3778,"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":{},"classes/UsersList.html":{}}}],["issuer",{"_index":1613,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["issues",{"_index":23014,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["istanbul",{"_index":3047,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/S3ClientAdapter.html":{},"classes/ShareTokenFactory.html":{}}}],["istask",{"_index":3004,"title":{},"body":{"injectables/BoardCopyService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["istask(element.target",{"_index":3038,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["istask(reference",{"_index":12549,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isteacher",{"_index":6916,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isteamuser",{"_index":20117,"title":{},"body":{"injectables/TeamRule.html":{}}}],["istemplate",{"_index":7124,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["istoolstatuslatestorthrow",{"_index":20575,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istoolstatuslatestorthrow(userid",{"_index":20582,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istorageproviderproperties",{"_index":12260,"title":{"interfaces/IStorageProviderProperties.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["isubmissionproperties",{"_index":12273,"title":{"interfaces/ISubmissionProperties.html":{}},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{}}}],["isuniqueemail",{"_index":1112,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemail(email",{"_index":1116,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount",{"_index":1113,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount(email",{"_index":1118,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser",{"_index":1114,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser(email",{"_index":1120,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isupgradable",{"_index":4322,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["isurl",{"_index":21771,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["isuserinfinisheduser",{"_index":12494,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isuseringroup",{"_index":16394,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["isuserreferenced",{"_index":1829,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isuserreferenced(user",{"_index":1840,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isusersubmitter(user",{"_index":12320,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isusersubstitutionteacher(user",{"_index":6581,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["isusersubstitutionteacherincourse(user",{"_index":12523,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isvalid",{"_index":3284,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isvaluevalidfortype",{"_index":5370,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isvaluevalidfortype(type",{"_index":5387,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isverified",{"_index":10093,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isvisible",{"_index":14258,"title":{},"body":{"injectables/LessonRule.html":{}}}],["iswhitelisted",{"_index":13187,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["iswhitelisted(accountid",{"_index":13194,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["isystemproperties",{"_index":12327,"title":{"interfaces/ISystemProperties.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["it's",{"_index":23355,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["it(\"should",{"_index":23320,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('bad",{"_index":23359,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('good",{"_index":23361,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('should",{"_index":23423,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["itargetgroupproperties",{"_index":12103,"title":{"interfaces/ITargetGroupProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["itask",{"_index":12433,"title":{"interfaces/ITask.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["itaskcreate",{"_index":12437,"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":6522,"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":{},"classes/UsersList.html":{}}}],["itaskproperties",{"_index":12438,"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":3771,"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":12436,"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":12550,"title":{"interfaces/ITeamProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{}}}],["iteamuserproperties",{"_index":12555,"title":{"interfaces/ITeamUserProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["item",{"_index":3195,"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":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["item.'})@apiresponse({status",{"_index":3732,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.body.params.ts",{"_index":7057,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.body.params.ts:10",{"_index":7061,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.columnboardid",{"_index":4905,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["item.do",{"_index":2851,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"injectables/SubmissionItemFactory.html":{}}}],["item.do.ts",{"_index":19038,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["item.do.ts:10",{"_index":19045,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:14",{"_index":19046,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:18",{"_index":19048,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:6",{"_index":19043,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.factory.ts",{"_index":19058,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.factory.ts:7",{"_index":19059,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.name.tolocalelowercase",{"_index":8907,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["item.response",{"_index":19254,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item.response.ts",{"_index":19068,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:13",{"_index":19071,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:16",{"_index":19072,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:19",{"_index":19070,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:22",{"_index":19073,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:4",{"_index":19069,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.service",{"_index":8239,"title":{},"body":{"injectables/ElementUc.html":{}}}],["item.service.ts",{"_index":19094,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:11",{"_index":19095,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:14",{"_index":19098,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:24",{"_index":19097,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:44",{"_index":19100,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.split(';')[0",{"_index":11545,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["item.uc",{"_index":2730,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["item.uc.ts",{"_index":19109,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:16",{"_index":19112,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:28",{"_index":19115,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:54",{"_index":19120,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:71",{"_index":19117,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:87",{"_index":19113,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.url.params.ts",{"_index":19137,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.url.params.ts:11",{"_index":19138,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.userid",{"_index":8251,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["item/create",{"_index":7056,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{}}}],["item/submission",{"_index":18993,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["item/submissions.response",{"_index":3737,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item/submissions.response.ts",{"_index":19248,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:14",{"_index":19251,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:19",{"_index":19252,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:5",{"_index":19250,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/update",{"_index":20784,"title":{},"body":{"classes/UpdateSubmissionItemBodyParams.html":{}}}],["itemindex",{"_index":8904,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["items",{"_index":1019,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/CardResponse.html":{},"classes/ClassInfoSearchListResponse.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":{}}}],["itemsperpage",{"_index":11331,"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":8517,"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/OAuth2ToolLaunchStrategy.html":{}}}],["itoollaunchstrategy",{"_index":212,"title":{"interfaces/IToolLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["itself",{"_index":1945,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":11937,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["iuserconfig",{"_index":12232,"title":{"interfaces/IUserConfig.html":{}},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["iuserloginmigration",{"_index":21152,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["iuserproperties",{"_index":12581,"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":7317,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ivideoconferenceproperties",{"_index":21667,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ivideoconferencesettings",{"_index":12603,"title":{"interfaces/IVideoConferenceSettings.html":{}},"body":{"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["javascript",{"_index":2284,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BsonConverter.html":{}}}],["jest",{"_index":20218,"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":23023,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["jest.fn",{"_index":23434,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.resetallmocks",{"_index":23411,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.restoreallmocks",{"_index":23419,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.spyon",{"_index":23431,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jira",{"_index":22237,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["job",{"_index":7920,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["job_init_idm.yml.j2",{"_index":13639,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["john",{"_index":20963,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["john${sequence",{"_index":12827,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["join",{"_index":2189,"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":2278,"title":{},"body":{"injectables/BBBService.html":{}}}],["join(currentuser",{"_index":21720,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["join(currentuserid",{"_index":21918,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.config",{"_index":2201,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["join.config.ts",{"_index":2167,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:18",{"_index":2172,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:20",{"_index":2175,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:22",{"_index":2176,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:24",{"_index":2173,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:26",{"_index":2174,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:8",{"_index":2171,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.response.ts",{"_index":2206,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["join.response.ts:5",{"_index":21915,"title":{},"body":{"classes/VideoConferenceJoinResponse.html":{}}}],["join.ts",{"_index":21910,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:5",{"_index":21913,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:7",{"_index":21912,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:9",{"_index":21911,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.uc.ts",{"_index":21916,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:11",{"_index":21917,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:18",{"_index":21919,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder",{"_index":21921,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.asguest(true",{"_index":21928,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.withrole(bbbrole.moderator",{"_index":21926,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joining",{"_index":21723,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["joinpath",{"_index":10280,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(...paths",{"_index":10301,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(path",{"_index":3620,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["joins",{"_index":21981,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["jose",{"_index":22132,"title":{},"body":{"dependencies.html":{}}}],["jpeg",{"_index":8829,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["js",{"_index":6528,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/UsersList.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["json",{"_index":1630,"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":13719,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["json.parse(filecontent",{"_index":11753,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace",{"_index":11813,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace(/\\\\\\$/g",{"_index":11817,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify",{"_index":11721,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(collections",{"_index":7819,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["json.stringify(e.constraints",{"_index":8309,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["json.stringify(payload",{"_index":2622,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["json.stringify(response.body",{"_index":1702,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(response.error",{"_index":1699,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(sortedbsondocuments",{"_index":11780,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(where",{"_index":18498,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["jsondocuments",{"_index":3822,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["jsondocuments.length",{"_index":7892,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["jsonwebtoken",{"_index":1570,"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":1749,"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":15559,"title":{},"body":{"injectables/OauthAdapterService.html":{},"classes/OauthConfigResponse.html":{},"dependencies.html":{}}}],["jwksendpoint",{"_index":11562,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["jwksrsa",{"_index":15558,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.jwksclient",{"_index":15561,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.signingkey",{"_index":15562,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksuri",{"_index":15552,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwt",{"_index":1605,"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":13103,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwt.decode(jwttoken",{"_index":1756,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwt.sign",{"_index":7011,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwt.verify(idtoken",{"_index":15455,"title":{},"body":{"injectables/OAuthService.html":{}}}],["jwt=${jwt",{"_index":11457,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["jwtauthguard",{"_index":13132,"title":{"injectables/JwtAuthGuard.html":{}},"body":{"injectables/JwtAuthGuard.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["jwtconstants",{"_index":1571,"title":{"interfaces/JwtConstants.html":{}},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions",{"_index":13176,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions.algorithm",{"_index":1608,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.audience",{"_index":1610,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.expiresin",{"_index":1612,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.header",{"_index":1616,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.issuer",{"_index":1614,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.secret",{"_index":1619,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor",{"_index":13151,"title":{"classes/JwtExtractor.html":{}},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor.fromcookie('jwt",{"_index":13173,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequest",{"_index":13170,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequestfunction",{"_index":13157,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["jwtfromresponse",{"_index":1676,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["jwtid",{"_index":1753,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtmodule",{"_index":1558,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmodule.register(jwtmoduleoptions",{"_index":1621,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmoduleoptions",{"_index":1559,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtoptions",{"_index":13138,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["jwtpayload",{"_index":1739,"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":7093,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.isexternaluser",{"_index":7100,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.roles",{"_index":7095,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.schoolid",{"_index":7096,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.support",{"_index":7099,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.systemid",{"_index":7094,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.userid",{"_index":7097,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtservice",{"_index":1714,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtstrategy",{"_index":1550,"title":{"injectables/JwtStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwttestfactory",{"_index":7007,"title":{"classes/JwtTestFactory.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwttoicurrentuser",{"_index":7065,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoicurrentuser(jwtpayload",{"_index":7069,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoken",{"_index":1729,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtvalidationadapter",{"_index":1551,"title":{"injectables/JwtValidationAdapter.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["k",{"_index":1832,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["kann",{"_index":4830,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["kc",{"_index":13275,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.clients.addprotocolmapper",{"_index":13447,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.create(cr",{"_index":13423,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.find",{"_index":13278,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.getclientsecret",{"_index":13280,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kc.clients.listprotocolmappers",{"_index":13439,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.update",{"_index":13424,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.updateprotocolmapper",{"_index":13444,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.create",{"_index":13458,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.createmapper",{"_index":13469,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.del",{"_index":13463,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.find",{"_index":13426,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.findmappers",{"_index":13464,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.update",{"_index":13461,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.updatemapper",{"_index":13465,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realmname",{"_index":13392,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.makerequest",{"_index":13388,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.update",{"_index":13282,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.users.count",{"_index":13600,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create",{"_index":13575,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create(idmuserrepresentation",{"_index":13678,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.del",{"_index":13713,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.del(id",{"_index":13585,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.find",{"_index":13601,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.findone",{"_index":13611,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.resetpassword",{"_index":13582,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.update",{"_index":13616,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadmin",{"_index":13334,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadminclient",{"_index":13252,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["kcadminservice",{"_index":13520,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["kcsettings",{"_index":13250,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.baseurl",{"_index":13266,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.realmname",{"_index":13267,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kebab",{"_index":23493,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["keep",{"_index":11762,"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":8185,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["keeps",{"_index":22972,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["kennung",{"_index":17962,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{}}}],["kernel",{"_index":22402,"title":{},"body":{"license.html":{}}}],["key",{"_index":2035,"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":{},"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/ToolLaunchRequestResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["key.getpublickey",{"_index":15564,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["keycloak",{"_index":773,"title":{"additional-documentation/nestjs-application/keycloak.html":{}},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICleanOptions.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":13229,"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":12664,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak/service/keycloak",{"_index":12666,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak:/tmp/realms",{"_index":23568,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloakadminclient",{"_index":13228,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakadministration",{"_index":13214,"title":{"classes/KeycloakAdministration.html":{}},"body":{"classes/KeycloakAdministration.html":{}}}],["keycloakadministrationmodule",{"_index":12657,"title":{"modules/KeycloakAdministrationModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules.html":{}}}],["keycloakadministrationservice",{"_index":13226,"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":13289,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["keycloakconfigservice",{"_index":13485,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfiguration",{"_index":13232,"title":{"classes/KeycloakConfiguration.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloakinputfiles",{"_index":13316,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloaksettings",{"_index":13235,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["keycloakconfigurationinputfiles",{"_index":12068,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakconfigurationmodule",{"_index":13296,"title":{"modules/KeycloakConfigurationModule.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["keycloakconfigurationservice",{"_index":13301,"title":{"injectables/KeycloakConfigurationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfigurationuc",{"_index":11591,"title":{"injectables/KeycloakConfigurationUc.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakconsole",{"_index":11604,"title":{"classes/KeycloakConsole.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakconsole.retryflags",{"_index":11621,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakidentitymanagementoauthservice",{"_index":12665,"title":{"injectables/KeycloakIdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakidentitymanagementservice",{"_index":12667,"title":{"injectables/KeycloakIdentityManagementService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakinputfiles",{"_index":13291,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["keycloakmanagementcontroller",{"_index":13305,"title":{"controllers/KeycloakManagementController.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakmanagementuc",{"_index":13644,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["keycloakmigrationservice",{"_index":13303,"title":{"injectables/KeycloakMigrationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{}}}],["keycloakmodule",{"_index":12658,"title":{"modules/KeycloakModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["keycloakseedservice",{"_index":13302,"title":{"classes/KeycloakSeedService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloaksettings",{"_index":12073,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakuser",{"_index":13588,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers",{"_index":13592,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.length",{"_index":13596,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.map((user",{"_index":13608,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keyof",{"_index":11223,"title":{},"body":{"injectables/GroupUc.html":{}}}],["keypair",{"_index":6998,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.privatekey.export",{"_index":7006,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.publickey.export",{"_index":7003,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypairkeyobjectresult",{"_index":6997,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keys",{"_index":772,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/JwtConstants.html":{},"license.html":{}}}],["keyvalue",{"_index":1779,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["keywords",{"_index":22858,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["kickuserfromgroup(groupname",{"_index":1229,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["kind",{"_index":22369,"title":{},"body":{"license.html":{}}}],["kinds",{"_index":22276,"title":{},"body":{"license.html":{}}}],["kiss",{"_index":23079,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["know",{"_index":22298,"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":23120,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["knowingly",{"_index":22724,"title":{},"body":{"license.html":{}}}],["knowledge",{"_index":22731,"title":{},"body":{"license.html":{}}}],["known",{"_index":11837,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["known/jwks.json",{"_index":11564,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["known/openid",{"_index":13272,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kontinuierlich",{"_index":4823,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ktid",{"_index":18037,"title":{},"body":{"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["kurse",{"_index":6536,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["l.course.isfinished()).map((l",{"_index":19975,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.id",{"_index":19976,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.name",{"_index":14175,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["label",{"_index":22244,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["labelnames",{"_index":17381,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["labels",{"_index":17383,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["language",{"_index":4198,"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":11810,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["languagetype",{"_index":4199,"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":4200,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["largely",{"_index":23335,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["larger",{"_index":22500,"title":{},"body":{"license.html":{}}}],["last",{"_index":6986,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{}}}],["lastauthorizationtime",{"_index":13239,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["lastloginsystemchange",{"_index":12584,"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":18389,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangebetweenstart",{"_index":18388,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangesmallerthan",{"_index":18371,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastmodifytimestamp",{"_index":12385,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastname",{"_index":852,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.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":{},"interfaces/UserBoardRoles.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["lastname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13027,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["lastnamesearchvalues",{"_index":11802,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["lastsuccessfulfullsync",{"_index":12383,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsuccessfulpartialsync",{"_index":12384,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsyncattempt",{"_index":12382,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lasttriedfailedlogin",{"_index":82,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{}}}],["lastupdatedat",{"_index":3715,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TimestampsResponse.html":{}}}],["lastvaluefrom",{"_index":1156,"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":15571,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["lastvaluefrom(this.httpservice.get>(wellknownurl))).data",{"_index":13528,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["later",{"_index":3430,"title":{},"body":{"entities/BoardElement.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["latest",{"_index":15158,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/ToolConfigurationController.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["laufzeit",{"_index":17941,"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":{},"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":20315,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch.controller.ts",{"_index":20490,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.controller.ts:28",{"_index":20501,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.mapper.ts",{"_index":20517,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:24",{"_index":20523,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:29",{"_index":20528,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:34",{"_index":20525,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:39",{"_index":20531,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.module.ts",{"_index":20551,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch.params.ts",{"_index":20555,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.params.ts:7",{"_index":20556,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.service.ts",{"_index":20572,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:22",{"_index":20577,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:38",{"_index":20579,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:51",{"_index":20581,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:73",{"_index":20585,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:86",{"_index":20583,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.strategy",{"_index":2613,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts",{"_index":110,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.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:204",{"_index":182,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:23",{"_index":131,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:249",{"_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":20602,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:11",{"_index":20604,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:18",{"_index":20606,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch/controller/dto/tool",{"_index":20554,"title":{},"body":{"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launch/controller/tool",{"_index":20314,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["launch/error/missing",{"_index":14872,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["launch/error/parameter",{"_index":16513,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launch/error/tool",{"_index":20749,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launch/mapper/lti",{"_index":14609,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["launch/mapper/tool",{"_index":20516,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch/service/lti11",{"_index":14552,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["launch/service/strategy/abstract",{"_index":109,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch/service/strategy/basic",{"_index":2599,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["launch/service/strategy/oauth2",{"_index":15336,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch/service/strategy/tool",{"_index":12574,"title":{},"body":{"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{}}}],["launch/service/tool",{"_index":20571,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch/settings",{"_index":22884,"title":{},"body":{"todo.html":{}}}],["launch/tool",{"_index":20550,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch/types/authentication",{"_index":1777,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["launch/types/property",{"_index":16814,"title":{},"body":{"classes/PropertyData.html":{}}}],["launch/types/tool",{"_index":20508,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{}}}],["launch/uc",{"_index":20316,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch/uc/tool",{"_index":20601,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch_presentation_locale",{"_index":7298,"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":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["launch_url",{"_index":5187,"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":20526,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launched",{"_index":20500,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launching",{"_index":16518,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launchrequest",{"_index":20593,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["launchrequestmethod",{"_index":178,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.get",{"_index":2626,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.post",{"_index":2625,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["law",{"_index":22360,"title":{},"body":{"license.html":{}}}],["laws",{"_index":22339,"title":{},"body":{"license.html":{}}}],["lawsuit",{"_index":22697,"title":{},"body":{"license.html":{}}}],["lax",{"_index":16171,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["layer",{"_index":20621,"title":{},"body":{"injectables/ToolPermissionHelper.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":{}}}],["layered",{"_index":23232,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["layers",{"_index":22866,"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":16559,"title":{},"body":{"injectables/PermissionService.html":{}}}],["ldap",{"_index":12927,"title":{},"body":{"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":14470,"title":{},"body":{"controllers/LoginController.html":{}}}],["ldap_connection_failed",{"_index":13760,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["ldap_password_encryption_key",{"_index":8269,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["ldap_univention_migration",{"_index":12193,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapactive",{"_index":19314,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{}}}],["ldapalreadypersistedexception",{"_index":13721,"title":{"classes/LdapAlreadyPersistedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["ldapauthorizationbodyparams",{"_index":13735,"title":{"classes/LdapAuthorizationBodyParams.html":{}},"body":{"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{}}}],["ldapconfig",{"_index":12330,"title":{"classes/LdapConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["ldapconfig.active",{"_index":12362,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.federalstate",{"_index":12363,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastmodifytimestamp",{"_index":12371,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulfullsync",{"_index":12367,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulpartialsync",{"_index":12369,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsyncattempt",{"_index":12365,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provider",{"_index":12379,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provideroptions",{"_index":12381,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.rootpath",{"_index":12374,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuser",{"_index":12376,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuserpassword",{"_index":12378,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.url",{"_index":12372,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconnectionerror",{"_index":13755,"title":{"classes/LdapConnectionError.html":{}},"body":{"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{}}}],["ldapdn",{"_index":4210,"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":8260,"title":{},"body":{"modules/EncryptionModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{}}}],["ldapid",{"_index":12040,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["ldapjs",{"_index":13769,"title":{},"body":{"injectables/LdapService.html":{},"dependencies.html":{}}}],["ldapjs.git",{"_index":22138,"title":{},"body":{"dependencies.html":{}}}],["ldaps:mock.de:389",{"_index":19360,"title":{},"body":{"classes/SystemFactory.html":{}}}],["ldapschool",{"_index":13114,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapschoolidentifier",{"_index":12205,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapservice",{"_index":1552,"title":{"injectables/LdapService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{}}}],["ldapservice:connect",{"_index":13788,"title":{},"body":{"injectables/LdapService.html":{}}}],["ldapstrategy",{"_index":1553,"title":{"injectables/LdapStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["ldapuniventionmigrationschool",{"_index":12194,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapuser",{"_index":13107,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapuser.roles.map((roleref",{"_index":13116,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapusermigrationexception",{"_index":13724,"title":{"classes/LdapUserMigrationException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["lead",{"_index":4142,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{}}}],["leads",{"_index":19840,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["leaf",{"_index":3279,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["lean",{"_index":22147,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["learn",{"_index":22961,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["learner",{"_index":7105,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["learning",{"_index":10713,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{}}}],["learningmodules",{"_index":5286,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["learnroom",{"_index":3583,"title":{},"body":{"modules/BoardModule.html":{},"injectables/DashboardModelMapper.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["learnroom.module",{"_index":13859,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["learnroomapimodule",{"_index":13844,"title":{"modules/LearnroomApiModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["learnroommetadata",{"_index":6516,"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":{},"classes/UsersList.html":{}}}],["learnroommodule",{"_index":13848,"title":{"modules/LearnroomModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/PseudonymModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["learnroomtypes",{"_index":6517,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["learnroomtypes.course",{"_index":6595,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["leave",{"_index":6115,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["leaves",{"_index":20246,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["left",{"_index":23147,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["legacy",{"_index":1141,"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/SystemEntity.html":{},"injectables/VideoConferenceCreateUc.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":23704,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/feathers",{"_index":23027,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/feathers/mocha",{"_index":23004,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/nest",{"_index":22913,"title":{},"body":{"todo.html":{}}}],["legacylogger",{"_index":2357,"title":{"injectables/LegacyLogger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.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/ICleanOptions.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.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":{},"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":{},"additional-documentation/nestjs-application/logging.html":{}}}],["legacyschoolapimodule",{"_index":13909,"title":{"modules/LegacySchoolApiModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["legacyschoolcontroller",{"_index":13918,"title":{"controllers/LegacySchoolController.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["legacyschooldo",{"_index":189,"title":{"classes/LegacySchoolDo.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/GroupUc.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/PseudonymUc.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":13994,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory",{"_index":13987,"title":{"classes/LegacySchoolFactory.html":{}},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory.define(legacyschooldo",{"_index":13995,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolmodule",{"_index":5333,"title":{"modules/LegacySchoolModule.html":{}},"body":{"modules/CommonToolModule.html":{},"modules/GroupApiModule.html":{},"modules/ImportUserModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["legacyschoolrepo",{"_index":1554,"title":{"injectables/LegacySchoolRepo.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/AuthorizationReferenceModule.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":1892,"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/GroupUc.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.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":{}}}],["legacyschooluc",{"_index":13914,"title":{"injectables/LegacySchoolUc.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["legal",{"_index":22306,"title":{},"body":{"license.html":{}}}],["legayschoolrule",{"_index":17793,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":3524,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["lernstore",{"_index":11870,"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":{}}}],["lernstore_view",{"_index":12203,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["lesson",{"_index":2659,"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/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":23692,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson.contents.foreach((content",{"_index":5051,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lesson.contents.map((c",{"_index":14295,"title":{},"body":{"injectables/LessonService.html":{}}}],["lesson.course",{"_index":17680,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRepo.html":{}}}],["lesson.course.name",{"_index":8131,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.coursegroup",{"_index":19763,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["lesson.coursename",{"_index":17639,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.createdat",{"_index":8129,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.entity",{"_index":2648,"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":{},"classes/UsersList.html":{}}}],["lesson.getnumberofdrafttasks",{"_index":8134,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofplannedtasks",{"_index":8136,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofpublishedtasks",{"_index":8132,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.hidden",{"_index":8128,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["lesson.id",{"_index":8127,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.module",{"_index":14133,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["lesson.name",{"_index":5049,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofdrafttasks",{"_index":17637,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofplannedtasks",{"_index":17638,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofpublishedtasks",{"_index":17636,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.response",{"_index":3446,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["lesson.response.ts",{"_index":3450,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:27",{"_index":3461,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:31",{"_index":3462,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:35",{"_index":3458,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:40",{"_index":3467,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:46",{"_index":3464,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:5",{"_index":3456,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:52",{"_index":3465,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:55",{"_index":3459,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:58",{"_index":3468,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:61",{"_index":3460,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.rule",{"_index":19870,"title":{},"body":{"injectables/TaskRule.html":{}}}],["lesson.updatedat",{"_index":8130,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson/task",{"_index":18692,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["lessonapimodule",{"_index":14126,"title":{"modules/LessonApiModule.html":{}},"body":{"modules/LessonApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["lessonboardelement",{"_index":2658,"title":{"entities/LessonBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/LessonBoardElement.html":{}}}],["lessoncontroller",{"_index":14132,"title":{"controllers/LessonController.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{}}}],["lessoncopyapiparams",{"_index":6391,"title":{"classes/LessonCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"classes/LessonCopyApiParams.html":{},"controllers/RoomsController.html":{}}}],["lessoncopyparentparams",{"_index":6393,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/LessonCopyUC.html":{}}}],["lessoncopyservice",{"_index":2972,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/ShareTokenUC.html":{}}}],["lessoncopyuc",{"_index":13850,"title":{"injectables/LessonCopyUC.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{}}}],["lessonelement",{"_index":3070,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["lessonelements",{"_index":3689,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["lessonentity",{"_index":2647,"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/LessonCopyUC.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":{}}}],["lessonfactory",{"_index":14195,"title":{"classes/LessonFactory.html":{}},"body":{"classes/LessonFactory.html":{}}}],["lessonfactory.define",{"_index":14197,"title":{},"body":{"classes/LessonFactory.html":{}}}],["lessonhidden",{"_index":12452,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonid",{"_index":5017,"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":19805,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["lessonidsoffinishedcourses",{"_index":19770,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonidsofopencourses",{"_index":19768,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonmetadata",{"_index":8093,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lessonmodule",{"_index":13849,"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":12451,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonreadpermission",{"_index":14236,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonreadpermission(user",{"_index":14246,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonrepo",{"_index":1931,"title":{"injectables/LessonRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.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":1893,"title":{"injectables/LessonRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{}}}],["lessons",{"_index":5043,"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":19974,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.foreach((lesson",{"_index":5045,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lessons.map((l",{"_index":19997,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.map((lesson",{"_index":14294,"title":{},"body":{"injectables/LessonService.html":{}}}],["lessonscope",{"_index":14219,"title":{"classes/LessonScope.html":{}},"body":{"injectables/LessonRepo.html":{},"classes/LessonScope.html":{}}}],["lessonservice",{"_index":5002,"title":{"injectables/LessonService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/ShareTokenService.html":{}}}],["lessonuc",{"_index":14130,"title":{"injectables/LessonUC.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonUC.html":{}}}],["lessonurlparams",{"_index":14139,"title":{"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{}},"body":{"controllers/LessonController.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"controllers/RoomsController.html":{}}}],["lessonwritepermission",{"_index":14237,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonwritepermission(user",{"_index":14248,"title":{},"body":{"injectables/LessonRule.html":{}}}],["letter",{"_index":940,"title":{},"body":{"injectables/AccountRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["letters",{"_index":23487,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["letting",{"_index":22324,"title":{},"body":{"license.html":{}}}],["level",{"_index":3588,"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":3634,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["levels",{"_index":14433,"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":22614,"title":{},"body":{"license.html":{}}}],["liable",{"_index":22357,"title":{},"body":{"license.html":{}}}],["libraries",{"_index":22396,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["libraries/:ubername/:file",{"_index":11383,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["library",{"_index":22553,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["license",{"_index":12097,"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":22343,"title":{},"body":{"license.html":{}}}],["licensee",{"_index":22344,"title":{},"body":{"license.html":{}}}],["licensees",{"_index":22346,"title":{},"body":{"license.html":{}}}],["licenses",{"_index":22282,"title":{},"body":{"license.html":{}}}],["licensing",{"_index":22675,"title":{},"body":{"license.html":{}}}],["licensors",{"_index":22622,"title":{},"body":{"license.html":{}}}],["likes",{"_index":23497,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["likewise",{"_index":22667,"title":{},"body":{"license.html":{}}}],["limit",{"_index":56,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.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":22806,"title":{},"body":{"license.html":{}}}],["limited",{"_index":22795,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["limiting",{"_index":22613,"title":{},"body":{"license.html":{}}}],["line",{"_index":1189,"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":{},"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":23058,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["link",{"_index":2280,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ColumnBoardService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/FeathersRosterService.html":{},"modules/ImportUserModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{}}}],["linkcontentbody",{"_index":5645,"title":{"classes/LinkContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["linked",{"_index":17234,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"license.html":{}}}],["linkelement",{"_index":2832,"title":{"classes/LinkElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.description",{"_index":5667,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["linkelement.id",{"_index":17286,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.imageurl",{"_index":5670,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.title",{"_index":5665,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.url",{"_index":5661,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementcontent",{"_index":14337,"title":{"classes/LinkElementContent.html":{}},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementcontentbody",{"_index":8175,"title":{"classes/LinkElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["linkelementcontentbody)@apiresponse({status",{"_index":8209,"title":{},"body":{"controllers/ElementController.html":{}}}],["linkelementnode",{"_index":3183,"title":{"entities/LinkElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementnodeprops",{"_index":14345,"title":{"interfaces/LinkElementNodeProps.html":{}},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["linkelementprops",{"_index":14335,"title":{"interfaces/LinkElementProps.html":{}},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["linkelementresponse",{"_index":3978,"title":{"classes/LinkElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementresponsemapper",{"_index":5584,"title":{"classes/LinkElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementresponsemapper.getinstance",{"_index":5576,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["linkelementresponsemapper.instance",{"_index":14354,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["linkid",{"_index":7297,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["linter",{"_index":22900,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["liskov",{"_index":23066,"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/GroupController.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":19296,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["list.response.ts",{"_index":1006,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CardListResponse.html":{},"classes/ClassInfoSearchListResponse.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":4056,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:4",{"_index":4054,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:5",{"_index":1010,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["list.response.ts:6",{"_index":5732,"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":9265,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list_files_of_parent",{"_index":11921,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["listconsentsessions",{"_index":15850,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["listconsentsessions(@currentuser",{"_index":15937,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(currentuser",{"_index":15870,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(user",{"_index":16056,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listconsentsessions(userid",{"_index":16074,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["listenercount",{"_index":2219,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["listening",{"_index":1478,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["listfilesofparent",{"_index":10430,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent(param",{"_index":10438,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["listfilesofparent(payload",{"_index":10620,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:finished",{"_index":10638,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:started",{"_index":10636,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listoauth2clients",{"_index":15779,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["listoauth2clients(currentuser",{"_index":15789,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["listoauth2clients(limit",{"_index":16058,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listoauthclientsparams",{"_index":14359,"title":{"classes/ListOauthClientsParams.html":{}},"body":{"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{}}}],["listobjectscommand",{"_index":17852,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["listresponse",{"_index":19017,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["lists",{"_index":10306,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/ToolConfigurationController.html":{}}}],["listsequal",{"_index":2678,"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":{},"injectables/ColumnBoardCopyService.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":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.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":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["litigation",{"_index":22695,"title":{},"body":{"license.html":{}}}],["load",{"_index":1947,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":22877,"title":{},"body":{"todo.html":{}}}],["load/persist",{"_index":23175,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["loadaccount",{"_index":1709,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccount(username",{"_index":1721,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccounts",{"_index":13688,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["loadallcollectionsfromdatabase(targetfolder",{"_index":11696,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadallcollectionsfromfilesystem(basedir",{"_index":11702,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadauthorizableobject",{"_index":12152,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["loadauthorizableobject(objectname",{"_index":17327,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11710,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loaded",{"_index":4052,"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":{},"classes/UsersList.html":{},"injectables/VideoConferenceRepo.html":{}}}],["loaded.config",{"_index":9413,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loaded.version",{"_index":9414,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loadedexternaltool",{"_index":5375,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedexternaltool.parameters",{"_index":5407,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["loadedexternaltool.version",{"_index":18255,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedoauthclient",{"_index":9310,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedoauthclient.client_id",{"_index":9352,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedpseudonym",{"_index":9682,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["loadedschoolexternaltool",{"_index":6108,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedtool",{"_index":9301,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.clientid",{"_index":9458,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.type",{"_index":9454,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loader",{"_index":1869,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.html":{},"modules/ToolModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loading",{"_index":20622,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loadings",{"_index":20624,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["loads",{"_index":4517,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{}}}],["loadtoolhierarchy",{"_index":20576,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadtoolhierarchy(schoolexternaltoolid",{"_index":20584,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadusers",{"_index":13689,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["local",{"_index":1639,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"interfaces/ICleanOptions.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/UserLoginMigrationEntity.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["localauthorizationbodyparams",{"_index":14372,"title":{"classes/LocalAuthorizationBodyParams.html":{}},"body":{"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{}}}],["localcookies",{"_index":6142,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["localcookies.includes(cookie",{"_index":11549,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localcookies.push(cookie",{"_index":11550,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto",{"_index":11518,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig",{"_index":11542,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig.headers",{"_index":11537,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies",{"_index":11531,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.hydracookies.join",{"_index":11535,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.localcookies.join",{"_index":11536,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.currentredirect",{"_index":11543,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.referer",{"_index":11538,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response",{"_index":11540,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers",{"_index":11521,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers.location",{"_index":11520,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers['set",{"_index":11529,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localfallback",{"_index":1326,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["localfield",{"_index":21530,"title":{},"body":{"injectables/UserRepo.html":{}}}],["localhost",{"_index":1318,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["localhost:15672",{"_index":22940,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["localhost:27017\"}]})start",{"_index":23581,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["localhost:3030",{"_index":22977,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["locally",{"_index":10609,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"controllers/LoginController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["localstrategy",{"_index":1555,"title":{"injectables/LocalStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LocalStrategy.html":{}}}],["locate",{"_index":23243,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["located",{"_index":23157,"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":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["location.startswith('http",{"_index":11522,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["location.startswith(configuration.get('hydra_public_uri",{"_index":11524,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["locationmapping",{"_index":9158,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterdo.location",{"_index":9251,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterparam.location",{"_index":9201,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["locations",{"_index":11525,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["lockid",{"_index":9886,"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":8310,"title":{},"body":{"classes/ErrorLoggable.html":{},"interfaces/ICleanOptions.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":12089,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["log/response",{"_index":22902,"title":{},"body":{"todo.html":{}}}],["loggable",{"_index":1464,"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/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PreviewActionsLoggable.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/TooManyPseudonymsLoggableException.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":21161,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:13",{"_index":21163,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:8",{"_index":21162,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.getlogmessage",{"_index":14460,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["loggable.ts",{"_index":1460,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:10",{"_index":1480,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:13",{"_index":1481,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:3",{"_index":8749,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:6",{"_index":8750,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable/error.loggable",{"_index":10821,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["loggable/news",{"_index":15173,"title":{},"body":{"injectables/NewsUc.html":{}}}],["loggable/oauth",{"_index":11433,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{}}}],["loggable/preview",{"_index":16627,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["loggables",{"_index":12079,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logged",{"_index":20439,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logger",{"_index":2356,"title":{"injectables/Logger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.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/ICleanOptions.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":{},"classes/KeycloakSeedService.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":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logger.debug",{"_index":16799,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.error(error",{"_index":3882,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.info",{"_index":16813,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.info(`could",{"_index":23373,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["logger.interface",{"_index":13893,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.interface.ts",{"_index":12078,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:11",{"_index":12088,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:12",{"_index":12090,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:13",{"_index":12085,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:14",{"_index":12092,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:15",{"_index":12082,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.log(msg",{"_index":3885,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.service",{"_index":14431,"title":{},"body":{"modules/LoggerModule.html":{}}}],["logger.service.ts",{"_index":13871,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:22",{"_index":13875,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:26",{"_index":13881,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:30",{"_index":13886,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:34",{"_index":13878,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:38",{"_index":13880,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:42",{"_index":13879,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:50",{"_index":13883,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:54",{"_index":13877,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:58",{"_index":13885,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.setcontext(durationlogginginterceptor.name",{"_index":8164,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logger.setcontext(redismodule.name",{"_index":17323,"title":{},"body":{"modules/RedisModule.html":{}}}],["logger.setcontext(servermodule.name",{"_index":18575,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.setcontext(servertestmodule.name",{"_index":18583,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.ts",{"_index":8327,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:12",{"_index":8338,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:17",{"_index":8334,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:22",{"_index":8336,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:27",{"_index":8340,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:9",{"_index":8332,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.warn",{"_index":18557,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger/interfaces",{"_index":8294,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logger/types",{"_index":8295,"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/AuthorizationReferenceModule.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/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.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":6437,"title":{"additional-documentation/nestjs-application/logging.html":{}},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/OpenGraphProxyService.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":17401,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts",{"_index":8154,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:10",{"_index":8157,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:12",{"_index":17389,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:15",{"_index":8161,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:9",{"_index":17388,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.utils",{"_index":8344,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils",{"_index":8343,"title":{"classes/LoggingUtils.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{}}}],["loggingutils.createmessagewithcontext(loggable",{"_index":8346,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils.isinstanceofloggable(error",{"_index":10827,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["logic",{"_index":12311,"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":{},"classes/ChallengeParams.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ConsentResponse.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.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/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.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":{},"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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":1671,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["login.query.ts",{"_index":17932,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:13",{"_index":17934,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:8",{"_index":17936,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.response",{"_index":15718,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts",{"_index":15715,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts:9",{"_index":15716,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login_block_time",{"_index":1764,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["login_challenge",{"_index":5482,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["login_hint",{"_index":16267,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["login_required",{"_index":5457,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["login_session_id",{"_index":5483,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["loginchallenge",{"_index":5502,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["logincontroller",{"_index":1510,"title":{"controllers/LoginController.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["logindto",{"_index":1743,"title":{"classes/LoginDto.html":{}},"body":{"injectables/AuthenticationService.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{}}}],["logindto.accesstoken",{"_index":14539,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["loginldap",{"_index":14464,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(@currentuser",{"_index":14492,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(user",{"_index":14467,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal",{"_index":14465,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(@currentuser",{"_index":14498,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(user",{"_index":14474,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginname",{"_index":10659,"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":13030,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["loginoauth2",{"_index":14466,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginoauth2(user",{"_index":14478,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginpath",{"_index":1634,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["loginrequestbody",{"_index":14507,"title":{"classes/LoginRequestBody.html":{}},"body":{"classes/LoginRequestBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember",{"_index":16018,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember_for",{"_index":16019,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginresponse",{"_index":14471,"title":{"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"classes/OauthLoginResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["loginresponse.challenge",{"_index":15998,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse.client.client_id",{"_index":15987,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse:5",{"_index":15717,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["loginresponsemapper",{"_index":14485,"title":{"classes/LoginResponseMapper.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{}}}],["loginresponsemapper.maptologinresponse(logindto",{"_index":14494,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginresponsemapper.maptooauthloginresponse(logindto",{"_index":14501,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginsessionid",{"_index":5505,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["loginuc",{"_index":1508,"title":{"injectables/LoginUc.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{}}}],["loginurl",{"_index":21401,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('migration",{"_index":21477,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('postloginredirect",{"_index":21476,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.tostring",{"_index":21478,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginuseruc",{"_index":23208,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["logmessage",{"_index":1465,"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/PreviewActionsLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.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":8300,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logmessagedata",{"_index":1466,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/NewsMapper.html":{}}}],["logmessagewithcontext",{"_index":14455,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["logmigrationinformation",{"_index":21301,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logmigrationinformation(userid",{"_index":21310,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logo",{"_index":7316,"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":9445,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["logo.service.ts",{"_index":8757,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:114",{"_index":8768,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:26",{"_index":8764,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:34",{"_index":8766,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:46",{"_index":8778,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:61",{"_index":8773,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:73",{"_index":8771,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:97",{"_index":8775,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.ts",{"_index":8729,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:2",{"_index":8732,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:4",{"_index":8731,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo_url",{"_index":7117,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["logobase64",{"_index":8682,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["logobinarydata",{"_index":8817,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logourl",{"_index":5736,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.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/FederalStateEntity.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":{}}}],["logout",{"_index":11944,"title":{},"body":{"interfaces/ICurrentUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/UserMigrationService.html":{}}}],["logoutendpoint",{"_index":11565,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["logoutflow",{"_index":16003,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflow(challenge",{"_index":16005,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflowuc",{"_index":15899,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["logoutresponse",{"_index":16007,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logouturl",{"_index":2072,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceMapper.html":{}}}],["logoutuser(authtoken",{"_index":1219,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["logs",{"_index":5467,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["lokalisierung",{"_index":17966,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["long",{"_index":5449,"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":23485,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["look",{"_index":13142,"title":{},"body":{"interfaces/JwtConstants.html":{},"controllers/ShareTokenController.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["looking",{"_index":14368,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["looks",{"_index":23098,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lookup",{"_index":11981,"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":18623,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["lookupsharetoken(currentuser",{"_index":18640,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["lookupsharetoken(userid",{"_index":18810,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["lookuptoken",{"_index":18758,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptoken(token",{"_index":18767,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname",{"_index":18759,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname(token",{"_index":18769,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["loop",{"_index":11459,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["loss",{"_index":22813,"title":{},"body":{"license.html":{}}}],["losses",{"_index":22816,"title":{},"body":{"license.html":{}}}],["lot",{"_index":23436,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["low",{"_index":23152,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lower",{"_index":23077,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lowercase",{"_index":12041,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lt",{"_index":21572,"title":{},"body":{"classes/UserScope.html":{}}}],["lte",{"_index":3637,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/FilesRepo.html":{},"classes/NewsScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{}}}],["lti",{"_index":5164,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/NextcloudStrategy.html":{}}}],["lti11config",{"_index":9035,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.baseurl",{"_index":9076,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.key",{"_index":9081,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.launch_presentation_locale",{"_index":9086,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.lti_message_type",{"_index":9083,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.privacy_permission",{"_index":9085,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.resource_link_id",{"_index":9084,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.secret",{"_index":9082,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.type",{"_index":9075,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11encryptionservice",{"_index":14551,"title":{"injectables/Lti11EncryptionService.html":{}},"body":{"injectables/Lti11EncryptionService.html":{},"modules/ToolLaunchModule.html":{}}}],["lti11toolconfig",{"_index":7269,"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":9133,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigcreateparams",{"_index":8617,"title":{"classes/Lti11ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Lti11ToolConfigCreateParams.html":{}}}],["lti11toolconfigentity",{"_index":8684,"title":{"classes/Lti11ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfigEntity.html":{}}}],["lti11toolconfigfactory",{"_index":7291,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigfactory.build(customparam",{"_index":7311,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigresponse",{"_index":9212,"title":{"classes/Lti11ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["lti11toolconfigupdate",{"_index":9137,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigupdateparams",{"_index":9135,"title":{"classes/Lti11ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["lti11toollaunchstrategy",{"_index":20549,"title":{},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["lti_message_type",{"_index":7118,"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":{}}}],["lti_version",{"_index":7119,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["ltimessagetype",{"_index":7266,"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":7296,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission",{"_index":7112,"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":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission.anonymous",{"_index":7121,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalToolEntityFactory.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{}}}],["ltiprivacypermission.name",{"_index":14677,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiprivacypermission.pseudonymous",{"_index":7295,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltirepo",{"_index":11491,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["ltirole",{"_index":14614,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.administrator",{"_index":14619,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.instructor",{"_index":14618,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.learner",{"_index":14617,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirolemapper",{"_index":14608,"title":{"classes/LtiRoleMapper.html":{}},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles",{"_index":14621,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles.filter",{"_index":14625,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroletype",{"_index":7104,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["ltiroletype.instructor",{"_index":14678,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype.learner",{"_index":14679,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype})@property({nullable",{"_index":14644,"title":{},"body":{"entities/LtiTool.html":{}}}],["ltitool",{"_index":7116,"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":14701,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["ltitooldo",{"_index":7182,"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":14669,"title":{"classes/LtiToolFactory.html":{}},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolfactory.define(ltitool",{"_index":14675,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolmodule",{"_index":14680,"title":{"modules/LtiToolModule.html":{}},"body":{"modules/LtiToolModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["ltitoolpromise",{"_index":15313,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ltitoolrepo",{"_index":4584,"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":7115,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["ltitoolservice",{"_index":14684,"title":{"injectables/LtiToolService.html":{}},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["ltitoolstabenabled",{"_index":12566,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["lumieducation/h5p",{"_index":22052,"title":{},"body":{"dependencies.html":{}}}],["m=256m",{"_index":23573,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["machine",{"_index":22510,"title":{},"body":{"license.html":{}}}],["made",{"_index":22313,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["magic",{"_index":15963,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["mail",{"_index":1498,"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/SystemEntity.html":{},"injectables/UserRepo.html":{},"license.html":{}}}],["mail.interface",{"_index":14755,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mail.service",{"_index":14749,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mail_service_options",{"_index":14750,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailattachment",{"_index":1484,"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":1492,"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":14744,"title":{"modules/MailModule.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["mailmodule.forroot",{"_index":18542,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mailmoduleoptions",{"_index":14746,"title":{"interfaces/MailModuleOptions.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailservice",{"_index":14748,"title":{"injectables/MailService.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mailserviceoptions",{"_index":14752,"title":{"interfaces/MailServiceOptions.html":{}},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["main",{"_index":22248,"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":9756,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["maintain",{"_index":22536,"title":{},"body":{"license.html":{}}}],["maintainability",{"_index":23049,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["maintenance",{"_index":14848,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["major",{"_index":22399,"title":{},"body":{"license.html":{}}}],["make",{"_index":1854,"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":22439,"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":20777,"title":{},"body":{"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["makse",{"_index":14181,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["manage",{"_index":10004,"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":14497,"title":{},"body":{"controllers/LoginController.html":{}}}],["managed.'})@apiresponse({status",{"_index":14476,"title":{},"body":{"controllers/LoginController.html":{}}}],["management",{"_index":803,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/ICleanOptions.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":12001,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{}}}],["management.console",{"_index":14765,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.console.ts",{"_index":3478,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["management.console.ts:12",{"_index":7793,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:14",{"_index":3488,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:31",{"_index":7800,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:58",{"_index":7797,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:7",{"_index":3483,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:72",{"_index":7805,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.controller",{"_index":14768,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.controller.ts",{"_index":7828,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:18",{"_index":7841,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:23",{"_index":7838,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:28",{"_index":7835,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:33",{"_index":7847,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:9",{"_index":7844,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.integration.spec.ts",{"_index":23552,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.module",{"_index":14777,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/SystemModule.html":{}}}],["management.module.ts",{"_index":7862,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{}}}],["management.service",{"_index":7863,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["management.service.integration.spec.tsseeding",{"_index":23554,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.service.ts",{"_index":7864,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:100",{"_index":12713,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:11",{"_index":7889,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:15",{"_index":7885,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:17",{"_index":12689,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:170",{"_index":13558,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:186",{"_index":13560,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:20",{"_index":7886,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:26",{"_index":12715,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:32",{"_index":7882,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:35",{"_index":12717,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:38",{"_index":7874,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:43",{"_index":12701,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:44",{"_index":7883,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:51",{"_index":12694,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:52",{"_index":7876,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:58",{"_index":7878,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:59",{"_index":12698,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:62",{"_index":7880,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:66",{"_index":7887,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:67",{"_index":12704,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:74",{"_index":12705,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:8",{"_index":7872,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:81",{"_index":12692,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:89",{"_index":12708,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:9",{"_index":13552,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.uc",{"_index":3494,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["management.uc.ts",{"_index":3504,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["management.uc.ts:13",{"_index":3511,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:16",{"_index":3512,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:39",{"_index":3516,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:49",{"_index":3514,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:60",{"_index":3518,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:71",{"_index":3523,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:75",{"_index":3527,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:79",{"_index":3520,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management/database",{"_index":7829,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management/identity",{"_index":12000,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["management/idm",{"_index":13631,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["management/keycloak",{"_index":11586,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":18493,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["management/keycloak/keycloak.module.ts",{"_index":13686,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["management/keycloak/service/keycloak",{"_index":13515,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["managementmodule",{"_index":14758,"title":{"modules/ManagementModule.html":{}},"body":{"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["managementservermodule",{"_index":14772,"title":{"modules/ManagementServerModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["managementservertestmodule",{"_index":14779,"title":{"modules/ManagementServerTestModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["manager",{"_index":2007,"title":{},"body":{"injectables/AuthorizationService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["manager.ts",{"_index":17789,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:23",{"_index":17794,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:57",{"_index":17798,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:64",{"_index":17796,"title":{},"body":{"injectables/RuleManager.html":{}}}],["mandatory",{"_index":11843,"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":21167,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:11",{"_index":21169,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:4",{"_index":21168,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.params",{"_index":21090,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["mandatory.params.ts",{"_index":21172,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory.params.ts:7",{"_index":21173,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory/optional",{"_index":21073,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"todo.html":{}}}],["mandatorysince",{"_index":21120,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["manifest",{"_index":5127,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["manner",{"_index":22712,"title":{},"body":{"license.html":{}}}],["manual",{"_index":10678,"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":23261,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["manufacture",{"_index":8062,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["many",{"_index":20292,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["manytomany",{"_index":2640,"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":{},"classes/UsersList.html":{}}}],["manytomany('boardelement",{"_index":2637,"title":{},"body":{"entities/Board.html":{}}}],["manytomany('course",{"_index":7569,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytomany('material",{"_index":11884,"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('user",{"_index":6539,"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":{},"classes/UsersList.html":{}}}],["manytomany(undefined",{"_index":6479,"title":{},"body":{"entities/Course.html":{},"entities/SchoolEntity.html":{}}}],["manytomany({entity",{"_index":17509,"title":{},"body":{"entities/Role.html":{}}}],["manytoone",{"_index":4989,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{}}}],["manytoone('columnboardtarget",{"_index":4987,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["manytoone('course",{"_index":6757,"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":11882,"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":7570,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytoone('lessonentity",{"_index":12455,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytoone('task",{"_index":12277,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["manytoone('teamentity",{"_index":6889,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["manytoone('user",{"_index":6864,"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":6751,"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/UserLoginMigrationEntity.html":{}}}],["manytoone({nullable",{"_index":8659,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{}}}],["map",{"_index":3364,"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":{},"injectables/GroupUc.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"classes/MetadataTypeMapper.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ToolLaunchService.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":6416,"title":{},"body":{"classes/CopyMapper.html":{}}}],["map((elementwithposition",{"_index":7618,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["map((entity",{"_index":19412,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["map((group",{"_index":11258,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/SanisResponseMapper.html":{}}}],["map((groupuser",{"_index":11292,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["map((match",{"_index":13038,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["map((relation",{"_index":18044,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((role",{"_index":20939,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["map((rolename",{"_index":21365,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["map((teacher",{"_index":5084,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["map(async",{"_index":11735,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["map.set(key",{"_index":6383,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map.set(status.originalentity.id",{"_index":6385,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map[node.id",{"_index":3362,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["map[node.pathofchildren",{"_index":3658,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["map[node.pathofchildren].push(desc",{"_index":3659,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["mapaccountstodto",{"_index":628,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapaccountstodto(accounts",{"_index":631,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapbasictoolconfigdotoentity",{"_index":9023,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoentity(lti11config",{"_index":9033,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoresponse",{"_index":9220,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigdotoresponse(externaltoolconfigdo",{"_index":9225,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigtodo",{"_index":9024,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigtodo(lti11config",{"_index":9036,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapboardelements",{"_index":17591,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapbodytodto",{"_index":20097,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapbodytodto(body",{"_index":20098,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapclasstoclassinfodto",{"_index":11278,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapclasstoclassinfodto(clazz",{"_index":11281,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapcolumnboard",{"_index":17592,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapcolumnboardelement",{"_index":8063,"title":{},"body":{"classes/DtoCreator.html":{}}}],["mapcolumnboardelement(element",{"_index":8083,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mapconsentresponse",{"_index":16020,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentresponse(consent",{"_index":16025,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse",{"_index":16021,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse(session",{"_index":16027,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapcontenttoresource",{"_index":4998,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontenttoresource(lessonid",{"_index":5014,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontextexternaltoolrequest",{"_index":5911,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolrequest(request",{"_index":5913,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolresponse",{"_index":5951,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontextexternaltoolresponse(contextexternaltool",{"_index":5954,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontexttypetodotype",{"_index":5842,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetodotype(type",{"_index":5856,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype",{"_index":5843,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype(type",{"_index":5858,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto",{"_index":10449,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto(copyfilelistresponse",{"_index":10455,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto",{"_index":10450,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto(response",{"_index":10457,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcourseteacherstocopyrightowners",{"_index":4999,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseteacherstocopyrightowners(course",{"_index":5019,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseuserstousergroup",{"_index":3119,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcourseuserstousergroup(course",{"_index":3127,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcreateacceptloginrequestbody",{"_index":16015,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreateacceptloginrequestbody(loginrequestbody",{"_index":16016,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreatenewstodomain",{"_index":15018,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreatenewstodomain(params",{"_index":15022,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreaterequest",{"_index":9108,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcreaterequest(externaltoolcreateparams",{"_index":9118,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcurrentusertocreatejwtpayload",{"_index":7066,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcurrentusertocreatejwtpayload(currentuser",{"_index":7071,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcustomparameterdostoentities",{"_index":9025,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterdostoentities(customparameters",{"_index":9038,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities",{"_index":9026,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities(entries",{"_index":9040,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos",{"_index":9027,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos(entries",{"_index":9043,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos",{"_index":9028,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos(customparameters",{"_index":9045,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparametertoresponse",{"_index":9221,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapcustomparametertoresponse(customparameters",{"_index":9228,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapdashboardtoentity",{"_index":7645,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtoentity(modelentity",{"_index":7660,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel",{"_index":7646,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel(entity",{"_index":7663,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdomainobjecttoentityproperties",{"_index":8940,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(entitydo",{"_index":8957,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(group",{"_index":10985,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapdomaintoadapter",{"_index":4561,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoadapter(team",{"_index":4562,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoresponse",{"_index":23181,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapdosortordertoqueryorder",{"_index":9379,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdosortordertoqueryorder(sort",{"_index":9380,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdotoentityproperties",{"_index":2349,"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":18727,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["mapdotoentityproperties(entitydo",{"_index":2377,"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":9366,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdotoprovideroauthclient(name",{"_index":9367,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdtotoresponse",{"_index":14834,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapdtotoresponse(dto",{"_index":14835,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapelementtoentity",{"_index":7647,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapelementtoentity(modelentity",{"_index":7665,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapentitytodo",{"_index":2350,"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":2380,"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":8941,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobject(entity",{"_index":8959,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobjectproperties",{"_index":10980,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodomainobjectproperties(entity",{"_index":10988,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodto",{"_index":20057,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytodto(teamentity",{"_index":20058,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytoparenttype",{"_index":10451,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapentitytoparenttype(entity",{"_index":10459,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapexternalsourceentitytoexternalsource",{"_index":10981,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourceentitytoexternalsource(entity",{"_index":10990,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity",{"_index":10982,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity(externalsource",{"_index":10992,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery",{"_index":9109,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery(params",{"_index":9121,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto",{"_index":10452,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto(filerecordlistresponse",{"_index":10461,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto",{"_index":10453,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto(filerecordresponse",{"_index":10463,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordtofilerecordparams",{"_index":10534,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfilerecordtofilerecordparams(filerecord",{"_index":10538,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfootodomain",{"_index":23182,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapfromdtotolistresponse",{"_index":19444,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotolistresponse(systems",{"_index":19447,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse",{"_index":19445,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse(system",{"_index":19448,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromentitiestodtos",{"_index":17517,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitiestodtos(enities",{"_index":17519,"title":{},"body":{"classes/RoleMapper.html":{}}}],["mapfromentitiestodtos(entities",{"_index":19382,"title":{},"body":{"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitytodto",{"_index":17518,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromentitytodto(entity",{"_index":17522,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromoauthconfigdtotoresponse",{"_index":19446,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigdtotoresponse(oauthconfigdto",{"_index":19449,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigentitytodto",{"_index":19381,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoauthconfigentitytodto(oauthconfig",{"_index":19385,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoidcconfigentitytodto",{"_index":19403,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapfromoidcconfigentitytodto(systemid",{"_index":19406,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapgridelement",{"_index":7609,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelement(data",{"_index":7611,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelementtomodel",{"_index":7648,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgridelementtomodel(elementwithposition",{"_index":7667,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgrouptoclassinfodto",{"_index":11279,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgrouptoclassinfodto(group",{"_index":11283,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgroupuserentitytogroupuser",{"_index":10983,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupuserentitytogroupuser(entity",{"_index":10994,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity",{"_index":10984,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity(groupuser",{"_index":10997,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapimportuserfilterquerytodomain",{"_index":12853,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportuserfilterquerytodomain(query",{"_index":12854,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportusermatchscopetodomain",{"_index":12900,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapimportusermatchscopetodomain(match",{"_index":12902,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["maplearnroom",{"_index":7610,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplearnroom(metadata",{"_index":7613,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplesson",{"_index":17593,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maplessoncopytodomain",{"_index":6388,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessoncopytodomain(params",{"_index":6390,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessonelement",{"_index":8064,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maplessonelement(element",{"_index":8085,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maploginresponse",{"_index":16022,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maploginresponse(providerloginresponse",{"_index":16028,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maplti11toolconfigdotoentity",{"_index":9029,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoentity(lti11config",{"_index":9049,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoresponse",{"_index":9222,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigdotoresponse(externaltoolconfigdo",{"_index":9230,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigtodo",{"_index":9030,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigtodo(lti11config",{"_index":9051,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapmatchcreatortoresponse",{"_index":12901,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapmatchcreatortoresponse(matchcreator",{"_index":12904,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapnewsscopetodomain",{"_index":15019,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapnewsscopetodomain(query",{"_index":15024,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapoauth2configdotoentity",{"_index":9031,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configdotoentity(oauth2config",{"_index":9053,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo",{"_index":9032,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo(oauth2config",{"_index":9056,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2toolconfigdotoresponse",{"_index":9223,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauth2toolconfigdotoresponse(externaltoolconfigdo",{"_index":9232,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauthclientresponse",{"_index":16023,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapoauthclientresponse(oauthclient",{"_index":16030,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapped",{"_index":4466,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/DtoCreator.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":20465,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["mappedcolumnboard",{"_index":17641,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedconfig",{"_index":9171,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedcustomparameter",{"_index":9176,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappeddata",{"_index":11124,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["mappedelements",{"_index":7714,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mappedelements.includes(el",{"_index":7718,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mappedentity",{"_index":19422,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["mappedlesson",{"_index":17635,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedlocation",{"_index":20538,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mappedtask",{"_index":17618,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.availabledate",{"_index":17627,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.coursename",{"_index":17625,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.description",{"_index":17633,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.displaycolor",{"_index":17631,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.duedate",{"_index":17629,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtools",{"_index":20377,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{}}}],["mappedtype",{"_index":20540,"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":{},"controllers/GroupController.html":{},"interfaces/IDashboardRepo.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.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":5589,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapper.interface",{"_index":5581,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["mapper.interface.ts",{"_index":2549,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:5",{"_index":2555,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:7",{"_index":2552,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.mapsubmissionstoresponse(submissionitem",{"_index":8227,"title":{},"body":{"controllers/ElementController.html":{}}}],["mapper.maptoresponse(submissionitems",{"_index":3746,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["mapper.name",{"_index":13442,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mapper.ts",{"_index":23180,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper/account",{"_index":1122,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["mapper/course.mapper",{"_index":6624,"title":{},"body":{"controllers/CourseController.html":{}}}],["mapper/dashboard.mapper",{"_index":7377,"title":{},"body":{"controllers/DashboardController.html":{}}}],["mapper/group",{"_index":11221,"title":{},"body":{"injectables/GroupUc.html":{}}}],["mapper/identity",{"_index":13309,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["mapper/import",{"_index":12774,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["mapper/login",{"_index":14486,"title":{},"body":{"controllers/LoginController.html":{}}}],["mapper/migration.mapper",{"_index":13922,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["mapper/news.mapper",{"_index":14967,"title":{},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/TeamNewsController.html":{}}}],["mapper/oauth",{"_index":15770,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/provisioning",{"_index":16870,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["mapper/pseudonym.mapper",{"_index":16931,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["mapper/role.mapper",{"_index":17571,"title":{},"body":{"injectables/RoleService.html":{}}}],["mapper/room",{"_index":13860,"title":{},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["mapper/system",{"_index":19300,"title":{},"body":{"controllers/SystemController.html":{}}}],["mapper/team.mapper",{"_index":4675,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["mapper/token",{"_index":15424,"title":{},"body":{"injectables/OAuthService.html":{}}}],["mapper/tool",{"_index":20343,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["mapper/user",{"_index":12777,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/user.mapper",{"_index":21604,"title":{},"body":{"injectables/UserService.html":{}}}],["mapper/vc",{"_index":21847,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["mapper/video",{"_index":21732,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["mapperid",{"_index":13445,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mappers",{"_index":5574,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mapping",{"_index":23155,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mappseudonymtouserdata",{"_index":9642,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["mappseudonymtouserdata(pseudonym",{"_index":9665,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["mapredirectresponse",{"_index":16024,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapredirectresponse(redirect",{"_index":16031,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapreferencetoentity",{"_index":7649,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetoentity(modelentity",{"_index":7669,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel",{"_index":7650,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel(reference",{"_index":7671,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["maprequesttobasictoolconfig",{"_index":9110,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttobasictoolconfig(externaltoolconfigparams",{"_index":9124,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo",{"_index":9111,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo(customparameterparams",{"_index":9128,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo",{"_index":5912,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo(customparameterparams",{"_index":5916,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate",{"_index":9112,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate(externaltoolconfigparams",{"_index":9131,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate",{"_index":9113,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate(externaltoolconfigparams",{"_index":9134,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate",{"_index":9114,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate(externaltoolconfigparams",{"_index":9138,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate",{"_index":9115,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate(externaltoolconfigparams",{"_index":9141,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprolestoltiroles",{"_index":14611,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprolestoltiroles(rolenames",{"_index":14612,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprpcerrorresponsetodomainerror",{"_index":8353,"title":{},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["maprpcerrorresponsetodomainerror(errorobj",{"_index":8354,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["maps",{"_index":4564,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["mapsanisroletorolename",{"_index":18001,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapsanisroletorolename(source",{"_index":18005,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapscanresultparamstodto",{"_index":10127,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapscanresultparamstodto(scanresultparams",{"_index":10130,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapschoolexternaltoolrequest",{"_index":18148,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapschoolexternaltoolrequest(request",{"_index":18150,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapsearchparamstoquery",{"_index":21176,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchparamstoquery(searchparams",{"_index":21178,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchresult",{"_index":629,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsearchresult(accountentities",{"_index":633,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsessiontodto",{"_index":15736,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsessiontodto(session",{"_index":15737,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsortingquerytodomain",{"_index":9116,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapsortingquerytodomain(sortingquery",{"_index":9145,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapstringtoparenttype",{"_index":10454,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapstringtoparenttype(input",{"_index":10465,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapsubmissionstoresponse",{"_index":19074,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapsubmissionstoresponse(submissionitem",{"_index":19076,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptask",{"_index":17594,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maptaskcopytodomain",{"_index":6389,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcopytodomain(params",{"_index":6394,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcreatetodomain",{"_index":19699,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskcreatetodomain(params",{"_index":19701,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskelement",{"_index":8065,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptaskelement(element",{"_index":8087,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptasktowebcontentresource",{"_index":5000,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptasktowebcontentresource(task",{"_index":5023,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptaskupdatetodomain",{"_index":19700,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskupdatetodomain(params",{"_index":19703,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoallowedauthorizationentitytype",{"_index":10535,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowedauthorizationentitytype(type",{"_index":10540,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowemetadatatype",{"_index":14803,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptoallowemetadatatype(type",{"_index":14804,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptobaseresponse",{"_index":22019,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptobaseresponse(from",{"_index":22022,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoboardelement",{"_index":2701,"title":{},"body":{"entities/Board.html":{}}}],["maptoclassinfostolistresponse",{"_index":11111,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfostolistresponse(classinfos",{"_index":11114,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse",{"_index":11112,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse(classinfo",{"_index":11117,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse",{"_index":20362,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse(toolinfos",{"_index":20366,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse",{"_index":20363,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse(toolinfo",{"_index":20369,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocustomparameterentryresponse",{"_index":18164,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptocustomparameterentryresponse(entries",{"_index":18167,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptodo",{"_index":4356,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodo(entity",{"_index":4360,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodomain",{"_index":17536,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptodomain(query",{"_index":21353,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["maptodomain(rolename",{"_index":17537,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptodos",{"_index":4357,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodos(entities",{"_index":4362,"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":3898,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["maptoelementdtos",{"_index":8066,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptoelementdtos(elements",{"_index":8089,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptoentities",{"_index":4358,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentities(domainobjects",{"_index":4364,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity",{"_index":4359,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity(domainobject",{"_index":4366,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoexternalgroupdtos",{"_index":18002,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupdtos(source",{"_index":18007,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser",{"_index":18003,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser(relation",{"_index":18009,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto",{"_index":13069,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto(schooldo",{"_index":13071,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptoexternalschooldto(source",{"_index":18011,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaltoolresponse",{"_index":9224,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaltoolresponse(externaltool",{"_index":9234,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaluserdto",{"_index":13070,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(source",{"_index":18012,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(userdo",{"_index":13074,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptofilerecordlistresponse",{"_index":10128,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordlistresponse(filerecords",{"_index":10133,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse",{"_index":10129,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse(filerecord",{"_index":10135,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptogroupresponse",{"_index":11113,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptogroupresponse(resolvedgroup",{"_index":11120,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoinforesponse",{"_index":22020,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoinforesponse(from",{"_index":22023,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptointernal",{"_index":16896,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptointernal(dto",{"_index":16897,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptojoinresponse",{"_index":22021,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptojoinresponse(from",{"_index":22024,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptokenresponsetodto",{"_index":20282,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokenresponsetodto(response",{"_index":20285,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokeycloakidentityprovider",{"_index":16277,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptokeycloakidentityprovider(oidcconfig",{"_index":16280,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptologinresponse",{"_index":14533,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologinresponse(logindto",{"_index":14535,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologmessagedata",{"_index":15020,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptologmessagedata(news",{"_index":15026,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptometadataresponse",{"_index":6809,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptometadataresponse(course",{"_index":6810,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptooauthcurrentuser",{"_index":7067,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthcurrentuser(accountid",{"_index":7073,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthloginresponse",{"_index":14534,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptooauthloginresponse(logindto",{"_index":14537,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptoparameterlocation",{"_index":20518,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoparameterlocation(location",{"_index":20522,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoresolvedgroupdto",{"_index":11280,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["maptoresolvedgroupdto(group",{"_index":11285,"title":{},"body":{"classes/GroupUcMapper.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/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/ImportUserMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/NewsMapper.html":{},"classes/PseudonymMapper.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/ToolStatusResponseMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponse(account",{"_index":977,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponse(board",{"_index":3706,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["maptoresponse(card",{"_index":4081,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["maptoresponse(column",{"_index":4957,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["maptoresponse(copystatus",{"_index":6398,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptoresponse(dashboard",{"_index":7615,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maptoresponse(element",{"_index":2554,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["maptoresponse(importuser",{"_index":12857,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["maptoresponse(news",{"_index":15028,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptoresponse(pseudonym",{"_index":16947,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["maptoresponse(rolename",{"_index":17539,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptoresponse(schoolinfo",{"_index":18295,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["maptoresponse(sharetoken",{"_index":18750,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["maptoresponse(sharetokeninfo",{"_index":18705,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["maptoresponse(status",{"_index":3770,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["maptoresponse(submissionitems",{"_index":19078,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptoresponse(target",{"_index":19510,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["maptoresponse(taskwithstatus",{"_index":19706,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoresponse(user",{"_index":17413,"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":20364,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse(externaltools",{"_index":20372,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse",{"_index":20365,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse(externaltool",{"_index":20374,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolresponse",{"_index":18165,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":18169,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse",{"_index":18166,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse(externaltools",{"_index":18170,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosinglefileparams",{"_index":10536,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptosinglefileparams(params",{"_index":10544,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostatusresponse",{"_index":19140,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostatusresponse(submission",{"_index":19141,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostreamablefile",{"_index":10537,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostreamablefile(fileresponse",{"_index":10546,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptotoolconfigtype",{"_index":20519,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolconfigtype(launchdatatype",{"_index":20524,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype",{"_index":20520,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype(configtype",{"_index":20527,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse",{"_index":20521,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20530,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolreference",{"_index":20666,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreference(externaltool",{"_index":20667,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreferenceresponse",{"_index":5952,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponse(toolreference",{"_index":5956,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses",{"_index":5953,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses(toolreferences",{"_index":5960,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapupdatenewstodomain",{"_index":15021,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdatenewstodomain(params",{"_index":15030,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdaterequest",{"_index":9117,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapupdaterequest(externaltoolupdateparams",{"_index":9150,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapuserloginmigrationdotoresponse",{"_index":21177,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserloginmigrationdotoresponse(domainobject",{"_index":21181,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserstoresponse",{"_index":19075,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapuserstoresponse(user",{"_index":19079,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["march",{"_index":22753,"title":{},"body":{"license.html":{}}}],["marked",{"_index":7921,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["markedfordelete",{"_index":10115,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["markfilesownedbyuserfordeletion",{"_index":10391,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfilesownedbyuserfordeletion(userid",{"_index":10398,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfordelete",{"_index":10077,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["markfordeletion",{"_index":9937,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["marks",{"_index":22628,"title":{},"body":{"license.html":{}}}],["markunmigratedusersasoutdated",{"_index":18315,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["markunmigratedusersasoutdated(schoolid",{"_index":18333,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["masks",{"_index":22341,"title":{},"body":{"license.html":{}}}],["master",{"_index":23556,"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":12778,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["match.mapper.ts",{"_index":21352,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:20",{"_index":21355,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:8",{"_index":21354,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.params.ts",{"_index":20771,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.params.ts:7",{"_index":20773,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.response",{"_index":12835,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["match.response.ts",{"_index":21347,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["match.response.ts:19",{"_index":21375,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:22",{"_index":21372,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:25",{"_index":21370,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:28",{"_index":21371,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:35",{"_index":21374,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:41",{"_index":21373,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:44",{"_index":21348,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["match.response.ts:7",{"_index":21369,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match_matchedby",{"_index":12046,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["match_userid",{"_index":12044,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/UserRepo.html":{}}}],["matchancestors",{"_index":3651,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchancestors(desc",{"_index":3656,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchcreator",{"_index":12010,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["matchcreator.auto",{"_index":12916,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreator.manual",{"_index":12914,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreatorscope",{"_index":12053,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.auto",{"_index":12908,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.manual",{"_index":12910,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.none",{"_index":12912,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matched",{"_index":3846,"title":{},"body":{"classes/BusinessError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{}}}],["matched(matchedby",{"_index":12819,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["matchedby",{"_index":12008,"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":6893,"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":6376,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.length",{"_index":12038,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matches[1",{"_index":12039,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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/OAuth2ToolLaunchStrategy.html":{}}}],["matchingparameterentry?.value",{"_index":329,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["matchingparams",{"_index":9482,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchingparams.some((param",{"_index":9528,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchsinglerule",{"_index":17790,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchsinglerule(rules",{"_index":17795,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchtype",{"_index":12906,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["matchtype.auto",{"_index":12917,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchtype.manual",{"_index":12915,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["material",{"_index":11865,"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":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"license.html":{}}}],["materialfactory",{"_index":14793,"title":{"classes/MaterialFactory.html":{}},"body":{"classes/MaterialFactory.html":{}}}],["materialfactory.define(material",{"_index":14796,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["materialid",{"_index":11874,"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":{}}}],["materialids",{"_index":11885,"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":22594,"title":{},"body":{"license.html":{}}}],["materials",{"_index":11868,"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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/Material.html":{}}}],["materials.entity",{"_index":11866,"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":14797,"title":{"injectables/MaterialsRepo.html":{}},"body":{"injectables/MaterialsRepo.html":{}}}],["math.ceil(timedifference",{"_index":1767,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["math.floor(index",{"_index":7495,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["math.floor(math.random",{"_index":3559,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["math.round(math.random",{"_index":10121,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["matter",{"_index":23482,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["max",{"_index":3526,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["max(100",{"_index":16503,"title":{},"body":{"classes/PaginationParams.html":{}}}],["max(500",{"_index":14371,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["max_file_size",{"_index":11966,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["max_redirects",{"_index":11409,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["max_security_check_file_size",{"_index":11967,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["maxage",{"_index":18572,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["maxdelay",{"_index":13781,"title":{},"body":{"injectables/LdapService.html":{}}}],["maxexternaltoollogosizeinbytes",{"_index":8824,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["maximum",{"_index":1037,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["maxpagesize",{"_index":11623,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["maxredirects",{"_index":11449,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["maxsubmission",{"_index":12489,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxsubmissions",{"_index":3779,"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":2220,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["maybe",{"_index":9060,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["md",{"_index":22906,"title":{},"body":{"todo.html":{}}}],["me(@currentuser",{"_index":20836,"title":{},"body":{"controllers/UserController.html":{}}}],["me(authtoken",{"_index":1211,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["me(currentuser",{"_index":20831,"title":{},"body":{"controllers/UserController.html":{}}}],["me(userid",{"_index":21594,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["meaning",{"_index":22636,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["meaningful",{"_index":22254,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["means",{"_index":22222,"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":22447,"title":{},"body":{"license.html":{}}}],["measures",{"_index":22224,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mechanism",{"_index":23129,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["medium",{"_index":22471,"title":{},"body":{"license.html":{}}}],["meet",{"_index":22483,"title":{},"body":{"license.html":{}}}],["meeting",{"_index":2212,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{}}}],["meeting.config",{"_index":2090,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["meeting.config.ts",{"_index":2052,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:1",{"_index":2055,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:6",{"_index":2056,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting_id",{"_index":2208,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["meetingid",{"_index":2053,"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":2221,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["meets",{"_index":22387,"title":{},"body":{"license.html":{}}}],["member",{"_index":1193,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"classes/JwtExtractor.html":{},"interfaces/OauthCurrentUser.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/TeamsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["memberids",{"_index":12317,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["memberids.some((id",{"_index":12322,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["members",{"_index":1248,"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":10651,"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":18560,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mention",{"_index":23505,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["mentioned",{"_index":23100,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mentor",{"_index":7109,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["menu",{"_index":22385,"title":{},"body":{"license.html":{}}}],["merchantability",{"_index":22796,"title":{},"body":{"license.html":{}}}],["mere",{"_index":22372,"title":{},"body":{"license.html":{}}}],["merge",{"_index":22259,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mergeelementintoposition",{"_index":7407,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["mergeelementintoposition(element",{"_index":7439,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["merging",{"_index":22684,"title":{},"body":{"license.html":{}}}],["merlinreference",{"_index":11876,"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":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["message",{"_index":1216,"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":{},"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/LessonCopyUC.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/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.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":{},"injectables/TaskCopyUC.html":{},"classes/TooManyPseudonymsLoggableException.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":11960,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["messagekey",{"_index":2062,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["messages",{"_index":23500,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["messagewithcontext",{"_index":14462,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["met",{"_index":22422,"title":{},"body":{"license.html":{}}}],["meta",{"_index":11329,"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":2073,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["metadata",{"_index":2222,"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":6823,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:28",{"_index":6839,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:33",{"_index":6842,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:38",{"_index":6840,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:43",{"_index":6838,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:48",{"_index":6841,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:5",{"_index":6836,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:53",{"_index":6843,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:58",{"_index":6837,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:61",{"_index":6824,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["metadata.type",{"_index":7692,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["metadataprops",{"_index":5224,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["metadatas",{"_index":8317,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatas.some",{"_index":8321,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatatypemapper",{"_index":14800,"title":{"classes/MetadataTypeMapper.html":{}},"body":{"classes/MetadataTypeMapper.html":{}}}],["method",{"_index":235,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CommonCartridgeExportService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ILegacyLogger.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LessonCopyUC.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":15620,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["methodes",{"_index":23727,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["methodnotallowedexception",{"_index":8049,"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/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/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalToolElement.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementResponseMapper.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":{},"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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"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":16789,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics",{"_index":16786,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts",{"_index":16776,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:19",{"_index":16779,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:22",{"_index":16780,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["micro",{"_index":23657,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["microservice",{"_index":22986,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["microservices",{"_index":23720,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["middleware",{"_index":16790,"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":18515,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["middlewares",{"_index":16787,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["migrate",{"_index":11643,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":11646,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["migrate(skip",{"_index":13491,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["migrate(start",{"_index":13656,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migrate(userjwt",{"_index":16204,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated",{"_index":15277,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated.'})@apiresponse({type",{"_index":16103,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migratedaccounts",{"_index":13660,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migratedusers",{"_index":18378,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migratedusers.data.foreach((user",{"_index":18379,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrates",{"_index":21321,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrateschool",{"_index":18316,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateschool(externalid",{"_index":18335,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateuser",{"_index":16084,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{}}}],["migrateuser(currentuserid",{"_index":21418,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migrateuser(jwt",{"_index":16100,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrateuserlogin",{"_index":21035,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrateuserlogin(jwt",{"_index":21057,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrating",{"_index":21154,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration",{"_index":52,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"interfaces/ICleanOptions.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":{},"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":{},"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":21028,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.controller.ts",{"_index":21031,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:115",{"_index":21079,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:139",{"_index":21067,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:167",{"_index":21074,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:17",{"_index":21379,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:200",{"_index":21045,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:217",{"_index":21060,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:59",{"_index":21056,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:89",{"_index":21050,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.do.ts",{"_index":21119,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:11",{"_index":21125,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:13",{"_index":21128,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:15",{"_index":21124,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:17",{"_index":21123,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:5",{"_index":21126,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:7",{"_index":21127,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:9",{"_index":21129,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.dto",{"_index":13945,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{}}}],["migration.dto.ts",{"_index":15744,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:10",{"_index":15745,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:2",{"_index":15749,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:4",{"_index":15748,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:6",{"_index":15747,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:8",{"_index":15746,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.entity",{"_index":12187,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["migration.entity.ts",{"_index":21143,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:11",{"_index":21147,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:15",{"_index":21148,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:18",{"_index":21150,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:21",{"_index":21146,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:24",{"_index":21149,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:27",{"_index":21144,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:30",{"_index":21145,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.error",{"_index":15509,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{}}}],["migration.error.ts",{"_index":13723,"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":13728,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.error.ts:12",{"_index":15352,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:14",{"_index":15346,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:17",{"_index":14870,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:22",{"_index":14871,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:28",{"_index":14807,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:33",{"_index":14808,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:4",{"_index":18279,"title":{},"body":{"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:6",{"_index":13726,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.mapper",{"_index":16124,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migration.mapper.ts",{"_index":21175,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:13",{"_index":21182,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.mapper.ts:5",{"_index":21395,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:6",{"_index":21179,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.module",{"_index":21029,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.module.ts",{"_index":21195,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["migration.params",{"_index":21087,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.params.ts",{"_index":15499,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:13",{"_index":15500,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:17",{"_index":15502,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:8",{"_index":15501,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.repo.ts",{"_index":21199,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:14",{"_index":21200,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:19",{"_index":21204,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:27",{"_index":21201,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.response",{"_index":16121,"title":{},"body":{"controllers/OauthSSOController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration.response.ts",{"_index":21222,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:1",{"_index":21398,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:12",{"_index":21228,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:17",{"_index":21225,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:22",{"_index":21227,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:27",{"_index":21224,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:32",{"_index":21223,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:6",{"_index":21399,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:7",{"_index":21226,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.rule.ts",{"_index":21238,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:11",{"_index":21241,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:17",{"_index":21240,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:8",{"_index":21239,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.service",{"_index":13315,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts",{"_index":13651,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:106",{"_index":18343,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:111",{"_index":21266,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:119",{"_index":21422,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:12",{"_index":18320,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:129",{"_index":21250,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:130",{"_index":18326,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:135",{"_index":21410,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:141",{"_index":18338,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:147",{"_index":18323,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:149",{"_index":21252,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:158",{"_index":18329,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:159",{"_index":21407,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:165",{"_index":18332,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:169",{"_index":21412,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:171",{"_index":21270,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:18",{"_index":13657,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:180",{"_index":21256,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:188",{"_index":21258,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:194",{"_index":21260,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:20",{"_index":18345,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:21",{"_index":21425,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:214",{"_index":21254,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:23",{"_index":21427,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:25",{"_index":21424,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:27",{"_index":21426,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:28",{"_index":18336,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:29",{"_index":21264,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:42",{"_index":21415,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:43",{"_index":18341,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:48",{"_index":13655,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:54",{"_index":21417,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:81",{"_index":18334,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:82",{"_index":21268,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:9",{"_index":13653,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:91",{"_index":21416,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:95",{"_index":21262,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:97",{"_index":21419,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.uc",{"_index":21381,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.uc.ts",{"_index":4478,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:11",{"_index":4485,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:14",{"_index":17436,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:15",{"_index":20269,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:155",{"_index":21311,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:18",{"_index":21303,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:19",{"_index":4487,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:21",{"_index":18906,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:23",{"_index":20272,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:24",{"_index":17439,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:30",{"_index":21309,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:40",{"_index":21307,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:42",{"_index":18904,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:47",{"_index":17437,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:51",{"_index":20270,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:58",{"_index":4490,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:60",{"_index":21305,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:78",{"_index":21312,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/controller/dto/oauth2",{"_index":15498,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration/controller/dto/request/page",{"_index":16479,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["migration/controller/dto/request/school",{"_index":18277,"title":{},"body":{"classes/SchoolIdParams.html":{}}}],["migration/controller/dto/request/user",{"_index":21171,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["migration/controller/dto/response/page",{"_index":16492,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["migration/controller/dto/response/user",{"_index":21221,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration/controller/user",{"_index":21030,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration/error",{"_index":21463,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/error/oauth",{"_index":15340,"title":{},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{}}}],["migration/error/school",{"_index":18304,"title":{},"body":{"classes/SchoolMigrationError.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["migration/error/user",{"_index":21015,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["migration/loggable/user",{"_index":21166,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["migration/mapper/page",{"_index":16470,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["migration/mapper/user",{"_index":21174,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration/service",{"_index":16214,"title":{},"body":{"injectables/OauthUc.html":{}}}],["migration/service/dto",{"_index":16115,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/UserMigrationMapper.html":{}}}],["migration/service/dto/migration.dto.ts",{"_index":14828,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/migration.dto.ts:2",{"_index":14830,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/page",{"_index":16459,"title":{},"body":{"classes/PageContentDto.html":{}}}],["migration/service/dto/school",{"_index":18307,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["migration/service/migration",{"_index":14814,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["migration/service/school",{"_index":18311,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration/service/user",{"_index":21229,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration/success",{"_index":21467,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/uc/close",{"_index":4477,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration/uc/dto/user",{"_index":21197,"title":{},"body":{"interfaces/UserLoginMigrationQuery.html":{}}}],["migration/uc/restart",{"_index":17434,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration/uc/start",{"_index":18900,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration/uc/toggle",{"_index":20267,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration/uc/user",{"_index":21299,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/user",{"_index":18532,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationalreadyactivatedexception",{"_index":13734,"title":{"classes/MigrationAlreadyActivatedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["migrationbody",{"_index":13935,"title":{"classes/MigrationBody.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/MigrationBody.html":{}}}],["migrationbody.oauthmigrationfinished",{"_index":13956,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationmandatory",{"_index":13955,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationpossible",{"_index":13954,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationcheckservice",{"_index":14813,"title":{"injectables/MigrationCheckService.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationconsentredirect",{"_index":15436,"title":{},"body":{"injectables/OAuthService.html":{}}}],["migrationdto",{"_index":13951,"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":21336,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationdto.redirect.includes('migration/error",{"_index":21335,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationerror",{"_index":16142,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromsource",{"_index":16144,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromtarget",{"_index":16145,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler",{"_index":16085,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler(error",{"_index":16105,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationflags",{"_index":13930,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationmapper",{"_index":13915,"title":{"injectables/MigrationMapper.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{}}}],["migrationmaybecompleted",{"_index":14842,"title":{"classes/MigrationMayBeCompleted.html":{}},"body":{"classes/MigrationMayBeCompleted.html":{}}}],["migrationmaynotbecompleted",{"_index":14850,"title":{"classes/MigrationMayNotBeCompleted.html":{}},"body":{"classes/MigrationMayNotBeCompleted.html":{}}}],["migrationpage",{"_index":21093,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.data.map",{"_index":21096,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.total",{"_index":21098,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse",{"_index":13946,"title":{"classes/MigrationResponse.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{}}}],["migrationresponses",{"_index":21095,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse})@apiunauthorizedresponse",{"_index":13937,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationresponse})@apiunauthorizedresponse()@apinotfoundresponse({description",{"_index":13931,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrations",{"_index":21032,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationsflags",{"_index":13932,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["mikro",{"_index":96,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"injectables/AccountRepo.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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalStateEntity.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mikroorm",{"_index":7804,"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":22898,"title":{},"body":{"todo.html":{}}}],["mikroormmodule",{"_index":10579,"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":10607,"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":14895,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmoduleasyncoptions",{"_index":14890,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmodulesyncoptions",{"_index":10580,"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":23154,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["milliseconds",{"_index":18377,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["mime",{"_index":10026,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["mimetype",{"_index":1487,"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":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"interfaces/S3Config-1.html":{}}}],["min",{"_index":3470,"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":3475,"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":16502,"title":{},"body":{"classes/PaginationParams.html":{}}}],["mind",{"_index":23632,"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":22933,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_password=miniouser",{"_index":22947,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_user=`miniouser",{"_index":22946,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minios3storage",{"_index":22943,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minus",{"_index":14912,"title":{},"body":{"classes/MongoPatterns.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["minwidth",{"_index":16427,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["misrepresentation",{"_index":22620,"title":{},"body":{"license.html":{}}}],["missed",{"_index":7028,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["missing",{"_index":1127,"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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["missing.loggable",{"_index":18398,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing_tool_parameter_value",{"_index":14876,"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":13731,"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":15138,"title":{},"body":{"classes/NewsScope.html":{}}}],["missmatches",{"_index":19834,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["mixing",{"_index":13834,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mixwith",{"_index":22140,"title":{},"body":{"dependencies.html":{}}}],["mkdir",{"_index":10329,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdir(folderpath",{"_index":10334,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp",{"_index":10330,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp(dirpath",{"_index":10338,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mm",{"_index":14444,"title":{},"body":{"modules/LoggerModule.html":{}}}],["mnf:copyrightandotherrestrictions",{"_index":5262,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:description",{"_index":5264,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:general",{"_index":5258,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:lom",{"_index":5257,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:rights",{"_index":5261,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:string",{"_index":5260,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:title",{"_index":5259,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:value",{"_index":5263,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mocha",{"_index":23030,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mocha's",{"_index":23324,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mock",{"_index":8716,"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":16293,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock/oidc",{"_index":16292,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock:0.6.0powershell",{"_index":23539,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock:0.6.0setup",{"_index":23540,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock_issuer",{"_index":19358,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mock_type",{"_index":19356,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockbaseurl",{"_index":8713,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mockcomment",{"_index":8718,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mocked",{"_index":23429,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocking",{"_index":23389,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockreturnvalueonce",{"_index":23427,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocks",{"_index":23351,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocksecret",{"_index":19352,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockservice",{"_index":23406,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockservice.getuser.mockreturnvalueonce(resultuser",{"_index":23422,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mode",{"_index":14849,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["model",{"_index":7047,"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":7662,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["modelentity.gridelements.init",{"_index":7687,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.isinitialized",{"_index":7686,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.remove(el",{"_index":7719,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.references.loaditems",{"_index":7679,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.title",{"_index":7685,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.user.id",{"_index":7691,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.xpos",{"_index":7682,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.ypos",{"_index":7683,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["models",{"_index":15203,"title":{},"body":{"injectables/NewsUc.html":{}}}],["moderator",{"_index":2177,"title":{},"body":{"classes/BBBJoinConfig.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["moderatorcount",{"_index":2223,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["moderatormustapprovejoinrequests",{"_index":8034,"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":2076,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["modification",{"_index":22337,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["modifications",{"_index":22390,"title":{},"body":{"license.html":{}}}],["modified",{"_index":21038,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["modifies",{"_index":22487,"title":{},"body":{"license.html":{}}}],["modify",{"_index":22308,"title":{},"body":{"license.html":{}}}],["modifying",{"_index":22363,"title":{},"body":{"license.html":{}}}],["modularization",{"_index":22928,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["modularize",{"_index":18930,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"injectables/ToolPermissionHelper.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":23410,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(featureundertest",{"_index":23407,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(mockservice",{"_index":23408,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.ts",{"_index":23184,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/application",{"_index":23387,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module/repo",{"_index":23214,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/uc",{"_index":23209,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduleref",{"_index":23395,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(catscontroller",{"_index":23399,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(sampleservice",{"_index":23398,"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/AuthorizationReferenceModule.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":{},"injectables/FeathersRosterService.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"interfaces/UserMetdata.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/account",{"_index":1564,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["modules/account/account",{"_index":18520,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/account/account.module",{"_index":16842,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/account/services/account.service",{"_index":13658,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{}}}],["modules/account/services/dto",{"_index":1732,"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":{}}}],["modules/account/services/dto/account.dto",{"_index":981,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["modules/authentication",{"_index":2930,"title":{},"body":{"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/GroupController.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":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["modules/authentication/authentication",{"_index":18521,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/authentication/authentication.module",{"_index":10423,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{}}}],["modules/authentication/decorator/auth.decorator",{"_index":11368,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["modules/authentication/interface",{"_index":16215,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserService.html":{}}}],["modules/authentication/interface/user",{"_index":17391,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["modules/authentication/mapper",{"_index":21603,"title":{},"body":{"injectables/UserService.html":{}}}],["modules/authentication/services/authentication.service",{"_index":16212,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/authorization",{"_index":2725,"title":{},"body":{"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/PseudonymApiModule.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SchoolExternalToolUc.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":{},"modules/VideoConferenceModule.html":{}}}],["modules/authorization/authorization",{"_index":10424,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["modules/authorization/authorization.module.ts",{"_index":23221,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/authorization/domain",{"_index":6072,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/board",{"_index":1957,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsService.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/board/board",{"_index":18522,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/board/service/column",{"_index":3005,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["modules/class",{"_index":10943,"title":{},"body":{"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{}}}],["modules/class/domain",{"_index":11216,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["modules/class/entity",{"_index":4307,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["modules/class/entity/class.entity",{"_index":6513,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/collaborative",{"_index":4544,"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":{}}}],["modules/copy",{"_index":3009,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["modules/feathers/feathers",{"_index":23219,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers.module.ts",{"_index":23220,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/files",{"_index":1358,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.html":{},"classes/FileRecordFactory.html":{},"interfaces/IServerConfig.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["modules/files/entity",{"_index":18494,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/group",{"_index":8432,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisResponseMapper.html":{}}}],["modules/group/entity/group.entity",{"_index":6515,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/group/group",{"_index":18523,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom",{"_index":16958,"title":{},"body":{"modules/PseudonymModule.html":{},"injectables/ShareTokenUC.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/learnroom/common",{"_index":12235,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["modules/learnroom/controller/dto/lesson/lesson",{"_index":6400,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/learnroom/learnroom",{"_index":18524,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom/service",{"_index":190,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/FeathersRosterService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/learnroom/types",{"_index":3444,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["modules/legacy",{"_index":191,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/CommonToolModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"modules/ImportUserModule.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.html":{},"injectables/PseudonymUc.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":{}}}],["modules/lesson",{"_index":13855,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{}}}],["modules/lesson/lesson",{"_index":18525,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/lesson/service",{"_index":3013,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/lesson/types",{"_index":6402,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/lti",{"_index":15957,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{}}}],["modules/management/management.module",{"_index":18495,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/management/uc/database",{"_index":20221,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["modules/news",{"_index":18526,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["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":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/oauth/controller/dto/authorization.params",{"_index":11505,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["modules/oauth/loggable",{"_index":13097,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["modules/oauth/oauth",{"_index":18527,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/oauth/oauth.module",{"_index":1565,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["modules/oauth/service/dto/cookies.dto",{"_index":11473,"title":{},"body":{"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/dto/hydra.redirect.dto",{"_index":11431,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/oauth.service",{"_index":15506,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning",{"_index":15420,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning/dto",{"_index":15421,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/pseudonym",{"_index":4592,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolLaunchModule.html":{}}}],["modules/pseudonym/pseudonym",{"_index":18538,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/pseudonym/service",{"_index":15983,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["modules/rocketchat",{"_index":18528,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/role",{"_index":1566,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{}}}],["modules/role/role.module",{"_index":4646,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/UserModule.html":{}}}],["modules/role/service/dto/role.dto",{"_index":4552,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleMapper.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/service/role.service",{"_index":4674,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"modules/RoleModule.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/uc/role.uc",{"_index":17533,"title":{},"body":{"modules/RoleModule.html":{}}}],["modules/server",{"_index":1736,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["modules/server/server.config",{"_index":805,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["modules/sharing/domainobject/share",{"_index":18686,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["modules/sharing/sharing.module",{"_index":18529,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system",{"_index":1567,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{}}}],["modules/system/controller/dto/oauth",{"_index":17072,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/controller/dto/system.filter.params",{"_index":19293,"title":{},"body":{"controllers/SystemController.html":{}}}],["modules/system/controller/system.controller",{"_index":19276,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/system/mapper/system",{"_index":19419,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["modules/system/mapper/system.mapper",{"_index":19470,"title":{},"body":{"injectables/SystemService.html":{}}}],["modules/system/service",{"_index":13374,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/UserMigrationService.html":{}}}],["modules/system/service/dto",{"_index":12677,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["modules/system/service/dto/oauth",{"_index":19324,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/service/dto/oidc",{"_index":19408,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["modules/system/service/dto/system.dto",{"_index":16213,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["modules/system/service/system",{"_index":13375,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["modules/system/service/system.service",{"_index":19398,"title":{},"body":{"modules/SystemModule.html":{},"injectables/SystemUc.html":{}}}],["modules/system/system",{"_index":18530,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system/system.module",{"_index":16843,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/system/uc/system.uc",{"_index":19277,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/task",{"_index":13869,"title":{},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{}}}],["modules/task/controller/dto/task",{"_index":6403,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/task/service",{"_index":3014,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/task/task",{"_index":18531,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/task/types",{"_index":6404,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/teams/teams",{"_index":18537,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/teams/teams.module",{"_index":20168,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["modules/tool",{"_index":1955,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{}}}],["modules/tool/common/domain",{"_index":5798,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["modules/tool/common/entity",{"_index":9059,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["modules/tool/common/enum",{"_index":5799,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolScope.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/common/enum/tool",{"_index":5872,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["modules/tool/common/interface",{"_index":9010,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["modules/tool/context",{"_index":5800,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IRepoLoader.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/external",{"_index":7271,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersRosterService.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolExternalToolRepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/school",{"_index":5875,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/FeathersRosterService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/tool",{"_index":15958,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/user",{"_index":4593,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"interfaces/IServerConfig.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.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":{},"modules/PseudonymModule.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.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":{}}}],["modules/user/service/user",{"_index":20900,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["modules/user/uc/dto/user.dto",{"_index":21344,"title":{},"body":{"classes/UserMapper.html":{}}}],["modules/user/user",{"_index":18533,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/video",{"_index":18534,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["moduluslength",{"_index":7000,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["moment",{"_index":15250,"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":13013,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["mongo_url=mongodb://172.29.173.128:27030/rocketchat",{"_index":23590,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongod",{"_index":22934,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mongodatabasemoduleoptions",{"_index":10647,"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":11754,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongoimport",{"_index":11741,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongomemorydatabasemodule",{"_index":10645,"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":10654,"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":23192,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongoose",{"_index":9925,"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":13012,"title":{"classes/MongoPatterns.html":{}},"body":{"classes/ImportUserScope.html":{},"classes/MongoPatterns.html":{},"injectables/UserRepo.html":{}}}],["moodle",{"_index":22154,"title":{},"body":{"dependencies.html":{}}}],["more",{"_index":1855,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/TaskCopyUC.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":22656,"title":{},"body":{"license.html":{}}}],["mostly",{"_index":23723,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mount",{"_index":22217,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounted",{"_index":22209,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounts",{"_index":22880,"title":{},"body":{"todo.html":{}}}],["mountsdescription",{"_index":1463,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["move",{"_index":3405,"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":4107,"title":{},"body":{"injectables/CardService.html":{}}}],["move(child",{"_index":3409,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["move(column",{"_index":4973,"title":{},"body":{"injectables/ColumnService.html":{}}}],["move(element",{"_index":5601,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["moveable",{"_index":23651,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["movecard",{"_index":3970,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["movecard(urlparams",{"_index":3996,"title":{},"body":{"controllers/CardController.html":{}}}],["movecardbodyparams",{"_index":3997,"title":{"classes/MoveCardBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/MoveCardBodyParams.html":{}}}],["movecolumn",{"_index":4912,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumn(urlparams",{"_index":4925,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumnbodyparams",{"_index":4926,"title":{"classes/MoveColumnBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/MoveColumnBodyParams.html":{}}}],["movecontentelementbody",{"_index":8204,"title":{"classes/MoveContentElementBody.html":{}},"body":{"controllers/ElementController.html":{},"classes/MoveContentElementBody.html":{}}}],["moved",{"_index":16197,"title":{},"body":{"injectables/OauthUc.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["moveelement",{"_index":4150,"title":{},"body":{"injectables/CardUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"controllers/ElementController.html":{}}}],["moveelement(from",{"_index":7441,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["moveelement(undefined",{"_index":7366,"title":{},"body":{"controllers/DashboardController.html":{}}}],["moveelement(urlparams",{"_index":8203,"title":{},"body":{"controllers/ElementController.html":{}}}],["moveelement(userid",{"_index":4166,"title":{},"body":{"injectables/CardUc.html":{}}}],["moveelementondashboard",{"_index":7759,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementondashboard(dashboardid",{"_index":7765,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementparams",{"_index":7368,"title":{"classes/MoveElementParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moveelementpositionparams",{"_index":14928,"title":{"classes/MoveElementPositionParams.html":{}},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moves",{"_index":11642,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["movetotrash",{"_index":17826,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["movetotrash(paths",{"_index":17842,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["moving",{"_index":23733,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mps",{"_index":11622,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["ms",{"_index":11657,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TimeoutInterceptor.html":{}}}],["msg",{"_index":3884,"title":{},"body":{"modules/CacheWrapperModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/RedisModule.html":{}}}],["msgs",{"_index":1169,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["much",{"_index":23332,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["multi",{"_index":3487,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["multiple",{"_index":2146,"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":13480,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["muted",{"_index":21982,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["muteonstart",{"_index":2077,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["mutex",{"_index":22087,"title":{},"body":{"dependencies.html":{}}}],["n/a",{"_index":21337,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["n21",{"_index":1961,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/FederalStateService.html":{},"injectables/IdTokenService.html":{},"classes/LegacySchoolDo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RecursiveDeleteVisitor.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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"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/GetFileResponse.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.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/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/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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.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":{},"classes/RpcMessageProducer.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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":{},"classes/SortHelper.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/SubmissionsResponse.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.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":8715,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["name.length",{"_index":10080,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["name.mapper",{"_index":12863,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["name.mapper.ts",{"_index":17535,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:12",{"_index":17538,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:5",{"_index":17540,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.match",{"_index":6374,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["name.tolowercase",{"_index":5399,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["named",{"_index":22250,"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":23512,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nameonly",{"_index":7902,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["names",{"_index":5022,"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":23491,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["naming",{"_index":22921,"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":11506,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/OauthUc.html":{},"injectables/TokenGenerator.html":{},"dependencies.html":{}}}],["nanoid(12",{"_index":20279,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["nanoid(15",{"_index":11514,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["nanoid(16",{"_index":16217,"title":{},"body":{"injectables/OauthUc.html":{}}}],["narrowed",{"_index":11353,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["native",{"_index":22172,"title":{},"body":{"dependencies.html":{}}}],["nature",{"_index":22498,"title":{},"body":{"license.html":{}}}],["nbf",{"_index":13053,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["ne",{"_index":10226,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["necessary",{"_index":19835,"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":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"entities/Submission.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.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":1950,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":19960,"title":{},"body":{"injectables/TaskUC.html":{}}}],["needs",{"_index":1946,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"entities/Course.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["nest",{"_index":7803,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/ErrorLogger.html":{},"injectables/FeathersRosterService.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"interfaces/Options.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":22911,"title":{},"body":{"todo.html":{}}}],["nest:build",{"_index":22970,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:build:all",{"_index":22973,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console",{"_index":22997,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console:dev",{"_index":22998,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:build",{"_index":22992,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:serve",{"_index":22993,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint",{"_index":23013,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint:fix",{"_index":23016,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:prebuild",{"_index":22969,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start",{"_index":22976,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:debug",{"_index":22981,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:dev",{"_index":22978,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:files",{"_index":22988,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:prod",{"_index":22983,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test",{"_index":23006,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:all",{"_index":23007,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:api",{"_index":23008,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:cov",{"_index":23010,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:debug",{"_index":23012,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:unit",{"_index":23009,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:watch",{"_index":23011,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest_log_level",{"_index":11971,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["nestapp.get(rocketchatservice",{"_index":23229,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["nested",{"_index":16558,"title":{},"body":{"injectables/PermissionService.html":{}}}],["nestexpress.set('feathersapp",{"_index":9758,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["nestinterceptor",{"_index":8162,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["nestjs",{"_index":3492,"title":{"additional-documentation/nestjs-application.html":{}},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"modules/ErrorModule.html":{},"interfaces/ICleanOptions.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":1155,"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/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":3871,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{}}}],["nestjs/clithen",{"_index":23035,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.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/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":{},"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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":{},"dependencies.html":{}}}],["nestjs/common/decorators",{"_index":15557,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["nestjs/common/decorators/core/injectable.decorator",{"_index":4492,"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":6509,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["nestjs/common/exceptions/not",{"_index":8581,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["nestjs/config",{"_index":801,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.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/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"dependencies.html":{}}}],["nestjs/core",{"_index":8370,"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":1560,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"dependencies.html":{}}}],["nestjs/microservices",{"_index":22061,"title":{},"body":{"dependencies.html":{}}}],["nestjs/passport",{"_index":1562,"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":22063,"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":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.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/ExternalSourceResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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/GroupController.html":{},"classes/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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":{},"classes/OauthLoginResponse.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":{},"controllers/PseudonymController.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.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/SubmissionsResponse.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":{},"controllers/ToolReferenceController.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":20220,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["nestjs/testing.test",{"_index":23390,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nestmodule",{"_index":18517,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nestwinston",{"_index":23255,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["net",{"_index":22229,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["network",{"_index":22281,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["neuen",{"_index":4815,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["never",{"_index":8050,"title":{},"body":{"classes/DomainObjectFactory.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FilesRepo.html":{},"classes/GuardAgainst.html":{},"injectables/LdapStrategy.html":{},"injectables/NewsRepo.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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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/SchoolSpecificFileCopyServiceFactory.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":{},"injectables/SubmissionRule.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":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"entities/User.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.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":{}}}],["newconfig",{"_index":13454,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfig.idphint",{"_index":13452,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs",{"_index":13360,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.foreach((newconfig",{"_index":13449,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.some((newconfig",{"_index":13456,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newelement",{"_index":7532,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newentity",{"_index":2410,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/GroupRepo.html":{}}}],["newentity._id",{"_index":2426,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newentity.id",{"_index":2425,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newfactory",{"_index":2517,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newgroupname",{"_index":7488,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newid",{"_index":6325,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newid}/${name",{"_index":6328,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newlanguage",{"_index":21597,"title":{},"body":{"injectables/UserService.html":{}}}],["newlist",{"_index":2706,"title":{},"body":{"entities/Board.html":{}}}],["newname",{"_index":6660,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["newnonoptionalparamnames",{"_index":9522,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.includes(name",{"_index":9525,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.some((name",{"_index":9526,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams",{"_index":9520,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams.map((parameter",{"_index":9523,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam",{"_index":9513,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.isoptional",{"_index":9514,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.name",{"_index":9503,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.regex",{"_index":9531,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.scope",{"_index":9533,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.type",{"_index":9532,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams",{"_index":9476,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.filter((parameter",{"_index":9521,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.find((p",{"_index":9529,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some",{"_index":9512,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some((newparam",{"_index":9501,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newpath",{"_index":1386,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["newpropsfactory",{"_index":2515,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newresource",{"_index":5137,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newresource.caninline",{"_index":5140,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newrooms",{"_index":7512,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newrooms.foreach((room",{"_index":7514,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["news",{"_index":6858,"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":15041,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.controller",{"_index":15073,"title":{},"body":{"modules/NewsModule.html":{}}}],["news.controller.ts",{"_index":20070,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.controller.ts:19",{"_index":20075,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.createdat",{"_index":15047,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.createinstance(targetmodel",{"_index":15182,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news.displayat",{"_index":15042,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.id",{"_index":15039,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.params.ts",{"_index":7033,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["news.params.ts:14",{"_index":10689,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["news.params.ts:15",{"_index":7050,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:17",{"_index":20783,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:22",{"_index":7037,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:25",{"_index":20779,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:30",{"_index":7042,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:32",{"_index":20781,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:37",{"_index":7048,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:44",{"_index":7045,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.permissions",{"_index":15049,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.source",{"_index":15043,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.sourcedescription",{"_index":15044,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.target.id",{"_index":15045,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.targetmodel",{"_index":15046,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.title",{"_index":15040,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updatedat",{"_index":15048,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updater",{"_index":15050,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news[key",{"_index":15197,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news].params.ts",{"_index":23242,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news].response.dto",{"_index":23244,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news_edit",{"_index":15199,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news_sources",{"_index":15007,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["news_sources[number",{"_index":15011,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["newscontroller",{"_index":14947,"title":{"controllers/NewsController.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["newscount",{"_index":15188,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable",{"_index":14990,"title":{"classes/NewsCrudOperationLoggable.html":{}},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.create",{"_index":15184,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.delete",{"_index":15201,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.update",{"_index":15198,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsentities",{"_index":15101,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentities.filter((news",{"_index":15105,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentity",{"_index":15097,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsid",{"_index":15215,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["newslist",{"_index":14978,"title":{},"body":{"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map((news",{"_index":14981,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map(async",{"_index":15191,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newslistresponse",{"_index":14970,"title":{"classes/NewsListResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"controllers/TeamNewsController.html":{}}}],["newslistresponse(dtolist",{"_index":14982,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper",{"_index":14966,"title":{"classes/NewsMapper.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.mapcreatenewstodomain(params",{"_index":14976,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapnewsscopetodomain(scope",{"_index":14980,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.maptologmessagedata(this.news",{"_index":15000,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["newsmapper.maptoresponse(news",{"_index":14977,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapupdatenewstodomain(params",{"_index":14987,"title":{},"body":{"controllers/NewsController.html":{}}}],["newsmodule",{"_index":15063,"title":{"modules/NewsModule.html":{}},"body":{"modules/NewsModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["newspermission",{"_index":15163,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsrepo",{"_index":15068,"title":{"injectables/NewsRepo.html":{}},"body":{"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["newsresponse",{"_index":14971,"title":{"classes/NewsResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{}}}],["newsrule",{"_index":23695,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newsscope",{"_index":15090,"title":{"classes/NewsScope.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{}}}],["newstarget",{"_index":6849,"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":15080,"title":{"interfaces/NewsTargetFilter.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["newstargetmodel",{"_index":6850,"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":6876,"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":6881,"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":6878,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newsuc",{"_index":14968,"title":{"injectables/NewsUc.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newsuc.getrequiredpermissions(ispublished",{"_index":15194,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsuc.getrequiredpermissions(unpublished",{"_index":15186,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsurlparams",{"_index":14952,"title":{"classes/NewsUrlParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsUrlParams.html":{}}}],["newtool",{"_index":9493,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.parameters",{"_index":9497,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.version",{"_index":9499,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newuser",{"_index":23677,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newvar",{"_index":1284,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["nexboard",{"_index":11871,"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/NexboardService.html":{}}}],["nexboard.id",{"_index":15225,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.publiclink",{"_index":15226,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardresponse",{"_index":15222,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardservice",{"_index":14207,"title":{"injectables/NexboardService.html":{}},"body":{"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":{},"injectables/ColumnBoardCopyService.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":{},"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":{},"classes/RecursiveCopyVisitor.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":17398,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["next.handle().pipe(tap",{"_index":8166,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["nextcloud",{"_index":11571,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISchoolProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["nextcloud.client",{"_index":15259,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudclient",{"_index":4585,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudgroups",{"_index":11326,"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":15257,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy",{"_index":4586,"title":{"injectables/NextcloudStrategy.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy.generategroupfoldername(team.id",{"_index":15274,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudtool",{"_index":15287,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ni_",{"_index":18014,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["nice",{"_index":16437,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["node",{"_index":3280,"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":3194,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.entity.ts",{"_index":4059,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["node.entity.ts:10",{"_index":8660,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"entities/RichTextElementNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:12",{"_index":9856,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{}}}],["node.entity.ts:13",{"_index":17485,"title":{},"body":{"entities/RichTextElementNode.html":{}}}],["node.entity.ts:15",{"_index":14344,"title":{},"body":{"entities/LinkElementNode.html":{}}}],["node.entity.ts:16",{"_index":4060,"title":{},"body":{"entities/CardNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:19",{"_index":4774,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:22",{"_index":4772,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:9",{"_index":9857,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{},"entities/SubmissionContainerElementNode.html":{}}}],["node.js",{"_index":22206,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["node.level",{"_index":3636,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.pathofchildren",{"_index":3638,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo",{"_index":3343,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.repo.ts",{"_index":3622,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:19",{"_index":3628,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:30",{"_index":3630,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:6",{"_index":3625,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:9",{"_index":3626,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.title",{"_index":3363,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["node.usedobuilder(this",{"_index":3270,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["node:fs/promises",{"_index":13697,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["node_env",{"_index":12233,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["node_env=test",{"_index":18581,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nodeclam",{"_index":1302,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["nodeclam().init",{"_index":1319,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["nodeenvtype",{"_index":12236,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["nodejs.timeout",{"_index":17914,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nodeps",{"_index":22151,"title":{},"body":{"dependencies.html":{}}}],["nodeps.git",{"_index":22153,"title":{},"body":{"dependencies.html":{}}}],["nodes",{"_index":3631,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.filter((n",{"_index":3652,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.map((node",{"_index":3640,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nofutureavailabledate",{"_index":19827,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{}}}],["non",{"_index":8244,"title":{},"body":{"injectables/ElementUc.html":{},"classes/MongoPatterns.html":{},"classes/StorageProviderEncryptedStringType.html":{},"license.html":{},"todo.html":{}}}],["noncommercially",{"_index":22527,"title":{},"body":{"license.html":{}}}],["none",{"_index":1602,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CustomLtiProperty.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/LtiTool.html":{},"classes/OauthClientBody.html":{},"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nonemptytargets",{"_index":15208,"title":{},"body":{"injectables/NewsUc.html":{}}}],["nonoptionalparamnames",{"_index":9518,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.includes(name",{"_index":9527,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.some((name",{"_index":9524,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams",{"_index":9516,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams.map((parameter",{"_index":9519,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["normal",{"_index":1952,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"license.html":{}}}],["normalizepassword",{"_index":1710,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizepassword(password",{"_index":1723,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername",{"_index":1711,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername(username",{"_index":1725,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normally",{"_index":22556,"title":{},"body":{"license.html":{}}}],["nosuchbucket",{"_index":17879,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nosuchkey",{"_index":17873,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["not_found",{"_index":15331,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["notation",{"_index":2528,"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":19994,"title":{},"body":{"injectables/TaskUC.html":{}}}],["notfound",{"_index":7771,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["notfounderror",{"_index":14699,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfounderror(`ltitool",{"_index":14703,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfoundexception",{"_index":2644,"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":2687,"title":{},"body":{"entities/Board.html":{}}}],["notfoundexception('could",{"_index":8610,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/TaskCopyUC.html":{}}}],["notfoundexception('no",{"_index":7505,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["notfoundexception('nosuchkey",{"_index":17875,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["notfoundexception('some",{"_index":4119,"title":{},"body":{"injectables/CardService.html":{}}}],["notfoundexception(`school",{"_index":21433,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["notfoundexception(`the",{"_index":10606,"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":3351,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["notfoundexception(`unable",{"_index":15961,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["notfoundexception})@apibody({required",{"_index":4919,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["notfoundexception})@apiresponse({status",{"_index":18635,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notfoundexception})@get(':boardid",{"_index":2920,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@get(':boardid/context",{"_index":2915,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(201)@patch(':contentelementid/content",{"_index":8210,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':boardid",{"_index":2911,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':cardid",{"_index":3987,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':columnid",{"_index":4923,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':contentelementid",{"_index":8201,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':boardid/title",{"_index":2926,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/height",{"_index":4002,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/title",{"_index":4005,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':columnid/title",{"_index":4930,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':submissionitemid",{"_index":3733,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundexception})@httpcode(204)@put(':cardid/position",{"_index":3998,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@put(':columnid/position",{"_index":4927,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@put(':contentelementid/position",{"_index":8205,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@post(':boardid/columns",{"_index":2906,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@post(':cardid/elements",{"_index":3983,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundloggableexception",{"_index":9674,"title":{"classes/NotFoundLoggableException.html":{}},"body":{"injectables/FeathersRosterService.html":{},"injectables/GroupService.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception('userloginmigration",{"_index":21318,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception(contextexternaltool.name",{"_index":9733,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(externaltool.name",{"_index":9728,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(group.name",{"_index":11181,"title":{},"body":{"injectables/GroupService.html":{}}}],["notfoundloggableexception(pseudonym.name",{"_index":9721,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(schoolexternaltool.name",{"_index":9731,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(userdo.name",{"_index":16386,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["nothing",{"_index":22668,"title":{},"body":{"license.html":{}}}],["notice",{"_index":14409,"title":{},"body":{"injectables/Logger.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["notice(loggable",{"_index":14416,"title":{},"body":{"injectables/Logger.html":{}}}],["notices",{"_index":22378,"title":{},"body":{"license.html":{}}}],["notifies",{"_index":22657,"title":{},"body":{"license.html":{}}}],["notify",{"_index":22653,"title":{},"body":{"license.html":{}}}],["notimplementedexception",{"_index":3228,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"injectables/LessonRule.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":{},"injectables/SubmissionRule.html":{}}}],["notimplementedexception('action",{"_index":14256,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{}}}],["notimplementedexception('copy",{"_index":18836,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('import",{"_index":18855,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('only",{"_index":4747,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["notimplementedexception('repo_or_service_not_implement",{"_index":12151,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["notimplementedexception('rooms",{"_index":17675,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["notimplementedexception(`invalid",{"_index":3288,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["notimplementedexception(`unknown",{"_index":5572,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["notimplementedexception(`unsupported",{"_index":5590,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["notimplementedexception})@post(':token/import')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":18638,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notmigratedusers",{"_index":18368,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notmigratedusers.data.foreach((user",{"_index":18372,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notwithstanding",{"_index":22610,"title":{},"body":{"license.html":{}}}],["nountildate",{"_index":6920,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["november",{"_index":22263,"title":{},"body":{"license.html":{}}}],["now",{"_index":1944,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":11692,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["now.getmonth",{"_index":11693,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["nowplusdays",{"_index":18791,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["nowplusdays(days",{"_index":18812,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["now}ms",{"_index":8168,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["npm",{"_index":22872,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["npx",{"_index":23553,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["null",{"_index":167,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersRosterService.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/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/PseudonymUc.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/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.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":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"entities/FederalStateEntity.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":{},"classes/GroupIdParams.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/PseudonymParams.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":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"entities/SystemEntity.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/UserLoginMigrationEntity.html":{},"classes/UserParams.html":{},"classes/UsersList.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["nullish",{"_index":18932,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["nullorundefined",{"_index":11345,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["nullorundefined(value",{"_index":11346,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["num",{"_index":6373,"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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.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":{},"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":{},"classes/ClassInfoSearchListResponse.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":{},"classes/ExternalToolElement.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":{},"injectables/FeathersRosterService.html":{},"entities/FederalStateEntity.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":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GridElement.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LinkElement.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":{},"injectables/OpenGraphProxyService.html":{},"classes/Page.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/RpcMessageProducer.html":{},"interfaces/S3Config-1.html":{},"interfaces/ScanResult.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":{},"classes/SortHelper.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/TooManyPseudonymsLoggableException.html":{},"classes/ToolConfiguration.html":{},"interfaces/ToolVersion.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"classes/ValidationError.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["number(a.width",{"_index":16446,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["number(b.width",{"_index":16447,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["number(batchsize",{"_index":7933,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["number(matches.groups.number",{"_index":6377,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number(options.pagesize",{"_index":11627,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number(options.skip",{"_index":11649,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number.isnan(this.deletedat.gettime",{"_index":9941,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["numbered",{"_index":22787,"title":{},"body":{"license.html":{}}}],["numberofdrafttasks",{"_index":3453,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberoffailingfilesinbatch",{"_index":7975,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberoffilesinbatch",{"_index":7968,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofplannedtasks",{"_index":3454,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofprocessedfiles",{"_index":7969,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofpublishedtasks",{"_index":3455,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofstudents",{"_index":6732,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["numberofsubmitters",{"_index":12521,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofsubmitterswithgrade",{"_index":12529,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofteachers",{"_index":6735,"title":{},"body":{"classes/CourseFactory.html":{}}}],["numberofteammembers",{"_index":19030,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["numbers",{"_index":14910,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["numerous",{"_index":23334,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nuxt",{"_index":23526,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nvmrc",{"_index":22929,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["o",{"_index":7811,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["o.id",{"_index":3371,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["oauth",{"_index":5442,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.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/NextcloudStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.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":15584,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["oauth.service",{"_index":12661,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/SystemService.html":{}}}],["oauth.service.ts",{"_index":12668,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:13",{"_index":13519,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:15",{"_index":12673,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:23",{"_index":12675,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:50",{"_index":13523,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:9",{"_index":12672,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.uc",{"_index":16118,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauth.uc.ts",{"_index":11407,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:14",{"_index":11417,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:23",{"_index":11427,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:25",{"_index":11426,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:27",{"_index":11419,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:47",{"_index":11428,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:49",{"_index":11424,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:66",{"_index":11421,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth2",{"_index":5438,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"interfaces/OauthCurrentUser.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/RevokeConsentParams.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"dependencies.html":{}}}],["oauth2')@apiokresponse({description",{"_index":21058,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["oauth2.0",{"_index":14522,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["oauth2authorizationbodyparams",{"_index":14479,"title":{"classes/Oauth2AuthorizationBodyParams.html":{}},"body":{"controllers/LoginController.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2clientid",{"_index":9657,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["oauth2config",{"_index":9055,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.baseurl",{"_index":9078,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.clientid",{"_index":9079,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.clientsecret",{"_index":9369,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.frontchannellogouturi",{"_index":9375,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.redirecturis",{"_index":9374,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.scope",{"_index":9370,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.skipconsent",{"_index":9080,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.tokenendpointauthmethod",{"_index":9372,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.type",{"_index":9077,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2migrationparams",{"_index":15497,"title":{"classes/Oauth2MigrationParams.html":{}},"body":{"classes/Oauth2MigrationParams.html":{},"controllers/UserLoginMigrationController.html":{}}}],["oauth2params",{"_index":7287,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2strategy",{"_index":1556,"title":{"injectables/Oauth2Strategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2toolconfig",{"_index":7270,"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":9140,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigcreateparams",{"_index":8618,"title":{"classes/Oauth2ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["oauth2toolconfigentity",{"_index":8683,"title":{"classes/Oauth2ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["oauth2toolconfigfactory",{"_index":7276,"title":{"classes/Oauth2ToolConfigFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.build(customparam",{"_index":7309,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.define(oauth2toolconfig",{"_index":7288,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigresponse",{"_index":9211,"title":{"classes/Oauth2ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["oauth2toolconfigupdate",{"_index":9144,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigupdateparams",{"_index":9142,"title":{"classes/Oauth2ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["oauth2toollaunchstrategy",{"_index":15335,"title":{"injectables/OAuth2ToolLaunchStrategy.html":{}},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["oauth_provisioning_enabled",{"_index":12195,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthadapterservice",{"_index":15394,"title":{"injectables/OauthAdapterService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{}}}],["oauthapimodule",{"_index":15574,"title":{"modules/OauthApiModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthclient",{"_index":9319,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.client_secret",{"_index":16033,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.frontchannel_logout_uri",{"_index":9364,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.redirect_uris",{"_index":9362,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.scope",{"_index":9358,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.token_endpoint_auth_method",{"_index":9360,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclientbody",{"_index":15585,"title":{"classes/OauthClientBody.html":{}},"body":{"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{}}}],["oauthclientid",{"_index":7131,"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":5498,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthconfig",{"_index":11429,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{}}}],["oauthconfig.authendpoint",{"_index":12350,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientid",{"_index":11512,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientsecret",{"_index":12340,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.granttype",{"_index":12346,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.idphint",{"_index":12342,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.issuer",{"_index":12356,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.jwksendpoint",{"_index":12358,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.logoutendpoint",{"_index":12354,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.provider",{"_index":12352,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.redirecturi",{"_index":11513,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.responsetype",{"_index":11510,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.scope",{"_index":11511,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.tokenendpoint",{"_index":12344,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfigdto",{"_index":12676,"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":15659,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientid",{"_index":15653,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientsecret",{"_index":15654,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["oauthconfigdto.granttype",{"_index":15657,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.idphint",{"_index":15655,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.issuer",{"_index":15664,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.jwksendpoint",{"_index":15665,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.logoutendpoint",{"_index":15663,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.provider",{"_index":15662,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.redirecturi",{"_index":15656,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.responsetype",{"_index":15660,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.scope",{"_index":15661,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.tokenendpoint",{"_index":15658,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse",{"_index":15666,"title":{"classes/OauthConfigResponse.html":{}},"body":{"classes/OauthConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse.authendpoint",{"_index":15686,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.clientid",{"_index":15681,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.granttype",{"_index":15684,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.idphint",{"_index":15682,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.issuer",{"_index":15691,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.jwksendpoint",{"_index":15692,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.logoutendpoint",{"_index":15690,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.provider",{"_index":15689,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.redirecturi",{"_index":15683,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.responsetype",{"_index":15687,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.scope",{"_index":15688,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.tokenendpoint",{"_index":15685,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigs",{"_index":9355,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthcurrentuser",{"_index":7077,"title":{"interfaces/OauthCurrentUser.html":{}},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"controllers/LoginController.html":{},"injectables/Oauth2Strategy.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/OauthUc.html":{},"injectables/UserService.html":{}}}],["oauthdata",{"_index":13122,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.externalid",{"_index":21339,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.officialschoolnumber",{"_index":21338,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externaluser.externalid",{"_index":21340,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatadto",{"_index":13089,"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":13094,"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":11489,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["oauthgranttype",{"_index":1528,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthgranttype.authorization_code_grant",{"_index":1525,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthloginresponse",{"_index":14484,"title":{"classes/OauthLoginResponse.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/OauthLoginResponse.html":{}}}],["oauthloginstate",{"_index":16150,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.provider",{"_index":16178,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.state",{"_index":16152,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstatedto",{"_index":15721,"title":{"classes/OauthLoginStateDto.html":{}},"body":{"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthloginstatedto(session.oauthloginstate",{"_index":15742,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["oauthloginstatemapper",{"_index":15733,"title":{"classes/OauthLoginStateMapper.html":{}},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["oauthloginstatemapper.mapsessiontodto(session",{"_index":16151,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthmigrationdto",{"_index":13943,"title":{"classes/OauthMigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationerror",{"_index":15339,"title":{"classes/OAuthMigrationError.html":{}},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthmigrationfailed",{"_index":15347,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthmigrationfinalfinish",{"_index":14119,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationfinished",{"_index":14000,"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":13998,"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":13999,"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":1546,"title":{"modules/OauthModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["oauthprocessdto",{"_index":15359,"title":{"classes/OAuthProcessDto.html":{}},"body":{"classes/OAuthProcessDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthprocessdto.jwt",{"_index":16165,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthproviderapimodule",{"_index":15756,"title":{"modules/OauthProviderApiModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthproviderclientcruduc",{"_index":15761,"title":{"injectables/OauthProviderClientCrudUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderconsentflowuc",{"_index":15762,"title":{"injectables/OauthProviderConsentFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthprovidercontroller",{"_index":15768,"title":{"controllers/OauthProviderController.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderloginflowservice",{"_index":12626,"title":{"injectables/OauthProviderLoginFlowService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["oauthproviderloginflowuc",{"_index":15763,"title":{"injectables/OauthProviderLoginFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderlogoutflowuc",{"_index":15764,"title":{"injectables/OauthProviderLogoutFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["oauthprovidermodule",{"_index":15760,"title":{"modules/OauthProviderModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["oauthproviderrequestmapper",{"_index":15981,"title":{"classes/OauthProviderRequestMapper.html":{}},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["oauthproviderrequestmapper.mapcreateacceptloginrequestbody",{"_index":15996,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderresponsemapper",{"_index":15765,"title":{"injectables/OauthProviderResponseMapper.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthproviderservice",{"_index":9283,"title":{"classes/OauthProviderService.html":{}},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthproviderservicemodule",{"_index":8835,"title":{"modules/OauthProviderServiceModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules.html":{}}}],["oauthprovideruc",{"_index":15766,"title":{"injectables/OauthProviderUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthprovisioningenabled",{"_index":12196,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthrejectablebody",{"_index":5432,"title":{"classes/OAuthRejectableBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthrejectablebody:13",{"_index":5459,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:23",{"_index":5468,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:32",{"_index":5470,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:41",{"_index":5472,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:50",{"_index":5476,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthscope",{"_index":12636,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["oauthservice",{"_index":11415,"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":15581,"title":{"controllers/OauthSSOController.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["oauthssoerror",{"_index":11432,"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":13105,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["oauthssoerror('requesting",{"_index":15572,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["oauthssoerror(`requested",{"_index":15429,"title":{},"body":{"injectables/OAuthService.html":{}}}],["oauthssoerror:10",{"_index":15348,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:11",{"_index":21490,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:4",{"_index":15351,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:5",{"_index":21493,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:6",{"_index":15350,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:7",{"_index":21492,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:8",{"_index":15349,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:9",{"_index":21491,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthsystems",{"_index":19473,"title":{},"body":{"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthsystems.find((system",{"_index":21285,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["oauthtoken",{"_index":16181,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthtokendto",{"_index":11435,"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":15426,"title":{"interfaces/OauthTokenResponse.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"interfaces/OauthTokenResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthtokens",{"_index":11442,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{}}}],["oauthuc",{"_index":15579,"title":{"injectables/OauthUc.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["obfuscated",{"_index":10876,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["obfuscated_subject",{"_index":13054,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["obj.id",{"_index":2803,"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/AuthorizationReferenceService.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":{},"injectables/CopyHelperService.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/SystemEntity.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/UserService.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":2513,"title":{},"body":{"classes/BaseFactory.html":{}}}],["object.assign(this",{"_index":3433,"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":2010,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["object.defineproperty(entity",{"_index":8040,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["object.entries(params",{"_index":15196,"title":{},"body":{"injectables/NewsUc.html":{}}}],["object.factory.ts",{"_index":8047,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["object.keys(entity).foreach((key",{"_index":2428,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["object.keys(object).foreach((key",{"_index":2333,"title":{},"body":{"injectables/BBBService.html":{}}}],["object.keys(payload).length",{"_index":2621,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["object.keys(queryordermap",{"_index":9384,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["object.setprototypeof(this",{"_index":1199,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["object.ts",{"_index":1789,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BaseDomainObject.html":{},"classes/DomainObject.html":{}}}],["object.ts:14",{"_index":8044,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:18",{"_index":8043,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:8",{"_index":8042,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:9",{"_index":2447,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["object.values(filerecordparenttype",{"_index":10478,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["object.values(newstargetmodel",{"_index":15009,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{}}}],["object.values(previewinputmimetypes).includes(this.mimetype",{"_index":10096,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["object.values(validationerror.constraints",{"_index":1452,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["object],[object",{"_index":2368,"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":{}}}],["objectid",{"_index":49,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.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":{},"injectables/GroupRepo.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":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["objectid().tohexstring",{"_index":4121,"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/RecursiveCopyVisitor.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{}}}],["objectid().tostring",{"_index":7743,"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":1085,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(accountdto.userid",{"_index":1082,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(domainobject.id",{"_index":2427,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["objectid(domainobject.schoolid",{"_index":4386,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.successor",{"_index":4396,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.year",{"_index":4392,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(entitydo.toolid",{"_index":8983,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(entitydo.userid",{"_index":8984,"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":18687,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["objectid(owneruserid",{"_index":10377,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(parentid",{"_index":10225,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(permissionrefid",{"_index":10381,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(props.columnboardid",{"_index":4881,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["objectid(props.context.id",{"_index":4780,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["objectid(props.contextid",{"_index":12259,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.creatorid",{"_index":9963,"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":10064,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.lockid",{"_index":9967,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.origintoolid",{"_index":7161,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["objectid(props.ownerid",{"_index":9959,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.parentid",{"_index":9957,"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":9992,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["objectid(props.schoolid",{"_index":10061,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(reference.id",{"_index":3367,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["objectid(refid",{"_index":9933,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(schoolid",{"_index":4465,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/FileRecordScope.html":{}}}],["objectid(systemid",{"_index":926,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["objectid(teacherid",{"_index":4388,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(toolid",{"_index":8965,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(user.id",{"_index":11080,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["objectid(userid",{"_index":921,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["objectid.createfromhexstring(id",{"_index":7563,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.createfromhexstring(props.id",{"_index":7573,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.isvalid(courseid",{"_index":3496,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["objectid.isvalid(id",{"_index":807,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/ImportUserRepo.html":{}}}],["objectid.isvalid(schoolid",{"_index":13015,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["objectid.isvalid(userid",{"_index":13017,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["objectids",{"_index":922,"title":{},"body":{"injectables/AccountRepo.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectids.map((id",{"_index":6570,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectives",{"_index":23623,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["objectname",{"_index":12153,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["objects",{"_index":3813,"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":22766,"title":{},"body":{"license.html":{}}}],["obligated",{"_index":22541,"title":{},"body":{"license.html":{}}}],["obligations",{"_index":22449,"title":{},"body":{"license.html":{}}}],["observable",{"_index":2292,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["obsolete",{"_index":21327,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["occasionally",{"_index":22526,"title":{},"body":{"license.html":{}}}],["occur",{"_index":570,"title":{},"body":{"controllers/AccountController.html":{}}}],["occurred",{"_index":4611,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["occurring",{"_index":22665,"title":{},"body":{"license.html":{}}}],["occurs",{"_index":22580,"title":{},"body":{"license.html":{}}}],["ocs",{"_index":11328,"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":11327,"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":15156,"title":{},"body":{"injectables/NewsUc.html":{}}}],["offer",{"_index":22305,"title":{},"body":{"license.html":{}}}],["offered",{"_index":22547,"title":{},"body":{"license.html":{}}}],["offering",{"_index":22530,"title":{},"body":{"license.html":{}}}],["offers",{"_index":22995,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["offical",{"_index":21434,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["official",{"_index":13733,"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":18322,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["officialschoolnumber",{"_index":8452,"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":15344,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["officialschoolnumberfromtarget",{"_index":15345,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["offline",{"_index":7279,"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/AccountServiceDb.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DeleteFilesUc.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["ogs",{"_index":16430,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["oid",{"_index":12060,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["oidc",{"_index":13383,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/LoginResponse-1.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidc.mapper",{"_index":19420,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.mapper.ts",{"_index":19402,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:12",{"_index":19407,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:26",{"_index":19404,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:5",{"_index":19405,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.service",{"_index":13376,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{}}}],["oidc.service.ts",{"_index":19415,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:12",{"_index":19418,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:21",{"_index":19417,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:9",{"_index":19416,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc/oidc.strategy",{"_index":17982,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc/service/oidc",{"_index":17983,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc_context",{"_index":5484,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["oidcconfig",{"_index":12331,"title":{"classes/OidcConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemScope.html":{}}}],["oidcconfig.authorizationurl",{"_index":12409,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientid",{"_index":12405,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientsecret",{"_index":12406,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["oidcconfig.defaultscopes",{"_index":12416,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.idphint",{"_index":12407,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.logouturl",{"_index":12412,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.tokenurl",{"_index":12411,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.userinfourl",{"_index":12414,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.clientsecret",{"_index":19411,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.idphint",{"_index":13457,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcconfigdto",{"_index":13343,"title":{"classes/OidcConfigDto.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["oidcconfigdto.authorizationurl",{"_index":16259,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientid",{"_index":16256,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientsecret",{"_index":16257,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.defaultscopes",{"_index":16263,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.idphint",{"_index":16258,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.logouturl",{"_index":16262,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.parentsystemid",{"_index":16255,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.tokenurl",{"_index":16260,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.userinfourl",{"_index":16261,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidccontextresponse",{"_index":5507,"title":{"classes/OidcContextResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["oidcexternalsubmappername",{"_index":13384,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcidentityprovidermapper",{"_index":13308,"title":{"classes/OidcIdentityProviderMapper.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["oidcinternalname",{"_index":4597,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["oidcmock__base_url",{"_index":23524,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidcmockprovisioningstrategy",{"_index":16290,"title":{"injectables/OidcMockProvisioningStrategy.html":{}},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["oidcmockstrategy",{"_index":16855,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["oidcprovisioningservice",{"_index":16300,"title":{"injectables/OidcProvisioningService.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcprovisioningstrategy",{"_index":16401,"title":{"injectables/OidcProvisioningStrategy.html":{}},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcsystems",{"_index":19475,"title":{},"body":{"injectables/SystemService.html":{}}}],["oidcuserattributemappername",{"_index":13382,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["ok",{"_index":21766,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["okay",{"_index":19843,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["old",{"_index":6333,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["oldconfig.alias",{"_index":13451,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs",{"_index":13356,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.foreach((oldconfig",{"_index":13455,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.some((oldconfig",{"_index":13450,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["older",{"_index":22328,"title":{},"body":{"license.html":{}}}],["oldparam.name",{"_index":9502,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams",{"_index":9478,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.every((oldparam",{"_index":9515,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((oldparam",{"_index":9500,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((parameter",{"_index":9517,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool",{"_index":9495,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool.parameters",{"_index":9496,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["once",{"_index":17313,"title":{},"body":{"classes/RedirectResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["one",{"_index":9603,"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":{},"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":6738,"title":{},"body":{"classes/CourseFactory.html":{}}}],["oneof",{"_index":4037,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ones",{"_index":6116,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["onetomany",{"_index":6508,"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":{},"classes/UsersList.html":{}}}],["onetomany('coursegroup",{"_index":6485,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["onetomany('dashboardgridelementmodel",{"_index":7578,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["onetomany('submission",{"_index":12456,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('task",{"_index":11886,"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":2641,"title":{},"body":{"entities/Board.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone(undefined",{"_index":18074,"title":{},"body":{"entities/SchoolEntity.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone({type",{"_index":2631,"title":{},"body":{"entities/Board.html":{}}}],["oneweekago",{"_index":20019,"title":{},"body":{"injectables/TaskUC.html":{}}}],["oneweekago.setdate(oneweekago.getdate",{"_index":20020,"title":{},"body":{"injectables/TaskUC.html":{}}}],["ongoing",{"_index":6835,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["onlyactivecourses",{"_index":6926,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardUc.html":{}}}],["onlyexistingreferences",{"_index":2693,"title":{},"body":{"entities/Board.html":{}}}],["onlyfactories",{"_index":7808,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["onlyoauth",{"_index":19370,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemUc.html":{}}}],["onlyreadcourses",{"_index":20013,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onlywritecoursesids",{"_index":20012,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onmoduledestroy",{"_index":14888,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["onupdate",{"_index":2478,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["open",{"_index":5609,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["open/closed",{"_index":23063,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["openapi",{"_index":12850,"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":19767,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["opencourses",{"_index":19991,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opencourses.map((c",{"_index":19996,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opened",{"_index":20677,"title":{},"body":{"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["opengraphdata",{"_index":5663,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{}}}],["opengraphdata.description",{"_index":5668,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphdata.image",{"_index":5669,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphdata.image.url",{"_index":5671,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphdata.title",{"_index":5666,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphproxyservice",{"_index":3575,"title":{"injectables/OpenGraphProxyService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{}}}],["openid",{"_index":7280,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthLoginResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["opening",{"_index":21669,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["openinnewtab",{"_index":5979,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["openldap",{"_index":23542,"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":22818,"title":{},"body":{"license.html":{}}}],["operated",{"_index":22534,"title":{},"body":{"license.html":{}}}],["operates",{"_index":23299,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["operating",{"_index":22404,"title":{},"body":{"license.html":{}}}],["operation",{"_index":10709,"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":21713,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["operation.error.ts",{"_index":10705,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.error.ts:4",{"_index":10706,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.loggable",{"_index":15174,"title":{},"body":{"injectables/NewsUc.html":{}}}],["operation.loggable.ts",{"_index":14992,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:13",{"_index":14996,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:6",{"_index":14995,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operations",{"_index":23641,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["operator",{"_index":959,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/Scope.html":{},"license.html":{}}}],["operators",{"_index":23294,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["oplogsize",{"_index":23578,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["opportunity",{"_index":22774,"title":{},"body":{"license.html":{}}}],["ops",{"_index":22899,"title":{},"body":{"todo.html":{}}}],["opt/keycloak/bin/kc.sh",{"_index":22958,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optimal",{"_index":13832,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["optimisation",{"_index":23086,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["option",{"_index":22607,"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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/SortHelper.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/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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateNewsParams.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["optional()@apiproperty",{"_index":16273,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["optionaldatathere",{"_index":23267,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["optionally",{"_index":11708,"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":{},"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/ExternalToolPseudonymRepo.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/ICleanOptions.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":{},"injectables/PseudonymService.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":{},"classes/UsersList.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":{},"license.html":{},"todo.html":{}}}],["options.collection",{"_index":7814,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.do",{"_index":4240,"title":{},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{}}}],["options.do.ts",{"_index":4441,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["options.do.ts:12",{"_index":4445,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.do.ts:6",{"_index":4443,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.enabled",{"_index":1309,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.entity",{"_index":4273,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["options.entity.ts",{"_index":4448,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["options.entity.ts:10",{"_index":4450,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{}}}],["options.everyattendeejoinsmuted",{"_index":21818,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.everyattendejoinsmuted",{"_index":21662,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["options.everybodyjoinsasmoderator",{"_index":21664,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.exchange",{"_index":1313,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.filesservicebaseurl",{"_index":1311,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.hostname",{"_index":1317,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.moderatormustapprovejoinrequests",{"_index":21666,"title":{},"body":{"entities/VideoConference.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.onlyfactories",{"_index":7815,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.order",{"_index":12788,"title":{},"body":{"controllers/ImportUserController.html":{},"injectables/NewsUc.html":{},"controllers/ToolController.html":{}}}],["options.port",{"_index":1324,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.response",{"_index":21891,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["options.response.ts",{"_index":21979,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:14",{"_index":21984,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:20",{"_index":21980,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:8",{"_index":21983,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.retrycount",{"_index":11629,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.retrydelay",{"_index":11630,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.routingkey",{"_index":1315,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.skip",{"_index":11648,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.ts",{"_index":11991,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["options.verbose",{"_index":11650,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options?.collection",{"_index":7813,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.context",{"_index":18774,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.exact",{"_index":13602,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.expiresat",{"_index":18775,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.expiresindays",{"_index":18822,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.limit",{"_index":13604,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.order",{"_index":9015,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{}}}],["options?.override",{"_index":7823,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.pagination",{"_index":8985,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["options?.schoolexclusive",{"_index":18818,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.skip",{"_index":13603,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["orchestrate",{"_index":23656,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["orchestrates",{"_index":23104,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["orchestration",{"_index":23145,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["order",{"_index":2144,"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":{},"classes/SortHelper.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":9019,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["order.firstname",{"_index":21540,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.lastname",{"_index":21544,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.params.ts",{"_index":16544,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["order.params.ts:13",{"_index":16547,"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":11776,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["orderedlist",{"_index":17752,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["orderquery",{"_index":21539,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.firstname",{"_index":21541,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.lastname",{"_index":21545,"title":{},"body":{"injectables/UserRepo.html":{}}}],["org",{"_index":5282,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organisation",{"_index":17961,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["organization",{"_index":5059,"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":{},"injectables/GroupRepo.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["organization.organization",{"_index":5150,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organization.resources).concat(this.resources",{"_index":5152,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder",{"_index":5046,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder.addresourcetoorganization(resourceprops",{"_index":5054,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationbuilder.addresourcetoorganization(this.maptasktowebcontentresource(task",{"_index":5061,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationelement.transform",{"_index":5288,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationelements",{"_index":5280,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationid",{"_index":10908,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupDto.html":{}}}],["organizations",{"_index":5101,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["orgid",{"_index":17942,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["origin",{"_index":2074,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["original",{"_index":3303,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ConsentResponse.html":{},"injectables/CourseCopyService.html":{},"classes/LoginResponse-1.html":{},"injectables/PreviewGeneratorService.html":{},"classes/RecursiveCopyVisitor.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["original.acceptasync(this",{"_index":17149,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.alternativetext",{"_index":17164,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.caption",{"_index":17163,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.children.foreach((child",{"_index":17190,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.context",{"_index":17154,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.duedate",{"_index":17183,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.height",{"_index":17161,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.id",{"_index":17168,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.imageurl",{"_index":17178,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.inputformat",{"_index":17181,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.text",{"_index":17180,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.title",{"_index":17153,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.url",{"_index":17177,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["originalboard",{"_index":3016,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["originalboard.context.type",{"_index":4746,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["originalboard.getelements",{"_index":3017,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["originalcolumnboardid",{"_index":3062,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["originalcourse",{"_index":6655,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.color",{"_index":6678,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.getcoursegroupitems().length",{"_index":6689,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.name",{"_index":6670,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalentity",{"_index":3024,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["originallesson",{"_index":2987,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallesson.course",{"_index":14170,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["originallesson.id",{"_index":3057,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallessonid",{"_index":3056,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["originalschooldo",{"_index":18339,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["originaltask",{"_index":2990,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.description",{"_index":19615,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.descriptioninputformat",{"_index":19616,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.id",{"_index":3060,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.name",{"_index":19614,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.teamsubmissions",{"_index":19617,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltaskid",{"_index":3059,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltaskname",{"_index":19645,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["originfilepath",{"_index":10776,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["originid",{"_index":12106,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["originsystemid",{"_index":21414,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["origintool",{"_index":7126,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["origintoolid",{"_index":7129,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["orm",{"_index":6885,"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":23043,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"entities/FederalStateEntity.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{}}}],["orm/entitymanager",{"_index":23441,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["orm/issues/1230",{"_index":10052,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["orm/issues/2165",{"_index":12557,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mikro",{"_index":10051,"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/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":10581,"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":{}}}],["orphan",{"_index":5683,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["orphanremoval",{"_index":6486,"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":{},"classes/UsersList.html":{}}}],["os",{"_index":10300,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["os.eol",{"_index":10332,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["other.name.tolocalelowercase",{"_index":8908,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["otherindex",{"_index":8906,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["othermodule",{"_index":23135,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["otherparams",{"_index":19348,"title":{},"body":{"classes/SystemFactory.html":{}}}],["others",{"_index":10870,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["otherwise",{"_index":1588,"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":23199,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":23313,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outdated",{"_index":20499,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"todo.html":{}}}],["outdated.loggable",{"_index":20750,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["outdatedsince",{"_index":12585,"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":23341,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outgoing",{"_index":23115,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["output",{"_index":10877,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"classes/ServerConsole.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["outputformat",{"_index":6246,"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":{}}}],["outside",{"_index":7493,"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":19650,"title":{},"body":{"injectables/TaskCopyUC.html":{},"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":23558,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["overenginiering",{"_index":23084,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["overridden",{"_index":14899,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["override",{"_index":2139,"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/OAuth2ToolLaunchStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["overrideprovider(consolewriterservice",{"_index":20227,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrideprovider(databasemanagementuc",{"_index":20225,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrides",{"_index":8368,"title":{},"body":{"modules/ErrorModule.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["overrides/configures",{"_index":6438,"title":{},"body":{"modules/CoreModule.html":{}}}],["overriding",{"_index":23391,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["overview",{"_index":23000,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["overwrite_setting_show_setup_wizard='completed",{"_index":23615,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["overwritten",{"_index":23393,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["owned",{"_index":22708,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owner",{"_index":9888,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ownerid",{"_index":9918,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ownership",{"_index":15015,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owneruserid",{"_index":10367,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["owns",{"_index":19750,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["p",{"_index":2374,"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":17908,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p.name",{"_index":9530,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["p.sourcepath",{"_index":17894,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p27030:27017",{"_index":23574,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["package",{"_index":22041,"title":{"dependencies.html":{},"properties.html":{}},"body":{"todo.html":{}}}],["packaged",{"_index":22493,"title":{},"body":{"license.html":{}}}],["packages",{"_index":22873,"title":{},"body":{"todo.html":{}}}],["packaging",{"_index":22398,"title":{},"body":{"license.html":{}}}],["pad",{"_index":8414,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["pad.data.padid",{"_index":8416,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padid",{"_index":8411,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padname",{"_index":8412,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padresponse",{"_index":8410,"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/ClassInfoSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/FileRecordListResponse.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/Page.html":{},"classes/PageContentQueryParams.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"injectables/PseudonymService.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":21317,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["page(entitydos",{"_index":8991,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["page(pagecontent",{"_index":11234,"title":{},"body":{"injectables/GroupUc.html":{}}}],["pagecontent",{"_index":11232,"title":{},"body":{"injectables/GroupUc.html":{}}}],["pagecontentdto",{"_index":16458,"title":{"classes/PageContentDto.html":{}},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{}}}],["pagecontentmapper",{"_index":16469,"title":{"injectables/PageContentMapper.html":{}},"body":{"injectables/PageContentMapper.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentqueryparams",{"_index":16478,"title":{"classes/PageContentQueryParams.html":{}},"body":{"classes/PageContentQueryParams.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentresponse",{"_index":16473,"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":{}}}],["pagesize",{"_index":11589,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{}}}],["pagetype",{"_index":16481,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypequery",{"_index":21380,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.pagetype",{"_index":21385,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.sourcesystem",{"_index":21386,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.targetsystem",{"_index":21387,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypes",{"_index":16484,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system",{"_index":21447,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system_mandatory",{"_index":21449,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_target_system",{"_index":21441,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes})@isenum(pagetypes",{"_index":16485,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["paginate",{"_index":9576,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["pagination",{"_index":6612,"title":{},"body":{"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"controllers/GroupController.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":10970,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination.skip",{"_index":10969,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination?.limit",{"_index":6932,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["pagination?.skip",{"_index":6931,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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/GroupController.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/ClassInfoSearchListResponse.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":{},"classes/ClassInfoSearchListResponse.html":{}}}],["paginationresponse:136",{"_index":15003,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["paginationresponse:14",{"_index":1023,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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/ClassInfoSearchListResponse.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/ClassInfoSearchListResponse.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":21349,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["paginationresponse:63",{"_index":10124,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["paginationresponse:68",{"_index":6825,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["paginationresponse:7",{"_index":9266,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["paginationresponse:71",{"_index":12833,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["paginationresponse:74",{"_index":19693,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["paginationresponse:91",{"_index":6187,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["pairwise",{"_index":9377,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["papaparse",{"_index":22161,"title":{},"body":{"dependencies.html":{}}}],["paper",{"_index":22845,"title":{},"body":{"license.html":{}}}],["paragraph",{"_index":22645,"title":{},"body":{"license.html":{}}}],["paragraphs",{"_index":22717,"title":{},"body":{"license.html":{}}}],["parallel",{"_index":23439,"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":{},"controllers/GroupController.html":{},"classes/GuardAgainst.html":{},"interfaces/ICleanOptions.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/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('oauthclientid",{"_index":16180,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["param('scope",{"_index":21854,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('scopeid",{"_index":21855,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('token",{"_index":10271,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["param)).rejects.tothrow(badrequestexception",{"_index":23383,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param)).tothrow(badrequestexception",{"_index":23381,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param.builder.ts",{"_index":6280,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.builder.ts:6",{"_index":6283,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.default",{"_index":8910,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["param.description",{"_index":9100,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.displayname",{"_index":8900,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.isoptional",{"_index":5417,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.location",{"_index":9102,"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":5410,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["param.regex",{"_index":5424,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.regexcomment",{"_index":9101,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.scope",{"_index":5411,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.startswith",{"_index":265,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["param.type",{"_index":5423,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["paramdisplayat",{"_index":15181,"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":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parameter.do.ts",{"_index":7206,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:10",{"_index":7209,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:12",{"_index":7214,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:14",{"_index":7215,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:16",{"_index":7216,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:18",{"_index":7212,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:20",{"_index":7217,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:22",{"_index":7208,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:4",{"_index":7213,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:6",{"_index":7211,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:8",{"_index":7210,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.entity.ts",{"_index":7233,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:10",{"_index":7237,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:13",{"_index":7236,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:16",{"_index":7235,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:19",{"_index":7240,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:22",{"_index":7241,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:25",{"_index":7242,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:28",{"_index":7238,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:31",{"_index":7243,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:34",{"_index":7234,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:7",{"_index":7239,"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":8628,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["parameter.params.ts",{"_index":7324,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:13",{"_index":7335,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:18",{"_index":7329,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:23",{"_index":7327,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:28",{"_index":7326,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:33",{"_index":7336,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:38",{"_index":7337,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:42",{"_index":7340,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:46",{"_index":7334,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:50",{"_index":7343,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:54",{"_index":7331,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.response",{"_index":5746,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["parameter.response.ts",{"_index":7348,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:10",{"_index":7354,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:13",{"_index":7352,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:16",{"_index":7351,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:19",{"_index":7350,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:22",{"_index":7355,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:25",{"_index":7356,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:28",{"_index":7357,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:31",{"_index":7353,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:34",{"_index":7358,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:37",{"_index":7349,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.scope",{"_index":291,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolConfigurationService.html":{}}}],["parameter/custom",{"_index":7232,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter_type_not_implemented",{"_index":16517,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parameterkeys",{"_index":14879,"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":14883,"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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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/SubmissionsResponse.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["parameters.'})@apiresponse({status",{"_index":21714,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["parameters.map((param",{"_index":14880,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameterstoinclude",{"_index":184,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["parameterstoinclude.map(async",{"_index":295,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parametertype",{"_index":16516,"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/BoardDoCopyService.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":{},"controllers/GroupController.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IToolLaunchStrategy.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/JwtTestFactory.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.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":{},"classes/PreviewBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"controllers/PseudonymController.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/ToolReferenceController.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":{},"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":3935,"title":{},"body":{"injectables/CalendarService.html":{}}}],["params.append(key",{"_index":2334,"title":{},"body":{"injectables/BBBService.html":{}}}],["params.availabledate",{"_index":19732,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.challenge",{"_index":15923,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client",{"_index":15945,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client_name",{"_index":15908,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.clientid",{"_index":9207,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["params.confirmpassword",{"_index":589,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.content",{"_index":15058,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.contents",{"_index":14199,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contents.foreach((element",{"_index":14200,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contextexternaltoolid",{"_index":20358,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contextid",{"_index":20351,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contexttype",{"_index":20352,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.copyname",{"_index":19613,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["params.course",{"_index":14198,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.courseid",{"_index":6420,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.description",{"_index":19731,"title":{},"body":{"classes/TaskMapper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params.displayat",{"_index":15059,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.dto",{"_index":23110,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["params.duedate",{"_index":19733,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.elements",{"_index":17713,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params.enablemigrationstart",{"_index":14869,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.everyattendeejoinsmuted",{"_index":21861,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.everybodyjoinsasmoderator",{"_index":21862,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.externalid",{"_index":13975,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.externaltoolid",{"_index":20474,"title":{},"body":{"controllers/ToolController.html":{}}}],["params.features",{"_index":13976,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.federalstate",{"_index":13986,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.filerecordid",{"_index":10563,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["params.find",{"_index":297,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.flagged",{"_index":12803,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.from",{"_index":7388,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.groupid",{"_index":10975,"title":{},"body":{"controllers/GroupController.html":{}}}],["params.hidden",{"_index":14202,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.id",{"_index":13974,"title":{},"body":{"classes/LegacySchoolDo.html":{},"controllers/OauthProviderController.html":{}}}],["params.inmaintenancesince",{"_index":13977,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.interface",{"_index":211,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["params.interface.ts",{"_index":12575,"title":{},"body":{"interfaces/IToolLaunchParams.html":{}}}],["params.inusermigration",{"_index":13978,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.language",{"_index":21640,"title":{},"body":{"injectables/UserUc.html":{}}}],["params.lessonid",{"_index":6421,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.limit",{"_index":15906,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.logouturl",{"_index":21741,"title":{},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.map((parameter",{"_index":287,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.moderatormustapprovejoinrequests",{"_index":21863,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.name",{"_index":9206,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/TaskMapper.html":{}}}],["params.oauthmigrationfinalfinish",{"_index":14867,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationfinished",{"_index":14865,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationmandatory",{"_index":14863,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationpossible",{"_index":14861,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.officialschoolnumber",{"_index":13980,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.offset",{"_index":15907,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.originalboard",{"_index":3025,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["params.owner",{"_index":15909,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.parenttype",{"_index":18425,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.password",{"_index":588,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.previewoptions",{"_index":16673,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["params.previewparams.forceupdate",{"_index":16723,"title":{},"body":{"injectables/PreviewService.html":{}}}],["params.previousexternalid",{"_index":13979,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.pseudonym",{"_index":16938,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["params.schoolexternaltoolid",{"_index":20355,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["params.schoolid",{"_index":20348,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["params.schoolyear",{"_index":13981,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.sourceparentid",{"_index":18424,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.systemid",{"_index":16156,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["params.systems",{"_index":13983,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.target",{"_index":15178,"title":{},"body":{"injectables/NewsUc.html":{}}}],["params.targetid",{"_index":15061,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetmodel",{"_index":15060,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetparentid",{"_index":18427,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.taskid",{"_index":19013,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["params.title",{"_index":7394,"title":{},"body":{"controllers/DashboardController.html":{},"classes/NewsMapper.html":{}}}],["params.to",{"_index":7389,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.ts",{"_index":4429,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.ts:7",{"_index":11052,"title":{},"body":{"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.userid",{"_index":12799,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.userloginmigrationid",{"_index":13985,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.visibility",{"_index":17711,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params?.accountid",{"_index":7019,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.aud",{"_index":7015,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.external_sub",{"_index":7020,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.iss",{"_index":7014,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.privatekey",{"_index":7022,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.sub",{"_index":7012,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params].ts",{"_index":23171,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["paranoid",{"_index":1139,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["parent",{"_index":3339,"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":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.addchild(card",{"_index":4123,"title":{},"body":{"injectables/CardService.html":{}}}],["parent.addchild(column",{"_index":4979,"title":{},"body":{"injectables/ColumnService.html":{}}}],["parent.addchild(element",{"_index":5615,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["parent.children.findindex((obj",{"_index":17304,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.children.foreach((child",{"_index":17303,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.getstudentids",{"_index":11915,"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":12490,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.id",{"_index":9976,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["parent.removechild(domainobject",{"_index":3414,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["parentcourseid",{"_index":19643,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["parentdata",{"_index":17264,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.boardnode",{"_index":17273,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.position",{"_index":17274,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentid",{"_index":3610,"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":{},"classes/SchoolSpecificFileCopyServiceImpl.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":3613,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/TaskRepo.html":{}}}],["parentids.courseids",{"_index":19811,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.creatorid",{"_index":19809,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.lessonids",{"_index":19813,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope",{"_index":19808,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bycourseids(parentids.courseids",{"_index":19812,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bylessonids(parentids.lessonids",{"_index":19814,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.byonlycreatorid(parentids.creatorid",{"_index":19810,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentmeetingid",{"_index":2163,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["parentname",{"_index":18697,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["parentnode",{"_index":17248,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentparams",{"_index":14161,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentparams.courseid",{"_index":14168,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentpermission",{"_index":14238,"title":{},"body":{"injectables/LessonRule.html":{}}}],["parentpermission(user",{"_index":14250,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parentpropertypath",{"_index":1441,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["parentrule",{"_index":23700,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["parents",{"_index":4749,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/TaskRepo.html":{}}}],["parentsfinished",{"_index":19775,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bycourseids(parentids.finishedcourseids",{"_index":19776,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bylessonids(parentids.lessonidsoffinishedcourses",{"_index":19777,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsmap",{"_index":17240,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentsopen",{"_index":19772,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bycourseids(parentids.opencourseids",{"_index":19773,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bylessonids(parentids.lessonidsofopencourses",{"_index":19774,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsystemid",{"_index":16246,"title":{},"body":{"classes/OidcConfigDto.html":{},"classes/SystemOidcMapper.html":{}}}],["parenttype",{"_index":6217,"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/RecursiveCopyVisitor.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":23215,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parsed",{"_index":23241,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parseobjectidpipe",{"_index":23217,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parser",{"_index":22094,"title":{},"body":{"dependencies.html":{}}}],["part",{"_index":1939,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/ImportUserScope.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.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":12045,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["partialtype",{"_index":20775,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["participantcount",{"_index":2224,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["particular",{"_index":19845,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{}}}],["parties",{"_index":22371,"title":{},"body":{"license.html":{}}}],["parts",{"_index":22416,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["party",{"_index":22535,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["party's",{"_index":22685,"title":{},"body":{"license.html":{}}}],["pascalcase",{"_index":23200,"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":23659,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["passport",{"_index":13158,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["passportmodule",{"_index":1561,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["passportstrategy",{"_index":13167,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passportstrategy(strategy",{"_index":13162,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passthrough",{"_index":6632,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FwuLearningContentsController.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.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/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":16537,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:15",{"_index":16542,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:25",{"_index":16541,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.trim",{"_index":1775,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["passwordnew",{"_index":16526,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordold",{"_index":16527,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordpattern",{"_index":474,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["passwordpolicy",{"_index":13285,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["past",{"_index":6859,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["paste",{"_index":23460,"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":20829,"title":{},"body":{"controllers/UserController.html":{}}}],["patch(':boardid/title",{"_index":2949,"title":{},"body":{"controllers/BoardController.html":{}}}],["patch(':cardid/height",{"_index":4029,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':cardid/title",{"_index":4032,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':columnid/title",{"_index":4940,"title":{},"body":{"controllers/ColumnController.html":{}}}],["patch(':contentelementid/content",{"_index":8219,"title":{},"body":{"controllers/ElementController.html":{}}}],["patch(':dashboardid/element",{"_index":7374,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':dashboardid/moveelement",{"_index":7369,"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":12771,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':importuserid/match",{"_index":12763,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':newsid",{"_index":14964,"title":{},"body":{"controllers/NewsController.html":{}}}],["patch(':roomid/board/order",{"_index":17698,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':roomid/elements/:elementid/visibility",{"_index":17695,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':submissionitemid",{"_index":3747,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["patch(':taskid/finish",{"_index":19558,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/restore",{"_index":19561,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/revertpublished",{"_index":19564,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch('consentrequest/:challenge",{"_index":15934,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('loginrequest/:challenge",{"_index":15921,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('logoutrequest/:challenge",{"_index":15925,"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":4629,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions')@apiresponse({status",{"_index":4609,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch(path",{"_index":1669,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patch(subpath",{"_index":1668,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patchconsentrequest",{"_index":15811,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["patchconsentrequest(challenge",{"_index":15819,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["patchconsentrequest(params",{"_index":15875,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchelementvisibility",{"_index":17683,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchelementvisibility(urlparams",{"_index":17694,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchgroup",{"_index":7364,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroup(urlparams",{"_index":7371,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroupparams",{"_index":7373,"title":{"classes/PatchGroupParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/PatchGroupParams.html":{}}}],["patching",{"_index":16522,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["patchlanguage",{"_index":21578,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchlanguage(userid",{"_index":21596,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchloginrequest",{"_index":15851,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(currentuserid",{"_index":15975,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(params",{"_index":15878,"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":17684,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderingofelements(urlparams",{"_index":17697,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderparams",{"_index":16543,"title":{"classes/PatchOrderParams.html":{}},"body":{"classes/PatchOrderParams.html":{},"controllers/RoomsController.html":{}}}],["patchvisibilityparams",{"_index":16548,"title":{"classes/PatchVisibilityParams.html":{}},"body":{"classes/PatchVisibilityParams.html":{},"controllers/RoomsController.html":{}}}],["patent",{"_index":22644,"title":{},"body":{"license.html":{}}}],["patents",{"_index":22703,"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":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.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":10343,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["path.parse(this.name",{"_index":10111,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["path.replace(':token",{"_index":1387,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["path.slice(1",{"_index":1688,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["path.targetpath",{"_index":17901,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path_separator",{"_index":3597,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathobjects",{"_index":17904,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathobjects.filter((p",{"_index":17910,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathofchildren",{"_index":3615,"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/OAuth2ToolLaunchStrategy.html":{}}}],["pathproperties.find",{"_index":267,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathproperties.length",{"_index":246,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathqueries",{"_index":3639,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["pathqueries.length",{"_index":3641,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["paths",{"_index":10303,"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":17890,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((p",{"_index":17905,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((path",{"_index":16719,"title":{},"body":{"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["paths.map(async",{"_index":17898,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathtofile",{"_index":16660,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["path}${id}${path_separator",{"_index":3621,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/LinkElementContent.html":{},"classes/LinkElementResponse.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":{},"classes/UsersList.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":23289,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["pattern.test(firstchar",{"_index":6593,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["pattern_login_from_dn",{"_index":12032,"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/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/RpcMessageProducer.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":18633,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["payload.completed",{"_index":19101,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["payload.parentid",{"_index":18720,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.parenttype",{"_index":18719,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.response",{"_index":18748,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["payload.response.ts",{"_index":18714,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:11",{"_index":18718,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:14",{"_index":18717,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:4",{"_index":18716,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.ts",{"_index":7024,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["payload[property.name",{"_index":2620,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["payment",{"_index":22746,"title":{},"body":{"license.html":{}}}],["peer",{"_index":22543,"title":{},"body":{"license.html":{}}}],["peers",{"_index":22546,"title":{},"body":{"license.html":{}}}],["pem",{"_index":7005,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["pending",{"_index":10028,"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":8252,"title":{},"body":{"injectables/ElementUc.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["perf_hooks",{"_index":18347,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["perfectly",{"_index":23344,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["performance",{"_index":18346,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["performance.now",{"_index":18365,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["performing",{"_index":14998,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"license.html":{}}}],["period",{"_index":18350,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["period.entity",{"_index":11045,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["period.entity.ts",{"_index":11338,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["period.entity.ts:12",{"_index":11341,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["period.entity.ts:15",{"_index":11340,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["permanently",{"_index":22652,"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":{},"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":{},"injectables/GroupUc.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":{},"modules/ToolApiModule.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":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission'})@apiresponse({status",{"_index":4615,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permission(s",{"_index":23661,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_create",{"_index":18839,"title":{},"body":{"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_edit",{"_index":23691,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_view",{"_index":8110,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["permission.create_user",{"_index":23676,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.entity",{"_index":9916,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.entity.ts",{"_index":9980,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["permission.entity.ts:18",{"_index":9987,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:21",{"_index":9989,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:24",{"_index":9990,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:27",{"_index":9986,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:30",{"_index":9985,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:33",{"_index":9984,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.enum",{"_index":23719,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.group_list",{"_index":11227,"title":{},"body":{"injectables/GroupUc.html":{}}}],["permission.homework_create",{"_index":18841,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.includes('news",{"_index":15213,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.join_meeting",{"_index":21950,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.news_create",{"_index":15180,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_edit",{"_index":15176,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_view",{"_index":15175,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.nextcloud_user",{"_index":15993,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["permission.oauth_client_edit",{"_index":15801,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.oauth_client_view",{"_index":15798,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.refid.equals(refobjectid",{"_index":9936,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.school_create",{"_index":23672,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.start_meeting",{"_index":21949,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.task_dashboard_teacher_view_v3",{"_index":19967,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.task_dashboard_view_v3",{"_index":19968,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.tool_admin",{"_index":9407,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["permission.topic_create",{"_index":18840,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.topic_edit",{"_index":14306,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.topic_view",{"_index":14304,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.user_login_migration_admin",{"_index":4497,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["permissioncontext",{"_index":19244,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["permissioncontexts.create",{"_index":23669,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissionmapper",{"_index":4693,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionmapping",{"_index":21876,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["permissionmapping[bbbrole",{"_index":21882,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["permissionmapping[role",{"_index":21933,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["permissionrefid",{"_index":10370,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["permissions",{"_index":1849,"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/INewsProperties.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":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissions(+share",{"_index":4617,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissions.body.params",{"_index":4623,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.body.params.ts",{"_index":20082,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:11",{"_index":20087,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:15",{"_index":20083,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:19",{"_index":20084,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:23",{"_index":20086,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:7",{"_index":20085,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.create",{"_index":4575,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.delete",{"_index":4576,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.dto",{"_index":4546,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.dto.ts",{"_index":20088,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:10",{"_index":20089,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["permissions.dto.ts:2",{"_index":20092,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:4",{"_index":20093,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:6",{"_index":20090,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:8",{"_index":20091,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.every((p",{"_index":9607,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.filter((permission",{"_index":15212,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permissions.includes(p",{"_index":1851,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["permissions.length",{"_index":9601,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.mapper",{"_index":4642,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["permissions.mapper.ts",{"_index":20096,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.mapper.ts:12",{"_index":20099,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.read",{"_index":4573,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.refid",{"_index":9919,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permissions.share",{"_index":4577,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.write",{"_index":4574,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissionsbody",{"_index":4607,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissionsdto",{"_index":4699,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionservice",{"_index":440,"title":{"injectables/PermissionService.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/PermissionService.html":{}}}],["permissive",{"_index":22476,"title":{},"body":{"license.html":{}}}],["permit",{"_index":22506,"title":{},"body":{"license.html":{}}}],["permits",{"_index":22323,"title":{},"body":{"license.html":{}}}],["permitted",{"_index":22271,"title":{},"body":{"license.html":{}}}],["permittedcourses",{"_index":20002,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedlessons",{"_index":20018,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedmatch",{"_index":21521,"title":{},"body":{"injectables/UserRepo.html":{}}}],["permittedsubmissions",{"_index":19239,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["perpetuity",{"_index":22585,"title":{},"body":{"license.html":{}}}],["persist",{"_index":7128,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"injectables/DashboardRepo.html":{},"interfaces/ICollectionFilePath.html":{},"entities/LtiTool.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["persist(entity",{"_index":7735,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush",{"_index":7729,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush(entity",{"_index":7737,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persisted",{"_index":13730,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["persistent",{"_index":1383,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["person",{"_index":17964,"title":{},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["personal",{"_index":22555,"title":{},"body":{"license.html":{}}}],["personenkontext",{"_index":17969,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["personenkontexte",{"_index":17997,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["personenstatus",{"_index":17970,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["perspective",{"_index":23642,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pertinent",{"_index":22764,"title":{},"body":{"license.html":{}}}],["physical",{"_index":22513,"title":{},"body":{"license.html":{}}}],["physically",{"_index":22525,"title":{},"body":{"license.html":{}}}],["pickimage",{"_index":16422,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["pickimage(images",{"_index":16425,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["pid",{"_index":17998,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["piece",{"_index":23061,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["pieces",{"_index":22296,"title":{},"body":{"license.html":{}}}],["pilot",{"_index":21393,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["pipe",{"_index":1273,"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":21652,"title":{},"body":{"modules/ValidationModule.html":{}}}],["pipeline",{"_index":10379,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{},"injectables/UserRepo.html":{}}}],["pipeline.push",{"_index":21546,"title":{},"body":{"injectables/UserRepo.html":{}}}],["pipes",{"_index":23188,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["pkcs1",{"_index":7004,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["place",{"_index":19838,"title":{},"body":{"injectables/TaskRepo.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["placeholder",{"_index":11677,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholder.length",{"_index":11815,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholders",{"_index":11842,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["placeholdervalue",{"_index":11821,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["places",{"_index":23097,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plain",{"_index":3814,"title":{},"body":{"injectables/BsonConverter.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["plaintextcontent",{"_index":1496,"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":1494,"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":10548,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["plaintoclass(filerecordparams",{"_index":10564,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["player",{"_index":11377,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["please",{"_index":2439,"title":{},"body":{"injectables/BaseDORepo.html":{},"entities/Board.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"injectables/FeathersRosterService.html":{},"injectables/FileRecordRepo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PermissionService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":23465,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["plus",{"_index":22689,"title":{},"body":{"license.html":{}}}],["png",{"_index":8830,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["point",{"_index":7039,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["pointer",{"_index":22840,"title":{},"body":{"license.html":{}}}],["pointing",{"_index":3035,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["policy",{"_index":23738,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pool",{"_index":22190,"title":{},"body":{"dependencies.html":{}}}],["populate",{"_index":4659,"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":19758,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["populateboard",{"_index":3664,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populateboard(board",{"_index":3672,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populated",{"_index":3429,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["populatereferences",{"_index":19151,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populatereferences(submissions",{"_index":19159,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populateroles",{"_index":20174,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["populateroles(roles",{"_index":20176,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["port",{"_index":1323,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/FilesStorageModule.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"interfaces/ScanResult.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["portion",{"_index":22550,"title":{},"body":{"license.html":{}}}],["pos",{"_index":1680,"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":7491,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["pos.y",{"_index":7494,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position",{"_index":2767,"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/ExternalToolElement.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":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LinkElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["position.groupindex",{"_index":7537,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position.x",{"_index":7626,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["position.y",{"_index":7627,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["positionfromgridindex",{"_index":7408,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["positionfromgridindex(index",{"_index":7443,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["possesses",{"_index":22522,"title":{},"body":{"license.html":{}}}],["possession",{"_index":22491,"title":{},"body":{"license.html":{}}}],["possibility",{"_index":22820,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["possible",{"_index":2537,"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":2929,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.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":20476,"title":{},"body":{"controllers/ToolController.html":{}}}],["post('/:externaltoolid')@apiokresponse({description",{"_index":20456,"title":{},"body":{"controllers/ToolController.html":{}}}],["post(':boardid/columns",{"_index":2955,"title":{},"body":{"controllers/BoardController.html":{}}}],["post(':cardid/elements",{"_index":4044,"title":{},"body":{"controllers/CardController.html":{}}}],["post(':columnid/cards",{"_index":4945,"title":{},"body":{"controllers/ColumnController.html":{}}}],["post(':contentelementid/submissions",{"_index":8225,"title":{},"body":{"controllers/ElementController.html":{}}}],["post(':roomid/copy",{"_index":17714,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':roomid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17686,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':scope/:scopeid",{"_index":21853,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':scope/:scopeid')@apioperation({summary",{"_index":21839,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':taskid/copy",{"_index":19587,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':taskid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":19547,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':token/import",{"_index":18663,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["post('clients",{"_index":15911,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["post('close",{"_index":21111,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('close')@apiunprocessableentityresponse({description",{"_index":21037,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('export",{"_index":7837,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('export/:collectionname",{"_index":7834,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('ldap",{"_index":14491,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('lessons/:lessonid/copy",{"_index":17718,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('lessons/:lessonid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17689,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('local",{"_index":14496,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('migrate",{"_index":12759,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["post('oauth2",{"_index":14500,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('seed",{"_index":13633,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["post('seed/:collectionname",{"_index":7840,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('start",{"_index":21101,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('start')@apiunprocessableentityresponse({description",{"_index":21076,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('startsync",{"_index":12746,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('startusermigration",{"_index":12767,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('sync",{"_index":7846,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post()@apicreatedresponse({description",{"_index":20387,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["post(`${this.options.uri}${path",{"_index":1278,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(`${this.options.uri}/api/v1/login",{"_index":1285,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(path",{"_index":1277,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{}}}],["post(subpath",{"_index":1670,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["post.params.ts",{"_index":5820,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:10",{"_index":5832,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:14",{"_index":5822,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:15",{"_index":18111,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:18",{"_index":5824,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:22",{"_index":18109,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:23",{"_index":5826,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:26",{"_index":18112,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:30",{"_index":5831,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:34",{"_index":5834,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["postasadmin(path",{"_index":1258,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["postloginredirect",{"_index":15408,"title":{},"body":{"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"classes/SSOLoginQuery.html":{},"injectables/UserMigrationService.html":{}}}],["potential",{"_index":6664,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["potentially",{"_index":23751,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["povider",{"_index":22892,"title":{},"body":{"todo.html":{}}}],["power",{"_index":22461,"title":{},"body":{"license.html":{}}}],["powershell",{"_index":23517,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["pr",{"_index":22236,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["practical",{"_index":22283,"title":{},"body":{"license.html":{}}}],["practice",{"_index":22721,"title":{},"body":{"license.html":{}}}],["practices",{"_index":23474,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["practices/layers/orm",{"_index":22897,"title":{},"body":{"todo.html":{}}}],["preamble",{"_index":22274,"title":{},"body":{"license.html":{}}}],["precise",{"_index":4143,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{}}}],["preconditions",{"_index":22201,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["predecessor",{"_index":22686,"title":{},"body":{"license.html":{}}}],["predefined",{"_index":23263,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["preexisting",{"_index":23323,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["preferences",{"_index":12586,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["preferred",{"_index":22389,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["prefetch",{"_index":17086,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefetchcount",{"_index":17089,"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/GroupController.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/PseudonymController.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/ToolReferenceController.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":11602,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["premature",{"_index":23085,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["preparation",{"_index":23343,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepare",{"_index":13889,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["preparebbbcreateconfigbuilder",{"_index":21780,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["preparebbbcreateconfigbuilder(scope",{"_index":21790,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["prepared",{"_index":23350,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepended",{"_index":22227,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prerendering",{"_index":4138,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["present",{"_index":22781,"title":{},"body":{"license.html":{}}}],["presentationurl",{"_index":2247,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["presents",{"_index":22384,"title":{},"body":{"license.html":{}}}],["preservation",{"_index":22617,"title":{},"body":{"license.html":{}}}],["preset",{"_index":21668,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["prettier",{"_index":23020,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["prevent",{"_index":2473,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["prevented",{"_index":22578,"title":{},"body":{"license.html":{}}}],["prevention",{"_index":1769,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["preview",{"_index":6249,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["preview.producer",{"_index":16651,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["preview.resize(width",{"_index":16678,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview.stream(format",{"_index":16679,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview_not_possible_scan_status_blocked",{"_index":10036,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_error",{"_index":10034,"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":10035,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_wrong_mime_type",{"_index":10037,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_possible",{"_index":10032,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewactionsloggable",{"_index":16573,"title":{"classes/PreviewActionsLoggable.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewgeneratorconsumer.generatepreview",{"_index":16634,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:end",{"_index":16675,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:start",{"_index":16669,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewproducer.generate:finished",{"_index":16692,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewproducer.generate:started",{"_index":16690,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewbuilder",{"_index":16584,"title":{"classes/PreviewBuilder.html":{}},"body":{"classes/PreviewBuilder.html":{},"injectables/PreviewService.html":{}}}],["previewbuilder.buildparams(filerecord",{"_index":16716,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewbuilder.buildpayload(params",{"_index":16730,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewconfig",{"_index":16601,"title":{"interfaces/PreviewConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["previewfileoptions",{"_index":16577,"title":{"interfaces/PreviewFileOptions.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewfileparams",{"_index":10774,"title":{"interfaces/PreviewFileParams.html":{}},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["previewfilepath",{"_index":10777,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"injectables/PreviewService.html":{}}}],["previewgeneratoramqpmodule",{"_index":16607,"title":{"modules/PreviewGeneratorAMQPModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules.html":{}}}],["previewgeneratorbuilder",{"_index":16612,"title":{"classes/PreviewGeneratorBuilder.html":{}},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorbuilder.buildfile(preview",{"_index":16672,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorconsumer",{"_index":16617,"title":{"injectables/PreviewGeneratorConsumer.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewgeneratorconsumermodule",{"_index":16610,"title":{"modules/PreviewGeneratorConsumerModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules.html":{}}}],["previewgeneratorconsumermodule.register",{"_index":16611,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["previewgeneratorproducermodule",{"_index":10585,"title":{"modules/PreviewGeneratorProducerModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules.html":{}}}],["previewgeneratorservice",{"_index":16621,"title":{"injectables/PreviewGeneratorService.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorservice(storageclient",{"_index":16641,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewinputmimetypes",{"_index":10024,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewmoduleconfig",{"_index":16604,"title":{"interfaces/PreviewModuleConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewProducer.html":{}}}],["previewoptions",{"_index":16580,"title":{"interfaces/PreviewOptions.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewoptions.format",{"_index":16582,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoptions.width",{"_index":16583,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoutputmimetypes",{"_index":6230,"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":{}}}],["previewoutputmimetypes'})@isoptional()@isenum(previewoutputmimetypes",{"_index":16681,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previewparams",{"_index":6244,"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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["previewparams.outputformat",{"_index":16727,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewparams.width",{"_index":16600,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["previewproducer",{"_index":16649,"title":{"injectables/PreviewProducer.html":{}},"body":{"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{}}}],["previewresponsemessage",{"_index":16606,"title":{"interfaces/PreviewResponseMessage.html":{}},"body":{"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewservice",{"_index":10497,"title":{"injectables/PreviewService.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["previewstatus",{"_index":6190,"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":10105,"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":10100,"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":10108,"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":10107,"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":10102,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_possible",{"_index":10103,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewwidth",{"_index":6231,"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":16683,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previous",{"_index":22688,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["previousexternalid",{"_index":12183,"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":5516,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["previousteachers",{"_index":5089,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["price",{"_index":22292,"title":{},"body":{"license.html":{}}}],["primarily",{"_index":22748,"title":{},"body":{"license.html":{}}}],["primary",{"_index":771,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{}}}],["primarykey",{"_index":2456,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["principle",{"_index":23064,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["principles",{"_index":23056,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prior",{"_index":22654,"title":{},"body":{"license.html":{}}}],["privacy",{"_index":8311,"title":{},"body":{"classes/ErrorLoggable.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["privacy_permission",{"_index":7122,"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":{}}}],["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":16533,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["privacyprotect()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":16539,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["privacyprotected",{"_index":8320,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["private",{"_index":111,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.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/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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":{},"classes/SchoolSpecificFileCopyServiceImpl.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.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":15616,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["privatedevice",{"_index":13208,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["privatekey",{"_index":6995,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["probably",{"_index":3647,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["problem",{"_index":5463,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"modules/ToolLaunchModule.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["problems",{"_index":22784,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["procedures",{"_index":22574,"title":{},"body":{"license.html":{}}}],["proceed",{"_index":16497,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["proceedbuttonurl",{"_index":16462,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["process",{"_index":6833,"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":15361,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:2",{"_index":15363,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:4",{"_index":15362,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.env.mongo_test_uri}/${dbname",{"_index":14897,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["processcookies",{"_index":11486,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processcookies(setcookies",{"_index":11498,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processed",{"_index":11666,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["processing",{"_index":4612,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["processoauthlogin",{"_index":16199,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processoauthlogin(cachedstate",{"_index":16208,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processredirect",{"_index":11487,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirect(dto",{"_index":11501,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirectcascade",{"_index":11412,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["processredirectcascade(initresponse",{"_index":11420,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["procuring",{"_index":22738,"title":{},"body":{"license.html":{}}}],["produce",{"_index":1733,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["producer.module.ts",{"_index":16650,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["producer.ts",{"_index":17769,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:12",{"_index":17773,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:21",{"_index":17771,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:29",{"_index":17772,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:5",{"_index":17770,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["produces",{"_index":23254,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["product",{"_index":2115,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"license.html":{}}}],["production",{"_index":11635,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":22749,"title":{},"body":{"license.html":{}}}],["profile",{"_index":13534,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["program",{"_index":22288,"title":{},"body":{"license.html":{}}}],["program's",{"_index":22470,"title":{},"body":{"license.html":{}}}],["programmer",{"_index":22851,"title":{},"body":{"license.html":{}}}],["programming",{"_index":22394,"title":{},"body":{"license.html":{}}}],["programs",{"_index":22297,"title":{},"body":{"license.html":{}}}],["progress",{"_index":6164,"title":{},"body":{"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prohibit",{"_index":22433,"title":{},"body":{"license.html":{},"todo.html":{}}}],["prohibiting",{"_index":22458,"title":{},"body":{"license.html":{}}}],["prohibits",{"_index":22743,"title":{},"body":{"license.html":{}}}],["project",{"_index":21532,"title":{},"body":{"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prom",{"_index":17351,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"dependencies.html":{}}}],["prometheus",{"_index":16785,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp",{"_index":16810,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp.listen(prometheusmetricsappport",{"_index":16812,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsappport",{"_index":16808,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig",{"_index":16732,"title":{"classes/PrometheusMetricsConfig.html":{}},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance",{"_index":16805,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.isenabled",{"_index":16798,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.port",{"_index":16809,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate",{"_index":16778,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.api_response_time_metric_middleware_successfully_added",{"_index":16802,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.feature_disabled_middlewares_will_not_be_created",{"_index":16800,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable",{"_index":16774,"title":{"classes/PrometheusMetricsSetupStateLoggable.html":{}},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_default_metrics_disabled",{"_index":16806,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_metrics_route_metrics_disabled",{"_index":16807,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.feature_disabled_app_will_not_be_created",{"_index":16804,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prominent",{"_index":22386,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prominently",{"_index":22381,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["promise((resolve",{"_index":13784,"title":{},"body":{"injectables/LdapService.html":{}}}],["promise.all",{"_index":284,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/DashboardModelMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"injectables/GroupUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.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/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/TeamsRepo.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["promise.all(adduserids.map((nextclouduserid",{"_index":15309,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(array.from(modelentity.gridelements).map(async",{"_index":7688,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(copyrequests",{"_index":17902,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["promise.all(domainobject.children.map(async",{"_index":17238,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["promise.all(gridelement.getreferences().map((ref",{"_index":7709,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(promises",{"_index":2406,"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":7680,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(removeuserids.map((nextclouduserid",{"_index":15307,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(studententities.map((user",{"_index":9701,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(substitutionteacherentities.map((user",{"_index":9704,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(teacherentities.map((user",{"_index":9703,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(toolreferencespromises",{"_index":20705,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["promise.allsettled(boarddo.children.map((child",{"_index":17187,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["promise.allsettled(promises",{"_index":3052,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.reject",{"_index":21519,"title":{},"body":{"injectables/UserRepo.html":{}}}],["promise.reject(new",{"_index":3033,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["promise.resolve",{"_index":2616,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/FileSystemAdapter.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/TestBootstrapConsole.html":{}}}],["promise.resolve(configuration.get('hydra_uri",{"_index":15946,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["promise.resolve(dummyresponse('h5p",{"_index":11376,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["promise.resolve(false",{"_index":1103,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["promise.resolve(new",{"_index":13124,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(oauthdata",{"_index":16299,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(response",{"_index":18657,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["promises",{"_index":2401,"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":{}}}],["promisify",{"_index":22119,"title":{},"body":{"dependencies.html":{}}}],["prompt",{"_index":16289,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["prop",{"_index":1841,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["propagate",{"_index":22354,"title":{},"body":{"license.html":{}}}],["propagating",{"_index":22672,"title":{},"body":{"license.html":{}}}],["propagation",{"_index":22364,"title":{},"body":{"license.html":{}}}],["propaly",{"_index":12488,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["proper",{"_index":3103,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["properly",{"_index":23420,"title":{},"body":{"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":{},"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":{},"classes/AuthenticationValues.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/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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"interfaces/ClassProps.html":{},"classes/ClassSortParams.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":{},"injectables/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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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/FederalStateEntity.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":{},"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":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponse.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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":{},"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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"interfaces/ScanResult.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/SchoolYearEntity.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":{},"classes/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/UsersList.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((property",{"_index":2618,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["properties.some",{"_index":2624,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertiestopopulate",{"_index":15075,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["property",{"_index":240,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BasicToolLaunchStrategy.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":{},"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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalStateEntity.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/Lti11ToolConfigEntity.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.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":8921,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"entities/PseudonymEntity.html":{},"entities/Role.html":{}}}],["property({comment",{"_index":19060,"title":{},"body":{"entities/SubmissionItemNode.html":{}}}],["property({fieldname",{"_index":4771,"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/FederalStateEntity.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/SubmissionContainerElementNode.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["property({onupdate",{"_index":2484,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["property({type",{"_index":12723,"title":{},"body":{"entities/ImportUser.html":{}}}],["property.location",{"_index":241,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{}}}],["property.name",{"_index":268,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["property.value",{"_index":253,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{}}}],["propertydata",{"_index":134,"title":{"classes/PropertyData.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["propertydata.push",{"_index":333,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["propertylocation",{"_index":207,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.body",{"_index":2619,"title":{},"body":{"injectables/BasicToolLaunchStrategy.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/OAuth2ToolLaunchStrategy.html":{}}}],["propertypath",{"_index":1448,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["propertypath.push(validationerror.property",{"_index":1450,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["props",{"_index":595,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/LinkElement.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/OauthLoginResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PropertyData.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/ResolvedGroupUser.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":6466,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.accesskeyid",{"_index":12268,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.accesstoken",{"_index":14506,"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":12422,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.alternativetext",{"_index":9860,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.availabledate",{"_index":12461,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.axiosconfig",{"_index":11482,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.baseurl",{"_index":2569,"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":9929,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.cancelbuttonurl",{"_index":16468,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.caption",{"_index":9859,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.classnames",{"_index":12844,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.classnames.length",{"_index":12024,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.client",{"_index":12109,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.client_id",{"_index":1532,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.client_secret",{"_index":1534,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.clientid",{"_index":15519,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.clientsecret",{"_index":15520,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["props.closedat",{"_index":21139,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.code",{"_index":1540,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.color",{"_index":6548,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.colums",{"_index":7496,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.comment",{"_index":12283,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.completed",{"_index":19066,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["props.config",{"_index":2044,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.content",{"_index":6866,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.contents",{"_index":11891,"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":4778,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["props.contextexternaltool",{"_index":8664,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["props.contextexternaltoolid",{"_index":8653,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.contextid",{"_index":5788,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.contextref",{"_index":5716,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.contexttype",{"_index":5790,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.cookies",{"_index":11479,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.copyingsince",{"_index":6554,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.course",{"_index":6758,"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":6759,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.coursegroup",{"_index":11889,"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":9999,"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/FederalStateEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.creator",{"_index":6869,"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":11475,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.customs",{"_index":7154,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.data",{"_index":2036,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.default",{"_index":7219,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["props.defaultvalue",{"_index":7360,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["props.delete",{"_index":10001,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.deleted",{"_index":9943,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.deletedat",{"_index":9942,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.deletedsince",{"_index":10065,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.description",{"_index":6541,"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":{},"classes/UsersList.html":{}}}],["props.descriptioninputformat",{"_index":12458,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.destinationexternalreference",{"_index":4761,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.displayat",{"_index":6868,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.displayname",{"_index":5718,"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/SystemEntity.html":{}}}],["props.duedate",{"_index":12463,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.email",{"_index":9543,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.enddate",{"_index":12226,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["props.endpointurl",{"_index":12266,"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":15709,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalid",{"_index":6872,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalSourceResponse.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.externalidtoken",{"_index":15720,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["props.externalorganizationid",{"_index":8441,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["props.externalschool",{"_index":15707,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalsource",{"_index":11010,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.externalsourcename",{"_index":4335,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.externaluser",{"_index":15705,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externaluserid",{"_index":8447,"title":{},"body":{"classes/ExternalGroupUserDto.html":{}}}],["props.features",{"_index":6556,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UsersList.html":{}}}],["props.federalstate",{"_index":12220,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.filetype",{"_index":17109,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["props.finishedat",{"_index":21141,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.firstname",{"_index":9539,"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":12028,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.forcepasswordchange",{"_index":12592,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.friendlyurl",{"_index":7165,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.from",{"_index":8437,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.frontchannel_logout_uri",{"_index":7171,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.frontchannellogouturi",{"_index":15526,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.grade",{"_index":12289,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradecomment",{"_index":12291,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.graded",{"_index":12287,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradelevel",{"_index":4276,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.grant_type",{"_index":1538,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.grid.foreach((element",{"_index":7498,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.gridelements",{"_index":7576,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["props.height",{"_index":4064,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["props.hidden",{"_index":11887,"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":6148,"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ContextRef.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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":15493,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.imageurl",{"_index":14346,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["props.importuserid",{"_index":12838,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.inmaintenancesince",{"_index":12212,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.inputformat",{"_index":17488,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.inusermigration",{"_index":12213,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.invitationlink",{"_index":4288,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.iscopyfrom",{"_index":10062,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.isdirectory",{"_index":9926,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.ishidden",{"_index":7173,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{}}}],["props.islocal",{"_index":7158,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isoptional",{"_index":7229,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.istemplate",{"_index":7156,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isupgradable",{"_index":4341,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.key",{"_index":7138,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.keyvalue",{"_index":1784,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.language",{"_index":12594,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastloginsystemchange",{"_index":12598,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastname",{"_index":9541,"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":14578,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["props.ldapconfig",{"_index":12428,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.ldapdn",{"_index":4293,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.lesson",{"_index":12468,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.license",{"_index":12111,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.localcookies",{"_index":6146,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.location",{"_index":7221,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["props.lockid",{"_index":9965,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.loginname",{"_index":12840,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.logo",{"_index":8495,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.logo_url",{"_index":7142,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.logobase64",{"_index":8698,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["props.logourl",{"_index":6467,"title":{},"body":{"classes/County.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.lti_message_type",{"_index":7144,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.lti_version",{"_index":7146,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.mandatorysince",{"_index":21135,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.match",{"_index":12845,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.matchedby",{"_index":12026,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.materials",{"_index":11892,"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":12113,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.method",{"_index":20562,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.mimetype",{"_index":10059,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.name",{"_index":4281,"title":{},"body":{"entities/ClassEntity.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/FederalStateEntity.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/SchoolYearEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/UsersList.html":{}}}],["props.oauthclientid",{"_index":7163,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.oauthconfig",{"_index":12424,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.officialschoolnumber",{"_index":8457,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.oidcconfig",{"_index":12426,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.opennewtab",{"_index":7169,"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":21672,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.organization",{"_index":11050,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.organizationid",{"_index":11014,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.originalcolumnboardid",{"_index":4744,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.origintoolid",{"_index":7159,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.outdatedsince",{"_index":12600,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.parameters",{"_index":5720,"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":3599,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.id",{"_index":3600,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.level",{"_index":3606,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parentid",{"_index":9808,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.parenttype",{"_index":9807,"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":20563,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.permissions",{"_index":9964,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.position",{"_index":3608,"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":15731,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.preferences",{"_index":12596,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.previousexternalid",{"_index":12209,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{}}}],["props.privacy_permission",{"_index":7152,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.private",{"_index":12464,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.proceedbuttonurl",{"_index":16466,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.properties",{"_index":20515,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["props.provider",{"_index":15732,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.provisioningstrategy",{"_index":12430,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.provisioningurl",{"_index":12432,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.pseudonym",{"_index":8928,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["props.publicsubmissions",{"_index":12472,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.read",{"_index":9997,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.reason",{"_index":10042,"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":21400,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["props.redirect_uri",{"_index":1536,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.redirecturis",{"_index":15522,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.references.sort(this.sortreferences",{"_index":7472,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.referer",{"_index":11477,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.refownermodel",{"_index":9961,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.refpermmodel",{"_index":9994,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["props.refreshtoken",{"_index":15495,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["props.regex",{"_index":7225,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.regexcomment",{"_index":7227,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.region",{"_index":12272,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.relatedresources",{"_index":12115,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.requesttoken",{"_index":10044,"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":7148,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.response",{"_index":11480,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.role",{"_index":11315,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/ResolvedGroupUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.roleid",{"_index":11308,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.rolename",{"_index":8449,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.rolenames",{"_index":12842,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.rolenames.length",{"_index":12021,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.roles",{"_index":7150,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/IRoleProperties.html":{},"entities/LtiTool.html":{},"entities/Role.html":{}}}],["props.school",{"_index":6544,"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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{}}}],["props.schoolid",{"_index":4283,"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":12178,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.schooltool",{"_index":5786,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["props.schooltoolid",{"_index":18117,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["props.schooltoolref",{"_index":5714,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.schoolyear",{"_index":4339,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.scope",{"_index":7223,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.secret",{"_index":7140,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{}}}],["props.secretaccesskey",{"_index":12270,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.secretvalue",{"_index":1786,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.securitycheck",{"_index":9952,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.share",{"_index":20095,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["props.sharetokens",{"_index":9954,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.size",{"_index":9927,"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":7167,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.source",{"_index":4297,"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":6874,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourceoptions",{"_index":4299,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.sourcesystem",{"_index":21156,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.sourcesystemid",{"_index":21131,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.startdate",{"_index":6552,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UsersList.html":{}}}],["props.startedat",{"_index":21137,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.state",{"_index":15729,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.status",{"_index":2038,"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":2040,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.storagefilename",{"_index":9928,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.storageprovider",{"_index":9930,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.student",{"_index":12281,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.students",{"_index":6760,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.subjects",{"_index":12117,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.submitted",{"_index":12286,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.successor",{"_index":4295,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.system",{"_index":8472,"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/ExternalSourceResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{}}}],["props.systems",{"_index":12215,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.tags",{"_index":12119,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.target",{"_index":3434,"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":12121,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.targetmodel",{"_index":21671,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetsystem",{"_index":21158,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.targetsystemid",{"_index":21133,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.task",{"_index":12285,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teacherids",{"_index":4287,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.teachers",{"_index":4337,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.teamid",{"_index":20110,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teammembers",{"_index":12292,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teamname",{"_index":20112,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teamsubmissions",{"_index":12474,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.teamusers",{"_index":12561,"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":12562,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.text",{"_index":17487,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.thumbnail",{"_index":9949,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.thumbnailrequesttoken",{"_index":9950,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.timestamps",{"_index":8654,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.title",{"_index":3609,"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/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":15524,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.tool",{"_index":12176,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.toolid",{"_index":8930,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.toolversion",{"_index":5722,"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":11924,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["props.tspuid",{"_index":4451,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["props.type",{"_index":4333,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/ContextRef.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/SystemEntity.html":{},"classes/ToolLaunchData.html":{}}}],["props.until",{"_index":8439,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.untildate",{"_index":6550,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.updatedat",{"_index":623,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/County.html":{},"entities/FederalStateEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.updater",{"_index":6870,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.url",{"_index":7136,"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/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.user",{"_index":11314,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/ImportUser.html":{},"classes/ResolvedGroupUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.userid",{"_index":416,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"injectables/ColumnBoardCopyService.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":4284,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.userloginmigration",{"_index":12217,"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":8435,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.users.map",{"_index":11012,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validfrom",{"_index":11007,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validperiod",{"_index":11048,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.validuntil",{"_index":11008,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.value",{"_index":7247,"title":{},"body":{"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/PropertyData.html":{}}}],["props.version",{"_index":8496,"title":{},"body":{"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.versionkey",{"_index":9968,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.write",{"_index":9995,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.year",{"_index":4290,"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":2525,"title":{},"body":{"classes/BaseFactory.html":{}}}],["protect",{"_index":22301,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.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/ExternalToolElement.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"injectables/FilesStorageProducer.html":{},"classes/Group.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IDashboardRepo.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LessonFactory.html":{},"classes/LinkElement.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/PreviewProducer.html":{},"injectables/ProvisioningService.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymsRepo.html":{},"classes/RichTextElement.html":{},"classes/RpcMessageProducer.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":21624,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles",{"_index":21618,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles.find((protectedrole",{"_index":21623,"title":{},"body":{"injectables/UserService.html":{}}}],["protecting",{"_index":22441,"title":{},"body":{"license.html":{}}}],["protection",{"_index":22481,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["protocol",{"_index":13420,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapper",{"_index":13476,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapperrepresentation",{"_index":13351,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocols",{"_index":22597,"title":{},"body":{"license.html":{}}}],["prototype",{"_index":1197,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["prove",{"_index":22800,"title":{},"body":{"license.html":{}}}],["provide",{"_index":836,"title":{},"body":{"modules/AccountModule.html":{},"modules/AntivirusModule.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/PreviewGeneratorConsumerModule.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":3281,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"modules/ErrorModule.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/ICurrentUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/LegacyLogger.html":{},"interfaces/OauthCurrentUser.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":4588,"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/SystemEntity.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":11641,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["provider.client",{"_index":15773,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.consent",{"_index":15807,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.controller",{"_index":15769,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.controller.ts",{"_index":15847,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:103",{"_index":15859,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:109",{"_index":15865,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:117",{"_index":15880,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:135",{"_index":15855,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:143",{"_index":15862,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:151",{"_index":15877,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:169",{"_index":15872,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:182",{"_index":15884,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:188",{"_index":15869,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:49",{"_index":15867,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:60",{"_index":15874,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:80",{"_index":15857,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:91",{"_index":15886,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.login",{"_index":12637,"title":{},"body":{"injectables/IdTokenService.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["provider.logout",{"_index":15890,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["provider.mapper",{"_index":13310,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["provider.mapper.ts",{"_index":16276,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:6",{"_index":16279,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:9",{"_index":16281,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.module",{"_index":15771,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.module.ts",{"_index":16013,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["provider.service",{"_index":16069,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider.service.ts",{"_index":16037,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:14",{"_index":16050,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:16",{"_index":16042,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:18",{"_index":16061,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:20",{"_index":16049,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:22",{"_index":16040,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:24",{"_index":16060,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:26",{"_index":16044,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:28",{"_index":16054,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:30",{"_index":16055,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:32",{"_index":16059,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:39",{"_index":16046,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:41",{"_index":16052,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:43",{"_index":16065,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:45",{"_index":16048,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:47",{"_index":16057,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:49",{"_index":16063,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.uc",{"_index":15895,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.uc.ts",{"_index":16072,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:10",{"_index":16075,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:15",{"_index":16077,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:7",{"_index":16073,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider/controller/dto",{"_index":15828,"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":4193,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/challenge.params.ts:11",{"_index":4195,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/consent",{"_index":5431,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["provider/controller/dto/request/id.params.ts",{"_index":12609,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/id.params.ts:11",{"_index":12610,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/list",{"_index":14360,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["provider/controller/dto/request/login",{"_index":14508,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["provider/controller/dto/request/oauth",{"_index":15367,"title":{},"body":{"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{}}}],["provider/controller/dto/request/revoke",{"_index":17445,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["provider/controller/dto/request/user.params.ts",{"_index":21495,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/request/user.params.ts:7",{"_index":21496,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/response/consent",{"_index":5524,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts",{"_index":5481,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:16",{"_index":5491,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:22",{"_index":5494,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:28",{"_index":5497,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:32",{"_index":5500,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:36",{"_index":5501,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:40",{"_index":5504,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:44",{"_index":5506,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:48",{"_index":5508,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:54",{"_index":5512,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:6",{"_index":5489,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:60",{"_index":5513,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:66",{"_index":5514,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:72",{"_index":5517,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:76",{"_index":5518,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/login.response.ts",{"_index":14513,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:13",{"_index":14520,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:16",{"_index":14517,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:19",{"_index":14518,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:23",{"_index":14521,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:27",{"_index":14523,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:31",{"_index":14524,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:37",{"_index":14525,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:43",{"_index":14529,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:48",{"_index":14530,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:51",{"_index":14531,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:6",{"_index":14516,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oauth",{"_index":5521,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oidc",{"_index":5519,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts",{"_index":17308,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:12",{"_index":17314,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:3",{"_index":17310,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/oauth",{"_index":15846,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/dto",{"_index":9311,"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":16828,"title":{},"body":{"interfaces/ProviderOidcContext.html":{}}}],["provider/dto/request/accept",{"_index":338,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{}}}],["provider/dto/request/reject",{"_index":17330,"title":{},"body":{"interfaces/RejectRequestBody.html":{}}}],["provider/dto/response/consent",{"_index":16824,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["provider/dto/response/consent.response.ts",{"_index":16819,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{}}}],["provider/dto/response/introspect.response.ts",{"_index":13051,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["provider/dto/response/login.response.ts",{"_index":16827,"title":{},"body":{"interfaces/ProviderLoginResponse.html":{}}}],["provider/dto/response/redirect.response.ts",{"_index":16829,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{}}}],["provider/error/id",{"_index":12612,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["provider/hydra/hydra.adapter",{"_index":16071,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider/index",{"_index":15795,"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":15618,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/interface/token",{"_index":15619,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/mapper/oauth",{"_index":15982,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/oauth",{"_index":15767,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider/service/id",{"_index":12620,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/service/oauth",{"_index":15947,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["provider/uc/oauth",{"_index":15772,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["providerconsentresponse",{"_index":15825,"title":{"interfaces/ProviderConsentResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerconsentsessionresponse",{"_index":15888,"title":{"interfaces/ProviderConsentSessionResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerid",{"_index":13402,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["providerloginresponse",{"_index":15887,"title":{"interfaces/ProviderLoginResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroauthclient",{"_index":9307,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroidccontext",{"_index":16820,"title":{"interfaces/ProviderOidcContext.html":{}},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["provideroptions",{"_index":12389,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["providerredirectresponse",{"_index":15827,"title":{"interfaces/ProviderRedirectResponse.html":{}},"body":{"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":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.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/ICleanOptions.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":7985,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["provides",{"_index":4514,"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":4603,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CoreModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["provision",{"_index":18261,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"license.html":{}}}],["provisionally",{"_index":22650,"title":{},"body":{"license.html":{}}}],["provisiondata",{"_index":16850,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisiondata(oauthdata",{"_index":16864,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisionexternalgroup",{"_index":16304,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalgroup(externalgroup",{"_index":16312,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool",{"_index":16305,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool(externalschool",{"_index":16314,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser",{"_index":16306,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser(externaluser",{"_index":16316,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning",{"_index":11156,"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":21488,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["provisioning.service",{"_index":16408,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioning.service.ts",{"_index":16302,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:121",{"_index":16313,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:166",{"_index":16310,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:191",{"_index":16319,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:20",{"_index":16308,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:32",{"_index":16315,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:69",{"_index":16317,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.strategy",{"_index":12336,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["provisioningdto",{"_index":13098,"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":16834,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["provisioningmodule",{"_index":15578,"title":{"modules/ProvisioningModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["provisioningservice",{"_index":15395,"title":{"injectables/ProvisioningService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["provisioningstrategy",{"_index":12332,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisioningstrategy:10",{"_index":16296,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:14",{"_index":16295,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:24",{"_index":13096,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:28",{"_index":13095,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:30",{"_index":17981,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:31",{"_index":16294,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:34",{"_index":17980,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:5",{"_index":16406,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningstrategy:61",{"_index":13090,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:7",{"_index":16405,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningsystemdto",{"_index":15699,"title":{"classes/ProvisioningSystemDto.html":{}},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper",{"_index":16869,"title":{"classes/ProvisioningSystemInputMapper.html":{}},"body":{"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper.maptointernal(systemdto",{"_index":16880,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisioningurl",{"_index":12333,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisionuser",{"_index":15392,"title":{},"body":{"injectables/OAuthService.html":{}}}],["provisionuser(systemid",{"_index":15414,"title":{},"body":{"injectables/OAuthService.html":{}}}],["proxy",{"_index":18566,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{}}}],["proxy's",{"_index":22790,"title":{},"body":{"license.html":{}}}],["proxy.service",{"_index":5611,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["proxy.service.ts",{"_index":16420,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["proxy.service.ts:14",{"_index":16424,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["proxy.service.ts:34",{"_index":16428,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["ps256",{"_index":1599,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps384",{"_index":1600,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps512",{"_index":1601,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["pseudonym",{"_index":8920,"title":{"classes/Pseudonym.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.entity",{"_index":16977,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["pseudonym.entity.ts",{"_index":8919,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["pseudonym.entity.ts:18",{"_index":8922,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:21",{"_index":8923,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:24",{"_index":8924,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.id",{"_index":16949,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.module",{"_index":16921,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["pseudonym.pseudonym",{"_index":9735,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.repo.ts",{"_index":8933,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:10",{"_index":8942,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:104",{"_index":8958,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:112",{"_index":8954,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:13",{"_index":8951,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:24",{"_index":8949,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:39",{"_index":8947,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:48",{"_index":8944,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:69",{"_index":8946,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:77",{"_index":8956,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:91",{"_index":8960,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.service",{"_index":9676,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.toolid",{"_index":16950,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.userid",{"_index":16951,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonymapimodule",{"_index":16914,"title":{"modules/PseudonymApiModule.html":{}},"body":{"modules/PseudonymApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["pseudonymcontroller",{"_index":16920,"title":{"controllers/PseudonymController.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{}}}],["pseudonymentity",{"_index":16940,"title":{"entities/PseudonymEntity.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymentity(entityprops",{"_index":17057,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["pseudonymentityprops",{"_index":16945,"title":{"interfaces/PseudonymEntityProps.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymmapper",{"_index":16930,"title":{"classes/PseudonymMapper.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{}}}],["pseudonymmapper.maptoresponse(pseudonym",{"_index":16939,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonymmodule",{"_index":4583,"title":{"modules/PseudonymModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymApiModule.html":{},"modules/PseudonymModule.html":{},"modules/ToolLaunchModule.html":{},"modules.html":{}}}],["pseudonymous",{"_index":7114,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["pseudonymparams",{"_index":16925,"title":{"classes/PseudonymParams.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymParams.html":{}}}],["pseudonympromise",{"_index":17008,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymprops",{"_index":16910,"title":{"interfaces/PseudonymProps.html":{}},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["pseudonymrepo",{"_index":16989,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymresponse",{"_index":16932,"title":{"classes/PseudonymResponse.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{}}}],["pseudonymresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":16927,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonyms",{"_index":8926,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonyms.loggable",{"_index":20293,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonyms_too_many_pseudonyms_found",{"_index":20297,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonymschool",{"_index":17041,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymscope",{"_index":8962,"title":{"classes/PseudonymScope.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{}}}],["pseudonymsearchquery",{"_index":8953,"title":{"interfaces/PseudonymSearchQuery.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{}}}],["pseudonymservice",{"_index":9647,"title":{"injectables/PseudonymService.html":{}},"body":{"injectables/FeathersRosterService.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonymsrepo",{"_index":16956,"title":{"injectables/PseudonymsRepo.html":{}},"body":{"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymuc",{"_index":16918,"title":{"injectables/PseudonymUc.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymUc.html":{}}}],["pseudonymuser",{"_index":17039,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymuserid",{"_index":17037,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["public",{"_index":116,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoCopyService.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":{},"injectables/ContextExternalToolUc.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":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementResponseMapper.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":{},"classes/LinkElement.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"injectables/Lti11EncryptionService.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":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.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":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"controllers/ServerController.html":{},"classes/SortHelper.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":{},"classes/UsersList.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":15477,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["publicclient",{"_index":13422,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["publicity",{"_index":22621,"title":{},"body":{"license.html":{}}}],["publickey",{"_index":7002,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["publiclink",{"_index":15223,"title":{},"body":{"injectables/NexboardService.html":{}}}],["publicly",{"_index":19284,"title":{},"body":{"controllers/SystemController.html":{},"license.html":{}}}],["publicservice",{"_index":23132,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["publicsubmissions",{"_index":12439,"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":17060,"title":{"classes/PublicSystemListResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publicsystemlistresponse(systemresponses",{"_index":19453,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["publicsystemresponse",{"_index":17063,"title":{"classes/PublicSystemResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publish",{"_index":4882,"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":2736,"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":22037,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["pull",{"_index":22235,"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":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["purposes",{"_index":4139,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["pursuant",{"_index":22736,"title":{},"body":{"license.html":{}}}],["put",{"_index":4007,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/LegacySchoolController.html":{},"controllers/OauthProviderController.html":{},"injectables/TaskCopyUC.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":20739,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put('/:schoolexternaltoolid')@apiokresponse({description",{"_index":20728,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put(':cardid/position",{"_index":4024,"title":{},"body":{"controllers/CardController.html":{}}}],["put(':columnid/position",{"_index":4936,"title":{},"body":{"controllers/ColumnController.html":{}}}],["put(':contentelementid/position",{"_index":8214,"title":{},"body":{"controllers/ElementController.html":{}}}],["put(':contextexternaltoolid",{"_index":20426,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':contextexternaltoolid')@apiokresponse({description",{"_index":20405,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':schoolid/migration",{"_index":13950,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':schoolid/migration')@authenticate('jwt')@apiokresponse({description",{"_index":13936,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':scope/:scopeid/start",{"_index":21740,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put(':scope/:scopeid/start')@apioperation({summary",{"_index":21728,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put('clients/:id",{"_index":15913,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["put('mandatory",{"_index":21108,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('mandatory')@apinotfoundresponse({description",{"_index":21070,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart",{"_index":21105,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart')@apinotfoundresponse({description",{"_index":21062,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put(filesstorageinternalactions.updatesecuritystatus",{"_index":10269,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["put(path",{"_index":1666,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["put(subpath",{"_index":1665,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["putting",{"_index":22963,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["pw",{"_index":7026,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["pwd/backup/idm/keycloak:/tmp/realms",{"_index":22954,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["pwd/backup/idm/oidcmock:/tmp/config",{"_index":23537,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["p{extended_pictographic}/u",{"_index":6592,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["q",{"_index":13594,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["qs",{"_index":11507,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["qs.stringify(data",{"_index":13548,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["qualify",{"_index":22662,"title":{},"body":{"license.html":{}}}],["quality",{"_index":22799,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["quarkus",{"_index":23564,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["quay.io/minio/minio",{"_index":22948,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["queries",{"_index":13037,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["queries.length",{"_index":13040,"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/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"classes/FileRecordScope.html":{},"classes/GlobalValidationPipe.html":{},"controllers/GroupController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.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":12812,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["query('x",{"_index":7390,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query('y",{"_index":7391,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query.accept",{"_index":15832,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["query.classes",{"_index":12892,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.code",{"_index":16163,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.error",{"_index":16164,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.firstname",{"_index":12880,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.flagged",{"_index":12897,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.lastloginsystemchangebetweenend",{"_index":20911,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastloginsystemchangebetweenstart",{"_index":20910,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastname",{"_index":12883,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.loginname",{"_index":12886,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match",{"_index":12893,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match.map((match",{"_index":12895,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.migration",{"_index":16157,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.name",{"_index":21358,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["query.postloginredirect",{"_index":16158,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.role",{"_index":12887,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.schoolid",{"_index":18210,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["query.state",{"_index":16153,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.targetid",{"_index":15055,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.targetmodel",{"_index":15053,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.ts",{"_index":9272,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{},"interfaces/PseudonymSearchQuery.html":{},"interfaces/UserLoginMigrationQuery.html":{}}}],["query.type",{"_index":20901,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["query.unpublished",{"_index":15057,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.userid",{"_index":21314,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["query/body",{"_index":23240,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["query/empty",{"_index":18466,"title":{},"body":{"classes/Scope.html":{}}}],["queryfiltermatch",{"_index":21522,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryfiltermatch.$or",{"_index":21528,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryoptions",{"_index":6930,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ImportUserRepo.html":{}}}],["queryordermap",{"_index":6912,"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":9386,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["queryordernumeric",{"_index":21514,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.asc",{"_index":21543,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.desc",{"_index":21542,"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":2337,"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":6635,"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":10611,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["querystring",{"_index":2327,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{}}}],["querystring.stringify",{"_index":11508,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["querystring.stringify(payload",{"_index":15566,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["queue",{"_index":10502,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq",{"_index":1352,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq#usage",{"_index":17080,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmq:3.8.9",{"_index":22938,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmq_url",{"_index":22931,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmqmodule",{"_index":17078,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqmodule.forroot(rabbitmqmodule",{"_index":17085,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqwrappermodule",{"_index":10575,"title":{"modules/RabbitMQWrapperModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rabbitmqwrappertestmodule",{"_index":10576,"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":10509,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc",{"_index":10510,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc({exchange",{"_index":10500,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["random",{"_index":3510,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/FileSystemAdapter.html":{}}}],["random(min",{"_index":3525,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["randomuuid",{"_index":1737,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["range",{"_index":10737,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/S3ClientAdapter.html":{}}}],["ranges",{"_index":10735,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["rawfiledocument",{"_index":10386,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments",{"_index":10382,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments.map((rawfiledocument",{"_index":10384,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawlessondocument",{"_index":14232,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments",{"_index":14228,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments.map((rawlessondocument",{"_index":14230,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rc",{"_index":11607,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["rd",{"_index":11611,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":11596,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["react",{"_index":23053,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["read",{"_index":1804,"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/ShareTokenUC.html":{},"injectables/TaskCopyUC.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":1808,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["readable",{"_index":1342,"title":{},"body":{"injectables/AntivirusService.html":{},"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":17112,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readable.from(text",{"_index":20239,"title":{},"body":{"classes/TestHelper.html":{}}}],["readablestreamwithfiletype",{"_index":17103,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypefactory",{"_index":17110,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeimp",{"_index":17100,"title":{"classes/ReadableStreamWithFileTypeImp.html":{}},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeprops",{"_index":17105,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readcourseids",{"_index":20010,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses",{"_index":20006,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses.map((c",{"_index":20011,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readdir",{"_index":10281,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readdir(folderpath",{"_index":10304,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["reader",{"_index":3101,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["readfile",{"_index":10282,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readfile(filepath",{"_index":10308,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readily",{"_index":22726,"title":{},"body":{"license.html":{}}}],["reading",{"_index":22601,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["readlessons",{"_index":20015,"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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationReferenceService.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":{},"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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/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":{},"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":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"controllers/SystemController.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserController.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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":{},"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":13646,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["real",{"_index":22965,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["really",{"_index":6525,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/TaskCopyUC.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["realm",{"_index":13283,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["realmname",{"_index":12072,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows",{"_index":13389,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions",{"_index":13398,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions/execution",{"_index":13400,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["reason",{"_index":10039,"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":22523,"title":{},"body":{"license.html":{}}}],["reasons",{"_index":19456,"title":{},"body":{"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["receipt",{"_index":22660,"title":{},"body":{"license.html":{}}}],["receive",{"_index":22295,"title":{},"body":{"license.html":{}}}],["received",{"_index":13063,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["receives",{"_index":22677,"title":{},"body":{"license.html":{}}}],["receiving",{"_index":22740,"title":{},"body":{"license.html":{}}}],["recieved",{"_index":23402,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["recieving",{"_index":23122,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["recipient",{"_index":22584,"title":{},"body":{"license.html":{}}}],["recipient's",{"_index":22733,"title":{},"body":{"license.html":{}}}],["recipients",{"_index":1499,"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":22392,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["recommend",{"_index":23433,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["recommendations",{"_index":23479,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["recommended",{"_index":23477,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["reconnect",{"_index":13779,"title":{},"body":{"injectables/LdapService.html":{}}}],["reconsidered",{"_index":13833,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["record",{"_index":1180,"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/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":{},"classes/GroupResponseMapper.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IUserProperties.html":{},"classes/LdapConnectionError.html":{},"injectables/Lti11EncryptionService.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":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SingleFileParams.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolStatusResponseMapper.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":10126,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:11",{"_index":10134,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:23",{"_index":10131,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:5",{"_index":10136,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["recording",{"_index":2225,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["recursive",{"_index":3299,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"classes/CopyApiResponse.html":{}}}],["recursivecopyvisitor",{"_index":3298,"title":{"classes/RecursiveCopyVisitor.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["recursivecopyvisitor(params.filecopyservice",{"_index":3305,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["recursivedeletevisitor",{"_index":3317,"title":{"injectables/RecursiveDeleteVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["recursively",{"_index":10317,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/PermissionService.html":{}}}],["recursivesavevisitor",{"_index":3345,"title":{"classes/RecursiveSaveVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["recursivesavevisitor(this.em",{"_index":3378,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["red",{"_index":22890,"title":{},"body":{"todo.html":{}}}],["redirect",{"_index":2170,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigDto.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":16830,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{},"classes/RedirectResponse.html":{}}}],["redirect_uri",{"_index":1521,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/HydraSsoService.html":{},"classes/TokenRequestMapper.html":{}}}],["redirect_uris",{"_index":9373,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["redirectreponse",{"_index":17311,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectreponse.redirect_to",{"_index":17316,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectresponse",{"_index":15837,"title":{"classes/RedirectResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RedirectResponse.html":{}}}],["redirects",{"_index":15673,"title":{},"body":{"classes/OauthConfigResponse.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi",{"_index":11568,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi.tostring",{"_index":15481,"title":{},"body":{"injectables/OAuthService.html":{}}}],["redirecturis",{"_index":7283,"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":17312,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redis",{"_index":3873,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["redis_client",{"_index":17321,"title":{},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redis_uri",{"_index":18559,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisclient",{"_index":3874,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisidentifier",{"_index":13209,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["redismodule",{"_index":17317,"title":{"modules/RedisModule.html":{}},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["redisstore",{"_index":18554,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redistribute",{"_index":22835,"title":{},"body":{"license.html":{}}}],["redisurl",{"_index":3878,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["reduce",{"_index":23740,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["reduce((previousteachers",{"_index":5087,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["ref",{"_index":4038,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ref.do.ts",{"_index":18114,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:2",{"_index":18116,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:4",{"_index":18115,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.params.ts",{"_index":6127,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:13",{"_index":6128,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:9",{"_index":6130,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.target",{"_index":2700,"title":{},"body":{"entities/Board.html":{}}}],["ref.ts",{"_index":6123,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:4",{"_index":6125,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:6",{"_index":6124,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["refactor",{"_index":7745,"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":9786,"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":3442,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["reference",{"_index":1865,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ConsentResponse.html":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.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":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"entities/SchoolNews.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"modules/ToolModule.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UpdateMatchParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.contains(user",{"_index":1867,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["reference.controller",{"_index":20311,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["reference.controller.ts",{"_index":20641,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:28",{"_index":20649,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:51",{"_index":20653,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.getmetadata",{"_index":7480,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["reference.loader",{"_index":1977,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.mapper.ts",{"_index":20665,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.mapper.ts:6",{"_index":20668,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.module",{"_index":10425,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["reference.module.ts",{"_index":1938,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["reference.response",{"_index":20663,"title":{},"body":{"classes/ToolReferenceListResponse.html":{}}}],["reference.response.ts",{"_index":20669,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:13",{"_index":20676,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:16",{"_index":20673,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:19",{"_index":20678,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:28",{"_index":20671,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:6",{"_index":20672,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.service.ts",{"_index":1964,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:12",{"_index":1971,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:14",{"_index":20685,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:15",{"_index":1974,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:23",{"_index":20687,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:26",{"_index":1976,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.ts",{"_index":3449,"title":{},"body":{"interfaces/BoardExternalReference.html":{},"classes/RoleReference.html":{},"classes/ToolReference.html":{}}}],["reference.ts:10",{"_index":20637,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:12",{"_index":20633,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:4",{"_index":20634,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:5",{"_index":17549,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:6",{"_index":20636,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:7",{"_index":17548,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:8",{"_index":20635,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.type",{"_index":3369,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["reference.uc.ts",{"_index":20690,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:10",{"_index":20693,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:17",{"_index":20699,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:40",{"_index":20701,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:57",{"_index":20697,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:71",{"_index":20695,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["referenced",{"_index":3427,"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":4470,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["referencedid",{"_index":7463,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceforindex",{"_index":7540,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceids",{"_index":2638,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["referenceloader",{"_index":1932,"title":{"injectables/ReferenceLoader.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["referencemodels",{"_index":7678,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["references",{"_index":2630,"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/ToolReferenceController.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":2694,"title":{},"body":{"entities/Board.html":{}}}],["references.push(columnboardelement",{"_index":3075,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(lessonelement",{"_index":3071,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(taskelement",{"_index":3069,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.some((ref",{"_index":2699,"title":{},"body":{"entities/Board.html":{}}}],["references[position.groupindex",{"_index":7541,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referer",{"_index":11455,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["referring",{"_index":22291,"title":{},"body":{"license.html":{}}}],["refers",{"_index":22338,"title":{},"body":{"license.html":{}}}],["refid",{"_index":9981,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refined",{"_index":23483,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reflect",{"_index":22169,"title":{},"body":{"dependencies.html":{},"todo.html":{}}}],["reflector",{"_index":20252,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["reflector.get('timeout",{"_index":20255,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["refobjectid",{"_index":9932,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["refownermodel",{"_index":9878,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refpermmodel",{"_index":9982,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["refrain",{"_index":22769,"title":{},"body":{"license.html":{}}}],["refresh_token",{"_index":15793,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{}}}],["refreshtimeout",{"_index":17915,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["refreshtoken",{"_index":15488,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/TokenRequestMapper.html":{}}}],["regard",{"_index":22606,"title":{},"body":{"license.html":{}}}],["regarding",{"_index":22225,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["regardless",{"_index":22492,"title":{},"body":{"license.html":{}}}],["regenerate",{"_index":22417,"title":{},"body":{"license.html":{}}}],["regex",{"_index":5429,"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":{},"classes/MongoPatterns.html":{},"injectables/TaskCopyService.html":{},"injectables/UserRepo.html":{}}}],["regex_mongo_language_pattern_whitelist",{"_index":14904,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["regexcomment",{"_index":7207,"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":6313,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`${sourceid",{"_index":6326,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`^${email.replace(/\\w/g",{"_index":21552,"title":{},"body":{"injectables/UserRepo.html":{}}}],["regexp(param.regex",{"_index":8909,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(param.regex).test(foundentry.value",{"_index":5425,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["regexp(param.regex).test(param.default",{"_index":8911,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(searchusername",{"_index":963,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["region",{"_index":6269,"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":16637,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["register(config",{"_index":16638,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["register(configs",{"_index":17922,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["registerparentdata",{"_index":17242,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerparentdata(parent",{"_index":17247,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerstrategy",{"_index":16851,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registerstrategy(strategy",{"_index":16866,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registrated",{"_index":23709,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["regular",{"_index":952,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["reinstated",{"_index":22649,"title":{},"body":{"license.html":{}}}],["reject",{"_index":13785,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reject(new",{"_index":13793,"title":{},"body":{"injectables/LdapService.html":{}}}],["rejectable.body",{"_index":5479,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rejectable.body.ts",{"_index":15368,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:13",{"_index":15369,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:23",{"_index":15370,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:32",{"_index":15371,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:41",{"_index":15372,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:50",{"_index":15373,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectconsentrequest",{"_index":15812,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectconsentrequest(challenge",{"_index":15821,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest",{"_index":15968,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest(challenge",{"_index":15977,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectnothandled",{"_index":5625,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectnothandled(component",{"_index":5628,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectrequestbody",{"_index":15822,"title":{"interfaces/RejectRequestBody.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/RejectRequestBody.html":{}}}],["rejects",{"_index":19052,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["related",{"_index":7044,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICleanOptions.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":{},"controllers/PseudonymController.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":12098,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["relation",{"_index":11153,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["relation.ktid",{"_index":18054,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["relations",{"_index":10005,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relationship",{"_index":12537,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{}}}],["relationtype",{"_index":12107,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["relative",{"_index":11527,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["release",{"_index":23452,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["released",{"_index":22333,"title":{},"body":{"license.html":{}}}],["releasing",{"_index":22325,"title":{},"body":{"license.html":{}}}],["relevant",{"_index":22486,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["relicensing",{"_index":22334,"title":{},"body":{"license.html":{}}}],["reload",{"_index":16740,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relying",{"_index":22725,"title":{},"body":{"license.html":{}}}],["remain",{"_index":22540,"title":{},"body":{"license.html":{}}}],["remains",{"_index":22289,"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":5450,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rememberfor",{"_index":5448,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["remote",{"_index":22771,"title":{},"body":{"license.html":{}}}],["remotely",{"_index":22773,"title":{},"body":{"license.html":{}}}],["removal",{"_index":22608,"title":{},"body":{"license.html":{}}}],["remove",{"_index":1959,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CommonToolModule.html":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/DeleteFilesConsole.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICleanOptions.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/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":2756,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removechild(child",{"_index":2774,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removed",{"_index":80,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/RpcMessageProducer.html":{},"modules/VideoConferenceModule.html":{}}}],["removedeletedreferences(boardelementtargets",{"_index":2692,"title":{},"body":{"entities/Board.html":{}}}],["removedirrecursive",{"_index":10283,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removedirrecursive(folderpath",{"_index":10314,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removeexternalgroupsandaffiliation",{"_index":16307,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removeexternalgroupsandaffiliation(externaluserid",{"_index":16318,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removefeature",{"_index":14067,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefeature(schoolid",{"_index":14079,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefromposition",{"_index":7409,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removefromposition(position",{"_index":7445,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removefromwhitelist",{"_index":13188,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removefromwhitelist(accountid",{"_index":13199,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removegroupmoderator(groupname",{"_index":1239,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["removejwtfromwhitelist",{"_index":1712,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removejwtfromwhitelist(jwttoken",{"_index":1727,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removematch",{"_index":12740,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removematch(urlparams",{"_index":12754,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removepermissionsbyrefid(refid",{"_index":9931,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["removeprotectedentityfields",{"_index":2351,"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":2382,"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":10883,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereference(reference",{"_index":7459,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex",{"_index":10884,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex(index",{"_index":7458,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removeroomsnotinlist",{"_index":7410,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removeroomsnotinlist(roomlist",{"_index":7447,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removes",{"_index":10316,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["removesecrets(collectionname",{"_index":11845,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromstorageproviders(storageproviders",{"_index":11848,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromsystems(systems",{"_index":11850,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removestudent(userid",{"_index":6766,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["removesubstitutionteacher(userid",{"_index":6601,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeteacher(userid",{"_index":6599,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeuser",{"_index":4204,"title":{},"body":{"classes/Class.html":{},"classes/Group.html":{}}}],["removeuser(user",{"_index":10913,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["removeuser(userid",{"_index":4213,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["removeuserids",{"_index":15297,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserids.tostring",{"_index":15301,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserpermissionstoanyfiles",{"_index":10392,"title":{},"body":{"injectables/FilesService.html":{}}}],["removeuserpermissionstoanyfiles(userid",{"_index":10400,"title":{},"body":{"injectables/FilesService.html":{}}}],["rename",{"_index":9061,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["renamebodyparams",{"_index":2924,"title":{"classes/RenameBodyParams.html":{}},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/RenameBodyParams.html":{}}}],["renamed",{"_index":15278,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["renamefileparams",{"_index":6241,"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":7760,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["renamegroupondashboard(dashboardid",{"_index":7767,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["rendered",{"_index":22814,"title":{},"body":{"license.html":{}}}],["reorderboardelements",{"_index":17746,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderboardelements(roomid",{"_index":17751,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderelements(ids",{"_index":2670,"title":{},"body":{"entities/Board.html":{}}}],["reordering",{"_index":2682,"title":{},"body":{"entities/Board.html":{}}}],["repair",{"_index":22804,"title":{},"body":{"license.html":{}}}],["repeat",{"_index":23093,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["repeatcommand",{"_index":13502,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["repeatcommand(commandname",{"_index":11653,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["repeats",{"_index":14778,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{}}}],["repetitions",{"_index":11654,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["replace",{"_index":2015,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["replace('exception",{"_index":10853,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["replace(/\\\\n/g",{"_index":13908,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["replaced",{"_index":1942,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":6314,"title":{},"body":{"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/TaskCopyService.html":{}}}],["replacemypassword",{"_index":486,"title":{},"body":{"controllers/AccountController.html":{}}}],["replacemypassword(currentuser",{"_index":517,"title":{},"body":{"controllers/AccountController.html":{}}}],["replicaset",{"_index":23572,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replikaset",{"_index":22894,"title":{},"body":{"todo.html":{}}}],["replset",{"_index":23576,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replyto",{"_index":1502,"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":2531,"title":{},"body":{"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ColumnBoardCopyService.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":6936,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["repo.integration.spec.js",{"_index":23444,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repo.ts",{"_index":23178,"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":3581,"title":{},"body":{"modules/BoardModule.html":{}}}],["repo/share",{"_index":18771,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["repoloader",{"_index":12154,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.populate",{"_index":12156,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.repo.findbyid(objectid",{"_index":12157,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["report",{"_index":7818,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reported",{"_index":23275,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["reporting",{"_index":23484,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reports",{"_index":23455,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repos",{"_index":5343,"title":{},"body":{"modules/CommonToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/VideoConferenceModule.html":{}}}],["repositories",{"_index":22876,"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":17014,"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":17017,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repository.findbyuseridandtoolid(user.id",{"_index":17016,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repotype",{"_index":12124,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["represent",{"_index":22571,"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":5474,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["req",{"_index":10253,"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":17356,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.header('range",{"_index":10731,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.headers.authorization",{"_index":16185,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["req.headers.origin",{"_index":21743,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["req.method",{"_index":17355,"title":{},"body":{"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{}}}],["req.on('close",{"_index":10265,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{}}}],["req.params",{"_index":17396,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.params[0]}/${params.fwulearningcontent",{"_index":10732,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.query",{"_index":17397,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.route.path",{"_index":17360,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.url",{"_index":17395,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.user",{"_index":17394,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["reqinfo",{"_index":17369,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.baseurl",{"_index":17374,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.fullpath",{"_index":17375,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.method",{"_index":17373,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.routepath",{"_index":17376,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqroute",{"_index":17350,"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":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.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":{},"injectables/PreviewProducer.html":{},"classes/PublicSystemResponse.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/RpcMessageProducer.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":{},"injectables/ToolPermissionHelper.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":4613,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["request(event",{"_index":10627,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["request.body",{"_index":13824,"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":5439,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:14",{"_index":14509,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:20",{"_index":5446,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:24",{"_index":14510,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:30",{"_index":5453,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.contextid",{"_index":5921,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.contexttype",{"_index":5922,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.displayname",{"_index":5923,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper",{"_index":15425,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["request.mapper.ts",{"_index":5910,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:113",{"_index":9125,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:117",{"_index":9132,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:123",{"_index":9136,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:129",{"_index":9139,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:135",{"_index":9143,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:141",{"_index":9129,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:158",{"_index":9147,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:17",{"_index":18149,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:170",{"_index":9123,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:21",{"_index":20286,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:22",{"_index":5917,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:5",{"_index":16017,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["request.mapper.ts:6",{"_index":20284,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:60",{"_index":9152,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:7",{"_index":5914,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:8",{"_index":18151,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:87",{"_index":9119,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.response.ts",{"_index":20564,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:10",{"_index":20566,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:16",{"_index":20570,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:23",{"_index":20568,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:30",{"_index":20565,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.schoolid",{"_index":18155,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.schooltoolid",{"_index":5920,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.toolid",{"_index":18154,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.toolversion",{"_index":5924,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.ts",{"_index":20557,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:10",{"_index":20558,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:4",{"_index":20559,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:6",{"_index":20561,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:8",{"_index":20560,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.user.user",{"_index":22882,"title":{},"body":{"todo.html":{}}}],["request.version",{"_index":18156,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request/bbb",{"_index":2200,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["request/response",{"_index":23239,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["request_denied",{"_index":5458,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["request_url",{"_index":5485,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requestauthcode",{"_index":11413,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthcode(userid",{"_index":11423,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthtoken",{"_index":16086,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestauthtoken(currentuser",{"_index":16107,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestdata",{"_index":14560,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requested",{"_index":5511,"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":5486,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requested_scope",{"_index":5487,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requesthandler",{"_index":17353,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo",{"_index":17337,"title":{"classes/RequestInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo(req",{"_index":17370,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requesting",{"_index":15604,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["requestloggingbody",{"_index":12087,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["requestlogginginterceptor",{"_index":17386,"title":{"injectables/RequestLoggingInterceptor.html":{}},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["requestmapper",{"_index":20732,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["requestmethod",{"_index":228,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["requestoptions",{"_index":14558,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requests",{"_index":13046,"title":{},"body":{"modules/InterceptorModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requesttimeout",{"_index":17700,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TimeoutInterceptor.html":{}}}],["requesttimeout(serverconfig().incoming_request_timeout_copy_api",{"_index":17715,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["requesttimeoutexception",{"_index":20251,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["requesttoken",{"_index":1350,"title":{},"body":{"injectables/AntivirusService.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":15416,"title":{},"body":{"injectables/OAuthService.html":{}}}],["requesturl",{"_index":5509,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["require",{"_index":11798,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["require('../../../../../src/services/authentication/configuration",{"_index":13140,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["require('../../../../config/globals",{"_index":10790,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["require('rimraf",{"_index":10328,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["require_tld",{"_index":21776,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolIdParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GroupIdParams.html":{},"interfaces/ICleanOptions.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/PseudonymParams.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":4129,"title":{},"body":{"injectables/CardService.html":{}}}],["requiredemptyelements",{"_index":4095,"title":{},"body":{"injectables/CardService.html":{},"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["requiredpermissions",{"_index":1799,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LessonRule.html":{},"injectables/NewsUc.html":{},"injectables/PermissionService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiredpermissions.every((p",{"_index":1847,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.length",{"_index":1860,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.some((p",{"_index":1862,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["requireduserrole",{"_index":3091,"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":13412,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"license.html":{}}}],["requirements",{"_index":22542,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["requires",{"_index":8887,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/GlobalValidationPipe.html":{},"injectables/OpenGraphProxyService.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiring",{"_index":22350,"title":{},"body":{"license.html":{}}}],["res",{"_index":6614,"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":10268,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.cookie",{"_index":1641,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["res.cookie('jwt",{"_index":16176,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.data.destroy",{"_index":10266,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.redirect(errorredirect.tostring",{"_index":16141,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(oauthprocessdto.redirect",{"_index":16177,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(redirect",{"_index":16159,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(response.redirect",{"_index":16193,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.send(externaltoollogo.logo",{"_index":20489,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.set",{"_index":10734,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.setheader('cache",{"_index":20486,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.setheader('content",{"_index":20485,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.status(httpstatus.ok",{"_index":10740,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.status(httpstatus.partial_content",{"_index":10739,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.statuscode",{"_index":17363,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resave",{"_index":18562,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":13246,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["resetoauthconfigcache",{"_index":13517,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resinfo",{"_index":17371,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resinfo.statuscode",{"_index":17377,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resizeandconvert",{"_index":16655,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resizeandconvert(original",{"_index":16663,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resolve",{"_index":5462,"title":{},"body":{"classes/ConsentRequestBody.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/PermissionService.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["resolve(client",{"_index":13792,"title":{},"body":{"injectables/LdapService.html":{}}}],["resolved",{"_index":2997,"title":{},"body":{"injectables/BoardCopyService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ResolvedGroupDto.html":{},"license.html":{}}}],["resolvedgroup",{"_index":11122,"title":{},"body":{"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{}}}],["resolvedgroup.externalsource",{"_index":11138,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.externalid",{"_index":11139,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.systemid",{"_index":11140,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.id",{"_index":11135,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.name",{"_index":11136,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.organizationid",{"_index":11146,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.users.map",{"_index":11141,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroupdto",{"_index":10961,"title":{"classes/ResolvedGroupDto.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["resolvedgroups",{"_index":11271,"title":{},"body":{"injectables/GroupUc.html":{}}}],["resolvedgroupuser",{"_index":11219,"title":{"classes/ResolvedGroupUser.html":{}},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["resolvedgroupusers",{"_index":11267,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["resolvedtools",{"_index":9327,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolvedtools.filter((tool",{"_index":9334,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolveduser",{"_index":20838,"title":{},"body":{"controllers/UserController.html":{},"injectables/UserService.html":{}}}],["resolvedusermapper",{"_index":17411,"title":{"classes/ResolvedUserMapper.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"controllers/UserController.html":{}}}],["resolvedusermapper.maptoresponse(user",{"_index":20839,"title":{},"body":{"controllers/UserController.html":{}}}],["resolveduserresponse",{"_index":17415,"title":{"classes/ResolvedUserResponse.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"controllers/UserController.html":{}}}],["resolvedusers",{"_index":11254,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["resolvepermissions",{"_index":12161,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["resolvepermissions(user",{"_index":16556,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles",{"_index":16553,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles(inputroles",{"_index":16561,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolveplaceholder(placeholder",{"_index":11818,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["resolverepo",{"_index":17324,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["resolverepo(type",{"_index":12149,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["resolves",{"_index":12942,"title":{},"body":{"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resolvetokenrequest",{"_index":15547,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resolvetokenrequest(observable",{"_index":15553,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resource",{"_index":5129,"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":{},"controllers/ToolReferenceController.html":{}}}],["resource.'})@apiunauthorizedresponse({description",{"_index":20438,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["resource.caninline",{"_index":5146,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resource.ts",{"_index":5165,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:15",{"_index":5315,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:16",{"_index":5169,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:18",{"_index":5316,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:19",{"_index":5170,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:22",{"_index":5310,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:23",{"_index":5171,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:26",{"_index":5311,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:30",{"_index":5312,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:61",{"_index":5317,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:81",{"_index":5172,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource_link_id",{"_index":7120,"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":{}}}],["resourceelement.transform",{"_index":5309,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceelements",{"_index":5307,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceid",{"_index":15328,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourcename",{"_index":15329,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourceownerpasswordgrant",{"_index":12671,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceownerpasswordgrant(username",{"_index":12674,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceprops",{"_index":5052,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resources",{"_index":5050,"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":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["resp",{"_index":8018,"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":2311,"title":{},"body":{"injectables/BBBService.html":{}}}],["resp.everyattendeejoinsmuted",{"_index":21986,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.everybodyjoinsasmoderator",{"_index":21987,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.moderatormustapprovejoinrequests",{"_index":21988,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.options",{"_index":8036,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.permission",{"_index":8028,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["resp.state",{"_index":8026,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.url",{"_index":8031,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["respect",{"_index":22465,"title":{},"body":{"license.html":{}}}],["respective",{"_index":23279,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["respobservable",{"_index":11574,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["respond",{"_index":22917,"title":{},"body":{"todo.html":{}}}],["responds",{"_index":14957,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["responsability",{"_index":23095,"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":{},"controllers/BoardSubmissionController.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"classes/ClassInfoSearchListResponse.html":{},"controllers/ColumnController.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.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":{},"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/GroupController.html":{},"classes/GroupResponseMapper.html":{},"controllers/H5PEditorController.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/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RpcMessageProducer.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":{},"classes/SubmissionItemResponseMapper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["response.access_token",{"_index":20289,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.authorization_endpoint",{"_index":13537,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.body",{"_index":1704,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.builder.ts",{"_index":6259,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{},"classes/FileResponseBuilder.html":{}}}],["response.builder.ts:4",{"_index":6261,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["response.builder.ts:5",{"_index":10235,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["response.config",{"_index":9215,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.contentlength",{"_index":10745,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contentrange",{"_index":10738,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contenttype",{"_index":10743,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contextid",{"_index":5944,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.contexttype",{"_index":5945,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.data",{"_index":9829,"title":{},"body":{"classes/FileDtoBuilder.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/HydraOauthUc.html":{}}}],["response.data.access_token",{"_index":13549,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.data.destroy",{"_index":10741,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.displayname",{"_index":5946,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.dto",{"_index":23111,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response.end_session_endpoint",{"_index":13538,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.error",{"_index":1698,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.factory",{"_index":4082,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["response.factory.ts",{"_index":2021,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:12",{"_index":5580,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:14",{"_index":2027,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:16",{"_index":2030,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:18",{"_index":2031,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:20",{"_index":2029,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:22",{"_index":2025,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.headers['content",{"_index":9825,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["response.id",{"_index":5941,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["response.id_token",{"_index":20287,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.ishidden",{"_index":9216,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.issuer",{"_index":13535,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwks_uri",{"_index":13539,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwt",{"_index":15365,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.logourl",{"_index":5949,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.mapper",{"_index":3709,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolResponseMapper.html":{},"modules/LearnroomApiModule.html":{},"controllers/LoginController.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"modules/ProvisioningModule.html":{},"controllers/RoomsController.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolResponseMapper.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":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/GroupResponseMapper.html":{},"classes/LinkElementResponseMapper.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/ToolStatusResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:11",{"_index":20753,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["response.mapper.ts:111",{"_index":18010,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:13",{"_index":14538,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["response.mapper.ts:14",{"_index":18171,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:15",{"_index":17595,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:16",{"_index":978,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:17",{"_index":17493,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:18",{"_index":11115,"title":{},"body":{"classes/GroupResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:19",{"_index":16032,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:21",{"_index":5955,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:23",{"_index":16026,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:26",{"_index":19077,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:27",{"_index":8673,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:28",{"_index":17491,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:29",{"_index":17597,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:32",{"_index":14353,"title":{},"body":{"classes/LinkElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:33",{"_index":18989,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:34",{"_index":18004,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:35",{"_index":18168,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:37",{"_index":11118,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:38",{"_index":5961,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:40",{"_index":16029,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:44",{"_index":9235,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:46",{"_index":5958,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["response.mapper.ts:47",{"_index":17600,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:5",{"_index":14536,"title":{},"body":{"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:51",{"_index":11121,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:53",{"_index":18013,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:6",{"_index":980,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:64",{"_index":18006,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:68",{"_index":18008,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:7",{"_index":3707,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:71",{"_index":9226,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:73",{"_index":17599,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:75",{"_index":9231,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:79",{"_index":9233,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:8",{"_index":8674,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:83",{"_index":9229,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:9",{"_index":17492,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:93",{"_index":17598,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.message",{"_index":17778,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["response.name",{"_index":9213,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.opennewtab",{"_index":9217,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.parameters",{"_index":5947,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.redirect",{"_index":15366,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.refresh_token",{"_index":20288,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.schoolid",{"_index":18161,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.schooltoolid",{"_index":5943,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.set",{"_index":6636,"title":{},"body":{"controllers/CourseController.html":{}}}],["response.sourceid",{"_index":10476,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["response.state",{"_index":21905,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["response.status",{"_index":18162,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.status(errorresponse.code).json(errorresponse",{"_index":10836,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["response.subject",{"_index":15842,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["response.token_endpoint",{"_index":13536,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.toolid",{"_index":16965,"title":{},"body":{"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.toolversion",{"_index":5948,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.ts",{"_index":17065,"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":17070,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:17",{"_index":17071,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:24",{"_index":17068,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:31",{"_index":17069,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:39",{"_index":17067,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.url",{"_index":9214,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.userid",{"_index":16966,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["response.version",{"_index":9218,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response?.data",{"_index":1276,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["response].ts",{"_index":23172,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["response_type",{"_index":11509,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["response_types",{"_index":15588,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["responsedata",{"_index":15569,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsefilerecords",{"_index":10138,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["responseinfo",{"_index":17361,"title":{"classes/ResponseInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responseinfo(res",{"_index":17372,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsejson",{"_index":1288,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.authtoken",{"_index":1290,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.userid",{"_index":1289,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsemapper",{"_index":17977,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{},"controllers/ToolSchoolController.html":{}}}],["responses",{"_index":11334,"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":{}}}],["responsetime",{"_index":17352,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetime((req",{"_index":17382,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetoken",{"_index":15450,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["responsetoken.data",{"_index":15573,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetokenobservable",{"_index":15567,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetype",{"_index":8805,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["responsibilities",{"_index":23236,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["responsibility",{"_index":23060,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["responsible",{"_index":22678,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ressouces",{"_index":23710,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressource",{"_index":23711,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressources",{"_index":20623,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application.html":{}}}],["resssource",{"_index":22918,"title":{},"body":{"todo.html":{}}}],["rest",{"_index":8155,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["restart",{"_index":21039,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restarted",{"_index":14855,"title":{},"body":{"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["restartmigration",{"_index":17435,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(@currentuser",{"_index":21106,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(currentuser",{"_index":21061,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(schoolid",{"_index":21261,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(userid",{"_index":17438,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["restartuserloginmigrationuc",{"_index":17433,"title":{"injectables/RestartUserLoginMigrationUc.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["restmethod",{"_index":23550,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["restore",{"_index":17827,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"controllers/TaskController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["restore(@param",{"_index":19585,"title":{},"body":{"controllers/TaskController.html":{}}}],["restore(paths",{"_index":17844,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["restore(urlparams",{"_index":19560,"title":{},"body":{"controllers/TaskController.html":{}}}],["restored",{"_index":23435,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["restoreforuser(user",{"_index":12547,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["restricted",{"_index":13406,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["restricting",{"_index":22459,"title":{},"body":{"license.html":{}}}],["restriction",{"_index":22637,"title":{},"body":{"license.html":{}}}],["restrictions",{"_index":22635,"title":{},"body":{"license.html":{}}}],["result",{"_index":1750,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardDoCopyService.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":{},"classes/ExternalToolElementResponseMapper.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/LessonRule.html":{},"classes/LinkElementResponseMapper.html":{},"classes/NewsScope.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PseudonymService.html":{},"classes/RecursiveCopyVisitor.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":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["result.content",{"_index":18992,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["result.dto.ts",{"_index":18056,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:4",{"_index":18058,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:6",{"_index":18057,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.push",{"_index":13453,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["result.push(room",{"_index":7528,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["result.query",{"_index":18467,"title":{},"body":{"classes/Scope.html":{}}}],["result.reduce((alloweddos",{"_index":4187,"title":{},"body":{"injectables/CardUc.html":{}}}],["result.success",{"_index":7977,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["result[sortby",{"_index":12866,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["resultelement",{"_index":7508,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["resulting",{"_index":22319,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["resultmap",{"_index":17116,"title":{},"body":{"classes/RecursiveCopyVisitor.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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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":7976,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["results.map((account",{"_index":13605,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["results.push(mapped",{"_index":8117,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["resultuser",{"_index":21517,"title":{},"body":{"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ret",{"_index":13617,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/LegacySchoolService.html":{}}}],["ret.attdbcaccountid",{"_index":13625,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcsystemid",{"_index":13621,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcuserid",{"_index":13623,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["retaccountid",{"_index":13663,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["retains",{"_index":22588,"title":{},"body":{"license.html":{}}}],["retried",{"_index":11610,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrieve",{"_index":14961,"title":{},"body":{"controllers/NewsController.html":{}}}],["retry",{"_index":11608,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrycount",{"_index":11598,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrydelay",{"_index":11599,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retryflags",{"_index":11606,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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/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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/ContentElementUpdateVisitor.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":{},"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/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":2063,"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":21054,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["returning",{"_index":6152,"title":{},"body":{"classes/CopyApiResponse.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"additional-documentation/nestjs-application/software-architecture.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/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/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalToolElement.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementResponseMapper.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":{},"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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["retvalue",{"_index":23358,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["reuse",{"_index":5443,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["reused",{"_index":23187,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["revalidate",{"_index":20488,"title":{},"body":{"controllers/ToolController.html":{}}}],["revert.service.ts",{"_index":21230,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:13",{"_index":21234,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:7",{"_index":21232,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["reverted",{"_index":21044,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["revertpublished",{"_index":19545,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["revertpublished(urlparams",{"_index":19563,"title":{},"body":{"controllers/TaskController.html":{}}}],["revertpublished(userid",{"_index":19964,"title":{},"body":{"injectables/TaskUC.html":{}}}],["revertuserloginmigration",{"_index":21231,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revertuserloginmigration(userloginmigration",{"_index":21233,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["review",{"_index":23498,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reviewers",{"_index":22246,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["reviewing",{"_index":22824,"title":{},"body":{"license.html":{}}}],["revised",{"_index":22779,"title":{},"body":{"license.html":{}}}],["revokeconsentparams",{"_index":15882,"title":{"classes/RevokeConsentParams.html":{}},"body":{"controllers/OauthProviderController.html":{},"classes/RevokeConsentParams.html":{}}}],["revokeconsentsession",{"_index":15852,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["revokeconsentsession(@currentuser",{"_index":15943,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(currentuser",{"_index":15881,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(user",{"_index":16062,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["revokeconsentsession(userid",{"_index":16076,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["revokematch",{"_index":12050,"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":15603,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["rich",{"_index":2847,"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":17448,"title":{"classes/RichText.html":{}},"body":{"classes/RichText.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["richtextcontentbody",{"_index":5646,"title":{"classes/RichTextContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelement",{"_index":2835,"title":{"classes/RichTextElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelement.id",{"_index":17289,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.inputformat",{"_index":5676,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.text",{"_index":5673,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelementcontent",{"_index":17478,"title":{"classes/RichTextElementContent.html":{}},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementcontentbody",{"_index":8177,"title":{"classes/RichTextElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelementnode",{"_index":3186,"title":{"entities/RichTextElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementnodefactory",{"_index":3531,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodefactory.build",{"_index":3555,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodeprops",{"_index":17486,"title":{"interfaces/RichTextElementNodeProps.html":{}},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementprops",{"_index":17476,"title":{"interfaces/RichTextElementProps.html":{}},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["richtextelementresponse",{"_index":3979,"title":{"classes/RichTextElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper",{"_index":5585,"title":{"classes/RichTextElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper.getinstance",{"_index":5577,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["richtextelementresponsemapper.instance",{"_index":17496,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["richtext})@decodehtmlentities",{"_index":19853,"title":{},"body":{"classes/TaskResponse.html":{}}}],["rid",{"_index":4751,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["right",{"_index":22582,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rights",{"_index":22302,"title":{},"body":{"license.html":{}}}],["rimraf",{"_index":10327,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"dependencies.html":{}}}],["rimraf.sync(folderpath",{"_index":10342,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["risk",{"_index":22798,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rmq",{"_index":10826,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["ro",{"_index":1175,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocket",{"_index":17504,"title":{},"body":{"modules/RocketChatModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket.chat",{"_index":23571,"title":{"additional-documentation/nestjs-application/rocket.chat.html":{}},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat",{"_index":12191,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["rocket_chat_admin_password=huhudbildungscloud",{"_index":23622,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_admin_user=admin",{"_index":23621,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_options",{"_index":17506,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["rocket_chat_uri=\"http://localhost:3000",{"_index":23620,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat",{"_index":1183,"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":23619,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchaterror",{"_index":1181,"title":{"classes/RocketChatError.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror(e",{"_index":1275,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror.prototype",{"_index":1200,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatgroupmodel",{"_index":1165,"title":{"interfaces/RocketChatGroupModel.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatmodule",{"_index":17501,"title":{"modules/RocketChatModule.html":{}},"body":{"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rocketchatmodule.forroot",{"_index":18544,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["rocketchatoptions",{"_index":1160,"title":{"interfaces/RocketChatOptions.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatservice",{"_index":1209,"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/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupUc.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.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":{},"interfaces/OauthCurrentUser.html":{},"classes/OidcConfig.html":{},"injectables/PermissionService.html":{},"classes/ResolvedGroupUser.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/SystemEntity.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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["role.entity",{"_index":12554,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["role.factory",{"_index":21004,"title":{},"body":{"classes/UserFactory.html":{}}}],["role.id",{"_index":7083,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["role.mapper.ts",{"_index":14610,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.mapper.ts:13",{"_index":14613,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.name",{"_index":4572,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/FeathersRosterService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{}}}],["role.params",{"_index":4624,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["role.params.ts",{"_index":20106,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:11",{"_index":20107,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:7",{"_index":20108,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.resolvepermissions",{"_index":1850,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["role.roles.isinitialized(true",{"_index":20186,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roleadmin",{"_index":12400,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleattributenamemapping",{"_index":12397,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roledto",{"_index":4541,"title":{"classes/RoleDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["roledtos",{"_index":17573,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolefactory",{"_index":20158,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["rolefactory.build",{"_index":20160,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["rolefactory.buildwithid",{"_index":20162,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["roleid",{"_index":4666,"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":20967,"title":{},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["rolemapper",{"_index":17515,"title":{"classes/RoleMapper.html":{}},"body":{"classes/RoleMapper.html":{},"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(entities",{"_index":17580,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(roles",{"_index":17578,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitytodto(entity",{"_index":17576,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapping",{"_index":14615,"title":{},"body":{"classes/LtiRoleMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolemapping[rolename",{"_index":14623,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolemapping[source.personenkontexte[0].rolle",{"_index":18032,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["rolemodule",{"_index":1547,"title":{"modules/RoleModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/GroupApiModule.html":{},"modules/ProvisioningModule.html":{},"modules/RoleModule.html":{},"modules/UserModule.html":{},"modules.html":{}}}],["rolename",{"_index":4571,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersRosterService.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRoleProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{}}}],["rolename.administrator",{"_index":12012,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserFactory.html":{}}}],["rolename.enum",{"_index":23717,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["rolename.student",{"_index":9719,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/UserData.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["rolename.superhero",{"_index":14620,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolename.teacher",{"_index":9718,"title":{},"body":{"injectables/FeathersRosterService.html":{},"classes/GroupUcMapper.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleService.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/UserData.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["rolename.user",{"_index":14616,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenamemapper",{"_index":12862,"title":{"classes/RoleNameMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/RoleNameMapper.html":{}}}],["rolenamemapper.maptodomain(query.role",{"_index":12889,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenamemapper.maptoresponse(role",{"_index":12872,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenames",{"_index":12009,"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":{},"classes/LtiRoleMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["rolenames.map((rolename",{"_index":14622,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenosc",{"_index":12401,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["rolepermissions",{"_index":12602,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roleref",{"_index":21622,"title":{},"body":{"injectables/UserService.html":{}}}],["roleref.id",{"_index":7086,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["roleref.name",{"_index":13117,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["rolereference",{"_index":7080,"title":{"classes/RoleReference.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleReference.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserService.html":{}}}],["rolerefs",{"_index":16338,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolerepo",{"_index":17530,"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/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/IservMapper.html":{},"interfaces/JwtPayload.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"interfaces/OauthCurrentUser.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":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["roles.foreach((role",{"_index":12601,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roles.length",{"_index":16381,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["roles.map((role",{"_index":16341,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{}}}],["roles.map(async",{"_index":20185,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roles[0].id",{"_index":16382,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolesandpermissions",{"_index":16568,"title":{},"body":{"injectables/PermissionService.html":{}}}],["roleservice",{"_index":4652,"title":{"injectables/RoleService.html":{}},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["rolestudent",{"_index":12398,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleteacher",{"_index":12399,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roletype",{"_index":12393,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleuc",{"_index":17531,"title":{"injectables/RoleUc.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleUc.html":{}}}],["rollback",{"_index":17886,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["rollbackmigration",{"_index":18317,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["rollbackmigration(originalschooldo",{"_index":18337,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["rollbackmigration(userdocopy",{"_index":21420,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["rolle",{"_index":17971,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["rollen",{"_index":17953,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["rom",{"_index":22591,"title":{},"body":{"license.html":{}}}],["room",{"_index":7420,"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":8075,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{}}}],["roomboarddtofactory",{"_index":8148,"title":{"injectables/RoomBoardDTOFactory.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["roomboardelementdto",{"_index":8073,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["roomboardelementtypes",{"_index":3441,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.column_board",{"_index":8137,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.lesson",{"_index":8126,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.task",{"_index":8122,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardresponsemapper",{"_index":13851,"title":{"injectables/RoomBoardResponseMapper.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{}}}],["roomelementurlparams",{"_index":17648,"title":{"classes/RoomElementUrlParams.html":{}},"body":{"classes/RoomElementUrlParams.html":{},"controllers/RoomsController.html":{}}}],["roomid",{"_index":1233,"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":7449,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["roomlist.includes(room",{"_index":7520,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["roomname",{"_index":1225,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rooms",{"_index":7424,"title":{},"body":{"classes/DashboardEntity.html":{},"controllers/RoomsController.html":{}}}],["rooms.authorisation.service",{"_index":8096,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["rooms.foreach((room",{"_index":7526,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["rooms.service",{"_index":6658,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["roomsauthorisationservice",{"_index":8057,"title":{"injectables/RoomsAuthorisationService.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{}}}],["roomscontroller",{"_index":13854,"title":{"controllers/RoomsController.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["roomsservice",{"_index":6647,"title":{"injectables/RoomsService.html":{}},"body":{"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["roomsuc",{"_index":13852,"title":{"injectables/RoomsUc.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{},"injectables/RoomsUc.html":{}}}],["roomurlparams",{"_index":17651,"title":{"classes/RoomUrlParams.html":{}},"body":{"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{}}}],["root",{"_index":2470,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupUcMapper.html":{},"modules/ToolLaunchModule.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":5284,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["rootid",{"_index":3135,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rootpath",{"_index":12386,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roster",{"_index":9630,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts",{"_index":9629,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts:100",{"_index":9658,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:137",{"_index":9653,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:145",{"_index":9662,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:153",{"_index":9651,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:163",{"_index":9655,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:169",{"_index":9650,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:199",{"_index":9669,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:211",{"_index":9673,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:222",{"_index":9671,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:232",{"_index":9666,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:53",{"_index":9648,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:63",{"_index":9664,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:78",{"_index":9660,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["route",{"_index":9570,"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":17367,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routename",{"_index":1690,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["routenameinput",{"_index":20203,"title":{},"body":{"classes/TestApiClient.html":{}}}],["routepath",{"_index":17340,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routes",{"_index":22219,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["routingkey",{"_index":1314,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.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":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"interfaces/ScanResult.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["royalty",{"_index":22693,"title":{},"body":{"license.html":{}}}],["rp",{"_index":11942,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["rpc",{"_index":17775,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["rpcmessage",{"_index":10512,"title":{"interfaces/RpcMessage.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"injectables/PreviewProducer.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{}}}],["rpcmessageproducer",{"_index":10613,"title":{"classes/RpcMessageProducer.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["rpcmessageproducer:12",{"_index":10628,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:21",{"_index":10624,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:29",{"_index":10626,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rs.initiate({\"_id",{"_index":23580,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs0",{"_index":23577,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs256",{"_index":1593,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["rs384",{"_index":1594,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rs512",{"_index":1595,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rsa",{"_index":15560,"title":{},"body":{"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["rss",{"_index":6855,"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":2006,"title":{"interfaces/Rule.html":{}},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":5396,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["rule.haspermission(user",{"_index":2012,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["rule.isapplicable(user",{"_index":17815,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rulemanager",{"_index":1894,"title":{"injectables/RuleManager.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/RuleManager.html":{}}}],["rules",{"_index":1906,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionItemUc.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rules.length",{"_index":17817,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rules[0",{"_index":17819,"title":{},"body":{"injectables/RuleManager.html":{}}}],["run",{"_index":22215,"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":23385,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["running",{"_index":2226,"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":21722,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["runs",{"_index":22208,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runtime",{"_index":1584,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["rxjs",{"_index":1157,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ExternalToolLogoService.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":1159,"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":1772,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BoardDoRepo.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["s3",{"_index":7963,"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":17856,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3_config",{"_index":17857,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3client",{"_index":7951,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["s3clientadapter",{"_index":10766,"title":{"injectables/S3ClientAdapter.html":{}},"body":{"injectables/FwuLearningContentsUc.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientadapter(s3client",{"_index":17926,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["s3clientadapter:createbucket",{"_index":17865,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientadapter:deletedirectory",{"_index":17912,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientmap",{"_index":7938,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["s3clientmodule",{"_index":10588,"title":{"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/S3ClientModule.html":{},"modules.html":{}}}],["s3clientmodule.register",{"_index":23752,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([s3config",{"_index":10603,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([storageconfig",{"_index":16643,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["s3config",{"_index":6267,"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":{},"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["safest",{"_index":22837,"title":{},"body":{"license.html":{}}}],["safety",{"_index":22228,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sale",{"_index":22701,"title":{},"body":{"license.html":{}}}],["salt",{"_index":2246,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["same",{"_index":2257,"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":9563,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["samesite",{"_index":16169,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["saml",{"_index":23513,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["sample",{"_index":9757,"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":23396,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["samples",{"_index":23204,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservice",{"_index":23397,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservicemethod(username",{"_index":23285,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["sampleucmethod(user",{"_index":23251,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["sanis",{"_index":17945,"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":22964,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sanisgrouprole",{"_index":17954,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisgrouprole.student",{"_index":18021,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouprole.teacher",{"_index":18020,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype",{"_index":17944,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype.class",{"_index":18023,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.ktid",{"_index":18041,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.rollen",{"_index":18042,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupusers",{"_index":18036,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenresponse",{"_index":17946,"title":{"interfaces/SanisGruppenResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenzugehoerigkeitresponse",{"_index":17950,"title":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["sanisgrupperesponse",{"_index":17937,"title":{"interfaces/SanisGruppeResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["sanislaufzeitresponse",{"_index":17943,"title":{"interfaces/SanisLaufzeitResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["sanisnameresponse",{"_index":17957,"title":{"interfaces/SanisNameResponse.html":{}},"body":{"interfaces/SanisNameResponse.html":{},"interfaces/SanisPersonResponse.html":{}}}],["sanisorganisationresponse",{"_index":17960,"title":{"interfaces/SanisOrganisationResponse.html":{}},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["sanispersonenkontextresponse",{"_index":17968,"title":{"interfaces/SanisPersonenkontextResponse.html":{}},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanispersonresponse",{"_index":17963,"title":{"interfaces/SanisPersonResponse.html":{}},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanisprovisioningstrategy",{"_index":16839,"title":{"injectables/SanisProvisioningStrategy.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["sanisresponse",{"_index":17984,"title":{"interfaces/SanisResponse.html":{}},"body":{"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisresponsemapper",{"_index":16840,"title":{"injectables/SanisResponseMapper.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole",{"_index":17972,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lehr",{"_index":18015,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.leit",{"_index":18017,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lern",{"_index":18016,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.orgadmin",{"_index":18018,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanissonstigegruppenzugehoerigeresponse",{"_index":11151,"title":{"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"interfaces/SanisGruppenResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisstrategy",{"_index":16853,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["sanissystem",{"_index":21284,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanissystem.id",{"_index":21287,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanitize",{"_index":22176,"title":{},"body":{"dependencies.html":{}}}],["sanitizehtml",{"_index":7051,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/PatchGroupParams.html":{},"classes/RenameBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text",{"_index":7052,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text_ck5",{"_index":19682,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sanitizer",{"_index":22869,"title":{},"body":{"todo.html":{}}}],["sanitizerichtext",{"_index":5641,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RichText.html":{}}}],["sanitizerichtext(content",{"_index":17456,"title":{},"body":{"classes/RichText.html":{}}}],["sanitizerichtext(this.content.alternativetext",{"_index":5655,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.caption",{"_index":5652,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.text",{"_index":5674,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizing",{"_index":23112,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["satisfied",{"_index":9599,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["satisfies",{"_index":532,"title":{},"body":{"controllers/AccountController.html":{}}}],["satisfy",{"_index":9595,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"license.html":{}}}],["save",{"_index":18,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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":{},"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/AccountServiceDb.html":{}}}],["save(domainobject",{"_index":3338,"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":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":{}}}],["save(group",{"_index":11176,"title":{},"body":{"injectables/GroupService.html":{}}}],["save(school",{"_index":14081,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["save(systemdto",{"_index":19468,"title":{},"body":{"injectables/SystemService.html":{}}}],["save(user",{"_index":21599,"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":3346,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["save.visitor.ts",{"_index":17239,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:113",{"_index":17258,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:129",{"_index":17259,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:144",{"_index":17260,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:158",{"_index":17262,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:172",{"_index":17256,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:188",{"_index":17253,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:195",{"_index":17249,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:203",{"_index":17246,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:36",{"_index":17244,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:40",{"_index":17250,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:54",{"_index":17255,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:69",{"_index":17254,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:83",{"_index":17251,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:98",{"_index":17257,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveall",{"_index":2352,"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":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":{}}}],["saveall(users",{"_index":21601,"title":{},"body":{"injectables/UserService.html":{}}}],["saveallusersmatches",{"_index":12741,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(@currentuser",{"_index":12810,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(currentuser",{"_index":12758,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["savecontextexternaltool",{"_index":6025,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["savecontextexternaltool(contextexternaltool",{"_index":6037,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saved",{"_index":9415,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["savedcontextexternaltool",{"_index":6042,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saveddomainobject",{"_index":8976,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["saveddos",{"_index":2398,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["saveddos[0",{"_index":2400,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["savedentity",{"_index":11084,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedgroup",{"_index":11185,"title":{},"body":{"injectables/GroupService.html":{}}}],["savedmigration",{"_index":21274,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["savedpassword",{"_index":14382,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["savedprops",{"_index":11087,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedschool",{"_index":16336,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["saveduser",{"_index":16354,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{}}}],["saveduser.id",{"_index":16357,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["savedusers",{"_index":21614,"title":{},"body":{"injectables/UserService.html":{}}}],["saveschoolexternaltool",{"_index":18193,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveschoolexternaltool(schoolexternaltool",{"_index":18206,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveuninitialized",{"_index":18563,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["savevisitor",{"_index":3377,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savevisitor.save(domainobject",{"_index":3380,"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":21511,"title":{},"body":{"injectables/UserRepo.html":{}}}],["saying",{"_index":22538,"title":{},"body":{"license.html":{}}}],["sc",{"_index":3909,"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":17380,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["sc_domain",{"_index":12234,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["sc_theme",{"_index":4863,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["scan",{"_index":10150,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanned",{"_index":10041,"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":1330,"title":{"interfaces/ScanResult.html":{}},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"interfaces/ScanResult.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["scanresult.error",{"_index":1368,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.reason",{"_index":10145,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.status",{"_index":10144,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.virus_detected",{"_index":1365,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.virus_signature",{"_index":1366,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresultdto",{"_index":10132,"title":{"classes/ScanResultDto.html":{}},"body":{"classes/FileRecordMapper.html":{},"controllers/FileSecurityController.html":{},"classes/ScanResultDto.html":{}}}],["scanresultparams",{"_index":6239,"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":10149,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_detected",{"_index":10143,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_signature",{"_index":10146,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scans",{"_index":11707,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["scanstatus",{"_index":6191,"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":10085,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.error",{"_index":10088,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.pending",{"_index":10040,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.verified",{"_index":10094,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.wont_check",{"_index":10091,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scdomain",{"_index":13414,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["scenario",{"_index":23342,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["scenarios",{"_index":23333,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["schema",{"_index":3981,"title":{},"body":{"controllers/CardController.html":{},"classes/CommonCartridgeMetadataElement.html":{},"entities/Course.html":{},"controllers/ElementController.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["schema.ts",{"_index":23176,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemas",{"_index":23177,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemaversion",{"_index":5256,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["school",{"_index":192,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"injectables/BoardDoCopyService.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/ContextExternalToolUc.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/ExternalToolService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/GroupApiModule.html":{},"controllers/GroupController.html":{},"injectables/GroupUc.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":{},"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":{},"modules/PseudonymApiModule.html":{},"injectables/PseudonymUc.html":{},"classes/RecursiveCopyVisitor.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/ToolReferenceService.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.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":{},"classes/UsersList.html":{},"modules/VideoConferenceModule.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["school'})@apiokresponse({description",{"_index":20330,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["school(params",{"_index":23673,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["school(value",{"_index":12559,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["school.'})@apiresponse({status",{"_index":10947,"title":{},"body":{"controllers/GroupController.html":{}}}],["school._id",{"_index":13014,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["school.controller",{"_index":13921,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.controller.ts",{"_index":13924,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:101",{"_index":20719,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:121",{"_index":20715,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:28",{"_index":13938,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:46",{"_index":20726,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:51",{"_index":13933,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:61",{"_index":20722,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:79",{"_index":20730,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.do.ts",{"_index":13961,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:11",{"_index":13966,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:13",{"_index":13967,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:15",{"_index":13970,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:17",{"_index":13968,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:19",{"_index":13969,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:21",{"_index":13972,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:23",{"_index":13965,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:26",{"_index":13971,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:28",{"_index":13973,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:31",{"_index":13963,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:9",{"_index":13964,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.dto",{"_index":15701,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["school.dto.ts",{"_index":8451,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:2",{"_index":8454,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:4",{"_index":8455,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:6",{"_index":8453,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.entity",{"_index":6521,"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":{},"classes/UsersList.html":{}}}],["school.factory",{"_index":6737,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["school.factory.ts",{"_index":13989,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["school.features",{"_index":14084,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.filter((f",{"_index":14086,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.includes(feature",{"_index":14085,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features?.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":15448,"title":{},"body":{"injectables/OAuthService.html":{}}}],["school.id",{"_index":14822,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolValidationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["school.module",{"_index":13919,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.module.ts",{"_index":14011,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["school.name",{"_index":16327,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["school.officialschoolnumber",{"_index":323,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["school.previousexternalid",{"_index":13840,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.previousexternalid}/${username}`.tolowercase",{"_index":13843,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.repo.ts",{"_index":14013,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:19",{"_index":14016,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:24",{"_index":14024,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:28",{"_index":14019,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:35",{"_index":14021,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.rule.ts",{"_index":14057,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:12",{"_index":14058,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:15",{"_index":14060,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:21",{"_index":14059,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.schoolyear",{"_index":20916,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.service.ts",{"_index":14062,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:10",{"_index":14069,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:16",{"_index":14078,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:21",{"_index":14080,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:29",{"_index":14073,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:35",{"_index":14071,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:41",{"_index":14075,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:47",{"_index":14082,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.systems",{"_index":13814,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.systems.includes(systemid",{"_index":13815,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{}}}],["school.systems.push(systemid",{"_index":16331,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school.systems?.filter((systemid",{"_index":21286,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["school.uc.ts",{"_index":14093,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:101",{"_index":14097,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:16",{"_index":14095,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:26",{"_index":14102,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:77",{"_index":14100,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school/controller/dto/migration.body.ts",{"_index":14809,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:12",{"_index":14812,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:21",{"_index":14811,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:30",{"_index":14810,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.response.ts",{"_index":14852,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:14",{"_index":14858,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:20",{"_index":14857,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:26",{"_index":14856,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:31",{"_index":14853,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:8",{"_index":14859,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/school.params.ts",{"_index":18402,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/dto/school.params.ts:11",{"_index":18403,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/legacy",{"_index":13923,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school/error/school",{"_index":18393,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school/legacy",{"_index":13916,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["school/mapper/migration.mapper.ts",{"_index":14833,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/mapper/migration.mapper.ts:7",{"_index":14836,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/repo/schoolyear.repo.ts",{"_index":18442,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:11",{"_index":18444,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:7",{"_index":18445,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/service/federal",{"_index":9778,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["school/service/legacy",{"_index":14061,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school/service/school",{"_index":18448,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["school/service/validation/school",{"_index":18429,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["school/types",{"_index":16321,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school/uc/dto/oauth",{"_index":15743,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["school/uc/legacy",{"_index":14092,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school?.id",{"_index":16413,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["school_external_tools",{"_index":12174,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["school_in_migration",{"_index":18280,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["school_migration_failed",{"_index":18305,"title":{},"body":{"classes/SchoolMigrationError.html":{}}}],["school_number_duplicate",{"_index":18396,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school_number_missing",{"_index":18401,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["schooldo",{"_index":13073,"title":{},"body":{"classes/IservMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schooldo.externalid",{"_index":13077,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.features",{"_index":21291,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":21292,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.push(schoolfeatures.oauth_provisioning_enabled",{"_index":21293,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.name",{"_index":13076,"title":{},"body":{"classes/IservMapper.html":{}}}],["schooldo.officialschoolnumber",{"_index":13078,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.previousexternalid",{"_index":18384,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems",{"_index":18382,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems.push(targetsystemid",{"_index":18383,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldocopy",{"_index":18354,"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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"classes/UsersList.html":{}}}],["schoolentity(props",{"_index":14032,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolexclusive",{"_index":18603,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["schoolexternal",{"_index":18098,"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/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.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/ToolReferenceService.html":{},"controllers/ToolSchoolController.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltool'})@httpcode(httpstatus.no_content",{"_index":20718,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool.id",{"_index":8546,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltool.name",{"_index":18176,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.parameters",{"_index":280,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["schoolexternaltool.schoolid",{"_index":311,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.status",{"_index":18179,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolid",{"_index":8550,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolversion",{"_index":18178,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse",{"_index":18085,"title":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20380,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplateresponse",{"_index":18087,"title":{"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltooldto",{"_index":18152,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolentity",{"_index":5778,"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":18136,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["schoolexternaltoolfactory",{"_index":18092,"title":{"classes/SchoolExternalToolFactory.html":{}},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolfactory.define(schoolexternaltool",{"_index":18097,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolid",{"_index":5737,"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":18099,"title":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{}},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolids",{"_index":5851,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolmodule",{"_index":5814,"title":{"modules/SchoolExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["schoolexternaltoolparams",{"_index":20724,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolparams.schoolid",{"_index":20734,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolpostparams",{"_index":18108,"title":{"classes/SchoolExternalToolPostParams.html":{}},"body":{"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolprops",{"_index":18077,"title":{"interfaces/SchoolExternalToolProps.html":{}},"body":{"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["schoolexternaltoolquery",{"_index":18122,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolqueryinput",{"_index":18234,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["schoolexternaltoolrefdo",{"_index":5706,"title":{"classes/SchoolExternalToolRefDO.html":{}},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schoolexternaltoolrepo",{"_index":1933,"title":{"injectables/SchoolExternalToolRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CommonToolModule.html":{},"injectables/ExternalToolService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolrequestmapper",{"_index":18146,"title":{"injectables/SchoolExternalToolRequestMapper.html":{}},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse",{"_index":18157,"title":{"classes/SchoolExternalToolResponse.html":{}},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponsemapper",{"_index":18163,"title":{"injectables/SchoolExternalToolResponseMapper.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apibadrequestresponse({type",{"_index":20729,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20714,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolrule",{"_index":1895,"title":{"injectables/SchoolExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["schoolexternaltools",{"_index":8528,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltools.filter",{"_index":8542,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["schoolexternaltools.length",{"_index":9730,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltools.map",{"_index":9341,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolscope",{"_index":18124,"title":{"classes/SchoolExternalToolScope.html":{}},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolsearchlistresponse",{"_index":18172,"title":{"classes/SchoolExternalToolSearchListResponse.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolsearchlistresponse(responses",{"_index":18175,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolsearchparams",{"_index":18186,"title":{"classes/SchoolExternalToolSearchParams.html":{}},"body":{"classes/SchoolExternalToolSearchParams.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolservice",{"_index":6057,"title":{"injectables/SchoolExternalToolService.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltoolsinuse",{"_index":8585,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltoolsinuse.map",{"_index":8589,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltooluc",{"_index":18220,"title":{"injectables/SchoolExternalToolUc.html":{}},"body":{"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolvalidationservice",{"_index":18106,"title":{"injectables/SchoolExternalToolValidationService.html":{}},"body":{"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltoolversion",{"_index":18250,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolfactory",{"_index":6736,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.build",{"_index":6746,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.buildwithid",{"_index":20163,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["schoolfeatures",{"_index":12184,"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":{}}}],["schoolfeatures.enable_ldap_sync_during_migration",{"_index":21279,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.oauth_provisioning_enabled",{"_index":16335,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schoolforgroupnotfoundloggable",{"_index":16322,"title":{"classes/SchoolForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["schoolforgroupnotfoundloggable(externalgroup",{"_index":16365,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["schoolid",{"_index":4205,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.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":{},"injectables/FeathersRosterService.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":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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":{},"interfaces/OauthCurrentUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewBuilder.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/SchoolSpecificFileCopyServiceImpl.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["schoolid'})@index",{"_index":6752,"title":{},"body":{"entities/CourseGroup.html":{},"entities/Submission.html":{}}}],["schooliddoesnotmatchwithuserschoolid",{"_index":18266,"title":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["schoolidparams",{"_index":18276,"title":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{}},"body":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolinfo",{"_index":18297,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.id",{"_index":18298,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.name",{"_index":18299,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper",{"_index":15032,"title":{"classes/SchoolInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper.maptoresponse(news.school",{"_index":15037,"title":{},"body":{"classes/NewsMapper.html":{}}}],["schoolinforesponse",{"_index":15004,"title":{"classes/SchoolInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{}}}],["schoolinmigrationerror",{"_index":15507,"title":{"classes/SchoolInMigrationError.html":{}},"body":{"injectables/Oauth2Strategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["schoolinusermigrationendloggable",{"_index":18281,"title":{"classes/SchoolInUserMigrationEndLoggable.html":{}},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["schoolinusermigrationstartloggable",{"_index":18287,"title":{"classes/SchoolInUserMigrationStartLoggable.html":{}},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["schoolmigrated",{"_index":18362,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolmigrationerror",{"_index":18303,"title":{"classes/SchoolMigrationError.html":{}},"body":{"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationerror(details",{"_index":21332,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationflags",{"_index":18306,"title":{"interfaces/SchoolMigrationFlags.html":{}},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["schoolmigrationservice",{"_index":4483,"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":12390,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SystemEntity.html":{}}}],["schoolnews",{"_index":6882,"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":6880,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnumber",{"_index":14076,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["schoolnumber_prefix_regex",{"_index":18000,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["schoolnumberduplicateloggableexception",{"_index":18392,"title":{"classes/SchoolNumberDuplicateLoggableException.html":{}},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolnumberduplicateloggableexception(school.officialschoolnumber",{"_index":18435,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["schoolnumbermissingloggableexception",{"_index":18397,"title":{"classes/SchoolNumberMissingLoggableException.html":{}},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolnumbermissingloggableexception(schoolid",{"_index":18911,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["schoolnumbermissingloggableexception})@apiokresponse({description",{"_index":21077,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["schoolparameter",{"_index":7302,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["schoolparameters",{"_index":12173,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["schoolparams",{"_index":13928,"title":{"classes/SchoolParams.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/SchoolParams.html":{}}}],["schoolparams.schoolid",{"_index":13953,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolrepo",{"_index":12125,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolrolepermission",{"_index":12201,"title":{"classes/SchoolRolePermission.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolroles",{"_index":12204,"title":{"classes/SchoolRoles.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolrule",{"_index":23697,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["schools",{"_index":10031,"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":14030,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolservice",{"_index":132,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/GroupUc.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.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":{}}}],["schoolspecificfilecopyservice",{"_index":3301,"title":{"interfaces/SchoolSpecificFileCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicecopyparams",{"_index":18411,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicefactory",{"_index":3576,"title":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceimpl",{"_index":18420,"title":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyserviceimpl(this.filesstorageclientadapterservice",{"_index":18421,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceprops",{"_index":18414,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schooltomigrate",{"_index":16227,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schooltomigrate(currentuserid",{"_index":18340,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooltool",{"_index":5771,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["schooltool.school",{"_index":5883,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["schooltoolid",{"_index":5797,"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":5699,"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":12104,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["schooluc",{"_index":13949,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolvalidationservice",{"_index":14009,"title":{"injectables/SchoolValidationService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolyear",{"_index":4323,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"injectables/FederalStateService.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":{},"injectables/SchoolYearService.html":{}}}],["schoolyear.entity",{"_index":12188,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolyear.factory",{"_index":13993,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyear?.name",{"_index":11302,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["schoolyearentity",{"_index":10752,"title":{"entities/SchoolYearEntity.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearfactory",{"_index":13992,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory.build",{"_index":14004,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearrepo",{"_index":14010,"title":{"injectables/SchoolYearRepo.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearservice",{"_index":11197,"title":{"injectables/SchoolYearService.html":{}},"body":{"injectables/GroupUc.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["schould",{"_index":7040,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{}}}],["schul",{"_index":2132,"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/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":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/PseudonymService.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":11526,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ServerController.html":{},"additional-documentation/nestjs-application.html":{}}}],["schulcloudnextcloud",{"_index":15966,"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/ExternalToolPseudonymRepo.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/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":{},"classes/OauthLoginResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"classes/PseudonymScope.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"injectables/SubmissionRepo.html":{},"entities/SystemEntity.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":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope)roles",{"_index":23653,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope.addquery(allforcreator.query",{"_index":19802,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(allforfinishedcoursesandlessons.query",{"_index":19801,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(closedforopencoursesandlessons.query",{"_index":19800,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(parentidscope.query",{"_index":19815,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.afterduedateornone(filters.afterduedateornone",{"_index":19822,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.allowemptyquery(true",{"_index":5889,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byavailable(filters?.availableon",{"_index":19826,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byclasses(filters.classes",{"_index":12960,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bycontextid(query.context?.id",{"_index":5887,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycontexttype(query.context?.type",{"_index":5888,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycourseids([courseid",{"_index":19828,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.bycourseids(courseids",{"_index":14223,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.bycreator(creatorid",{"_index":15096,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bydraft(false",{"_index":19820,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfinished(filters.finished.userid",{"_index":19817,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfirstname(filters.firstname",{"_index":12952,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byhidden(filters.hidden",{"_index":14225,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.byid(query.id",{"_index":5885,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bylastname(filters.lastname",{"_index":12954,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byloginname(filters.loginname",{"_index":12956,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bymatches(filters.matches",{"_index":12962,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bypublished",{"_index":15092,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byrole(filters.role",{"_index":12958,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschool(school",{"_index":12950,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschoolid(query.schoolid",{"_index":18137,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byschooltoolid(query.schooltoolref?.schooltoolid",{"_index":5886,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bytargets(targets",{"_index":15091,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bytoolid(query.toolid",{"_index":18138,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byunpublished",{"_index":15095,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byusermatch(user",{"_index":12948,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.enum",{"_index":21830,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["scope.excludedraftsofothers(creatorid",{"_index":19830,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludedraftsofothers(parentids.creatorid",{"_index":19819,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludeunavailableofothers(parentids.creatorid",{"_index":19824,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.foractivecourses",{"_index":6929,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forallgrouptypes(userid",{"_index":6927,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forcourseid(courseid",{"_index":6938,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacher(userid",{"_index":6934,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacherorsubstituteteacher(userid",{"_index":6937,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.id",{"_index":21800,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.isflagged(true",{"_index":12964,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.name",{"_index":21360,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["scope.nofutureavailabledate",{"_index":19832,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.params.ts",{"_index":22029,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:12",{"_index":22033,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:8",{"_index":22031,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.query",{"_index":5882,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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":9751,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["scope.scope",{"_index":21806,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.target",{"_index":15205,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope.targetid",{"_index":20078,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.targetmodel",{"_index":20080,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.transient",{"_index":13894,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["scope.ts",{"_index":10208,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:10",{"_index":14272,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:13",{"_index":10215,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:15",{"_index":19458,"title":{},"body":{"classes/SystemScope.html":{}}}],["scope.ts:17",{"_index":19899,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:19",{"_index":10222,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:25",{"_index":10224,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:31",{"_index":10217,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:37",{"_index":15131,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:39",{"_index":19897,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:45",{"_index":19894,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:5",{"_index":14271,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:52",{"_index":19901,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:60",{"_index":19891,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:66",{"_index":19908,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:7",{"_index":10220,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:73",{"_index":19903,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:8",{"_index":15133,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:83",{"_index":19889,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:89",{"_index":19907,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:95",{"_index":19905,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.withldapconfig",{"_index":19436,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoauthconfig",{"_index":19438,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoidcconfig",{"_index":19440,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope:11",{"_index":6002,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:13",{"_index":6000,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:31",{"_index":6014,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:35",{"_index":6016,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:9",{"_index":6003,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope?.target",{"_index":15202,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope?.unpublished",{"_index":15185,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scoped",{"_index":20000,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopeid",{"_index":9571,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/IScopeInfo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["scopeinfo",{"_index":21791,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopeinfo.logouturl",{"_index":21816,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["scopeinfo.scopeid",{"_index":21808,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopemapping",{"_index":9154,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterdo.scope",{"_index":9250,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterparam.scope",{"_index":9200,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["scopename",{"_index":12230,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["scopeoperator",{"_index":6001,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scopeparams",{"_index":21709,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopeparams.scope",{"_index":21746,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopepermission",{"_index":19999,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopepermissions",{"_index":19998,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scoperef",{"_index":18474,"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":21745,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scoperessource",{"_index":21802,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopes",{"_index":137,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/ConsentResponse.html":{},"injectables/IdTokenService.html":{},"classes/LoginResponse-1.html":{},"controllers/NewsController.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scopes.includes(oauthscope.email",{"_index":12645,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.groups",{"_index":12639,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.profile",{"_index":12647,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.map(async",{"_index":285,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["scopes/rules/permissions/user",{"_index":23736,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scraper",{"_index":16431,"title":{},"body":{"injectables/OpenGraphProxyService.html":{},"dependencies.html":{}}}],["scraper/dist/lib/types",{"_index":16432,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["scripts",{"_index":22408,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["sdk",{"_index":22089,"title":{},"body":{"dependencies.html":{}}}],["sdk/client",{"_index":7962,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["sdk/lib",{"_index":17855,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["search",{"_index":1005,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/IdentityManagementService.html":{},"interfaces/PseudonymSearchQuery.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["search.params.ts",{"_index":9267,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.params.ts:13",{"_index":9269,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["search.params.ts:8",{"_index":9270,"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":23246,"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/AccountServiceDb.html":{}}}],["searchbyusernameexactmatch(username",{"_index":67,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch",{"_index":20,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch(username",{"_index":69,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["searches",{"_index":20398,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["searching",{"_index":13024,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["searchoptions",{"_index":12703,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["searchparams",{"_index":21180,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchparams.userid",{"_index":21184,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchquery",{"_index":9205,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["searchuser",{"_index":12387,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["searchusername",{"_index":943,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchuserpassword",{"_index":12388,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["second",{"_index":2684,"title":{},"body":{"entities/Board.html":{},"injectables/S3ClientAdapter.html":{}}}],["secondarily",{"_index":22356,"title":{},"body":{"license.html":{}}}],["secondary",{"_index":22309,"title":{},"body":{"license.html":{}}}],["secondchar",{"_index":6591,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["seconds",{"_index":5451,"title":{},"body":{"classes/ConsentRequestBody.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/LoginRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["secret",{"_index":1618,"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":{},"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":{}}}],["secretaccesskey",{"_index":6272,"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":13669,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["secretorkey",{"_index":13175,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["secrets",{"_index":11838,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["secretvalue",{"_index":1780,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["section",{"_index":15601,"title":{},"body":{"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sections",{"_index":22509,"title":{},"body":{"license.html":{}}}],["secure",{"_index":16173,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["secure_launch_url",{"_index":5189,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["security",{"_index":9914,"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":10249,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:15",{"_index":10255,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:29",{"_index":10258,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["securitycheck",{"_index":9879,"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":10053,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheckstatus",{"_index":6215,"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/AuthorizationReferenceService.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":{},"interfaces/CreateJwtPayload.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":{},"interfaces/JwtPayload.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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.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":7799,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICleanOptions.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":11632,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["seed.service",{"_index":13312,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["seed.service.ts",{"_index":13687,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:13",{"_index":13691,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:20",{"_index":13696,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:35",{"_index":13692,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:60",{"_index":13693,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:94",{"_index":13694,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:99",{"_index":13695,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seedcollections",{"_index":7790,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["seedcollections(options",{"_index":7798,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["seeddata",{"_index":23326,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["seeddatabasecollectionsfromfactories(collections",{"_index":11729,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeddatabasecollectionsfromfilesystem(collections",{"_index":11744,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeded",{"_index":13641,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["seededcollectionswithamount",{"_index":11740,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seededcollectionswithamount.push(`${collectionname}:${importeddocumentsamount",{"_index":11764,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeding",{"_index":23520,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["seeds",{"_index":11631,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seems",{"_index":22907,"title":{},"body":{"todo.html":{}}}],["segregation",{"_index":23070,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sehr",{"_index":4857,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["select",{"_index":23698,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["selectconfigureaction",{"_index":13328,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selectconfigureaction(newconfigs",{"_index":13355,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selected",{"_index":13817,"title":{},"body":{"injectables/LdapStrategy.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"todo.html":{}}}],["selectedrules",{"_index":17813,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule",{"_index":17791,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule(user",{"_index":17797,"title":{},"body":{"injectables/RuleManager.html":{}}}],["self",{"_index":23645,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sell",{"_index":22716,"title":{},"body":{"license.html":{}}}],["selling",{"_index":22700,"title":{},"body":{"license.html":{}}}],["semiconductor",{"_index":22340,"title":{},"body":{"license.html":{}}}],["senario",{"_index":23349,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["send",{"_index":1336,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"additional-documentation/nestjs-application.html":{}}}],["send(data",{"_index":1667,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/TestApiClient.html":{}}}],["send(params",{"_index":1675,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["send(requesttoken",{"_index":1348,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["sendauthenticationcodetokenrequest",{"_index":15548,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendauthenticationcodetokenrequest(tokenendpoint",{"_index":15555,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendhttpresponse",{"_index":10801,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sendhttpresponse(error",{"_index":10817,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sending",{"_index":23117,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sense",{"_index":1856,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/LessonCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sensible",{"_index":19287,"title":{},"body":{"controllers/SystemController.html":{}}}],["sent",{"_index":19679,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sentence",{"_index":1435,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separable",{"_index":22549,"title":{},"body":{"license.html":{}}}],["separate",{"_index":13899,"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":15599,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["separately",{"_index":22495,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["seperate",{"_index":14167,"title":{},"body":{"injectables/LessonCopyUC.html":{},"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":23127,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperation",{"_index":22207,"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":12829,"title":{},"body":{"classes/ImportUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}displayname",{"_index":19367,"title":{},"body":{"classes/SystemFactory.html":{}}}],["serialization",{"_index":18919,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"todo.html":{}}}],["serialize",{"_index":3807,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["serialize(documents",{"_index":3817,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serializedprimarykey",{"_index":2458,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["serializes",{"_index":3819,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serve",{"_index":22177,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["served",{"_index":23028,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server",{"_index":2075,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/ConsentRequestBody.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/LegacyLogger.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":{},"classes/UsersList.html":{},"dependencies.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":18540,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["server.console",{"_index":18497,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["server.module.ts",{"_index":14776,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["server.module.ts:36",{"_index":14782,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["server/blob/main/apps/server/src/modules/authorization/readme.md",{"_index":23047,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/config/readme.md",{"_index":23046,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/src/services/lesson/hooks/index.js#l232",{"_index":23729,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["server/overview.html",{"_index":22910,"title":{},"body":{"todo.html":{}}}],["server/pull/2729#pullrequestreview",{"_index":22887,"title":{},"body":{"todo.html":{}}}],["server/server.config",{"_index":832,"title":{},"body":{"modules/AccountModule.html":{}}}],["server_options_path='/tmp/config/server",{"_index":23533,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["serverconfig",{"_index":12248,"title":{},"body":{"interfaces/IServerConfig.html":{},"modules/ManagementModule.html":{},"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{},"controllers/RoomsController.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["serverconsole",{"_index":18476,"title":{"classes/ServerConsole.html":{}},"body":{"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{}}}],["serverconsolemodule",{"_index":18488,"title":{"modules/ServerConsoleModule.html":{}},"body":{"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["servercontroller",{"_index":18499,"title":{"controllers/ServerController.html":{}},"body":{"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servermodule",{"_index":18502,"title":{"modules/ServerModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["servermodules",{"_index":18541,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servers",{"_index":22320,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["servertestmodule",{"_index":18582,"title":{"modules/ServerTestModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["serves",{"_index":22400,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["service",{"_index":766,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"modules/BoardModule.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/GroupModule.html":{},"injectables/GroupUc.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/PseudonymUc.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/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":23732,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["service.create(data",{"_index":8415,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["service.factory.ts",{"_index":18415,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:10",{"_index":18417,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:13",{"_index":18419,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.find",{"_index":9574,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.get",{"_index":23223,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.get(userid",{"_index":9569,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.mapper",{"_index":9312,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["service.mapper.ts",{"_index":9365,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.mapper.ts:7",{"_index":9368,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.module.ts",{"_index":16068,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["service.provider",{"_index":8409,"title":{},"body":{"injectables/EtherpadService.html":{},"modules/FeathersModule.html":{},"injectables/NexboardService.html":{}}}],["service.provider.ts",{"_index":9739,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.provider.ts:13",{"_index":9747,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:19",{"_index":9745,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:24",{"_index":9742,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:38",{"_index":9764,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.provider.ts:41",{"_index":9765,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.ts",{"_index":1870,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.ts:10",{"_index":1877,"title":{},"body":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["service.ts:5",{"_index":1871,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{}}}],["service/authorization.helper",{"_index":3392,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":{}}}],["service/board",{"_index":3294,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{}}}],["service/cache.service",{"_index":3875,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["service/column",{"_index":3582,"title":{},"body":{"modules/BoardModule.html":{}}}],["service/common",{"_index":6718,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["service/copy",{"_index":6344,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{}}}],["service/dto",{"_index":16125,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["service/dto/page",{"_index":16474,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["service/files",{"_index":10491,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/hydra.service",{"_index":11436,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{}}}],["service/id",{"_index":16014,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["service/keycloak",{"_index":13233,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"modules/KeycloakModule.html":{}}}],["service/oauth",{"_index":15755,"title":{},"body":{"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["service/oauth.service",{"_index":11437,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{}}}],["service/oidc",{"_index":16407,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["service/preview.service",{"_index":10519,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/provisioning.service",{"_index":16844,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["service/recursive",{"_index":17113,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["service/rooms.service",{"_index":17756,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["service/school",{"_index":18408,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["service/strategy",{"_index":20552,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/submission",{"_index":8238,"title":{},"body":{"injectables/ElementUc.html":{}}}],["service/system",{"_index":19399,"title":{},"body":{"modules/SystemModule.html":{}}}],["service/user.service",{"_index":21486,"title":{},"body":{"modules/UserModule.html":{}}}],["servicedto",{"_index":20060,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["serviceoptions",{"_index":18817,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.context",{"_index":18819,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.expiresat",{"_index":18823,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoutputtypes",{"_index":17853,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["services",{"_index":9621,"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":1573,"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":20100,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["services/dto/team.dto",{"_index":20061,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["services/ldap.service",{"_index":1574,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["serviceunavailableexception",{"_index":13642,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["servicing",{"_index":22803,"title":{},"body":{"license.html":{}}}],["session",{"_index":346,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.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":16036,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_id",{"_index":16034,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_name",{"_index":16035,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.destroy((err",{"_index":16134,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["session.oauthloginstate",{"_index":16148,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["session.response.ts",{"_index":5525,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["session.response.ts:13",{"_index":5533,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:16",{"_index":5534,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:19",{"_index":5532,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:4",{"_index":5529,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session_id",{"_index":14514,"title":{},"body":{"classes/LoginResponse-1.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["session_token",{"_index":2209,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["sessionduration",{"_index":18551,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessionhandler",{"_index":16087,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessionhandler(session",{"_index":16110,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessions",{"_index":15938,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessions.map",{"_index":15940,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileRecordFactory.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICurrentUser.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/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LoginRequestBody.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MigrationBody.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.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":{},"classes/SubmissionContainerElementContent.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.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":{},"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":1664,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(caseinsensitivenames",{"_index":5401,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["set(headerconst.accept",{"_index":1673,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(memberids",{"_index":12319,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["set(permissions",{"_index":12170,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["set(systemids",{"_index":11263,"title":{},"body":{"injectables/GroupUc.html":{}}}],["set(tasksubmitterids",{"_index":12520,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["setalternativetext(value",{"_index":9837,"title":{},"body":{"classes/FileElement.html":{}}}],["setcaption(value",{"_index":9834,"title":{},"body":{"classes/FileElement.html":{}}}],["setcompleted(value",{"_index":19044,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setcontext",{"_index":13873,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontext(context",{"_index":4728,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["setcontext(name",{"_index":13882,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontextexternaltoolid(value",{"_index":8640,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["setcookies",{"_index":11500,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setcookies.foreach((item",{"_index":11544,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setdescription(value",{"_index":14322,"title":{},"body":{"classes/LinkElement.html":{}}}],["setduedate(value",{"_index":18971,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["setgroupname",{"_index":10885,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setgroupname(newgroupname",{"_index":7462,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setheight(height",{"_index":3954,"title":{},"body":{"classes/Card.html":{}}}],["setheightbodyparams",{"_index":4001,"title":{"classes/SetHeightBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/SetHeightBodyParams.html":{}}}],["setimageurl(value",{"_index":14326,"title":{},"body":{"classes/LinkElement.html":{}}}],["setinputformat(value",{"_index":17468,"title":{},"body":{"classes/RichTextElement.html":{}}}],["setlearnrooms",{"_index":7411,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["setlearnrooms(rooms",{"_index":7450,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setmatch",{"_index":12742,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(urlparams",{"_index":12761,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(user",{"_index":12047,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["setmigration",{"_index":13926,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolid",{"_index":14101,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolparams",{"_index":13934,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["setmigrationmandatory",{"_index":20268,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(currentuser",{"_index":21068,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["setmigrationmandatory(schoolid",{"_index":21265,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(userid",{"_index":20271,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["setname(name",{"_index":10079,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["setpasswordpolicy",{"_index":13247,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["setrequireduserrole(userroleenum",{"_index":3096,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["sets",{"_index":4669,"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":20150,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setstrategy",{"_index":4523,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["setstrategy(strategy",{"_index":4536,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["settedlanguage",{"_index":21635,"title":{},"body":{"injectables/UserUc.html":{}}}],["settext(value",{"_index":17464,"title":{},"body":{"classes/RichTextElement.html":{}}}],["settimeout",{"_index":17917,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["settimeout(resolve",{"_index":11656,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["setting",{"_index":6886,"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":23238,"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":2294,"title":{},"body":{"injectables/BBBService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["settings.interface.ts",{"_index":11580,"title":{},"body":{"interfaces/IBbbSettings.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IVideoConferenceSettings.html":{}}}],["settings.response",{"_index":4077,"title":{},"body":{"classes/CardResponse.html":{}}}],["settings.response.ts",{"_index":22036,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:3",{"_index":22038,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:9",{"_index":22039,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settitle(title",{"_index":3950,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["settitle(value",{"_index":14319,"title":{},"body":{"classes/LinkElement.html":{}}}],["setup",{"_index":3495,"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":23529,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm",{"_index":22960,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:configure",{"_index":23570,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:seed",{"_index":23569,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setuppath",{"_index":11746,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["setupsessions",{"_index":18550,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setupsessions(consumer",{"_index":18576,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["seturl(value",{"_index":14318,"title":{},"body":{"classes/LinkElement.html":{}}}],["setuser(value",{"_index":20146,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setuserattribute",{"_index":12684,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserattribute(userid",{"_index":12711,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserid(value",{"_index":19047,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setuserstatus(authtoken",{"_index":1214,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["sha",{"_index":2328,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.digest('hex",{"_index":2332,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.update(callname",{"_index":2330,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha1",{"_index":2265,"title":{},"body":{"injectables/BBBService.html":{},"injectables/Lti11EncryptionService.html":{}}}],["shall",{"_index":17081,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["share",{"_index":18625,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenResponse.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"license.html":{}}}],["shared",{"_index":18607,"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/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":{},"classes/TooManyPseudonymsLoggableException.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":9675,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/GroupService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.html":{}}}],["shared/common/utils",{"_index":2291,"title":{},"body":{"injectables/BBBService.html":{}}}],["shared/common/utils/guard",{"_index":14389,"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/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.html":{},"classes/ColumnResponse.html":{},"injectables/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/GroupController.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":10692,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["shared/core",{"_index":23194,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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/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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserResponse.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/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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"interfaces/OauthCurrentUser.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"interfaces/SchoolSpecificFileCopyService.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":{},"classes/SortHelper.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":{},"todo.html":{}}}],["shared/domain/domain",{"_index":1873,"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":{},"injectables/CopyHelperService.html":{},"classes/DomainObjectFactory.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolRule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"interfaces/UserBoardRoles.html":{}}}],["shared/domain/domainobject",{"_index":3391,"title":{},"body":{"injectables/BoardDoRule.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/CurrentUserMapper.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/OidcProvisioningService.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/ShareTokenDO.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserService.html":{}}}],["shared/domain/domainobject/base.do",{"_index":5710,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["shared/domain/domainobject/board/link",{"_index":5642,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/domainobject/ltitool.do",{"_index":11504,"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":8583,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/UserDORepo.html":{}}}],["shared/domain/domainobject/user.do",{"_index":7081,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserMigrationService.html":{}}}],["shared/domain/entity",{"_index":1844,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.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/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["shared/domain/entity/account.entity",{"_index":918,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["shared/domain/entity/base.entity",{"_index":4272,"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/boardnode/link",{"_index":17263,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/entity/external",{"_index":11042,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["shared/domain/entity/ltitool.entity",{"_index":7179,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/LtiToolDO.html":{}}}],["shared/domain/entity/materials.entity",{"_index":14795,"title":{},"body":{"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{}}}],["shared/domain/entity/school.entity",{"_index":11044,"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/UserLoginMigrationEntity.html":{}}}],["shared/domain/entity/system.entity",{"_index":21151,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["shared/domain/entity/user",{"_index":12186,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["shared/domain/entity/video",{"_index":21996,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["shared/domain/index",{"_index":15796,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["shared/domain/interface",{"_index":4878,"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":{},"classes/UsersList.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["shared/domain/interface/permission.enum",{"_index":14163,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["shared/domain/interface/system",{"_index":12335,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["shared/domain/interface/video",{"_index":21829,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["shared/domain/types",{"_index":2545,"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":12255,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["shared/domain/types/input",{"_index":12443,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["shared/domain/types/session",{"_index":15740,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["shared/infra/antivirus",{"_index":6228,"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":{}}}],["shared/infra/antivirus/antivirus.module",{"_index":10584,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["shared/infra/cache",{"_index":1563,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/OauthModule.html":{}}}],["shared/infra/cache/interface/cache",{"_index":13202,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["shared/infra/calendar",{"_index":21965,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/infra/calendar/dto/calendar",{"_index":3904,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/interface/calendar",{"_index":3902,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["shared/infra/calendar/mapper/calendar.mapper",{"_index":3919,"title":{},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/service/calendar.service",{"_index":3918,"title":{},"body":{"modules/CalendarModule.html":{}}}],["shared/infra/collaborative",{"_index":4548,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["shared/infra/console",{"_index":3489,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"interfaces/ICleanOptions.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":7806,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["shared/infra/database",{"_index":10649,"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":10650,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["shared/infra/encryption",{"_index":8844,"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":1902,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"modules/LessonModule.html":{}}}],["shared/infra/feathers/feathers",{"_index":8408,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["shared/infra/file",{"_index":11669,"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":18518,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/metrics",{"_index":16783,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["shared/infra/oauth",{"_index":8843,"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/preview",{"_index":10586,"title":{},"body":{"modules/FilesStorageModule.html":{},"classes/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["shared/infra/rabbitmq",{"_index":8358,"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/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.html":{},"classes/RecursiveCopyVisitor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/rabbitmq/rabbitmq.module",{"_index":10587,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{}}}],["shared/infra/rabbitmq/rpc",{"_index":10513,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{}}}],["shared/infra/redis",{"_index":18519,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/s3",{"_index":9797,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/PreviewConfig.html":{},"classes/PreviewGeneratorBuilder.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewService.html":{},"classes/TestHelper.html":{}}}],["shared/pipes",{"_index":23218,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardCopyService.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/ExternalToolPseudonymRepo.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/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":{},"classes/PseudonymScope.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":{}}}],["shared/repo/base.do.repo",{"_index":14700,"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":4591,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["shared/repo/scope",{"_index":9263,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["shared/repo/storageprovider",{"_index":7964,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["shared/repo/system/system",{"_index":19434,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["shared/repo/types/storageproviderencryptedstring.type",{"_index":12264,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["shared/repo/user/user",{"_index":21484,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["shared/repo/videoconference/video",{"_index":21966,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/testing",{"_index":3532,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/ClassFactory.html":{}}}],["shared/testing/factory/base.factory",{"_index":4306,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/LtiToolFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/role.factory",{"_index":20159,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/school.factory",{"_index":20156,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/teamuser.factory",{"_index":20051,"title":{},"body":{"classes/TeamFactory.html":{}}}],["shared/testing/factory/user.factory",{"_index":20157,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/types",{"_index":14997,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["shared/utils",{"_index":23195,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators",{"_index":23212,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators/text.validator.ts",{"_index":23198,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sharetoken",{"_index":6474,"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":{},"classes/UsersList.html":{}}}],["sharetoken(props",{"_index":18733,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["sharetoken.context",{"_index":18829,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.expiresat",{"_index":18753,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{}}}],["sharetoken.payload",{"_index":18752,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetoken.payload.parentid",{"_index":18832,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.payload.parenttype",{"_index":18780,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken.token",{"_index":18751,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenbodyparams",{"_index":18599,"title":{"classes/ShareTokenBodyParams.html":{}},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{}}}],["sharetokencontext",{"_index":18671,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype",{"_index":12252,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype.school",{"_index":18820,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper",{"_index":18615,"title":{"classes/ShareTokenContextTypeMapper.html":{}},"body":{"classes/ShareTokenContextTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper.maptoallowedauthorizationentitytype(context.contexttype",{"_index":18845,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontroller",{"_index":18618,"title":{"controllers/ShareTokenController.html":{}},"body":{"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokendo",{"_index":18667,"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":18680,"title":{"classes/ShareTokenFactory.html":{}},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenfactory.define",{"_index":18688,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenimportbodyparams",{"_index":18632,"title":{"classes/ShareTokenImportBodyParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{}}}],["sharetokeninfo",{"_index":18659,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninfo.parentname",{"_index":18708,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.parenttype",{"_index":18707,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.token",{"_index":18706,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfodto",{"_index":18695,"title":{"interfaces/ShareTokenInfoDto.html":{}},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninforesponse",{"_index":18647,"title":{"classes/ShareTokenInfoResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper",{"_index":18644,"title":{"classes/ShareTokenInfoResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper.maptoresponse(sharetokeninfo",{"_index":18662,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokeninforesponse})@apiresponse({status",{"_index":18641,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenparenttype",{"_index":12253,"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":18689,"title":{},"body":{"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.lesson",{"_index":18782,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.task",{"_index":18784,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper",{"_index":18709,"title":{"classes/ShareTokenParentTypeMapper.html":{}},"body":{"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(parenttype",{"_index":18847,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(payload.parenttype",{"_index":18838,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenpayload",{"_index":18673,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenpayloadresponse",{"_index":18713,"title":{"classes/ShareTokenPayloadResponse.html":{}},"body":{"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["sharetokenpayloadresponse(payload",{"_index":18749,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["sharetokenrepo",{"_index":18721,"title":{"injectables/ShareTokenRepo.html":{}},"body":{"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenresponse",{"_index":18648,"title":{"classes/ShareTokenResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper",{"_index":18645,"title":{"classes/ShareTokenResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper.maptoresponse(sharetoken",{"_index":18656,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenresponse})@apiresponse({status",{"_index":18627,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokens",{"_index":9880,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["sharetokenservice",{"_index":18754,"title":{"injectables/ShareTokenService.html":{}},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenstring",{"_index":12254,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/TokenGenerator.html":{}}}],["sharetokenuc",{"_index":18646,"title":{"injectables/ShareTokenUC.html":{}},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenurlparams",{"_index":18631,"title":{"classes/ShareTokenUrlParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenUrlParams.html":{}}}],["sharingapimodule",{"_index":18505,"title":{"modules/SharingApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["sharingmodule",{"_index":18862,"title":{"modules/SharingModule.html":{}},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["shit",{"_index":6526,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["short",{"_index":6829,"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":23488,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["shortid",{"_index":22150,"title":{},"body":{"dependencies.html":{}}}],["shorttitle",{"_index":6596,"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":{},"classes/UsersList.html":{}}}],["shouldincrementversion",{"_index":9504,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["shouldskipconsent",{"_index":15969,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldskipconsent(tool",{"_index":15979,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldusermigrate",{"_index":14816,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["shouldusermigrate(externaluserid",{"_index":14819,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["show",{"_index":15157,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/SystemController.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["show_outdated_users",{"_index":12197,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["showoutdatedusers",{"_index":12198,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["sid",{"_index":14526,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["side",{"_index":2258,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sideeffects",{"_index":23747,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["sign",{"_index":14554,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"license.html":{}}}],["sign(key",{"_index":14555,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signalgorithm",{"_index":1607,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signature_method",{"_index":14562,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["significant",{"_index":22572,"title":{},"body":{"license.html":{}}}],["signing",{"_index":1606,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signoptions",{"_index":1569,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["similar",{"_index":22330,"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":23078,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["simplicity",{"_index":22923,"title":{},"body":{"todo.html":{}}}],["simplification",{"_index":23160,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["simplify",{"_index":23353,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["simply",{"_index":22226,"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":22763,"title":{},"body":{"license.html":{}}}],["sind",{"_index":4846,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["single",{"_index":3282,"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":3291,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single(boardnode",{"_index":3292,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single:latestexample",{"_index":23545,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["single:latestthe",{"_index":23546,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["singlecolumnboardresponse",{"_index":17596,"title":{"classes/SingleColumnBoardResponse.html":{}},"body":{"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["singlefileparams",{"_index":6240,"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":10676,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["situations",{"_index":23627,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["six",{"_index":10296,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["size",{"_index":1015,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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":{}}}],["sizetype",{"_index":7579,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["skeleton",{"_index":2918,"title":{},"body":{"controllers/BoardController.html":{}}}],["skeleton.response",{"_index":4954,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["skeleton.response.ts",{"_index":4133,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:12",{"_index":4135,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:18",{"_index":4144,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:3",{"_index":4134,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skip",{"_index":70,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"classes/ClassInfoSearchListResponse.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"interfaces/ICleanOptions.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":7133,"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/ClassInfoSearchListResponse.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":22915,"title":{},"body":{"todo.html":{}}}],["slow",{"_index":11758,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["small",{"_index":23071,"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":{}}}],["smallestbigenoughimage",{"_index":16448,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sn",{"_index":12396,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["socketio",{"_index":22180,"title":{},"body":{"dependencies.html":{}}}],["software",{"_index":22266,"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":22559,"title":{},"body":{"license.html":{}}}],["sole",{"_index":22428,"title":{},"body":{"license.html":{}}}],["solely",{"_index":22436,"title":{},"body":{"license.html":{}}}],["solution",{"_index":3102,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"modules/ToolLaunchModule.html":{},"interfaces/UserBoardRoles.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["solutions",{"_index":22848,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["solve",{"_index":19833,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["somemethod",{"_index":23277,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["someotherservice",{"_index":23134,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["something",{"_index":12617,"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":23724,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sonstige",{"_index":17951,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sonstige_gruppenzugehoerige",{"_index":17949,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{}}}],["soon",{"_index":23637,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sort",{"_index":4428,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sort.id",{"_index":9382,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["sort.name",{"_index":9383,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sort.params.ts",{"_index":18881,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["sortby",{"_index":3015,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/ClassSortParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/GroupUc.html":{},"classes/ImportUserMapper.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortby(resolved",{"_index":3086,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder",{"_index":2967,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder(resolved",{"_index":2995,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos",{"_index":3085,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos.map",{"_index":3087,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortedbsondocuments",{"_index":11775,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["sortedchildren",{"_index":3272,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["sortedimages",{"_index":16442,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sortedimages.find((i",{"_index":16449,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sortedimages.sort((a",{"_index":16443,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sortexternaltoolparams",{"_index":9146,"title":{"classes/SortExternalToolParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolController.html":{}}}],["sorthelper",{"_index":11218,"title":{"classes/SortHelper.html":{}},"body":{"injectables/GroupUc.html":{},"classes/SortHelper.html":{}}}],["sorthelper.genericsortfunction(a[sortby",{"_index":11230,"title":{},"body":{"injectables/GroupUc.html":{}}}],["sortimportuserparams",{"_index":12749,"title":{"classes/SortImportUserParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["sorting",{"_index":19751,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["sorting.mapper.ts",{"_index":9378,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.mapper.ts:7",{"_index":9381,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.ts",{"_index":22883,"title":{},"body":{"todo.html":{}}}],["sortingparams",{"_index":4430,"title":{"classes/SortingParams.html":{}},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortingparams:14",{"_index":4434,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingparams:18",{"_index":4437,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingquery",{"_index":9148,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"controllers/ToolController.html":{}}}],["sortingquery.sortby",{"_index":10971,"title":{},"body":{"controllers/GroupController.html":{}}}],["sortingquery.sortorder",{"_index":9204,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"classes/ImportUserMapper.html":{}}}],["sortorder",{"_index":4431,"title":{},"body":{"classes/ClassSortParams.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/GroupUc.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/LessonRepo.html":{},"injectables/NewsUc.html":{},"classes/SortExternalToolParams.html":{},"classes/SortHelper.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.asc",{"_index":4435,"title":{},"body":{"classes/ClassSortParams.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/GroupUc.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":6974,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"injectables/NewsUc.html":{},"classes/SortHelper.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["sortordermap",{"_index":9149,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/ImportUserMapper.html":{},"injectables/UserDORepo.html":{}}}],["sortreferences",{"_index":7466,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{}}}],["source.entity",{"_index":11043,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["source.entity.ts",{"_index":8465,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["source.entity.ts:13",{"_index":8468,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.entity.ts:16",{"_index":8467,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.person.name.familienname",{"_index":18029,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.person.name.vorname",{"_index":18028,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].id",{"_index":18038,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.id.tostring",{"_index":18027,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.kennung.replace",{"_index":18024,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.name",{"_index":18026,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation?.id",{"_index":18046,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0]?.gruppen",{"_index":18033,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.pid",{"_index":18031,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.response",{"_index":11101,"title":{},"body":{"classes/GroupResponse.html":{}}}],["source.response.ts",{"_index":8475,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:5",{"_index":8477,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:8",{"_index":8476,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.ts",{"_index":8460,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:2",{"_index":8462,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:4",{"_index":8461,"title":{},"body":{"classes/ExternalSource.html":{}}}],["sourcecode",{"_index":23165,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sourcedescription",{"_index":6856,"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":18330,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["sourceid",{"_index":6173,"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":4212,"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":3419,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparent.removechild(child",{"_index":3421,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparentid",{"_index":17167,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourcepath",{"_index":6265,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["sources",{"_index":22979,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sourceschoolid",{"_index":4753,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourceschoolnumber",{"_index":21330,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["sourcesystem",{"_index":16482,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemid",{"_index":21121,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl",{"_index":21442,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl.tostring",{"_index":21445,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcetype",{"_index":15010,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["space",{"_index":745,"title":{},"body":{"classes/AccountFactory.html":{},"classes/OauthClientBody.html":{}}}],["spalten",{"_index":4816,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["spare",{"_index":22520,"title":{},"body":{"license.html":{}}}],["sparse",{"_index":6540,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["speak",{"_index":22290,"title":{},"body":{"license.html":{}}}],["spec.ts",{"_index":23002,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["special",{"_index":22599,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["specialized",{"_index":23069,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specific",{"_index":1184,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BoardDoCopyService.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/RecursiveCopyVisitor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":22277,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["specification",{"_index":23237,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specifications",{"_index":23295,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specified",{"_index":4670,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/GuardAgainst.html":{},"license.html":{}}}],["specifies",{"_index":20567,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{},"license.html":{}}}],["specify",{"_index":22788,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["spies",{"_index":23412,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["spirit",{"_index":22780,"title":{},"body":{"license.html":{}}}],["split",{"_index":14106,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["splitting",{"_index":23731,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sql",{"_index":961,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["squashed",{"_index":23495,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["src",{"_index":23164,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["src/config",{"_index":10593,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core",{"_index":10416,"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",{"_index":10960,"title":{},"body":{"controllers/GroupController.html":{}}}],["src/core/error/dto/error.response",{"_index":3844,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/interface",{"_index":3845,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/loggable/error.loggable",{"_index":13809,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["src/core/error/utils",{"_index":1355,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorMapper.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["src/core/logger",{"_index":1467,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/BaseDORepo.html":{},"modules/BoardApiModule.html":{},"injectables/BoardCopyService.html":{},"modules/BoardModule.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":{},"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/ICleanOptions.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/KeycloakSeedService.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":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":10699,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/core/logger/logger.module",{"_index":825,"title":{},"body":{"modules/AccountModule.html":{}}}],["src/core/logger/logging.utils",{"_index":10819,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["src/core/logger/types",{"_index":10700,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/imports",{"_index":13206,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["src/modules/authentication",{"_index":559,"title":{},"body":{"controllers/AccountController.html":{}}}],["src/modules/authentication/decorator/auth.decorator",{"_index":557,"title":{},"body":{"controllers/AccountController.html":{}}}],["src/modules/database",{"_index":23447,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["src/modules/group",{"_index":11164,"title":{},"body":{"injectables/GroupRule.html":{}}}],["src/shared/domain/entity/lesson.entity",{"_index":5027,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["src/shared/domain/types",{"_index":21428,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["src/shared/infra/rabbitmq",{"_index":10517,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["sso",{"_index":15378,"title":{},"body":{"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sso.controller",{"_index":15583,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["sso.controller.ts",{"_index":16081,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:119",{"_index":16114,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:152",{"_index":16099,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:162",{"_index":16109,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:183",{"_index":16104,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:47",{"_index":16090,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:65",{"_index":16106,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:83",{"_index":16111,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:98",{"_index":16095,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.error",{"_index":11434,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso.error.ts",{"_index":15375,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:11",{"_index":15376,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:5",{"_index":15381,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:7",{"_index":15380,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:9",{"_index":15379,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso_auth_code_step",{"_index":11439,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["sso_internal_error",{"_index":15430,"title":{},"body":{"injectables/OAuthService.html":{}}}],["sso_jwt_problem",{"_index":13106,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["sso_user_not_found_after_provisioning",{"_index":21494,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso_user_notfound",{"_index":13113,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ssoauthenticationerror",{"_index":1913,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["ssoerror",{"_index":16133,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerror.errorcode",{"_index":16139,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerrorcode",{"_index":15382,"title":{},"body":{"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_jwt_problem",{"_index":15456,"title":{},"body":{"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_oauth_login_failed",{"_index":15377,"title":{},"body":{"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["ssologinquery",{"_index":16093,"title":{"classes/SSOLoginQuery.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/SSOLoginQuery.html":{}}}],["stack",{"_index":8745,"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/TooManyPseudonymsLoggableException.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":4829,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["standard",{"_index":22391,"title":{},"body":{"license.html":{}}}],["standards",{"_index":22393,"title":{},"body":{"license.html":{}}}],["start",{"_index":1021,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ClassInfoSearchListResponse.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":21726,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["start.loggable.ts",{"_index":18288,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:11",{"_index":18290,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["start.loggable.ts:4",{"_index":18289,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:7",{"_index":21298,"title":{},"body":{"classes/UserLoginMigrationStartLoggable.html":{}}}],["startdate",{"_index":6475,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{}}}],["started",{"_index":1477,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/OauthUc.html":{},"classes/SchoolInUserMigrationStartLoggable.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":21122,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startet",{"_index":23721,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["starting",{"_index":22202,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["startmigration",{"_index":18902,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startmigration(@currentuser",{"_index":21102,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(currentuser",{"_index":21075,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(schoolid",{"_index":21267,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["startmigration(userid",{"_index":18905,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["startoauthauthorizationcodeflow",{"_index":16088,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthauthorizationcodeflow(session",{"_index":16112,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthlogin",{"_index":16200,"title":{},"body":{"injectables/OauthUc.html":{}}}],["startoauthlogin(session",{"_index":16210,"title":{},"body":{"injectables/OauthUc.html":{}}}],["starts",{"_index":14469,"title":{},"body":{"controllers/LoginController.html":{},"additional-documentation/nestjs-application.html":{}}}],["startschoolinusermigration",{"_index":12743,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["startschoolinusermigration(currentuser",{"_index":12765,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["starttime",{"_index":2227,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["startup",{"_index":23555,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["startuserloginmigrationuc",{"_index":18899,"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":{},"modules/AuthorizationReferenceModule.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":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["state.dto",{"_index":15741,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["state.dto.ts",{"_index":15723,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:10",{"_index":15725,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:12",{"_index":15724,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:4",{"_index":15727,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:6",{"_index":15728,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:8",{"_index":15726,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.entity",{"_index":12190,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["state.entity.ts",{"_index":6447,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["state.entity.ts:14",{"_index":6451,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:21",{"_index":6454,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:23",{"_index":6453,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:25",{"_index":6452,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:31",{"_index":9769,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:34",{"_index":9766,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:37",{"_index":9768,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:40",{"_index":9767,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.enum",{"_index":21679,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["state.factory",{"_index":13991,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["state.mapper",{"_index":16122,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["state.mapper.ts",{"_index":15735,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.mapper.ts:5",{"_index":15739,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.repo.ts",{"_index":9772,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:12",{"_index":9773,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:8",{"_index":9774,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.response",{"_index":8024,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["state.service.ts",{"_index":9779,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:10",{"_index":9784,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:6",{"_index":9782,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["stated",{"_index":22421,"title":{},"body":{"license.html":{}}}],["statelessauthorizationparams",{"_index":16097,"title":{"classes/StatelessAuthorizationParams.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["statemapping",{"_index":21951,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statemapping[state",{"_index":21958,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statement",{"_index":22639,"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":{},"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/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyMapper.html":{},"entities/Course.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/ExternalToolElementResponseMapper.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/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICourseProperties.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":{},"classes/LessonFactory.html":{},"classes/LinkElementResponseMapper.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/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PseudonymMapper.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/SortHelper.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":{},"classes/ToolStatusResponseMapper.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/UsersList.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["stating",{"_index":22475,"title":{},"body":{"license.html":{}}}],["statistics_reporting=false",{"_index":23606,"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/ContextExternalToolResponseMapper.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":{},"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/ForbiddenOperationError.html":{},"controllers/GroupController.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":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"interfaces/Meta.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"interfaces/NextcloudGroups.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/OcsResponse.html":{},"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":3027,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyHelperService.html":{}}}],["status.copyentity.id",{"_index":3073,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.copyentity.title",{"_index":3074,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.elements?.foreach((elementstatus",{"_index":6381,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.enum",{"_index":2066,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["status.mapper",{"_index":19709,"title":{},"body":{"classes/TaskMapper.html":{}}}],["status.mapper.ts",{"_index":19930,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.mapper.ts:5",{"_index":19931,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.originalentity",{"_index":6384,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.response",{"_index":3766,"title":{},"body":{"classes/BoardTaskResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["status.response.ts",{"_index":3774,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:14",{"_index":19939,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:17",{"_index":19938,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:20",{"_index":19934,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:21",{"_index":3787,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:23",{"_index":19935,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:24",{"_index":3786,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:26",{"_index":19937,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:27",{"_index":3782,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:29",{"_index":19936,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:3",{"_index":3781,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:30",{"_index":3783,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:33",{"_index":3785,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:36",{"_index":3784,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.status",{"_index":3030,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status_code",{"_index":5435,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["statuscode",{"_index":1182,"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":19712,"title":{},"body":{"classes/TaskMapper.html":{}}}],["statuses",{"_index":2994,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statuses.foreach((status",{"_index":3067,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statusmapping",{"_index":20754,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statusmapping[status",{"_index":20758,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statustext",{"_index":2023,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["stay",{"_index":23091,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["stemming",{"_index":11809,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["steps",{"_index":22303,"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":23660,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepshow",{"_index":23670,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stick",{"_index":23304,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["still",{"_index":6834,"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":11807,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/TimeoutInterceptor.html":{}}}],["storage",{"_index":3579,"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/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":{},"interfaces/IServerConfig.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storage'})@apiresponse({status",{"_index":4610,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.adapter",{"_index":4594,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage.adapter.ts",{"_index":4513,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:15",{"_index":4529,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:30",{"_index":4537,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:40",{"_index":4543,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:49",{"_index":4535,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:58",{"_index":4532,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:67",{"_index":4539,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.config",{"_index":10594,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["storage.config.ts",{"_index":11965,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["storage.const",{"_index":1360,"title":{},"body":{"injectables/AntivirusService.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{}}}],["storage.consumer.ts",{"_index":10493,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:14",{"_index":10498,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:31",{"_index":10504,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:48",{"_index":10508,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:63",{"_index":10506,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.controller",{"_index":4648,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage.controller.ts",{"_index":4602,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.controller.ts:32",{"_index":4616,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.mapper.ts",{"_index":10533,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:15",{"_index":10541,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:33",{"_index":10545,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:39",{"_index":10539,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:49",{"_index":10543,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:53",{"_index":10542,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:65",{"_index":10547,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.module",{"_index":10417,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{}}}],["storage.module.ts",{"_index":4639,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{}}}],["storage.params.ts",{"_index":6221,"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:100",{"_index":6290,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:103",{"_index":6288,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:106",{"_index":6289,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:113",{"_index":16682,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:118",{"_index":16684,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:12",{"_index":10154,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:126",{"_index":16680,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:16",{"_index":10151,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:20",{"_index":10153,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:27",{"_index":10354,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:32",{"_index":10351,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:36",{"_index":10353,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:42",{"_index":9978,"title":{},"body":{"classes/FileParams.html":{}}}],["storage.params.ts:48",{"_index":8052,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:52",{"_index":8051,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:58",{"_index":18061,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:62",{"_index":18062,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:66",{"_index":18060,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:72",{"_index":18880,"title":{},"body":{"classes/SingleFileParams.html":{}}}],["storage.params.ts:79",{"_index":17336,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["storage.params.ts:85",{"_index":6287,"title":{},"body":{"classes/CopyFilesOfParentParams.html":{}}}],["storage.params.ts:91",{"_index":6227,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:95",{"_index":6224,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.producer",{"_index":10440,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{}}}],["storage.producer.ts",{"_index":10612,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:18",{"_index":10616,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:28",{"_index":10618,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:37",{"_index":10622,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:46",{"_index":10619,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.response.ts",{"_index":6184,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["storage.response.ts:22",{"_index":10198,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:26",{"_index":10200,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:29",{"_index":10201,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:32",{"_index":10206,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:35",{"_index":10204,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:38",{"_index":10205,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:41",{"_index":10196,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:44",{"_index":10199,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:47",{"_index":10202,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:50",{"_index":10203,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:53",{"_index":10197,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:56",{"_index":10123,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["storage.response.ts:6",{"_index":10195,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:66",{"_index":6253,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:74",{"_index":6254,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:77",{"_index":6256,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:81",{"_index":6255,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:84",{"_index":6186,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["storage.service",{"_index":4645,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["storage.service.ts",{"_index":4649,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:13",{"_index":4655,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:31",{"_index":4660,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:42",{"_index":4668,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:60",{"_index":4657,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:64",{"_index":4656,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:68",{"_index":4664,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.ts",{"_index":11918,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["storage.uc",{"_index":4622,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage.uc.ts",{"_index":4690,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:21",{"_index":4700,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:34",{"_index":4696,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:38",{"_index":4695,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:42",{"_index":4697,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:9",{"_index":4694,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage/collaborative",{"_index":4512,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage/controller/collaborative",{"_index":4601,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage/controller/dto/file",{"_index":6183,"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":18055,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["storage/controller/dto/team",{"_index":20081,"title":{},"body":{"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{}}}],["storage/controller/file",{"_index":10248,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["storage/controller/files",{"_index":10492,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage/dto/file.dto.ts",{"_index":9791,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:11",{"_index":9796,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:13",{"_index":9794,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:15",{"_index":9795,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:4",{"_index":9793,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/team",{"_index":20109,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["storage/entity",{"_index":10117,"title":{},"body":{"classes/FileRecordFactory.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"modules/ServerConsoleModule.html":{}}}],["storage/entity/filerecord.entity.ts",{"_index":10003,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["storage/entity/filerecord.entity.ts:104",{"_index":10016,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:107",{"_index":10023,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:110",{"_index":10018,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:113",{"_index":10017,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:116",{"_index":10022,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:120",{"_index":10020,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:124",{"_index":10012,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:131",{"_index":10008,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:138",{"_index":10013,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:145",{"_index":10010,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:45",{"_index":10232,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:48",{"_index":10230,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:51",{"_index":10231,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:54",{"_index":10229,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:57",{"_index":10228,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/files",{"_index":1359,"title":{},"body":{"injectables/AntivirusService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/IFileStorageConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["storage/helper",{"_index":3012,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["storage/helper/test",{"_index":20233,"title":{},"body":{"classes/TestHelper.html":{}}}],["storage/interface/interfaces.ts",{"_index":10773,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{}}}],["storage/mapper/collaborative",{"_index":4550,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/mapper/copy",{"_index":6258,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["storage/mapper/file",{"_index":9810,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{}}}],["storage/mapper/files",{"_index":10532,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage/mapper/preview.builder.ts",{"_index":16585,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:33",{"_index":16591,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:8",{"_index":16589,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/team",{"_index":4641,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["storage/mapper/team.mapper",{"_index":4643,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage/mapper/team.mapper.ts",{"_index":20056,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/mapper/team.mapper.ts:12",{"_index":20059,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/repo/filerecord",{"_index":10207,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["storage/repo/filerecord.repo.ts",{"_index":10156,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:13",{"_index":10177,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:20",{"_index":10179,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:27",{"_index":10169,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:34",{"_index":10171,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:45",{"_index":10173,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:56",{"_index":10175,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:65",{"_index":10167,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:81",{"_index":10181,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:9",{"_index":10182,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/service/preview.service.ts",{"_index":16693,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:14",{"_index":16699,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:23",{"_index":16705,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:37",{"_index":16703,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:45",{"_index":16701,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:52",{"_index":16710,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:73",{"_index":16708,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:83",{"_index":16706,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/services/collaborative",{"_index":4644,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["storage/services/dto/team",{"_index":4545,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/TeamPermissionsDto.html":{}}}],["storage/services/dto/team.dto",{"_index":4547,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/services/dto/team.dto.ts",{"_index":20032,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:11",{"_index":20038,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:13",{"_index":20036,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:23",{"_index":20140,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:25",{"_index":20139,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:27",{"_index":20138,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:9",{"_index":20037,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/strategy/base.interface.strategy",{"_index":4549,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage/strategy/base.interface.strategy.ts",{"_index":11658,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:12",{"_index":11665,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:14",{"_index":11662,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:16",{"_index":11661,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:18",{"_index":11663,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.client",{"_index":4589,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.interface.ts",{"_index":11325,"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":4590,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts",{"_index":15227,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:129",{"_index":15253,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:158",{"_index":15240,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:172",{"_index":15239,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:192",{"_index":15242,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:202",{"_index":15246,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:21",{"_index":15233,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:38",{"_index":15249,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:59",{"_index":15237,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:75",{"_index":15234,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:98",{"_index":15247,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/uc/collaborative",{"_index":4689,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage:debug",{"_index":22990,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:dev",{"_index":22989,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:prod",{"_index":22991,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storageclient",{"_index":10765,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storageconfig",{"_index":16603,"title":{},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["storageconfig.connectionname",{"_index":16642,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["storagefilename",{"_index":8004,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageprovider",{"_index":7950,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["storageprovider.accesskeyid",{"_index":7996,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageprovider.endpointurl",{"_index":7991,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.region",{"_index":7993,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.secretaccesskey",{"_index":7997,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageproviderencryptedstringtype",{"_index":12263,"title":{"classes/StorageProviderEncryptedStringType.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviderentity",{"_index":7948,"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":9906,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageproviderrepo",{"_index":7945,"title":{"injectables/StorageProviderRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviders",{"_index":11675,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviders.foreach((storageprovider",{"_index":11849,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storageproviderscollectionname",{"_index":11674,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storagestrategy",{"_index":4595,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["store",{"_index":3861,"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":3880,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["stored",{"_index":20675,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["strategies",{"_index":11660,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{}}}],["strategy",{"_index":4519,"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":16882,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.createlaunchdata(userid",{"_index":20598,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.createlaunchrequest(toollaunchdata",{"_index":20594,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.getdata(input",{"_index":16878,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.interface",{"_index":213,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["strategy.interface.ts",{"_index":12576,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:6",{"_index":12577,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:8",{"_index":12579,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy/jwt",{"_index":1575,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{}}}],["strategy/jwt.strategy",{"_index":1577,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/ldap.strategy",{"_index":1578,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/local.strategy",{"_index":1579,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oauth2.strategy",{"_index":1580,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oidc/service/oidc",{"_index":16845,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/sanis/response",{"_index":11155,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["strategy/sanis/sanis",{"_index":16846,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["stream",{"_index":1344,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["stream.destroy",{"_index":17920,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["stream.on('data",{"_index":17921,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["streamablefile",{"_index":6615,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(fileresponse.data",{"_index":10567,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["streamablefile(res.data",{"_index":10267,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["streamablefile(response.data",{"_index":10742,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(result",{"_index":6639,"title":{},"body":{"controllers/CourseController.html":{}}}],["strict",{"_index":16172,"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/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":{},"classes/AuthenticationValues.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/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.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/ExternalToolPseudonymRepo.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"injectables/FilesStorageProducer.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":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUserResponse.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/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/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/IRetryOptions.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.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":{},"classes/LoginResponseMapper.html":{},"injectables/Lti11EncryptionService.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/ResolvedGroupDto.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":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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/SchoolYearEntity.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":{},"classes/SortHelper.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/UsersList.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":{},"classes/VisibilitySettingsResponse.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":10352,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string'})@isstring()@isnotempty",{"_index":10350,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string(object[key",{"_index":2335,"title":{},"body":{"injectables/BBBService.html":{}}}],["string).split",{"_index":12240,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["string).tostring(cryptojs.enc.base64",{"_index":16359,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["stringifiedmessage",{"_index":13874,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["stringifiedmessage(message",{"_index":13884,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stringifymessage",{"_index":14452,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["stringifymessage(message",{"_index":14458,"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":{},"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":{}}}],["stringvalidator",{"_index":12859,"title":{"classes/StringValidator.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(escapedclasses",{"_index":13036,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedfirstname",{"_index":13022,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedlastname",{"_index":13028,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedloginname",{"_index":13031,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedname",{"_index":21527,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(filters.name",{"_index":21524,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(query.classes",{"_index":12890,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.firstname",{"_index":12878,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.lastname",{"_index":12881,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.loginname",{"_index":12884,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.name",{"_index":21359,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["stringvalidator.isstring(value",{"_index":18955,"title":{},"body":{"classes/StringValidator.html":{}}}],["string}${additionalinfo",{"_index":13112,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["string}/api/v3/sso/hydra/${oauthclientid",{"_index":11569,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["strip",{"_index":22183,"title":{},"body":{"dependencies.html":{}}}],["strong",{"_index":9624,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["strongly",{"_index":23432,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["structure",{"_index":5283,"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":23158,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["structures",{"_index":13891,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stubstitution",{"_index":6568,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["stucture",{"_index":22881,"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_count",{"_index":9681,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["student_list",{"_index":12202,"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":{}}}],["studententities",{"_index":9695,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentid",{"_index":12279,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["studentids",{"_index":6561,"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":{},"classes/UsersList.html":{}}}],["studentobjectids",{"_index":6763,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentobjectids.map((id",{"_index":6765,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentpermissions",{"_index":21001,"title":{},"body":{"classes/UserFactory.html":{}}}],["studentpseudonyms",{"_index":9705,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentpseudonyms.map((pseudonym",{"_index":9713,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["students",{"_index":6476,"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":{},"injectables/FeathersRosterService.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"injectables/SubmissionRepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["studentswithid",{"_index":6726,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentswithid(numberofstudents",{"_index":6730,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentuser",{"_index":864,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentvisibility",{"_index":12192,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentwithid",{"_index":19023,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["studio",{"_index":22234,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["stuff",{"_index":22257,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["style",{"_index":23356,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["sub",{"_index":6161,"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":23745,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["subclass",{"_index":16665,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["subdividing",{"_index":22683,"title":{},"body":{"license.html":{}}}],["subelements",{"_index":7589,"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":9376,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["subject_types_supported",{"_index":15610,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjects",{"_index":12099,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["subjecttype",{"_index":15609,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjecttypeenum",{"_index":15607,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["sublicenses",{"_index":22713,"title":{},"body":{"license.html":{}}}],["sublicensing",{"_index":22438,"title":{},"body":{"license.html":{}}}],["submission",{"_index":2849,"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":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseGroup.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.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":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SubmissionsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["submission.completed",{"_index":17296,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submission.controller.ts",{"_index":3719,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:27",{"_index":3728,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:48",{"_index":3734,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.coursegroup?.name",{"_index":19147,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.entity",{"_index":12448,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.getsubmitterids",{"_index":12518,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.grade",{"_index":19145,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.id",{"_index":17295,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionMapper.html":{}}}],["submission.isgraded",{"_index":12510,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isgradedforuser(user",{"_index":12513,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmitted",{"_index":12506,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmittedforuser(user",{"_index":12512,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isusersubmitter(user",{"_index":19194,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.service",{"_index":19923,"title":{},"body":{"injectables/TaskService.html":{}}}],["submission.task",{"_index":19199,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.task.aresubmissionspublic",{"_index":19197,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.teammembers",{"_index":12299,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["submission.userid",{"_index":17297,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainer",{"_index":19096,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainer.addchild(submissionitem",{"_index":19102,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainercontentbody",{"_index":5647,"title":{"classes/SubmissionContainerContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelement",{"_index":2838,"title":{"classes/SubmissionContainerElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.children",{"_index":8248,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.every((child",{"_index":8245,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.filter(issubmissionitem",{"_index":19124,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.duedate",{"_index":5679,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelement.id",{"_index":17292,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelementcontent",{"_index":18978,"title":{"classes/SubmissionContainerElementContent.html":{}},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementcontentbody",{"_index":8180,"title":{"classes/SubmissionContainerElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelementnode",{"_index":3189,"title":{"entities/SubmissionContainerElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerelementprops",{"_index":18976,"title":{"interfaces/SubmissionContainerElementProps.html":{}},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["submissioncontainerelementresponse",{"_index":4012,"title":{"classes/SubmissionContainerElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponse)@apiresponse({status",{"_index":3980,"title":{},"body":{"controllers/CardController.html":{}}}],["submissioncontainerelementresponsemapper",{"_index":5586,"title":{"classes/SubmissionContainerElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponsemapper.getinstance",{"_index":5578,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["submissioncontainerelementresponsemapper.instance",{"_index":18990,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerid",{"_index":18995,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainernodeprops",{"_index":18986,"title":{"interfaces/SubmissionContainerNodeProps.html":{}},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerurlparams",{"_index":3724,"title":{"classes/SubmissionContainerUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionContainerUrlParams.html":{}}}],["submissioncontainterelement",{"_index":19104,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainterelement.duedate",{"_index":19107,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontroller",{"_index":18997,"title":{"controllers/SubmissionController.html":{}},"body":{"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{}}}],["submissionfactory",{"_index":19021,"title":{"classes/SubmissionFactory.html":{}},"body":{"classes/SubmissionFactory.html":{}}}],["submissionfactory.define(submission",{"_index":19035,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["submissionid",{"_index":19212,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{}}}],["submissionitem",{"_index":2841,"title":{"classes/SubmissionItem.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementUpdateVisitor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.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.completed",{"_index":19088,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.createdat",{"_index":19091,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.id",{"_index":19089,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.updatedat",{"_index":19090,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.userid",{"_index":19092,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemfactory",{"_index":19057,"title":{"injectables/SubmissionItemFactory.html":{}},"body":{"injectables/SubmissionItemFactory.html":{}}}],["submissionitemid",{"_index":19119,"title":{},"body":{"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionitemnode",{"_index":3192,"title":{"entities/SubmissionItemNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemnodeprops",{"_index":19064,"title":{"interfaces/SubmissionItemNodeProps.html":{}},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemprops",{"_index":19055,"title":{"interfaces/SubmissionItemProps.html":{}},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["submissionitemresponse",{"_index":8212,"title":{"classes/SubmissionItemResponse.html":{}},"body":{"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemresponsemapper",{"_index":3738,"title":{"classes/SubmissionItemResponseMapper.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper.getinstance",{"_index":3745,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["submissionitemresponsemapper.instance",{"_index":19081,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponse})@apiresponse({status",{"_index":8196,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissionitems",{"_index":3741,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitems.filter((item",{"_index":19130,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.map((item",{"_index":19083,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemservice",{"_index":3573,"title":{"injectables/SubmissionItemService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemsresponse",{"_index":19082,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemuc",{"_index":2718,"title":{"injectables/SubmissionItemUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemurlparams",{"_index":3730,"title":{"classes/SubmissionItemUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionmapper",{"_index":19007,"title":{"classes/SubmissionMapper.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionMapper.html":{}}}],["submissionmapper.maptostatusresponse(submission",{"_index":19016,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrepo",{"_index":1934,"title":{"injectables/SubmissionRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"modules/TaskModule.html":{}}}],["submissionresponses",{"_index":19014,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrule",{"_index":1896,"title":{"injectables/SubmissionRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{}}}],["submissions",{"_index":3720,"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":19764,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["submissions.filter((submission",{"_index":12505,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.foreach((submission",{"_index":12516,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.map((submission",{"_index":19015,"title":{},"body":{"controllers/SubmissionController.html":{},"injectables/TaskService.html":{}}}],["submissions.some((submission",{"_index":12511,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissionservice",{"_index":19200,"title":{"injectables/SubmissionService.html":{}},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["submissionsresponse",{"_index":3735,"title":{"classes/SubmissionsResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionsresponse(submissionitemsresponse",{"_index":19087,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionsresponse})@apiresponse({status",{"_index":3726,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submissionstatuslistresponse",{"_index":19009,"title":{"classes/SubmissionStatusListResponse.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionstatuslistresponse(submissionresponses",{"_index":19018,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionstatusresponse",{"_index":19143,"title":{"classes/SubmissionStatusResponse.html":{}},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionuc",{"_index":19008,"title":{"injectables/SubmissionUc.html":{}},"body":{"controllers/SubmissionController.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{}}}],["submissionurlparams",{"_index":19000,"title":{"classes/SubmissionUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionUrlParams.html":{}}}],["submitted",{"_index":3780,"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":12504,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitterids",{"_index":12517,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitters",{"_index":19144,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submitting",{"_index":19062,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submittingcoursegroupname",{"_index":19146,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["subpath",{"_index":20199,"title":{},"body":{"classes/TestApiClient.html":{}}}],["subpermissions",{"_index":16570,"title":{},"body":{"injectables/PermissionService.html":{}}}],["subprograms",{"_index":22413,"title":{},"body":{"license.html":{}}}],["subsection",{"_index":22528,"title":{},"body":{"license.html":{}}}],["subset",{"_index":5445,"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":22567,"title":{},"body":{"license.html":{}}}],["substantially",{"_index":22681,"title":{},"body":{"license.html":{}}}],["substitution",{"_index":23067,"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":6504,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherentities",{"_index":9697,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteacherids",{"_index":6565,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherpseudonyms",{"_index":9707,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteachers",{"_index":6477,"title":{},"body":{"entities/Course.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/FeathersRosterService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["subtypes",{"_index":8184,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["succeed",{"_index":23375,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["succesfully",{"_index":16102,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["success",{"_index":1178,"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":13791,"title":{},"body":{"injectables/LdapService.html":{},"controllers/LoginController.html":{},"classes/SuccessfulResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["successful.'})@apiresponse({status",{"_index":14472,"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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["successfully.'})@apiresponse({status",{"_index":525,"title":{},"body":{"controllers/AccountController.html":{}}}],["successfully.'})@apiunauthorizedresponse({description",{"_index":20453,"title":{},"body":{"controllers/ToolController.html":{}}}],["successfulres",{"_index":11332,"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":19256,"title":{"classes/SuccessfulResponse.html":{}},"body":{"classes/SuccessfulResponse.html":{},"controllers/UserController.html":{}}}],["successfulresponse(result",{"_index":20842,"title":{},"body":{"controllers/UserController.html":{}}}],["successor",{"_index":4211,"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":2688,"title":{},"body":{"entities/Board.html":{},"injectables/DashboardUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sue",{"_index":22723,"title":{},"body":{"license.html":{}}}],["suffice",{"_index":22575,"title":{},"body":{"license.html":{}}}],["sufficient",{"_index":9590,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["suffix",{"_index":22922,"title":{},"body":{"todo.html":{}}}],["suggested",{"_index":22865,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["suggests",{"_index":23288,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["suitable",{"_index":11555,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["suites",{"_index":23005,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sum",{"_index":21535,"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/GroupController.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICalendarEvent.html":{},"controllers/LoginController.html":{},"controllers/PseudonymController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["super",{"_index":406,"title":{},"body":{"entities/Account.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/FederalStateEntity.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":{},"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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UsersList.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":13732,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super('ldapalreadypersisted",{"_index":13729,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super(_em",{"_index":5878,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["super(amqpconnection",{"_index":10630,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["super(config",{"_index":2094,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["super(domainobject.id",{"_index":7184,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["super(dto",{"_index":21887,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["super(e.response.statustext",{"_index":1196,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["super(message",{"_index":15353,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["super(oidcprovisioningservice",{"_index":17985,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthLoginResponse.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":5712,"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":8030,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["super(total",{"_index":1025,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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":1445,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["super.build",{"_index":2153,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["super.findbyid(id",{"_index":6782,"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":1627,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["supertest(this.app.gethttpserver",{"_index":1662,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest(this.app.gethttpserver()).get(path).set('authorization",{"_index":1660,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest.test",{"_index":1657,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supplement",{"_index":22602,"title":{},"body":{"license.html":{}}}],["support",{"_index":2449,"title":{},"body":{"classes/BaseDomainObject.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/RoomsAuthorisationService.html":{},"dependencies.html":{},"license.html":{},"modules.html":{},"todo.html":{}}}],["support_${objectid",{"_index":13147,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["supported",{"_index":1642,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/HydraSsoService.html":{},"injectables/LessonRule.html":{},"classes/OauthClientBody.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRule.html":{},"classes/TestApiClient.html":{}}}],["supporting",{"_index":22926,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["supports",{"_index":2503,"title":{},"body":{"classes/BaseFactory.html":{},"license.html":{}}}],["supportuserid",{"_index":13145,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["sure",{"_index":9342,"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":22758,"title":{},"body":{"license.html":{}}}],["survive",{"_index":22638,"title":{},"body":{"license.html":{}}}],["sustained",{"_index":22817,"title":{},"body":{"license.html":{}}}],["svg",{"_index":22855,"title":{},"body":{"modules.html":{}}}],["swagger",{"_index":22126,"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/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["switching",{"_index":21325,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["symbol('bbbsettings",{"_index":11581,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["symbol('defaultencryptionservice",{"_index":11955,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('keycloakconfigurationinputfiles",{"_index":12069,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["symbol('keycloaksettings",{"_index":12074,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["symbol('ldapencryptionservice",{"_index":11956,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('toolfeatures",{"_index":12567,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["symbol('videoconferencesettings",{"_index":12607,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["symetrickeyencryptionservice",{"_index":8262,"title":{"injectables/SymetricKeyEncryptionService.html":{}},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["symetrickeyencryptionservice(logger",{"_index":8267,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["sync",{"_index":7801,"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":16286,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["syncboardelementreferences(boardelementtargets",{"_index":2689,"title":{},"body":{"entities/Board.html":{}}}],["syncindexes",{"_index":7791,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["syncmode",{"_index":13472,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["syntax",{"_index":13407,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["sysmes",{"_index":1176,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["system",{"_index":3104,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/PageContentQueryParams.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolMigrationService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"injectables/SystemOidcService.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserLoginMigrationController.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":16487,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["system.'})@apiresponse({status",{"_index":19291,"title":{},"body":{"controllers/SystemController.html":{}}}],["system.'})@isoptional()@isenum(systemtypeenum",{"_index":19374,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["system.adapter",{"_index":10349,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.adapter.ts",{"_index":10276,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:12",{"_index":10286,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:18",{"_index":10323,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:26",{"_index":10288,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:36",{"_index":10305,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:48",{"_index":10320,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:57",{"_index":10309,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:68",{"_index":10292,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:78",{"_index":10315,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:84",{"_index":10302,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.alias",{"_index":17074,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["system.displayname",{"_index":17075,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.dto",{"_index":15702,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["system.dto.ts",{"_index":16890,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:5",{"_index":16893,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:7",{"_index":16892,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:9",{"_index":16891,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.entity",{"_index":8470,"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":12823,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["system.id",{"_index":13778,"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":19330,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemUc.html":{}}}],["system.ldapconfig",{"_index":11834,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.ldapconfig.searchuserpassword",{"_index":11835,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.module",{"_index":19278,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["system.module.ts",{"_index":10348,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.oauthconfig",{"_index":11828,"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":11829,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oauthconfig.provider",{"_index":16220,"title":{},"body":{"injectables/OauthUc.html":{}}}],["system.oauthconfig?.logoutendpoint",{"_index":15460,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oauthconfig?.provider",{"_index":15459,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oidcconfig",{"_index":11831,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/SystemService.html":{}}}],["system.oidcconfig.clientsecret",{"_index":11832,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oidcconfig.idphint",{"_index":19499,"title":{},"body":{"injectables/SystemService.html":{}}}],["system.provisioningstrategy",{"_index":19327,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.provisioningurl",{"_index":19328,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.type",{"_index":17073,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.url",{"_index":19326,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system/file",{"_index":10275,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["system?.displayname",{"_index":11289,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["system?.id",{"_index":21474,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["systemapimodule",{"_index":18506,"title":{"modules/SystemApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SystemApiModule.html":{},"modules.html":{}}}],["systemcontroller",{"_index":19275,"title":{"controllers/SystemController.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{}}}],["systemdto",{"_index":11217,"title":{"classes/SystemDto.html":{}},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"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":19483,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.displayname",{"_index":19484,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.id",{"_index":19480,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.oauthconfig",{"_index":19485,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningstrategy",{"_index":19486,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningurl",{"_index":19487,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.type",{"_index":19482,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.url",{"_index":19488,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdtos",{"_index":19305,"title":{},"body":{"controllers/SystemController.html":{}}}],["systementity",{"_index":8469,"title":{"entities/SystemEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["systemfactory",{"_index":12822,"title":{"classes/SystemFactory.html":{}},"body":{"classes/ImportUserFactory.html":{},"classes/SystemFactory.html":{}}}],["systemfactory.build",{"_index":12825,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["systemfactory.define(systementity",{"_index":19365,"title":{},"body":{"classes/SystemFactory.html":{}}}],["systemfilterparams",{"_index":19282,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceResponse.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IJsonAccount.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":{},"interfaces/OauthCurrentUser.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":16092,"title":{"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}},"body":{"controllers/OauthSSOController.html":{},"controllers/SystemController.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["systemids",{"_index":11257,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemids[0",{"_index":21288,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemlistresponse",{"_index":19452,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemmap",{"_index":11250,"title":{},"body":{"injectables/GroupUc.html":{}}}],["systemmap.get(group.externalsource.systemid",{"_index":11253,"title":{},"body":{"injectables/GroupUc.html":{}}}],["systemmapper",{"_index":19379,"title":{"classes/SystemMapper.html":{}},"body":{"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitiestodtos(systems",{"_index":19479,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitytodto(system",{"_index":19472,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromoauthconfigentitytodto(entity.oauthconfig",{"_index":19391,"title":{},"body":{"classes/SystemMapper.html":{}}}],["systemmodule",{"_index":1548,"title":{"modules/SystemModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.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":19400,"title":{"classes/SystemOidcMapper.html":{}},"body":{"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitiestodtos(system",{"_index":19426,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitytodto(system",{"_index":19423,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromoidcconfigentitytodto(entity.id",{"_index":19410,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["systemoidcservice",{"_index":13332,"title":{"injectables/SystemOidcService.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{}}}],["systemprovisioningstrategy",{"_index":12334,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.iserv",{"_index":13102,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.oidc",{"_index":16297,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.sanis",{"_index":17986,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.undefined",{"_index":16900,"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":19454,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper",{"_index":19299,"title":{"classes/SystemResponseMapper.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper.mapfromdtotolistresponse(systemdtos",{"_index":19308,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromdtotoresponse(systemdto",{"_index":19312,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromoauthconfigdtotoresponse(system.oauthconfig",{"_index":19455,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponses",{"_index":17064,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["systems",{"_index":10293,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/GroupUc.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":{},"controllers/SystemController.html":{},"entities/SystemEntity.html":{},"classes/SystemFilterParams.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["systems.'})@apiresponse({status",{"_index":19285,"title":{},"body":{"controllers/SystemController.html":{}}}],["systems.filter((system",{"_index":19491,"title":{},"body":{"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["systems.foreach((system",{"_index":11827,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systems.getitems().find((system",{"_index":20924,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["systems.map",{"_index":19450,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systems.map((system",{"_index":19495,"title":{},"body":{"injectables/SystemService.html":{}}}],["systems.set(systemid",{"_index":11266,"title":{},"body":{"injectables/GroupUc.html":{}}}],["systemscollectionname",{"_index":11673,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systemscope",{"_index":19433,"title":{"classes/SystemScope.html":{}},"body":{"injectables/SystemRepo.html":{},"classes/SystemScope.html":{}}}],["systemservice",{"_index":11196,"title":{"injectables/SystemService.html":{}},"body":{"injectables/GroupUc.html":{},"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":16863,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["systemtype",{"_index":19503,"title":{},"body":{"injectables/SystemUc.html":{}}}],["systemtypeenum",{"_index":19373,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemtypeenum.ldap",{"_index":19435,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemtypeenum.oauth",{"_index":19437,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemtypeenum.oidc",{"_index":19439,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemuc",{"_index":19273,"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":{},"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/ExternalToolElement.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"classes/Group.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.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/LinkElement.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":{},"injectables/PreviewProducer.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{},"interfaces/Rule.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolYearRepo.html":{},"classes/SortHelper.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":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["t.name",{"_index":19670,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["tab",{"_index":11779,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"controllers/TeamNewsController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["table",{"_index":15255,"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/FederalStateEntity.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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["tags",{"_index":12100,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["take",{"_index":12042,"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":19837,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tangible",{"_index":22554,"title":{},"body":{"license.html":{}}}],["tap",{"_index":8163,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["target",{"_index":2702,"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/SchoolSpecificFileCopyServiceImpl.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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["target._id.tostring",{"_index":9579,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["target.constructor",{"_index":8319,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["target.entity",{"_index":2657,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{}}}],["target.entity.ts",{"_index":4873,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:21",{"_index":4877,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:32",{"_index":4876,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:35",{"_index":4875,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.id",{"_index":19512,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.name",{"_index":19513,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.service",{"_index":17730,"title":{},"body":{"injectables/RoomsService.html":{}}}],["target.service.ts",{"_index":4888,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:11",{"_index":4897,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:33",{"_index":4894,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:8",{"_index":4892,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.targetids",{"_index":15137,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.targetids.length",{"_index":15210,"title":{},"body":{"injectables/NewsUc.html":{}}}],["target.targetmodel",{"_index":15135,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.title",{"_index":4906,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target:in",{"_index":15136,"title":{},"body":{"classes/NewsScope.html":{}}}],["target_model_values",{"_index":15008,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["targetboard",{"_index":4974,"title":{},"body":{"injectables/ColumnService.html":{}}}],["targetcard",{"_index":4181,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{}}}],["targetcardid",{"_index":4167,"title":{},"body":{"injectables/CardUc.html":{}}}],["targetcolumn",{"_index":4108,"title":{},"body":{"injectables/CardService.html":{}}}],["targetelement",{"_index":7545,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetelement.addreferences(element.getreferences",{"_index":7546,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetexternalid",{"_index":18328,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["targetfolder",{"_index":11689,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["targetgroups",{"_index":12101,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["targetid",{"_index":7035,"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":9577,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["targetinfomapper",{"_index":15034,"title":{"classes/TargetInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/TargetInfoMapper.html":{}}}],["targetinfomapper.maptoresponse(news.target",{"_index":15036,"title":{},"body":{"classes/NewsMapper.html":{}}}],["targetinforesponse",{"_index":15005,"title":{"classes/TargetInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{}}}],["targetmodel",{"_index":6857,"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":{}}}],["targetmodels",{"_index":15169,"title":{},"body":{"injectables/NewsUc.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.courses",{"_index":22002,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.events",{"_index":22000,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.map(async",{"_index":15206,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targetmodelsmapping",{"_index":21998,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[entitydo.targetmodel",{"_index":22013,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[videoconferencescope",{"_index":22006,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetparent",{"_index":3410,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.addchild(child",{"_index":3423,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.haschild(child",{"_index":3417,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.removechild(child",{"_index":3418,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparentid",{"_index":17169,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetparentinfo",{"_index":10073,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["targetpath",{"_index":6266,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["targetpermissions",{"_index":9568,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["targetposition",{"_index":3411,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["targets",{"_index":9573,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{}}}],["targets.filter((target",{"_index":15209,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targets.map((target",{"_index":9578,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/NewsScope.html":{}}}],["targetschoolid",{"_index":4755,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetschoolnumber",{"_index":21331,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["targetsystem",{"_index":16483,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemid",{"_index":18325,"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":21439,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl.tostring",{"_index":21444,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["task",{"_index":2649,"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":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["task's",{"_index":23293,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["task.availabledate",{"_index":19722,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.course",{"_index":17677,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/SubmissionRepo.html":{}}}],["task.createdat",{"_index":19717,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.createstudentstatusforuser(this.user",{"_index":8125,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createstudentstatusforuser(user",{"_index":19981,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.createteacherstatusforuser(this.user",{"_index":8124,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createteacherstatusforuser(user",{"_index":19980,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.creator",{"_index":17672,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.description",{"_index":19620,"title":{},"body":{"injectables/TaskCopyService.html":{},"classes/TaskMapper.html":{}}}],["task.description.replace(regex",{"_index":19621,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["task.descriptioninputformat",{"_index":19720,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.duedate",{"_index":19724,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.entity",{"_index":2650,"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":{},"classes/UsersList.html":{}}}],["task.factory",{"_index":19032,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["task.finishforuser(user",{"_index":19985,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.getparentdata",{"_index":19711,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.id",{"_index":19714,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.isdraft",{"_index":11904,"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":11906,"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":11902,"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":17674,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson.course",{"_index":19169,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.lesson.coursegroup.course",{"_index":19170,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.module",{"_index":19538,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["task.name",{"_index":5093,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/TaskMapper.html":{}}}],["task.name}${task.description",{"_index":5094,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["task.response",{"_index":3447,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["task.response.ts",{"_index":3751,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:15",{"_index":3761,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:19",{"_index":3762,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:22",{"_index":3755,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:25",{"_index":3760,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:29",{"_index":3756,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:33",{"_index":3758,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:36",{"_index":3759,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:39",{"_index":3757,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:42",{"_index":3765,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:45",{"_index":3764,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:5",{"_index":3754,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.restoreforuser(user",{"_index":19986,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.rule",{"_index":19190,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["task.submissions.getitems",{"_index":19928,"title":{},"body":{"injectables/TaskService.html":{}}}],["task.unpublish",{"_index":19990,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.updatedat",{"_index":19718,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskapimodule",{"_index":18507,"title":{"modules/TaskApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskApiModule.html":{},"modules.html":{}}}],["taskboardelement",{"_index":2660,"title":{"entities/TaskBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/TaskBoardElement.html":{}}}],["taskcontroller",{"_index":19536,"title":{"controllers/TaskController.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{}}}],["taskcopy",{"_index":19604,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopy.name",{"_index":19625,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyapiparams",{"_index":6395,"title":{"classes/TaskCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{}}}],["taskcopyparams",{"_index":19599,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyparentparams",{"_index":6397,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcopyservice",{"_index":2971,"title":{"injectables/TaskCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["taskcopyuc",{"_index":19533,"title":{"injectables/TaskCopyUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcourse",{"_index":17623,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcourse.name",{"_index":17626,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcreateparams",{"_index":19673,"title":{"classes/TaskCreateParams.html":{}},"body":{"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["taskdesc",{"_index":19710,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.color",{"_index":19726,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.courseid",{"_index":19716,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.coursename",{"_index":19715,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonhidden",{"_index":19730,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonname",{"_index":19727,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskelement",{"_index":3068,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["taskelements",{"_index":3685,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["taskfactory",{"_index":19031,"title":{"classes/TaskFactory.html":{}},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["taskfactory.build",{"_index":19036,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["taskfactory.define(task",{"_index":19690,"title":{},"body":{"classes/TaskFactory.html":{}}}],["taskid",{"_index":19209,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUrlParams.html":{}}}],["taskidentifier",{"_index":5090,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskidentifier}/${taskidentifier}.html",{"_index":5092,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskids",{"_index":19156,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["tasklistresponse",{"_index":19569,"title":{"classes/TaskListResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["tasklistresponse(taskresponses",{"_index":19581,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmapper",{"_index":19566,"title":{"classes/TaskMapper.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskMapper.html":{}}}],["taskmapper.maptoresponse(task",{"_index":19580,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmodule",{"_index":13867,"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":12450,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskparentpermission",{"_index":17667,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["taskrepo",{"_index":1935,"title":{"injectables/TaskRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.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":19570,"title":{"classes/TaskResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["taskresponses",{"_index":19578,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskrule",{"_index":1897,"title":{"injectables/TaskRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{}}}],["tasks",{"_index":5055,"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":11901,"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":5060,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["tasks.map((task",{"_index":19979,"title":{},"body":{"injectables/TaskUC.html":{}}}],["taskscope",{"_index":19761,"title":{"classes/TaskScope.html":{}},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{}}}],["taskscope('$or",{"_index":19771,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["taskservice",{"_index":5003,"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":17602,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskstatus.mapper.ts",{"_index":3769,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatus.mapper.ts:5",{"_index":3772,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatusmapper",{"_index":19708,"title":{"classes/TaskStatusMapper.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["taskstatusmapper.maptoresponse(status",{"_index":19713,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskstatusresponse",{"_index":19694,"title":{"classes/TaskStatusResponse.html":{}},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{}}}],["taskstatusresponse(status",{"_index":19933,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["tasksubmitterids",{"_index":12515,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskswithstatus",{"_index":19575,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskswithstatus.map((task",{"_index":19579,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskuc",{"_index":19534,"title":{"injectables/TaskUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["taskupdateparams",{"_index":19704,"title":{"classes/TaskUpdateParams.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["taskurlparams",{"_index":19004,"title":{"classes/TaskUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"classes/TaskUrlParams.html":{}}}],["taskwithstatus",{"_index":17612,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/TaskMapper.html":{}}}],["taskwithstatusvo",{"_index":8091,"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":8121,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/TaskUC.html":{}}}],["taskwithstatusvos",{"_index":19978,"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":5085,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher.lastname",{"_index":5086,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher_student_visibility__is_configurable",{"_index":11578,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["teacheraccount",{"_index":869,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teacherentities",{"_index":9696,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherid",{"_index":12454,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["teacherid.tohexstring",{"_index":4375,"title":{},"body":{"classes/ClassMapper.html":{}}}],["teacherids",{"_index":4206,"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":{},"classes/UsersList.html":{}}}],["teacherpermissions",{"_index":21002,"title":{},"body":{"classes/UserFactory.html":{}}}],["teacherpseudonyms",{"_index":9706,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherpseudonyms.concat(substitutionteacherpseudonyms",{"_index":9712,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teachers",{"_index":4324,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/FeathersRosterService.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"interfaces/ICourseProperties.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["teachers.map((user",{"_index":11301,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["teacherswithid",{"_index":6727,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacherswithid(numberofteachers",{"_index":6733,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacheruser",{"_index":870,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teaching_assistant",{"_index":7110,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["teachingassistant",{"_index":7111,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["team",{"_index":4533,"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":{},"properties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["team.entity",{"_index":6848,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["team.id",{"_index":4568,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.name",{"_index":4570,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.teamusers",{"_index":15272,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.length",{"_index":15283,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.map(async",{"_index":20181,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["team.userids",{"_index":20131,"title":{},"body":{"injectables/TeamService.html":{}}}],["team.userids.filter((u",{"_index":20132,"title":{},"body":{"injectables/TeamService.html":{}}}],["teamadmin",{"_index":4673,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamdto",{"_index":4531,"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":6847,"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/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["teamentity.id",{"_index":20066,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.name",{"_index":20067,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.teamusers.map",{"_index":20062,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamfactory",{"_index":20042,"title":{"classes/TeamFactory.html":{}},"body":{"classes/TeamFactory.html":{}}}],["teamfactory.define(teamentity",{"_index":20054,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamid",{"_index":3889,"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":4637,"title":{"injectables/TeamMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/TeamMapper.html":{}}}],["teammemberids",{"_index":12302,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids",{"_index":12300,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids.map((id",{"_index":12303,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammembers",{"_index":12276,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{}}}],["teammemberswithid",{"_index":19024,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teammemberswithid(numberofteammembers",{"_index":19028,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teamname",{"_index":4569,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamnews",{"_index":6888,"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":6879,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnewscontroller",{"_index":15070,"title":{"controllers/TeamNewsController.html":{}},"body":{"modules/NewsModule.html":{},"controllers/TeamNewsController.html":{}}}],["teamowner",{"_index":4672,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teampermissions",{"_index":4667,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsbody",{"_index":4608,"title":{"classes/TeamPermissionsBody.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsdto",{"_index":4542,"title":{"classes/TeamPermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsmapper",{"_index":4638,"title":{"injectables/TeamPermissionsMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teamrole",{"_index":4605,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.roleid",{"_index":4705,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.teamid",{"_index":4704,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamroledto",{"_index":4606,"title":{"classes/TeamRoleDto.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamRoleDto.html":{}}}],["teamrolepermissionsdto",{"_index":4566,"title":{"classes/TeamRolePermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamrule",{"_index":1898,"title":{"injectables/TeamRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/TeamRule.html":{}}}],["teams",{"_index":11936,"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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["teams.foreach((team",{"_index":20130,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.length",{"_index":20135,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.map((team",{"_index":12648,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["teamsapimodule",{"_index":18508,"title":{"modules/TeamsApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TeamsApiModule.html":{},"modules.html":{}}}],["teamservice",{"_index":20120,"title":{"injectables/TeamService.html":{}},"body":{"injectables/TeamService.html":{},"modules/TeamsModule.html":{}}}],["teamsmapper",{"_index":4653,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["teamsmodule",{"_index":20166,"title":{"modules/TeamsModule.html":{}},"body":{"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules.html":{}}}],["teamsrepo",{"_index":1936,"title":{"injectables/TeamsRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.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":{}}}],["teamstorageuc",{"_index":4627,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["teamsubmissions",{"_index":12440,"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":20073,"title":{"classes/TeamUrlParams.html":{}},"body":{"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{}}}],["teamuser",{"_index":15248,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamsRepo.html":{}}}],["teamuser.role.id",{"_index":20064,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.school.id",{"_index":20065,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.user.id",{"_index":20063,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{}}}],["teamuserdto",{"_index":15252,"title":{"classes/TeamUserDto.html":{}},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamuserentity",{"_index":12553,"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":{}}}],["teamuserentity(teamuser",{"_index":12563,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamuserfactory",{"_index":20050,"title":{"classes/TeamUserFactory.html":{}},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["teamuserfactory.buildwithid",{"_index":20055,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamuserfactory.define(teamuserentity",{"_index":20161,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["teamuserfactory.withroleanduserid(role",{"_index":20052,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamusers",{"_index":12552,"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":12560,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers.map(async",{"_index":15290,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["teardown",{"_index":22893,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tech",{"_index":23039,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technical",{"_index":8303,"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":22446,"title":{},"body":{"license.html":{}}}],["tell",{"_index":23032,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tells",{"_index":5441,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"license.html":{}}}],["temp",{"_index":10294,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["temp/:file",{"_index":11387,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["tempflow.alias",{"_index":13394,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["template",{"_index":1268,"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":{}}}],["template')@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":20335,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["template.replace(/\\{id\\}/g",{"_index":8794,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["template.response",{"_index":5733,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}}}],["template.response.ts",{"_index":5734,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:10",{"_index":5745,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:13",{"_index":5742,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:16",{"_index":5741,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:19",{"_index":5744,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:22",{"_index":5739,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:7",{"_index":5740,"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":23713,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["term",{"_index":22419,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["terminal",{"_index":23519,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["terminate",{"_index":22643,"title":{},"body":{"license.html":{}}}],["terminated",{"_index":22661,"title":{},"body":{"license.html":{}}}],["terminates",{"_index":22651,"title":{},"body":{"license.html":{}}}],["termination",{"_index":22640,"title":{},"body":{"license.html":{}}}],["terms",{"_index":22223,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["test",{"_index":1125,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICleanOptions.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":{},"injectables/TaskCopyUC.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(this.content.url",{"_index":5658,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["test.createtestingmodule",{"_index":20223,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["test.module.ts",{"_index":10646,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:30",{"_index":10648,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["test.module.ts:31",{"_index":11402,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:37",{"_index":10762,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["test/test",{"_index":20212,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["testapiclient",{"_index":1637,"title":{"classes/TestApiClient.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testbootstrapconsole",{"_index":20210,"title":{"classes/TestBootstrapConsole.html":{}},"body":{"classes/TestBootstrapConsole.html":{}}}],["testcase",{"_index":23309,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testdata",{"_index":23329,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tested",{"_index":6935,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testhelper",{"_index":20232,"title":{"classes/TestHelper.html":{}},"body":{"classes/TestHelper.html":{}}}],["testing",{"_index":11372,"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":11362,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["testingmodule",{"_index":20219,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testkcconnection",{"_index":13248,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["testmodule",{"_index":23448,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.close",{"_index":23454,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(entitymanager",{"_index":23451,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(mikroorm",{"_index":23450,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(newsrepo",{"_index":23449,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testname",{"_index":20243,"title":{},"body":{"classes/TestHelper.html":{}}}],["testreqestconst",{"_index":1632,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.accesstoken",{"_index":1696,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.loginpath",{"_index":1672,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.prefix",{"_index":1655,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testrequestinstance",{"_index":1659,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["tests",{"_index":2469,"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":20242,"title":{},"body":{"classes/TestHelper.html":{}}}],["testtext",{"_index":20238,"title":{},"body":{"classes/TestHelper.html":{}}}],["testuser",{"_index":7013,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["text",{"_index":2848,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.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":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["text(value",{"_index":17471,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["text.length",{"_index":20241,"title":{},"body":{"classes/TestHelper.html":{}}}],["text.types.ts",{"_index":17450,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:14",{"_index":17452,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:20",{"_index":17453,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:5",{"_index":17451,"title":{},"body":{"classes/RichText.html":{}}}],["text.validator.ts",{"_index":23210,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["text1",{"_index":4818,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text2",{"_index":4838,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text3",{"_index":4854,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text4",{"_index":4867,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["textutils",{"_index":23196,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["textvalidator",{"_index":23211,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["tha",{"_index":3643,"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":23741,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["themselves",{"_index":23400,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["then((pseudonymdo",{"_index":15294,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["then((resp",{"_index":2308,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["there's",{"_index":19842,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["therefore",{"_index":6761,"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":22299,"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":19658,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["third",{"_index":22469,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["this(entityclass",{"_index":2507,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this._allowemptyquery",{"_index":18469,"title":{},"body":{"classes/Scope.html":{}}}],["this._collectdefaultmetrics",{"_index":16766,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._collectmetricsroutemetrics",{"_index":16767,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._columnboardid",{"_index":4880,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._columnboardid.tohexstring",{"_index":4884,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._contextid",{"_index":4779,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contextid.tohexstring",{"_index":4781,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._contextid?.tohexstring",{"_index":12258,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contexttype",{"_index":4777,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._creatorid",{"_index":9962,"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":9923,"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":10383,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.aggregate(lessonentity",{"_index":14229,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.aggregate(user",{"_index":21536,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.assign(fetchedentity",{"_index":2419,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.create(this.entityname",{"_index":2413,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.find(account",{"_index":924,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.find(coursegroup",{"_index":19167,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.find(fileentity",{"_index":10376,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.find(ltitool",{"_index":14702,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.find(role",{"_index":17562,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.find(storageproviderentity",{"_index":18948,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["this._em.find(systementity",{"_index":19442,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["this._em.find(teamentity",{"_index":20184,"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":20922,"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":6933,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findandcount(coursegroup",{"_index":6784,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.findandcount(filerecord",{"_index":10193,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findandcount(importuser",{"_index":12968,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findandcount(lessonentity",{"_index":14226,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.findandcount(news",{"_index":15102,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findandcount(schoolentity",{"_index":14028,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findandcount(task",{"_index":19846,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.findandcount(this.entityname",{"_index":19163,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.findandcount(user",{"_index":20913,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findone(account",{"_index":920,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findone(board",{"_index":3678,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findone(importuser",{"_index":12949,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findone(ltitool",{"_index":14705,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findone(schoolentity",{"_index":14026,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findone(this.entityname",{"_index":9013,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["this._em.findone(userloginmigrationentity",{"_index":21206,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.findoneorfail",{"_index":5884,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.findoneorfail(account",{"_index":925,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findoneorfail(board",{"_index":3682,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findoneorfail(course",{"_index":3680,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findoneorfail(federalstateentity",{"_index":9775,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["this._em.findoneorfail(filerecord",{"_index":10194,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findoneorfail(importuser",{"_index":12946,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findoneorfail(ltitool",{"_index":14704,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findoneorfail(news",{"_index":15098,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findoneorfail(role",{"_index":17560,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.findoneorfail(schoolyearentity",{"_index":18447,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["this._em.findoneorfail(sharetoken",{"_index":18734,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["this._em.findoneorfail(teamentity",{"_index":20180,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.findoneorfail(this.entityname",{"_index":2418,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/UserDORepo.html":{}}}],["this._em.findoneorfail(videoconference",{"_index":22005,"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":18144,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.getreference(role",{"_index":20944,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.getreference(schoolentity",{"_index":18142,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(schoolexternaltoolentity",{"_index":5900,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.getreference(systementity",{"_index":14052,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(userloginmigrationentity",{"_index":14054,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.map(fileentity",{"_index":10385,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.map(lessonentity",{"_index":14231,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.map(user",{"_index":21549,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.nativedelete(importuser",{"_index":12973,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.nativedelete(this.entityname",{"_index":2444,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.nativedelete(user",{"_index":21554,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.persist(account",{"_index":928,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.persistandflush(board",{"_index":3681,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.persistandflush(entities",{"_index":2407,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.populate(columnboardelements",{"_index":3692,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(course",{"_index":6925,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.populate(coursegroup",{"_index":6783,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.populate(coursenews",{"_index":15108,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(importuser.user",{"_index":12947,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(lesson",{"_index":14221,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(lessonelements",{"_index":3690,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(lessons",{"_index":14227,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(newsentities",{"_index":15103,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(newsentity",{"_index":15099,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(role",{"_index":20187,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(schoolnews",{"_index":15106,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(submissions",{"_index":19168,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.populate(taskelements",{"_index":3688,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(tasks",{"_index":19762,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.populate(teamnews",{"_index":15107,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(teamuser",{"_index":20182,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(user",{"_index":21515,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.populate(userentity",{"_index":20915,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.populate(usermatches",{"_index":12972,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(users",{"_index":21551,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.remove(entities",{"_index":2435,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.removeandflush(account",{"_index":934,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.removeandflush(entities",{"_index":2546,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["this._id",{"_index":7562,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this._instance",{"_index":16773,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._iscopyfrom",{"_index":10063,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._iscopyfrom?.tohexstring",{"_index":10058,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._isenabled",{"_index":16763,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._lockid",{"_index":9966,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._lockid?.tohexstring",{"_index":9924,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._oauthconfigcache",{"_index":13525,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this._operator",{"_index":18468,"title":{},"body":{"classes/Scope.html":{}}}],["this._origintoolid",{"_index":7160,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._origintoolid?.tohexstring",{"_index":7130,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._ownerid",{"_index":9958,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._ownerid.tohexstring",{"_index":9922,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._parentid",{"_index":9956,"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":10056,"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":9921,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._port",{"_index":16765,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._queries",{"_index":18471,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.length",{"_index":18470,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.push(query",{"_index":18473,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries[0",{"_index":18472,"title":{},"body":{"classes/Scope.html":{}}}],["this._route",{"_index":16764,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._schoolid",{"_index":10060,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._schoolid.tohexstring",{"_index":10057,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.abbreviation",{"_index":6465,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.acceptconsentrequest",{"_index":15833,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.acceptloginrequest(currentuserid",{"_index":15985,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.accesskeyid",{"_index":12267,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.accesstoken",{"_index":14505,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.accountlookupservice.getinternalid(id",{"_index":1105,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyid(internalid",{"_index":1098,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyuserid(userid",{"_index":1099,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyid(accountid",{"_index":1150,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyid(internalid",{"_index":1074,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyuserid(userid",{"_index":1077,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyusernameandsystemid(username",{"_index":1079,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmany(offset",{"_index":1110,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmultiplebyuserid(userids",{"_index":1075,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.save(account",{"_index":1094,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(email",{"_index":1133,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(username",{"_index":1102,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernamepartialmatch(username",{"_index":1100,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountservice.findbyuserid(user.id",{"_index":15514,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["this.accountservice.findbyuseridorfail(currentuserid",{"_index":21455,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.findbyuseridorfail(userid",{"_index":21610,"title":{},"body":{"injectables/UserService.html":{}}}],["this.accountservice.findbyusernameandsystemid(username",{"_index":1745,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.findmany(skip",{"_index":13661,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.accountservice.save(account",{"_index":21466,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.save(accountcopy",{"_index":21461,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.savewithvalidation",{"_index":16356,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.accountservice.searchbyusernameexactmatch(username",{"_index":1746,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.updatelasttriedfailedlogin(id",{"_index":1773,"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.activated",{"_index":423,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{}}}],["this.active",{"_index":12361,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.adapter.createteam(team",{"_index":4687,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.deleteteam(teamid",{"_index":4686,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteam(team",{"_index":4688,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteampermissionsforrole",{"_index":4683,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.addclientprotocolmappers(defaultclientinternalid",{"_index":13425,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.addexternaloauth2datatoconfig(tool.config",{"_index":9330,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.addlessons(builder",{"_index":5040,"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":6018,"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/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["this.addquery(emptyresultquery",{"_index":15140,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(queries[0",{"_index":15141,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(query",{"_index":10227,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["this.addroom(room",{"_index":7515,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.addtasks(builder",{"_index":5041,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addteacherroleifadmin(externaluser",{"_index":17991,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.adminidandtoken",{"_index":1281,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.alias",{"_index":12421,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.allowmodstounmuteusers",{"_index":2107,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.allrooms",{"_index":7525,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.alternativetext",{"_index":9852,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.amqpconnection.publish",{"_index":1378,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.amqpconnection.publish(this.options.exchange",{"_index":14757,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.amqpconnection.request>(this.createrequest(event",{"_index":17776,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.amqpconnectionmanager.getconnections().map((connection",{"_index":17097,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["this.ancestorids.length",{"_index":3618,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.ancestorids[this.ancestorids.length",{"_index":3612,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.antareskey",{"_index":6461,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.app",{"_index":1651,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.appendnotcontainedboardelements(boardelementtargets",{"_index":2691,"title":{},"body":{"entities/Board.html":{}}}],["this.applypagination(combinedclassinfo",{"_index":11233,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.applypropertiestopathparams(url",{"_index":248,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.attendeepw",{"_index":2105,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.aud",{"_index":13146,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["this.authendpoint",{"_index":12349,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.authenticationservice.checkbrutforce(account",{"_index":13820,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.generatejwt(oauthcurrentuser",{"_index":16235,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.authenticationservice.loadaccount",{"_index":13842,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(`${externalschoolid}/${username}`.tolowercase",{"_index":13839,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(username",{"_index":14391,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizepassword(password",{"_index":13826,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizeusername(username",{"_index":13825,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.removejwtfromwhitelist(userjwt",{"_index":16233,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.authenticationservice.updatelasttriedfailedlogin(account.id",{"_index":13828,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authorisation.checkpermission(authorizableuser",{"_index":19665,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.checkpermission(user",{"_index":14185,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisation.getuserwithpermissions(userid",{"_index":14164,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(authorizableuser",{"_index":19663,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(user",{"_index":14179,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisationservice",{"_index":8099,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorisationservice.hascoursewritepermission(user",{"_index":17762,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.authorisationservice.haspermission(this.user",{"_index":8109,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorization.checkpermissionbyreferences(userid",{"_index":6706,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.authorizationhelper.hasaccesstoentity",{"_index":6943,"title":{},"body":{"injectables/CourseRule.html":{}}}],["this.authorizationhelper.hasaccesstoentity(user",{"_index":6791,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissions(user",{"_index":2013,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":20119,"title":{},"body":{"injectables/TeamRule.html":{}}}],["this.authorizationhelper.hasoneofpermissions(user",{"_index":2014,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.authorizationreferenceservice.checkpermissionbyreferences",{"_index":18843,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkallpermissions(user",{"_index":9419,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkentitypermissions",{"_index":15195,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkentitypermissions(userid",{"_index":15179,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkoneofpermissions(user",{"_index":19966,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.checkpermission",{"_index":11225,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/SubmissionUc.html":{}}}],["this.authorizationservice.checkpermission(authorizableuser",{"_index":20626,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.authorizationservice.checkpermission(user",{"_index":4184,"title":{},"body":{"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.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":6721,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.authorizationservice.checkpermissions(user",{"_index":23683,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.getentitypermissions(userid",{"_index":15211,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getpermittedentities(userid",{"_index":15207,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuser.userid",{"_index":15797,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuserid",{"_index":15992,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(pseudonymuserid",{"_index":17040,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(userid",{"_index":1982,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/GroupUc.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.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":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasallpermissions(user",{"_index":19982,"title":{},"body":{"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasoneofpermissions(user",{"_index":19989,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.haspermission(user",{"_index":1984,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/CardUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermission(userid",{"_index":23662,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationurl",{"_index":12408,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.authorizeaccess",{"_index":13268,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.authservice.checkpermission",{"_index":4680,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.checkpermission(authorizableuser",{"_index":14125,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.authservice.generatejwt(createjwtpayload",{"_index":14549,"title":{},"body":{"injectables/LoginUc.html":{}}}],["this.authservice.getuserwithpermissions(currentuserid",{"_index":4681,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.getuserwithpermissions(userid",{"_index":14108,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.availabledate",{"_index":12460,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.axiosconfig",{"_index":11481,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.basepath",{"_index":11684,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.baseroute",{"_index":1652,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.baseurl",{"_index":2579,"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":21681,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["this.bbbservice.create(configbuilder.build",{"_index":21813,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.end(config",{"_index":21880,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.bbbservice.getmeetinginfo(config",{"_index":21900,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.bbbservice.getmeetinginfo(new",{"_index":21799,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.join(joinbuilder.build",{"_index":21932,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.bbbsettings.host",{"_index":2296,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.presentationurl",{"_index":2298,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.salt",{"_index":2297,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.board",{"_index":8098,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.board.getelements",{"_index":8101,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.boardcopyservice.copyboard",{"_index":6672,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo",{"_index":4183,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo).then((boarddoauthorizable",{"_index":4186,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(submissioncontainerelement",{"_index":19126,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.boarddocopyservice.copy",{"_index":4757,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.delete(domainobject",{"_index":3416,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findbyclassandid(card",{"_index":4116,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findbyclassandid(column",{"_index":4978,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findbyclassandid(columnboard",{"_index":4743,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyid(elementid",{"_index":5612,"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":4117,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findidsbyexternalreference(reference",{"_index":4805,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findparentofid(card.id",{"_index":4127,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findparentofid(child.id",{"_index":3420,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(column.id",{"_index":4982,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findparentofid(domainobject.id",{"_index":3413,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(element.id",{"_index":5622,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(submissionitem.id",{"_index":19105,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.getancestorids(boarddo",{"_index":3133,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.boarddorepo.gettitlesbyids(boardids",{"_index":4807,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(board",{"_index":4810,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(card",{"_index":4128,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.save(column",{"_index":4983,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.save(columnboard",{"_index":4808,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(copystatus.copyentity",{"_index":4762,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.save(element",{"_index":5623,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(parent.children",{"_index":3415,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(sourceparent.children",{"_index":3422,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.save(submissioncontainer.children",{"_index":19103,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.save(targetparent.children",{"_index":3424,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorule",{"_index":17809,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.boarddoservice.deletewithdescendants(board",{"_index":4809,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddoservice.deletewithdescendants(card",{"_index":4125,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.deletewithdescendants(column",{"_index":4980,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.deletewithdescendants(element",{"_index":5616,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddoservice.move(card",{"_index":4126,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.move(column",{"_index":4981,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.move(element",{"_index":5617,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boardelementservice.findbyid(contextexternaltool.contextref.id",{"_index":20629,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boardelementtype",{"_index":4990,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["this.boardmanagementuc.createboard(courseid",{"_index":3500,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.boardnodeauthorizableservice",{"_index":12146,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.boardnoderepo",{"_index":3379,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(boarddo.id",{"_index":3375,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(childid",{"_index":3372,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(id",{"_index":3347,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(parent.id",{"_index":17266,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.boardnoderepo.finddescendants(boardnode",{"_index":3348,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.finddescendantsofmany(boardnodes",{"_index":3355,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardrepo.findbycourseid(course.id",{"_index":17764,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.findbycourseid(courseid",{"_index":6662,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boardrepo.findbycourseid(roomid",{"_index":17759,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(board",{"_index":17738,"title":{},"body":{"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(boardcopy",{"_index":3028,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.boardservice.getboardauthorizable(boardelement",{"_index":20630,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boarduc.createcard(currentuser.userid",{"_index":4946,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.createcolumn(currentuser.userid",{"_index":2956,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deleteboard(currentuser.userid",{"_index":2954,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deletecard(currentuser.userid",{"_index":4036,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.deletecolumn(currentuser.userid",{"_index":4944,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.findboard(currentuser.userid",{"_index":2940,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboardcontext(currentuser.userid",{"_index":2945,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.movecard(currentuser.userid",{"_index":4025,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.movecolumn(currentuser.userid",{"_index":4937,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.updateboardtitle(currentuser.userid",{"_index":2950,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.updatecardheight(currentuser.userid",{"_index":4030,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecardtitle(currentuser.userid",{"_index":4033,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecolumntitle(currentuser.userid",{"_index":4941,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.bsonconverter.deserialize(bsondocuments",{"_index":11755,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bsonconverter.serialize(jsondocuments",{"_index":11773,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bucket",{"_index":9946,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.build",{"_index":7301,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["this.build(params",{"_index":2510,"title":{},"body":{"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{}}}],["this.build(requiredpermissions",{"_index":1812,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["this.buildchildren(boardnode",{"_index":3235,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.buildcopyentitydict(elementstatus).foreach((el",{"_index":6382,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.builddtowithelements(mappedelements",{"_index":8104,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.buildexternaltool",{"_index":5571,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildfile",{"_index":5563,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildgroupsclaim(teams",{"_index":12644,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.buildlink",{"_index":5565,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildrichtext",{"_index":5567,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildscope(query",{"_index":5881,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this.buildsubmissioncontainer",{"_index":5569,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildtokenrequestpayload(code",{"_index":15449,"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.buildurl(toollaunchdata",{"_index":230,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.byuseridquery(userid",{"_index":19165,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.cacheexpiration",{"_index":17561,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["this.cachemanager.del(redisidentifier",{"_index":13213,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.cacheservice.getstoretype",{"_index":13212,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.calculatenumberofsubmitters(gradedsubmissions",{"_index":12530,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calculatenumberofsubmitters(submittedsubmissions",{"_index":12528,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calendarmapper.maptodto(resp.data",{"_index":3938,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.callkcadminclient",{"_index":13276,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.cancelbuttonurl",{"_index":16467,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.caption",{"_index":9851,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.cardid",{"_index":4145,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["this.cards",{"_index":4955,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["this.cardservice.findbyid(cardid",{"_index":4175,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyid(targetcardid",{"_index":4182,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyids(cardids",{"_index":4172,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.carduc.createelement(currentuser.userid",{"_index":4046,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.deleteelement(currentuser.userid",{"_index":8223,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.carduc.findcards(currentuser.userid",{"_index":4021,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.moveelement",{"_index":8215,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.cause",{"_index":3851,"title":{},"body":{"classes/BusinessError.html":{}}}],["this.challenge",{"_index":5536,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.checkandaddprefix(baseroute",{"_index":1653,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkandaddprefix(routenameinput",{"_index":1691,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkavaiblelanguages(params.language",{"_index":21639,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.checkavailablelanguages(newlanguage",{"_index":21625,"title":{},"body":{"injectables/UserService.html":{}}}],["this.checkcontextreadpermission(userid",{"_index":18821,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcreatepermission(userid",{"_index":18828,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcredentials(account",{"_index":13822,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkcredentials(password",{"_index":14397,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.checkdestinationcourseauthorisation(authorizableuser",{"_index":19657,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkdestinationcourseauthorization(user",{"_index":14171,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkdestinationlessonauthorization(authorizableuser",{"_index":19662,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkduplicateincontext(contextexternaltool",{"_index":6107,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.checkerror(response",{"_index":17777,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.checkexpired(sharetoken",{"_index":18778,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.checkfeatureenabled",{"_index":6704,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.checkfeatureenabled(payload.parenttype",{"_index":18815,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkfeatureenabled(sharetoken.payload.parenttype",{"_index":18827,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkifpreviewpossible(filerecord",{"_index":16715,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.checklistscontainingequalentities(reorderedids",{"_index":2679,"title":{},"body":{"entities/Board.html":{}}}],["this.checkofficialschoolnumbersmatch(schooldo",{"_index":18359,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.checkoptionalparameter(param",{"_index":5413,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkoriginallessonauthorization(user",{"_index":14166,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkoriginaltaskauthorization(authorizableuser",{"_index":19656,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkparameterregex(foundentry",{"_index":5415,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparametertype(foundentry",{"_index":5414,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparentwritepermission(userid",{"_index":18816,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkpermission(userid",{"_index":4176,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/GroupUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.checkpreconditions(userid",{"_index":18909,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.checkschoolauthorization(authorizableuser",{"_index":14109,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.checkscopeandvalidateparameter(validatabletool",{"_index":5408,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkstreamresponsive(stream",{"_index":17867,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.checkvalue(account.userid",{"_index":13819,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(school.externalid",{"_index":13830,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(user.ldapdn",{"_index":13821,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkversionmatch(schoolexternaltool.toolversion",{"_index":18254,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.children.filter((ch",{"_index":2797,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.length",{"_index":2790,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.some((obj",{"_index":2802,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.splice(position",{"_index":2796,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.childrenmap[boardnode.path",{"_index":3229,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.path].push(boardnode",{"_index":3230,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.pathofchildren",{"_index":3271,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.clamconnection.scanstream(stream",{"_index":1364,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.classes.set(props.classes",{"_index":6558,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.classesrepo.findallbyschoolid(schoolid",{"_index":4418,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.findallbyuserid(userid",{"_index":4420,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.updatemany(updatedclasses",{"_index":4424,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classnames",{"_index":12843,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.classnames.push(...props.classnames",{"_index":12025,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.classservice.findclassesforschool(schoolid",{"_index":11240,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.classvalidatormetadatastorage.gettargetvalidationmetadatas",{"_index":8318,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.cleanupinput(username",{"_index":14390,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.cleanuppath(this.baseroute",{"_index":1692,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.client",{"_index":12108,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/S3ClientAdapter.html":{}}}],["this.client.addaccesstogroupfolder(folderid",{"_index":15281,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.addusertogroup(nextclouduserid",{"_index":15310,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.changegroupfoldername(folderid",{"_index":15279,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroup(groupid",{"_index":15270,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroupfolder(foldername",{"_index":15280,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroup(groupid",{"_index":15267,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroupfolder(folderid",{"_index":15268,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupfolderidforgroupid(groupid",{"_index":15263,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupid(nextcloudstrategy.generategroupid(dto",{"_index":15261,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getgroupusers(groupid",{"_index":15286,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(pseudonymdo.pseudonym",{"_index":15295,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(team.id",{"_index":15269,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(teamid",{"_index":15266,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.oidcinternalname",{"_index":15312,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.removeuserfromgroup(nextclouduserid",{"_index":15308,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.renamegroup(groupid",{"_index":15284,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.send(req",{"_index":17863,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.client.setgrouppermissions(groupid",{"_index":15264,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client_id",{"_index":1531,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{}}}],["this.client_name",{"_index":5535,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.client_secret",{"_index":1533,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.clientid",{"_index":12338,"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/SystemEntity.html":{}}}],["this.clientsecret",{"_index":12339,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.clienturl",{"_index":16132,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.clone(newpropsfactory",{"_index":2518,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.closedat",{"_index":21138,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.closedat.toisostring",{"_index":21020,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["this.closeuserloginmigrationuc.closemigration",{"_index":21113,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.code",{"_index":1539,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.color",{"_index":6549,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.columnboardcopyservice.copycolumnboard",{"_index":3061,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.columnboardid",{"_index":2746,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["this.columnboardservice.createwelcomecolumnboard(coursereference",{"_index":17741,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.findidsbyexternalreference(coursereference",{"_index":17739,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.getboardobjecttitlesbyid(columnboardids",{"_index":4900,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.columnboardtargetservice.findorcreatetargets(columnboardids",{"_index":17743,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columns",{"_index":3703,"title":{},"body":{"classes/BoardResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.comment",{"_index":12282,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.commontoolservice.determinetoolconfigurationstatus",{"_index":20599,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{}}}],["this.commontoolvalidationservice.checkcustomparameterentries(loadedexternaltool",{"_index":6110,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.checkforduplicateparameters(schoolexternaltool",{"_index":18253,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.isvaluevalidfortype(param.type",{"_index":8912,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.compareparameters(oldtool.parameters",{"_index":9498,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.completed",{"_index":19065,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.config",{"_index":2043,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{}}}],["this.config.bucket",{"_index":17862,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.config.bucket}/${path.sourcepath",{"_index":17900,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.configservice.get('available_languages').includes(language",{"_index":21627,"title":{},"body":{"injectables/UserService.html":{}}}],["this.configservice.get('available_languages').includes(settedlanguage",{"_index":21638,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.configservice.get('feature_identity_management_login_enabled",{"_index":14392,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.configservice.get('feature_identity_management_store_enabled",{"_index":809,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.configservice.get('feature_imscc_course_export_enabled",{"_index":6633,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.configservice.get('login_block_time",{"_index":1766,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.configservice.get('sc_domain",{"_index":13415,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.configservice.get(placeholder",{"_index":11822,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.connect(system",{"_index":13773,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.consentflowuc.getconsentrequest(params.challenge",{"_index":15932,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.consentflowuc.patchconsentrequest",{"_index":15935,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.console.info('connected",{"_index":11619,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`cleaned",{"_index":11628,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`configured",{"_index":11640,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`migrated",{"_index":11652,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`seeded",{"_index":11634,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.consolewriter.info('error",{"_index":3497,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info('schulcloud",{"_index":18486,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`error",{"_index":3561,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.consolewriter.info(`input",{"_index":18487,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`success",{"_index":3501,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info(report",{"_index":7820,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.constructor",{"_index":1678,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BaseFactory.html":{},"classes/TestApiClient.html":{}}}],["this.content",{"_index":3448,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"interfaces/INewsProperties.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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.contextexternaltoolid",{"_index":5682,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.duedate",{"_index":5678,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.inputformat",{"_index":5675,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.url",{"_index":5659,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.contentelementfactory.build(contentelementtype.rich_text",{"_index":4870,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.contentelementfactory.build(type",{"_index":5614,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.contentelementservice.create(card",{"_index":4130,"title":{},"body":{"injectables/CardService.html":{}}}],["this.contents",{"_index":11890,"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":8734,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["this.context",{"_index":13905,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/ShareTokenDO.html":{}}}],["this.context.action",{"_index":10702,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.context.requiredpermissions.join",{"_index":10703,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.contextexternaltool",{"_index":8663,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["this.contextexternaltool.id",{"_index":14882,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.contextexternaltoolauthorizableservice",{"_index":12148,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.contextexternaltoolid",{"_index":8652,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltool",{"_index":6046,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltools",{"_index":6045,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":9343,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find",{"_index":6044,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find(query",{"_index":6040,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(contextexternaltoolid",{"_index":6041,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(id",{"_index":5728,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["this.contextexternaltoolrepo.save(contextexternaltool",{"_index":6043,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrule",{"_index":17810,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.contextexternaltoolservice.deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":18242,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(tool",{"_index":6090,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findallbycontext",{"_index":6091,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.contextexternaltoolservice.findbyid",{"_index":6086,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contextexternaltoolid",{"_index":6089,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contexttoolid",{"_index":6094,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findcontextexternaltools",{"_index":6112,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool",{"_index":6085,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltooluc.createcontextexternaltool",{"_index":20412,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.deletecontextexternaltool(currentuser.userid",{"_index":20417,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltool",{"_index":20424,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltoolsforcontext",{"_index":20419,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.updatecontextexternaltool",{"_index":20427,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltoolvalidationservice.validate(contextexternaltool",{"_index":6083,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextid",{"_index":5787,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.contextref",{"_index":5715,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.contexttoolid",{"_index":20638,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.contexttype",{"_index":5789,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this.converterutil.xml2object",{"_index":2310,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.converterutil.xml2object>(resp.data",{"_index":2323,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.cookies",{"_index":11478,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.copy(copypaths",{"_index":17885,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.copyboardelements(boardelements",{"_index":3018,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycolumnboard(element.target",{"_index":3046,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycourse(userid",{"_index":18831,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copycourseentity",{"_index":6671,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyfilesservice.copyfilesofentity",{"_index":19610,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(boardstatus",{"_index":3077,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(newname",{"_index":6669,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(originallesson.name",{"_index":14176,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.copyhelperservice.derivecopyname(originaltaskname",{"_index":19671,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elements",{"_index":3022,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(filestatuses",{"_index":6337,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.copyingsince",{"_index":6555,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.copylesson(element.target",{"_index":3043,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copylesson(userid",{"_index":18834,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copymap.get(child.id",{"_index":17196,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copymap.set(original.id",{"_index":17159,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copytask(element.target",{"_index":3039,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copytask(userid",{"_index":18835,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copytaskentity(params",{"_index":19609,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.countyid",{"_index":6459,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.course",{"_index":2663,"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":12544,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.id",{"_index":12541,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isfinished",{"_index":12498,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isusersubstitutionteacher(user",{"_index":12524,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.name",{"_index":12540,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.school.id",{"_index":11912,"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":6708,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.coursecopyuc.copycourse(currentuser.userid",{"_index":17716,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.courseexportservice.exportcourse(courseid",{"_index":6722,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.courseexportuc.exportcourse(urlparams.courseid",{"_index":6634,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.coursegroup",{"_index":11888,"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":12296,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.coursegroup.school.id",{"_index":11913,"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":14264,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegrouprepo",{"_index":12132,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.coursegrouprule",{"_index":17801,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.coursegrouprule.haspermission(user",{"_index":14267,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegroups.getitems",{"_index":6587,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.coursegroups.isinitialized(true",{"_index":6584,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.courseid",{"_index":19696,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursename",{"_index":19695,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursepermission(user",{"_index":14265,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.courserepo",{"_index":12130,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.courserepo.createcourse(coursecopy",{"_index":6681,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserepo.findallbyuserid",{"_index":7776,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.courserepo.findallbyuserid(user.id",{"_index":20004,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findallbyuserid(userid",{"_index":6667,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{}}}],["this.courserepo.findallforteacherorsubstituteteacher(user.id",{"_index":20003,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findbyid(courseid",{"_index":6661,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.courserepo.findbyid(originalboard.context.id",{"_index":4750,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.courserepo.findbyid(parentparams.courseid",{"_index":14169,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.courserepo.findbyid(rootboarddo.context.id",{"_index":3140,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.courserepo.findone(roomid",{"_index":17758,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.courserepo.save(coursecopy",{"_index":6683,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserule",{"_index":17800,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.courserule.haspermission(user",{"_index":6792,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.findallbyuserid(pseudonym.userid",{"_index":9722,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.courseservice.findbyid(contextexternaltool.contextref.id",{"_index":317,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.courseservice.findbyid(courseid",{"_index":5034,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/FeathersRosterService.html":{},"injectables/ShareTokenUC.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.courseservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18781,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.courseservice.getcourse(params.courseid",{"_index":23681,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.save(course",{"_index":23685,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.savecourse(course",{"_index":23689,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseuc.findallbyuser(currentuser.userid",{"_index":6627,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.create",{"_index":10000,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.create(currentuserid",{"_index":21801,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.create(path",{"_index":17881,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createboardelementfor(target",{"_index":2703,"title":{},"body":{"entities/Board.html":{}}}],["this.createboardforcourse(courseid",{"_index":3679,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.createbucket",{"_index":17880,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createcards(this.random(1",{"_index":3540,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createclient(provider",{"_index":7987,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.createcolumns(3",{"_index":3536,"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/FederalStateEntity.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":3546,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createemptyelements(card",{"_index":4124,"title":{},"body":{"injectables/CardService.html":{}}}],["this.createentity(domainobject",{"_index":2404,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createerrorloggable(error",{"_index":10822,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponse(error",{"_index":10832,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforbusinesserror(error",{"_index":10840,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforfeatherserror(error",{"_index":10838,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponsefornesthttpexception(error",{"_index":10842,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforunknownerror",{"_index":10843,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createfile(contentrange",{"_index":20244,"title":{},"body":{"classes/TestHelper.html":{}}}],["this.createfileurlreplacements(filedtos",{"_index":6320,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.creategridelement(elementwithposition",{"_index":7698,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.createidentityprovider(configureaction.config",{"_index":13432,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(idpalias",{"_index":13468,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(oidcconfig.idphint",{"_index":13460,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createiframesubject(user",{"_index":12643,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.createlogmessageforvalidationerrors(this.error",{"_index":8298,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.createnewentityfromdo(domainobj",{"_index":2434,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewentityfromdo(domainobject",{"_index":2411,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewmigration(schooldo",{"_index":21271,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.createorupdateboardnode(boardnode",{"_index":17276,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.createorupdateidmaccount(account",{"_index":13664,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.createqueryordermap(options?.order",{"_index":20905,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.createrichtextelement",{"_index":4819,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.createstatus",{"_index":19988,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.createtaskstatus(task",{"_index":8120,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.createusermigrationdto",{"_index":21462,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.createusersearchindex",{"_index":11785,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.creator",{"_index":12466,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.creatorid",{"_index":6204,"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":15912,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.deleteoauth2client(currentuser",{"_index":15917,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.getoauth2client(currentuser",{"_index":15902,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.listoauth2clients",{"_index":15905,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.updateoauth2client(currentuser",{"_index":15914,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.currentredirect",{"_index":11474,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.customs",{"_index":7153,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.dashboard",{"_index":7567,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.dashboardrepo.getdashboardbyid(dashboardid",{"_index":7779,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.getusersdashboard(userid",{"_index":7775,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.persistandflush(dashboard",{"_index":7778,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboarduc.getusersdashboard(currentuser.userid",{"_index":7384,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.moveelementondashboard",{"_index":7387,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.renamegroupondashboard",{"_index":7392,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboardurl",{"_index":21448,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.data",{"_index":1026,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AxiosResponseImp.html":{},"classes/CardListResponse.html":{},"classes/ClassInfoSearchListResponse.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":11727,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.collectionexists(collectionname",{"_index":11725,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.createcollection(collectionname",{"_index":11728,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.finddocumentsofcollection(collectionname",{"_index":11771,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getcollectionnames",{"_index":11697,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getdatabasecollection('users",{"_index":11789,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.importcollection",{"_index":11761,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.syncindexes",{"_index":11786,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem",{"_index":7853,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem([collectionname",{"_index":7855,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem(filter",{"_index":7824,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfactories(filter",{"_index":7816,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem",{"_index":7850,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem([collectionname",{"_index":7852,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem(filter",{"_index":7817,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.syncindexes",{"_index":7825,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/Options.html":{}}}],["this.db.collection(collectionname",{"_index":7891,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.createcollection(collectionname",{"_index":7908,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.dropcollection(collectionname",{"_index":7909,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.listcollections(undefined",{"_index":7901,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.default",{"_index":7218,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["this.default_errorcode",{"_index":15356,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.default_message",{"_index":15354,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.defaultencryptionservice.decrypt(oidcconfig.clientsecret",{"_index":16284,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["this.defaultencryptionservice.encrypt(system.oauthconfig.clientsecret",{"_index":11830,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultencryptionservice.encrypt(system.oidcconfig.clientsecret",{"_index":11833,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultoauthclientbody",{"_index":15803,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.defaultscopes",{"_index":12415,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.defaultvalue",{"_index":7359,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["this.delete",{"_index":10002,"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":17895,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(filteredpathobjects",{"_index":17911,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(paths",{"_index":17888,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deleted",{"_index":9939,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.deletedat",{"_index":9938,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{}}}],["this.deletedfoldername}/${path",{"_index":17884,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deletedsince",{"_index":6210,"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":2443,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.deleteexternaltoolpseudonymsbyuserid(userid",{"_index":17021,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletefile(file",{"_index":7974,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefileinstorage(file",{"_index":7999,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefilesuc.deletemarkedfiles(thresholddate",{"_index":7932,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.deleteidentityprovider(configureaction.alias",{"_index":13436,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.deletenode(card",{"_index":17220,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(column",{"_index":17218,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(columnboard",{"_index":17216,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(externaltoolelement",{"_index":17235,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(fileelement",{"_index":17223,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(linkelement",{"_index":17225,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(richtextelement",{"_index":17227,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submission",{"_index":17231,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submissioncontainerelement",{"_index":17229,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletepseudonymsbyuserid(userid",{"_index":17020,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletesubmissions(task",{"_index":19926,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.derivecopyname(composedname",{"_index":6380,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.derivecopystatus(filecopystatus",{"_index":19612,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.derivecopystatus(filedtos",{"_index":6322,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.derivecoursestatus(originalcourse",{"_index":6676,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.description",{"_index":6542,"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":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"entities/Material.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.html":{}}}],["this.descriptioninputformat",{"_index":12457,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.details",{"_index":3850,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.detectcontenttypeorthrow(buffer",{"_index":8810,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.detectcontenttypeorthrow(logobinarydata",{"_index":8819,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.determineinput(systemid",{"_index":16876,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.determinelaunchrequestmethod(toollaunchdata.properties",{"_index":229,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.determinenewroomsin(rooms",{"_index":7513,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.determinestatus(tool",{"_index":18215,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.displayat",{"_index":6867,"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":6827,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.displayname",{"_index":5717,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.doescourseexist(courseid",{"_index":3533,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.domigration(externalid",{"_index":18355,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.domigration(userdo",{"_index":21456,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.downloadoriginfile(originfilepath",{"_index":16670,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.dropcollectionifexists(collectionname",{"_index":11737,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.duedate",{"_index":12462,"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":4078,"title":{},"body":{"classes/CardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.elementservice.create(card",{"_index":4177,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.delete(element",{"_index":4180,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.findbyid(contentelementid",{"_index":8242,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(elementid",{"_index":4179,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(submissioncontainerid",{"_index":19122,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.move(element",{"_index":4178,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.update(element",{"_index":8241,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementuc.createsubmissionitem",{"_index":8226,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.updateelementcontent",{"_index":8220,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.em",{"_index":8969,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.assign(existing",{"_index":8974,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.assign(existingentity",{"_index":11085,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(boardnode",{"_index":3354,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["this.em.find(classentity",{"_index":4464,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.find(columnboardnode",{"_index":3365,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.em.find(columnboardtarget",{"_index":4908,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.find(externaltoolpseudonymentity",{"_index":8968,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.find(groupentity",{"_index":11079,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(pseudonymentity",{"_index":17055,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findandcount(externaltoolpseudonymentity",{"_index":8990,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(dashboardgridelementmodel",{"_index":7700,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.findone(dashboardmodelentity",{"_index":7721,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findone(externaltoolpseudonymentity",{"_index":8967,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(groupentity",{"_index":11076,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.findone(pseudonymentity",{"_index":17054,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(boardnode",{"_index":3633,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["this.em.findoneorfail(course",{"_index":3560,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.findoneorfail(dashboardmodelentity",{"_index":7751,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findoneorfail(externaltoolpseudonymentity",{"_index":8964,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findoneorfail(pseudonymentity",{"_index":17053,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(user",{"_index":7723,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.flush",{"_index":3381,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.getconnection('write').getdb",{"_index":7890,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.em.getreference(classentity",{"_index":4472,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.getreference(contextexternaltoolentity",{"_index":17301,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.getunitofwork().getbyid(boardnode.name",{"_index":3632,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.nativedelete(externaltoolpseudonymentity",{"_index":8977,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.nativedelete(pseudonymentity",{"_index":17058,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(boardnode",{"_index":17307,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.persist(entity",{"_index":8975,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(modelentity",{"_index":7747,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persist(newentity",{"_index":11086,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.persist(target",{"_index":4907,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.persistandflush(board",{"_index":3535,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(cards",{"_index":3543,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(columns",{"_index":3537,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(data",{"_index":11738,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.em.persistandflush(elements",{"_index":3548,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(modelentity",{"_index":7749,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persistandflush(referencedentities",{"_index":4474,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.remove(el",{"_index":7720,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.remove(this.em.getreference(boardnode",{"_index":17237,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.em.removeandflush(entity",{"_index":11090,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.email",{"_index":9542,"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":20876,"title":{},"body":{"classes/UserDO.html":{}}}],["this.enablemigrationstart",{"_index":14868,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.enableoauthmigrationfeature(schooldo",{"_index":21272,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.encoding",{"_index":10331,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.encryptionservice.encrypt(externaltool.config.secret",{"_index":9317,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.encryptpassword(accountdto.password",{"_index":1091,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptpassword(password",{"_index":1097,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptsecrets(collectionname",{"_index":11759,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(data",{"_index":11736,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(jsondocuments",{"_index":11825,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.enddate",{"_index":12225,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["this.endpointurl",{"_index":12265,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.enrichdatafromexternaltool(createdschoolexternaltool",{"_index":18219,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichdatafromexternaltool(tool",{"_index":18213,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichwithdatafromexternaltools(schoolexternaltools",{"_index":18211,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.ensureboardnodetype(this.getchildren(boardnode",{"_index":3232,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurecontextpermissions(userid",{"_index":8597,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.ensureleafnode(boardnode",{"_index":3250,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurepermission(userid",{"_index":9406,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.ensureschoolpermissions(userid",{"_index":8588,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.ensuretoolpermissions(userid",{"_index":20708,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.entityclass",{"_index":2526,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityclass(props",{"_index":2509,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityfactory(entityprops",{"_index":2424,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.entityname",{"_index":945,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ForbiddenLoggableException.html":{}}}],["this.error",{"_index":8297,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.errorcode",{"_index":15355,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.errorhandler(error",{"_index":16160,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.errortype",{"_index":1207,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.everyattendeejoinsmuted",{"_index":21831,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.everyattendejoinsmuted",{"_index":21661,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["this.everybodyjoinsasmoderator",{"_index":21663,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.exchange",{"_index":17783,"title":{},"body":{"classes/RpcMessageProducer.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":15708,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalid",{"_index":6871,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalSourceResponse.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.externalidtoken",{"_index":15719,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["this.externalorganizationid",{"_index":8440,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["this.externalschool",{"_index":15706,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalsource",{"_index":11046,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.externalsourcename",{"_index":4334,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableexternaltools",{"_index":8600,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableschoolexternaltools",{"_index":8598,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailabletools",{"_index":8590,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope",{"_index":8603,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope(externaltool",{"_index":8592,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforcontext",{"_index":20350,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforschool",{"_index":20347,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforcontextexternaltool",{"_index":20357,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforschoolexternaltool",{"_index":20354,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltooldomapper.mapcreaterequest(externaltoolparams",{"_index":20461,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapexternaltoolfilterquerytoexternaltoolsearchquery(filterquery",{"_index":20467,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapsortingquerytodomain(sortingquery",{"_index":20466,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapupdaterequest(externaltoolparams",{"_index":20477,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolid",{"_index":5747,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.externaltoollogoservice.buildlogourl",{"_index":8594,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["this.externaltoollogoservice.fetchlogo(externaltool",{"_index":9408,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoollogoservice.getexternaltoolbinarylogo",{"_index":20484,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoollogoservice.validatelogosize(externaltool",{"_index":9450,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolparametervalidationservice.validatecommon(externaltool",{"_index":9447,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolpseudonymrepo",{"_index":17027,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17026,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findbyuserid(userid",{"_index":17024,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonym(query",{"_index":17030,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonymbypseudonym(pseudonym",{"_index":17029,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolrepo.deletebyid(toolid",{"_index":9345,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.find(query",{"_index":9326,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyid(id",{"_index":9335,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyname(name",{"_index":9338,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyoauth2configclientid(clientid",{"_index":9339,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(externaltool",{"_index":9322,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(toupdate",{"_index":9325,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolservice.createexternaltool(externaltool",{"_index":9410,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.deleteexternaltool(toolid",{"_index":9418,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.findbyid(loadedschoolexternaltool.toolid",{"_index":6109,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.externaltoolservice.findbyid(schoolexternaltool.toolid",{"_index":8608,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.externaltoolservice.findbyid(tool.toolid",{"_index":18214,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.externaltoolservice.findbyid(toolid",{"_index":8814,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyname",{"_index":15311,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.externaltoolservice.findexternaltoolbyname(externaltool.name",{"_index":8901,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid",{"_index":9727,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid(externaltool.config.clientid",{"_index":9465,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltools",{"_index":8584,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolservice.findexternaltools(query",{"_index":9417,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.updateexternaltool(toupdate",{"_index":9416,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltooluc.createexternaltool(currentuser.userid",{"_index":20462,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.deleteexternaltool(currentuser.userid",{"_index":20481,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.findexternaltool(currentuser.userid",{"_index":20468,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.getexternaltool",{"_index":20473,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.updateexternaltool",{"_index":20478,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolversionservice.increaseversionofnewtoolifnecessary(loadedtool",{"_index":9324,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaluser",{"_index":15704,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externaluserid",{"_index":8446,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ProvisioningDto.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.extractaccount(account",{"_index":13606,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakuser",{"_index":13591,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakusers[0",{"_index":13598,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(user",{"_index":13609,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcaccountid",{"_index":13626,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcsystemid",{"_index":13622,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcuserid",{"_index":13624,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractparamsfromrequest(request",{"_index":13811,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.extractreferences(elements",{"_index":3019,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.extractvalidationerrordetails(childerror",{"_index":1457,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.extractvalidationerrordetails(validationerror",{"_index":1447,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.factory.createdto",{"_index":17761,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.feathersauthprovider.getpermittedschools(userid",{"_index":9611,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getpermittedtargets(userid",{"_index":9612,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getuserschoolpermissions(userid",{"_index":9597,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getusertargetpermissions(userid",{"_index":9598,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersserviceprovider.getservice('/etherpad/pads",{"_index":8413,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["this.feathersserviceprovider.getservice('/nexboard/boards",{"_index":15224,"title":{},"body":{"injectables/NexboardService.html":{}}}],["this.feathersserviceprovider.getservice('users",{"_index":9580,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`${targetmodel}/:scopeid/userpermissions",{"_index":9567,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`/users/:scopeid/${targetmodel",{"_index":9572,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`path",{"_index":23222,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.features",{"_index":6557,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UsersList.html":{}}}],["this.federalstate",{"_index":12219,"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/SystemEntity.html":{}}}],["this.federalstaterepo.findbyname(name",{"_index":9788,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["this.federalstateservice.findfederalstatebyname",{"_index":16333,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.fetchbase64logo(externaltool.logourl",{"_index":8803,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.filecopyservice.copyfilesofparent",{"_index":17166,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.filecopyservicefactory.build",{"_index":4752,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.filesrepo.delete(file",{"_index":8000,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesrepo.findforcleanup(thresholddate",{"_index":7972,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent",{"_index":18423,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent(copyfilesofparentparams",{"_index":6318,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(fileelement.id",{"_index":17222,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(lesson.id",{"_index":14289,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(submission.id",{"_index":19215,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(task.id",{"_index":19925,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.filesstorageservice.copyfilesofparent(userid",{"_index":10522,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.deletefilesofparent(filerecords",{"_index":10531,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload",{"_index":10529,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload.parentid",{"_index":10525,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageuc.downloadbysecuritytoken(token",{"_index":10264,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filesstorageuc.updatesecuritystatus(token",{"_index":10272,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filestoragemqproducer.copyfilesofparent(param",{"_index":10442,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.deletefilesofparent(parentid",{"_index":10447,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.listfilesofparent(param",{"_index":10445,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filesystemadapter.createdir(targetfolder",{"_index":11767,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.eol",{"_index":11782,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(__dirname",{"_index":11683,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(basedir",{"_index":11705,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(targetfolder",{"_index":11700,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(this.basedir",{"_index":11687,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readdir(basedir",{"_index":11703,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readfile(filepath",{"_index":11751,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.writefile(filepath",{"_index":11781,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filetype",{"_index":17108,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["this.filterallowed(userid",{"_index":4174,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.filterbypermission(elements",{"_index":8102,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.filtercoursesbytoolavailability(courses",{"_index":9690,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.filtersubmissionsbypermission(submissions",{"_index":19240,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.filtertoolswithpermissions(userid",{"_index":6093,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.findallforstudent(user",{"_index":19983,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findallforteacher(user",{"_index":19984,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findalltasks(currentuser",{"_index":19574,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.findandcount(scope",{"_index":10187,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findbyexternalid(externalid",{"_index":20919,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.findbyid(accountid",{"_index":931,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findbyid(boardnode.parentid",{"_index":3374,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(id",{"_index":3350,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(userid",{"_index":21609,"title":{},"body":{"injectables/UserService.html":{}}}],["this.findbynames([rolename.administrator",{"_index":17574,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.findbyuserid(userid",{"_index":933,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findclassesforschool(schoolid",{"_index":11238,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findcombinedclasslistforschool(schoolid",{"_index":11228,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findexistinggridelement(elementwithposition",{"_index":7694,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.findexistingtargets(columnboardids",{"_index":4899,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.findexternaltoolpseudonymsbyuserid(userid",{"_index":17012,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findgroupsoftypeclassforschool(schoolid",{"_index":11239,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findimportusersandcount(scope.query",{"_index":12966,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this.findlegacyltitool",{"_index":15314,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findmigrationbyschool(schoolid",{"_index":21294,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.findnewsandcount(scope.query",{"_index":15094,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.findnextcloudtool",{"_index":15288,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findoneorfail(scope",{"_index":10184,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findpseudonymbypseudonym(pseudonym",{"_index":9683,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.findpseudonymsbyuserid(userid",{"_index":17011,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findsystemnamesforgroups(groupsoftypeclass",{"_index":11251,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findtasksandcount(scope.query",{"_index":19804,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.findteambyid(teamid",{"_index":4684,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.finduserafterprovisioningorthrow(externaluserid",{"_index":15443,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.findusersforgroup(group",{"_index":11255,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.finishcoursecopying(coursecopy",{"_index":6674,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.finished",{"_index":12480,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.add(user",{"_index":12546,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.getidentifiers('_id",{"_index":12483,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.remove(user",{"_index":12548,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.set(props.finished",{"_index":12470,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finishedat",{"_index":21140,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.finishedat.toisostring",{"_index":21165,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["this.firstname",{"_index":9538,"title":{},"body":{"classes/ExternalUserDto.html":{},"classes/GroupUserResponse.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":20872,"title":{},"body":{"classes/UserDO.html":{}}}],["this.flagged",{"_index":12029,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.forcepasswordchange",{"_index":12591,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.formattedjwt",{"_index":1654,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.friendlyurl",{"_index":7164,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.from",{"_index":8436,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.frontchannel_logout_uri",{"_index":7170,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.frontchannellogouturi",{"_index":15525,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.fullname",{"_index":2179,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.fullpath",{"_index":17357,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.fwulearningcontentsuc.get(path",{"_index":10733,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["this.generatearray(amount",{"_index":3550,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.generatebrokersystems([system",{"_index":19471,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatebrokersystems(systems",{"_index":19478,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatechecksum(callname",{"_index":2336,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.generatepreview(params",{"_index":16724,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.get('/api/v1/me",{"_index":1212,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.get('/events",{"_index":3936,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.get(`${oauthconfig.authendpoint}?${query",{"_index":11517,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(location",{"_index":11541,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(path",{"_index":1264,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getadditionalerrorinfo(idtoken.email",{"_index":13111,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.getadminidandtoken",{"_index":1259,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getandpseudonyms(students",{"_index":9708,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(substitutionteachers",{"_index":9710,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(teachers",{"_index":9709,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getasadmin(`/api/v1/groups.info?roomname=${groupname",{"_index":1246,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.members?roomname=${groupname",{"_index":1244,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.moderators?roomname=${groupname",{"_index":1242,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/users.list?${querystring",{"_index":1222,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getbbbrequestconfig(this.presentationurl",{"_index":2305,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getboardauthorizable(boarddo",{"_index":3131,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.getbydraftforcreatorquery(creatorid",{"_index":19910,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(false",{"_index":19911,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(isdraft",{"_index":19909,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(true",{"_index":19912,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getchildren(boardnode",{"_index":3276,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getchildren(boardnode).map((node",{"_index":3269,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getcollectionnames",{"_index":7906,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getcopiesforchildrenof(original",{"_index":17155,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcopyname(originaltask.name",{"_index":19661,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getcopystatusesforchildrenof(original",{"_index":17158,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcoursegroupstudentids",{"_index":12316,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.getcoursesfromuserspseudonym(loadedpseudonym",{"_index":9689,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getdatabasecollection(collectionname",{"_index":7893,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getdefaultmaxduedate",{"_index":19993,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getdestinationcourse(parentparams.courseid",{"_index":19655,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getdestinationlesson(parentparams.lessonid",{"_index":19660,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getelement(position",{"_index":7536,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getelementbytargetid(id",{"_index":2666,"title":{},"body":{"entities/Board.html":{}}}],["this.getelements().map((el",{"_index":2676,"title":{},"body":{"entities/Board.html":{}}}],["this.getentitypermissions(userid",{"_index":9605,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.getexternalsubclientmapperconfiguration",{"_index":13446,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getfilteredgroupusers(externalgroup",{"_index":16366,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.getfinisheduserids",{"_index":12493,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getfirstopenindex",{"_index":7531,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getgradedsubmissions",{"_index":12527,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getgroupdata(groupname",{"_index":1231,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getid",{"_index":7485,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getidpmapperconfiguration(idpalias",{"_index":13467,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getinternalid(accountdto.id",{"_index":1081,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(accountid",{"_index":1096,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(id",{"_index":1072,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getjwtforuser(user.id",{"_index":16224,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.getjwtfromresponse(response",{"_index":1677,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getloginurl(sourcesystem",{"_index":21443,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getloginurl(targetsystem",{"_index":21440,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getmaxsubmissions",{"_index":12531,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getmeetinginfo(new",{"_index":2319,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getnewspermissions(userid",{"_index":15192,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getoauthconfig",{"_index":13541,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.getorconstructdashboardmodelentity(entity",{"_index":7713,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.getorcreatecourseboard(courseid",{"_index":3676,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.getparametervalue",{"_index":299,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.getparent",{"_index":11914,"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":1658,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getpermittedcourses(user",{"_index":19969,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedlessons(user",{"_index":19970,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedtargets(userid",{"_index":15187,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getpostloginredirecturl",{"_index":15444,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getpreviewfile(params",{"_index":16725,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpropertyvalue(e",{"_index":8307,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.getprovisioningstrategy(oauthdata.system.provisioningstrategy",{"_index":16881,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getprovisioningstrategy(system.provisioningstrategy",{"_index":16877,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getredirecturi(migration",{"_index":15467,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getreferencesfromposition(from",{"_index":7507,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getrepository(tool",{"_index":17015,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getrepository(tool).findbyuseridandtoolidorfail(user.id",{"_index":17009,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getseedfolder",{"_index":11690,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.getshorttitle",{"_index":6597,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.getsubmissionitems",{"_index":12503,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmittedsubmissions",{"_index":12526,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmitterids",{"_index":12321,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.gettargetfilters(userid",{"_index":15204,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.gettargetfolder(toseedfolder",{"_index":11766,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.gettasksitems",{"_index":11900,"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":12315,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.geturl('create",{"_index":2300,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('end",{"_index":2321,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('getmeetinginfo",{"_index":2325,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('join",{"_index":2320,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl(filesstorageinternalactions.downloadbysecuritytoken",{"_index":1375,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.geturl(filesstorageinternalactions.updatesecuritystatus",{"_index":1377,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.getuser(userid",{"_index":9562,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.getuserrole(user",{"_index":9687,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getvideoconferenceoptions(scope",{"_index":21899,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.grade",{"_index":12288,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.gradecomment",{"_index":12290,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.graded",{"_index":3790,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.gradelevel",{"_index":4292,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.grant_type",{"_index":1537,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.granttype",{"_index":12345,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.grid",{"_index":7497,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(key",{"_index":7523,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(this.gridindexfromposition(position",{"_index":7544,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(i",{"_index":7535,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(key",{"_index":7503,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(this.gridindexfromposition(position",{"_index":7504,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].foreach((key",{"_index":7516,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].map((key",{"_index":7501,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(index",{"_index":7534,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(element.pos",{"_index":7499,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(position",{"_index":7547,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.values",{"_index":7529,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.gridelements",{"_index":7602,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.gridelements.set(props.gridelements",{"_index":7577,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.group.externalid",{"_index":18264,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.group.externalorganizationid",{"_index":18265,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.groupelements",{"_index":7601,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.groupid",{"_index":7600,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.grouprepo.delete(group",{"_index":11187,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyexternalsource(externalid",{"_index":11182,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyid(id",{"_index":11180,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyuser(user",{"_index":11183,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findclassesforschool(schoolid",{"_index":11184,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.save(group",{"_index":11186,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprule",{"_index":17812,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.groups.set(props.groups",{"_index":6559,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.groupservice.delete(group",{"_index":16400,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyexternalsource",{"_index":16361,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyid(groupid",{"_index":11273,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.groupservice.findbyuser(user",{"_index":16388,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findclassesforschool(schoolid",{"_index":11249,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.groupservice.save(group",{"_index":16375,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupuc.findallclassesforschool",{"_index":10968,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuc.getgroup(currentuser.userid",{"_index":10974,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuser.externaluserid",{"_index":21009,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.groupuser.rolename",{"_index":21010,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.guest",{"_index":2184,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.guestpolicy",{"_index":2101,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.handlecolumnboardintegration(roomid",{"_index":17735,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.handleparameterstoinclude",{"_index":293,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.hasaccesstosubmission(user",{"_index":19191,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haschangedparameternames(oldparams",{"_index":9507,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterregex(newparams",{"_index":9508,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterscope(newparams",{"_index":9510,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparametertypes(newparams",{"_index":9509,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedrequiredparameters(oldparams",{"_index":9506,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschild(child",{"_index":2792,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.hascoursereadpermission(user",{"_index":17678,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hascoursewritepermission(user",{"_index":17679,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hasduplicateattributes(externaltool.parameters",{"_index":8881,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.hasnewrequiredparameter(oldparams",{"_index":9505,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.hasparent",{"_index":3611,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.hasparentpermission(user",{"_index":19873,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.hasparenttaskreadaccess(user",{"_index":19196,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasparenttaskwriteaccess(user",{"_index":19195,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haspath(req.route",{"_index":17358,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.haspermission(user",{"_index":2008,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissionbyreferences(userid",{"_index":1980,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.hasreadaccess(user",{"_index":19193,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasscanstatuswontcheck",{"_index":10106,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.hasschoolmigrated(externalid",{"_index":18363,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.haswriteaccess(user",{"_index":19192,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.headers",{"_index":2041,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.height",{"_index":4063,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{}}}],["this.hidden",{"_index":3471,"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.hosturl",{"_index":21431,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.host}${location",{"_index":11528,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.httpservice",{"_index":1266,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.httpservice.get(input.system.provisioningurl",{"_index":17989,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.httpservice.get(logourl",{"_index":8804,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.httpservice.get(url",{"_index":2322,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{}}}],["this.httpservice.get(url.tostring",{"_index":3940,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.httpservice.post(tokenendpoint",{"_index":15568,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.httpservice.post(url",{"_index":2306,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.httpservice.request",{"_index":13543,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.httpstatus",{"_index":8747,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["this.hydracookies",{"_index":6147,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.hydrassoservice.generateconfig(oauthclientid",{"_index":11441,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.initauth(hydraoauthconfig",{"_index":11451,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.processredirect(dto",{"_index":11460,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrauc.getoauthtoken(oauthclientid",{"_index":16182,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauc.requestauthcode(currentuser.userid",{"_index":16188,"title":{},"body":{"controllers/OauthSSOController.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.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":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"classes/LegacySchoolDo.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ResolvedGroupDto.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":{},"classes/UsersList.html":{}}}],["this.identifiername",{"_index":15333,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.idmoauthservice.getoauthconfig",{"_index":19493,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.isoauthconfigavailable",{"_index":19490,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.resourceownerpasswordgrant(username",{"_index":14393,"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":12341,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.idtoken",{"_index":15492,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.idtokenservice.createidtoken(userid",{"_index":15839,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.imagemagick(original.data",{"_index":16677,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.imageurl",{"_index":14340,"title":{},"body":{"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.html":{}}}],["this.importhash",{"_index":20870,"title":{},"body":{"classes/UserDO.html":{}}}],["this.importuserid",{"_index":12837,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.importuserschoolid",{"_index":18275,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.info.appname",{"_index":1470,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.basepath",{"_index":1473,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.mountsdescription",{"_index":1475,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.port",{"_index":1471,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.initializes3clientmap",{"_index":7966,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.injectenvvars(filecontent",{"_index":11752,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.injectenvvars(s",{"_index":11731,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.inmaintenancesince",{"_index":12211,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.inner",{"_index":5298,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.caninline",{"_index":5303,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.content",{"_index":5304,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.transform",{"_index":5305,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inputformat",{"_index":17481,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.inusermigration",{"_index":12214,"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":4289,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.isallowedaschild(child",{"_index":2787,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.isarchived",{"_index":18879,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.isauthenticationresponse(response.body",{"_index":1701,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isauthorizedstudent(userid",{"_index":19129,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.isautoparameterglobal(param",{"_index":8888,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isblocked",{"_index":10099,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isclientidunique(externaltool",{"_index":9462,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.iscolumnboardfeatureflagactive",{"_index":8108,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.iscustomparameternameempty(param",{"_index":8883,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidregex(param",{"_index":8898,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidtype(param",{"_index":8897,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdirectory",{"_index":9944,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.isdraft",{"_index":3791,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isfinished",{"_index":3793,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.isfinishedforuser(user",{"_index":12532,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isglobalparametervalid(param",{"_index":8885,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isgraceperiodexpired(userloginmigration",{"_index":4499,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.isgraded",{"_index":12325,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.isgradedforuser(user",{"_index":12536,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isgroup",{"_index":7477,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.ishidden",{"_index":7172,"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":5357,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islatest(schoolexternaltool",{"_index":5356,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islocal",{"_index":7157,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.isnameunique(externaltool",{"_index":8878,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15437,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.isoptional",{"_index":7228,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.ispending",{"_index":10104,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispreviewpossible",{"_index":10101,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispropertyprivacyprotected(e.target",{"_index":8315,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.isregexcommentmandatoryandfilled(param",{"_index":8892,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isregexvalid(param",{"_index":8895,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isschoolnumberunique(school",{"_index":18434,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.isslash(inputpath",{"_index":1684,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isslash(path",{"_index":1687,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.issubmitted",{"_index":12308,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.issubmittedforuser(user",{"_index":12535,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.issubstitutionteacher",{"_index":3792,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.issuer",{"_index":12355,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.isteacher",{"_index":8123,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.istemplate",{"_index":7155,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.istoolstatuslatestorthrow(userid",{"_index":20596,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.isuniqueemail(email",{"_index":1147,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.isupgradable",{"_index":4340,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.isuserreferenced(user",{"_index":1864,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["this.isusersubmitter(user",{"_index":12307,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.isusersubstitutionteacherincourse(user",{"_index":12533,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isvaluevalidfortype(param.type",{"_index":5420,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.isverified",{"_index":10075,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.joinpath(os.tmpdir",{"_index":10336,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.jwksendpoint",{"_index":12357,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.jwt",{"_index":15364,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["this.jwtservice.sign(user",{"_index":1751,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.addtowhitelist(user.accountid",{"_index":1754,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.iswhitelisted(accountid",{"_index":13179,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["this.jwtvalidationadapter.removefromwhitelist(decodedjwt.accountid",{"_index":1759,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.kcadmin.callkcadminclient",{"_index":13385,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getadminuser",{"_index":13709,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getclientid",{"_index":13419,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.kcadmin.setpasswordpolicy",{"_index":13497,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadmin.testkcconnection",{"_index":13493,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadminclient",{"_index":13269,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.auth(this.kcsettings.credentials",{"_index":13270,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.callkcadminclient",{"_index":13574,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.del",{"_index":13610,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.find",{"_index":13607,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.findone",{"_index":13589,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.setconfig",{"_index":13265,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminservice.getclientid",{"_index":13531,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getclientsecret",{"_index":13533,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getwellknownurl",{"_index":13527,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.testkcconnection",{"_index":13540,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcsettings.baseurl}/realms/${this.kcsettings.realmname}/.well",{"_index":13271,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.clientid",{"_index":13274,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.credentials.username",{"_index":13273,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.realmname",{"_index":13284,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.key",{"_index":7137,"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":18936,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring(cryptojs.enc.utf8",{"_index":18939,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.keycloakconfigservice.configurebrokerflows",{"_index":13499,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureclient",{"_index":13498,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureidentityproviders",{"_index":13501,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configurerealm",{"_index":13500,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigurationuc.check",{"_index":11618,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.clean(options.pagesize",{"_index":11626,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.configure",{"_index":11639,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.migrate",{"_index":11647,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.seed",{"_index":11633,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakmanagementuc.check",{"_index":13647,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.configure",{"_index":13648,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.seed",{"_index":13649,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmigrationservice.migrate(skip",{"_index":13496,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.clean(pagesize",{"_index":13494,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.seed",{"_index":13495,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keyvalue",{"_index":1783,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.language",{"_index":12593,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastauthorizationtime",{"_index":13287,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.lastloginsystemchange",{"_index":12597,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastmodifytimestamp",{"_index":12370,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastname",{"_index":9540,"title":{},"body":{"classes/ExternalUserDto.html":{},"classes/GroupUserResponse.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":20874,"title":{},"body":{"classes/UserDO.html":{}}}],["this.lastsuccessfulfullsync",{"_index":12366,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsuccessfulpartialsync",{"_index":12368,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsyncattempt",{"_index":12364,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lasttriedfailedlogin",{"_index":419,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.lastupdatedat",{"_index":20265,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["this.launch_presentation_locale",{"_index":14577,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["this.ldapactive",{"_index":19329,"title":{},"body":{"classes/SystemDto.html":{}}}],["this.ldapconfig",{"_index":12427,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.ldapdn",{"_index":4294,"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":12036,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.ldapencryptionservice.encrypt",{"_index":11836,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.ldapservice.checkldapcredentials(system",{"_index":13827,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.legacylogger.debug",{"_index":9331,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.legayschoolrule",{"_index":17806,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lesson",{"_index":12467,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.hidden",{"_index":12543,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.name",{"_index":12542,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lessoncopyservice.copylesson",{"_index":3055,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.lessoncopyservice.updatecopiedembeddedtasks(elementcopystatus",{"_index":3083,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.lessoncopyuc.copylesson",{"_index":17719,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.lessonhidden",{"_index":19697,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.lessonreadpermission(user",{"_index":14254,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.lessonrepo",{"_index":12138,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.lessonrepo.delete(lesson",{"_index":14290,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids([originallesson.course.id",{"_index":14173,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.lessonrepo.findallbycourseids([roomid",{"_index":17732,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.lessonrepo.findallbycourseids(courseids",{"_index":14291,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids(readcourseids",{"_index":20017,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findallbycourseids(writecourseids",{"_index":20016,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findbyid(lessonid",{"_index":14165,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.lessonrepo.findbyuserid(userid",{"_index":14292,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.save(updatedlessons",{"_index":14297,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrule",{"_index":17802,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lessonrule.haspermission(user",{"_index":19876,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.lessonservice.deletelesson(lesson",{"_index":14308,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbycourseids([courseid",{"_index":5044,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.lessonservice.findbyid(lessonid",{"_index":14303,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18783,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lessonservice.savelesson(lesson",{"_index":23693,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.lessonuc.delete(currentuser.userid",{"_index":14145,"title":{},"body":{"controllers/LessonController.html":{}}}],["this.lessonwritepermission(user",{"_index":14255,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.level",{"_index":3605,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.license",{"_index":12110,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.limit",{"_index":16512,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.loadaccount(username",{"_index":13818,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.loadaccounts",{"_index":13704,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.loadallcollectionsfromdatabase(folder",{"_index":11713,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadallcollectionsfromfilesystem(folder",{"_index":11712,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11748,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loader.loadauthorizableobject(entityname",{"_index":1983,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.loadtoolhierarchy(schoolexternaltoolid",{"_index":20595,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.loadusers",{"_index":13703,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.localcookies",{"_index":6145,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.location",{"_index":7220,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["this.logger",{"_index":18578,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.logger.alert(message",{"_index":8348,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.crit(message",{"_index":8349,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.debug",{"_index":4171,"title":{},"body":{"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":13789,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug('usersearcindex",{"_index":11797,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.debug(`adding",{"_index":15305,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`contextexternaltool",{"_index":20414,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.logger.debug(`created",{"_index":2414,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`externaltool",{"_index":20464,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.logger.debug(`generating",{"_index":16223,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`oauth",{"_index":16221,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`removing",{"_index":15300,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`schoolexternaltool",{"_index":20743,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.logger.debug(`updated",{"_index":2420,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(err",{"_index":13787,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug(message",{"_index":14424,"title":{},"body":{"injectables/Logger.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.logger.debug(new",{"_index":16633,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.logger.debug(this.createmessage(message",{"_index":13902,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.emerg(message",{"_index":8347,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error('could",{"_index":8417,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["this.logger.error(`${err.message",{"_index":17864,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.error(`migration",{"_index":13666,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.error(`the",{"_index":7981,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.error(err",{"_index":13650,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.error(error",{"_index":8002,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"controllers/OauthSSOController.html":{}}}],["this.logger.error(loggable",{"_index":10823,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.logger.error(message",{"_index":8350,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error(this.createmessage(result",{"_index":13904,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.http(logging",{"_index":17399,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.info",{"_index":13841,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.logger.info(message",{"_index":14423,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.info(new",{"_index":8807,"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":13900,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.log",{"_index":7927,"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":8165,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log('cleanup",{"_index":7934,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.log(`${oauthconfig.authendpoint}?${query",{"_index":11515,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(`...deleted",{"_index":13714,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`...migrated",{"_index":13667,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`after",{"_index":8167,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log(`amount",{"_index":13712,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`could",{"_index":17874,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(`initialized",{"_index":7988,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.log(`migration",{"_index":13665,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`starting",{"_index":13710,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`stream",{"_index":17918,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(axiosconfig",{"_index":11516,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(err",{"_index":16135,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.log(localdto",{"_index":11539,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(new",{"_index":23252,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.notice(message",{"_index":14422,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.notice(this.createmessage(message",{"_index":13903,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.setcontext(`${context.getclass().name}::${context.gethandler().name",{"_index":17392,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.setcontext(carduc.name",{"_index":4170,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.logger.setcontext(collaborativestorageadapter.name",{"_index":4554,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.logger.setcontext(collaborativestoragecontroller.name",{"_index":4628,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.logger.setcontext(collaborativestorageservice.name",{"_index":4677,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.logger.setcontext(databasemanagementuc.name",{"_index":11680,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.setcontext(deletefilesconsole.name",{"_index":7926,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.setcontext(deletefilesuc.name",{"_index":7965,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.setcontext(elementuc.name",{"_index":8240,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.logger.setcontext(filesstorageclientadapterservice.name",{"_index":10441,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.logger.setcontext(filesstorageconsumer.name",{"_index":10520,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.logger.setcontext(filesstorageproducer.name",{"_index":10632,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.logger.setcontext(fwulearningcontentsuc.name",{"_index":10771,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.logger.setcontext(hydraoauthuc.name",{"_index":11438,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.logger.setcontext(keycloakconsole.name",{"_index":11605,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.logger.setcontext(keycloakmanagementcontroller.name",{"_index":13645,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.setcontext(keycloakmigrationservice.name",{"_index":13659,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.setcontext(ldapservice.name",{"_index":13772,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.setcontext(newsuc.name",{"_index":15177,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.logger.setcontext(nextcloudstrategy.name",{"_index":15260,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.setcontext(oauthservice.name",{"_index":15428,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.logger.setcontext(oauthssocontroller.name",{"_index":16131,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.setcontext(oauthuc.name",{"_index":16216,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.setcontext(previewgeneratorconsumer.name",{"_index":16630,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.logger.setcontext(previewgeneratorservice.name",{"_index":16668,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.logger.setcontext(previewproducer.name",{"_index":16689,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.logger.setcontext(previewservice.name",{"_index":16714,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.setcontext(restartuserloginmigrationuc.name",{"_index":17441,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(s3clientadapter.name",{"_index":17860,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.setcontext(sharetokenuc.name",{"_index":18814,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.logger.setcontext(startuserloginmigrationuc.name",{"_index":18908,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(submissionitemuc.name",{"_index":19121,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.logger.setcontext(youruc.name",{"_index":23250,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.warn",{"_index":15318,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.warn('no",{"_index":19266,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["this.logger.warn(`boardcopyservice",{"_index":3048,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warn(`completemigration",{"_index":18375,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(`could",{"_index":16721,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warn(`placeholder",{"_index":11823,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.warn(`restartmigration",{"_index":18381,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(err",{"_index":3029,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warning(message",{"_index":14421,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.warning(this.createmessage(message",{"_index":13901,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.loginname",{"_index":12839,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.loginuc.getlogindata(user",{"_index":14493,"title":{},"body":{"controllers/LoginController.html":{}}}],["this.loginurl",{"_index":21446,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.logmigrationinformation",{"_index":21333,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logmigrationinformation(currentuserid",{"_index":21320,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logo",{"_index":8494,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["this.logo_url",{"_index":7141,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.logobase64",{"_index":8697,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["this.logourl",{"_index":5752,"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/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.logoutendpoint",{"_index":12353,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.logoutflowuc.logoutflow(params.challenge",{"_index":15927,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.logouturl",{"_index":2097,"title":{},"body":{"classes/BBBCreateConfig.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{},"injectables/UserMigrationService.html":{}}}],["this.lookuptoken(token",{"_index":18779,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lti_message_type",{"_index":7143,"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":7145,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.ltirepo.findbyoauthclientid(oauthclientid",{"_index":11551,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.ltitoolrepo.findbyclientidandislocal(clientid",{"_index":14743,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["this.ltitoolrepo.findbyname(this.client.oidcinternalname",{"_index":15316,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.ltitoolservice.findbyclientidandislocal(clientid",{"_index":15960,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.mandatory",{"_index":21170,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["this.mandatorysince",{"_index":21134,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.mapbasictoolconfigdotoentity(entitydo.config",{"_index":9088,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapbasictoolconfigdotoresponse(externaltool.config",{"_index":9237,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapbasictoolconfigtodo(entity.config",{"_index":9064,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapboardelements(board",{"_index":17603,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["this.mapcolumnboardelement(element",{"_index":8119,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.mapcontenttoresource(lesson.id",{"_index":5053,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcontexttypetodotype(entity.contexttype",{"_index":5893,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcontexttypetoentitytype(entitydo.contextref.type",{"_index":5898,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcourseteacherstocopyrightowners(course",{"_index":5037,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcourseuserstousergroup(course",{"_index":3141,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.mapcustomparameterdostoentities(entitydo.parameters",{"_index":9095,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparameterstodos(entity.parameters",{"_index":9071,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparametertoresponse",{"_index":9240,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapdomainobjecttoentityproperties(domainobject",{"_index":8972,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapdotoentityproperties(domainobject",{"_index":2423,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.mapelementtoentity(e",{"_index":7689,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapentitytodo(entity",{"_index":2409,"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":14027,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(schools[0",{"_index":14031,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(userentity",{"_index":20918,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.mapentitytodo(userloginmigration",{"_index":21207,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this.mapentitytodomainobject(entities",{"_index":8978,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.mapentitytodomainobject(entity",{"_index":8966,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapexternalsourceentitytoexternalsource(entity.externalsource",{"_index":11022,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapexternalsourcetoexternalsourceentity(props.externalsource",{"_index":11011,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapfromdtotoresponse(system",{"_index":19451,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["this.mapfromentitytodto(entity",{"_index":17526,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["this.mapgridelementtomodel(elementwithposition",{"_index":7716,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapgroupuserentitytogroupuser(groupuser",{"_index":11017,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.maplessonelement(element",{"_index":8118,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maplti11toolconfigdotoentity(entitydo.config",{"_index":9090,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.maplti11toolconfigdotoresponse(externaltool.config",{"_index":9238,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.maplti11toolconfigtodo(entity.config",{"_index":9066,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configdotoentity(entitydo.config",{"_index":9089,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configtodo(entity.config",{"_index":9065,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2toolconfigdotoresponse(externaltool.config",{"_index":9239,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapper.mapdashboardtoentity(dashboardmodel",{"_index":7752,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtoentity(modelentity",{"_index":7748,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtomodel(entity",{"_index":7746,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdotoprovideroauthclient",{"_index":9320,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.mapper.maptoresponse(board",{"_index":17707,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.mappers.find((mapper",{"_index":5588,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.mappseudonymtouserdata(pseudonym",{"_index":9714,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.mapreferencetoentity(ref",{"_index":7681,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapreferencetomodel(ref",{"_index":7710,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolcreateparams.config",{"_index":9186,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolupdateparams.config",{"_index":9173,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterdo",{"_index":9177,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(contextexternaltool.parameters",{"_index":5969,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(request.parameters",{"_index":5925,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigcreate(externaltoolcreateparams.config",{"_index":9187,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigupdate(externaltoolupdateparams.config",{"_index":9174,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigcreate(externaltoolcreateparams.config",{"_index":9188,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigupdate(externaltoolupdateparams.config",{"_index":9175,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.mapsanisroletorolename(source",{"_index":18030,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.mapsubmissionstoresponse(item",{"_index":19084,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.maptaskelement(element",{"_index":8116,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoclassinfotoresponse(classinfo",{"_index":11126,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["this.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20382,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptocustomparameterentryresponse(schoolexternaltool.parameters",{"_index":18177,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptodo(entity",{"_index":4399,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoelementdtos(filtered",{"_index":8103,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoentity(domainobject",{"_index":4401,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoexternalgroupuser(relation",{"_index":18045,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20379,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptoschoolexternaltoolresponse(tooldo",{"_index":18174,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptotoolreferenceresponse(toolreference",{"_index":5974,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.mapuserstoresponse(user",{"_index":19086,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.match",{"_index":12846,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.matchedby",{"_index":12049,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.matchsinglerule(selectedrules",{"_index":17816,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.materials.getitems",{"_index":11911,"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":11910,"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":11893,"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":11463,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.maxexternaltoollogosizeinbytes",{"_index":8827,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["this.maxsubmissions",{"_index":3789,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.meetingid",{"_index":2057,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{}}}],["this.mergeelementintoposition(elementtomove",{"_index":7509,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.merlinreference",{"_index":12112,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.message",{"_index":3849,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/PreviewActionsLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.metadataprops.version",{"_index":5233,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["this.method",{"_index":17354,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.migrationcheckservice.shouldusermigrate",{"_index":15438,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.migrationerrorhandler(error",{"_index":16194,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.migrationmapper.mapdtotoresponse(migrationdto",{"_index":13957,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.mimetype",{"_index":6206,"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":21665,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.moderatorpw",{"_index":2103,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.name",{"_index":2095,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"entities/ClassEntity.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/FederalStateEntity.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":{},"classes/GroupResponse.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":{},"classes/ResolvedGroupDto.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/SchoolYearEntity.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":{},"classes/UsersList.html":{}}}],["this.name.length",{"_index":6589,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.newsrepo.delete(news",{"_index":15200,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallpublished(targets",{"_index":15190,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallunpublishedbyuser(targets",{"_index":15189,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findonebyid(id",{"_index":15193,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.save(news",{"_index":15183,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsuc.create",{"_index":14975,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.newsuc.delete(urlparams.newsid",{"_index":14989,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.findallforuser",{"_index":14979,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["this.newsuc.findonebyidforuser(urlparams.newsid",{"_index":14984,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.update",{"_index":14985,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.nowplusdays(options.expiresindays",{"_index":18824,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.numberofdrafttasks",{"_index":3473,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofplannedtasks",{"_index":3474,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofpublishedtasks",{"_index":3472,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.oauthadapterservice.getpublickey(oauthconfig.jwksendpoint",{"_index":15454,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthadapterservice.sendauthenticationcodetokenrequest",{"_index":15451,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthclientid",{"_index":7162,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.oauthconfig",{"_index":12423,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.oauthencryptionservice.decrypt(clientsecret",{"_index":13542,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.decrypt(oauthconfig.clientsecret",{"_index":15483,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthencryptionservice.encrypt(await",{"_index":13532,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.encrypt(tool.secret",{"_index":11559,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.oauthmigrationfinalfinish",{"_index":14866,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationfinished",{"_index":14864,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationmandatory",{"_index":14862,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationpossible",{"_index":14860,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid",{"_index":15989,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid(clientid",{"_index":12650,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.oauthproviderloginflowservice.isnextcloudtool(tool",{"_index":15991,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowuc.getloginrequest(params.challenge",{"_index":15919,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderloginflowuc.patchloginrequest",{"_index":15922,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentresponse(consentrequest",{"_index":15933,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentsessionstoresponse(session",{"_index":15941,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.maploginresponse(loginresponse",{"_index":15920,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapoauthclientresponse(client",{"_index":15903,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirect",{"_index":15928,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirectresponse",{"_index":15924,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderservice.acceptconsentrequest",{"_index":15841,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.acceptloginrequest",{"_index":15997,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.acceptlogoutrequest(challenge",{"_index":16008,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["this.oauthproviderservice.createoauth2client(datawithdefaults",{"_index":15804,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.createoauth2client(oauthclient",{"_index":9321,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.deleteoauth2client(id",{"_index":15806,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.getconsentrequest(challenge",{"_index":15830,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.getloginrequest(challenge",{"_index":15984,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.getoauth2client",{"_index":9349,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(config.clientid",{"_index":9356,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(id",{"_index":15800,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.listconsentsessions(userid",{"_index":16078,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.listoauth2clients",{"_index":15799,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.rejectconsentrequest",{"_index":15838,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.rejectloginrequest",{"_index":16002,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.revokeconsentsession(userid",{"_index":16079,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(id",{"_index":15805,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(loadedoauthclient.client_id",{"_index":9353,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthprovideruc.listconsentsessions",{"_index":15939,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthprovideruc.revokeconsentsession(currentuser.userid",{"_index":15944,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthservice.authenticateuser",{"_index":16225,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(systemid",{"_index":15510,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(targetsystemid",{"_index":21319,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.oauthservice.getauthenticationurl(system.oauthconfig",{"_index":16219,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.getredirecturi(userloginmigration",{"_index":16222,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.provisionuser",{"_index":15511,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.requesttoken",{"_index":11443,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthservice.validatetoken(oauthtokens.idtoken",{"_index":11445,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthuc.migrate(jwt",{"_index":16191,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.processoauthlogin",{"_index":16162,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.startoauthlogin",{"_index":16155,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.officialschoolnumber",{"_index":8456,"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":15357,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.officialschoolnumberfromtarget",{"_index":15358,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.oidcconfig",{"_index":12425,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.oidcidentityprovidermapper.maptokeycloakidentityprovider(oidcconfig",{"_index":13459,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.oidcprovisioningservice.provisionexternalgroup(externalgroup",{"_index":16418,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternalschool(data.externalschool",{"_index":16409,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternaluser",{"_index":16411,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.removeexternalgroupsandaffiliation",{"_index":16416,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.opengraphproxyservice",{"_index":5620,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.opengraphproxyservice.fetchopengraphdata(linkelement.url",{"_index":5664,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.openinnewtab",{"_index":20639,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.opennewtab",{"_index":7168,"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":14999,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["this.options",{"_index":8035,"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":1282,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminpassword",{"_index":1287,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.admintoken",{"_index":1283,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminuser",{"_index":1286,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.copyrightowners",{"_index":5156,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.creationyear",{"_index":5157,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.enabled",{"_index":1373,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.exchange",{"_index":1379,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.filesservicebaseurl",{"_index":1390,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.identifier",{"_index":5154,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.module",{"_index":20224,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["this.options.routingkey",{"_index":1380,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.options.title",{"_index":5155,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.uri",{"_index":1292,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.version",{"_index":5158,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organization",{"_index":11049,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.organizationelements.map((organizationelement",{"_index":5287,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["this.organizationid",{"_index":11108,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.organizations.flatmap((organization",{"_index":5151,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.map((organization",{"_index":5149,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.push(organizationbuilder",{"_index":5145,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.origin",{"_index":13065,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["this.origintoolid",{"_index":7197,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["this.orm.close",{"_index":14902,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["this.orm.getschemagenerator().ensureindexes",{"_index":7910,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.outdatedsince",{"_index":12599,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.pagecontentmapper.mapdtotoresponse(content",{"_index":21388,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.parameters",{"_index":5719,"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":14881,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.parametertype",{"_index":16519,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["this.params",{"_index":7286,"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":6202,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.parentname",{"_index":18703,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["this.parentpermission(user",{"_index":14261,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.parentsmap.get(card.id",{"_index":17280,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(column.id",{"_index":17278,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(columnboard.id",{"_index":17270,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(externaltoolelement.id",{"_index":17299,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(fileelement.id",{"_index":17282,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(linkelement.id",{"_index":17285,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(richtextelement.id",{"_index":17288,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submission.id",{"_index":17294,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissioncontainerelement.id",{"_index":17291,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.set(child.id",{"_index":17306,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsystemid",{"_index":16254,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["this.parenttype",{"_index":6208,"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":3603,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.path.split(path_separator).filter((id",{"_index":3614,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.payload",{"_index":16581,"title":{},"body":{"classes/PreviewActionsLoggable.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.permission",{"_index":8027,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.permissionmapper.mapbodytodto(permissionsdto",{"_index":4706,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.permissions",{"_index":9934,"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":9935,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.persistandflush(dashboard",{"_index":7754,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.pickimage(data.result.ogimage",{"_index":16441,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["this.populate([task",{"_index":19766,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populate(tasks",{"_index":19847,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populateboard(board",{"_index":3677,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.populatereferences([submission",{"_index":19162,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populatereferences(submissions",{"_index":19164,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populateroles([teamuser.role",{"_index":20183,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(role.roles.getitems",{"_index":20188,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(user.roles.getitems",{"_index":21516,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this.populateroles(userentity.roles.getitems",{"_index":20917,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.position",{"_index":3607,"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":7502,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.post('/api/v1/logout",{"_index":1220,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post('/api/v1/users.setstatus",{"_index":1215,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post(path",{"_index":1260,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.addmoderator",{"_index":1238,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.archive",{"_index":1228,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.create",{"_index":1250,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.delete",{"_index":1252,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.invite",{"_index":1236,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.kick",{"_index":1232,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.removemoderator",{"_index":1240,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.unarchive",{"_index":1224,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.create",{"_index":1254,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.createtoken",{"_index":1218,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.delete",{"_index":1257,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postloginredirect",{"_index":15730,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["this.preferences",{"_index":12595,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.preparebbbcreateconfigbuilder(scope",{"_index":21812,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.previewgeneratorservice.generatepreview(payload",{"_index":16635,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.previewproducer.generate(payload",{"_index":16731,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.previewservice.deletepreviews(filerecords",{"_index":10530,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.previewstatus",{"_index":6212,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.previousexternalid",{"_index":12210,"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":7151,"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":12465,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.proceedbuttonurl",{"_index":16465,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.processcookies(localdto.response.headers['set",{"_index":11532,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.processredirectcascade(initresponse",{"_index":11452,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.product",{"_index":3829,"title":{},"body":{"classes/Builder.html":{}}}],["this.product.allowmodstounmuteusers",{"_index":2152,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.attendeepw",{"_index":2150,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.guest",{"_index":2202,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.guestpolicy",{"_index":2137,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.logouturl",{"_index":2135,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.moderatorpw",{"_index":2148,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.muteonstart",{"_index":2138,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.role",{"_index":2203,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.userid",{"_index":2204,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.welcome",{"_index":2136,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product['meta_bbb",{"_index":2140,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.properties",{"_index":20514,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["this.propertiestopopulate",{"_index":15100,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.props",{"_index":1791,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/DomainObject.html":{}}}],["this.props.alternativetext",{"_index":9841,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.caption",{"_index":9839,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.children",{"_index":2784,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.props.completed",{"_index":19049,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.context",{"_index":4730,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["this.props.contextexternaltoolid",{"_index":8642,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["this.props.copyrightowners",{"_index":5266,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.createdat",{"_index":2785,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.creationyear",{"_index":5265,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.description",{"_index":5186,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.duedate",{"_index":18972,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["this.props.externalsource",{"_index":10926,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.gradelevel",{"_index":4248,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.height",{"_index":3959,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["this.props.href",{"_index":5221,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.html",{"_index":5313,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.id",{"_index":1792,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["this.props.identifier",{"_index":5219,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.imageurl",{"_index":14331,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.inputformat",{"_index":17472,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.intendeduse",{"_index":5314,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.invitationlink",{"_index":4246,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.ldapdn",{"_index":4249,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.name",{"_index":4242,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.organizationid",{"_index":10927,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.pseudonym",{"_index":16911,"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":5134,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.resources.map((content",{"_index":5276,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["this.props.resources.push(props",{"_index":5139,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.schoolid",{"_index":4243,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.source",{"_index":4251,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceoptions",{"_index":4252,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceschoolid",{"_index":18426,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.successor",{"_index":4250,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.targetschoolid",{"_index":18428,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.teacherids",{"_index":4245,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.text",{"_index":17470,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.title",{"_index":3957,"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":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.toolid",{"_index":16912,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.tspuid",{"_index":4446,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["this.props.type",{"_index":5220,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.updatedat",{"_index":2786,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.url",{"_index":5188,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.userid",{"_index":16913,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.userids",{"_index":4244,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.userids?.filter((userid1",{"_index":4253,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.users",{"_index":3112,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.users.filter((groupuser",{"_index":10928,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.users.length",{"_index":10930,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.version",{"_index":5195,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.year",{"_index":4247,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.propsfactory",{"_index":2505,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.afterbuild(afterbuildfn",{"_index":2516,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.associations(associations",{"_index":2519,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.build(params",{"_index":2508,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.params(params",{"_index":2520,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.rewindsequence",{"_index":2522,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.transient(transient",{"_index":2521,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory['sequence",{"_index":2529,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.provider",{"_index":12351,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.provideroptions",{"_index":12380,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.provisioningservice.getdata",{"_index":21322,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.provisioningservice.getdata(systemid",{"_index":15433,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["this.provisioningservice.provisiondata(data",{"_index":15442,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.provisioningstrategy",{"_index":12429,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.provisioningurl",{"_index":12431,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.pseudonym",{"_index":8927,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/TooManyPseudonymsLoggableException.html":{}}}],["this.pseudonymrepo",{"_index":17028,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17025,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.findbyuserid(userid",{"_index":17022,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymservice",{"_index":15292,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.pseudonymservice.findbyuserandtoolorthrow(user",{"_index":12652,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.pseudonymservice.findorcreatepseudonym(user",{"_index":9716,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.findpseudonymbypseudonym(pseudonym",{"_index":9720,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.getiframesubject(loadedpseudonym.pseudonym",{"_index":9686,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.getiframesubject(pseudonym.pseudonym",{"_index":9736,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/IdTokenService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymuc.findpseudonymbypseudonym(currentuser.userid",{"_index":16937,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["this.publicbackendurl",{"_index":21432,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.publicsubmissions",{"_index":12471,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.published",{"_index":2748,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{}}}],["this.publishedat",{"_index":22040,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["this.random(50",{"_index":3553,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.read",{"_index":9998,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.reason",{"_index":10043,"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":2186,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"classes/UserMigrationResponse.html":{}}}],["this.redirect_to",{"_index":17315,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["this.redirect_uri",{"_index":1535,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.redirecturi",{"_index":12347,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.redirecturis",{"_index":15521,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.redisclient",{"_index":18577,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.references",{"_index":7471,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.getitems",{"_index":2669,"title":{},"body":{"entities/Board.html":{}}}],["this.references.length",{"_index":7479,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.set(elements",{"_index":2673,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(newlist",{"_index":2707,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(onlyexistingreferences",{"_index":2696,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(props.references",{"_index":2662,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(references",{"_index":7566,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.referer",{"_index":11476,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.refid",{"_index":9991,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refownermodel",{"_index":9960,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.refpermmodel",{"_index":9993,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refreshtoken",{"_index":15494,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["this.regex",{"_index":7224,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.regexcomment",{"_index":7226,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.region",{"_index":12271,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.registerparentdata(parent",{"_index":17268,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.registerstrategy(iservstrategy",{"_index":16873,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(oidcmockstrategy",{"_index":16874,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(sanisstrategy",{"_index":16872,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.rejectconsentrequest(challenge",{"_index":15836,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.rejectloginrequest(challenge",{"_index":15986,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.rejectnothandled(card",{"_index":5650,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(column",{"_index":5649,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(columnboard",{"_index":5648,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(externaltoolelement",{"_index":5686,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(fileelement",{"_index":5656,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(linkelement",{"_index":5672,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(richtextelement",{"_index":5677,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submission",{"_index":5681,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submissioncontainerelement",{"_index":5680,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.relatedresources",{"_index":12114,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.relation.ktid",{"_index":11157,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.relation.rollen[0",{"_index":11159,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.removedeletedreferences(boardelementtargets",{"_index":2690,"title":{},"body":{"entities/Board.html":{}}}],["this.removefromposition(from",{"_index":7510,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removeprotectedentityfields(newentity",{"_index":2416,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.removeroomsnotinlist(rooms",{"_index":7511,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removesecrets(collectionname",{"_index":11772,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromstorageproviders(jsondocuments",{"_index":11847,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromsystems(jsondocuments",{"_index":11846,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.repeatcommand",{"_index":11625,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.repo.findallbyuserid(userid",{"_index":6965,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyid(courseid",{"_index":6964,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyowneruserid(userid",{"_index":10407,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbypermissionrefid(userid",{"_index":10402,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbyuserid(userid",{"_index":6804,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(coursegroups",{"_index":6807,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(courses",{"_index":6968,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.save(entities",{"_index":10406,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repos.get(type",{"_index":12150,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.boardnode",{"_index":12145,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.contextexternaltoolentity",{"_index":12147,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.course",{"_index":12129,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.coursegroup",{"_index":12131,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.lesson",{"_index":12137,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.school",{"_index":12135,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.schoolexternaltoolentity",{"_index":12143,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.submission",{"_index":12141,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.task",{"_index":12127,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.team",{"_index":12139,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.user",{"_index":12133,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.request(filespreviewevents.generate_preview",{"_index":16691,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.request(filesstorageevents.copy_files_of_parent",{"_index":10634,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.delete_files_of_parent",{"_index":10640,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.list_files_of_parent",{"_index":10637,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request.app.get('feathersapp",{"_index":9755,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["this.requestmapper.mapschoolexternaltoolrequest(body",{"_index":20740,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.requesttimeout",{"_index":20259,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["this.requesttoken",{"_index":10045,"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":15431,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.resizeandconvert(original",{"_index":16671,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.resolvepermissions(user",{"_index":16572,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(innerroles",{"_index":16571,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(user.roles.getitems",{"_index":16569,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolveplaceholder(placeholder.substring(2",{"_index":11814,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.resolverepo(objectname",{"_index":12155,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.resolvetokenrequest(responsetokenobservable",{"_index":15570,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.resource_link_id",{"_index":7147,"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":5308,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["this.resourceid",{"_index":15334,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resourcename",{"_index":15332,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resources.push(resource",{"_index":5148,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.response",{"_index":1205,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/HydraRedirectDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.responsemapper.maptoexternalgroupdtos(axiosresponse.data",{"_index":17993,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternalschooldto(axiosresponse.data",{"_index":17992,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternaluserdto(axiosresponse.data",{"_index":17990,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(createdschoolexternaltooldo",{"_index":20748,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":20738,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(updated",{"_index":20742,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptosearchlistresponse(found",{"_index":20735,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsetype",{"_index":12348,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.restartuserloginmigrationuc.restartmigration",{"_index":21107,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.resultmap.get(child.id",{"_index":17192,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.get(original.id",{"_index":17150,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.set(original.id",{"_index":17156,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.role",{"_index":2181,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/ResolvedGroupUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["this.roleid",{"_index":11307,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.roleids",{"_index":20982,"title":{},"body":{"classes/UserDto.html":{}}}],["this.rolename",{"_index":8448,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.rolenames",{"_index":12841,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.rolenames.push(...props.rolenames",{"_index":12022,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.rolerepo.findbyid(id",{"_index":17575,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbyids(ids",{"_index":17577,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbynames(names",{"_index":17579,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.roles",{"_index":7149,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["this.roles.getitems",{"_index":12165,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.isinitialized(true",{"_index":12162,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.set(props.roles",{"_index":12160,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roleservice.findbyid(groupuser.roleid",{"_index":11270,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.roleservice.findbyid(roleid",{"_index":4685,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.roleservice.findbynames([externalgroupuser.rolename",{"_index":16379,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(externaluser.roles",{"_index":16340,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(names",{"_index":17585,"title":{},"body":{"injectables/RoleUc.html":{}}}],["this.roleservice.getprotectedroles",{"_index":21619,"title":{},"body":{"injectables/UserService.html":{}}}],["this.rollbackmigration(schooldocopy",{"_index":18356,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.rollbackmigration(userdocopy",{"_index":21459,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.room",{"_index":8097,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.color",{"_index":8144,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.id",{"_index":8143,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.isfinished",{"_index":8147,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.name",{"_index":8145,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.substitutionteachers.contains(this.user",{"_index":8114,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.teachers.contains(this.user",{"_index":8113,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomid",{"_index":18878,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.roomsauthorisationservice",{"_index":8100,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.haslessonreadpermission(this.user",{"_index":8107,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.hastaskreadpermission(this.user",{"_index":8106,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsservice.updateboard(board",{"_index":17760,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.roomsservice.updateboard(originalboard",{"_index":6663,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.roomsuc.getboard(urlparams.roomid",{"_index":17706,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.reorderboardelements(urlparams.roomid",{"_index":17712,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.updatevisibilityofboardelement",{"_index":17708,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.rootpath",{"_index":12373,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.routepath",{"_index":17359,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.rulemanager.selectrule(user",{"_index":2011,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.rules",{"_index":17799,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.rules.filter((rule",{"_index":17814,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.s3clientmap.get(storageprovider.id",{"_index":8008,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.set(provider.id",{"_index":7986,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.size",{"_index":7989,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.salt",{"_index":2331,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.save(this.create(course",{"_index":6924,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this.save(this.create(lesson",{"_index":14220,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this.save(this.create(task",{"_index":19765,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.saveall([entitydo",{"_index":2399,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.school",{"_index":6543,"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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{}}}],["this.school.id",{"_index":12048,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.schoolexternaltoolid",{"_index":5749,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["this.schoolexternaltoolrepo",{"_index":12144,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolexternaltoolrepo.deletebyexternaltoolid(toolid",{"_index":9344,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.deletebyid(schoolexternaltoolid",{"_index":18216,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.find",{"_index":18209,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyexternaltoolid(toolid",{"_index":9340,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyid(schoolexternaltoolid",{"_index":18208,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.save(schoolexternaltool",{"_index":18218,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrule",{"_index":17808,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.schoolexternaltoolservice.deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18243,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.findbyid",{"_index":6077,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.schoolexternaltoolservice.findbyid(schoolexternaltoolid",{"_index":8606,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["this.schoolexternaltoolservice.findschoolexternaltools",{"_index":8586,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool",{"_index":18241,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool(updated",{"_index":18244,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltooluc.createschoolexternaltool",{"_index":20747,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.deleteschoolexternaltool(currentuser.userid",{"_index":20745,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.findschoolexternaltools(currentuser.userid",{"_index":20733,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.getschoolexternaltool",{"_index":20737,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.updateschoolexternaltool",{"_index":20741,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltoolvalidationservice.validate(schoolexternaltool",{"_index":18240,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolid",{"_index":4282,"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":4505,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.markunmigratedusersasoutdated(schoolid",{"_index":4507,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.migrateschool",{"_index":21334,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.migrateschool(data.externalschool.externalid",{"_index":16231,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.schoolmigrationservice.schooltomigrate",{"_index":16228,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.unmarkoutdatedusers(schoolid",{"_index":14116,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolmigrationservice.validategraceperiod(existinguserloginmigration",{"_index":14112,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.schoolname",{"_index":18286,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.schoolnumber_prefix_regex",{"_index":18025,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.schoolparameters",{"_index":12177,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.schoolrepo",{"_index":12136,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolrepo.findbyexternalid(externalid",{"_index":14089,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(id",{"_index":14088,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(schoolid",{"_index":13813,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyschoolnumber(school.officialschoolnumber",{"_index":18437,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.schoolrepo.findbyschoolnumber(schoolnumber",{"_index":14090,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.save(school",{"_index":14087,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrule.haspermission(user",{"_index":23703,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschool(params.schoolid",{"_index":23687,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschoolbyexternalid",{"_index":16325,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.schoolservice.getschoolbyid(ldapuser.schoolid",{"_index":13115,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.schoolservice.getschoolbyid(pseudonymuser.school.id",{"_index":17042,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.schoolservice.getschoolbyid(schoolexternaltool.schoolid",{"_index":322,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.schoolservice.getschoolbyid(schoolid",{"_index":11224,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.getschoolbyid(userdo.schoolid",{"_index":18358,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber",{"_index":18360,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber(officialschoolnumber",{"_index":14821,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["this.schoolservice.removefeature(schoolid",{"_index":21278,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.removefeature(userloginmigration.schoolid",{"_index":21235,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.schoolservice.save(originalschooldo",{"_index":18386,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.save(school",{"_index":16337,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.save(schooldo",{"_index":18385,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schooltool",{"_index":5785,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.schooltoolid",{"_index":5942,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["this.schooltoolref",{"_index":5713,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.schooluc.getmigration(schoolparams.schoolid",{"_index":13959,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schooluc.setmigration",{"_index":13952,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schoolvalidationservice.validate(school",{"_index":14091,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolyear",{"_index":4338,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.schoolyearrepo.findbyid(id",{"_index":18456,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearrepo.findcurrentyear",{"_index":18455,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearservice.findbyid(clazz.year",{"_index":11246,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.schoolyearservice.getcurrentschoolyear",{"_index":16332,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.scope",{"_index":7222,"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/SystemEntity.html":{}}}],["this.searchbyusername(username",{"_index":930,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.searchuser",{"_index":12375,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.searchuserpassword",{"_index":12377,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.secret",{"_index":7139,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.secretaccesskey",{"_index":12269,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.secretvalue",{"_index":1785,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.securitycheck",{"_index":9953,"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":10068,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.requesttoken",{"_index":10070,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.status",{"_index":10067,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.updatedat",{"_index":10069,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheckstatus",{"_index":6200,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.selectconfigureaction(newconfigs",{"_index":13429,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.sendhttpresponse(error",{"_index":10825,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.service.createteam(team",{"_index":4708,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.deleteteam(teamid",{"_index":4707,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteam(team",{"_index":4709,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteampermissionsforrole",{"_index":4703,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.sessionhandler(session",{"_index":16161,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.setmatch(props.user",{"_index":12027,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.share",{"_index":20094,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["this.sharetokenrepo.findonebytoken(token",{"_index":18777,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokenrepo.save(sharetoken",{"_index":18776,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokens",{"_index":9955,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.sharetokenservice.createtoken(payload",{"_index":18825,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptoken(token",{"_index":18830,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptokenwithparentname(token",{"_index":18826,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenuc.createsharetoken",{"_index":18651,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.importsharetoken",{"_index":18664,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.lookupsharetoken(currentuser.userid",{"_index":18660,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.shorttitle",{"_index":6826,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.shouldskipconsent(tool",{"_index":15995,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.size",{"_index":6198,"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":16511,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.skipconsent",{"_index":7166,"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":3054,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.source",{"_index":4298,"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":6873,"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":6179,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.sourceoptions",{"_index":4300,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.sourcesystem",{"_index":21155,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.sourcesystemid",{"_index":21130,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.stack",{"_index":8746,"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/TooManyPseudonymsLoggableException.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":6553,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UsersList.html":{}}}],["this.startedat",{"_index":21136,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.startuserloginmigrationuc.startmigration",{"_index":21103,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.state",{"_index":8025,"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":2037,"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":1202,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.statustext",{"_index":2039,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.storageclient.create(previewfilepath",{"_index":16674,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.deletedirectory(path",{"_index":16720,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(path",{"_index":10772,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.storageclient.get(pathtofile",{"_index":16676,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.get(previewfilepath",{"_index":16728,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storagefilename",{"_index":9945,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageprovider",{"_index":9947,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageproviderrepo.findall",{"_index":7984,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.strategies",{"_index":20587,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(externaltool.config.type",{"_index":20597,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(systemstrategy",{"_index":16883,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.get(toolconfigtype",{"_index":20592,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(strategy.gettype",{"_index":16875,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.set(toolconfigtype.basic",{"_index":20588,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.lti11",{"_index":20589,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.oauth2",{"_index":20590,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategy",{"_index":4555,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.createteam(team",{"_index":4558,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.deleteteam(teamid",{"_index":4557,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteam(team",{"_index":4559,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteampermissionsforrole(this.mapper.mapdomaintoadapter(team",{"_index":4556,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.stringifiedmessage(message",{"_index":13906,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.stringifymessage(message",{"_index":14461,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["this.student",{"_index":12280,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.student.id",{"_index":12314,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.students",{"_index":6762,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getidentifiers('_id",{"_index":6764,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getitems",{"_index":6572,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.students.remove((u",{"_index":6767,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.set(props.students",{"_index":6545,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.subjects",{"_index":12116,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.submissionitemservice.create(userid",{"_index":8254,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.submissionitemservice.findbyid(submissionitemid",{"_index":19131,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemservice.update(submissionitem",{"_index":19132,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemsresponse",{"_index":19255,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["this.submissionitemuc.findsubmissionitems",{"_index":3742,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.updatesubmissionitem",{"_index":3748,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionrepo",{"_index":12142,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.submissionrepo.delete(submission",{"_index":19216,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findallbytaskids([taskid",{"_index":19214,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findbyid(submissionid",{"_index":19213,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrule",{"_index":17807,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.submissions",{"_index":12475,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.getitems",{"_index":12478,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.isinitialized(true",{"_index":12476,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.set(props.submissions",{"_index":12469,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissionservice.delete(submission",{"_index":19243,"title":{},"body":{"injectables/SubmissionUc.html":{},"injectables/TaskService.html":{}}}],["this.submissionservice.findallbytask(taskid",{"_index":19238,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionservice.findbyid(submissionid",{"_index":19241,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionuc.delete(currentuser.userid",{"_index":19019,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submissionuc.findallbytask(currentuser.userid",{"_index":19012,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submitted",{"_index":3788,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.submitters",{"_index":19220,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.submittingcoursegroupname",{"_index":19221,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.substitutionteachers.contains(user",{"_index":6582,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.getitems",{"_index":6578,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.remove((u",{"_index":6602,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.set(props.substitutionteachers",{"_index":6547,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.successful",{"_index":19261,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["this.successor",{"_index":4296,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.system",{"_index":8471,"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/ExternalSourceResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.systemoidcservice.findall",{"_index":13427,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.systemrepo.findall",{"_index":19477,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oauth",{"_index":19474,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oidc",{"_index":19425,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(type",{"_index":19476,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(id",{"_index":19421,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemdto.id",{"_index":19481,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemid",{"_index":13812,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.systemrepo.save(system",{"_index":19489,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systems",{"_index":13982,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["this.systems.set(props.systems",{"_index":12216,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.systemservice.findbyid(id",{"_index":19508,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemservice.findbyid(sourceid",{"_index":21437,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbyid(systemid",{"_index":11265,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{}}}],["this.systemservice.findbyid(targetid",{"_index":21438,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbytype(systemtypeenum.oauth",{"_index":19506,"title":{},"body":{"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.systemservice.findbytype(type",{"_index":19507,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemuc.findbyfilter(filterparams.type",{"_index":19306,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.systemuc.findbyid(params.systemid",{"_index":19311,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.tags",{"_index":12118,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.target",{"_index":15013,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetgroups",{"_index":12120,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.targetid",{"_index":15012,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.targetmodel",{"_index":6883,"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":21157,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.targetsystemid",{"_index":21132,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.task",{"_index":12284,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.taskcopyservice.copytask",{"_index":3058,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.taskcopyuc.copytask",{"_index":19588,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskrepo",{"_index":12128,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.taskrepo.createtask(taskcopy",{"_index":19618,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.delete(task",{"_index":19927,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.findallbyparentids",{"_index":19995,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findallfinishedbyparentids",{"_index":19977,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findbyid(params.originaltaskid",{"_index":19608,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.findbyid(taskid",{"_index":19654,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrepo.findbysingleparent",{"_index":19668,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.taskrepo.findbysingleparent(creatorid",{"_index":19924,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.save(task",{"_index":19622,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrule",{"_index":17803,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.taskrule.haspermission(user",{"_index":19198,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.tasks.getitems",{"_index":11898,"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":11896,"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":20021,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18785,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.taskservice.findbysingleparent(userid",{"_index":5056,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{}}}],["this.taskuc.changefinishedforuser(currentuser.userid",{"_index":19583,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.delete(currentuser.userid",{"_index":19590,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findall(currentuser.userid",{"_index":19577,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findallfinished(currentuser.userid",{"_index":19576,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.revertpublished(currentuser.userid",{"_index":19586,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.teacherids",{"_index":4286,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.teachers",{"_index":4336,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.teachers.getitems",{"_index":6576,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.remove((u",{"_index":6600,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.set(props.teachers",{"_index":6546,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teamid",{"_index":3894,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.teammembers",{"_index":12298,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.getidentifiers('_id",{"_index":12301,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.set(props.teammembers",{"_index":12293,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teamname",{"_index":20111,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["this.teamrule",{"_index":17804,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.teamsmapper.mapentitytodto(await",{"_index":4678,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo",{"_index":12140,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.teamsrepo.findbyid(teamid",{"_index":4679,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo.findbyuserid(userid",{"_index":12640,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/TeamService.html":{}}}],["this.teamsrepo.save(teams",{"_index":20134,"title":{},"body":{"injectables/TeamService.html":{}}}],["this.teamstorageuc.updateuserpermissionsforrole(currentuser.userid",{"_index":4630,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.teamsubmissions",{"_index":12473,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.teamusers",{"_index":20039,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.text",{"_index":17480,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.throwifnotmoderator(bbbrole",{"_index":21809,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.thumbnail",{"_index":9948,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.thumbnailrequesttoken",{"_index":9951,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.timeout",{"_index":17784,"title":{},"body":{"classes/RpcMessageProducer.html":{},"todo.html":{}}}],["this.timeout(10000",{"_index":23371,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["this.timeoutms",{"_index":3933,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.timestamps",{"_index":3704,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.timetowait",{"_index":3803,"title":{},"body":{"classes/BruteForceError.html":{}}}],["this.title",{"_index":2747,"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":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.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":7482,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.toggleuserloginmigrationuc.setmigrationmandatory",{"_index":21109,"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":12343,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.tokenendpointauthmethod",{"_index":15523,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.tokengenerator.generatesharetoken",{"_index":18773,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.tokenurl",{"_index":12410,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.tool",{"_index":12175,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.toolfeatures.backendurl",{"_index":8792,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolfeatures.contextconfigurationenabled",{"_index":8543,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["this.toolfeatures.ctltoolstabenabled",{"_index":15959,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.toolfeatures.maxexternaltoollogosizeinbytes",{"_index":8800,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolid",{"_index":8929,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["this.toollaunchservice.generatelaunchrequest(toollaunchdata",{"_index":20609,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchservice.getlaunchdata(userid",{"_index":20608,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchuc.gettoollaunchrequest",{"_index":20506,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions",{"_index":20710,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions(userid",{"_index":6082,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.toolpermissionhelper.ensureschoolpermissions(userid",{"_index":8607,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.toolreferenceservice.gettoolreference",{"_index":20709,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolreferenceuc.gettoolreference",{"_index":20657,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolreferenceuc.gettoolreferencesforcontext",{"_index":20660,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolvalidationservice.validatecreate(externaltool",{"_index":9409,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolvalidationservice.validateupdate(toolid",{"_index":9411,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolversion",{"_index":5721,"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":2301,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.total",{"_index":16457,"title":{},"body":{"classes/Page.html":{},"classes/PaginationResponse.html":{}}}],["this.tovideoconferencestateresponse(videoconferenceinfo.state",{"_index":21955,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["this.trybuildtoolreference(userid",{"_index":20703,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.trygetprevieworgenerate(previewfileparams",{"_index":16717,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.tspuid",{"_index":4452,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["this.type",{"_index":2578,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BusinessError.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.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":{},"classes/GroupResponse.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.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/ResolvedGroupDto.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/ToolLaunchData.html":{}}}],["this.uc.getpagecontent",{"_index":21384,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.until",{"_index":8438,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.untildate",{"_index":6551,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.updatecopiedembeddedtasksoflessons(status",{"_index":3026,"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/FederalStateEntity.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":2405,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.updateexistinggridelement(existing",{"_index":7696,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.updateexistingmigration(existinguserloginmigration",{"_index":21281,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.updatefileurls(taskcopy",{"_index":19611,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.updateidentityprovider(configureaction.config",{"_index":13434,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updateoauth2toolconfig(toupdate",{"_index":9323,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateoauthclientorthrow(loadedoauthclient",{"_index":9351,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateorcreateidpdefaultmapper(oidcconfig.idphint",{"_index":13462,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updater",{"_index":15014,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.updateteamusersingroup(groupid",{"_index":15271,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.url",{"_index":6196,"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":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["this.usecentralldap",{"_index":18292,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.user",{"_index":7574,"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":{},"classes/ResolvedGroupUser.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.userdorepo.find(query",{"_index":21616,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyexternalid(externalid",{"_index":21617,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyid(id",{"_index":21612,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.save(user",{"_index":21613,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.saveall(users",{"_index":21615,"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/PseudonymResponse.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.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":4285,"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":12815,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.findallimportusers(currentuser.userid",{"_index":12792,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.removematch(currentuser.userid",{"_index":12801,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.saveallusersmatches(currentuser.userid",{"_index":12811,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.setmatch(currentuser.userid",{"_index":12797,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.startschoolinusermigration(currentuser.userid",{"_index":12813,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.updateflag(currentuser.userid",{"_index":12802,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userinfourl",{"_index":12413,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.userloginmigration",{"_index":12218,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.userloginmigrationid",{"_index":13984,"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":21297,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid",{"_index":14823,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid(schoolid",{"_index":18366,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigration",{"_index":21275,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigrationdo",{"_index":21280,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrevertservice.revertuserloginmigration(updateduserloginmigration",{"_index":4506,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationrule",{"_index":17811,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.userloginmigrationservice.closemigration",{"_index":4503,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.deleteuserloginmigration(userloginmigration",{"_index":21236,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool",{"_index":4495,"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":14111,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyuser",{"_index":21316,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.restartmigration(schoolid",{"_index":17442,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.setmigration",{"_index":14113,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.setmigrationmandatory(schoolid",{"_index":20274,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.startmigration(schoolid",{"_index":18910,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationuc.finduserloginmigrationbyschool",{"_index":21100,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.getmigrations",{"_index":21094,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.migrate(jwt",{"_index":21114,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.usermatchschoolid",{"_index":18274,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.usermigrationservice.getmigrationconsentpageredirect",{"_index":15440,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.usermigrationservice.getpagecontent",{"_index":21313,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.usermigrationservice.migrateuser",{"_index":16232,"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":12134,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.userrepo.deleteuser(userid",{"_index":21629,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyemail(email",{"_index":1131,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/UserService.html":{}}}],["this.userrepo.findbyid(accountuserid",{"_index":14402,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.userrepo.findbyid(id",{"_index":21607,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyid(userid",{"_index":2018,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/CourseCopyService.html":{},"injectables/LdapStrategy.html":{},"injectables/RoomsUc.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrepo.save(user",{"_index":21626,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrule",{"_index":17805,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.users",{"_index":8434,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/SubmissionsResponse.html":{}}}],["this.users.find((u",{"_index":10931,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.users.push(user",{"_index":10934,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.userservice.findbyemail(email",{"_index":13127,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid",{"_index":13108,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid(externalgroupuser.externaluserid",{"_index":16378,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluser.externalid",{"_index":16342,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluserid",{"_index":14824,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyid(currentuserid",{"_index":15994,"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(groupuser.userid",{"_index":11269,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.userservice.findbyid(loadedpseudonym.userid",{"_index":9684,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(props.userid",{"_index":4745,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.userservice.findbyid(teacherid",{"_index":11244,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.userservice.findbyid(teamuser.userid",{"_index":15291,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.userservice.findbyid(user.id",{"_index":9702,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(userid",{"_index":12641,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userservice.findusers",{"_index":18369,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.getdisplayname(user",{"_index":12642,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.userservice.getresolveduser(userid",{"_index":16234,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.userservice.save(newuser",{"_index":23679,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.userservice.save(user",{"_index":16355,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.save(userdo",{"_index":21465,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.save(userdocopy",{"_index":21460,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.saveall(migratedusers.data",{"_index":18380,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.saveall(notmigratedusers.data",{"_index":18374,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.useruc.findallunmatchedusers(currentuser.userid",{"_index":12806,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.useruc.me(currentuser.userid",{"_index":20837,"title":{},"body":{"controllers/UserController.html":{}}}],["this.useruc.patchlanguage(currentuser.userid",{"_index":20841,"title":{},"body":{"controllers/UserController.html":{}}}],["this.validate(props",{"_index":4280,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.validateandgetexternaltool(oauth2clientid",{"_index":9688,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatecontextexternaltools(courseid",{"_index":9694,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatelti11config(externaltool",{"_index":9449,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateoauth2config(externaltool",{"_index":9448,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateparameter(param",{"_index":5412,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.validatereordering(ids",{"_index":2671,"title":{},"body":{"entities/Board.html":{}}}],["this.validaterocketchatconfig",{"_index":1280,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.validateschoolexternaltool(course.school.id",{"_index":9693,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatestatus",{"_index":11450,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.validatesubject(currentuser",{"_index":15831,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.validatetoken(oauthtokens.idtoken",{"_index":15432,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.validateusersmatch(dashboard",{"_index":7780,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.validationerrors.push(new",{"_index":1453,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.validperiod",{"_index":11047,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.value",{"_index":7181,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/LtiToolDO.html":{},"classes/PropertyData.html":{}}}],["this.verifyfeaturesenabled(user.schoolid",{"_index":21804,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.version",{"_index":5755,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.versionkey",{"_index":9969,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.videoconferencecreateuc.createifnotrunning(currentuser.userid",{"_index":21748,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceenduc.end(currentuser.userid",{"_index":21757,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceinfouc.getmeetinginfo(currentuser.userid",{"_index":21753,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencejoinuc.join(currentuser.userid",{"_index":21750,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceservice.canguestjoin(isguest",{"_index":21904,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.createorupdatevideoconferenceforscopewithoptions(scope.id",{"_index":21810,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.determinebbbrole",{"_index":21807,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.determinebbbrole(userid",{"_index":21879,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.findvideoconferencebyscopeidandscope",{"_index":21908,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(currentuserid",{"_index":21805,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(userid",{"_index":21878,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.getuserroleandgueststatusbyuseridforbbb",{"_index":21920,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.hasexpertrole",{"_index":21903,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.loadscoperessources(scopeid",{"_index":21803,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.sanitizestring(`${user.firstname",{"_index":21922,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.sanitizestring(scopeinfo.title",{"_index":21814,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(schoolid",{"_index":21820,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(user.schoolid",{"_index":21877,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceuc.create(currentuser",{"_index":21860,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.end(currentuser",{"_index":21869,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.getmeetinginfo(currentuser",{"_index":21857,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.join(currentuser",{"_index":21864,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.visibilitysettings",{"_index":4079,"title":{},"body":{"classes/CardResponse.html":{}}}],["this.visitchildren(card",{"_index":17281,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(column",{"_index":17279,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(columnboard",{"_index":17277,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(externaltoolelement",{"_index":17302,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(fileelement",{"_index":17284,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(linkelement",{"_index":17287,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(richtextelement",{"_index":17290,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submission",{"_index":17298,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submissioncontainerelement",{"_index":17293,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildrenasync(card",{"_index":17221,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(column",{"_index":17219,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(columnboard",{"_index":17217,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(externaltoolelement",{"_index":17236,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(fileelement",{"_index":17224,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(linkelement",{"_index":17226,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(richtextelement",{"_index":17228,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submission",{"_index":17232,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submissioncontainerelement",{"_index":17230,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenof(original",{"_index":17152,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.welcome",{"_index":2099,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.write",{"_index":9996,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.xmlbuilder",{"_index":5136,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject",{"_index":5153,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject(commonobject",{"_index":5218,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.xpos",{"_index":7564,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.xposition",{"_index":7598,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.year",{"_index":4291,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.ypos",{"_index":7565,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.yposition",{"_index":7599,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.zipbuilder",{"_index":5144,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile('imsmanifest.xml",{"_index":5160,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile(props.href",{"_index":5141,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.tobufferpromise",{"_index":5162,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this['meta_bbb",{"_index":2109,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["those",{"_index":22409,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["though",{"_index":22604,"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":15592,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["threads_enabled=false",{"_index":23611,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["three",{"_index":22519,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thresholddate",{"_index":7930,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["thresholddate.setdate(thresholddate.getdate",{"_index":7931,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["through",{"_index":22374,"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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.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":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnResponseMapper.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.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":{},"injectables/FeathersRosterService.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":{},"controllers/FwuLearningContentsController.html":{},"classes/GridElement.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonRule.html":{},"injectables/LocalStrategy.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/OpenGraphProxyService.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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/SubmissionRule.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":{},"injectables/ToolPermissionHelper.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["throwerror",{"_index":17390,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["throwifnotmoderator",{"_index":21781,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwifnotmoderator(role",{"_index":21793,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwing",{"_index":23749,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["thrown",{"_index":11351,"title":{},"body":{"classes/GuardAgainst.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["throws",{"_index":2299,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{}}}],["thumbnail",{"_index":9881,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thumbnailrequesttoken",{"_index":9882,"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":1965,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"classes/RpcMessageProducer.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ticketsystem.dbildungscloud.de",{"_index":22238,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["time",{"_index":1770,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"injectables/JwtValidationAdapter.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"dependencies.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["timedifference",{"_index":1760,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["timeout",{"_index":3937,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/FilesStorageProducer.html":{},"modules/InterceptorModule.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"injectables/TimeoutInterceptor.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timeout(timeoutvalue",{"_index":20258,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeouterror",{"_index":20253,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor",{"_index":13047,"title":{"injectables/TimeoutInterceptor.html":{}},"body":{"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor(timeout",{"_index":13049,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["timeoutms",{"_index":3921,"title":{},"body":{"injectables/CalendarService.html":{}}}],["timeouts",{"_index":23376,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["timeoutvalue",{"_index":20254,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timer",{"_index":17913,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["times",{"_index":2147,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["timestamp",{"_index":15016,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timestamps",{"_index":3694,"title":{},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":3702,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["timestampsresponse",{"_index":3698,"title":{"classes/TimestampsResponse.html":{}},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":1765,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["timouts",{"_index":23364,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tiny",{"_index":22189,"title":{},"body":{"dependencies.html":{}}}],["title",{"_index":1397,"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":{},"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":{},"injectables/ContentElementFactory.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":{},"entities/LessonEntity.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PatchGroupParams.html":{},"classes/RecursiveCopyVisitor.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/TooManyPseudonymsLoggableException.html":{},"classes/UpdateNewsParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/UsersList.html":{},"classes/ValidationError.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":3958,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{}}}],["title(value",{"_index":14329,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["titlea",{"_index":7467,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titleb",{"_index":7469,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titlemap",{"_index":4806,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["titlesmap",{"_index":3360,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["titlesmap[id",{"_index":4903,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["tls",{"_index":7994,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["tmp/config/users",{"_index":23551,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms",{"_index":23560,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"powershell",{"_index":23521,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"setup",{"_index":23522,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"to",{"_index":22959,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["tmpdirpath",{"_index":10337,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["toarray",{"_index":5083,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/DatabaseManagementService.html":{}}}],["toboardid",{"_index":14920,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["tocardid",{"_index":14924,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["tocolumnid",{"_index":14914,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["todo",{"_index":1852,"title":{"todo.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationReferenceModule.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":{},"injectables/ColumnBoardCopyService.html":{},"modules/CommonToolModule.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":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"injectables/RecursiveDeleteVisitor.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":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.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":{},"classes/UsersList.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["todos",{"_index":23737,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["together",{"_index":10687,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["toggleuserloginmigrationuc",{"_index":20266,"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":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"controllers/FileSecurityController.html":{},"interfaces/IShareTokenProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/JwtExtractor.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginResponse.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":18626,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.body.params.ts",{"_index":18601,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:13",{"_index":18610,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:21",{"_index":18608,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:32",{"_index":18606,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:41",{"_index":18613,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.controller",{"_index":18865,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.controller.ts",{"_index":18620,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:40",{"_index":18629,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:67",{"_index":18643,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:86",{"_index":18639,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.do",{"_index":12257,"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":18682,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.factory.ts:9",{"_index":18685,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.ts",{"_index":18669,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:27",{"_index":18675,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:29",{"_index":18674,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:31",{"_index":18672,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:33",{"_index":18670,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.dto.ts",{"_index":15487,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:2",{"_index":15490,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:4",{"_index":15491,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:6",{"_index":15489,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.entity",{"_index":18732,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.entity.ts",{"_index":12251,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["token.entity.ts:19",{"_index":18598,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:22",{"_index":18597,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:25",{"_index":18594,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:32",{"_index":18595,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:35",{"_index":18593,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:43",{"_index":18596,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.repo",{"_index":18772,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.repo.ts",{"_index":18723,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:17",{"_index":18726,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:9",{"_index":18730,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.request.ts",{"_index":1517,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:10",{"_index":1526,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:12",{"_index":1522,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:4",{"_index":1523,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:6",{"_index":1524,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:8",{"_index":1527,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.response.ts",{"_index":16195,"title":{},"body":{"interfaces/OauthTokenResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["token.response.ts:12",{"_index":18747,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:15",{"_index":18746,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:18",{"_index":18745,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:4",{"_index":18744,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.service",{"_index":15829,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["token.service.ts",{"_index":12621,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:12",{"_index":12627,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:16",{"_index":18762,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:20",{"_index":12631,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:25",{"_index":18766,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:41",{"_index":12629,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:42",{"_index":18768,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:50",{"_index":18770,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:51",{"_index":12633,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:70",{"_index":18764,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.ts",{"_index":11060,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{}}}],["token.uc.ts",{"_index":18787,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:131",{"_index":18802,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:139",{"_index":18803,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:150",{"_index":18805,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:166",{"_index":18801,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:192",{"_index":18795,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:204",{"_index":18797,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:225",{"_index":18813,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:231",{"_index":18799,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:24",{"_index":18793,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:39",{"_index":18807,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:67",{"_index":18811,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:89",{"_index":18809,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.url.params.ts",{"_index":18856,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token.url.params.ts:11",{"_index":18858,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token_endpoint_auth_method",{"_index":9371,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["token_type",{"_index":13055,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["token_use",{"_index":13056,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["tokenauthmethod",{"_index":15612,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokendto",{"_index":15452,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.accesstoken",{"_index":15513,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.idtoken",{"_index":15512,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokenendpoint",{"_index":11572,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["tokenendpointauthmethod",{"_index":7267,"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":7285,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["tokengenerator",{"_index":18761,"title":{"injectables/TokenGenerator.html":{}},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/TokenGenerator.html":{}}}],["tokenrequestmapper",{"_index":15423,"title":{"classes/TokenRequestMapper.html":{}},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["tokenrequestmapper.createauthenticationcodegranttokenrequestpayload",{"_index":15485,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestmapper.maptokenresponsetodto(responsetoken",{"_index":15453,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestpayload",{"_index":15484,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokens",{"_index":15605,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokenurl",{"_index":12418,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["took",{"_index":18376,"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":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"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":{},"controllers/PseudonymController.html":{},"classes/PseudonymScope.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tool'})@apifoundresponse({description",{"_index":20336,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tool'})@apiokresponse({description",{"_index":20647,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tool'})@isstring()@isoptional",{"_index":9268,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["tool.'})@apiokresponse({description",{"_index":20452,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool.config",{"_index":16000,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.config.clientid",{"_index":9332,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.config.skipconsent",{"_index":16001,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.do.ts",{"_index":5696,"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":5707,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:23",{"_index":18079,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:24",{"_index":5703,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:25",{"_index":18082,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:26",{"_index":5704,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:27",{"_index":18081,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:28",{"_index":5705,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:29",{"_index":18080,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:30",{"_index":5702,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{}}}],["tool.do.ts:31",{"_index":18083,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:32",{"_index":8488,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:33",{"_index":18078,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:34",{"_index":8485,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:36",{"_index":8484,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:38",{"_index":8482,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:40",{"_index":8487,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:41",{"_index":5709,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:42",{"_index":8483,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:44",{"_index":8486,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:45",{"_index":18084,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:46",{"_index":8481,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:62",{"_index":8489,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:66",{"_index":8493,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:70",{"_index":8491,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.entity",{"_index":8661,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["tool.entity.ts",{"_index":5770,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:13",{"_index":8690,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:16",{"_index":8693,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:17",{"_index":18090,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:19",{"_index":8688,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:20",{"_index":18088,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:22",{"_index":8687,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:23",{"_index":18089,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:24",{"_index":5779,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:25",{"_index":8685,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:26",{"_index":18091,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:27",{"_index":5772,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:28",{"_index":8692,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:30",{"_index":5774,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:31",{"_index":8686,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:33",{"_index":5775,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:34",{"_index":8691,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:36",{"_index":5777,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:37",{"_index":8694,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:39",{"_index":5780,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.factory.ts",{"_index":5793,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:100",{"_index":8724,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:107",{"_index":8723,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:29",{"_index":15539,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["tool.factory.ts:65",{"_index":7265,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["tool.factory.ts:7",{"_index":18096,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:86",{"_index":8726,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:9",{"_index":5796,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["tool.factory.ts:93",{"_index":8725,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.id",{"_index":8540,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["tool.ishidden",{"_index":8537,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tool.logo",{"_index":8815,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["tool.module",{"_index":20317,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool.module.ts",{"_index":5338,"title":{},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/LtiToolModule.html":{},"modules/SchoolExternalToolModule.html":{}}}],["tool.name",{"_index":9337,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.oauthclientid",{"_index":11552,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.repo.mapper.ts",{"_index":9022,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:107",{"_index":9034,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:114",{"_index":9054,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:123",{"_index":9050,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:136",{"_index":9046,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:154",{"_index":9039,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:17",{"_index":9048,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:172",{"_index":9044,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:182",{"_index":9041,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:48",{"_index":9037,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:55",{"_index":9057,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:64",{"_index":9052,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:77",{"_index":9047,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.ts",{"_index":5839,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:114",{"_index":5859,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:125",{"_index":5857,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:14",{"_index":8996,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:19",{"_index":9008,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:24",{"_index":18134,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:25",{"_index":5844,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:27",{"_index":9003,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:30",{"_index":5871,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:32",{"_index":18130,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:36",{"_index":9001,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:38",{"_index":5850,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:41",{"_index":18132,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:45",{"_index":5854,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:50",{"_index":18126,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:54",{"_index":8999,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:55",{"_index":18128,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:64",{"_index":18123,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:70",{"_index":5847,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.response",{"_index":6020,"title":{},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{}}}],["tool.response.ts",{"_index":5930,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:10",{"_index":5939,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:13",{"_index":5933,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:16",{"_index":5934,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:19",{"_index":5935,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:22",{"_index":5938,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:25",{"_index":5940,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:28",{"_index":5932,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:31",{"_index":9210,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["tool.response.ts:7",{"_index":5936,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.rule.ts",{"_index":5983,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:12",{"_index":5986,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:18",{"_index":5985,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:9",{"_index":5984,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.scope",{"_index":5877,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.scope.ts",{"_index":5990,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:12",{"_index":9258,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:13",{"_index":18185,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:15",{"_index":6011,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:19",{"_index":9260,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:22",{"_index":6005,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:30",{"_index":6007,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:5",{"_index":9262,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:6",{"_index":18184,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:7",{"_index":6009,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.secret",{"_index":11553,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.service",{"_index":6106,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["tool.service.ts",{"_index":5345,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{},"injectables/LtiToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:10",{"_index":5349,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:103",{"_index":9292,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:11",{"_index":6036,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:118",{"_index":9305,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:131",{"_index":9309,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:143",{"_index":9288,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:16",{"_index":9286,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:17",{"_index":6034,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:22",{"_index":18205,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:23",{"_index":6038,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:26",{"_index":5354,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:28",{"_index":9290,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:29",{"_index":6028,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:32",{"_index":18202,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:39",{"_index":6030,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:40",{"_index":18200,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:43",{"_index":6032,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:44",{"_index":9302,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:51",{"_index":9299,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:52",{"_index":18198,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:6",{"_index":14740,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:60",{"_index":18196,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:64",{"_index":18207,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:78",{"_index":9293,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:8",{"_index":6026,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:9",{"_index":14742,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:93",{"_index":9295,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:98",{"_index":9297,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.skipconsent",{"_index":15999,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.types",{"_index":5874,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool.uc.ts",{"_index":6049,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:10",{"_index":9393,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:101",{"_index":6069,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:11",{"_index":18227,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:115",{"_index":6067,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:124",{"_index":6065,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:18",{"_index":9395,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:19",{"_index":6058,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:28",{"_index":6060,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:30",{"_index":18229,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:31",{"_index":9405,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:47",{"_index":18232,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:52",{"_index":9401,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:56",{"_index":6071,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:59",{"_index":18231,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:63",{"_index":9403,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:70",{"_index":9397,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:71",{"_index":18236,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:77",{"_index":9399,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:79",{"_index":18238,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:92",{"_index":6062,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/context",{"_index":5818,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["tool/controller",{"_index":20309,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/controller/dto",{"_index":5837,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["tool/controller/dto/context",{"_index":5758,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/custom",{"_index":7253,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{}}}],["tool/controller/dto/request/config/basic",{"_index":2581,"title":{},"body":{"classes/BasicToolConfigParams.html":{}}}],["tool/controller/dto/request/config/external",{"_index":8500,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["tool/controller/dto/request/config/lti11",{"_index":14579,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/config/oauth2",{"_index":15527,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/context",{"_index":5805,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{}}}],["tool/controller/dto/request/custom",{"_index":7323,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["tool/controller/dto/request/external",{"_index":8615,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SortExternalToolParams.html":{}}}],["tool/controller/dto/request/school",{"_index":18101,"title":{},"body":{"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{}}}],["tool/controller/dto/response/config/basic",{"_index":2591,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/external",{"_index":8506,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/lti11",{"_index":14598,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/oauth2",{"_index":15540,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["tool/controller/dto/response/context",{"_index":5730,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/custom",{"_index":7347,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["tool/controller/dto/response/external",{"_index":9209,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/response/school",{"_index":18086,"title":{},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/school",{"_index":18100,"title":{},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["tool/controller/dto/tool",{"_index":18159,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["tool/controller/tool",{"_index":20310,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/tool.controller.ts",{"_index":20429,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:101",{"_index":20449,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:120",{"_index":20458,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:142",{"_index":20442,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:160",{"_index":20454,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:53",{"_index":20435,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:73",{"_index":20446,"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/ContextExternalToolUc.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":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.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/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["tool/domain/config/basic",{"_index":2560,"title":{},"body":{"classes/BasicToolConfig.html":{}}}],["tool/domain/config/external",{"_index":8498,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["tool/domain/config/lti11",{"_index":14570,"title":{},"body":{"classes/Lti11ToolConfig.html":{}}}],["tool/domain/config/oauth2",{"_index":15517,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["tool/domain/context",{"_index":5695,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{}}}],["tool/domain/external",{"_index":8478,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["tool/domain/school",{"_index":18076,"title":{},"body":{"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["tool/domain/tool",{"_index":20631,"title":{},"body":{"classes/ToolReference.html":{}}}],["tool/entity",{"_index":5782,"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":{},"classes/RecursiveSaveVisitor.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool/entity/config/basic",{"_index":2571,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["tool/entity/config/external",{"_index":8503,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["tool/entity/config/lti11",{"_index":14591,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["tool/entity/config/oauth2",{"_index":15535,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["tool/entity/context",{"_index":5769,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["tool/entity/custom",{"_index":7231,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["tool/entity/external",{"_index":8681,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool/entity/school",{"_index":12172,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool/external",{"_index":8842,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["tool/loggable/external",{"_index":8737,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["tool/lti",{"_index":14686,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["tool/mapper",{"_index":20313,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/mapper/context",{"_index":5909,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["tool/mapper/external",{"_index":9107,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["tool/mapper/school",{"_index":18147,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["tool/mapper/tool",{"_index":20360,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["tool/school",{"_index":18107,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["tool/service",{"_index":6074,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.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/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["tool/service/context",{"_index":5724,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["tool/service/external",{"_index":8510,"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":14738,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool/service/school",{"_index":18187,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["tool/service/tool",{"_index":20684,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["tool/uc",{"_index":20312,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/uc/context",{"_index":6048,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/uc/dto/context",{"_index":5873,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool/uc/dto/school",{"_index":18135,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool/uc/external",{"_index":8558,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool/uc/school",{"_index":18221,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool/uc/tool",{"_index":20689,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tool1",{"_index":5355,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool1.getversion",{"_index":5360,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2",{"_index":5353,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2.getversion",{"_index":5361,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool_clientid_duplicate",{"_index":9463,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientid_immutable",{"_index":9459,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientsecret_missing",{"_index":9461,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_param_auto_requires_global",{"_index":8889,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_regex",{"_index":8899,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_required",{"_index":8886,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_duplicate",{"_index":5404,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regex_invalid",{"_index":8896,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regexcomment",{"_index":8893,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_required",{"_index":5418,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_param_type_mismatch",{"_index":5421,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_value_regex",{"_index":5426,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_secret_missing",{"_index":9464,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_status_outdated",{"_index":20751,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["tool_type_immutable",{"_index":9455,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_version_mismatch",{"_index":18256,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["tool_with_name_exists",{"_index":6122,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["toolapimodule",{"_index":18509,"title":{"modules/ToolApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["toolconfigmodule",{"_index":8836,"title":{"modules/ToolConfigModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolconfigtype",{"_index":2565,"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":2568,"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":7293,"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":7289,"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":20533,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping[configtype",{"_index":20541,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfiguration",{"_index":12568,"title":{"classes/ToolConfiguration.html":{}},"body":{"interfaces/IToolFeatures.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolconfiguration.toolfeatures",{"_index":20319,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["toolconfigurationcontroller",{"_index":20304,"title":{"controllers/ToolConfigurationController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper",{"_index":20342,"title":{"classes/ToolConfigurationMapper.html":{}},"body":{"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20353,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20359,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20349,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20356,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationstatus",{"_index":5350,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.latest",{"_index":5358,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.outdated",{"_index":5359,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.unknown",{"_index":20757,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse",{"_index":18158,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.latest",{"_index":20755,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.outdated",{"_index":20756,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.unknown",{"_index":18181,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolcontextcontroller",{"_index":20306,"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":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["toolcontexttype.board_element",{"_index":5905,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ToolPermissionHelper.html":{}}}],["toolcontexttype.course",{"_index":316,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["toolcontroller",{"_index":20308,"title":{"controllers/ToolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["toolfeatures",{"_index":8519,"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":8776,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["toolidsinuse",{"_index":8530,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["toolidsinuse.includes(tool.id",{"_index":8541,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolinfo",{"_index":20371,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos",{"_index":20368,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos.map",{"_index":20381,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["tooling",{"_index":23384,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["toollaunchcontroller",{"_index":20303,"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/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/OAuth2ToolLaunchStrategy.html":{}}}],["toollaunchdatado.properties.filter",{"_index":239,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdatatype",{"_index":20512,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.basic",{"_index":20534,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.lti11",{"_index":20535,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.oauth2",{"_index":20536,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping",{"_index":20537,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping[launchdatatype",{"_index":20542,"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":20591,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoollaunchdatatype(externaltool.config.type",{"_index":273,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchmapper.maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20507,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchmodule",{"_index":20543,"title":{"modules/ToolLaunchModule.html":{}},"body":{"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toollaunchparams",{"_index":20493,"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/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchrequestresponse",{"_index":20503,"title":{"classes/ToolLaunchRequestResponse.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["toollaunchrequestresponse})@apiunauthorizedresponse({description",{"_index":20496,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchservice",{"_index":20548,"title":{"injectables/ToolLaunchService.html":{}},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchuc",{"_index":20301,"title":{"injectables/ToolLaunchUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["toolmodule",{"_index":1954,"title":{"modules/ToolModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolpermissionhelper",{"_index":6056,"title":{"injectables/ToolPermissionHelper.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolref",{"_index":8553,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolref.externaltool.ishidden",{"_index":8555,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolreference",{"_index":5957,"title":{"classes/ToolReference.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreference.contexttoolid",{"_index":5976,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.displayname",{"_index":5977,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.logourl",{"_index":5978,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreference.openinnewtab",{"_index":5980,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.status",{"_index":20640,"title":{},"body":{"classes/ToolReference.html":{}}}],["toolreferencecontroller",{"_index":20307,"title":{"controllers/ToolReferenceController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse",{"_index":20654,"title":{"classes/ToolReferenceListResponse.html":{}},"body":{"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{}}}],["toolreferencelistresponse(toolreferenceresponses",{"_index":20662,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse})@apiforbiddenresponse({description",{"_index":20652,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencemapper",{"_index":20664,"title":{"classes/ToolReferenceMapper.html":{}},"body":{"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreferencemapper.maptotoolreference",{"_index":20688,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["toolreferenceresponse",{"_index":5959,"title":{"classes/ToolReferenceResponse.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.contexttoolid",{"_index":20679,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.displayname",{"_index":20681,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.logourl",{"_index":20680,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.openinnewtab",{"_index":20682,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.status",{"_index":20683,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponses",{"_index":5972,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferenceresponse})@apiforbiddenresponse({description",{"_index":20648,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferences",{"_index":5962,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferences.map((toolreference",{"_index":5973,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolreferenceservice",{"_index":5817,"title":{"injectables/ToolReferenceService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreferencespromises",{"_index":20702,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull",{"_index":20704,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull.filter",{"_index":20707,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceuc",{"_index":20302,"title":{"injectables/ToolReferenceUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["tools",{"_index":6064,"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":20325,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools.data",{"_index":9333,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.data.map",{"_index":20469,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools.data.map(async",{"_index":9328,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.filter((tool",{"_index":6096,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tools.map(async",{"_index":8611,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tools.total",{"_index":20471,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/:contextexternaltoolid",{"_index":20656,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid')@apioperation({summary",{"_index":20646,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid/configuration",{"_index":20334,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/:schoolexternaltoolid/configuration",{"_index":20340,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/context",{"_index":20385,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["tools/external",{"_index":20430,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/school",{"_index":20711,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["tools/tool",{"_index":20642,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/{id}/logo",{"_index":8596,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["toolschoolcontroller",{"_index":20305,"title":{"controllers/ToolSchoolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["toolstatusoutdatedloggableexception",{"_index":20586,"title":{"classes/ToolStatusOutdatedLoggableException.html":{}},"body":{"injectables/ToolLaunchService.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolstatusoutdatedloggableexception(userid",{"_index":20600,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toolstatusresponsemapper",{"_index":5963,"title":{"classes/ToolStatusResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(schoolexternaltool.status",{"_index":18180,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(toolreference.status",{"_index":5981,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolswithpermission",{"_index":6092,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["toolswithschooltool",{"_index":8547,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolswithschooltool.filter",{"_index":8552,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tooltemplateinfo.externaltool",{"_index":8604,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["tooltemplateinfo.externaltool.logourl",{"_index":8605,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["toolvalidationservice",{"_index":9392,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["toolversion",{"_index":5352,"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":{}}}],["toomanypseudonymsloggableexception",{"_index":20290,"title":{"classes/TooManyPseudonymsLoggableException.html":{}},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["toomodule",{"_index":1960,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["top",{"_index":19659,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["toparams",{"_index":2245,"title":{},"body":{"injectables/BBBService.html":{}}}],["toparams(object",{"_index":2281,"title":{},"body":{"injectables/BBBService.html":{}}}],["topic",{"_index":23565,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["toplevel",{"_index":13404,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["toposition",{"_index":4045,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["toseedfolder",{"_index":7822,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["tostring",{"_index":1140,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["total",{"_index":1008,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BaseDORepo.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/ExternalToolPseudonymRepo.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":21537,"title":{},"body":{"injectables/UserRepo.html":{}}}],["total[0].count",{"_index":21538,"title":{},"body":{"injectables/UserRepo.html":{}}}],["totalitems",{"_index":11330,"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":11347,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["touching",{"_index":23716,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["toupdate",{"_index":9303,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{}}}],["toupdate.config",{"_index":9348,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.config.clientid",{"_index":9350,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.name",{"_index":9347,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdateoauthclient",{"_index":9308,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tovideoconferenceinforesponse",{"_index":21936,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceinforesponse(videoconferenceinfo",{"_index":21940,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse",{"_index":21937,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse(videoconferencejoin",{"_index":21942,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions",{"_index":21938,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions(params",{"_index":21944,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse",{"_index":21939,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse(state",{"_index":21946,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["trace",{"_index":12084,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["trade",{"_index":22626,"title":{},"body":{"license.html":{}}}],["trademark",{"_index":22625,"title":{},"body":{"license.html":{}}}],["trademarks",{"_index":22627,"title":{},"body":{"license.html":{}}}],["transaction",{"_index":22581,"title":{},"body":{"license.html":{}}}],["transfer",{"_index":11636,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{}}}],["transferred",{"_index":22583,"title":{},"body":{"license.html":{}}}],["transferring",{"_index":22680,"title":{},"body":{"license.html":{}}}],["transform",{"_index":5159,"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":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["transform:true",{"_index":10866,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transformer",{"_index":5835,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FilesStorageMapper.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"dependencies.html":{}}}],["transformoptions",{"_index":10864,"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":23562,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["transitioning",{"_index":23262,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["translate",{"_index":22221,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["transmission",{"_index":22544,"title":{},"body":{"license.html":{}}}],["transparent",{"_index":18920,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["transports",{"_index":14437,"title":{},"body":{"modules/LoggerModule.html":{}}}],["trash",{"_index":17846,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["treated",{"_index":578,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["treating",{"_index":23469,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["treaty",{"_index":22453,"title":{},"body":{"license.html":{}}}],["tries",{"_index":23319,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["trigger",{"_index":23528,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["trim",{"_index":13020,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"injectables/UserRepo.html":{}}}],["trimslash",{"_index":257,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trimslash.split",{"_index":260,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trivial",{"_index":23082,"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":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.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":{},"classes/CurrentUserMapper.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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalStateEntity.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":{},"classes/GroupIdParams.html":{},"injectables/GroupRepo.html":{},"injectables/GroupRule.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/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":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":{},"interfaces/OauthCurrentUser.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":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"classes/PseudonymParams.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":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"entities/SystemEntity.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/UserLoginMigrationEntity.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/UsersList.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["true})@apiproperty({description",{"_index":4051,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{}}}],["true})@apiproperty({oneof",{"_index":20765,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["true})@apiproperty({required",{"_index":5493,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["true})@enum",{"_index":19337,"title":{},"body":{"entities/SystemEntity.html":{}}}],["true})@index",{"_index":4262,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["true})@isarray()@isoptional()@apipropertyoptional({type",{"_index":5829,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["true})@ismongoid",{"_index":22032,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["true})@isoptional()@apiproperty({description",{"_index":5437,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["true})@isoptional()@apipropertyoptional({required",{"_index":6980,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["true})@isoptional()@isenum(filtermatchtype",{"_index":10670,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@singlevaluetoarraytransformer()@isarray",{"_index":10671,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@unique({options",{"_index":6499,"title":{},"body":{"entities/Course.html":{},"entities/ImportUser.html":{},"entities/LtiTool.html":{}}}],["try",{"_index":784,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AntivirusService.html":{},"injectables/BoardCopyService.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/TaskCopyUC.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.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":21326,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["trybuildtoolreference",{"_index":20692,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["trybuildtoolreference(userid",{"_index":20700,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tryfindbyid",{"_index":11167,"title":{},"body":{"injectables/GroupService.html":{}}}],["tryfindbyid(id",{"_index":11178,"title":{},"body":{"injectables/GroupService.html":{}}}],["trygetprevieworgenerate",{"_index":16698,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trygetprevieworgenerate(params",{"_index":16709,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trying",{"_index":6586,"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":{},"classes/UsersList.html":{}}}],["ts",{"_index":1174,"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":4310,"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":18556,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tvalue",{"_index":12709,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["two",{"_index":13831,"title":{},"body":{"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typ",{"_index":13148,"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/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":{},"classes/AuthenticationValues.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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":{},"classes/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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":9826,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["type.enum",{"_index":1530,"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":17102,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.factory.ts:11",{"_index":17106,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.includes(bn.type",{"_index":3286,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["type.interface.ts",{"_index":11962,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["type.mapper.ts",{"_index":14802,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:6",{"_index":14805,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.query.param.ts",{"_index":16480,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:12",{"_index":16488,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:16",{"_index":16489,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:8",{"_index":16486,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.response",{"_index":11102,"title":{},"body":{"classes/GroupResponse.html":{}}}],["typecheckers",{"_index":5363,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["typedefinitions",{"_index":23128,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["typemapping",{"_index":9163,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/GroupResponseMapper.html":{}}}],["typemapping[customparameterdo.type",{"_index":9252,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterparam.type",{"_index":9202,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["typemapping[resolvedgroup.type",{"_index":11137,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["typeof",{"_index":1695,"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/SortHelper.html":{},"classes/StringValidator.html":{},"classes/TestApiClient.html":{}}}],["types",{"_index":208,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AuthorizableObject.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":{},"injectables/ContentElementFactory.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"classes/DomainObject.html":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FilesStorageMapper.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/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"interfaces/Loggable.html":{},"classes/LoggingUtils.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":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RoleReference.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.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/SystemEntity.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["types.enum",{"_index":10027,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["types.get(type",{"_index":10562,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(filerecordparenttype.boardnode",{"_index":10560,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.course",{"_index":10551,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.lesson",{"_index":10556,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.school",{"_index":10554,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.submission",{"_index":10558,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.task",{"_index":10549,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.user",{"_index":10552,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(sharetokencontexttype.school",{"_index":18617,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["types.set(sharetokenparenttype.course",{"_index":14806,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.lesson",{"_index":18711,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.task",{"_index":18712,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types/board",{"_index":3596,"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":22065,"title":{},"body":{"dependencies.html":{}}}],["types/connect",{"_index":22067,"title":{},"body":{"dependencies.html":{}}}],["types/copy.types",{"_index":6359,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["types/entity",{"_index":12446,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/gm",{"_index":22069,"title":{},"body":{"dependencies.html":{}}}],["types/ldapjs",{"_index":22071,"title":{},"body":{"dependencies.html":{}}}],["types/news.types",{"_index":6851,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["types/redis",{"_index":22073,"title":{},"body":{"dependencies.html":{}}}],["types/room",{"_index":8094,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["types/task.types",{"_index":12447,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/xml2js",{"_index":22075,"title":{},"body":{"dependencies.html":{}}}],["typescript",{"_index":1190,"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":{},"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":22564,"title":{},"body":{"license.html":{}}}],["typing",{"_index":9625,"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":6598,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["u.userid",{"_index":10932,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["u.userid.id",{"_index":20133,"title":{},"body":{"injectables/TeamService.html":{}}}],["uc",{"_index":2727,"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/GroupApiModule.html":{},"controllers/GroupController.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.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":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.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.mapper",{"_index":11222,"title":{},"body":{"injectables/GroupUc.html":{}}}],["uc.mapper.ts",{"_index":11277,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:27",{"_index":11282,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:44",{"_index":11286,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:9",{"_index":11284,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.ts",{"_index":23183,"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":3493,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["uc/collaborative",{"_index":4621,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["uc/course",{"_index":6620,"title":{},"body":{"controllers/CourseController.html":{},"controllers/RoomsController.html":{}}}],["uc/course.uc",{"_index":6618,"title":{},"body":{"controllers/CourseController.html":{}}}],["uc/dashboard.uc",{"_index":7379,"title":{},"body":{"controllers/DashboardController.html":{}}}],["uc/database",{"_index":7807,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["uc/dto",{"_index":1744,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["uc/dto/class",{"_index":4351,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["uc/dto/context",{"_index":5919,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"controllers/ToolContextController.html":{}}}],["uc/dto/oauth",{"_index":13944,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["uc/dto/school",{"_index":18153,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["uc/dto/user",{"_index":21183,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["uc/dto/user.dto",{"_index":21605,"title":{},"body":{"injectables/UserService.html":{}}}],["uc/element.uc",{"_index":2728,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["uc/fwu",{"_index":10722,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["uc/hydra",{"_index":16117,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["uc/keycloak",{"_index":11592,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["uc/lesson",{"_index":17702,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/login.uc",{"_index":1513,"title":{},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["uc/news.uc",{"_index":14969,"title":{},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["uc/oauth",{"_index":15889,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["uc/rooms.uc",{"_index":17703,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/submission",{"_index":2729,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["uc/system.uc",{"_index":19294,"title":{},"body":{"controllers/SystemController.html":{}}}],["uc/task",{"_index":19567,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/task.uc",{"_index":19568,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/user",{"_index":12780,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"controllers/UserMigrationController.html":{}}}],["ucs",{"_index":13861,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["ui",{"_index":22185,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["ui_locales",{"_index":16268,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["ui_use_real_name=true",{"_index":23610,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["uid",{"_index":12035,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["uid=(.+?),/i",{"_index":12033,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uid=[^,]*${escapedloginname",{"_index":13032,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs",{"_index":12826,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["uid=loginname",{"_index":12031,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uk",{"_index":12589,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["um",{"_index":4824,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unable",{"_index":3049,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["unambiguous",{"_index":1437,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["unarchivegroup(groupname",{"_index":1223,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["unauthorized",{"_index":20505,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized'})@apiforbiddenresponse({description",{"_index":20497,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized_exception",{"_index":20764,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception",{"_index":2004,"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":9609,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('missing",{"_index":9602,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('no",{"_index":15515,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["unauthorizedexception('oauth",{"_index":16149,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unauthorizedexception('unauthorized",{"_index":13181,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["unauthorizedexception('user",{"_index":13776,"title":{},"body":{"injectables/LdapService.html":{}}}],["unauthorizedexception(`invalid",{"_index":16154,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["unauthorizedexception(`school",{"_index":13816,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["unauthorizedloggableexception",{"_index":1741,"title":{"classes/UnauthorizedLoggableException.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedloggableexception(username",{"_index":1748,"title":{},"body":{"injectables/AuthenticationService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["und",{"_index":4842,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["undefined",{"_index":145,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountServiceDb.html":{},"injectables/AntivirusService.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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GuardAgainst.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LinkElementContentBody.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponse-1.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"classes/PreviewBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.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/SortHelper.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionsResponse.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":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["undefined})@apiproperty({oneof",{"_index":8620,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["undefined})@apiresponse({status",{"_index":3982,"title":{},"body":{"controllers/CardController.html":{},"controllers/ElementController.html":{}}}],["undefined})@isboolean()@isoptional",{"_index":21760,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["undefined})@property({nullable",{"_index":10015,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["undefined})@type(undefined",{"_index":5830,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["undefined})@userequestcontext",{"_index":10503,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["under",{"_index":22210,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["understand",{"_index":23301,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["unexpected",{"_index":23374,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unfamiliar",{"_index":23310,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unhandled",{"_index":8304,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["unique()@property",{"_index":8689,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["uniqueids",{"_index":12519,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniqueids.length",{"_index":12522,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniquemember",{"_index":12403,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["uniquememberids",{"_index":12318,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["uniquenames",{"_index":5400,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquenames.size",{"_index":5402,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquepermissions",{"_index":12169,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["uniquesystemids",{"_index":11261,"title":{},"body":{"injectables/GroupUc.html":{}}}],["uniquesystemids.map(async",{"_index":11264,"title":{},"body":{"injectables/GroupUc.html":{}}}],["unit",{"_index":22927,"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":23463,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["universal",{"_index":22191,"title":{},"body":{"dependencies.html":{}}}],["unknown",{"_index":1345,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BoardRepo.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyService.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.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":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LoggingUtils.html":{},"injectables/NewsUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RpcMessageProducer.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.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":11149,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:4",{"_index":11152,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:7",{"_index":11154,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknownerror",{"_index":10829,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["unless",{"_index":22570,"title":{},"body":{"license.html":{}}}],["unlimited",{"_index":534,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["unmarkfordelete",{"_index":10078,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["unmarkoutdatedusers",{"_index":18318,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmarkoutdatedusers(schoolid",{"_index":18342,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmodified",{"_index":22353,"title":{},"body":{"license.html":{}}}],["unnecessary",{"_index":22440,"title":{},"body":{"license.html":{}}}],["unnessasary",{"_index":20627,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["unpacking",{"_index":22600,"title":{},"body":{"license.html":{}}}],["unprocessableentityexception",{"_index":9058,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.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":{},"injectables/SubmissionItemService.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception('cannot",{"_index":15282,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["unprocessableentityexception('current",{"_index":16190,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unprocessableentityexception(`could",{"_index":9336,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`requested",{"_index":16218,"title":{},"body":{"injectables/OauthUc.html":{}}}],["unprocessableentityexception(`school",{"_index":18367,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["unprocessableentityexception(`system",{"_index":21473,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception(`the",{"_index":9354,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`unknown",{"_index":9067,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["unprocessableentityexception(errortype.preview_not_possible",{"_index":16722,"title":{},"body":{"injectables/PreviewService.html":{}}}],["unpublish",{"_index":4883,"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":10684,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["unreachable",{"_index":1130,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["unresponsive",{"_index":17919,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["uns",{"_index":4856,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unsafe",{"_index":1192,"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":3712,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["unter",{"_index":4860,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["until",{"_index":8178,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SanisResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"license.html":{}}}],["untildate",{"_index":6478,"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":{},"classes/UsersList.html":{}}}],["untildateinfuture",{"_index":6921,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["unused",{"_index":2614,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/TestBootstrapConsole.html":{}}}],["unusedtools",{"_index":8551,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unusedtools.filter",{"_index":8554,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unwanted",{"_index":19841,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["up",{"_index":14107,"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":2925,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/ColumnController.html":{},"injectables/ContentElementService.html":{},"injectables/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":5603,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update(id",{"_index":15171,"title":{},"body":{"injectables/NewsUc.html":{}}}],["update(submissionitem",{"_index":19099,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["update(urlparams",{"_index":14962,"title":{},"body":{"controllers/NewsController.html":{}}}],["update.params.ts",{"_index":9420,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["update.params.ts:16",{"_index":20023,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:17",{"_index":9422,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:21",{"_index":9425,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:22",{"_index":14607,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:25",{"_index":20026,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:26",{"_index":9428,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:27",{"_index":14606,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:31",{"_index":9424,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:33",{"_index":20027,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:35",{"_index":14605,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:36",{"_index":15543,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:39",{"_index":14604,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:40",{"_index":15542,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:41",{"_index":20024,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:44",{"_index":15544,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:49",{"_index":20022,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:52",{"_index":9421,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:57",{"_index":20025,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:59",{"_index":9427,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:63",{"_index":9423,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:67",{"_index":9426,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.visitor",{"_index":5608,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update.visitor.ts",{"_index":5624,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:103",{"_index":5629,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:29",{"_index":5627,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:35",{"_index":5633,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:39",{"_index":5632,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:43",{"_index":5631,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:47",{"_index":5635,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:56",{"_index":5636,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:71",{"_index":5637,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:80",{"_index":5638,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:90",{"_index":5640,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:94",{"_index":5634,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["updateaccount",{"_index":12685,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccount(accountid",{"_index":12714,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccount(id",{"_index":13569,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountbyid",{"_index":488,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountbyid(currentuser",{"_index":542,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountpassword",{"_index":12686,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountpassword(accountid",{"_index":12716,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccountpassword(id",{"_index":13571,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateboard",{"_index":17723,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboard(board",{"_index":17728,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboardtitle",{"_index":2897,"title":{},"body":{"controllers/BoardController.html":{}}}],["updateboardtitle(urlparams",{"_index":2922,"title":{},"body":{"controllers/BoardController.html":{}}}],["updatecardheight",{"_index":3971,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardheight(urlparams",{"_index":4000,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle",{"_index":3972,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle(urlparams",{"_index":4004,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecolumntitle",{"_index":4913,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecolumntitle(urlparams",{"_index":4929,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecontextexternaltool",{"_index":6054,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(currentuser",{"_index":20404,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(userid",{"_index":6070,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["updatecopiedembeddedtasksoflessons",{"_index":2968,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons(boardstatus",{"_index":2998,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updated",{"_index":524,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"controllers/CollaborativeStorageController.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":2421,"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/FederalStateEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["updatedclasses",{"_index":4421,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedclasses.length",{"_index":4425,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedelements",{"_index":3079,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatedlessons",{"_index":14293,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedlessons.length",{"_index":14298,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedmodel",{"_index":7695,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updatedtool",{"_index":6088,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updateduserloginmigration",{"_index":4502,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["updateduserloginmigration.closedat",{"_index":14115,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.finishedat",{"_index":14120,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.mandatorysince",{"_index":14118,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.startedat",{"_index":14117,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateelement",{"_index":8193,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelement(urlparams",{"_index":8207,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelementcontent",{"_index":8229,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontent(userid",{"_index":8234,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontentbodyparams",{"_index":8182,"title":{"classes/UpdateElementContentBodyParams.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["updateentity",{"_index":2353,"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":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":{}}}],["updateexecutionrequest",{"_index":13401,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateexistinggridelement",{"_index":7651,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistinggridelement(elementmodel",{"_index":7673,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistingmigration",{"_index":21248,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexistingmigration(userloginmigrationdo",{"_index":21269,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexternaltool",{"_index":9279,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["updateexternaltool(currentuser",{"_index":20455,"title":{},"body":{"controllers/ToolController.html":{}}}],["updateexternaltool(toupdate",{"_index":9300,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateexternaltool(userid",{"_index":9404,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["updatefileurls",{"_index":19595,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updatefileurls(task",{"_index":19606,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updateflag",{"_index":12744,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflag(urlparams",{"_index":12769,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflagparams",{"_index":12770,"title":{"classes/UpdateFlagParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateFlagParams.html":{}}}],["updateheight",{"_index":4091,"title":{},"body":{"injectables/CardService.html":{}}}],["updateheight(card",{"_index":4110,"title":{},"body":{"injectables/CardService.html":{}}}],["updateidentityprovider",{"_index":13329,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateidentityprovider(oidcconfig",{"_index":13361,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatelasttriedfailedlogin",{"_index":21,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["updatelasttriedfailedlogin(accountid",{"_index":81,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatelasttriedfailedlogin(id",{"_index":1730,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["updatemany",{"_index":4456,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatemany(classes",{"_index":4462,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatematchparams",{"_index":12762,"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":14963,"title":{"classes/UpdateNewsParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"classes/UpdateNewsParams.html":{}}}],["updateoauth2client",{"_index":15780,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2client(currentuser",{"_index":15791,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["updateoauth2client(id",{"_index":16064,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["updateoauth2toolconfig",{"_index":9280,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauth2toolconfig(toupdate",{"_index":9304,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow",{"_index":9281,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow(loadedoauthclient",{"_index":9306,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateorcreateidpdefaultmapper",{"_index":13330,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateorcreateidpdefaultmapper(idpalias",{"_index":13363,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatepassword",{"_index":22,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatepassword(accountid",{"_index":86,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updater",{"_index":5618,"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":6865,"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/ContentElementUpdateVisitor.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":18225,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(currentuser",{"_index":20727,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(userid",{"_index":18237,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["updatesecuritycheckstatus(status",{"_index":10066,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["updatesecuritystatus",{"_index":10251,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(@body",{"_index":10270,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(scanresultdto",{"_index":10256,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesubmissionitem",{"_index":3722,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitem(currentuser",{"_index":3729,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["updatesubmissionitem(userid",{"_index":19118,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitembodyparams",{"_index":3731,"title":{"classes/UpdateSubmissionItemBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["updateteam",{"_index":4524,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteam(team",{"_index":4538,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole",{"_index":4525,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(currentuser",{"_index":4604,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["updateteampermissionsforrole(currentuserid",{"_index":4665,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["updateteampermissionsforrole(dto",{"_index":11664,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(team",{"_index":4540,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["updateteamusersingroup",{"_index":15232,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updateteamusersingroup(groupid",{"_index":15251,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updatetitle",{"_index":4092,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{}}}],["updatetitle(board",{"_index":4803,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["updatetitle(card",{"_index":4112,"title":{},"body":{"injectables/CardService.html":{}}}],["updatetitle(column",{"_index":4976,"title":{},"body":{"injectables/ColumnService.html":{}}}],["updateusername",{"_index":23,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateusername(accountid",{"_index":89,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateuserpermissionsforrole",{"_index":4691,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updateuserpermissionsforrole(currentuserid",{"_index":4698,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updatevisibilityofboardelement",{"_index":17747,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updatevisibilityofboardelement(roomid",{"_index":17754,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updating",{"_index":2385,"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":15086,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["upload",{"_index":17854,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["upload.done",{"_index":17878,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["upper",{"_index":14364,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["uppercase",{"_index":23201,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["uppercase_snake_case",{"_index":1439,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["uri",{"_index":1161,"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/BBBJoinResponse.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardDoBuilderImpl.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentResponse.html":{},"injectables/ContentElementFactory.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/ElementContentBody.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.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/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"interfaces/GlobalConstants.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PageContentResponse.html":{},"classes/PreviewParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.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":15458,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url('/login",{"_index":16137,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url('/migration",{"_index":21435,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url('/migration/error",{"_index":16143,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url(`${api_version_path}${newpath",{"_index":1389,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url(`api/v3/sso/login/${system.id",{"_index":21475,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(baseurl",{"_index":245,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["url(oauthconfig.authendpoint",{"_index":15469,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(params.logouturl).origin",{"_index":21742,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["url(path",{"_index":15480,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(system.oauthconfig.logoutendpoint",{"_index":15462,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(this.baseurl",{"_index":2338,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url(this.logouturl).origin",{"_index":13064,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url(this.publicbackendurl",{"_index":21452,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(urlpath",{"_index":21469,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(urlwithprotocol).tostring",{"_index":5662,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["url(value",{"_index":14328,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["url.href",{"_index":1391,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url.length",{"_index":16434,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["url.loggable",{"_index":13059,"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":{}}}],["url.searchparams.append('origin",{"_index":21436,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.tostring",{"_index":256,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/UserMigrationService.html":{}}}],["urlencoded",{"_index":13547,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["urlencodedpayload",{"_index":15565,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["urlparamkeys",{"_index":13390,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["urlparams",{"_index":2908,"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":2941,"title":{},"body":{"controllers/BoardController.html":{}}}],["urlparams.cardid",{"_index":4026,"title":{},"body":{"controllers/CardController.html":{}}}],["urlparams.columnid",{"_index":4938,"title":{},"body":{"controllers/ColumnController.html":{}}}],["urlparams.contentelementid",{"_index":8216,"title":{},"body":{"controllers/ElementController.html":{}}}],["urlparams.dashboardid",{"_index":7393,"title":{},"body":{"controllers/DashboardController.html":{}}}],["urlparams.elementid",{"_index":17710,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.importuserid",{"_index":12798,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["urlparams.lessonid",{"_index":14146,"title":{},"body":{"controllers/LessonController.html":{},"controllers/RoomsController.html":{}}}],["urlparams.newsid",{"_index":14986,"title":{},"body":{"controllers/NewsController.html":{}}}],["urlparams.roomid",{"_index":17709,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.submissioncontainerid",{"_index":3744,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.submissionid",{"_index":19020,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["urlparams.submissionitemid",{"_index":3749,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.taskid",{"_index":19584,"title":{},"body":{"controllers/TaskController.html":{}}}],["urlparams.teamid",{"_index":20079,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["urlparams.token",{"_index":18661,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["urlpath",{"_index":21408,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["urls",{"_index":13062,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["urlsafe",{"_index":22194,"title":{},"body":{"dependencies.html":{}}}],["urlsearchparams",{"_index":193,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["urlwithprotocol",{"_index":5657,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["usable",{"_index":18611,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["usage",{"_index":9062,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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":{},"injectables/FeathersRosterService.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/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.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":{}}}],["use_stream_to_antivirus",{"_index":11968,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["usecase",{"_index":23101,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usecases",{"_index":23140,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["usecentralldap",{"_index":12766,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["useclass",{"_index":8374,"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":{},"modules/AuthorizationReferenceModule.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":{},"injectables/FeathersRosterService.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICurrentUser.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":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LoginResponse-1.html":{},"classes/MongoPatterns.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.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":10791,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["usedobuilder(builder",{"_index":3619,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["useexisting",{"_index":4596,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["usefactory",{"_index":837,"title":{},"body":{"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"modules/CacheWrapperModule.html":{},"modules/EncryptionModule.html":{},"modules/InterceptorModule.html":{},"modules/LoggerModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/RedisModule.html":{},"modules/S3ClientModule.html":{}}}],["useful",{"_index":22842,"title":{},"body":{"license.html":{}}}],["useguards",{"_index":14483,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('ldap",{"_index":14489,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('local",{"_index":14495,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('oauth2",{"_index":14499,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('ldap')@apioperation({summary",{"_index":14468,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('local')@apioperation({summary",{"_index":14475,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('oauth2')@apioperation({summary",{"_index":14480,"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/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.html":{},"modules/BoardModule.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/FeathersRosterService.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":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICleanOptions.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/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":{},"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/LegacySchoolUc.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":{},"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":{},"classes/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.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":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"classes/RedirectResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionsResponse.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/ToolReferenceController.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.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":15845,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["user'})@isboolean",{"_index":20769,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["user'})@ismongoid",{"_index":20772,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["user(params",{"_index":23678,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(props",{"_index":20904,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user(s",{"_index":23649,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(value",{"_index":12558,"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":13016,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["user._id.$oid",{"_index":13707,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.accountid",{"_index":1752,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["user.attribute",{"_index":13475,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["user.attributes",{"_index":13613,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.attributes[attributename",{"_index":13614,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.business",{"_index":20806,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user.controller",{"_index":12926,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["user.controller.ts",{"_index":12735,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:104",{"_index":12768,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:112",{"_index":12747,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:29",{"_index":12750,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:47",{"_index":12764,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:59",{"_index":12757,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:70",{"_index":12772,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:82",{"_index":12753,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:99",{"_index":12760,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.createdat",{"_index":17417,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.createdtimestamp",{"_index":13619,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.dto",{"_index":8433,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{}}}],["user.dto.ts",{"_index":8442,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:10",{"_index":9536,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:12",{"_index":9535,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:4",{"_index":8445,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:6",{"_index":8444,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:8",{"_index":9537,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.email",{"_index":12646,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{},"classes/UserMatchMapper.html":{}}}],["user.entity",{"_index":6523,"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":{},"classes/UsersList.html":{}}}],["user.entity.ts",{"_index":11310,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["user.entity.ts:102",{"_index":12732,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:109",{"_index":12728,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:112",{"_index":12724,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:13",{"_index":11313,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:16",{"_index":11312,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:54",{"_index":12730,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:57",{"_index":12731,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:60",{"_index":12726,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:76",{"_index":12721,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:79",{"_index":12722,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:82",{"_index":12725,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:88",{"_index":12720,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:91",{"_index":12729,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:94",{"_index":12719,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.externalid",{"_index":13131,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/UserDto.html":{}}}],["user.externalidtoken",{"_index":14502,"title":{},"body":{"controllers/LoginController.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":12818,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.factory.ts:10",{"_index":12820,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.firstname",{"_index":3146,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICourseProperties.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{},"classes/UsersList.html":{}}}],["user.forcepasswordchange",{"_index":20986,"title":{},"body":{"classes/UserDto.html":{}}}],["user.id",{"_index":738,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"entities/Course.html":{},"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICourseProperties.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":{},"interfaces/UserData.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceEndUc.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["user.interface",{"_index":13700,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.interface.ts",{"_index":12062,"title":{},"body":{"interfaces/IJsonUser.html":{}}}],["user.language",{"_index":20985,"title":{},"body":{"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.lastloginsystemchange",{"_index":14827,"title":{},"body":{"injectables/MigrationCheckService.html":{},"classes/UserDto.html":{}}}],["user.lastname",{"_index":3147,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICourseProperties.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["user.ldapdn",{"_index":20984,"title":{},"body":{"classes/UserDto.html":{}}}],["user.mapper",{"_index":12775,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.mapper.ts",{"_index":7064,"title":{},"body":{"classes/CurrentUserMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:17",{"_index":12856,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:20",{"_index":7076,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:32",{"_index":12858,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:41",{"_index":7072,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:49",{"_index":12855,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:5",{"_index":17414,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:53",{"_index":7070,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:9",{"_index":7079,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.module",{"_index":20825,"title":{},"body":{"modules/UserApiModule.html":{}}}],["user.outdatedsince",{"_index":18373,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserDto.html":{}}}],["user.params",{"_index":21357,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.params.ts",{"_index":10657,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/SortImportUserParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.params.ts:12",{"_index":10694,"title":{},"body":{"classes/FilterUserParams.html":{}}}],["user.params.ts:21",{"_index":10663,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:27",{"_index":10666,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:33",{"_index":10667,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:40",{"_index":10672,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:45",{"_index":10665,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:54",{"_index":10661,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:59",{"_index":10675,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.permissions",{"_index":9566,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.preferences",{"_index":20987,"title":{},"body":{"classes/UserDto.html":{}}}],["user.repo.ts",{"_index":23213,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.resolvepermissions",{"_index":1846,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.response",{"_index":11103,"title":{},"body":{"classes/GroupResponse.html":{}}}],["user.response.ts",{"_index":11317,"title":{},"body":{"classes/GroupUserResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ResolvedUserResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.response.ts:11",{"_index":17425,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:12",{"_index":11322,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:14",{"_index":17427,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:15",{"_index":11319,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:17",{"_index":17426,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:20",{"_index":17424,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:23",{"_index":17431,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:25",{"_index":12978,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:26",{"_index":17429,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:29",{"_index":17428,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:31",{"_index":12980,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:32",{"_index":17430,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:37",{"_index":12976,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:43",{"_index":12979,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:50",{"_index":12982,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:53",{"_index":12975,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:56",{"_index":12981,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:6",{"_index":11321,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:61",{"_index":12977,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:64",{"_index":12832,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["user.response.ts:7",{"_index":12974,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:9",{"_index":11320,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role",{"_index":11323,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role.name",{"_index":11143,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.roleids",{"_index":20983,"title":{},"body":{"classes/UserDto.html":{}}}],["user.roles",{"_index":16350,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{}}}],["user.roles.getitems",{"_index":20840,"title":{},"body":{"controllers/UserController.html":{}}}],["user.roles.getitems().map((role",{"_index":7082,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.getitems(true",{"_index":21362,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.roles.isinitialized(true",{"_index":16567,"title":{},"body":{"injectables/PermissionService.html":{}}}],["user.roles.map((roleref",{"_index":7085,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.some",{"_index":21621,"title":{},"body":{"injectables/UserService.html":{}}}],["user.roles.some((role",{"_index":9717,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["user.school",{"_index":6677,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["user.school.id",{"_index":5987,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"classes/CurrentUserMapper.html":{},"injectables/GroupRule.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":6680,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.schoolyear?.startdate",{"_index":6679,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.tostring",{"_index":17421,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.schoolid",{"_index":4756,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{}}}],["user.schoolid.tostring",{"_index":9564,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.scope",{"_index":20903,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user.ts",{"_index":11304,"title":{},"body":{"classes/GroupUser.html":{},"classes/ResolvedGroupUser.html":{}}}],["user.ts:4",{"_index":11306,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:5",{"_index":17410,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.ts:6",{"_index":11305,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:7",{"_index":17409,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.uc.ts",{"_index":23207,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.updatedat",{"_index":17419,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.url.params.ts",{"_index":13041,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.url.params.ts:11",{"_index":13042,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.user.firstname",{"_index":11144,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.id",{"_index":11142,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.lastname",{"_index":11145,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.userid",{"_index":10933,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"controllers/UserLoginMigrationController.html":{}}}],["user.username",{"_index":13618,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{}}}],["user.userroleenum",{"_index":19128,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["user/account",{"_index":13177,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["user/import",{"_index":12736,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user?.id",{"_index":16380,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["user?.lastloginsystemchange",{"_index":14825,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["user_already_assigned_to_import_user_error",{"_index":20809,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user_id",{"_index":2210,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["user_login_migration_already_closed",{"_index":21019,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["user_login_migration_grace_period_expired",{"_index":21164,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["user_login_migration_not_found",{"_index":21196,"title":{},"body":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["user_login_migrations",{"_index":21153,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["user_migration_failed",{"_index":21160,"title":{},"body":{"classes/UserLoginMigrationError.html":{}}}],["useralreadyassignedtoimportusererror",{"_index":20804,"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":18510,"title":{"modules/UserApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserApiModule.html":{},"modules.html":{}}}],["userattributenamemapping",{"_index":12394,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userboardrole",{"_index":3395,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.editor",{"_index":3400,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.reader",{"_index":3401,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.userroleenum",{"_index":3398,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardroles",{"_index":3109,"title":{"interfaces/UserBoardRoles.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["usercontroller",{"_index":20824,"title":{"controllers/UserController.html":{}},"body":{"modules/UserApiModule.html":{},"controllers/UserController.html":{}}}],["usercount",{"_index":13702,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["userdata",{"_index":9667,"title":{"interfaces/UserData.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["userdataresponse",{"_index":19080,"title":{"classes/UserDataResponse.html":{}},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{},"classes/UserDataResponse.html":{}}}],["userdo",{"_index":7074,"title":{"classes/UserDO.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"injectables/IdTokenService.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.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":{},"classes/ResolvedGroupUser.html":{},"injectables/SchoolMigrationService.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["userdo.email",{"_index":13081,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.externalid",{"_index":13082,"title":{},"body":{"classes/IservMapper.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.firstname",{"_index":13079,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.lastloginsystemchange",{"_index":21296,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.lastname",{"_index":13080,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.previousexternalid",{"_index":21464,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocopy",{"_index":21423,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocument",{"_index":21550,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments",{"_index":21547,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments.map((userdocument",{"_index":21548,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdofactory",{"_index":20957,"title":{"classes/UserDoFactory.html":{}},"body":{"classes/UserDoFactory.html":{}}}],["userdofactory.define(userdo",{"_index":20962,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["userdorepo",{"_index":20884,"title":{"injectables/UserDORepo.html":{}},"body":{"injectables/UserDORepo.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["userdto",{"_index":20965,"title":{"classes/UserDto.html":{}},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["userentity",{"_index":20914,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userentitys",{"_index":20921,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userentitys.find((user",{"_index":20923,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userequestcontext",{"_index":10511,"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":19037,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["userfactory.buildlistwithid(numberofstudents",{"_index":6742,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["userfactory.buildlistwithid(numberofteachers",{"_index":6743,"title":{},"body":{"classes/CourseFactory.html":{}}}],["userfactory.buildlistwithid(numberofteammembers",{"_index":19034,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["userfactory.buildwithid",{"_index":19033,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TeamUserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["userfactory.define(user",{"_index":21006,"title":{},"body":{"classes/UserFactory.html":{}}}],["userforgroupnotfoundloggable",{"_index":16323,"title":{"classes/UserForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["userforgroupnotfoundloggable(externalgroupuser",{"_index":16383,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["usergroup",{"_index":9679,"title":{"interfaces/UserGroup.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usergroups",{"_index":9678,"title":{"interfaces/UserGroups.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/CalendarService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/GroupUc.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/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":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"interfaces/OauthCurrentUser.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":{},"classes/PseudonymMapper.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/SubmissionItemResponse.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/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceEndUc.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["userid(value",{"_index":19051,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["userid).buildwithid",{"_index":20053,"title":{},"body":{"classes/TeamFactory.html":{}}}],["userid)?.userroleenum",{"_index":19134,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["userid.tohexstring",{"_index":4373,"title":{},"body":{"classes/ClassMapper.html":{}}}],["userid.tostring",{"_index":9575,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["userid1",{"_index":4254,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["userid?.tostring",{"_index":1144,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["userids",{"_index":62,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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":{},"classes/UsersList.html":{}}}],["userids'})@index",{"_index":6754,"title":{},"body":{"entities/CourseGroup.html":{}}}],["userids.map((id",{"_index":923,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["userimportuc",{"_index":12779,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["userinfo",{"_index":14546,"title":{},"body":{"injectables/LoginUc.html":{},"classes/SystemFactory.html":{}}}],["userinfo.token.claim",{"_index":13479,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["userinfomapper",{"_index":15035,"title":{"classes/UserInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/UserInfoMapper.html":{}}}],["userinfomapper.maptoresponse(news.creator",{"_index":15038,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinfomapper.maptoresponse(news.updater",{"_index":15052,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinforesponse",{"_index":15006,"title":{"classes/UserInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{}}}],["userinfourl",{"_index":12419,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["userjwt",{"_index":16207,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userlist",{"_index":12805,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userlist.map((user",{"_index":12807,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userloginmigration",{"_index":4491,"title":{},"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":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigration.closedat",{"_index":4501,"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":4498,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat.gettime",{"_index":4509,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.id",{"_index":4500,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.mandatorysince",{"_index":14123,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.school",{"_index":12207,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["userloginmigration.startedat",{"_index":14122,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationalreadyclosedloggableexception",{"_index":18907,"title":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiokresponse({description",{"_index":21072,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiunprocessableentityresponse({description",{"_index":21040,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationapimodule",{"_index":18511,"title":{"modules/UserLoginMigrationApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["userloginmigrationcontroller",{"_index":21026,"title":{"controllers/UserLoginMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationdo",{"_index":4489,"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":21289,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.finishedat",{"_index":21290,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationentity",{"_index":12185,"title":{"entities/UserLoginMigrationEntity.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationentity(props",{"_index":21205,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationerror",{"_index":21159,"title":{"classes/UserLoginMigrationError.html":{}},"body":{"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception",{"_index":4493,"title":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apinotfoundresponse({description",{"_index":21041,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiokresponse({description",{"_index":21065,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiunprocessableentityresponse({description",{"_index":21071,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationid",{"_index":12208,"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":20273,"title":{"classes/UserLoginMigrationMandatoryLoggable.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["userloginmigrationmandatoryloggable(userid",{"_index":20275,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigrationmandatoryparams",{"_index":21069,"title":{"classes/UserLoginMigrationMandatoryParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["userloginmigrationmapper",{"_index":21082,"title":{"classes/UserLoginMigrationMapper.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["userloginmigrationmapper.mapsearchparamstoquery(params",{"_index":21092,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(migrationdto",{"_index":21104,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(userloginmigration",{"_index":21097,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmodule",{"_index":13913,"title":{"modules/UserLoginMigrationModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["userloginmigrationnotfoundloggableexception",{"_index":4494,"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":4496,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiokresponse({description",{"_index":21042,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiunprocessableentityresponse({description",{"_index":21063,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationprops",{"_index":21214,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationquery",{"_index":21083,"title":{"interfaces/UserLoginMigrationQuery.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationrepo",{"_index":14817,"title":{"injectables/UserLoginMigrationRepo.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationrepo.save",{"_index":21277,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationresponse",{"_index":21084,"title":{"classes/UserLoginMigrationResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationresponse})@apiforbiddenresponse",{"_index":21078,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apinotfoundresponse({description",{"_index":21049,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse",{"_index":21066,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apinocontentresponse({description",{"_index":21043,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationrevertservice",{"_index":4484,"title":{"injectables/UserLoginMigrationRevertService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["userloginmigrationrule",{"_index":1899,"title":{"injectables/UserLoginMigrationRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["userloginmigrations",{"_index":21048,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchlistresponse",{"_index":21085,"title":{"classes/UserLoginMigrationSearchListResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationsearchlistresponse})@apiinternalservererrorresponse({description",{"_index":21055,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchparams",{"_index":21052,"title":{"classes/UserLoginMigrationSearchParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["userloginmigrationservice",{"_index":4482,"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":17440,"title":{"classes/UserLoginMigrationStartLoggable.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationstartloggable(userid",{"_index":17443,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["userloginmigrationuc",{"_index":21024,"title":{"injectables/UserLoginMigrationUc.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["usermapper",{"_index":21341,"title":{"classes/UserMapper.html":{}},"body":{"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["usermapper.mapfromentitytodto(userentity",{"_index":21608,"title":{},"body":{"injectables/UserService.html":{}}}],["usermatches",{"_index":12969,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["usermatchlistresponse",{"_index":12784,"title":{"classes/UserMatchListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchlistresponse(dtolist",{"_index":12809,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper",{"_index":12776,"title":{"classes/UserMatchMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["usermatchmapper.maptodomain(scope",{"_index":12804,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper.maptoresponse(user",{"_index":12808,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["usermatchresponse",{"_index":12834,"title":{"classes/UserMatchResponse.html":{}},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchschoolid",{"_index":18272,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["usermetadata",{"_index":9685,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermetdata",{"_index":9677,"title":{"interfaces/UserMetdata.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermigrationcontroller",{"_index":21025,"title":{"controllers/UserMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["usermigrationdto",{"_index":14831,"title":{},"body":{"classes/MigrationDto.html":{},"injectables/UserMigrationService.html":{}}}],["usermigrationdto.redirect",{"_index":14832,"title":{},"body":{"classes/MigrationDto.html":{}}}],["usermigrationisnotenabled",{"_index":21389,"title":{"classes/UserMigrationIsNotEnabled.html":{}},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["usermigrationmapper",{"_index":16123,"title":{"classes/UserMigrationMapper.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{}}}],["usermigrationmapper.mapdtotoresponse(migration",{"_index":16192,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["usermigrationresponse",{"_index":16119,"title":{"classes/UserMigrationResponse.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{}}}],["usermigrationservice",{"_index":15396,"title":{"injectables/UserMigrationService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["usermodel",{"_index":13477,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["usermodule",{"_index":3568,"title":{"modules/UserModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/GroupApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/FeathersRosterService.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":1774,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["usernames",{"_index":9634,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usernotfoundafterprovisioningloggableexception",{"_index":15422,"title":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}},"body":{"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["usernotfoundafterprovisioningloggableexception(externaluserid",{"_index":15447,"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":12391,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userpermissions",{"_index":21003,"title":{},"body":{"classes/UserFactory.html":{}}}],["userquery",{"_index":20891,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userrefprops",{"_index":1831,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrefprops.some((prop",{"_index":1863,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.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":13557,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["userrole",{"_index":12836,"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":17541,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.student",{"_index":17543,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.teacher",{"_index":17542,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userroleenum",{"_index":3097,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["userroleenum.student",{"_index":3154,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["userroleenum.substitution_teacher",{"_index":3151,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userroleenum.teacher",{"_index":3149,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userrule",{"_index":1900,"title":{"injectables/UserRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserRule.html":{}}}],["users",{"_index":3090,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"controllers/BoardSubmissionController.html":{},"injectables/CollaborativeStorageService.html":{},"entities/Course.html":{},"classes/ExternalGroupDto.html":{},"injectables/FeathersRosterService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/OauthCurrentUser.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolMigrationService.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"controllers/SystemController.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/UsersList.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":16385,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.find",{"_index":13593,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.find((user",{"_index":21518,"title":{},"body":{"injectables/UserRepo.html":{}}}],["users.foreach((user",{"_index":16373,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.getidentifiers('_id",{"_index":6569,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["users.length",{"_index":6573,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UsersList.html":{}}}],["users.map((user",{"_index":6580,"title":{},"body":{"entities/Course.html":{},"injectables/FeathersRosterService.html":{},"interfaces/ICourseProperties.html":{},"classes/SubmissionItemResponseMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["users.resetpassword",{"_index":13587,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.total",{"_index":18390,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["users.update",{"_index":13586,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users_configuration_path='/tmp/config/users",{"_index":23535,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["userscollection",{"_index":11788,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.createindex",{"_index":11800,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.dropindex('usersearchindex",{"_index":11799,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexes",{"_index":11792,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexexists('usersearchindex",{"_index":11791,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscope",{"_index":20902,"title":{"classes/UserScope.html":{}},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["userscount",{"_index":1170,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["usersearchindex",{"_index":11793,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindex[0].key?.schoolid",{"_index":11796,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindexexists",{"_index":11790,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userservice",{"_index":4737,"title":{"injectables/UserService.html":{}},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.html":{},"injectables/GroupUc.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["userservice.findbyid",{"_index":21606,"title":{},"body":{"injectables/UserService.html":{}}}],["usersfile",{"_index":12067,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["userslist",{"_index":6538,"title":{"classes/UsersList.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["userspermissions",{"_index":1845,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["userspermissions.includes(p",{"_index":1848,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["usersresponse",{"_index":19085,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["usersubmissionexists",{"_index":8247,"title":{},"body":{"injectables/ElementUc.html":{}}}],["userswithemail",{"_index":13126,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail.length",{"_index":13128,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail[0",{"_index":13129,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["usertoicurrentuser",{"_index":7068,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["usertoicurrentuser(accountid",{"_index":7078,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["useruc",{"_index":12787,"title":{"injectables/UserUc.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["userwithpopulatedroles",{"_index":2017,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["uses",{"_index":13917,"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":1307,"title":{},"body":{"modules/AntivirusModule.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":20226,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["using",{"_index":704,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"modules/AuthorizationReferenceModule.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":5465,"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":10310,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["util",{"_index":10820,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/GroupUc.html":{},"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["util.inspect(message).replace(/\\n/g",{"_index":13907,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["utilities",{"_index":14429,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["utilities.format.nestlike",{"_index":14448,"title":{},"body":{"modules/LoggerModule.html":{}}}],["utils",{"_index":3341,"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":17265,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["utils.asarray(id",{"_index":3359,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["utils/error.utils",{"_index":8296,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"dependencies.html":{}}}],["uuidv4",{"_index":12821,"title":{},"body":{"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["v",{"_index":11644,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["v3",{"_index":22914,"title":{},"body":{"todo.html":{}}}],["v3/index",{"_index":22919,"title":{},"body":{"todo.html":{}}}],["v3/tools/external",{"_index":8595,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["v4",{"_index":9913,"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":5388,"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":{},"injectables/OpenGraphProxyService.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validatabletool",{"_index":5373,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.id",{"_index":5405,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.find",{"_index":5409,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.length",{"_index":5403,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.map",{"_index":5398,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validate",{"_index":6098,"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(contextexternaltool",{"_index":6103,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validate(payload",{"_index":13165,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["validate(props",{"_index":4275,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["validate(request",{"_index":13807,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["validate(school",{"_index":18433,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validate(schoolexternaltool",{"_index":18251,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validate(username",{"_index":14387,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["validateandgetexternaltool",{"_index":9643,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateandgetexternaltool(oauth2clientid",{"_index":9668,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecommon",{"_index":8855,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecommon(externaltool",{"_index":8875,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecontextexternaltools",{"_index":9644,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validatecontextexternaltools(courseid",{"_index":9670,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecreate",{"_index":9433,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecreate(externaltool",{"_index":9438,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validated",{"_index":13197,"title":{},"body":{"injectables/JwtValidationAdapter.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validategraceperiod",{"_index":18319,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validategraceperiod(userloginmigration",{"_index":18344,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validatelogosize",{"_index":8763,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelogosize(externaltool",{"_index":8777,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelti11config",{"_index":9434,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatelti11config(externaltool",{"_index":9440,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatenested",{"_index":5836,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":8655,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MoveElementParams.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{}}}],["validatenested()@type(undefined",{"_index":8619,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested({each",{"_index":5828,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["validateoauth2config",{"_index":9435,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateoauth2config(externaltool",{"_index":9441,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateparameter",{"_index":5371,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validateparameter(param",{"_index":5390,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatepassword",{"_index":24,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatepassword(account",{"_index":91,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatereordering(reorderedids",{"_index":2674,"title":{},"body":{"entities/Board.html":{}}}],["validaterocketchatconfig",{"_index":1291,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["validateschoolexternaltool",{"_index":9645,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateschoolexternaltool(schoolid",{"_index":9672,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatestatus",{"_index":11410,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["validatesubject",{"_index":15813,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatesubject(currentuser",{"_index":15824,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatetoken",{"_index":15393,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validatetoken(idtoken",{"_index":15418,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validateupdate",{"_index":9436,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateupdate(toolid",{"_index":9443,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateusersmatch",{"_index":7761,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validateusersmatch(dashboard",{"_index":7769,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validating",{"_index":13196,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation",{"_index":1415,"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":{},"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":1576,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{}}}],["validation.adapter.ts",{"_index":13185,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:13",{"_index":13190,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:25",{"_index":13195,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:30",{"_index":13193,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:36",{"_index":13200,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.error.ts",{"_index":1394,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.error.ts:4",{"_index":1400,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.pipe",{"_index":21653,"title":{},"body":{"modules/ValidationModule.html":{}}}],["validation.pipe.ts",{"_index":10858,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.pipe.ts:12",{"_index":10861,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.service",{"_index":9446,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts",{"_index":5362,"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":8856,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:108",{"_index":8864,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:118",{"_index":8866,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:12",{"_index":6101,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:128",{"_index":8872,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:136",{"_index":8868,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:14",{"_index":5393,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:148",{"_index":8860,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:15",{"_index":18252,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:16",{"_index":8876,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:18",{"_index":9439,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:20",{"_index":6104,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:24",{"_index":5389,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:25",{"_index":18249,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:28",{"_index":9444,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:32",{"_index":5377,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:45",{"_index":5374,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:53",{"_index":5386,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:60",{"_index":9442,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:65",{"_index":5391,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:7",{"_index":18431,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:72",{"_index":8862,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:73",{"_index":5380,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:76",{"_index":8870,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:81",{"_index":5384,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:86",{"_index":8858,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:89",{"_index":5382,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:9",{"_index":18246,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:95",{"_index":8874,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation_error",{"_index":21646,"title":{},"body":{"classes/ValidationError.html":{}}}],["validationerror",{"_index":503,"title":{"classes/ValidationError.html":{}},"body":{"controllers/AccountController.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('grace_period_expired",{"_index":18348,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validationerror('user",{"_index":7084,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["validationerror(`tool_id_mismatch",{"_index":9451,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validationerror(`tool_name_duplicate",{"_index":8879,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror(`tool_param_name",{"_index":8884,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror.children",{"_index":1455,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.children.foreach((childerror",{"_index":1456,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.constraints",{"_index":1451,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.property",{"_index":1449,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrordetailresponse",{"_index":1427,"title":{"classes/ValidationErrorDetailResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["validationerrordetailresponse(propertypath",{"_index":1454,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrorlogmessage",{"_index":8289,"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/TooManyPseudonymsLoggableException.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":1401,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ErrorLoggable.html":{}}}],["validationmetadata",{"_index":8322,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.context?.privacyprotected",{"_index":8324,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.propertyname",{"_index":8323,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmodule",{"_index":6428,"title":{"modules/ValidationModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{},"modules.html":{}}}],["validationpipe",{"_index":10860,"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":{},"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/ClassSortParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.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/GroupIdParams.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/LinkContentBody.html":{},"classes/LinkElementContentBody.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/PseudonymParams.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":23197,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["validcourses",{"_index":9723,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validcourses.push(course",{"_index":9726,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validfrom",{"_index":10924,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["validjwt",{"_index":7010,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["validperiod",{"_index":11006,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["validuntil",{"_index":10925,"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/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":{},"classes/ClassSortParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.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":{},"classes/FilterUserParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/GroupUc.html":{},"classes/GuardAgainst.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContentBody.html":{},"interfaces/LinkElementProps.html":{},"injectables/Logger.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PaginationParams.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PropertyData.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"classes/RecursiveCopyVisitor.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/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":{},"additional-documentation/nestjs-application/testing.html":{}}}],["value.length",{"_index":18933,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{}}}],["value.loggable",{"_index":14873,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["value.trim().length",{"_index":18956,"title":{},"body":{"classes/StringValidator.html":{}}}],["value[0",{"_index":13628,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["values",{"_index":1581,"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/SystemEntity.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["values.ts",{"_index":1778,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:2",{"_index":1782,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:4",{"_index":1781,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["var",{"_index":11812,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["variable",{"_index":18558,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["variables",{"_index":18850,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["various",{"_index":23109,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["vars",{"_index":2615,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.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":21907,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["vcdo.options",{"_index":21909,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["verbatim",{"_index":22273,"title":{},"body":{"license.html":{}}}],["verbose",{"_index":11601,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["verified",{"_index":1255,"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":23442,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyfeaturesenabled",{"_index":21782,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifyfeaturesenabled(schoolid",{"_index":21795,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifying",{"_index":23443,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyoptions",{"_index":1620,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["version",{"_index":5007,"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":20760,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.interface.ts:2",{"_index":20761,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.service",{"_index":9313,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["version.service.ts",{"_index":9466,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:16",{"_index":9477,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:32",{"_index":9491,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:39",{"_index":9480,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:52",{"_index":9489,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:60",{"_index":9483,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:68",{"_index":9487,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:7",{"_index":9494,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:76",{"_index":9485,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["versionkey",{"_index":9883,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["versionnumber",{"_index":5232,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["versions",{"_index":22287,"title":{},"body":{"license.html":{}}}],["vertrauensstufe",{"_index":17967,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["very",{"_index":11757,"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":6154,"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":{},"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":8014,"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":6537,"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":{},"classes/UsersList.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":{}}}],["videoconference(props",{"_index":22004,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconference.options.everybodyjoinsasmoderator",{"_index":21925,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference.options.moderatormustapprovejoinrequests",{"_index":21927,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference2",{"_index":21707,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconference:31",{"_index":21885,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:34",{"_index":21886,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:6",{"_index":21884,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconferenceapimodule",{"_index":18512,"title":{"modules/VideoConferenceApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules.html":{}}}],["videoconferencebaseresponse",{"_index":8015,"title":{"classes/VideoConferenceBaseResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencebaseresponse:10",{"_index":8022,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:12",{"_index":8020,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:8",{"_index":8023,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferenceconfiguration",{"_index":21697,"title":{"classes/VideoConferenceConfiguration.html":{}},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.bbb",{"_index":21703,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.videoconference",{"_index":21969,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["videoconferencecontroller",{"_index":21692,"title":{"controllers/VideoConferenceController.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencecreateparams",{"_index":21727,"title":{"classes/VideoConferenceCreateParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencecreateuc",{"_index":21688,"title":{"injectables/VideoConferenceCreateUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["videoconferencedeprecatedcontroller",{"_index":21835,"title":{"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedeprecateduc",{"_index":21848,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedo",{"_index":21822,"title":{"classes/VideoConferenceDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceenduc",{"_index":21689,"title":{"injectables/VideoConferenceEndUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["videoconferenceinfo",{"_index":21734,"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":21736,"title":{"classes/VideoConferenceInfoResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferenceinforesponse})@apiresponse({status",{"_index":21718,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferenceinfouc",{"_index":21690,"title":{"injectables/VideoConferenceInfoUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["videoconferencejoin",{"_index":21735,"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":21957,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse",{"_index":21737,"title":{"classes/VideoConferenceJoinResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse})@apiresponse({status",{"_index":21724,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencejoinuc",{"_index":21691,"title":{"injectables/VideoConferenceJoinUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["videoconferencemapper",{"_index":21731,"title":{"classes/VideoConferenceMapper.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemapper.tovideoconferenceinforesponse(dto",{"_index":21754,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencejoinresponse(dto",{"_index":21751,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferenceoptions(params",{"_index":21747,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencestateresponse(from.state",{"_index":22025,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemodule",{"_index":21687,"title":{"modules/VideoConferenceModule.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["videoconferenceoptions",{"_index":21656,"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":{}}}],["videoconferenceoptionsdo",{"_index":21826,"title":{"classes/VideoConferenceOptionsDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["videoconferenceoptionsresponse",{"_index":21889,"title":{"classes/VideoConferenceOptionsResponse.html":{}},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["videoconferenceoptionsresponse(videoconferenceinfo.options",{"_index":21956,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencerepo",{"_index":21963,"title":{"injectables/VideoConferenceRepo.html":{}},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceresponsedeprecatedmapper",{"_index":21846,"title":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptobaseresponse(dto",{"_index":21870,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptoinforesponse(dto",{"_index":21867,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptojoinresponse(dto",{"_index":21865,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsemapper",{"_index":22018,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferences",{"_index":21670,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["videoconferencescope",{"_index":18475,"title":{},"body":{"classes/ScopeRef.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope'})@isenum(videoconferencescope",{"_index":22030,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope.course",{"_index":22001,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescope.event",{"_index":21999,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescopeparams",{"_index":21710,"title":{"classes/VideoConferenceScopeParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferenceservice",{"_index":21784,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencesettings",{"_index":12606,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencestate",{"_index":21677,"title":{},"body":{"classes/VideoConference-1.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.finished",{"_index":21881,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.not_started",{"_index":21901,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.running",{"_index":21859,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse",{"_index":8021,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.finished",{"_index":21954,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.not_started",{"_index":21952,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.running",{"_index":21953,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferenceuc",{"_index":21852,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencingscopemapping",{"_index":22003,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencingscopemapping[entity.targetmodel",{"_index":22008,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videocount",{"_index":2228,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["view",{"_index":15167,"title":{},"body":{"injectables/NewsUc.html":{},"license.html":{}}}],["viewer",{"_index":2178,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["viewers",{"_index":6861,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["violates",{"_index":22596,"title":{},"body":{"license.html":{}}}],["violation",{"_index":22647,"title":{},"body":{"license.html":{}}}],["virtuals",{"_index":22148,"title":{},"body":{"dependencies.html":{}}}],["virus",{"_index":10147,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["virus_detected",{"_index":1331,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"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":{},"interfaces/ScanResult.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["virus_signature",{"_index":1332,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"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":{},"interfaces/ScanResult.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["viruses",{"_index":1363,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["viruses.join",{"_index":1367,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["visibilities",{"_index":22896,"title":{},"body":{"todo.html":{}}}],["visibility",{"_index":4076,"title":{},"body":{"classes/CardResponse.html":{},"classes/PatchVisibilityParams.html":{},"injectables/RoomsUc.html":{}}}],["visibility.params.ts",{"_index":16549,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibility.params.ts:12",{"_index":16550,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibilitysettings",{"_index":4067,"title":{},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{}}}],["visibilitysettingsresponse",{"_index":4074,"title":{"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["visible",{"_index":6860,"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":8535,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visibletools.filter",{"_index":8539,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visitcard",{"_index":2808,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcard(card",{"_index":2817,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcardasync",{"_index":2861,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(card",{"_index":2854,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(original",{"_index":17129,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildren",{"_index":17243,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildren(parent",{"_index":17252,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildrenasync",{"_index":17201,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenasync(domainobject",{"_index":17206,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenof",{"_index":17119,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildrenof(boarddo",{"_index":17131,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumn",{"_index":2809,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumn(column",{"_index":2820,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnasync",{"_index":2862,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(column",{"_index":2853,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(original",{"_index":17133,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumnboard",{"_index":2810,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboard(columnboard",{"_index":2822,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboardasync",{"_index":2863,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(columnboard",{"_index":2852,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(original",{"_index":17135,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitexternaltoolelement",{"_index":2811,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelement(externaltoolelement",{"_index":2825,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelementasync",{"_index":2864,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(externaltoolelement",{"_index":2860,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(original",{"_index":17137,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitfileelement",{"_index":2812,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelement(fileelement",{"_index":2828,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelementasync",{"_index":2865,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(fileelement",{"_index":2855,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(original",{"_index":17139,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitlinkelement",{"_index":2813,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelement(linkelement",{"_index":2831,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelementasync",{"_index":2866,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(linkelement",{"_index":2856,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(original",{"_index":17141,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitor",{"_index":2762,"title":{},"body":{"classes/BoardComposite.html":{},"injectables/BoardDoCopyService.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["visitor.copy(params.original",{"_index":3306,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["visitor.ts",{"_index":2807,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:12",{"_index":2824,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:13",{"_index":2821,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:14",{"_index":2819,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:15",{"_index":2830,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:16",{"_index":2833,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:17",{"_index":2836,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:18",{"_index":2839,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:19",{"_index":2842,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:20",{"_index":2827,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:24",{"_index":2872,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:25",{"_index":2871,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:26",{"_index":2870,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:27",{"_index":2874,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:28",{"_index":2875,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:29",{"_index":2876,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:30",{"_index":2877,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:31",{"_index":2878,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:32",{"_index":2873,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.visitcard(this",{"_index":3962,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcardasync(this",{"_index":3963,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcolumn(this",{"_index":4715,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnasync(this",{"_index":4716,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnboard(this",{"_index":4732,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitcolumnboardasync(this",{"_index":4733,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitexternaltoolelement(this",{"_index":8644,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitexternaltoolelementasync(this",{"_index":8645,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitfileelement(this",{"_index":9843,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitfileelementasync(this",{"_index":9844,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitlinkelement(this",{"_index":14333,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitlinkelementasync(this",{"_index":14334,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitrichtextelement(this",{"_index":17474,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitrichtextelementasync(this",{"_index":17475,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitsubmissioncontainerelement(this",{"_index":18974,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissioncontainerelementasync(this",{"_index":18975,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissionitem(this",{"_index":19053,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitor.visitsubmissionitemasync(this",{"_index":19054,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitrichtextelement",{"_index":2814,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelement(richtextelement",{"_index":2834,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelementasync",{"_index":2867,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitrichtextelementasync(original",{"_index":17143,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitrichtextelementasync(richtextelement",{"_index":2857,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelement",{"_index":2815,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelement(submissioncontainerelement",{"_index":2837,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelementasync",{"_index":2868,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelementasync(original",{"_index":17145,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissioncontainerelementasync(submissioncontainerelement",{"_index":2858,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitem",{"_index":2816,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submission",{"_index":17261,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submissionitem",{"_index":2840,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitsubmissionitemasync",{"_index":2869,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(original",{"_index":17147,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissionitemasync(submission",{"_index":5639,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submissionitem",{"_index":2859,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visual",{"_index":22233,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vo",{"_index":12015,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["voicebridge",{"_index":2164,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["voiceparticipantcount",{"_index":2229,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["void",{"_index":148,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.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/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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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":{},"classes/Group.html":{},"interfaces/GroupProps.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/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/Logger.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/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RpcMessageProducer.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":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{}}}],["volume",{"_index":22501,"title":{},"body":{"license.html":{}}}],["von",{"_index":17956,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["vorname",{"_index":17959,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["vs",{"_index":13143,"title":{},"body":{"interfaces/JwtConstants.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["vscode",{"_index":22203,"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":23478,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/lauch",{"_index":22920,"title":{},"body":{"todo.html":{}}}],["vscode/launch.default.json",{"_index":23038,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/settings.default.json",{"_index":23476,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["wait",{"_index":1771,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["waiting",{"_index":21931,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["waive",{"_index":22460,"title":{},"body":{"license.html":{}}}],["waiver",{"_index":22828,"title":{},"body":{"license.html":{}}}],["want",{"_index":4663,"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":12080,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["warn(message",{"_index":12091,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["warning",{"_index":14410,"title":{},"body":{"injectables/Logger.html":{}}}],["warning(loggable",{"_index":14419,"title":{},"body":{"injectables/Logger.html":{}}}],["warranties",{"_index":22383,"title":{},"body":{"license.html":{}}}],["warranty",{"_index":22382,"title":{},"body":{"license.html":{}}}],["watch",{"_index":22903,"title":{},"body":{"todo.html":{}}}],["way",{"_index":3649,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/CourseCopyUC.html":{},"injectables/LdapStrategy.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.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":22511,"title":{},"body":{"license.html":{}}}],["web",{"_index":5295,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["weblink",{"_index":5323,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["weights",{"_index":11804,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["weird",{"_index":6884,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["welcome",{"_index":2078,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{}}}],["well",{"_index":22367,"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":13526,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["wenn",{"_index":21968,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["went",{"_index":12618,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["werden",{"_index":4833,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wether",{"_index":23744,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["whatever",{"_index":18485,"title":{},"body":{"classes/ServerConsole.html":{},"license.html":{}}}],["whereas",{"_index":23137,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wherelastloginsystemchangeisbetween",{"_index":20909,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["wherelastloginsystemchangeisbetween(startdate",{"_index":21566,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan",{"_index":21561,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(date",{"_index":21568,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(query.lastloginsystemchangesmallerthan",{"_index":20908,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["wherever",{"_index":13898,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["whether",{"_index":7060,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["whitelist",{"_index":10868,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["whitelisted",{"_index":13178,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["whitespace",{"_index":14911,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["whole",{"_index":15238,"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":19061,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["whose",{"_index":22551,"title":{},"body":{"license.html":{}}}],["wichtige",{"_index":4825,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["widely",{"_index":22395,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["widespread",{"_index":22315,"title":{},"body":{"license.html":{}}}],["width",{"_index":6248,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["width=100",{"_index":5321,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["wildfly",{"_index":23563,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["willkommen",{"_index":4812,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["window",{"_index":22403,"title":{},"body":{"license.html":{},"todo.html":{}}}],["windowfeatures",{"_index":5320,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["windows",{"_index":22879,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["winston",{"_index":8342,"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":14434,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.combine",{"_index":14441,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.ms",{"_index":14447,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.timestamp",{"_index":14442,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.transports.console",{"_index":14438,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston_module_provider",{"_index":8341,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonlogger",{"_index":8331,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonmodule",{"_index":14430,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winstonmodule.forrootasync",{"_index":14432,"title":{},"body":{"modules/LoggerModule.html":{}}}],["wip",{"_index":16436,"title":{},"body":{"injectables/OpenGraphProxyService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["wipo",{"_index":22452,"title":{},"body":{"license.html":{}}}],["wir",{"_index":4820,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wired",{"_index":23466,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wish",{"_index":22294,"title":{},"body":{"license.html":{}}}],["withbase64logo",{"_index":7315,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withbasicconfig",{"_index":8702,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withcredentials",{"_index":11448,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["withcustomparameters",{"_index":8722,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["withcustomparameters(number",{"_index":7312,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata",{"_index":15538,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata(oauth2params",{"_index":7277,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withguestpolicy",{"_index":2116,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withguestpolicy(guestpolicy",{"_index":2122,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withid",{"_index":18683,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["withid(id",{"_index":18684,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["within",{"_index":3833,"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":7845,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["withldapconfig",{"_index":19343,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withldapconfig(otherparams",{"_index":19346,"title":{},"body":{"classes/SystemFactory.html":{}}}],["withlogouturl",{"_index":2117,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(logouturl",{"_index":2124,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(options.logouturl",{"_index":21815,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["withlti11config",{"_index":8703,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withlti11config(customparam",{"_index":7310,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withmuteonstart",{"_index":2118,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withmuteonstart(value",{"_index":2126,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withname",{"_index":8704,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withname(name",{"_index":8709,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withoauth2config",{"_index":8705,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withoauth2config(clientid",{"_index":8711,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withoauth2config(customparam",{"_index":7308,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withoauthclientid",{"_index":14671,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthclientid(oauthclientid",{"_index":14673,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthconfig",{"_index":19344,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withoidcconfig",{"_index":19345,"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":22874,"title":{},"body":{"todo.html":{}}}],["withoutcontext",{"_index":4766,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["withoutdatedsince",{"_index":21562,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(date",{"_index":21570,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(query.outdatedsince",{"_index":20912,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["withrole",{"_index":2191,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/UserFactory.html":{}}}],["withrole(role",{"_index":20996,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrole(value",{"_index":2195,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withroleanduserid",{"_index":20044,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withroleanduserid(role",{"_index":20046,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withrolebyname",{"_index":20992,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrolebyname(name",{"_index":20998,"title":{},"body":{"classes/UserFactory.html":{}}}],["withroles",{"_index":20959,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withroles(roles",{"_index":20960,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withschoolexternaltoolref",{"_index":5794,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolexternaltoolref(schooltoolid",{"_index":5795,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolid",{"_index":18094,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withschoolid(schoolid",{"_index":18095,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withsystemid",{"_index":663,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withsystemid(id",{"_index":678,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withteamuser",{"_index":20045,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withteamuser(teamuser",{"_index":20048,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withuser",{"_index":664,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuser(user",{"_index":680,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuserid",{"_index":2192,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/TeamUserFactory.html":{}}}],["withuserid(currentuserid",{"_index":21923,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["withuserid(userid",{"_index":20154,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["withuserid(value",{"_index":2197,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withuserids",{"_index":4303,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withuserids(userids",{"_index":4304,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withwelcome",{"_index":2119,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withwelcome(welcome",{"_index":2128,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["wont_check",{"_index":10030,"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":23280,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["words",{"_index":11808,"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":22410,"title":{},"body":{"license.html":{}}}],["worker",{"_index":8150,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["worker.manufacture",{"_index":8151,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["working",{"_index":11617,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":23306,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["works",{"_index":10686,"title":{},"body":{"classes/FilterNewsParams.html":{},"injectables/NewsRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["worldwide",{"_index":22715,"title":{},"body":{"license.html":{}}}],["wouldn't",{"_index":1853,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["wrap",{"_index":2642,"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":7568,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrap(modelentity).init",{"_index":7677,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["wrap(props.course).toreference",{"_index":2664,"title":{},"body":{"entities/Board.html":{}}}],["wrap(props.school).toreference",{"_index":12018,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.system).toreference",{"_index":12019,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.user).toreference",{"_index":7575,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrapped",{"_index":23315,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wrappedreference",{"_index":2634,"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":5230,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["writable",{"_index":8041,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["write",{"_index":1805,"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":1810,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["write/read",{"_index":23644,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writecourseids",{"_index":20008,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses",{"_index":20005,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.includes(c",{"_index":20007,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.map((c",{"_index":20009,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writefile",{"_index":10284,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writefile(filepath",{"_index":10319,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writelessons",{"_index":20014,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writen",{"_index":23725,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writer.module",{"_index":18492,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["writer.module.ts",{"_index":5542,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["writer.service",{"_index":5543,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["writer.service.ts",{"_index":5544,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer.service.ts:5",{"_index":5546,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer/console",{"_index":5541,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["writing",{"_index":22793,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["written",{"_index":22518,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wrong",{"_index":7773,"title":{},"body":{"injectables/DashboardUc.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["wrongly",{"_index":23712,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["www",{"_index":13545,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["wünsche",{"_index":4868,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["x",{"_index":1271,"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":{},"interfaces/ICalendarEvent.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["xml",{"_index":6135,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2js",{"_index":5122,"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":6136,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2json(xml",{"_index":6138,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object",{"_index":6132,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object(xml",{"_index":6133,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xmlbuilder",{"_index":5102,"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":5177,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xmlns:blti",{"_index":5178,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:ext",{"_index":5239,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:lticm",{"_index":5179,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:lticp",{"_index":5180,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:mnf",{"_index":5235,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:res",{"_index":5237,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:xsi",{"_index":5181,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xpos",{"_index":7550,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["xposition",{"_index":7583,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["xsd/imsbasiclti_v1p0",{"_index":5211,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticc_v1p0",{"_index":5210,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticm_v1p0",{"_index":5212,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticp_v1p0",{"_index":5213,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd",{"_index":5215,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticc_v1p0.xsd",{"_index":5214,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticm_v1p0.xsd",{"_index":5216,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticp_v1p0.xsd",{"_index":5217,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsi:schemalocation",{"_index":5184,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xxxx",{"_index":23492,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["y",{"_index":7372,"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":{}}}],["yagni",{"_index":23089,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yagni.more",{"_index":23296,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["year",{"_index":4208,"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":{},"injectables/SchoolYearService.html":{}}}],["year.service.ts",{"_index":18449,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:10",{"_index":18454,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:16",{"_index":18453,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:6",{"_index":18452,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["years",{"_index":12224,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.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":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoSearchListResponse.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/ExternalToolElement.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"injectables/ExternalToolPseudonymRepo.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/H5PEditorTestModule.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":{},"classes/LinkElement.html":{},"injectables/LocalStrategy.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponseMapper.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":{}}}],["yesterday",{"_index":10118,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["yet.'})@apiresponse({status",{"_index":21840,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["your.config.ts",{"_index":23754,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.module.ts",{"_index":23758,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.service.ts",{"_index":23756,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your_s3_uniq_connection_token",{"_index":23755,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourloggable",{"_index":23248,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourloggable(userid",{"_index":23253,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourmodule",{"_index":23759,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourself",{"_index":22729,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yourservice",{"_index":23284,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["youruc",{"_index":23249,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["ypos",{"_index":7551,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["yposition",{"_index":7584,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["yyyy",{"_index":14443,"title":{},"body":{"modules/LoggerModule.html":{}}}],["z]|[0",{"_index":10783,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["za",{"_index":10782,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["zip",{"_index":5121,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["zipbuilder",{"_index":5103,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":4840,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zum",{"_index":4843,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zusammengefasst",{"_index":4849,"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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:249\n \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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/learnroom/service';\nimport { LegacySchoolService } from '@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\tswitch (contextExternalTool.contextRef.type) {\n\t\t\t\t\tcase ToolContextType.COURSE: {\n\t\t\t\t\t\tconst course: Course = await this.courseService.findById(contextExternalTool.contextRef.id);\n\n\t\t\t\t\t\treturn course.name;\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(\n\t\t\t\t\t\t\t`${customParameter.type}/${contextExternalTool.contextRef.type as string}`\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\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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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_exports\n\n\n\ncluster_AccountModule_imports\n\n\n\ncluster_AccountModule_providers\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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/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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 options\n \n AntivirusModuleOptions\n \n\n \n No\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 NodeClam from 'clamscan';\nimport { AntivirusService } from './antivirus.service';\nimport { AntivirusModuleOptions } from './interfaces';\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\t{\n\t\t\t\t\tprovide: NodeClam,\n\t\t\t\t\tuseFactory: () => {\n\t\t\t\t\t\tconst isLocalhost = options.hostname === 'localhost';\n\n\t\t\t\t\t\treturn new NodeClam().init({\n\t\t\t\t\t\t\tdebugMode: isLocalhost,\n\t\t\t\t\t\t\tclamdscan: {\n\t\t\t\t\t\t\t\thost: options.hostname,\n\t\t\t\t\t\t\t\tport: options.port,\n\t\t\t\t\t\t\t\tbypassTest: isLocalhost,\n\t\t\t\t\t\t\t\tlocalFallback: false,\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\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/interfaces/antivirus.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 hostname\n \n \n \n \n port\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 hostname\n \n \n \n \n \n \n \n \n hostname: string\n\n \n \n\n\n \n \n Type : string\n\n \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\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 export interface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n\thostname: string;\n\tport: number;\n}\n\nexport interface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\nexport interface ScanResult {\n\tvirus_detected?: boolean;\n\tvirus_signature?: string;\n\terror?: 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/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 Public\n Async\n checkStream\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, clamConnection: NodeClam)\n \n \n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.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 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 clamConnection\n \n \n NodeClam\n \n \n \n No\n \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 checkStream\n \n \n \n \n \n \n \n checkStream(stream: Readable)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.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 stream\n \n Readable\n \n\n \n No\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 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: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 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 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: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 requestToken\n \n string | undefined\n \n\n \n No\n \n\n\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 '@modules/files-storage/files-storage.const';\nimport NodeClam from 'clamscan';\nimport { Readable } from 'stream';\nimport { AntivirusServiceOptions, ScanResult } from './interfaces';\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\tprivate readonly clamConnection: NodeClam\n\t) {}\n\n\tpublic async checkStream(stream: Readable) {\n\t\tconst scanResult: ScanResult = {\n\t\t\tvirus_detected: undefined,\n\t\t\tvirus_signature: undefined,\n\t\t\terror: undefined,\n\t\t};\n\t\ttry {\n\t\t\tconst { isInfected, viruses } = await this.clamConnection.scanStream(stream);\n\t\t\tif (isInfected === true) {\n\t\t\t\tscanResult.virus_detected = true;\n\t\t\t\tscanResult.virus_signature = viruses.join(',');\n\t\t\t} else if (isInfected === null) {\n\t\t\t\tscanResult.virus_detected = undefined;\n\t\t\t\tscanResult.error = '';\n\t\t\t} else {\n\t\t\t\tscanResult.virus_detected = false;\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\tnull,\n\t\t\t\tErrorUtils.createHttpExceptionOptions(err, 'AntivirusService:checkStream')\n\t\t\t);\n\t\t}\n\n\t\treturn scanResult;\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/interfaces/antivirus.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 export interface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n\thostname: string;\n\tport: number;\n}\n\nexport interface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\nexport interface ScanResult {\n\tvirus_detected?: boolean;\n\tvirus_signature?: string;\n\terror?: 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/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 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_providers\n\n\n\ncluster_AuthenticationModule_imports\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 '@modules/account';\nimport { OauthModule } from '@modules/oauth/oauth.module';\nimport { RoleModule } from '@modules/role';\nimport { SystemModule } from '@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 (response.error) {\n\t\t\tconst error = JSON.stringify(response.error);\n\t\t\tthrow new Error(error);\n\t\t}\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:17\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: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 account\n \n AccountDto\n \n\n \n No\n \n\n\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: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 user\n \n CreateJwtPayload\n \n\n \n No\n \n\n\n \n \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: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 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 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: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 password\n \n string\n \n\n \n No\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: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 username\n \n string\n \n\n \n No\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: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 jwtToken\n \n string\n \n\n \n No\n \n\n\n \n \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: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 id\n \n string\n \n\n \n No\n \n\n\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 '@modules/account';\n// invalid import\nimport { AccountDto } from '@modules/account/services/dto';\n// invalid import, can produce dependency cycles\nimport type { IServerConfig } from '@modules/server';\nimport { randomUUID } from 'crypto';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { JwtValidationAdapter } from '../strategy/jwt-validation.adapter';\nimport { BruteForceError, UnauthorizedLoggableException } from '../errors';\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"},"classes/AuthenticationValues.html":{"url":"classes/AuthenticationValues.html","title":"class - AuthenticationValues","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthenticationValues\n\n\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/authentication-values.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n keyValue\n \n \n secretValue\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AuthenticationValues)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/authentication-values.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 AuthenticationValues\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n keyValue\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/authentication-values.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n secretValue\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/authentication-values.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class AuthenticationValues {\n\tkeyValue: string;\n\n\tsecretValue: string;\n\n\tconstructor(props: AuthenticationValues) {\n\t\tthis.keyValue = props.keyValue;\n\t\tthis.secretValue = props.secretValue;\n\t}\n}\n\n \n\n\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/domain/type/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/domain/mapper/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/domain/mapper/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 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/domain/mapper/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 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/domain/mapper/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 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 '../type';\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/domain/service/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/domain/service/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 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/domain/service/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 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/domain/service/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 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/domain/service/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 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/domain/service/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 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/domain/type/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/domain/type/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 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/domain/type/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/domain/type/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 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_imports\n\n\n\ncluster_AuthorizationModule_exports\n\n\n\ncluster_AuthorizationModule_providers\n\n\n\n\nFeathersModule\n\nFeathersModule\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nAuthorizationModule -->\n\nFeathersModule->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\nCourseGroupRule\n\nCourseGroupRule\n\nAuthorizationModule -->\n\nCourseGroupRule->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\nGroupRule\n\nGroupRule\n\nAuthorizationModule -->\n\nGroupRule->AuthorizationModule\n\n\n\n\n\nLegacySchoolRule\n\nLegacySchoolRule\n\nAuthorizationModule -->\n\nLegacySchoolRule->AuthorizationModule\n\n\n\n\n\nLessonRule\n\nLessonRule\n\nAuthorizationModule -->\n\nLessonRule->AuthorizationModule\n\n\n\n\n\nRuleManager\n\nRuleManager\n\nAuthorizationModule -->\n\nRuleManager->AuthorizationModule\n\n\n\n\n\nSchoolExternalToolRule\n\nSchoolExternalToolRule\n\nAuthorizationModule -->\n\nSchoolExternalToolRule->AuthorizationModule\n\n\n\n\n\nSubmissionRule\n\nSubmissionRule\n\nAuthorizationModule -->\n\nSubmissionRule->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\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 CourseGroupRule\n \n \n CourseRule\n \n \n FeathersAuthProvider\n \n \n FeathersAuthorizationService\n \n \n GroupRule\n \n \n LegacySchoolRule\n \n \n LessonRule\n \n \n RuleManager\n \n \n SchoolExternalToolRule\n \n \n SubmissionRule\n \n \n TaskRule\n \n \n TeamRule\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 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 { Module } from '@nestjs/common';\nimport { UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { FeathersModule } from '@shared/infra/feathers';\nimport {\n\tBoardDoRule,\n\tContextExternalToolRule,\n\tCourseGroupRule,\n\tCourseRule,\n\tLessonRule,\n\tSchoolExternalToolRule,\n\tSubmissionRule,\n\tTaskRule,\n\tTeamRule,\n\tUserRule,\n\tUserLoginMigrationRule,\n\tLegacySchoolRule,\n\tGroupRule,\n} from './domain/rules';\nimport { AuthorizationHelper, AuthorizationService, RuleManager } from './domain';\nimport { FeathersAuthorizationService, FeathersAuthProvider } from './feathers';\n\n@Module({\n\timports: [FeathersModule, LoggerModule],\n\tproviders: [\n\t\tFeathersAuthorizationService,\n\t\tFeathersAuthProvider,\n\t\tAuthorizationService,\n\t\tUserRepo,\n\t\tRuleManager,\n\t\tAuthorizationHelper,\n\t\t// rules\n\t\tBoardDoRule,\n\t\tContextExternalToolRule,\n\t\tCourseGroupRule,\n\t\tCourseRule,\n\t\tGroupRule,\n\t\tLessonRule,\n\t\tSchoolExternalToolRule,\n\t\tSubmissionRule,\n\t\tTaskRule,\n\t\tTeamRule,\n\t\tUserRule,\n\t\tUserLoginMigrationRule,\n\t\tLegacySchoolRule,\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"},"modules/AuthorizationReferenceModule.html":{"url":"modules/AuthorizationReferenceModule.html","title":"module - AuthorizationReferenceModule","body":"\n \n\n\n\n\n Modules\n AuthorizationReferenceModule\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_AuthorizationReferenceModule\n\n\n\ncluster_AuthorizationReferenceModule_exports\n\n\n\ncluster_AuthorizationReferenceModule_providers\n\n\n\ncluster_AuthorizationReferenceModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule -->\n\nAuthorizationModule->AuthorizationReferenceModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAuthorizationReferenceModule -->\n\nLoggerModule->AuthorizationReferenceModule\n\n\n\n\n\nAuthorizationReferenceService \n\nAuthorizationReferenceService \n\nAuthorizationReferenceService -->\n\nAuthorizationReferenceModule->AuthorizationReferenceService \n\n\n\n\n\nAuthorizationHelper\n\nAuthorizationHelper\n\nAuthorizationReferenceModule -->\n\nAuthorizationHelper->AuthorizationReferenceModule\n\n\n\n\n\nAuthorizationReferenceService\n\nAuthorizationReferenceService\n\nAuthorizationReferenceModule -->\n\nAuthorizationReferenceService->AuthorizationReferenceModule\n\n\n\n\n\nCourseGroupRepo\n\nCourseGroupRepo\n\nAuthorizationReferenceModule -->\n\nCourseGroupRepo->AuthorizationReferenceModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nAuthorizationReferenceModule -->\n\nCourseRepo->AuthorizationReferenceModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nAuthorizationReferenceModule -->\n\nLegacySchoolRepo->AuthorizationReferenceModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nAuthorizationReferenceModule -->\n\nLessonRepo->AuthorizationReferenceModule\n\n\n\n\n\nReferenceLoader\n\nReferenceLoader\n\nAuthorizationReferenceModule -->\n\nReferenceLoader->AuthorizationReferenceModule\n\n\n\n\n\nSchoolExternalToolRepo\n\nSchoolExternalToolRepo\n\nAuthorizationReferenceModule -->\n\nSchoolExternalToolRepo->AuthorizationReferenceModule\n\n\n\n\n\nSubmissionRepo\n\nSubmissionRepo\n\nAuthorizationReferenceModule -->\n\nSubmissionRepo->AuthorizationReferenceModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nAuthorizationReferenceModule -->\n\nTaskRepo->AuthorizationReferenceModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nAuthorizationReferenceModule -->\n\nTeamsRepo->AuthorizationReferenceModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAuthorizationReferenceModule -->\n\nUserRepo->AuthorizationReferenceModule\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-reference.module.ts\n \n\n\n\n \n Description\n \n \n This module is part of an intermediate state. In the future it should be replaced by an AuthorizationApiModule.\nFor now it is used where the authorization itself needs to load data from the database.\nAvoid using this module and load the needed data in your use cases and then use the normal AuthorizationModule!\n\n \n\n\n \n \n \n Providers\n \n \n AuthorizationHelper\n \n \n AuthorizationReferenceService\n \n \n CourseGroupRepo\n \n \n CourseRepo\n \n \n LegacySchoolRepo\n \n \n LessonRepo\n \n \n ReferenceLoader\n \n \n SchoolExternalToolRepo\n \n \n SubmissionRepo\n \n \n TaskRepo\n \n \n TeamsRepo\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n AuthorizationReferenceService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { ToolModule } from '@modules/tool';\nimport { LoggerModule } from '@src/core/logger';\nimport { BoardModule } from '@modules/board';\nimport { ReferenceLoader, AuthorizationReferenceService, AuthorizationHelper } from './domain';\nimport { AuthorizationModule } from './authorization.module';\n\n/**\n * This module is part of an intermediate state. In the future it should be replaced by an AuthorizationApiModule.\n * For now it is used where the authorization itself needs to load data from the database.\n * Avoid using this module and load the needed data in your use cases and then use the normal AuthorizationModule!\n */\n@Module({\n\t// TODO: remove forwardRef to TooModule N21-1055\n\timports: [AuthorizationModule, forwardRef(() => ToolModule), forwardRef(() => BoardModule), LoggerModule],\n\tproviders: [\n\t\tAuthorizationHelper,\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\tAuthorizationReferenceService,\n\t],\n\texports: [AuthorizationReferenceService],\n})\nexport class AuthorizationReferenceModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthorizationReferenceService.html":{"url":"injectables/AuthorizationReferenceService.html","title":"injectable - AuthorizationReferenceService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthorizationReferenceService\n\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/domain/service/authorization-reference.service.ts\n \n\n\n \n Description\n \n \n Should by use only internal in authorization module. See ticket: BC-3990\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 checkPermissionByReferences\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(loader: ReferenceLoader, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/service/authorization-reference.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 loader\n \n \n ReferenceLoader\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 Public\n Async\n checkPermissionByReferences\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/domain/service/authorization-reference.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 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 Returns : Promise\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 hasPermissionByReferences(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/domain/service/authorization-reference.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 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 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 { ReferenceLoader } from './reference.loader';\nimport { AuthorizationContext, AuthorizableReferenceType } from '../type';\nimport { ForbiddenLoggableException } from '../error';\nimport { AuthorizationService } from './authorization.service';\n\n/**\n * Should by use only internal in authorization module. See ticket: BC-3990\n */\n@Injectable()\nexport class AuthorizationReferenceService {\n\tconstructor(private readonly loader: ReferenceLoader, private readonly authorizationService: AuthorizationService) {}\n\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\tpublic async hasPermissionByReferences(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tconst [user, object] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.loader.loadAuthorizableObject(entityName, entityId),\n\t\t]);\n\n\t\tconst hasPermission = this.authorizationService.hasPermission(user, object, context);\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/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/domain/service/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 getUserWithPermissions\n \n \n Public\n hasAllPermissions\n \n \n Public\n hasOneOfPermissions\n \n \n Public\n hasPermission\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ruleManager: RuleManager, authorizationHelper: AuthorizationHelper, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/service/authorization.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 ruleManager\n \n \n RuleManager\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 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 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/domain/service/authorization.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 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 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/domain/service/authorization.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 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 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/domain/service/authorization.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 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 Returns : void\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/domain/service/authorization.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 userId\n \n EntityId\n \n\n \n No\n \n\n\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/domain/service/authorization.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 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 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/domain/service/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 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 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/domain/service/authorization.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 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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport { UserRepo } from '@shared/repo';\nimport { AuthorizationHelper } from './authorization.helper';\nimport { ForbiddenLoggableException } from '../error';\nimport { RuleManager } from './rule-manager';\nimport { AuthorizationContext } from '../type';\n\n@Injectable()\nexport class AuthorizationService {\n\tconstructor(\n\t\tprivate readonly ruleManager: RuleManager,\n\t\tprivate readonly authorizationHelper: AuthorizationHelper,\n\t\tprivate readonly userRepo: UserRepo\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\tpublic checkAllPermissions(user: User, requiredPermissions: string[]): void {\n\t\tif (!this.authorizationHelper.hasAllPermissions(user, requiredPermissions)) {\n\t\t\t// TODO: Should be ForbiddenLoggableException\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 ForbiddenLoggableException\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\t// replace with service method getUserWithPermissions BC-5069\n\t\tconst userWithPopulatedRoles = await this.userRepo.findById(userId, true);\n\n\t\treturn userWithPopulatedRoles;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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\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\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 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 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 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 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:249\n\n \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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 visitExternalToolElement\n \n \n \n \n visitFileElement\n \n \n \n \n visitLinkElement\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: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 card\n \n Card\n \n\n \n No\n \n\n\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: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 column\n \n Column\n \n\n \n No\n \n\n\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: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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElement\n \n \n \n \n \n \nvisitExternalToolElement(externalToolElement: ExternalToolElement)\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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitLinkElement\n \n \n \n \n \n \nvisitLinkElement(linkElement: LinkElement)\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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\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: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 submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\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 { ExternalToolElement } from '../external-tool-element.do';\nimport type { FileElement } from '../file-element.do';\nimport type { LinkElement } from '../link-element.do';\nimport type { RichTextElement } from '../rich-text-element.do';\nimport type { SubmissionContainerElement } from '../submission-container-element.do';\nimport type { 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\tvisitLinkElement(linkElement: LinkElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n\tvisitExternalToolElement(externalToolElement: ExternalToolElement): 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\tvisitLinkElementAsync(linkElement: LinkElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n\tvisitExternalToolElementAsync(externalToolElement: ExternalToolElement): 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 visitExternalToolElementAsync\n \n \n \n \n visitFileElementAsync\n \n \n \n \n visitLinkElementAsync\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: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 card\n \n Card\n \n\n \n No\n \n\n\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: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 column\n \n Column\n \n\n \n No\n \n\n\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: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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElementAsync\n \n \n \n \n \n \nvisitExternalToolElementAsync(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitLinkElementAsync\n \n \n \n \n \n \nvisitLinkElementAsync(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\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: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 submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\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 { ExternalToolElement } from '../external-tool-element.do';\nimport type { FileElement } from '../file-element.do';\nimport type { LinkElement } from '../link-element.do';\nimport type { RichTextElement } from '../rich-text-element.do';\nimport type { SubmissionContainerElement } from '../submission-container-element.do';\nimport type { 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\tvisitLinkElement(linkElement: LinkElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n\tvisitExternalToolElement(externalToolElement: ExternalToolElement): 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\tvisitLinkElementAsync(linkElement: LinkElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n\tvisitExternalToolElementAsync(externalToolElement: ExternalToolElement): 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 copyColumnBoard\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, columnBoardCopyService: ColumnBoardCopyService, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:36\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 columnBoardCopyService\n \n \n ColumnBoardCopyService\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: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 params\n \n BoardCopyParams\n \n\n \n No\n \n\n\n \n \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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyColumnBoard\n \n \n \n \n \n \n \n copyColumnBoard(columnBoardTarget: ColumnBoardTarget, user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.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 columnBoardTarget\n \n ColumnBoardTarget\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 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: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 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 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: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 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 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: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 statuses\n \n CopyStatus[]\n \n\n \n No\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: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 resolved\n \n []\n \n\n \n No\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: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 boardStatus\n \n CopyStatus\n \n\n \n No\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\tBoardExternalReferenceType,\n\tColumnBoard,\n\tColumnboardBoardElement,\n\tColumnBoardTarget,\n\tCourse,\n\tisColumnBoardTarget,\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 { ColumnBoardCopyService } from '@modules/board/service/column-board-copy.service';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@modules/copy-helper';\nimport { getResolvedValues } from '@modules/files-storage/helper';\nimport { LessonCopyService } from '@modules/lesson/service';\nimport { TaskCopyService } from '@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 columnBoardCopyService: ColumnBoardCopyService,\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\n\t\ttry {\n\t\t\tawait this.boardRepo.save(boardCopy);\n\t\t} catch (err) {\n\t\t\tthis.logger.warn(err);\n\t\t\tstatus.status = CopyStatusEnum.FAIL;\n\t\t}\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\tif (element.boardElementType === BoardElementType.ColumnBoard && isColumnBoardTarget(element.target)) {\n\t\t\t\treturn this.copyColumnBoard(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 async copyColumnBoard(\n\t\tcolumnBoardTarget: ColumnBoardTarget,\n\t\tuser: User,\n\t\tdestinationCourse: Course\n\t): Promise {\n\t\treturn this.columnBoardCopyService.copyColumnBoard({\n\t\t\toriginalColumnBoardId: columnBoardTarget.columnBoardId,\n\t\t\tuserId: user.id,\n\t\t\tdestinationExternalReference: {\n\t\t\t\tid: destinationCourse.id,\n\t\t\t\ttype: BoardExternalReferenceType.Course,\n\t\t\t},\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\tif (status.copyEntity instanceof ColumnBoard) {\n\t\t\t\tconst columnBoardElement = new ColumnboardBoardElement({\n\t\t\t\t\ttarget: new ColumnBoardTarget({ columnBoardId: status.copyEntity.id, title: status.copyEntity.title }),\n\t\t\t\t});\n\t\t\t\treferences.push(columnBoardElement);\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:32\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:36\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:40\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\tfirstName?: string;\n\tlastName?: string;\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\tfirstName?: string;\n\tlastName?: string;\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 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 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 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 '@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.getTeachersList().map((user) => {\n\t\t\t\treturn {\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\tfirstName: user.firstName,\n\t\t\t\t\tlastName: user.lastName,\n\t\t\t\t\troles: [BoardRoles.EDITOR],\n\t\t\t\t\tuserRoleEnum: UserRoleEnum.TEACHER,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...course.getSubstitutionTeachersList().map((user) => {\n\t\t\t\treturn {\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\tfirstName: user.firstName,\n\t\t\t\t\tlastName: user.lastName,\n\t\t\t\t\troles: [BoardRoles.EDITOR],\n\t\t\t\t\tuserRoleEnum: UserRoleEnum.SUBSTITUTION_TEACHER,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...course.getStudentsList().map((user) => {\n\t\t\t\treturn {\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\tfirstName: user.firstName,\n\t\t\t\t\tlastName: user.lastName,\n\t\t\t\t\troles: [BoardRoles.READER],\n\t\t\t\t\tuserRoleEnum: UserRoleEnum.STUDENT,\n\t\t\t\t};\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 buildExternalToolElement\n \n \n \n \n buildFileElement\n \n \n \n \n buildLinkElement\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: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 CardNode\n \n\n \n No\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: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 ColumnNode\n \n\n \n No\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: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 ColumnBoardNode\n \n\n \n No\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 buildExternalToolElement\n \n \n \n \n \n \nbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.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 boardNode\n \n ExternalToolElementNodeEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ExternalToolElement\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: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 boardNode\n \n FileElementNode\n \n\n \n No\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 buildLinkElement\n \n \n \n \n \n \nbuildLinkElement(boardNode: LinkElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.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 boardNode\n \n LinkElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : LinkElement\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: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 boardNode\n \n RichTextElementNode\n \n\n \n No\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: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 boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\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: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 boardNode\n \n SubmissionItemNode\n \n\n \n No\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 type {\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tExternalToolElement,\n\tFileElement,\n\tLinkElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\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 { ExternalToolElementNodeEntity } from '../external-tool-element-node.entity';\nimport type { FileElementNode } from '../file-element-node.entity';\nimport type { LinkElementNode } from '../link-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\tbuildLinkElement(boardNode: LinkElementNode): LinkElement;\n\tbuildRichTextElement(boardNode: RichTextElementNode): RichTextElement;\n\tbuildSubmissionContainerElement(boardNode: SubmissionContainerElementNode): SubmissionContainerElement;\n\tbuildSubmissionItem(boardNode: SubmissionItemNode): SubmissionItem;\n\tbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity): ExternalToolElement;\n}\n\n \n\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 buildExternalToolElement\n \n \n Public\n buildFileElement\n \n \n Public\n buildLinkElement\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:30\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:30\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: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 boardNode\n \n CardNode\n \n\n \n No\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:185\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 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: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 boardNode\n \n ColumnNode\n \n\n \n No\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: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 boardNode\n \n ColumnBoardNode\n \n\n \n No\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:39\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 Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildExternalToolElement\n \n \n \n \n \n \nbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.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 boardNode\n \n ExternalToolElementNodeEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ExternalToolElement\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: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 boardNode\n \n FileElementNode\n \n\n \n No\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 buildLinkElement\n \n \n \n \n \n \n \n buildLinkElement(boardNode: LinkElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.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 boardNode\n \n LinkElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : LinkElement\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: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 boardNode\n \n RichTextElementNode\n \n\n \n No\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: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 boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\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: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 SubmissionItemNode\n \n\n \n No\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:201\n \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 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:196\n \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 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: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 boardNode\n \n BoardNode\n \n\n \n No\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\tExternalToolElementNodeEntity,\n\tFileElementNode,\n\tLinkElementNode,\n\tRichTextElementNode,\n\tSubmissionContainerElementNode,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport {\n\tAnyBoardDo,\n\tBoardNodeType,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tExternalToolElement,\n\tFileElement,\n\tLinkElement,\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.LINK_ELEMENT,\n\t\t\tBoardNodeType.RICH_TEXT_ELEMENT,\n\t\t\tBoardNodeType.SUBMISSION_CONTAINER_ELEMENT,\n\t\t\tBoardNodeType.EXTERNAL_TOOL,\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\talternativeText: boardNode.alternativeText,\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 buildLinkElement(boardNode: LinkElementNode): LinkElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new LinkElement({\n\t\t\tid: boardNode.id,\n\t\t\turl: boardNode.url,\n\t\t\ttitle: boardNode.title,\n\t\t\timageUrl: boardNode.imageUrl,\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\tchildren: elements,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tdueDate: boardNode.dueDate,\n\t\t});\n\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\tbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity): ExternalToolElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element: ExternalToolElement = new ExternalToolElement({\n\t\t\tid: boardNode.id,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tcontextExternalToolId: boardNode.contextExternalTool?.id,\n\t\t});\n\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/BoardDoCopyService.html":{"url":"injectables/BoardDoCopyService.html","title":"injectable - BoardDoCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoCopyService\n\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-copy-service/board-do-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 Public\n Async\n copy\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 Async\n copy\n \n \n \n \n \n \n \n copy(params: BoardDoCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/board-do-copy.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 params\n \n BoardDoCopyParams\n \n\n \n No\n \n\n\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 { CopyStatus } from '@modules/copy-helper';\nimport { RecursiveCopyVisitor } from './recursive-copy.visitor';\nimport { SchoolSpecificFileCopyService } from './school-specific-file-copy.interface';\n\nexport type BoardDoCopyParams = {\n\toriginal: AnyBoardDo;\n\tfileCopyService: SchoolSpecificFileCopyService;\n};\n\n@Injectable()\nexport class BoardDoCopyService {\n\tpublic async copy(params: BoardDoCopyParams): Promise {\n\t\tconst visitor = new RecursiveCopyVisitor(params.fileCopyService);\n\n\t\tconst result = await visitor.copy(params.original);\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"},"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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { BoardDoAuthorizable, BoardRoles } from '@shared/domain/domainobject';\nimport { User } from '@shared/domain/entity';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 '@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 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 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 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 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 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 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 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 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_imports\n\n\n\ncluster_BoardModule_providers\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\nUserModule\n\nUserModule\n\nBoardModule -->\n\nUserModule->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\nColumnBoardCopyService \n\nColumnBoardCopyService \n\nColumnBoardCopyService -->\n\nBoardModule->ColumnBoardCopyService \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\nBoardDoCopyService\n\nBoardDoCopyService\n\nBoardModule -->\n\nBoardDoCopyService->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\nColumnBoardCopyService\n\nColumnBoardCopyService\n\nBoardModule -->\n\nColumnBoardCopyService->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\nOpenGraphProxyService\n\nOpenGraphProxyService\n\nBoardModule -->\n\nOpenGraphProxyService->BoardModule\n\n\n\n\n\nRecursiveDeleteVisitor\n\nRecursiveDeleteVisitor\n\nBoardModule -->\n\nRecursiveDeleteVisitor->BoardModule\n\n\n\n\n\nSchoolSpecificFileCopyServiceFactory\n\nSchoolSpecificFileCopyServiceFactory\n\nBoardModule -->\n\nSchoolSpecificFileCopyServiceFactory->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 BoardDoCopyService\n \n \n BoardDoRepo\n \n \n BoardDoService\n \n \n BoardNodeRepo\n \n \n CardService\n \n \n ColumnBoardCopyService\n \n \n ColumnBoardService\n \n \n ColumnService\n \n \n ContentElementFactory\n \n \n ContentElementService\n \n \n CourseRepo\n \n \n OpenGraphProxyService\n \n \n RecursiveDeleteVisitor\n \n \n SchoolSpecificFileCopyServiceFactory\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 UserModule\n \n \n \n \n Exports\n \n \n BoardDoAuthorizableService\n \n \n CardService\n \n \n ColumnBoardCopyService\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 { UserModule } from '../user';\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\tOpenGraphProxyService,\n\tSubmissionItemService,\n} from './service';\nimport { BoardDoCopyService, SchoolSpecificFileCopyServiceFactory } from './service/board-do-copy-service';\nimport { ColumnBoardCopyService } from './service/column-board-copy.service';\n\n@Module({\n\timports: [ConsoleWriterModule, FilesStorageClientModule, LoggerModule, UserModule],\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\tBoardDoCopyService,\n\t\tColumnBoardCopyService,\n\t\tSchoolSpecificFileCopyServiceFactory,\n\t\tOpenGraphProxyService,\n\t],\n\texports: [\n\t\tBoardDoAuthorizableService,\n\t\tCardService,\n\t\tColumnBoardService,\n\t\tColumnService,\n\t\tContentElementService,\n\t\tSubmissionItemService,\n\t\tColumnBoardCopyService,\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 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 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 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 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 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 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 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 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 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 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 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 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: SubmissionsResponse})@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: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 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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { SubmissionsResponse } from './dto/submission-item/submissions.response';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport { SubmissionItemUc } from '../uc/submission-item.uc';\nimport { SubmissionContainerUrlParams, SubmissionItemUrlParams, UpdateSubmissionItemBodyParams } 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: SubmissionsResponse })\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 { submissionItems, users } = await this.submissionItemUc.findSubmissionItems(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.submissionContainerId\n\t\t);\n\t\tconst mapper = SubmissionItemResponseMapper.getInstance();\n\t\tconst response = mapper.mapToResponse(submissionItems, users);\n\n\t\treturn response;\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 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"},"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 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 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 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 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 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: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 BoardCompositeVisitor\n \n\n \n No\n \n\n\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:40\n\n \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 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: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 domainObject\n \n AnyBoardDo\n \n\n \n No\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 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 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 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:10\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:14\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:18\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:22\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 { ExternalToolElement } from './external-tool-element.do';\nimport { FileElement } from './file-element.do';\nimport { LinkElement } from './link-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 LinkElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement ||\n\t\t\tdomainObject instanceof ExternalToolElement;\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\nexport function isCard(reference: unknown): reference is Card {\n\treturn reference instanceof Card;\n}\n\n \n\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(ExternalToolElementResponse, FileElementResponse, LinkElementResponse, RichTextElementResponse, 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: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 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 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: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 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 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: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 cardIdParams\n \n CardIdsParams\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { BoardUc, CardUc } from '../uc';\nimport {\n\tAnyContentElementResponse,\n\tCardIdsParams,\n\tCardListResponse,\n\tCardUrlParams,\n\tCreateContentElementBodyParams,\n\tExternalToolElementResponse,\n\tFileElementResponse,\n\tLinkElementResponse,\n\tMoveCardBodyParams,\n\tRenameBodyParams,\n\tRichTextElementResponse,\n\tSubmissionContainerElementResponse,\n} from './dto';\nimport { SetHeightBodyParams } from './dto/board/set-height.body.params';\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(\n\t\tExternalToolElementResponse,\n\t\tFileElementResponse,\n\t\tLinkElementResponse,\n\t\tRichTextElementResponse,\n\t\tSubmissionContainerElementResponse\n\t)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [\n\t\t\t\t{ $ref: getSchemaPath(ExternalToolElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(LinkElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\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,\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 { ExternalToolElement } from './external-tool-element.do';\nimport { FileElement } from './file-element.do';\nimport { LinkElement } from './link-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 LinkElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement ||\n\t\t\tdomainObject instanceof ExternalToolElement;\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\nexport function isCard(reference: unknown): reference is Card {\n\treturn reference instanceof Card;\n}\n\n \n\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:21\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:55\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:41\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:34\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:61\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:38\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:58\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 {\n\tAnyContentElementResponse,\n\tExternalToolElementResponse,\n\tFileElementResponse,\n\tLinkElementResponse,\n\tRichTextElementResponse,\n\tSubmissionContainerElementResponse,\n} from '../element';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { VisibilitySettingsResponse } from './visibility-settings.response';\n\n@ApiExtraModels(\n\tExternalToolElementResponse,\n\tFileElementResponse,\n\tLinkElementResponse,\n\tRichTextElementResponse,\n\tSubmissionContainerElementResponse\n)\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: [\n\t\t\t\t{ $ref: getSchemaPath(ExternalToolElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(LinkElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementResponse) },\n\t\t\t],\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 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 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 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 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 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: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 cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \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 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 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 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\treturn this.boardDoRepo.findByClassAndId(Card, cardId);\n\t}\n\n\tasync findByIds(cardIds: EntityId[]): Promise {\n\t\tconst cards = await this.boardDoRepo.findByIds(cardIds);\n\t\tif (cards.some((card) => !(card instanceof Card))) {\n\t\t\tthrow new NotFoundException('some ids do not belong to a card');\n\t\t}\n\n\t\treturn cards as 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:8\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: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 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 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: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 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 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: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 elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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:83\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 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: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 cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \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: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 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 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, AnyContentElementDo, Card, ContentElementType, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\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 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 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 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 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 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 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 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 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 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 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 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 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 import { DeepPartial } from 'fishery';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { ClassEntity, ClassSourceOptionsEntity, IClassEntityProps } from '@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 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 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 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 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 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 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 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 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 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 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 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 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/ClassInfoDto.html":{"url":"classes/ClassInfoDto.html","title":"class - ClassInfoDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassInfoDto\n\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/uc/dto/class-info.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 externalSourceName\n \n \n id\n \n \n Optional\n isUpgradable\n \n \n name\n \n \n Optional\n schoolYear\n \n \n teachers\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: ClassInfoDto)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.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 ClassInfoDto\n \n \n \n No\n \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 externalSourceName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:10\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 Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n isUpgradable\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:16\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/group/uc/dto/class-info.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n schoolYear\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ClassRootType\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ClassRootType } from './class-root-type';\n\nexport class ClassInfoDto {\n\tid: string;\n\n\ttype: ClassRootType;\n\n\tname: string;\n\n\texternalSourceName?: string;\n\n\tteachers: string[];\n\n\tschoolYear?: string;\n\n\tisUpgradable?: boolean;\n\n\tconstructor(props: ClassInfoDto) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.name = props.name;\n\t\tthis.externalSourceName = props.externalSourceName;\n\t\tthis.teachers = props.teachers;\n\t\tthis.schoolYear = props.schoolYear;\n\t\tthis.isUpgradable = props.isUpgradable;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassInfoResponse.html":{"url":"classes/ClassInfoResponse.html","title":"class - ClassInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassInfoResponse\n\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/controller/dto/response/class-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 externalSourceName\n \n \n \n id\n \n \n \n Optional\n isUpgradable\n \n \n \n name\n \n \n \n Optional\n schoolYear\n \n \n \n teachers\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: ClassInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.response.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 ClassInfoResponse\n \n \n \n No\n \n \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 externalSourceName\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/group/controller/dto/response/class-info.response.ts:15\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/group/controller/dto/response/class-info.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n isUpgradable\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.response.ts:24\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/group/controller/dto/response/class-info.response.ts:12\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 : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.response.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n Type : string[]\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/group/controller/dto/response/class-info.response.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ClassRootType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ClassRootType})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.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';\nimport { ClassRootType } from '../../../uc/dto/class-root-type';\n\nexport class ClassInfoResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty({ enum: ClassRootType })\n\ttype: ClassRootType;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\texternalSourceName?: string;\n\n\t@ApiProperty({ type: [String] })\n\tteachers: string[];\n\n\t@ApiPropertyOptional()\n\tschoolYear?: string;\n\n\t@ApiPropertyOptional()\n\tisUpgradable?: boolean;\n\n\tconstructor(props: ClassInfoResponse) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.name = props.name;\n\t\tthis.externalSourceName = props.externalSourceName;\n\t\tthis.teachers = props.teachers;\n\t\tthis.schoolYear = props.schoolYear;\n\t\tthis.isUpgradable = props.isUpgradable;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassInfoSearchListResponse.html":{"url":"classes/ClassInfoSearchListResponse.html","title":"class - ClassInfoSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassInfoSearchListResponse\n\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/controller/dto/response/class-info-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: ClassInfoResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info-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 ClassInfoResponse[]\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 : ClassInfoResponse[]\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 { ClassInfoResponse } from './class-info.response';\n\nexport class ClassInfoSearchListResponse extends PaginationResponse {\n\tconstructor(data: ClassInfoResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [ClassInfoResponse] })\n\tdata: ClassInfoResponse[];\n}\n\n \n\n\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 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 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 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 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 findClassesForSchool\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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: 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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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 { Class } from '../domain';\nimport { ClassesRepo } from '../repo';\n\n@Injectable()\nexport class ClassService {\n\tconstructor(private readonly classesRepo: ClassesRepo) {}\n\n\tpublic async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst classes: Class[] = await this.classesRepo.findAllBySchoolId(schoolId);\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/ClassSortParams.html":{"url":"classes/ClassSortParams.html","title":"class - ClassSortParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassSortParams\n\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/controller/dto/request/class-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 : ClassSortBy\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(ClassSortBy)@ApiPropertyOptional({enum: ClassSortBy})\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 ClassSortBy {\n\tNAME = 'name',\n\tEXTERNAL_SOURCE_NAME = 'externalSourceName',\n}\n\nexport class ClassSortParams extends SortingParams {\n\t@IsOptional()\n\t@IsEnum(ClassSortBy)\n\t@ApiPropertyOptional({ enum: ClassSortBy })\n\tsortBy?: ClassSortBy;\n}\n\n \n\n\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 findAllBySchoolId\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)\n \n \n \n \n Defined in apps/server/src/modules/class/repo/classes.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 findAllBySchoolId\n \n \n \n \n \n \n \n findAllBySchoolId(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/classes.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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/modules/class/repo/classes.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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 classes\n \n Class[]\n \n\n \n No\n \n\n\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, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Class } from '../domain';\nimport { ClassEntity } from '../entity';\nimport { ClassMapper } from './mapper';\n\n@Injectable()\nexport class ClassesRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findAllBySchoolId(schoolId: EntityId): Promise {\n\t\tconst classes: ClassEntity[] = await this.em.find(ClassEntity, { schoolId: new ObjectId(schoolId) });\n\n\t\tconst mapped: Class[] = ClassMapper.mapToDOs(classes);\n\n\t\treturn mapped;\n\t}\n\n\tasync findAllByUserId(userId: EntityId): Promise {\n\t\tconst classes: ClassEntity[] = await this.em.find(ClassEntity, { userIds: new ObjectId(userId) });\n\n\t\tconst mapped: Class[] = ClassMapper.mapToDOs(classes);\n\n\t\treturn mapped;\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 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 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 '@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\treturn undefined;\n\t\t\t}\n\t\t\tawait this.schoolMigrationService.markUnmigratedUsersAsOutdated(schoolId);\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 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 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 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 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 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 '@modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@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 '@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 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 '@modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@modules/collaborative-storage/services/dto/team.dto';\nimport { Injectable } from '@nestjs/common';\nimport { RoleDto } from '@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_imports\n\n\n\ncluster_CollaborativeStorageAdapterModule_exports\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 '@modules/tool';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@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:32\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 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, ICurrentUser } from '@modules/authentication';\nimport { LegacyLogger } from '@src/core/logger';\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_exports\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 '@modules/authorization';\nimport { TeamPermissionsMapper } from '@modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamMapper } from '@modules/collaborative-storage/mapper/team.mapper';\nimport { CollaborativeStorageService } from '@modules/collaborative-storage/services/collaborative-storage.service';\nimport { RoleModule } from '@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 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 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 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 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 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 '@modules/authorization';\nimport { RoleService } from '@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 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 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 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 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 '@modules/collaborative-storage/services/collaborative-storage.service';\nimport { TeamPermissionsMapper } from '@modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamDto } from '@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 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 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 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 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 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 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\nexport function isColumn(reference: unknown): reference is Column {\n\treturn reference instanceof Column;\n}\n\n \n\n\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 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 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 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 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 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 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\nexport function isColumnBoard(reference: unknown): reference is ColumnBoard {\n\treturn reference instanceof ColumnBoard;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnBoardCopyService.html":{"url":"injectables/ColumnBoardCopyService.html","title":"injectable - ColumnBoardCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnBoardCopyService\n\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-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 copyColumnBoard\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, userService: UserService, boardDoCopyService: BoardDoCopyService, fileCopyServiceFactory: SchoolSpecificFileCopyServiceFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/column-board-copy.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 courseRepo\n \n \n CourseRepo\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 boardDoCopyService\n \n \n BoardDoCopyService\n \n \n \n No\n \n \n \n \n fileCopyServiceFactory\n \n \n SchoolSpecificFileCopyServiceFactory\n \n \n \n No\n \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 copyColumnBoard\n \n \n \n \n \n \n \n copyColumnBoard(props: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board-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 props\n \n literal type\n \n\n \n No\n \n\n\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, NotImplementedException } from '@nestjs/common';\nimport {\n\tBoardExternalReference,\n\tBoardExternalReferenceType,\n\tColumnBoard,\n\tEntityId,\n\tisColumnBoard,\n} from '@shared/domain';\nimport { CourseRepo } from '@shared/repo';\nimport { CopyStatus } from '@modules/copy-helper';\nimport { UserService } from '@modules/user';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoCopyService, SchoolSpecificFileCopyServiceFactory } from './board-do-copy-service';\n\n@Injectable()\nexport class ColumnBoardCopyService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly boardDoCopyService: BoardDoCopyService,\n\t\tprivate readonly fileCopyServiceFactory: SchoolSpecificFileCopyServiceFactory\n\t) {}\n\n\tasync copyColumnBoard(props: {\n\t\toriginalColumnBoardId: EntityId;\n\t\tdestinationExternalReference: BoardExternalReference;\n\t\tuserId: EntityId;\n\t}): Promise {\n\t\tconst originalBoard = await this.boardDoRepo.findByClassAndId(ColumnBoard, props.originalColumnBoardId);\n\n\t\tconst user = await this.userService.findById(props.userId);\n\t\t/* istanbul ignore next */\n\t\tif (originalBoard.context.type !== BoardExternalReferenceType.Course) {\n\t\t\tthrow new NotImplementedException('only courses are supported as board parents');\n\t\t}\n\t\tconst course = await this.courseRepo.findById(originalBoard.context.id); // TODO: get rid of this\n\n\t\tconst fileCopyService = this.fileCopyServiceFactory.build({\n\t\t\tsourceSchoolId: course.school.id,\n\t\t\ttargetSchoolId: user.schoolId,\n\t\t\tuserId: props.userId,\n\t\t});\n\n\t\tconst copyStatus = await this.boardDoCopyService.copy({ original: originalBoard, fileCopyService });\n\n\t\t/* istanbul ignore next */\n\t\tif (!isColumnBoard(copyStatus.copyEntity)) {\n\t\t\tthrow new InternalServerErrorException('expected copy of columnboard to be a columnboard');\n\t\t}\n\n\t\tcopyStatus.copyEntity.context = props.destinationExternalReference;\n\t\tawait this.boardDoRepo.save(copyStatus.copyEntity);\n\n\t\treturn copyStatus;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 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 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 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 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\nexport function isColumnBoard(reference: unknown): reference is ColumnBoard {\n\treturn reference instanceof ColumnBoard;\n}\n\n \n\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 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 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 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 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 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 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 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 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\nexport function isColumnBoardTarget(reference: unknown): reference is ColumnBoardTarget {\n\treturn reference instanceof 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/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 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 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 '@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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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\nexport function isColumn(reference: unknown): reference is Column {\n\treturn reference instanceof Column;\n}\n\n \n\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 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 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 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 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 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 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 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 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 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 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:140\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 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: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 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 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 '@modules/lesson/service';\nimport { ComponentType } from '@src/shared/domain/entity/lesson.entity';\nimport { TaskService } from '@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? {\n\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\ttype: CommonCartridgeResourceType.WEB_LINK_V3,\n\t\t\t\t\t\turl: content.content.url,\n\t\t\t\t\t\ttitle: content.content.description,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\ttype: CommonCartridgeResourceType.WEB_LINK_V1,\n\t\t\t\t\t\turl: content.content.url,\n\t\t\t\t\t\ttitle: content.content.description,\n\t\t\t\t };\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 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 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 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\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\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 \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 \n \n \n\n\n \n\n\n \n import { LegacySchoolModule } from '@modules/legacy-school';\nimport { Module } from '@nestjs/common';\nimport { ContextExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { CommonToolService, CommonToolValidationService } from './service';\n\n@Module({\n\timports: [LoggerModule, LegacySchoolModule],\n\t// TODO: make deletion of entities cascading, adjust ExternalToolService.deleteExternalTool and remove the repos from here\n\tproviders: [CommonToolService, CommonToolValidationService, SchoolExternalToolRepo, ContextExternalToolRepo],\n\texports: [CommonToolService, CommonToolValidationService, SchoolExternalToolRepo, ContextExternalToolRepo],\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 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 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 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 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 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 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 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 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 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 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 '@modules/oauth-provider/controller/dto/response/oidc-context.response';\nimport { OauthClientResponse } from '@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 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 buildExternalTool\n \n \n Private\n buildFile\n \n \n Private\n buildLink\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: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 type\n \n ContentElementType\n \n\n \n No\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 buildExternalTool\n \n \n \n \n \n \n \n buildExternalTool()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:93\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 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:43\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 buildLink\n \n \n \n \n \n \n \n buildLink()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:56\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:68\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:81\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 { ExternalToolElement } from './external-tool-element.do';\nimport { FileElement } from './file-element.do';\nimport { LinkElement } from './link-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport { AnyContentElementDo, ContentElementType } from './types';\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.LINK:\n\t\t\t\telement = this.buildLink();\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\tcase ContentElementType.EXTERNAL_TOOL:\n\t\t\t\telement = this.buildExternalTool();\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\talternativeText: '',\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 buildLink() {\n\t\tconst element = new LinkElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\turl: '',\n\t\t\ttitle: '',\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 element = new SubmissionContainerElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tdueDate: null,\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 buildExternalTool() {\n\t\tconst element = new ExternalToolElement({\n\t\t\tid: new ObjectId().toHexString(),\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\tLinkElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t\tExternalToolElementResponseMapper.getInstance(),\n\t]\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.factory.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 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: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 element\n \n AnyBoardDo\n \n\n \n No\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 { ExternalToolElementResponseMapper } from './external-tool-element-response.mapper';\nimport { FileElementResponseMapper } from './file-element-response.mapper';\nimport { LinkElementResponseMapper } from './link-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\tLinkElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t\tExternalToolElementResponseMapper.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, openGraphProxyService: OpenGraphProxyService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element.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 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 openGraphProxyService\n \n \n OpenGraphProxyService\n \n \n \n No\n \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: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 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 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: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 element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \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: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 elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 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 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: AnyElementContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.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 element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n content\n \n AnyElementContentBody\n \n\n \n No\n \n\n\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 { AnyElementContentBody } from '../controller/dto';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\nimport { ContentElementUpdateVisitor } from './content-element-update.visitor';\nimport { OpenGraphProxyService } from './open-graph-proxy.service';\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\tprivate readonly openGraphProxyService: OpenGraphProxyService\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(element: AnyContentElementDo, content: AnyElementContentBody): Promise {\n\t\tconst updater = new ContentElementUpdateVisitor(content, this.openGraphProxyService);\n\t\tawait element.acceptAsync(updater);\n\n\t\tconst parent = await this.boardDoRepo.findParentOfId(element.id);\n\n\t\tawait this.boardDoRepo.save(element, parent);\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"},"injectables/ContentElementUpdateVisitor.html":{"url":"injectables/ContentElementUpdateVisitor.html","title":"injectable - ContentElementUpdateVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\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 \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 rejectNotHandled\n \n \n Async\n visitCardAsync\n \n \n Async\n visitColumnAsync\n \n \n Async\n visitColumnBoardAsync\n \n \n Async\n visitExternalToolElementAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitLinkElementAsync\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(content: AnyElementContentBody, openGraphProxyService: OpenGraphProxyService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:29\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 AnyElementContentBody\n \n \n \n No\n \n \n \n \n openGraphProxyService\n \n \n OpenGraphProxyService\n \n \n \n No\n \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 rejectNotHandled\n \n \n \n \n \n \n \n rejectNotHandled(component: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.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 component\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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/service/content-element-update.visitor.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 card\n \n Card\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 column\n \n Column\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitExternalToolElementAsync\n \n \n \n \n \n \n \n visitExternalToolElementAsync(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitLinkElementAsync\n \n \n \n \n \n \n \n visitLinkElementAsync(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 submission\n \n SubmissionItem\n \n\n \n No\n \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 content\n \n \n \n \n \n \n Type : AnyElementContentBody\n\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:29\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { sanitizeRichText } from '@shared/controller';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitorAsync,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tExternalToolElement,\n\tFileElement,\n\tInputFormat,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport {\n\tAnyElementContentBody,\n\tExternalToolContentBody,\n\tFileContentBody,\n\tLinkContentBody,\n\tRichTextContentBody,\n\tSubmissionContainerContentBody,\n} from '../controller/dto';\nimport { OpenGraphProxyService } from './open-graph-proxy.service';\n\n@Injectable()\nexport class ContentElementUpdateVisitor implements BoardCompositeVisitorAsync {\n\tprivate readonly content: AnyElementContentBody;\n\n\tconstructor(content: AnyElementContentBody, private readonly openGraphProxyService: OpenGraphProxyService) {\n\t\tthis.content = content;\n\t}\n\n\tasync visitColumnBoardAsync(columnBoard: ColumnBoard): Promise {\n\t\treturn this.rejectNotHandled(columnBoard);\n\t}\n\n\tasync visitColumnAsync(column: Column): Promise {\n\t\treturn this.rejectNotHandled(column);\n\t}\n\n\tasync visitCardAsync(card: Card): Promise {\n\t\treturn this.rejectNotHandled(card);\n\t}\n\n\tasync visitFileElementAsync(fileElement: FileElement): Promise {\n\t\tif (this.content instanceof FileContentBody) {\n\t\t\tfileElement.caption = sanitizeRichText(this.content.caption, InputFormat.PLAIN_TEXT);\n\t\t\tfileElement.alternativeText = sanitizeRichText(this.content.alternativeText, InputFormat.PLAIN_TEXT);\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(fileElement);\n\t}\n\n\tasync visitLinkElementAsync(linkElement: LinkElement): Promise {\n\t\tif (this.content instanceof LinkContentBody) {\n\t\t\tconst urlWithProtocol = /:\\/\\//.test(this.content.url) ? this.content.url : `https://${this.content.url}`;\n\t\t\tlinkElement.url = new URL(urlWithProtocol).toString();\n\t\t\tconst openGraphData = await this.openGraphProxyService.fetchOpenGraphData(linkElement.url);\n\t\t\tlinkElement.title = openGraphData.title;\n\t\t\tlinkElement.description = openGraphData.description;\n\t\t\tif (openGraphData.image) {\n\t\t\t\tlinkElement.imageUrl = openGraphData.image.url;\n\t\t\t}\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(linkElement);\n\t}\n\n\tasync visitRichTextElementAsync(richTextElement: RichTextElement): Promise {\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\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(richTextElement);\n\t}\n\n\tasync visitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise {\n\t\tif (this.content instanceof SubmissionContainerContentBody) {\n\t\t\tif (this.content.dueDate !== undefined) {\n\t\t\t\tsubmissionContainerElement.dueDate = this.content.dueDate;\n\t\t\t}\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(submissionContainerElement);\n\t}\n\n\tasync visitSubmissionItemAsync(submission: SubmissionItem): Promise {\n\t\treturn this.rejectNotHandled(submission);\n\t}\n\n\tasync visitExternalToolElementAsync(externalToolElement: ExternalToolElement): Promise {\n\t\tif (this.content instanceof ExternalToolContentBody && this.content.contextExternalToolId !== undefined) {\n\t\t\t// Updates should not remove an existing reference to a tool, to prevent orphan tool instances\n\t\t\texternalToolElement.contextExternalToolId = this.content.contextExternalToolId;\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(externalToolElement);\n\t}\n\n\tprivate rejectNotHandled(component: AnyBoardDo): Promise {\n\t\treturn Promise.reject(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\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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AuthorizationLoaderService } from '@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({enum: ToolContextType, enumName: 'ToolContextType', 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: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 { 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({\n\t\tenum: ToolContextType,\n\t\tenumName: 'ToolContextType',\n\t\tnullable: false,\n\t\trequired: true,\n\t\texample: ToolContextType.COURSE,\n\t})\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 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 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 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 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 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 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 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 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 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 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 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 import { ObjectId } from '@mikro-orm/mongodb';\nimport { CustomParameterEntry } from '@modules/tool/common/domain';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextExternalToolProps } from '@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_providers\n\n\n\ncluster_ContextExternalToolModule_exports\n\n\n\ncluster_ContextExternalToolModule_imports\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\nToolReferenceService \n\nToolReferenceService \n\nToolReferenceService -->\n\nContextExternalToolModule->ToolReferenceService \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\nToolReferenceService\n\nToolReferenceService\n\nContextExternalToolModule -->\n\nToolReferenceService->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 ToolReferenceService\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 ToolReferenceService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { CommonToolModule } from '../common';\nimport { ExternalToolModule } from '../external-tool';\nimport { SchoolExternalToolModule } from '../school-external-tool';\nimport {\n\tContextExternalToolAuthorizableService,\n\tContextExternalToolService,\n\tContextExternalToolValidationService,\n\tToolReferenceService,\n} from './service';\n\n@Module({\n\timports: [CommonToolModule, ExternalToolModule, SchoolExternalToolModule, LoggerModule],\n\tproviders: [\n\t\tContextExternalToolService,\n\t\tContextExternalToolValidationService,\n\t\tContextExternalToolAuthorizableService,\n\t\tToolReferenceService,\n\t],\n\texports: [\n\t\tContextExternalToolService,\n\t\tContextExternalToolValidationService,\n\t\tContextExternalToolAuthorizableService,\n\t\tToolReferenceService,\n\t],\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 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 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 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 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 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: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 type\n \n ContextExternalToolType\n \n\n \n No\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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/tool/common/enum/tool-context-type.enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport {\n\tContextExternalToolEntity,\n\tContextExternalToolType,\n\tIContextExternalToolProperties,\n} from '@modules/tool/context-external-tool/entity';\nimport { ContextExternalToolQuery } from '@modules/tool/context-external-tool/uc/dto/context-external-tool.types';\nimport { SchoolExternalToolRefDO } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@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\tcase ToolContextType.BOARD_ELEMENT:\n\t\t\t\treturn ContextExternalToolType.BOARD_ELEMENT;\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\tcase ContextExternalToolType.BOARD_ELEMENT:\n\t\t\t\treturn ToolContextType.BOARD_ELEMENT;\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 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: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 customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\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 { CustomParameterEntry } from '../../common/domain';\nimport { CustomParameterEntryParam } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolPostParams } from '../controller/dto';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\n\nexport class ContextExternalToolRequestMapper {\n\tstatic mapContextExternalToolRequest(request: ContextExternalToolPostParams): ContextExternalToolDto {\n\t\treturn {\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 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 \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: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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\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: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 customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\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 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/context-external-tool/mapper/context-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 toolReference\n \n ToolReference\n \n\n \n No\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/context-external-tool/mapper/context-external-tool-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 toolReferences\n \n ToolReference[]\n \n\n \n No\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 \n\n\n \n import { ToolStatusResponseMapper } from '../../common/mapper/tool-status-response.mapper';\nimport { CustomParameterEntryParam, CustomParameterEntryResponse } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolResponse, ToolReferenceResponse } from '../controller/dto';\nimport { ContextExternalTool, ToolReference } 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\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\tstatic 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: ToolStatusResponseMapper.mapToResponse(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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 '@modules/tool/common/enum';\nimport { ContextExternalToolEntity } from '@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 findById\n \n \n Async\n findContextExternalTools\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 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 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 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(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 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 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 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 { ContextExternalTool, ContextRef } from '../domain';\nimport { ContextExternalToolQuery } from '../uc/dto/context-external-tool.types';\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 findById(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 Public\n Async\n deleteContextExternalTool\n \n \n Private\n Async\n filterToolsWithPermissions\n \n \n Async\n getContextExternalTool\n \n \n Public\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, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, contextExternalToolValidationService: ContextExternalToolValidationService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.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 toolPermissionHelper\n \n \n ToolPermissionHelper\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 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 \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, schoolId: 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: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 contextExternalToolDto\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\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 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:92\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 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:124\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 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: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 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 Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\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:101\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 Returns : Promise\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, schoolId: 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: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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import {\n\tAuthorizationContext,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n\tForbiddenLoggableException,\n} from '@modules/authorization';\nimport { AuthorizableReferenceType } from '@modules/authorization/domain';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, Permission, User } from '@shared/domain';\nimport { ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ContextExternalTool, ContextRef } from '../domain';\nimport { ContextExternalToolService, ContextExternalToolValidationService } from '../service';\nimport { ContextExternalToolDto } from './dto/context-external-tool.types';\n\n@Injectable()\nexport class ContextExternalToolUc {\n\tconstructor(\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly contextExternalToolValidationService: ContextExternalToolValidationService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync createContextExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalToolDto.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tif (schoolExternalTool.schoolId !== schoolId) {\n\t\t\tthrow new ForbiddenLoggableException(userId, AuthorizableReferenceType.ContextExternalToolEntity, context);\n\t\t}\n\n\t\tcontextExternalToolDto.schoolToolRef.schoolId = schoolId;\n\t\tconst contextExternalTool = new ContextExternalTool(contextExternalToolDto);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tawait this.contextExternalToolValidationService.validate(contextExternalTool);\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\tschoolId: EntityId,\n\t\tcontextExternalToolId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalToolDto.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tif (schoolExternalTool.schoolId !== schoolId) {\n\t\t\tthrow new ForbiddenLoggableException(userId, AuthorizableReferenceType.ContextExternalToolEntity, context);\n\t\t}\n\n\t\tlet contextExternalTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\n\t\tcontextExternalTool = new ContextExternalTool({\n\t\t\t...contextExternalToolDto,\n\t\t\tid: contextExternalTool.id,\n\t\t});\n\t\tcontextExternalTool.schoolToolRef.schoolId = schoolId;\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tawait this.contextExternalToolValidationService.validate(contextExternalTool);\n\n\t\tconst updatedTool: ContextExternalTool = await this.contextExternalToolService.saveContextExternalTool(\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\treturn updatedTool;\n\t}\n\n\tpublic async deleteContextExternalTool(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolService.findById(contextExternalToolId);\n\n\t\tconst context = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, tool, context);\n\n\t\tawait this.contextExternalToolService.deleteContextExternalTool(tool);\n\t}\n\n\tpublic async getContextExternalToolsForContext(\n\t\tuserId: EntityId,\n\t\tcontextType: ToolContextType,\n\t\tcontextId: string\n\t): Promise {\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.findById(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:12\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: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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\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(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: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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\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 { 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(contextExternalTool: ContextExternalTool): Promise {\n\t\tawait this.checkDuplicateInContext(contextExternalTool);\n\n\t\tconst loadedSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst loadedExternalTool: ExternalTool = await this.externalToolService.findById(loadedSchoolExternalTool.toolId);\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"},"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 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 '@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:95\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:91\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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\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 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:85\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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:103\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:106\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:100\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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 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 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 '@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_exports\n\n\n\ncluster_CopyHelperModule_providers\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 Returns : CopyDictionary\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 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 Returns : CopyStatusEnum\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\nimport { CopyDictionary, 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\t({ name } = matches.groups);\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): CopyDictionary {\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 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 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 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 '@modules/learnroom/controller/dto/lesson/lesson-copy.params';\nimport { LessonCopyParentParams } from '@modules/lesson/types';\nimport { TaskCopyApiParams } from '@modules/task/controller/dto/task-copy.params';\nimport { TaskCopyParentParams } from '@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 FederalStateEntity 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 classes\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 groups\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 classes\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany(undefined, undefined, {fieldName: 'classIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:103\n \n \n\n\n \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:83\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:93\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:79\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:60\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:100\n \n \n\n\n \n \n \n \n \n \n \n \n \n groups\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany(undefined, undefined, {fieldName: 'groupIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:106\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:57\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:64\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:97\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:86\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:68\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:76\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:72\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:90\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 { ClassEntity } from '@modules/class/entity/class.entity';\nimport { GroupEntity } from '@modules/group/entity/group.entity';\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\tclasses?: ClassEntity[];\n\tgroups?: GroupEntity[];\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\nexport class UsersList {\n\tid!: string;\n\n\tfirstName!: string;\n\n\tlastName!: string;\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\t@ManyToMany(() => ClassEntity, undefined, { fieldName: 'classIds' })\n\tclasses = new Collection(this);\n\n\t@ManyToMany(() => GroupEntity, undefined, { fieldName: 'groupIds' })\n\tgroups = new Collection(this);\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\tthis.classes.set(props.classes || []);\n\t\tthis.groups.set(props.groups || []);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = Course.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = Course.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = Course.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate static 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 getStudentsList(): UsersList[] {\n\t\tconst users = this.students.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getTeachersList(): UsersList[] {\n\t\tconst users = this.teachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getSubstitutionTeachersList(): UsersList[] {\n\t\tconst users = this.substitutionTeachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate static extractUserList(users: User[]): UsersList[] {\n\t\tconst usersList: UsersList[] = users.map((user) => {\n\t\t\treturn {\n\t\t\t\tid: user.id,\n\t\t\t\tfirstName: user.firstName,\n\t\t\t\tlastName: user.lastName,\n\t\t\t};\n\t\t});\n\t\treturn usersList;\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: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 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 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: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 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 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 { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\nimport { PaginationParams } from '@shared/controller/';\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 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 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 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 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 '@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: AuthorizationReferenceService, courseCopyService: CourseCopyService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.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 authorization\n \n \n AuthorizationReferenceService\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:27\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: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 courseId\n \n EntityId\n \n\n \n No\n \n\n\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 { AuthorizationContextBuilder } from '@modules/authorization';\nimport { AuthorizationReferenceService, AuthorizableReferenceType } from '@modules/authorization/domain';\nimport { CopyStatus } from '@modules/copy-helper';\nimport { CourseCopyService } from '../service';\n\n@Injectable()\nexport class CourseCopyUC {\n\tconstructor(\n\t\tprivate readonly authorization: AuthorizationReferenceService,\n\t\tprivate readonly courseCopyService: CourseCopyService\n\t) {}\n\n\tasync copyCourse(userId: EntityId, courseId: EntityId): Promise {\n\t\tthis.checkFeatureEnabled();\n\n\t\tconst context = AuthorizationContextBuilder.write([Permission.COURSE_CREATE]);\n\t\tawait this.authorization.checkPermissionByReferences(userId, AuthorizableReferenceType.Course, courseId, context);\n\n\t\tconst result = await this.courseCopyService.copyCourse({ userId, courseId });\n\n\t\treturn result;\n\t}\n\n\tprivate checkFeatureEnabled() {\n\t\t// @hpi-schul-cloud/commons is deprecated way to get envirements\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: AuthorizationReferenceService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-export.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 courseExportService\n \n \n CommonCartridgeExportService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationReferenceService\n \n \n \n No\n \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: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 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 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 { AuthorizationContextBuilder } from '@modules/authorization';\nimport { AuthorizationReferenceService, AuthorizableReferenceType } from '@modules/authorization/domain';\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: AuthorizationReferenceService\n\t) {}\n\n\tasync exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion): Promise {\n\t\tconst context = AuthorizationContextBuilder.read([Permission.COURSE_EDIT]);\n\t\tawait this.authorizationService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tAuthorizableReferenceType.Course,\n\t\t\tcourseId,\n\t\t\tcontext\n\t\t);\n\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { CourseRule } from './course.rule';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 Public\n Async\n findAllCourseGroupsByUserId\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: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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findAllCourseGroupsByUserId\n \n \n \n \n \n \n \n findAllCourseGroupsByUserId(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 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, CourseGroup, 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 findAllCourseGroupsByUserId(userId: EntityId): Promise> {\n\t\tconst [courseGroups, count] = await this.repo.findByUserId(userId);\n\n\t\treturn [courseGroups, count];\n\t}\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 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 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 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 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 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 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 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 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 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 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', 'substitutionTeachers', 'students']);\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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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', 'substitutionTeachers', 'students']);\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 findAllByUserId\n \n \n Public\n Async\n findAllCoursesByUserId\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: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 \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/modules/learnroom/service/course.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 userId\n \n EntityId\n \n\n \n No\n \n\n\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 findAllCoursesByUserId\n \n \n \n \n \n \n \n findAllCoursesByUserId(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 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 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 { Counted, 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 findAllCoursesByUserId(userId: EntityId): Promise> {\n\t\tconst [courses, count] = await this.repo.findAllByUserId(userId);\n\n\t\treturn [courses, count];\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\tasync findAllByUserId(userId: EntityId): Promise {\n\t\tconst [courses] = await this.repo.findAllByUserId(userId);\n\n\t\treturn courses;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 isExternalUser\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 isExternalUser\n \n \n \n \n \n \n \n \n isExternalUser: 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 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\t// support UserId is missed see featherJS\n\tisExternalUser: 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 mapCurrentUserToCreateJwtPayload\n \n \n Static\n mapToOauthCurrentUser\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: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 jwtPayload\n \n JwtPayload\n \n\n \n No\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 mapCurrentUserToCreateJwtPayload\n \n \n \n \n \n \n \n mapCurrentUserToCreateJwtPayload(currentUser: ICurrentUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : CreateJwtPayload\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToOauthCurrentUser\n \n \n \n \n \n \n \n mapToOauthCurrentUser(accountId: string, user: UserDO, systemId?: string, externalIdToken?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.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 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 externalIdToken\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : OauthCurrentUser\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 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, OauthCurrentUser } from '../interface';\nimport { CreateJwtPayload, 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\tisExternalUser: false,\n\t\t};\n\t}\n\n\tstatic mapToOauthCurrentUser(\n\t\taccountId: string,\n\t\tuser: UserDO,\n\t\tsystemId?: string,\n\t\texternalIdToken?: string\n\t): OauthCurrentUser {\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\texternalIdToken,\n\t\t\tisExternalUser: true,\n\t\t};\n\t}\n\n\tstatic mapCurrentUserToCreateJwtPayload(currentUser: ICurrentUser): CreateJwtPayload {\n\t\treturn {\n\t\t\taccountId: currentUser.accountId,\n\t\t\tuserId: currentUser.userId,\n\t\t\tschoolId: currentUser.schoolId,\n\t\t\troles: currentUser.roles,\n\t\t\tsystemId: currentUser.systemId,\n\t\t\tsupport: currentUser.impersonated,\n\t\t\tisExternalUser: currentUser.isExternalUser,\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\tisExternalUser: jwtPayload.isExternalUser,\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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameter } from '@modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\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: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 \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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:52\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:48\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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:36\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:34\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:30\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:28\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:36\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:32\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:173\n \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 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: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 task\n \n Task\n \n\n \n No\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: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 elements\n \n BoardElement[]\n \n\n \n No\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:89\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:95\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:58\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: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 element\n \n BoardElement\n \n\n \n No\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: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 element\n \n BoardElement\n \n\n \n No\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: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 element\n \n BoardElement\n \n\n \n No\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: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 elements\n \n BoardElement[]\n \n\n \n No\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, Action } from '@modules/authorization';\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 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, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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: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 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 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: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 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 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: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 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 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, ExternalToolElementContentBody, LinkElementContentBody)@ApiResponse({status: 201, schema: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(201)@Patch(':contentElementId/content')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.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 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 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, getSchemaPath } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport {\n\tAnyContentElementResponse,\n\tContentElementUrlParams,\n\tCreateSubmissionItemBodyParams,\n\tExternalToolElementContentBody,\n\tExternalToolElementResponse,\n\tFileElementContentBody,\n\tFileElementResponse,\n\tLinkElementContentBody,\n\tLinkElementResponse,\n\tMoveContentElementBody,\n\tRichTextElementContentBody,\n\tRichTextElementResponse,\n\tSubmissionContainerElementContentBody,\n\tSubmissionContainerElementResponse,\n\tSubmissionItemResponse,\n\tUpdateElementContentBodyParams,\n} from './dto';\nimport { ContentElementResponseFactory, 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(\n\t\tFileElementContentBody,\n\t\tRichTextElementContentBody,\n\t\tSubmissionContainerElementContentBody,\n\t\tExternalToolElementContentBody,\n\t\tLinkElementContentBody\n\t)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [\n\t\t\t\t{ $ref: getSchemaPath(ExternalToolElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(LinkElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\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@HttpCode(201)\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\tconst element = await this.elementUc.updateElementContent(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.contentElementId,\n\t\t\tbodyParams.data.content\n\t\t);\n\t\tconst response = ContentElementResponseFactory.mapToResponse(element);\n\t\treturn response;\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.mapSubmissionsToResponse(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: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 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: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 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 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: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 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 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: AnyElementContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.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 elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n content\n \n AnyElementContentBody\n \n\n \n No\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 { forwardRef, HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tEntityId,\n\tisSubmissionContainerElement,\n\tisSubmissionItem,\n\tSubmissionItem,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { AnyElementContentBody } 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(userId: EntityId, elementId: EntityId, content: AnyElementContentBody) {\n\t\tlet element = await this.elementService.findById(elementId);\n\n\t\tawait this.checkPermission(userId, element, Action.write);\n\n\t\telement = await this.elementService.update(element, content);\n\t\treturn element;\n\t}\n\n\tasync createSubmissionItem(\n\t\tuserId: EntityId,\n\t\tcontentElementId: EntityId,\n\t\tcompleted: boolean\n\t): Promise {\n\t\tconst submissionContainerElement = await this.elementService.findById(contentElementId);\n\n\t\tif (!isSubmissionContainerElement(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\t\t}\n\n\t\tif (!submissionContainerElement.children.every((child) => isSubmissionItem(child))) {\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 userSubmissionExists = submissionContainerElement.children\n\t\t\t.filter(isSubmissionItem)\n\t\t\t.find((item) => item.userId === userId);\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, submissionContainerElement, Action.read, UserRoleEnum.STUDENT);\n\n\t\tconst submissionItem = await this.submissionItemService.create(userId, submissionContainerElement, { 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 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 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 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 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 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 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 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/shared/infra/rabbitmq/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/shared/infra/rabbitmq/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 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 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 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 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 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 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 '@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 : SystemEntity\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 { SystemEntity } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: SystemEntity;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => SystemEntity)\n\tsystem: SystemEntity;\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: SystemEntity\n\n \n \n\n\n \n \n Type : SystemEntity\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 { SystemEntity } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: SystemEntity;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => SystemEntity)\n\tsystem: SystemEntity;\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/ExternalSourceResponse.html":{"url":"classes/ExternalSourceResponse.html","title":"class - ExternalSourceResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSourceResponse\n\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/controller/dto/response/external-source.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 externalId\n \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: ExternalSourceResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/external-source.response.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 ExternalSourceResponse\n \n \n \n No\n \n \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 @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/external-source.response.ts:5\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 @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/external-source.response.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';\n\nexport class ExternalSourceResponse {\n\t@ApiProperty()\n\texternalId: string;\n\n\t@ApiProperty()\n\tsystemId: string;\n\n\tconstructor(props: ExternalSourceResponse) {\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/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 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 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 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 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 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 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: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 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 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: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 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 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 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 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: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 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 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 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 '@modules/authorization';\nimport { CustomParameterScope, ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\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 { ExternalToolConfigurationService, ExternalToolLogoService, ExternalToolService } from '../service';\nimport { ContextExternalToolTemplateInfo } from './dto';\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.findById(schoolExternalToolId);\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.findById(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.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(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/ExternalToolContentBody.html":{"url":"classes/ExternalToolContentBody.html","title":"class - ExternalToolContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolContentBody\n\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 Optional\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 \n Optional\n contextExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.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, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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"},"classes/ExternalToolElement.html":{"url":"classes/ExternalToolElement.html","title":"class - ExternalToolElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElement\n\n\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/external-tool-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 contextExternalToolId\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 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 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 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 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 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 contextExternalToolId\n \n \n\n \n \n getcontextExternalToolId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/external-tool-element.do.ts:5\n \n \n\n \n \n setcontextExternalToolId(value: string | undefined)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/external-tool-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 | 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 { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class ExternalToolElement extends BoardComposite {\n\tget contextExternalToolId(): string | undefined {\n\t\treturn this.props.contextExternalToolId;\n\t}\n\n\tset contextExternalToolId(value: string | undefined) {\n\t\tthis.props.contextExternalToolId = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitExternalToolElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitExternalToolElementAsync(this);\n\t}\n}\n\nexport interface ExternalToolElementProps extends BoardCompositeProps {\n\tcontextExternalToolId?: string;\n}\n\nexport function isExternalToolElement(reference: unknown): reference is ExternalToolElement {\n\treturn reference instanceof ExternalToolElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolElementContent.html":{"url":"classes/ExternalToolElementContent.html","title":"class - ExternalToolElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementContent\n\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/external-tool-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 contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/external-tool-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 props\n \n \n ExternalToolElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : string | null\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: String, required: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/external-tool-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 ExternalToolElementContent {\n\tconstructor(props: ExternalToolElementContent) {\n\t\tthis.contextExternalToolId = props.contextExternalToolId;\n\t}\n\n\t@ApiProperty({ type: String, required: true, nullable: true })\n\tcontextExternalToolId: string | null;\n}\n\nexport class ExternalToolElementResponse {\n\tconstructor(props: ExternalToolElementResponse) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.content = props.content;\n\t\tthis.timestamps = props.timestamps;\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.EXTERNAL_TOOL;\n\n\t@ApiProperty()\n\tcontent: ExternalToolElementContent;\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/ExternalToolElementContentBody.html":{"url":"classes/ExternalToolElementContentBody.html","title":"class - ExternalToolElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementContentBody\n\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 : ExternalToolContentBody\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:99\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.EXTERNAL_TOOL\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:95\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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/ExternalToolElementNodeEntity.html":{"url":"entities/ExternalToolElementNodeEntity.html","title":"entity - ExternalToolElementNodeEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ExternalToolElementNodeEntity\n\n\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/external-tool-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 Optional\n contextExternalTool\n \n \n \n \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 contextExternalTool\n \n \n \n \n \n \n Type : ContextExternalToolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/external-tool-element-node.entity.ts:10\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity/context-external-tool.entity';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.EXTERNAL_TOOL })\nexport class ExternalToolElementNodeEntity extends BoardNode {\n\t@ManyToOne({ nullable: true })\n\tcontextExternalTool?: ContextExternalToolEntity;\n\n\tconstructor(props: ExternalToolElementNodeEntityProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.EXTERNAL_TOOL;\n\t\tthis.contextExternalTool = props.contextExternalTool;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildExternalToolElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ExternalToolElementNodeEntityProps extends BoardNodeProps {\n\tcontextExternalTool?: ContextExternalToolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolElementNodeEntityProps.html":{"url":"interfaces/ExternalToolElementNodeEntityProps.html","title":"interface - ExternalToolElementNodeEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolElementNodeEntityProps\n\n\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/external-tool-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 Optional\n \n contextExternalTool\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: ContextExternalToolEntity\n\n \n \n\n\n \n \n Type : ContextExternalToolEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity/context-external-tool.entity';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.EXTERNAL_TOOL })\nexport class ExternalToolElementNodeEntity extends BoardNode {\n\t@ManyToOne({ nullable: true })\n\tcontextExternalTool?: ContextExternalToolEntity;\n\n\tconstructor(props: ExternalToolElementNodeEntityProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.EXTERNAL_TOOL;\n\t\tthis.contextExternalTool = props.contextExternalTool;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildExternalToolElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ExternalToolElementNodeEntityProps extends BoardNodeProps {\n\tcontextExternalTool?: ContextExternalToolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolElementProps.html":{"url":"interfaces/ExternalToolElementProps.html","title":"interface - ExternalToolElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolElementProps\n\n\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/external-tool-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 Optional\n \n contextExternalToolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n \n \n contextExternalToolId: string\n\n \n \n\n\n \n \n 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 { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class ExternalToolElement extends BoardComposite {\n\tget contextExternalToolId(): string | undefined {\n\t\treturn this.props.contextExternalToolId;\n\t}\n\n\tset contextExternalToolId(value: string | undefined) {\n\t\tthis.props.contextExternalToolId = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitExternalToolElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitExternalToolElementAsync(this);\n\t}\n}\n\nexport interface ExternalToolElementProps extends BoardCompositeProps {\n\tcontextExternalToolId?: string;\n}\n\nexport function isExternalToolElement(reference: unknown): reference is ExternalToolElement {\n\treturn reference instanceof ExternalToolElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolElementResponse.html":{"url":"classes/ExternalToolElementResponse.html","title":"class - ExternalToolElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementResponse\n\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/external-tool-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(props: ExternalToolElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/external-tool-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 props\n \n \n ExternalToolElementResponse\n \n \n \n No\n \n \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 : ExternalToolElementContent\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/external-tool-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/external-tool-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/external-tool-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.EXTERNAL_TOOL\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/external-tool-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 ExternalToolElementContent {\n\tconstructor(props: ExternalToolElementContent) {\n\t\tthis.contextExternalToolId = props.contextExternalToolId;\n\t}\n\n\t@ApiProperty({ type: String, required: true, nullable: true })\n\tcontextExternalToolId: string | null;\n}\n\nexport class ExternalToolElementResponse {\n\tconstructor(props: ExternalToolElementResponse) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.content = props.content;\n\t\tthis.timestamps = props.timestamps;\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.EXTERNAL_TOOL;\n\n\t@ApiProperty()\n\tcontent: ExternalToolElementContent;\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/ExternalToolElementResponseMapper.html":{"url":"classes/ExternalToolElementResponseMapper.html","title":"class - ExternalToolElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementResponseMapper\n\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/external-tool-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 : ExternalToolElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/external-tool-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: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/external-tool-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 ExternalToolElement\n \n\n \n No\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/external-tool-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : ExternalToolElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/external-tool-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 ExternalToolElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ExternalToolElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, ExternalToolElement } from '@shared/domain';\nimport { ExternalToolElementContent, ExternalToolElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class ExternalToolElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: ExternalToolElementResponseMapper;\n\n\tpublic static getInstance(): ExternalToolElementResponseMapper {\n\t\tif (!ExternalToolElementResponseMapper.instance) {\n\t\t\tExternalToolElementResponseMapper.instance = new ExternalToolElementResponseMapper();\n\t\t}\n\n\t\treturn ExternalToolElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: ExternalToolElement): ExternalToolElementResponse {\n\t\tconst result = new ExternalToolElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.EXTERNAL_TOOL,\n\t\t\tcontent: new ExternalToolElementContent({ contextExternalToolId: element.contextExternalToolId ?? null }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: ExternalToolElement): boolean {\n\t\treturn element instanceof ExternalToolElement;\n\t}\n}\n\n \n\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 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 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 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 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 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 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 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 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 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 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 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 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 import {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameter } from '@modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@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 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 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 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 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 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 Returns : void\n\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 { HttpException, Inject } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AxiosResponse } from 'axios';\nimport { lastValueFrom } from 'rxjs';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport {\n\tExternalToolLogoFetchedLoggable,\n\tExternalToolLogoFetchFailedLoggableException,\n\tExternalToolLogoNotFoundLoggableException,\n\tExternalToolLogoSizeExceededLoggableException,\n\tExternalToolLogoWrongFileTypeLoggableException,\n} from '../loggable';\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.findById(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_exports\n\n\n\ncluster_ExternalToolModule_providers\n\n\n\ncluster_ExternalToolModule_imports\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 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 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 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 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 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 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 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 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 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 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 Async\n findPseudonym\n \n \n Async\n findPseudonymByPseudonym\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: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 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: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 domainObject\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \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: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 \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: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 \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: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 toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonym\n \n \n \n \n \n \n \n findPseudonym(query: PseudonymSearchQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.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 query\n \n PseudonymSearchQuery\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 Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.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 pseudonym\n \n string\n \n\n \n No\n \n\n\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: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 entityDO\n \n Pseudonym\n \n\n \n No\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: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 entity\n \n ExternalToolPseudonymEntity\n \n\n \n No\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, IFindOptions, IPagination, Page, Pseudonym } from '@shared/domain';\nimport { Scope } from '@shared/repo';\nimport { PseudonymSearchQuery } from '../domain';\nimport { ExternalToolPseudonymEntity, IExternalToolPseudonymEntityProps } from '../entity';\nimport { PseudonymScope } from '../entity/pseudonym.scope';\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\tasync findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst entities: ExternalToolPseudonymEntity | null = await this.em.findOne(ExternalToolPseudonymEntity, {\n\t\t\tpseudonym,\n\t\t});\n\n\t\tif (!entities) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entities);\n\n\t\treturn domainObject;\n\t}\n\n\tprotected mapEntityToDomainObject(entity: ExternalToolPseudonymEntity): Pseudonym {\n\t\tconst pseudonym = 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\n\t\treturn pseudonym;\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\tasync findPseudonym(query: PseudonymSearchQuery, options?: IFindOptions): Promise> {\n\t\tconst pagination: IPagination = options?.pagination ?? {};\n\t\tconst scope: Scope = new PseudonymScope()\n\t\t\t.byPseudonym(query.pseudonym)\n\t\t\t.byToolId(query.toolId)\n\t\t\t.byUserId(query.userId)\n\t\t\t.allowEmptyQuery(true);\n\n\t\tconst [entities, total] = await this.em.findAndCount(ExternalToolPseudonymEntity, scope.query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t});\n\n\t\tconst entityDos: Pseudonym[] = entities.map((entity) => this.mapEntityToDomainObject(entity));\n\t\tconst page: Page = new Page(entityDos, total);\n\n\t\treturn page;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/tool/common/enum';\nimport { ExternalToolSearchQuery } from '@modules/tool/common/interface';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolEntity, IExternalToolProperties } from '@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: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 lti11Config\n \n BasicToolConfig\n \n\n \n No\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: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 lti11Config\n \n BasicToolConfigEntity\n \n\n \n No\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: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 customParameters\n \n CustomParameter[]\n \n\n \n No\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: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 entries\n \n CustomParameterEntry[]\n \n\n \n No\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:172\n \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 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: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 customParameters\n \n CustomParameterEntity[]\n \n\n \n No\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: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 entityDO\n \n ExternalTool\n \n\n \n No\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: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 entity\n \n ExternalToolEntity\n \n\n \n No\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: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 lti11Config\n \n Lti11ToolConfig\n \n\n \n No\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: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 lti11Config\n \n Lti11ToolConfigEntity\n \n\n \n No\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: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 oauth2Config\n \n Oauth2ToolConfig\n \n\n \n No\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: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 oauth2Config\n \n Oauth2ToolConfigEntity\n \n\n \n No\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 '@modules/tool/common/domain';\nimport { CustomParameterEntryEntity } from '@modules/tool/common/entity';\nimport { ToolConfigType } from '@modules/tool/common/enum';\nimport { BasicToolConfig, ExternalTool, Lti11ToolConfig, Oauth2ToolConfig } from '@modules/tool/external-tool/domain';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@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 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 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 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 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 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 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 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 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 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 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 \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: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 externalToolConfigDO\n \n BasicToolConfig\n \n\n \n No\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: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 customParameters\n \n CustomParameter[]\n \n\n \n No\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: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 externalToolConfigDO\n \n Lti11ToolConfig\n \n\n \n No\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: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 externalToolConfigDO\n \n Oauth2ToolConfig\n \n\n \n No\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: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 externalTool\n \n ExternalTool\n \n\n \n No\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 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 {\n\tBasicToolConfigResponse,\n\tCustomParameterResponse,\n\tExternalToolResponse,\n\tLti11ToolConfigResponse,\n\tOauth2ToolConfigResponse,\n} from '../controller/dto';\nimport { BasicToolConfig, ExternalTool, Lti11ToolConfig, Oauth2ToolConfig } 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\n \n\n\n\n\n\n\n\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 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 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 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 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 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 '@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 findById\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 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 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 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/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 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 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 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 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 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 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 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 findById(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 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 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 '@modules/tool/external-tool/domain';\nimport { ExternalToolEntity } from '@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 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 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 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 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 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 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 '@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.findById(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.findById(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 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 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 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 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 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 { ExternalToolLogoService } from './external-tool-logo.service';\nimport { ExternalToolParameterValidationService } from './external-tool-parameter-validation.service';\nimport { ExternalToolService } from './external-tool.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.findById(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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_providers\n\n\n\ncluster_FeathersModule_exports\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"},"injectables/FeathersRosterService.html":{"url":"injectables/FeathersRosterService.html","title":"injectable - FeathersRosterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersRosterService\n\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/feathers-roster.service.ts\n \n\n\n \n Description\n \n \n Please do not use this service in any other nest modules.\nThis service will be called from feathers to get the roster data for ctl pseudonyms ExternalToolPseudonymEntity.\nThese data will be used e.g. by bettermarks to resolve and display the usernames.\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 filterCoursesByToolAvailability\n \n \n Private\n Async\n findPseudonymByPseudonym\n \n \n Private\n Async\n getAndPseudonyms\n \n \n Private\n Async\n getCoursesFromUsersPseudonym\n \n \n Async\n getGroup\n \n \n Async\n getUserGroups\n \n \n Private\n getUserRole\n \n \n Async\n getUsersMetadata\n \n \n Private\n mapPseudonymToUserData\n \n \n Private\n Async\n validateAndGetExternalTool\n \n \n Private\n Async\n validateContextExternalTools\n \n \n Private\n Async\n validateSchoolExternalTool\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, courseService: CourseService, externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:53\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 courseService\n \n \n CourseService\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 contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \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 filterCoursesByToolAvailability\n \n \n \n \n \n \n \n filterCoursesByToolAvailability(courses: Course[], externalToolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.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 courses\n \n Course[]\n \n\n \n No\n \n\n\n \n \n externalToolId\n \n string\n \n\n \n No\n \n\n\n \n \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 findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \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 getAndPseudonyms\n \n \n \n \n \n \n \n getAndPseudonyms(users: UserDO[], externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 users\n \n UserDO[]\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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getCoursesFromUsersPseudonym\n \n \n \n \n \n \n \n getCoursesFromUsersPseudonym(pseudonym: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 pseudonym\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getGroup\n \n \n \n \n \n \n \n getGroup(courseId: EntityId, oauth2ClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n oauth2ClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserGroups\n \n \n \n \n \n \n \n getUserGroups(pseudonym: string, oauth2ClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \n oauth2ClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getUserRole\n \n \n \n \n \n \n \n getUserRole(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 user\n \n UserDO\n \n\n \n No\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 getUsersMetadata\n \n \n \n \n \n \n \n getUsersMetadata(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapPseudonymToUserData\n \n \n \n \n \n \n \n mapPseudonymToUserData(pseudonym: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:232\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pseudonym\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : UserData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n validateAndGetExternalTool\n \n \n \n \n \n \n \n validateAndGetExternalTool(oauth2ClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 oauth2ClientId\n \n string\n \n\n \n No\n \n\n\n \n \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 validateContextExternalTools\n \n \n \n \n \n \n \n validateContextExternalTools(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:222\n \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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n validateSchoolExternalTool\n \n \n \n \n \n \n \n validateSchoolExternalTool(schoolId: EntityId, toolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:211\n \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 toolId\n \n string\n \n\n \n No\n \n\n\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 { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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/FederalStateEntity.html":{"url":"entities/FederalStateEntity.html","title":"entity - FederalStateEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n FederalStateEntity\n\n\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 FederalStateEntity 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 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 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 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 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 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 { FederalStateEntity } 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 FederalStateEntity;\n\t}\n\n\tfindByName(name: string): Promise {\n\t\treturn this._em.findOneOrFail(FederalStateEntity, { 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 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 { FederalStateEntity } 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: FederalStateEntity = 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 \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 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\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 alternativeText\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 alternativeText\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:23\n \n \n\n\n \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, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 Implements\n \n \n File\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:4\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:13\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:15\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:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { File } from '@shared/infra/s3-client';\nimport { Readable } from 'stream';\n\nexport class FileDto implements File {\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 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 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 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 alternativeText\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: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 visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\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: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 visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\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:21\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 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 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 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 alternativeText\n \n \n\n \n \n getalternativeText()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.do.ts:13\n \n \n\n \n \n setalternativeText(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.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 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\tget alternativeText(): string {\n\t\treturn this.props.alternativeText || '';\n\t}\n\n\tset alternativeText(value: string) {\n\t\tthis.props.alternativeText = 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\talternativeText: string;\n}\n\nexport function isFileElement(reference: unknown): reference is FileElement {\n\treturn reference instanceof FileElement;\n}\n\n \n\n\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 alternativeText\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 alternativeText\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:15\n \n \n\n\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 @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-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 } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption, alternativeText }: FileElementContent) {\n\t\tthis.caption = caption;\n\t\tthis.alternativeText = alternativeText;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n\n\t@ApiProperty()\n\talternativeText: 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: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({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:28\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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 alternativeText\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 alternativeText\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:12\n \n \n\n\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 @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\t@Property()\n\talternativeText: 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\tthis.alternativeText = props.alternativeText;\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\talternativeText: 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 alternativeText\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 alternativeText\n \n \n \n \n \n \n \n \n alternativeText: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \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\t@Property()\n\talternativeText: 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\tthis.alternativeText = props.alternativeText;\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\talternativeText: 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 alternativeText\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 alternativeText\n \n \n \n \n \n \n \n \n alternativeText: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \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\tget alternativeText(): string {\n\t\treturn this.props.alternativeText || '';\n\t}\n\n\tset alternativeText(value: string) {\n\t\tthis.props.alternativeText = 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\talternativeText: string;\n}\n\nexport function isFileElement(reference: unknown): reference is FileElement {\n\treturn reference instanceof FileElement;\n}\n\n \n\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: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 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: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/file-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/file-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.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: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 } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption, alternativeText }: FileElementContent) {\n\t\tthis.caption = caption;\n\t\tthis.alternativeText = alternativeText;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n\n\t@ApiProperty()\n\talternativeText: 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 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 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, alternativeText: element.alternativeText }),\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 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: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 { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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:131\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:145\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:124\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:138\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:104\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:113\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:110\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:120\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:116\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:107\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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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 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 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 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 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 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 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 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 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 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 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 import { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { FileRecord, FileRecordSecurityCheck, IFileRecordProperties } from '@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 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 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 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:16\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:20\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: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 { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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:54\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:48\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:51\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:45\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:57\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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.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/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 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 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 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 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 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 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 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 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 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 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_exports\n\n\n\ncluster_FileSystemModule_providers\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:32\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:36\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: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 { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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_providers\n\n\n\ncluster_FilesModule_imports\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 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 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 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 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 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 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 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 findFilesAccessibleByUser\n \n \n Async\n findFilesOwnedByUser\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:7\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 findFilesAccessibleByUser\n \n \n \n \n \n \n \n findFilesAccessibleByUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findFilesOwnedByUser\n \n \n \n \n \n \n \n findFilesOwnedByUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.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 EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \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: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 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: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 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';\nimport { FileEntity } from '../entity';\n\n@Injectable()\nexport class FilesService {\n\tconstructor(private readonly repo: FilesRepo) {}\n\n\tasync findFilesAccessibleByUser(userId: EntityId): Promise {\n\t\treturn this.repo.findByPermissionRefId(userId);\n\t}\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 findFilesOwnedByUser(userId: EntityId): Promise {\n\t\treturn this.repo.findByOwnerUserId(userId);\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_imports\n\n\n\ncluster_FilesStorageAMQPModule_providers\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_imports\n\n\n\ncluster_FilesStorageApiModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageApiModule -->\n\nAuthenticationModule->FilesStorageApiModule\n\n\n\n\n\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nFilesStorageApiModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authentication/authentication.module';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\nimport { FileSecurityController, FilesStorageController } from './controller';\nimport { FilesStorageModule } from './files-storage.module';\nimport { FilesStorageUC } from './uc';\n\n@Module({\n\timports: [AuthorizationReferenceModule, 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 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 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 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 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 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 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 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 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 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_exports\n\n\n\ncluster_FilesStorageClientModule_imports\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 '@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, previewService: PreviewService, logger: LegacyLogger, orm: MikroORM)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:14\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 previewService\n \n \n PreviewService\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: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 CopyFilesOfParentPayload\n \n\n \n No\n \n\n\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: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 payload\n \n EntityId\n \n\n \n No\n \n\n\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: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 payload\n \n FileRecordParams\n \n\n \n No\n \n\n\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 { PreviewService } from '../service/preview.service';\nimport { CopyFilesOfParentPayload, FileRecordParams } from './dto';\n\n@Injectable()\nexport class FilesStorageConsumer {\n\tconstructor(\n\t\tprivate readonly filesStorageService: FilesStorageService,\n\t\tprivate readonly previewService: PreviewService,\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.getFileRecordsOfParent(payload);\n\n\t\tawait this.previewService.deletePreviews(fileRecords);\n\t\tawait this.filesStorageService.deleteFilesOfParent(fileRecords);\n\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 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 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 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 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 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 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 '@modules/authorization/domain';\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_imports\n\n\n\ncluster_FilesStorageModule_providers\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 { PreviewGeneratorProducerModule } from '@shared/infra/preview-generator';\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\thostname: Configuration.get('CLAMAV__SERVICE_HOSTNAME') as string,\n\t\tport: Configuration.get('CLAMAV__SERVICE_PORT') as number,\n\t}),\n\tS3ClientModule.register([s3Config]),\n\tPreviewGeneratorProducerModule,\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 Extends\n \n \n RpcMessageProducer\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 Protected\n checkError\n \n \n Protected\n createRequest\n \n \n Protected\n Async\n request\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, logger: LegacyLogger, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:18\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 logger\n \n \n LegacyLogger\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 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: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 payload\n \n ICopyFilesOfParentParams\n \n\n \n No\n \n\n\n \n \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(payload: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.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 EntityId\n \n\n \n No\n \n\n\n \n \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: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 payload\n \n IFileRecordParams\n \n\n \n No\n \n\n\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 checkError\n \n \n \n \n \n \n \n checkError(response: RpcMessage)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:21\n\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 response\n \n RpcMessage\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createRequest\n \n \n \n \n \n \n \n createRequest(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer: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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : { exchange: string; routingKey: string; payload: unknown; timeout: number; }\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(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:12\n\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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\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 { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport {\n\tFilesStorageEvents,\n\tFilesStorageExchange,\n\tICopyFileDO,\n\tICopyFilesOfParentParams,\n\tIFileDO,\n\tIFileRecordParams,\n\tRpcMessageProducer,\n} from '@src/shared/infra/rabbitmq';\nimport { IFilesStorageClientConfig } from '../interfaces';\n\n@Injectable()\nexport class FilesStorageProducer extends RpcMessageProducer {\n\tconstructor(\n\t\tprotected readonly amqpConnection: AmqpConnection,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprotected readonly configService: ConfigService\n\t) {\n\t\tsuper(amqpConnection, FilesStorageExchange, configService.get('INCOMING_REQUEST_TIMEOUT_COPY_API'));\n\t\tthis.logger.setContext(FilesStorageProducer.name);\n\t}\n\n\tasync copyFilesOfParent(payload: ICopyFilesOfParentParams): Promise {\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:started', payload });\n\t\tconst response = await this.request(FilesStorageEvents.COPY_FILES_OF_PARENT, payload);\n\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:finished', payload });\n\n\t\treturn response;\n\t}\n\n\tasync listFilesOfParent(payload: IFileRecordParams): Promise {\n\t\tthis.logger.debug({ action: 'listFilesOfParent:started', payload });\n\t\tconst response = await this.request(FilesStorageEvents.LIST_FILES_OF_PARENT, payload);\n\n\t\tthis.logger.debug({ action: 'listFilesOfParent:finished', payload });\n\n\t\treturn response;\n\t}\n\n\tasync deleteFilesOfParent(payload: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:started', payload });\n\t\tconst response = await this.request(FilesStorageEvents.DELETE_FILES_OF_PARENT, payload);\n\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:finished', payload });\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"},"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 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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@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/domain/error/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/domain/error/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/domain/error/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 '../type';\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 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 '@modules/authentication';\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, SchoolYearEntity, SystemEntity, 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 '@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, SystemEntity, SchoolYearEntity],\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 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, SchoolYearEntity, SystemEntity, 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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@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, SystemEntity, SchoolYearEntity] }),\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 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\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 { 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\tpreviewParams: PreviewParams;\n\thash: string;\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tformat: 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 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:34\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 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:56\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 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: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 error\n \n BusinessError\n \n\n \n No\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: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 error\n \n FeathersError\n \n\n \n No\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:92\n \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 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:102\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: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 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 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}\n\n\t\tif (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 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 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 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 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 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 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 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 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 addUser\n \n \n isEmpty\n \n \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 users\n \n \n externalSource\n \n \n organizationId\n \n \n type\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 addUser\n \n \n \n \n \n \naddUser(user: GroupUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/domain/group.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 user\n \n GroupUser\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isEmpty\n \n \n \n \n \n \nisEmpty()\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/domain/group.ts:49\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n removeUser\n \n \n \n \n \n \nremoveUser(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/domain/group.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 UserDO\n \n\n \n No\n \n\n\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/group/domain/group.ts:25\n \n \n\n \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/modules/group/domain/group.ts:29\n \n \n\n \n \n \n \n \n \n \n externalSource\n \n \n\n \n \n getexternalSource()\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group.ts:33\n \n \n\n \n \n \n \n \n \n \n organizationId\n \n \n\n \n \n getorganizationId()\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group.ts:37\n \n \n\n \n \n \n \n \n \n \n type\n \n \n\n \n \n gettype()\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group.ts:41\n \n \n\n \n \n\n \n\n\n \n import { EntityId, ExternalSource, type UserDO } 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\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget users(): GroupUser[] {\n\t\treturn this.props.users;\n\t}\n\n\tget externalSource(): ExternalSource | undefined {\n\t\treturn this.props.externalSource;\n\t}\n\n\tget organizationId(): string | undefined {\n\t\treturn this.props.organizationId;\n\t}\n\n\tget type(): GroupTypes {\n\t\treturn this.props.type;\n\t}\n\n\tremoveUser(user: UserDO): void {\n\t\tthis.props.users = this.props.users.filter((groupUser: GroupUser): boolean => groupUser.userId !== user.id);\n\t}\n\n\tisEmpty(): boolean {\n\t\treturn this.props.users.length === 0;\n\t}\n\n\taddUser(user: GroupUser): void {\n\t\tif (!this.users.find((u) => u.userId === user.userId)) {\n\t\t\tthis.users.push(user);\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/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_providers\n\n\n\ncluster_GroupApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nGroupApiModule -->\n\nAuthorizationModule->GroupApiModule\n\n\n\n\n\nClassModule\n\nClassModule\n\nGroupApiModule -->\n\nClassModule->GroupApiModule\n\n\n\n\n\nGroupModule\n\nGroupModule\n\nGroupApiModule -->\n\nGroupModule->GroupApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nGroupApiModule -->\n\nLegacySchoolModule->GroupApiModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nGroupApiModule -->\n\nRoleModule->GroupApiModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nGroupApiModule -->\n\nSystemModule->GroupApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nGroupApiModule -->\n\nUserModule->GroupApiModule\n\n\n\n\n\nGroupUc\n\nGroupUc\n\nGroupApiModule -->\n\nGroupUc->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 Providers\n \n \n GroupUc\n \n \n \n \n Controllers\n \n \n GroupController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n ClassModule\n \n \n GroupModule\n \n \n LegacySchoolModule\n \n \n RoleModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { ClassModule } from '@modules/class';\nimport { RoleModule } from '@modules/role';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@modules/user';\nimport { GroupController } from './controller';\nimport { GroupModule } from './group.module';\nimport { GroupUc } from './uc';\n\n@Module({\n\timports: [GroupModule, ClassModule, UserModule, RoleModule, LegacySchoolModule, AuthorizationModule, SystemModule],\n\tcontrollers: [GroupController],\n\tproviders: [GroupUc],\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"},"controllers/GroupController.html":{"url":"controllers/GroupController.html","title":"controller - GroupController","body":"\n \n\n\n\n\n\n\n Controllers\n GroupController\n\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/controller/group.controller.ts\n \n\n \n Prefix\n \n \n groups\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 Public\n Async\n findClassesForSchool\n \n \n \n \n \n \n \n Public\n Async\n getGroup\n \n \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 Public\n Async\n findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(pagination: PaginationParams, sortingQuery: ClassSortParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get a list of classes and groups of type class for the current users school.'})@ApiResponse({status: undefined, type: ClassInfoSearchListResponse})@ApiResponse({status: '4XX', type: ErrorResponse})@ApiResponse({status: '5XX', type: ErrorResponse})@Get('/class')\n \n \n\n \n \n Defined in apps/server/src/modules/group/controller/group.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 pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n sortingQuery\n \n ClassSortParams\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 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 getGroup\n \n \n \n \n \n \n \n getGroup(currentUser: ICurrentUser, params: GroupIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('/:groupId')@ApiOperation({summary: 'Get a group by id.'})@ApiResponse({status: undefined, type: GroupResponse})@ApiResponse({status: '4XX', type: ErrorResponse})@ApiResponse({status: '5XX', type: ErrorResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/group/controller/group.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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n GroupIdParams\n \n\n \n No\n \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, HttpStatus, Param, Query } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { PaginationParams } from '@shared/controller';\nimport { Page } from '@shared/domain';\nimport { ErrorResponse } from '@src/core/error/dto';\nimport { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\nimport { GroupUc } from '../uc';\nimport { ClassInfoDto, ResolvedGroupDto } from '../uc/dto';\nimport { ClassInfoSearchListResponse, ClassSortParams, GroupIdParams, GroupResponse } from './dto';\nimport { GroupResponseMapper } from './mapper';\n\n@ApiTags('Group')\n@Authenticate('jwt')\n@Controller('groups')\nexport class GroupController {\n\tconstructor(private readonly groupUc: GroupUc) {}\n\n\t@ApiOperation({ summary: 'Get a list of classes and groups of type class for the current users school.' })\n\t@ApiResponse({ status: HttpStatus.OK, type: ClassInfoSearchListResponse })\n\t@ApiResponse({ status: '4XX', type: ErrorResponse })\n\t@ApiResponse({ status: '5XX', type: ErrorResponse })\n\t@Get('/class')\n\tpublic async findClassesForSchool(\n\t\t@Query() pagination: PaginationParams,\n\t\t@Query() sortingQuery: ClassSortParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board: Page = await this.groupUc.findAllClassesForSchool(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tpagination.skip,\n\t\t\tpagination.limit,\n\t\t\tsortingQuery.sortBy,\n\t\t\tsortingQuery.sortOrder\n\t\t);\n\n\t\tconst response: ClassInfoSearchListResponse = GroupResponseMapper.mapToClassInfosToListResponse(\n\t\t\tboard,\n\t\t\tpagination.skip,\n\t\t\tpagination.limit\n\t\t);\n\n\t\treturn response;\n\t}\n\n\t@Get('/:groupId')\n\t@ApiOperation({ summary: 'Get a group by id.' })\n\t@ApiResponse({ status: HttpStatus.OK, type: GroupResponse })\n\t@ApiResponse({ status: '4XX', type: ErrorResponse })\n\t@ApiResponse({ status: '5XX', type: ErrorResponse })\n\tpublic async getGroup(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: GroupIdParams\n\t): Promise {\n\t\tconst group: ResolvedGroupDto = await this.groupUc.getGroup(currentUser.userId, params.groupId);\n\n\t\tconst response: GroupResponse = GroupResponseMapper.mapToGroupResponse(group);\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/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 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 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 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 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 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 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, SystemEntity, 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(SystemEntity, 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"},"classes/GroupIdParams.html":{"url":"classes/GroupIdParams.html","title":"class - GroupIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupIdParams\n\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/controller/dto/request/group-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 groupId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n groupId\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/group/controller/dto/request/group-id-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 GroupIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\tgroupId!: 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/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_providers\n\n\n\ncluster_GroupModule_exports\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, type UserDO } 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\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget users(): GroupUser[] {\n\t\treturn this.props.users;\n\t}\n\n\tget externalSource(): ExternalSource | undefined {\n\t\treturn this.props.externalSource;\n\t}\n\n\tget organizationId(): string | undefined {\n\t\treturn this.props.organizationId;\n\t}\n\n\tget type(): GroupTypes {\n\t\treturn this.props.type;\n\t}\n\n\tremoveUser(user: UserDO): void {\n\t\tthis.props.users = this.props.users.filter((groupUser: GroupUser): boolean => groupUser.userId !== user.id);\n\t}\n\n\tisEmpty(): boolean {\n\t\treturn this.props.users.length === 0;\n\t}\n\n\taddUser(user: GroupUser): void {\n\t\tif (!this.users.find((u) => u.userId === user.userId)) {\n\t\t\tthis.users.push(user);\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/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 Public\n Async\n delete\n \n \n Public\n Async\n findByExternalSource\n \n \n Public\n Async\n findById\n \n \n Public\n Async\n findByUser\n \n \n Public\n Async\n findClassesForSchool\n \n \n Public\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: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 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: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 domainObject\n \n Group\n \n\n \n No\n \n\n\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 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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\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: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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUser\n \n \n \n \n \n \n \n findByUser(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.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 UserDO\n \n\n \n No\n \n\n\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 findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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 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: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 domainObject\n \n Group\n \n\n \n No\n \n\n\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, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\nimport { type UserDO } from '@shared/domain';\nimport { Group, GroupProps } from '../domain';\nimport { GroupEntity, GroupEntityProps, GroupEntityTypes } from '../entity';\nimport { GroupDomainMapper } from './group-domain.mapper';\n\n@Injectable()\nexport class GroupRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tpublic async 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\tpublic async 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\tpublic async findByUser(user: UserDO): Promise {\n\t\tconst entities: GroupEntity[] = await this.em.find(GroupEntity, {\n\t\t\tusers: { user: new ObjectId(user.id) },\n\t\t});\n\n\t\tconst domainObjects = entities.map((entity) => {\n\t\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\t\treturn new Group(props);\n\t\t});\n\n\t\treturn domainObjects;\n\t}\n\n\tpublic async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst entities: GroupEntity[] = await this.em.find(GroupEntity, {\n\t\t\ttype: GroupEntityTypes.CLASS,\n\t\t\torganization: schoolId,\n\t\t});\n\n\t\tconst domainObjects = entities.map((entity) => {\n\t\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\t\treturn new Group(props);\n\t\t});\n\n\t\treturn domainObjects;\n\t}\n\n\tpublic async 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\tpublic async 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/GroupResponse.html":{"url":"classes/GroupResponse.html","title":"class - GroupResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupResponse\n\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/controller/dto/response/group.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 externalSource\n \n \n \n id\n \n \n \n name\n \n \n \n Optional\n organizationId\n \n \n \n type\n \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(group: GroupResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.response.ts:23\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 GroupResponse\n \n \n \n No\n \n \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 : ExternalSourceResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.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()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.response.ts:8\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/group/controller/dto/response/group.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n organizationId\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/group/controller/dto/response/group.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : GroupTypeResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: GroupTypeResponse})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : GroupUserResponse[]\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/group/controller/dto/response/group.response.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 { ExternalSourceResponse } from './external-source.response';\nimport { GroupTypeResponse } from './group-type.response';\nimport { GroupUserResponse } from './group-user.response';\n\nexport class GroupResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty({ enum: GroupTypeResponse })\n\ttype: GroupTypeResponse;\n\n\t@ApiProperty({ type: [GroupUserResponse] })\n\tusers: GroupUserResponse[];\n\n\t@ApiPropertyOptional()\n\texternalSource?: ExternalSourceResponse;\n\n\t@ApiPropertyOptional()\n\torganizationId?: string;\n\n\tconstructor(group: GroupResponse) {\n\t\tthis.id = group.id;\n\t\tthis.name = group.name;\n\t\tthis.type = group.type;\n\t\tthis.users = group.users;\n\t\tthis.externalSource = group.externalSource;\n\t\tthis.organizationId = group.organizationId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupResponseMapper.html":{"url":"classes/GroupResponseMapper.html","title":"class - GroupResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupResponseMapper\n\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/controller/mapper/group-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 mapToClassInfosToListResponse\n \n \n Private\n Static\n mapToClassInfoToResponse\n \n \n Static\n mapToGroupResponse\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 mapToClassInfosToListResponse\n \n \n \n \n \n \n \n mapToClassInfosToListResponse(classInfos: Page, skip?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/controller/mapper/group-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 classInfos\n \n Page\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 Returns : ClassInfoSearchListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapToClassInfoToResponse\n \n \n \n \n \n \n \n mapToClassInfoToResponse(classInfo: ClassInfoDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/controller/mapper/group-response.mapper.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 classInfo\n \n ClassInfoDto\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ClassInfoResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToGroupResponse\n \n \n \n \n \n \n \n mapToGroupResponse(resolvedGroup: ResolvedGroupDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/controller/mapper/group-response.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 resolvedGroup\n \n ResolvedGroupDto\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : GroupResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Page } from '@shared/domain';\nimport { GroupTypes } from '../../domain';\nimport { ClassInfoDto, ResolvedGroupDto } from '../../uc/dto';\nimport {\n\tClassInfoResponse,\n\tClassInfoSearchListResponse,\n\tExternalSourceResponse,\n\tGroupResponse,\n\tGroupTypeResponse,\n\tGroupUserResponse,\n} from '../dto';\n\nconst typeMapping: Record = {\n\t[GroupTypes.CLASS]: GroupTypeResponse.CLASS,\n};\n\nexport class GroupResponseMapper {\n\tstatic mapToClassInfosToListResponse(\n\t\tclassInfos: Page,\n\t\tskip?: number,\n\t\tlimit?: number\n\t): ClassInfoSearchListResponse {\n\t\tconst mappedData: ClassInfoResponse[] = classInfos.data.map((classInfo) =>\n\t\t\tthis.mapToClassInfoToResponse(classInfo)\n\t\t);\n\n\t\tconst response: ClassInfoSearchListResponse = new ClassInfoSearchListResponse(\n\t\t\tmappedData,\n\t\t\tclassInfos.total,\n\t\t\tskip,\n\t\t\tlimit\n\t\t);\n\n\t\treturn response;\n\t}\n\n\tprivate static mapToClassInfoToResponse(classInfo: ClassInfoDto): ClassInfoResponse {\n\t\tconst mapped = new ClassInfoResponse({\n\t\t\tid: classInfo.id,\n\t\t\ttype: classInfo.type,\n\t\t\tname: classInfo.name,\n\t\t\texternalSourceName: classInfo.externalSourceName,\n\t\t\tteachers: classInfo.teachers,\n\t\t\tschoolYear: classInfo.schoolYear,\n\t\t\tisUpgradable: classInfo.isUpgradable,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToGroupResponse(resolvedGroup: ResolvedGroupDto): GroupResponse {\n\t\tconst mapped: GroupResponse = new GroupResponse({\n\t\t\tid: resolvedGroup.id,\n\t\t\tname: resolvedGroup.name,\n\t\t\ttype: typeMapping[resolvedGroup.type],\n\t\t\texternalSource: resolvedGroup.externalSource\n\t\t\t\t? new ExternalSourceResponse({\n\t\t\t\t\t\texternalId: resolvedGroup.externalSource.externalId,\n\t\t\t\t\t\tsystemId: resolvedGroup.externalSource.systemId,\n\t\t\t\t })\n\t\t\t\t: undefined,\n\t\t\tusers: resolvedGroup.users.map(\n\t\t\t\t(user) =>\n\t\t\t\t\tnew GroupUserResponse({\n\t\t\t\t\t\tid: user.user.id as string,\n\t\t\t\t\t\trole: user.role.name,\n\t\t\t\t\t\tfirstName: user.user.firstName,\n\t\t\t\t\t\tlastName: user.user.lastName,\n\t\t\t\t\t})\n\t\t\t),\n\t\t\torganizationId: resolvedGroup.organizationId,\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"},"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/GroupRule.html":{"url":"injectables/GroupRule.html","title":"injectable - GroupRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupRule\n\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/domain/rules/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)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/rules/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 \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, domainObject: Group, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/domain/rules/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 domainObject\n \n Group\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 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, domainObject: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/domain/rules/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 domainObject\n \n Group\n \n\n \n No\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';\nimport { Group } from '@src/modules/group';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\n\n@Injectable()\nexport class GroupRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, domainObject: Group): boolean {\n\t\tconst isMatched: boolean = domainObject instanceof Group;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, domainObject: Group, context: AuthorizationContext): boolean {\n\t\tconst hasPermission: boolean =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t(domainObject.organizationId ? user.school.id === domainObject.organizationId : true);\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/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 Public\n Async\n delete\n \n \n Public\n Async\n findByExternalSource\n \n \n Public\n Async\n findById\n \n \n Public\n Async\n findByUser\n \n \n Public\n Async\n findClassesForSchool\n \n \n Public\n Async\n save\n \n \n Public\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 Public\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: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 group\n \n Group\n \n\n \n No\n \n\n\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 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: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 systemId\n \n EntityId\n \n\n \n No\n \n\n\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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUser\n \n \n \n \n \n \n \n findByUser(user: UserDO)\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 user\n \n UserDO\n \n\n \n No\n \n\n\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 findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: EntityId)\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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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 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: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 group\n \n Group\n \n\n \n No\n \n\n\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 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: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 id\n \n EntityId\n \n\n \n No\n \n\n\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, type UserDO } from '@shared/domain';\nimport { AuthorizationLoaderServiceGeneric } from '@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\tpublic async 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\tpublic async tryFindById(id: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findById(id);\n\n\t\treturn group;\n\t}\n\n\tpublic async 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\tpublic async findByUser(user: UserDO): Promise {\n\t\tconst groups: Group[] = await this.groupRepo.findByUser(user);\n\n\t\treturn groups;\n\t}\n\n\tpublic async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst group: Group[] = await this.groupRepo.findClassesForSchool(schoolId);\n\n\t\treturn group;\n\t}\n\n\tpublic async save(group: Group): Promise {\n\t\tconst savedGroup: Group = await this.groupRepo.save(group);\n\n\t\treturn savedGroup;\n\t}\n\n\tpublic async 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"},"injectables/GroupUc.html":{"url":"injectables/GroupUc.html","title":"injectable - GroupUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupUc\n\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/uc/group.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 applyPagination\n \n \n Private\n Async\n checkPermission\n \n \n Public\n Async\n findAllClassesForSchool\n \n \n Private\n Async\n findClassesForSchool\n \n \n Private\n Async\n findCombinedClassListForSchool\n \n \n Private\n Async\n findGroupsOfTypeClassForSchool\n \n \n Private\n Async\n findSystemNamesForGroups\n \n \n Private\n Async\n findUsersForGroup\n \n \n Public\n Async\n getGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(groupService: GroupService, classService: ClassService, systemService: SystemService, userService: UserService, roleService: RoleService, schoolService: LegacySchoolService, authorizationService: AuthorizationService, schoolYearService: SchoolYearService)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/group.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 groupService\n \n \n GroupService\n \n \n \n No\n \n \n \n \n classService\n \n \n ClassService\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 roleService\n \n \n RoleService\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 authorizationService\n \n \n AuthorizationService\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 \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n applyPagination\n \n \n \n \n \n \n \n applyPagination(combinedClassInfo: ClassInfoDto[], skip: number, limit: number | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 combinedClassInfo\n \n ClassInfoDto[]\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 | undefined\n \n\n \n No\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 checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.uc.ts:172\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n group\n \n Group\n \n\n \n No\n \n\n\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 findAllClassesForSchool\n \n \n \n \n \n \n \n findAllClassesForSchool(userId: EntityId, schoolId: EntityId, skip: number, limit?: number, sortBy, sortOrder: SortOrder)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.uc.ts:30\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 userId\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n schoolId\n \n EntityId\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 Yes\n \n\n \n \n\n \n \n sortBy\n \n \n\n \n No\n \n\n \n 'name'\n \n\n \n \n sortOrder\n \n SortOrder\n \n\n \n No\n \n\n \n SortOrder.asc\n \n\n \n \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 findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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 findCombinedClassListForSchool\n \n \n \n \n \n \n \n findCombinedClassListForSchool(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 schoolId\n \n string\n \n\n \n No\n \n\n\n \n \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 findGroupsOfTypeClassForSchool\n \n \n \n \n \n \n \n findGroupsOfTypeClassForSchool(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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 findSystemNamesForGroups\n \n \n \n \n \n \n \n findSystemNamesForGroups(groups: Group[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.uc.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 groups\n \n Group[]\n \n\n \n No\n \n\n\n \n \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 findUsersForGroup\n \n \n \n \n \n \n \n findUsersForGroup(group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 group\n \n Group\n \n\n \n No\n \n\n\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 getGroup\n \n \n \n \n \n \n \n getGroup(userId: EntityId, groupId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 groupId\n \n EntityId\n \n\n \n No\n \n\n\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, Page, Permission, SchoolYearEntity, SortOrder, User, UserDO } from '@shared/domain';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { ClassService } from '@modules/class';\nimport { Class } from '@modules/class/domain';\nimport { LegacySchoolService, SchoolYearService } from '@modules/legacy-school';\nimport { RoleService } from '@modules/role';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\nimport { SystemDto, SystemService } from '@modules/system';\nimport { UserService } from '@modules/user';\nimport { Group, GroupUser } from '../domain';\nimport { GroupService } from '../service';\nimport { SortHelper } from '../util';\nimport { ClassInfoDto, ResolvedGroupDto, ResolvedGroupUser } from './dto';\nimport { GroupUcMapper } from './mapper/group-uc.mapper';\n\n@Injectable()\nexport class GroupUc {\n\tconstructor(\n\t\tprivate readonly groupService: GroupService,\n\t\tprivate readonly classService: ClassService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly roleService: RoleService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolYearService: SchoolYearService\n\t) {}\n\n\tpublic async findAllClassesForSchool(\n\t\tuserId: EntityId,\n\t\tschoolId: EntityId,\n\t\tskip = 0,\n\t\tlimit?: number,\n\t\tsortBy: keyof ClassInfoDto = 'name',\n\t\tsortOrder: SortOrder = SortOrder.asc\n\t): Promise> {\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkPermission(\n\t\t\tuser,\n\t\t\tschool,\n\t\t\tAuthorizationContextBuilder.read([Permission.CLASS_LIST, Permission.GROUP_LIST])\n\t\t);\n\n\t\tconst combinedClassInfo: ClassInfoDto[] = await this.findCombinedClassListForSchool(schoolId);\n\n\t\tcombinedClassInfo.sort((a: ClassInfoDto, b: ClassInfoDto): number =>\n\t\t\tSortHelper.genericSortFunction(a[sortBy], b[sortBy], sortOrder)\n\t\t);\n\n\t\tconst pageContent: ClassInfoDto[] = this.applyPagination(combinedClassInfo, skip, limit);\n\n\t\tconst page: Page = new Page(pageContent, combinedClassInfo.length);\n\n\t\treturn page;\n\t}\n\n\tprivate async findCombinedClassListForSchool(schoolId: string): Promise {\n\t\tconst [classInfosFromClasses, classInfosFromGroups] = await Promise.all([\n\t\t\tawait this.findClassesForSchool(schoolId),\n\t\t\tawait this.findGroupsOfTypeClassForSchool(schoolId),\n\t\t]);\n\n\t\tconst combinedClassInfo: ClassInfoDto[] = [...classInfosFromClasses, ...classInfosFromGroups];\n\n\t\treturn combinedClassInfo;\n\t}\n\n\tprivate async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst classes: Class[] = await this.classService.findClassesForSchool(schoolId);\n\n\t\tconst classInfosFromClasses: ClassInfoDto[] = await Promise.all(\n\t\t\tclasses.map(async (clazz: Class): Promise => {\n\t\t\t\tconst teachers: UserDO[] = await Promise.all(\n\t\t\t\t\tclazz.teacherIds.map((teacherId: EntityId) => this.userService.findById(teacherId))\n\t\t\t\t);\n\n\t\t\t\tlet schoolYear: SchoolYearEntity | undefined;\n\t\t\t\tif (clazz.year) {\n\t\t\t\t\tschoolYear = await this.schoolYearService.findById(clazz.year);\n\t\t\t\t}\n\n\t\t\t\tconst mapped: ClassInfoDto = GroupUcMapper.mapClassToClassInfoDto(clazz, teachers, schoolYear);\n\n\t\t\t\treturn mapped;\n\t\t\t})\n\t\t);\n\n\t\treturn classInfosFromClasses;\n\t}\n\n\tprivate async findGroupsOfTypeClassForSchool(schoolId: EntityId): Promise {\n\t\tconst groupsOfTypeClass: Group[] = await this.groupService.findClassesForSchool(schoolId);\n\n\t\tconst systemMap: Map = await this.findSystemNamesForGroups(groupsOfTypeClass);\n\n\t\tconst classInfosFromGroups: ClassInfoDto[] = await Promise.all(\n\t\t\tgroupsOfTypeClass.map(async (group: Group): Promise => {\n\t\t\t\tlet system: SystemDto | undefined;\n\t\t\t\tif (group.externalSource) {\n\t\t\t\t\tsystem = systemMap.get(group.externalSource.systemId);\n\t\t\t\t}\n\n\t\t\t\tconst resolvedUsers: ResolvedGroupUser[] = await this.findUsersForGroup(group);\n\n\t\t\t\tconst mapped: ClassInfoDto = GroupUcMapper.mapGroupToClassInfoDto(group, resolvedUsers, system);\n\n\t\t\t\treturn mapped;\n\t\t\t})\n\t\t);\n\n\t\treturn classInfosFromGroups;\n\t}\n\n\tprivate async findSystemNamesForGroups(groups: Group[]): Promise> {\n\t\tconst systemIds: EntityId[] = groups\n\t\t\t.map((group: Group): string | undefined => group.externalSource?.systemId)\n\t\t\t.filter((systemId: string | undefined): systemId is EntityId => systemId !== undefined);\n\n\t\tconst uniqueSystemIds: EntityId[] = Array.from(new Set(systemIds));\n\n\t\tconst systems: Map = new Map();\n\n\t\tawait Promise.all(\n\t\t\tuniqueSystemIds.map(async (systemId: string) => {\n\t\t\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\n\t\t\t\tsystems.set(systemId, system);\n\t\t\t})\n\t\t);\n\n\t\treturn systems;\n\t}\n\n\tprivate async findUsersForGroup(group: Group): Promise {\n\t\tconst resolvedGroupUsers: ResolvedGroupUser[] = await Promise.all(\n\t\t\tgroup.users.map(async (groupUser: GroupUser): Promise => {\n\t\t\t\tconst user: UserDO = await this.userService.findById(groupUser.userId);\n\t\t\t\tconst role: RoleDto = await this.roleService.findById(groupUser.roleId);\n\n\t\t\t\tconst resolvedGroups = new ResolvedGroupUser({\n\t\t\t\t\tuser,\n\t\t\t\t\trole,\n\t\t\t\t});\n\n\t\t\t\treturn resolvedGroups;\n\t\t\t})\n\t\t);\n\n\t\treturn resolvedGroupUsers;\n\t}\n\n\tprivate applyPagination(combinedClassInfo: ClassInfoDto[], skip: number, limit: number | undefined) {\n\t\tconst page: ClassInfoDto[] = combinedClassInfo.slice(skip, limit ? skip + limit : combinedClassInfo.length);\n\n\t\treturn page;\n\t}\n\n\tpublic async getGroup(userId: EntityId, groupId: EntityId): Promise {\n\t\tconst group: Group = await this.groupService.findById(groupId);\n\n\t\tawait this.checkPermission(userId, group);\n\n\t\tconst resolvedUsers: ResolvedGroupUser[] = await this.findUsersForGroup(group);\n\t\tconst resolvedGroup: ResolvedGroupDto = GroupUcMapper.mapToResolvedGroupDto(group, resolvedUsers);\n\n\t\treturn resolvedGroup;\n\t}\n\n\tprivate async checkPermission(userId: EntityId, group: Group): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\treturn this.authorizationService.checkPermission(\n\t\t\tuser,\n\t\t\tgroup,\n\t\t\tAuthorizationContextBuilder.read([Permission.GROUP_VIEW])\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/GroupUcMapper.html":{"url":"classes/GroupUcMapper.html","title":"class - GroupUcMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUcMapper\n\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/uc/mapper/group-uc.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 mapClassToClassInfoDto\n \n \n Static\n mapGroupToClassInfoDto\n \n \n Static\n mapToResolvedGroupDto\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 mapClassToClassInfoDto\n \n \n \n \n \n \n \n mapClassToClassInfoDto(clazz: Class, teachers: UserDO[], schoolYear?: SchoolYearEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/mapper/group-uc.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 clazz\n \n Class\n \n\n \n No\n \n\n\n \n \n teachers\n \n UserDO[]\n \n\n \n No\n \n\n\n \n \n schoolYear\n \n SchoolYearEntity\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : ClassInfoDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapGroupToClassInfoDto\n \n \n \n \n \n \n \n mapGroupToClassInfoDto(group: Group, resolvedUsers: ResolvedGroupUser[], system?: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/mapper/group-uc.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 group\n \n Group\n \n\n \n No\n \n\n\n \n \n resolvedUsers\n \n ResolvedGroupUser[]\n \n\n \n No\n \n\n\n \n \n system\n \n SystemDto\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : ClassInfoDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResolvedGroupDto\n \n \n \n \n \n \n \n mapToResolvedGroupDto(group: Group, resolvedGroupUsers: ResolvedGroupUser[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/mapper/group-uc.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 group\n \n Group\n \n\n \n No\n \n\n\n \n \n resolvedGroupUsers\n \n ResolvedGroupUser[]\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ResolvedGroupDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { RoleName, SchoolYearEntity, UserDO } from '@shared/domain';\nimport { Class } from '@modules/class/domain';\nimport { SystemDto } from '@modules/system';\nimport { Group } from '../../domain';\nimport { ClassInfoDto, ResolvedGroupDto, ResolvedGroupUser } from '../dto';\nimport { ClassRootType } from '../dto/class-root-type';\n\nexport class GroupUcMapper {\n\tpublic static mapGroupToClassInfoDto(\n\t\tgroup: Group,\n\t\tresolvedUsers: ResolvedGroupUser[],\n\t\tsystem?: SystemDto\n\t): ClassInfoDto {\n\t\tconst mapped: ClassInfoDto = new ClassInfoDto({\n\t\t\tid: group.id,\n\t\t\ttype: ClassRootType.GROUP,\n\t\t\tname: group.name,\n\t\t\texternalSourceName: system?.displayName,\n\t\t\tteachers: resolvedUsers\n\t\t\t\t.filter((groupUser: ResolvedGroupUser) => groupUser.role.name === RoleName.TEACHER)\n\t\t\t\t.map((groupUser: ResolvedGroupUser) => groupUser.user.lastName),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tpublic static mapClassToClassInfoDto(clazz: Class, teachers: UserDO[], schoolYear?: SchoolYearEntity): ClassInfoDto {\n\t\tconst name = clazz.gradeLevel ? `${clazz.gradeLevel}${clazz.name}` : clazz.name;\n\t\tconst isUpgradable = clazz.gradeLevel !== 13 && !clazz.successor;\n\n\t\tconst mapped: ClassInfoDto = new ClassInfoDto({\n\t\t\tid: clazz.id,\n\t\t\ttype: ClassRootType.CLASS,\n\t\t\tname,\n\t\t\texternalSourceName: clazz.source,\n\t\t\tteachers: teachers.map((user: UserDO) => user.lastName),\n\t\t\tschoolYear: schoolYear?.name,\n\t\t\tisUpgradable,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tpublic static mapToResolvedGroupDto(group: Group, resolvedGroupUsers: ResolvedGroupUser[]): ResolvedGroupDto {\n\t\tconst mapped: ResolvedGroupDto = new ResolvedGroupDto({\n\t\t\tid: group.id,\n\t\t\tname: group.name,\n\t\t\ttype: group.type,\n\t\t\texternalSource: group.externalSource,\n\t\t\tusers: resolvedGroupUsers,\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"},"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"},"classes/GroupUserResponse.html":{"url":"classes/GroupUserResponse.html","title":"class - GroupUserResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUserResponse\n\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/controller/dto/response/group-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 firstName\n \n \n \n id\n \n \n \n lastName\n \n \n \n role\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(user: GroupUserResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group-user.response.ts:15\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 GroupUserResponse\n \n \n \n No\n \n \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/group/controller/dto/response/group-user.response.ts:9\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/group/controller/dto/response/group-user.response.ts:6\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/group/controller/dto/response/group-user.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: RoleName})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group-user.response.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 { RoleName } from '@shared/domain';\n\nexport class GroupUserResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tfirstName: string;\n\n\t@ApiProperty()\n\tlastName: string;\n\n\t@ApiProperty({ enum: RoleName })\n\trole: RoleName;\n\n\tconstructor(user: GroupUserResponse) {\n\t\tthis.id = user.id;\n\t\tthis.firstName = user.firstName;\n\t\tthis.lastName = user.lastName;\n\t\tthis.role = user.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/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 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 '@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, SchoolYearEntity, SystemEntity, 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 '@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, SystemEntity, SchoolYearEntity],\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 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, SchoolYearEntity, 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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@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, SchoolYearEntity, 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/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 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 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 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 '@modules/oauth/service/dto/hydra.redirect.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { AuthorizationParams } from '../controller/dto';\nimport { OAuthSSOError } from '../loggable/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 '@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 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 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 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 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 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 '@modules/oauth/controller/dto/authorization.params';\nimport { CookiesDto } from '@modules/oauth/service/dto/cookies.dto';\nimport { HydraRedirectDto } from '@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/ICleanOptions.html":{"url":"interfaces/ICleanOptions.html","title":"interface - ICleanOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICleanOptions\n\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 pageSize\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n pageSize\n \n \n \n \n \n \n \n \n pageSize: 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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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/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 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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { TeamDto } from '@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, SystemEntity } 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 SystemEntity[]);\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 SystemEntity[]);\n\t\t}\n\t}\n\n\tprivate encryptSecretsInSystems(systems: SystemEntity[]) {\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 SystemEntity[]);\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: SystemEntity[]) {\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 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 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 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 ILoggerConfig\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 classes\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 groups\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 classes\n \n \n \n \n \n \n \n \n classes: ClassEntity[]\n\n \n \n\n\n \n \n Type : ClassEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \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 groups\n \n \n \n \n \n \n \n \n groups: GroupEntity[]\n\n \n \n\n\n \n \n Type : GroupEntity[]\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 { ClassEntity } from '@modules/class/entity/class.entity';\nimport { GroupEntity } from '@modules/group/entity/group.entity';\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\tclasses?: ClassEntity[];\n\tgroups?: GroupEntity[];\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\nexport class UsersList {\n\tid!: string;\n\n\tfirstName!: string;\n\n\tlastName!: string;\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\t@ManyToMany(() => ClassEntity, undefined, { fieldName: 'classIds' })\n\tclasses = new Collection(this);\n\n\t@ManyToMany(() => GroupEntity, undefined, { fieldName: 'groupIds' })\n\tgroups = new Collection(this);\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\tthis.classes.set(props.classes || []);\n\t\tthis.groups.set(props.groups || []);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = Course.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = Course.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = Course.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate static 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 getStudentsList(): UsersList[] {\n\t\tconst users = this.students.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getTeachersList(): UsersList[] {\n\t\tconst users = this.teachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getSubstitutionTeachersList(): UsersList[] {\n\t\tconst users = this.substitutionTeachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate static extractUserList(users: User[]): UsersList[] {\n\t\tconst usersList: UsersList[] = users.map((user) => {\n\t\t\treturn {\n\t\t\t\tid: user.id,\n\t\t\t\tfirstName: user.firstName,\n\t\t\t\tlastName: user.lastName,\n\t\t\t};\n\t\t});\n\t\treturn usersList;\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 isExternalUser\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 isExternalUser\n \n \n \n \n \n \n \n \n isExternalUser: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n True if the user is an external user e.g. an oauth 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 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\t/** True if the user is an external user e.g. an oauth user */\n\tisExternalUser: boolean;\n}\n\nexport interface OauthCurrentUser extends ICurrentUser {\n\t/** Contains the idToken of the external idp. Will be set during oAuth2 login and used for rp initiated logout */\n\texternalIdToken?: 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/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 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 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 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 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 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: string\n\n \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: 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: string;\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 FederalStateEntity 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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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 USE_STREAM_TO_ANTIVIRUS\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 USE_STREAM_TO_ANTIVIRUS\n \n \n \n \n \n \n \n \n USE_STREAM_TO_ANTIVIRUS: 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 { 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\tUSE_STREAM_TO_ANTIVIRUS: boolean;\n}\n\nexport const defaultConfig = {\n\tNEST_LOG_LEVEL: Configuration.get('NEST_LOG_LEVEL') as string,\n\tINCOMING_REQUEST_TIMEOUT: Configuration.get('FILES_STORAGE__INCOMING_REQUEST_TIMEOUT') as number,\n};\n\nconst fileStorageConfig: IFileStorageConfig = {\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('FILES_STORAGE__MAX_FILE_SIZE') as number,\n\tUSE_STREAM_TO_ANTIVIRUS: Configuration.get('FILES_STORAGE__USE_STREAM_TO_ANTIVIRUS') as boolean,\n\t...defaultConfig,\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 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 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 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 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: SystemEntity\n\n \n \n\n\n \n \n Type : SystemEntity\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 { SystemEntity } 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: SystemEntity;\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(() => SystemEntity, { 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 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 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 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 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 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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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/domain/service/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 } 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 '@modules/board';\nimport { ContextExternalToolAuthorizableService } from '@modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from '../type';\n\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 });\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\n \n\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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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/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: FederalStateEntity\n\n \n \n\n\n \n \n Type : FederalStateEntity\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: SchoolYearEntity\n\n \n \n\n\n \n \n Type : SchoolYearEntity\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: SystemEntity[]\n\n \n \n\n\n \n \n Type : SystemEntity[]\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: UserLoginMigrationEntity\n\n \n \n\n\n \n \n Type : UserLoginMigrationEntity\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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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 SchoolYearEntity 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 IUserConfig\n IFilesStorageClientConfig\n IAccountConfig\n IIdentityManagementConfig\n ICommonCartridgeConfig\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 } from '@modules/account';\nimport type { IFilesStorageClientConfig } from '@modules/files-storage-client';\nimport type { IUserConfig } from '@modules/user';\nimport type { ICommonCartridgeConfig } from '@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({ nullable: true })\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 SystemEntity 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 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 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 \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:12\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: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 teams\n \n TeamEntity[]\n \n\n \n No\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: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 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 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: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 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 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, Pseudonym, TeamEntity, UserDO } from '@shared/domain';\nimport { TeamsRepo } from '@shared/repo';\nimport { PseudonymService } from '@modules/pseudonym';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { UserService } from '@modules/user';\nimport { IdTokenCreationLoggableException } from '../error/id-token-creation-exception.loggable';\nimport { GroupNameIdTuple, IdToken, OauthScope } from '../interface';\nimport { OauthProviderLoginFlowService } from './oauth-provider.login-flow.service';\n\n@Injectable()\nexport class IdTokenService {\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\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.findByUserAndToolOrThrow(user, tool);\n\n\t\tconst iframeSubject: string = this.pseudonymService.getIframeSubject(pseudonym.pseudonym);\n\n\t\treturn iframeSubject;\n\t}\n}\n\n \n\n\n\n\n\n\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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 { SystemEntity } 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: SystemEntity;\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(() => SystemEntity, { 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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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 { IFindOptions, ImportUser, User } from '@shared/domain';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 { LegacySchoolService } from '@modules/legacy-school';\nimport { UserService } from '@modules/user';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError } from '@modules/oauth/loggable';\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 Extends\n \n \n AuthGuard('jwt')\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 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\t// support UserId is missed see featherJS\n\tisExternalUser: 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 Extends\n \n \n PassportStrategy(Strategy)\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 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 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 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 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 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_imports\n\n\n\ncluster_KeycloakConfigurationModule_exports\n\n\n\ncluster_KeycloakConfigurationModule_providers\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 } from '@modules/account';\nimport { SystemModule } from '@modules/system';\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 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 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 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 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 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 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 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 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 '@modules/server/server.config';\nimport { OidcConfigDto } from '@modules/system/service';\nimport { SystemOidcService } from '@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(pageSize?: number)\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 Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageSize\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : Promise\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()\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 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(pageSize?: number): Promise {\n\t\treturn this.keycloakSeedService.clean(pageSize);\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:23\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:32\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:51\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)\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:77\n \n \n\n\n \n \n Cleans users from 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 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:121\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 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:201\n \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 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:156\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 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:172\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 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:99\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 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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/account/services/account.service';\nimport { AccountDto } from '@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_providers\n\n\n\ncluster_KeycloakModule_imports\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, logger: LegacyLogger, inputFiles: IKeycloakConfigurationInputFiles)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.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 kcAdmin\n \n \n KeycloakAdministrationService\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 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(pageSize: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:35\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 pageSize\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \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 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: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 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 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:94\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:99\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: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 \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Inject } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\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\tprivate readonly logger: LegacyLogger,\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(pageSize = 100): Promise {\n\t\tlet foundUsers = 1;\n\t\tlet deletedUsers = 0;\n\t\tconst adminUser = this.kcAdmin.getAdminUser();\n\t\tlet kc = await this.kcAdmin.callKcAdminClient();\n\t\tthis.logger.log(`Starting to delete users...`);\n\t\twhile (foundUsers > 0) {\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\tconst users = (await kc.users.find({ max: pageSize })).filter((user) => user.username !== adminUser);\n\t\t\tfoundUsers = users.length;\n\t\t\tthis.logger.log(`Amount of found Users: ${foundUsers}`);\n\t\t\tfor (const user of users) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait kc.users.del({\n\t\t\t\t\tid: user.id ?? '',\n\t\t\t\t});\n\t\t\t}\n\t\t\tdeletedUsers += foundUsers;\n\t\t\tthis.logger.log(`...deleted ${deletedUsers} users so far.`);\n\t\t}\n\t\treturn deletedUsers;\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({ nullable: true })\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 SystemEntity 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: SystemEntity, 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 SystemEntity\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 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: SystemEntity, 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 SystemEntity\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 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 { SystemEntity } 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: SystemEntity, 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: SystemEntity, 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 Extends\n \n \n PassportStrategy(Strategy, 'ldap')\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: SystemEntity, 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 SystemEntity\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 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 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 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: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 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 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 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, SystemEntity, 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 '@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: SystemEntity = 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(\n\t\taccount: AccountDto,\n\t\tsystem: SystemEntity,\n\t\tldapDn: string,\n\t\tpassword: string\n\t): 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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nLearnroomApiModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\nimport { CopyHelperModule } from '@modules/copy-helper';\nimport { LessonModule } from '@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, AuthorizationReferenceModule],\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_imports\n\n\n\ncluster_LearnroomModule_providers\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 '@modules/board';\nimport { CopyHelperModule } from '@modules/copy-helper';\nimport { LessonModule } from '@modules/lesson';\nimport { TaskModule } from '@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 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 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 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 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 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 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 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 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 '@modules/authorization';\nimport { LoggerModule } from '@src/core/logger';\nimport { UserLoginMigrationModule } from '@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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 : FederalStateEntity\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 : SchoolYearEntity\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 { FederalStateEntity, SchoolFeatures, SchoolYearEntity } 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?: SchoolYearEntity;\n\n\tuserLoginMigrationId?: EntityId;\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tfederalState: FederalStateEntity;\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 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 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 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 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 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 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 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 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 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 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 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_exports\n\n\n\ncluster_LegacySchoolModule_imports\n\n\n\ncluster_LegacySchoolModule_providers\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: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 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:45\n\n \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 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: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 systemId\n \n string\n \n\n \n No\n \n\n\n \n \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: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 officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\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:66\n\n \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 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: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 entity\n \n SchoolEntity\n \n\n \n No\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 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 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 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 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 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 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 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 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 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 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: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, InternalServerErrorException } from '@nestjs/common';\nimport {\n\tEntityId,\n\tISchoolProperties,\n\tLegacySchoolDo,\n\tSchoolEntity,\n\tSystemEntity,\n\tUserLoginMigrationEntity,\n} 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: SystemEntity) => 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(SystemEntity, systemId))\n\t\t\t\t: [],\n\t\t\tuserLoginMigration: entityDO.userLoginMigrationId\n\t\t\t\t? this._em.getReference(UserLoginMigrationEntity, 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { AuthorizableObject } from '@shared/domain/domain-object';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 Private\n checkSchoolAuthorization\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 Private\n checkSchoolAuthorization\n \n \n \n \n \n \n \n checkSchoolAuthorization(authorizableUser: User, school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:101\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizableUser\n \n User\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 Returns : void\n\n \n \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(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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { Permission, LegacySchoolDo, UserLoginMigrationDO, User } from '@shared/domain';\nimport {\n\tSchoolMigrationService,\n\tUserLoginMigrationRevertService,\n\tUserLoginMigrationService,\n} from '@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\tconst [authorizableUser, school]: [User, LegacySchoolDo] = await Promise.all([\n\t\t\tthis.authService.getUserWithPermissions(userId),\n\t\t\tthis.schoolService.getSchoolById(schoolId),\n\t\t]);\n\n\t\tthis.checkSchoolAuthorization(authorizableUser, school);\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 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\tconst [authorizableUser, school]: [User, LegacySchoolDo] = await Promise.all([\n\t\t\tthis.authService.getUserWithPermissions(userId),\n\t\t\tthis.schoolService.getSchoolById(schoolId),\n\t\t]);\n\n\t\tthis.checkSchoolAuthorization(authorizableUser, school);\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\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\tprivate checkSchoolAuthorization(authorizableUser: User, school: LegacySchoolDo): void {\n\t\tconst context = AuthorizationContextBuilder.read([Permission.SCHOOL_EDIT]);\n\t\tthis.authService.checkPermission(authorizableUser, 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"},"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 '@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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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/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 Private\n checkDestinationCourseAuthorization\n \n \n Private\n checkFeatureEnabled\n \n \n Private\n checkOriginalLessonAuthorization\n \n \n Async\n copyLesson\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:12\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 Private\n checkDestinationCourseAuthorization\n \n \n \n \n \n \n \n checkDestinationCourseAuthorization(user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.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 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 Returns : void\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()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:68\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 checkOriginalLessonAuthorization\n \n \n \n \n \n \n \n checkOriginalLessonAuthorization(user: User, originalLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.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 user\n \n User\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 Returns : void\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(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: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 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 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 } from '@nestjs/common';\nimport { Course, EntityId, LessonEntity, User } from '@shared/domain';\nimport { Permission } from '@shared/domain/interface/permission.enum';\nimport { CourseRepo, LessonRepo } from '@shared/repo';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@modules/copy-helper';\nimport { LessonCopyParentParams } from '@modules/lesson';\nimport { LessonCopyService } from '@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.checkFeatureEnabled();\n\n\t\tconst [user, originalLesson]: [User, LessonEntity] = await Promise.all([\n\t\t\tthis.authorisation.getUserWithPermissions(userId),\n\t\t\tthis.lessonRepo.findById(lessonId),\n\t\t]);\n\n\t\tthis.checkOriginalLessonAuthorization(user, originalLesson);\n\n\t\t// should be a seperate private method\n\t\tconst destinationCourse = parentParams.courseId\n\t\t\t? await this.courseRepo.findById(parentParams.courseId)\n\t\t\t: originalLesson.course;\n\t\t// ---\n\n\t\tthis.checkDestinationCourseAuthorization(user, destinationCourse);\n\n\t\t// should be a seperate private method\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\t\t// ---\n\n\t\treturn copyStatus;\n\t}\n\n\tprivate checkOriginalLessonAuthorization(user: User, originalLesson: LessonEntity): void {\n\t\tconst contextReadWithTopicCreate = AuthorizationContextBuilder.read([Permission.TOPIC_CREATE]);\n\t\tif (!this.authorisation.hasPermission(user, originalLesson, contextReadWithTopicCreate)) {\n\t\t\t// error message is not correct, switch to authorisation.checkPermission() makse sense for me\n\t\t\tthrow new ForbiddenException('could not find lesson to copy');\n\t\t}\n\t}\n\n\tprivate checkDestinationCourseAuthorization(user: User, destinationCourse: Course): void {\n\t\tconst contextCanWrite = AuthorizationContextBuilder.write([]);\n\t\tthis.authorisation.checkPermission(user, destinationCourse, contextCanWrite);\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"},"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 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 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 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 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 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 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 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 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 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 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 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_exports\n\n\n\ncluster_LessonModule_providers\n\n\n\ncluster_LessonModule_imports\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 '@modules/copy-helper';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { TaskModule } from '@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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/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 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/modules/authorization/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 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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/domain/rules/lesson.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 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 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, CourseGroup, LessonEntity, User } from '@shared/domain/entity';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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} else {\n\t\t\tthrow new NotImplementedException('Action is not supported.');\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: boolean;\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} else {\n\t\t\tresult = false;\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 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 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 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 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 findAllLessonsByUserId\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 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: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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllLessonsByUserId\n \n \n \n \n \n \n \n findAllLessonsByUserId(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 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 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 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 '@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 findAllLessonsByUserId(userId: EntityId): Promise {\n\t\tconst lessons = await this.lessonRepo.findByUserId(userId);\n\n\t\treturn lessons;\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 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 '@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/LinkContentBody.html":{"url":"classes/LinkContentBody.html","title":"class - LinkContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkContentBody\n\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 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 url\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:37\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LinkElement.html":{"url":"classes/LinkElement.html","title":"class - LinkElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElement\n\n\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/link-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 url\n \n \n title\n \n \n description\n \n \n imageUrl\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:41\n\n \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 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:45\n\n \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 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:37\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 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 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 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 url\n \n \n\n \n \n geturl()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:5\n \n \n\n \n \n seturl(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-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 title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:13\n \n \n\n \n \n settitle(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.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 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 description\n \n \n\n \n \n getdescription()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:21\n \n \n\n \n \n setdescription(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:25\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 imageUrl\n \n \n\n \n \n getimageUrl()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:29\n \n \n\n \n \n setimageUrl(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.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 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 LinkElement extends BoardComposite {\n\tget url(): string {\n\t\treturn this.props.url ?? '';\n\t}\n\n\tset url(value: string) {\n\t\tthis.props.url = value;\n\t}\n\n\tget title(): string {\n\t\treturn this.props.title ?? '';\n\t}\n\n\tset title(value: string) {\n\t\tthis.props.title = value;\n\t}\n\n\tget description(): string {\n\t\treturn this.props.description ?? '';\n\t}\n\n\tset description(value: string) {\n\t\tthis.props.description = value ?? '';\n\t}\n\n\tget imageUrl(): string {\n\t\treturn this.props.imageUrl ?? '';\n\t}\n\n\tset imageUrl(value: string) {\n\t\tthis.props.imageUrl = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitLinkElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitLinkElementAsync(this);\n\t}\n}\n\nexport interface LinkElementProps extends BoardCompositeProps {\n\turl: string;\n\ttitle: string;\n\tdescription?: string;\n\timageUrl?: string;\n}\n\nexport function isLinkElement(reference: unknown): reference is LinkElement {\n\treturn reference instanceof LinkElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LinkElementContent.html":{"url":"classes/LinkElementContent.html","title":"class - LinkElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementContent\n\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/link-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 Optional\n description\n \n \n \n Optional\n imageUrl\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 Constructor\n \n \n \n \nconstructor(undefined: LinkElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/link-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 LinkElementContent\n \n \n \n No\n \n \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 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/board/controller/dto/element/link-element.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n imageUrl\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/element/link-element.response.ts:23\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()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/link-element.response.ts:17\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/board/controller/dto/element/link-element.response.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 { TimestampsResponse } from '../timestamps.response';\n\nexport class LinkElementContent {\n\tconstructor({ url, title, description, imageUrl }: LinkElementContent) {\n\t\tthis.url = url;\n\t\tthis.title = title;\n\t\tthis.description = description;\n\t\tthis.imageUrl = imageUrl;\n\t}\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty()\n\ttitle: string;\n\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\timageUrl?: string;\n}\n\nexport class LinkElementResponse {\n\tconstructor({ id, content, timestamps, type }: LinkElementResponse) {\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.LINK;\n\n\t@ApiProperty()\n\tcontent: LinkElementContent;\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/LinkElementContentBody.html":{"url":"classes/LinkElementContentBody.html","title":"class - LinkElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementContentBody\n\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 : LinkContentBody\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:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.LINK\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:42\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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/LinkElementNode.html":{"url":"entities/LinkElementNode.html","title":"entity - LinkElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n LinkElementNode\n\n\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/link-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 Optional\n imageUrl\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 Optional\n imageUrl\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/link-element-node.entity.ts:15\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/boardnode/link-element-node.entity.ts:12\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/boardnode/link-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.LINK_ELEMENT })\nexport class LinkElementNode extends BoardNode {\n\t@Property()\n\turl: string;\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\timageUrl?: string;\n\n\tconstructor(props: LinkElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.LINK_ELEMENT;\n\t\tthis.url = props.url;\n\t\tthis.title = props.title;\n\t\tthis.imageUrl = props.imageUrl;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildLinkElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface LinkElementNodeProps extends BoardNodeProps {\n\turl: string;\n\ttitle: string;\n\timageUrl?: 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/LinkElementNodeProps.html":{"url":"interfaces/LinkElementNodeProps.html","title":"interface - LinkElementNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n LinkElementNodeProps\n\n\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/link-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 Optional\n \n imageUrl\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 imageUrl\n \n \n \n \n \n \n \n \n imageUrl: string\n\n \n \n\n\n \n \n Type : string\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\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 { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.LINK_ELEMENT })\nexport class LinkElementNode extends BoardNode {\n\t@Property()\n\turl: string;\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\timageUrl?: string;\n\n\tconstructor(props: LinkElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.LINK_ELEMENT;\n\t\tthis.url = props.url;\n\t\tthis.title = props.title;\n\t\tthis.imageUrl = props.imageUrl;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildLinkElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface LinkElementNodeProps extends BoardNodeProps {\n\turl: string;\n\ttitle: string;\n\timageUrl?: 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/LinkElementProps.html":{"url":"interfaces/LinkElementProps.html","title":"interface - LinkElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n LinkElementProps\n\n\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/link-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 Optional\n \n description\n \n \n \n Optional\n \n imageUrl\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 Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n imageUrl\n \n \n \n \n \n \n \n \n imageUrl: string\n\n \n \n\n\n \n \n Type : string\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\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 { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class LinkElement extends BoardComposite {\n\tget url(): string {\n\t\treturn this.props.url ?? '';\n\t}\n\n\tset url(value: string) {\n\t\tthis.props.url = value;\n\t}\n\n\tget title(): string {\n\t\treturn this.props.title ?? '';\n\t}\n\n\tset title(value: string) {\n\t\tthis.props.title = value;\n\t}\n\n\tget description(): string {\n\t\treturn this.props.description ?? '';\n\t}\n\n\tset description(value: string) {\n\t\tthis.props.description = value ?? '';\n\t}\n\n\tget imageUrl(): string {\n\t\treturn this.props.imageUrl ?? '';\n\t}\n\n\tset imageUrl(value: string) {\n\t\tthis.props.imageUrl = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitLinkElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitLinkElementAsync(this);\n\t}\n}\n\nexport interface LinkElementProps extends BoardCompositeProps {\n\turl: string;\n\ttitle: string;\n\tdescription?: string;\n\timageUrl?: string;\n}\n\nexport function isLinkElement(reference: unknown): reference is LinkElement {\n\treturn reference instanceof LinkElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LinkElementResponse.html":{"url":"classes/LinkElementResponse.html","title":"class - LinkElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementResponse\n\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/link-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: LinkElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/link-element.response.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n LinkElementResponse\n \n \n \n No\n \n \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 : LinkElementContent\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/link-element.response.ts:41\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/link-element.response.ts:35\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/link-element.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.LINK\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/link-element.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';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class LinkElementContent {\n\tconstructor({ url, title, description, imageUrl }: LinkElementContent) {\n\t\tthis.url = url;\n\t\tthis.title = title;\n\t\tthis.description = description;\n\t\tthis.imageUrl = imageUrl;\n\t}\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty()\n\ttitle: string;\n\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\timageUrl?: string;\n}\n\nexport class LinkElementResponse {\n\tconstructor({ id, content, timestamps, type }: LinkElementResponse) {\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.LINK;\n\n\t@ApiProperty()\n\tcontent: LinkElementContent;\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/LinkElementResponseMapper.html":{"url":"classes/LinkElementResponseMapper.html","title":"class - LinkElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementResponseMapper\n\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/link-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 : LinkElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/link-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: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/link-element-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 element\n \n LinkElement\n \n\n \n No\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/link-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : LinkElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/link-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 LinkElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : LinkElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, LinkElement } from '@shared/domain';\nimport { LinkElementContent, LinkElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class LinkElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: LinkElementResponseMapper;\n\n\tpublic static getInstance(): LinkElementResponseMapper {\n\t\tif (!LinkElementResponseMapper.instance) {\n\t\t\tLinkElementResponseMapper.instance = new LinkElementResponseMapper();\n\t\t}\n\n\t\treturn LinkElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: LinkElement): LinkElementResponse {\n\t\tconst result = new LinkElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.LINK,\n\t\t\tcontent: new LinkElementContent({\n\t\t\t\turl: element.url,\n\t\t\t\ttitle: element.title,\n\t\t\t\tdescription: element.description,\n\t\t\t\timageUrl: element.imageUrl,\n\t\t\t}),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: LinkElement): boolean {\n\t\treturn element instanceof LinkElement;\n\t}\n}\n\n \n\n\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 Extends\n \n \n PassportStrategy(Strategy)\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 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 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 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 '@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 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 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 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 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 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 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 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 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: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 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 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: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 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 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: OauthCurrentUser, _: 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: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 user\n \n OauthCurrentUser\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 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';\nimport type { ICurrentUser, OauthCurrentUser } from '../interface';\nimport { LoginDto } from '../uc/dto';\nimport { LoginUc } from '../uc/login.uc';\nimport {\n\tLdapAuthorizationBodyParams,\n\tLocalAuthorizationBodyParams,\n\tLoginResponse,\n\tOauth2AuthorizationBodyParams,\n\tOauthLoginResponse,\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.mapToLoginResponse(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.mapToLoginResponse(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: OauthCurrentUser,\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: OauthLoginResponse = LoginResponseMapper.mapToOauthLoginResponse(loginDto, user.externalIdToken);\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 '@modules/oauth-provider/controller/dto/response/oauth-client.response';\nimport { OidcContextResponse } from '@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 mapToLoginResponse\n \n \n Static\n mapToOauthLoginResponse\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 mapToLoginResponse\n \n \n \n \n \n \n \n mapToLoginResponse(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 Returns : LoginResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToOauthLoginResponse\n \n \n \n \n \n \n \n mapToOauthLoginResponse(loginDto: LoginDto, externalIdToken?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/controllers/mapper/login-response.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 loginDto\n \n LoginDto\n \n\n \n No\n \n\n\n \n \n externalIdToken\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : OauthLoginResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LoginDto } from '../../uc/dto';\nimport { LoginResponse, OauthLoginResponse } from '../dto';\n\nexport class LoginResponseMapper {\n\tstatic mapToLoginResponse(loginDto: LoginDto): LoginResponse {\n\t\tconst response: LoginResponse = new LoginResponse({\n\t\t\taccessToken: loginDto.accessToken,\n\t\t});\n\n\t\treturn response;\n\t}\n\n\tstatic mapToOauthLoginResponse(loginDto: LoginDto, externalIdToken?: string): OauthLoginResponse {\n\t\tconst response: OauthLoginResponse = new OauthLoginResponse({\n\t\t\taccessToken: loginDto.accessToken,\n\t\t\texternalIdToken,\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"},"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:9\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: ICurrentUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/uc/login.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 userInfo\n \n ICurrentUser\n \n\n \n No\n \n\n\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 { ICurrentUser } from '../interface';\nimport { CreateJwtPayload } from '../interface/jwt-payload';\nimport { CurrentUserMapper } from '../mapper';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { LoginDto } from './dto';\n\n@Injectable()\nexport class LoginUc {\n\tconstructor(private readonly authService: AuthenticationService) {}\n\n\tasync getLoginData(userInfo: ICurrentUser): Promise {\n\t\tconst createJwtPayload: CreateJwtPayload = CurrentUserMapper.mapCurrentUserToCreateJwtPayload(userInfo);\n\n\t\tconst accessTokenDto: LoginDto = await this.authService.generateJwt(createJwtPayload);\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 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\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 \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\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"},"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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_imports\n\n\n\ncluster_ManagementModule_providers\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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/legacy-school';\nimport { UserService } from '@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 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 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:26\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 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:89\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 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:40\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 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:61\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 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:71\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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 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 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 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 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 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_exports\n\n\n\ncluster_NewsModule_imports\n\n\n\ncluster_NewsModule_providers\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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 '@modules/collaborative-storage';\nimport { PseudonymService } from '@modules/pseudonym';\nimport { UserService } from '@modules/user';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { ExternalTool } from '@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.findByUserAndToolOrThrow(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: string)\n \n \n \n \n Defined in apps/server/src/shared/common/loggable-exception/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 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 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/shared/common/loggable-exception/not-found.loggable-exception.ts:14\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 { 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: string\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 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 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 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 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:249\n\n \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 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 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 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 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 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 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 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 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 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 '@modules/oauth/loggable';\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/loggable/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/loggable/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/loggable/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/loggable/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/loggable/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/loggable/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 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 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 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 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 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 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 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 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 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 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 '@modules/provisioning';\nimport { OauthDataDto } from '@modules/provisioning/dto';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { SystemService } from '@modules/system';\nimport { SystemDto } from '@modules/system/service';\nimport { UserService } from '@modules/user';\nimport { MigrationCheckService, UserMigrationService } from '@modules/user-login-migration';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError, SSOErrorCode, UserNotFoundAfterProvisioningLoggableException } from '../loggable';\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' && system.oauthConfig?.logoutEndpoint) {\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 Extends\n \n \n PassportStrategy(Strategy, 'oauth2')\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 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 '@modules/account/services/account.service';\nimport { AccountDto } from '@modules/account/services/dto';\nimport { OAuthTokenDto } from '@modules/oauth';\nimport { OAuthService } from '@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, OauthCurrentUser } 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: OauthCurrentUser = CurrentUserMapper.mapToOauthCurrentUser(\n\t\t\taccount.id,\n\t\t\tuser,\n\t\t\tsystemId,\n\t\t\ttokenDto.idToken\n\t\t);\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\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 \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\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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameter } from '@modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@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)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.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 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 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: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 jwksUri\n \n string\n \n\n \n No\n \n\n\n \n \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: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 observable\n \n Observable>\n \n\n \n No\n \n\n\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: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 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 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 { AxiosResponse } from 'axios';\nimport JwksRsa from 'jwks-rsa';\nimport QueryString from 'qs';\nimport { lastValueFrom, Observable } from 'rxjs';\nimport { OAuthSSOError } from '../loggable';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from './dto';\n\n@Injectable()\nexport class OauthAdapterService {\n\tconstructor(private readonly httpService: HttpService) {}\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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { ProvisioningModule } from '@modules/provisioning';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@modules/user';\nimport { UserLoginMigrationModule } from '@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 '@modules/oauth-provider/interface/subject-type.enum';\nimport { TokenAuthMethod } from '@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 Optional\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 Optional\n logoutEndpoint\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: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({ nullable: true })\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 SystemEntity 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 Optional\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:29\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:27\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:29\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\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:25\n \n \n\n \n \n If this is set it will be used to redirect the user after login to the logout endpoint of the identity provider.\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\t/**\n\t * If this is set it will be used to redirect the user after login to the logout endpoint of the identity provider.\n\t */\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 Optional\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 Optional\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: false, 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: false,\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"},"interfaces/OauthCurrentUser.html":{"url":"interfaces/OauthCurrentUser.html","title":"interface - OauthCurrentUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n OauthCurrentUser\n\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 Extends\n \n \n ICurrentUser\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n externalIdToken\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalIdToken\n \n \n \n \n \n \n \n \n externalIdToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n Contains the idToken of the external idp. Will be set during oAuth2 login and used for rp initiated logout\n\n \n \n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\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\t/** True if the user is an external user e.g. an oauth user */\n\tisExternalUser: boolean;\n}\n\nexport interface OauthCurrentUser extends ICurrentUser {\n\t/** Contains the idToken of the external idp. Will be set during oAuth2 login and used for rp initiated logout */\n\texternalIdToken?: 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/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/OauthLoginResponse.html":{"url":"classes/OauthLoginResponse.html","title":"class - OauthLoginResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthLoginResponse\n\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/oauth-login.response.ts\n \n\n\n\n \n Extends\n \n \n LoginResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalIdToken\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: OauthLoginResponse)\n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth-login.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 OauthLoginResponse\n \n \n \n No\n \n \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 externalIdToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The external id token which is from the external oauth system and set when scope openid is available.'})\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth-login.response.ts:9\n \n \n\n\n \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 Inherited from LoginResponse\n\n \n \n \n \n Defined in LoginResponse:5\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 { LoginResponse } from './login.response';\n\nexport class OauthLoginResponse extends LoginResponse {\n\t@ApiPropertyOptional({\n\t\tdescription:\n\t\t\t'The external id token which is from the external oauth system and set when scope openid is available.',\n\t})\n\texternalIdToken?: string;\n\n\tconstructor(props: OauthLoginResponse) {\n\t\tsuper(props);\n\t\tthis.externalIdToken = props.externalIdToken;\n\t}\n}\n\n \n\n\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 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_exports\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 '@modules/authorization';\nimport { ProvisioningModule } from '@modules/provisioning';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@modules/user';\nimport { UserLoginMigrationModule } from '@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_providers\n\n\n\ncluster_OauthProviderApiModule_imports\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 '@modules/authorization';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@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 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 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 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 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 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 '@modules/authorization';\nimport { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { ICurrentUser } from '@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 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 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 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 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 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 '@modules/oauth-provider/controller/dto';\nimport { ICurrentUser } from '@modules/authentication';\nimport { ForbiddenException, Injectable } from '@nestjs/common';\nimport { IdTokenService } from '@modules/oauth-provider/service/id-token.service';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { IdToken } from '@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 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 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 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 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 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 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 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 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 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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query } from '@nestjs/common';\nimport { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\n// import should be @shared/infra/oauth-provider\nimport {\n\tProviderConsentResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n\tProviderConsentSessionResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport { ApiTags } from '@nestjs/swagger';\nimport { OauthProviderLogoutFlowUc } from '../uc/oauth-provider.logout-flow.uc';\nimport { OauthProviderLoginFlowUc } from '../uc/oauth-provider.login-flow.uc';\nimport { OauthProviderResponseMapper } from '../mapper/oauth-provider-response.mapper';\nimport { OauthProviderConsentFlowUc } from '../uc/oauth-provider.consent-flow.uc';\nimport { ConsentResponse } from './dto/response/consent.response';\nimport { OauthProviderClientCrudUc } from '../uc/oauth-provider.client-crud.uc';\nimport { RedirectResponse } from './dto/response/redirect.response';\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 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 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 '@modules/lti-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { IToolFeatures, ToolFeatures } from '@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 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 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 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 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 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 '@modules/authorization';\nimport { AcceptQuery, LoginRequestBody, OAuthRejectableBody } from '@modules/oauth-provider/controller/dto';\nimport { OauthProviderRequestMapper } from '@modules/oauth-provider/mapper/oauth-provider-request.mapper';\nimport { PseudonymService } from '@modules/pseudonym/service';\nimport { ExternalTool, Oauth2ToolConfig } from '@modules/tool/external-tool/domain';\nimport { UserService } from '@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 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_providers\n\n\n\ncluster_OauthProviderModule_exports\n\n\n\ncluster_OauthProviderModule_imports\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 '@modules/lti-tool';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { ToolModule } from '@modules/tool';\nimport { ToolConfigModule } from '@modules/tool/tool-config.module';\nimport { UserModule } from '@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 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 '@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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 \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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser, JWT } from '@modules/authentication';\nimport { OAuthMigrationError } from '@modules/user-login-migration/error/oauth-migration.error';\nimport { MigrationDto } from '@modules/user-login-migration/service/dto';\nimport { CookieOptions, Request, Response } from 'express';\nimport { HydraOauthUc } from '../uc/hydra-oauth.uc';\nimport { UserMigrationResponse } from './dto/user-migration.response';\nimport { OAuthSSOError } from '../loggable/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 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 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 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 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 { AuthenticationService } from '@modules/authentication/services/authentication.service';\nimport { ProvisioningService } from '@modules/provisioning';\nimport { OauthDataDto } from '@modules/provisioning/dto';\nimport { SystemService } from '@modules/system';\nimport { SystemDto } from '@modules/system/service/dto/system.dto';\nimport { UserService } from '@modules/user';\nimport { UserMigrationService } from '@modules/user-login-migration';\nimport { SchoolMigrationService } from '@modules/user-login-migration/service';\nimport { MigrationDto } from '@modules/user-login-migration/service/dto';\nimport { nanoid } from 'nanoid';\nimport { OauthCurrentUser } from '@modules/authentication/interface';\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 oauthCurrentUser: OauthCurrentUser = await this.userService.getResolvedUser(userId);\n\n\t\tconst { accessToken } = await this.authenticationService.generateJwt(oauthCurrentUser);\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({ nullable: true })\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 SystemEntity 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 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 '@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 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 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 jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError } from '@modules/oauth/loggable';\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 Async\n removeExternalGroupsAndAffiliation\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:20\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: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 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 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: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 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 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: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 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 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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeExternalGroupsAndAffiliation\n \n \n \n \n \n \n \n removeExternalGroupsAndAffiliation(externalUserId: EntityId, externalGroups: ExternalGroupDto[], systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.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 externalUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n externalGroups\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 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, FederalStateEntity, SchoolFeatures, SchoolYearEntity } from '@shared/domain';\nimport { LegacySchoolDo, RoleReference, UserDO } from '@shared/domain/domainobject';\nimport { Logger } from '@src/core/logger';\nimport { AccountService } from '@modules/account/services/account.service';\nimport { AccountSaveDto } from '@modules/account/services/dto';\nimport { Group, GroupService, GroupUser } from '@modules/group';\nimport { FederalStateService, LegacySchoolService, SchoolYearService } from '@modules/legacy-school';\nimport { FederalStateNames } from '@modules/legacy-school/types';\nimport { RoleService } from '@modules/role';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\nimport { UserService } from '@modules/user';\nimport { ObjectId } from 'bson';\nimport CryptoJS from 'crypto-js';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\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: SchoolYearEntity = await this.schoolYearService.getCurrentSchoolYear();\n\t\t\tconst federalState: FederalStateEntity = 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\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\tif (!users.length) {\n\t\t\treturn;\n\t\t}\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: existingGroup ? existingGroup.users : [],\n\t\t});\n\t\tusers.forEach((user: GroupUser) => group.addUser(user));\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?.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\tasync removeExternalGroupsAndAffiliation(\n\t\texternalUserId: EntityId,\n\t\texternalGroups: ExternalGroupDto[],\n\t\tsystemId: EntityId\n\t): Promise {\n\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\n\t\tif (!user) {\n\t\t\tthrow new NotFoundLoggableException(UserDO.name, 'externalId', externalUserId);\n\t\t}\n\n\t\tconst existingGroupsOfUser: Group[] = await this.groupService.findByUser(user);\n\n\t\tconst groupsFromSystem: Group[] = existingGroupsOfUser.filter(\n\t\t\t(existingGroup: Group) => existingGroup.externalSource?.systemId === systemId\n\t\t);\n\n\t\tconst groupsWithoutUser: Group[] = groupsFromSystem.filter((existingGroupFromSystem: Group) => {\n\t\t\tconst isUserInGroup = externalGroups.some(\n\t\t\t\t(externalGroup: ExternalGroupDto) =>\n\t\t\t\t\texternalGroup.externalId === existingGroupFromSystem.externalSource?.externalId\n\t\t\t);\n\n\t\t\treturn !isUserInGroup;\n\t\t});\n\n\t\tawait Promise.all(\n\t\t\tgroupsWithoutUser.map(async (group: Group) => {\n\t\t\t\tgroup.removeUser(user);\n\n\t\t\t\tif (group.isEmpty()) {\n\t\t\t\t\tawait this.groupService.delete(group);\n\t\t\t\t} else {\n\t\t\t\t\tawait this.groupService.save(group);\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"},"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 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 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\tawait this.oidcProvisioningService.removeExternalGroupsAndAffiliation(\n\t\t\t\tdata.externalUser.externalId,\n\t\t\t\tdata.externalGroups,\n\t\t\t\tdata.system.systemId\n\t\t\t);\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"},"injectables/OpenGraphProxyService.html":{"url":"injectables/OpenGraphProxyService.html","title":"injectable - OpenGraphProxyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OpenGraphProxyService\n\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/open-graph-proxy.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 fetchOpenGraphData\n \n \n Private\n pickImage\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 Async\n fetchOpenGraphData\n \n \n \n \n \n \n \n fetchOpenGraphData(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/open-graph-proxy.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 url\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n pickImage\n \n \n \n \n \n \n \n pickImage(images: ImageObject[], minWidth: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/open-graph-proxy.service.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 images\n \n ImageObject[]\n \n\n \n No\n \n\n \n \n\n \n \n minWidth\n \n number\n \n\n \n No\n \n\n \n 400\n \n\n \n \n \n \n \n Returns : ImageObject | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport ogs from 'open-graph-scraper';\nimport { ImageObject } from 'open-graph-scraper/dist/lib/types';\n\ntype OpenGraphData = {\n\ttitle: string;\n\tdescription: string;\n\turl: string;\n\timage?: ImageObject;\n};\n\n@Injectable()\nexport class OpenGraphProxyService {\n\tasync fetchOpenGraphData(url: string): Promise {\n\t\tif (url.length === 0) {\n\t\t\tthrow new Error(`OpenGraphProxyService requires a valid URL. Given URL: ${url}`);\n\t\t}\n\n\t\tconst data = await ogs({ url });\n\t\t// WIP: add nice debug logging for available openGraphData?!?\n\n\t\tconst title = data.result.ogTitle ?? '';\n\t\tconst description = data.result.ogDescription ?? '';\n\t\tconst image = data.result.ogImage ? this.pickImage(data.result.ogImage) : undefined;\n\n\t\treturn {\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\timage,\n\t\t\turl,\n\t\t};\n\t}\n\n\tprivate pickImage(images: ImageObject[], minWidth = 400): ImageObject | undefined {\n\t\tconst sortedImages = [...images];\n\t\tsortedImages.sort((a, b) => (a.width && b.width ? Number(a.width) - Number(b.width) : 0));\n\t\tconst smallestBigEnoughImage = sortedImages.find((i) => i.width && i.width >= minWidth);\n\t\tconst fallbackImage = images[0] && images[0].width === undefined ? images[0] : undefined;\n\t\treturn smallestBigEnoughImage ?? fallbackImage;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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"},"classes/PreviewActionsLoggable.html":{"url":"classes/PreviewActionsLoggable.html","title":"class - PreviewActionsLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewActionsLoggable\n\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/preview-generator/loggable/preview-actions.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(message: string, payload: PreviewFileOptions)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/loggable/preview-actions.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 message\n \n \n string\n \n \n \n No\n \n \n \n \n payload\n \n \n PreviewFileOptions\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/infra/preview-generator/loggable/preview-actions.loggable.ts:7\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 { LogMessage, Loggable } from '@src/core/logger';\nimport { PreviewFileOptions } from '../interface';\n\nexport class PreviewActionsLoggable implements Loggable {\n\tconstructor(private readonly message: string, private readonly payload: PreviewFileOptions) {}\n\n\tgetLogMessage(): LogMessage {\n\t\tconst { originFilePath, previewFilePath, previewOptions } = this.payload;\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tdata: {\n\t\t\t\toriginFilePath,\n\t\t\t\tpreviewFilePath,\n\t\t\t\tformat: previewOptions.format,\n\t\t\t\twidth: previewOptions.width,\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/PreviewBuilder.html":{"url":"classes/PreviewBuilder.html","title":"class - PreviewBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewBuilder\n\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/preview.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 buildParams\n \n \n Static\n buildPayload\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 buildParams\n \n \n \n \n \n \n \n buildParams(fileRecord: FileRecord, previewParams: PreviewParams, bytesRange: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/preview.builder.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 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 bytesRange\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : PreviewFileParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildPayload\n \n \n \n \n \n \n \n buildPayload(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/preview.builder.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 PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : PreviewFileOptions\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { PreviewFileOptions } from '@shared/infra/preview-generator';\nimport { PreviewParams } from '../controller/dto';\nimport { FileRecord } from '../entity';\nimport { createPath, createPreviewFilePath, createPreviewNameHash, getFormat } from '../helper';\nimport { PreviewFileParams } from '../interface';\n\nexport class PreviewBuilder {\n\tpublic static buildParams(\n\t\tfileRecord: FileRecord,\n\t\tpreviewParams: PreviewParams,\n\t\tbytesRange: string | undefined\n\t): PreviewFileParams {\n\t\tconst { schoolId, id, mimeType } = fileRecord;\n\t\tconst originFilePath = createPath(schoolId, id);\n\t\tconst format = getFormat(previewParams.outputFormat ?? mimeType);\n\n\t\tconst hash = createPreviewNameHash(id, previewParams);\n\t\tconst previewFilePath = createPreviewFilePath(schoolId, hash, id);\n\n\t\tconst previewFileParams = {\n\t\t\tfileRecord,\n\t\t\tpreviewParams,\n\t\t\thash,\n\t\t\tpreviewFilePath,\n\t\t\toriginFilePath,\n\t\t\tformat,\n\t\t\tbytesRange,\n\t\t};\n\n\t\treturn previewFileParams;\n\t}\n\n\tpublic static buildPayload(params: PreviewFileParams): PreviewFileOptions {\n\t\tconst { originFilePath, previewFilePath, previewParams, format } = params;\n\n\t\tconst payload = {\n\t\t\toriginFilePath,\n\t\t\tpreviewFilePath,\n\t\t\tpreviewOptions: {\n\t\t\t\tformat,\n\t\t\t\twidth: previewParams.width,\n\t\t\t},\n\t\t};\n\n\t\treturn payload;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewConfig.html":{"url":"interfaces/PreviewConfig.html","title":"interface - PreviewConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewConfig\n\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/preview-generator/interface/preview-consumer-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n serverConfig\n \n \n \n \n storageConfig\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n serverConfig\n \n \n \n \n \n \n \n \n serverConfig: PreviewModuleConfig\n\n \n \n\n\n \n \n Type : PreviewModuleConfig\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n storageConfig\n \n \n \n \n \n \n \n \n storageConfig: S3Config\n\n \n \n\n\n \n \n Type : S3Config\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { S3Config } from '@shared/infra/s3-client';\n\nexport interface PreviewModuleConfig {\n\tNEST_LOG_LEVEL: string;\n\tINCOMING_REQUEST_TIMEOUT: number;\n}\n\nexport interface PreviewConfig {\n\tstorageConfig: S3Config;\n\tserverConfig: PreviewModuleConfig;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewFileOptions.html":{"url":"interfaces/PreviewFileOptions.html","title":"interface - PreviewFileOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewFileOptions\n\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/preview-generator/interface/preview.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n originFilePath\n \n \n \n \n previewFilePath\n \n \n \n \n previewOptions\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n originFilePath\n \n \n \n \n \n \n \n \n originFilePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewFilePath\n \n \n \n \n \n \n \n \n previewFilePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewOptions\n \n \n \n \n \n \n \n \n previewOptions: PreviewOptions\n\n \n \n\n\n \n \n Type : PreviewOptions\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface PreviewOptions {\n\tformat: string;\n\twidth?: number;\n}\n\nexport interface PreviewFileOptions {\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tpreviewOptions: PreviewOptions;\n}\n\nexport interface PreviewResponseMessage {\n\tpreviewFilePath: string;\n\tstatus: 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/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 fileRecord\n \n \n \n \n format\n \n \n \n \n hash\n \n \n \n \n originFilePath\n \n \n \n \n previewFilePath\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 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 format\n \n \n \n \n \n \n \n \n format: string\n\n \n \n\n\n \n \n Type : string\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 originFilePath\n \n \n \n \n \n \n \n \n originFilePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewFilePath\n \n \n \n \n \n \n \n \n previewFilePath: string\n\n \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 { 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\tpreviewParams: PreviewParams;\n\thash: string;\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tformat: 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"},"modules/PreviewGeneratorAMQPModule.html":{"url":"modules/PreviewGeneratorAMQPModule.html","title":"module - PreviewGeneratorAMQPModule","body":"\n \n\n\n\n\n Modules\n PreviewGeneratorAMQPModule\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_PreviewGeneratorAMQPModule\n\n\n\ncluster_PreviewGeneratorAMQPModule_imports\n\n\n\n\nPreviewGeneratorConsumerModule\n\nPreviewGeneratorConsumerModule\n\n\n\nPreviewGeneratorAMQPModule\n\nPreviewGeneratorAMQPModule\n\nPreviewGeneratorAMQPModule -->\n\nPreviewGeneratorConsumerModule->PreviewGeneratorAMQPModule\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-preview-amqp.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n PreviewGeneratorConsumerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { PreviewGeneratorConsumerModule } from '@shared/infra/preview-generator';\nimport { defaultConfig, s3Config } from './files-storage.config';\n\n@Module({\n\timports: [PreviewGeneratorConsumerModule.register({ storageConfig: s3Config, serverConfig: defaultConfig })],\n})\nexport class PreviewGeneratorAMQPModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PreviewGeneratorBuilder.html":{"url":"classes/PreviewGeneratorBuilder.html","title":"class - PreviewGeneratorBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewGeneratorBuilder\n\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/preview-generator/preview-generator.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 buildFile\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 buildFile\n \n \n \n \n \n \n \n buildFile(preview: PassThrough, previewOptions: PreviewOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 preview\n \n PassThrough\n \n\n \n No\n \n\n\n \n \n previewOptions\n \n PreviewOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : File\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { File } from '@shared/infra/s3-client';\nimport { PassThrough } from 'stream';\nimport { PreviewOptions } from './interface';\n\nexport class PreviewGeneratorBuilder {\n\tpublic static buildFile(preview: PassThrough, previewOptions: PreviewOptions): File {\n\t\tconst { format } = previewOptions;\n\n\t\tconst file = {\n\t\t\tdata: preview,\n\t\t\tmimeType: format,\n\t\t};\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"},"injectables/PreviewGeneratorConsumer.html":{"url":"injectables/PreviewGeneratorConsumer.html","title":"injectable - PreviewGeneratorConsumer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewGeneratorConsumer\n\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/preview-generator/preview-generator.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 Public\n Async\n generatePreview\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(previewGeneratorService: PreviewGeneratorService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.consumer.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n previewGeneratorService\n \n \n PreviewGeneratorService\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 \n Public\n Async\n generatePreview\n \n \n \n \n \n \n \n generatePreview(payload: PreviewFileOptions)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesPreviewExchange, routingKey: undefined, queue: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.consumer.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 payload\n \n PreviewFileOptions\n \n\n \n No\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 { RabbitPayload, RabbitRPC } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { Logger } from '@src/core/logger';\nimport { FilesPreviewEvents, FilesPreviewExchange } from '@src/shared/infra/rabbitmq';\nimport { PreviewFileOptions } from './interface';\nimport { PreviewActionsLoggable } from './loggable/preview-actions.loggable';\nimport { PreviewGeneratorService } from './preview-generator.service';\n\n@Injectable()\nexport class PreviewGeneratorConsumer {\n\tconstructor(private readonly previewGeneratorService: PreviewGeneratorService, private logger: Logger) {\n\t\tthis.logger.setContext(PreviewGeneratorConsumer.name);\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesPreviewExchange,\n\t\troutingKey: FilesPreviewEvents.GENERATE_PREVIEW,\n\t\tqueue: FilesPreviewEvents.GENERATE_PREVIEW,\n\t})\n\tpublic async generatePreview(@RabbitPayload() payload: PreviewFileOptions) {\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewGeneratorConsumer.generatePreview', payload));\n\n\t\tconst response = await this.previewGeneratorService.generatePreview(payload);\n\n\t\treturn { message: 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"},"modules/PreviewGeneratorConsumerModule.html":{"url":"modules/PreviewGeneratorConsumerModule.html","title":"module - PreviewGeneratorConsumerModule","body":"\n \n\n\n\n\n Modules\n PreviewGeneratorConsumerModule\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/preview-generator/preview-generator-consumer.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(config: PreviewConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator-consumer.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 config\n \n PreviewConfig\n \n\n \n No\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 { ConfigModule } from '@nestjs/config';\nimport { RabbitMQWrapperModule } from '@shared/infra/rabbitmq';\nimport { S3ClientAdapter, S3ClientModule } from '@shared/infra/s3-client';\nimport { createConfigModuleOptions } from '@src/config';\nimport { Logger, LoggerModule } from '@src/core/logger';\nimport { PreviewConfig } from './interface/preview-consumer-config';\nimport { PreviewGeneratorConsumer } from './preview-generator.consumer';\nimport { PreviewGeneratorService } from './preview-generator.service';\n\n@Module({})\nexport class PreviewGeneratorConsumerModule {\n\tstatic register(config: PreviewConfig): DynamicModule {\n\t\tconst { storageConfig, serverConfig } = config;\n\t\tconst providers = [\n\t\t\t{\n\t\t\t\tprovide: PreviewGeneratorService,\n\t\t\t\tuseFactory: (logger: Logger, storageClient: S3ClientAdapter) =>\n\t\t\t\t\tnew PreviewGeneratorService(storageClient, logger),\n\t\t\t\tinject: [Logger, storageConfig.connectionName],\n\t\t\t},\n\t\t\tPreviewGeneratorConsumer,\n\t\t];\n\n\t\treturn {\n\t\t\tmodule: PreviewGeneratorConsumerModule,\n\t\t\timports: [\n\t\t\t\tLoggerModule,\n\t\t\t\tS3ClientModule.register([storageConfig]),\n\t\t\t\tRabbitMQWrapperModule,\n\t\t\t\tConfigModule.forRoot(createConfigModuleOptions(() => serverConfig)),\n\t\t\t],\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"},"modules/PreviewGeneratorProducerModule.html":{"url":"modules/PreviewGeneratorProducerModule.html","title":"module - PreviewGeneratorProducerModule","body":"\n \n\n\n\n\n Modules\n PreviewGeneratorProducerModule\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_PreviewGeneratorProducerModule\n\n\n\ncluster_PreviewGeneratorProducerModule_imports\n\n\n\ncluster_PreviewGeneratorProducerModule_exports\n\n\n\ncluster_PreviewGeneratorProducerModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nPreviewGeneratorProducerModule\n\nPreviewGeneratorProducerModule\n\nPreviewGeneratorProducerModule -->\n\nLoggerModule->PreviewGeneratorProducerModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nPreviewGeneratorProducerModule -->\n\nRabbitMQWrapperModule->PreviewGeneratorProducerModule\n\n\n\n\n\nPreviewProducer \n\nPreviewProducer \n\nPreviewProducer -->\n\nPreviewGeneratorProducerModule->PreviewProducer \n\n\n\n\n\nPreviewProducer\n\nPreviewProducer\n\nPreviewGeneratorProducerModule -->\n\nPreviewProducer->PreviewGeneratorProducerModule\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/preview-generator/preview-generator-producer.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n PreviewProducer\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n \n \n Exports\n \n \n PreviewProducer\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { RabbitMQWrapperModule } from '../rabbitmq';\nimport { PreviewProducer } from './preview.producer';\n\n@Module({\n\timports: [LoggerModule, RabbitMQWrapperModule],\n\tproviders: [PreviewProducer],\n\texports: [PreviewProducer],\n})\nexport class PreviewGeneratorProducerModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PreviewGeneratorService.html":{"url":"injectables/PreviewGeneratorService.html","title":"injectable - PreviewGeneratorService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewGeneratorService\n\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/preview-generator/preview-generator.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 imageMagick\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n downloadOriginFile\n \n \n Public\n Async\n generatePreview\n \n \n Private\n resizeAndConvert\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(storageClient: S3ClientAdapter, logger: Logger)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 storageClient\n \n \n S3ClientAdapter\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 downloadOriginFile\n \n \n \n \n \n \n \n downloadOriginFile(pathToFile: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 pathToFile\n \n string\n \n\n \n No\n \n\n\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 generatePreview\n \n \n \n \n \n \n \n generatePreview(params: PreviewFileOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 params\n \n PreviewFileOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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: GetFile, previewParams: PreviewOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 original\n \n GetFile\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewOptions\n \n\n \n No\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 Properties\n \n \n \n \n \n \n \n Private\n imageMagick\n \n \n \n \n \n \n Default value : subClass({ imageMagick: '7+' })\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.service.ts:12\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { GetFile, S3ClientAdapter } from '@shared/infra/s3-client';\nimport { Logger } from '@src/core/logger';\nimport { subClass } from 'gm';\nimport { PassThrough } from 'stream';\nimport { PreviewFileOptions, PreviewOptions, PreviewResponseMessage } from './interface';\nimport { PreviewActionsLoggable } from './loggable/preview-actions.loggable';\nimport { PreviewGeneratorBuilder } from './preview-generator.builder';\n\n@Injectable()\nexport class PreviewGeneratorService {\n\tprivate imageMagick = subClass({ imageMagick: '7+' });\n\n\tconstructor(private readonly storageClient: S3ClientAdapter, private logger: Logger) {\n\t\tthis.logger.setContext(PreviewGeneratorService.name);\n\t}\n\n\tpublic async generatePreview(params: PreviewFileOptions): Promise {\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewGeneratorService.generatePreview:start', params));\n\t\tconst { originFilePath, previewFilePath, previewOptions } = params;\n\n\t\tconst original = await this.downloadOriginFile(originFilePath);\n\t\tconst preview = this.resizeAndConvert(original, previewOptions);\n\n\t\tconst file = PreviewGeneratorBuilder.buildFile(preview, params.previewOptions);\n\n\t\tawait this.storageClient.create(previewFilePath, file);\n\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewGeneratorService.generatePreview:end', params));\n\n\t\treturn {\n\t\t\tpreviewFilePath,\n\t\t\tstatus: true,\n\t\t};\n\t}\n\n\tprivate async downloadOriginFile(pathToFile: string): Promise {\n\t\tconst file = await this.storageClient.get(pathToFile);\n\n\t\treturn file;\n\t}\n\n\tprivate resizeAndConvert(original: GetFile, previewParams: PreviewOptions): PassThrough {\n\t\tconst { format, width } = previewParams;\n\n\t\tconst preview = this.imageMagick(original.data);\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\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewModuleConfig.html":{"url":"interfaces/PreviewModuleConfig.html","title":"interface - PreviewModuleConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewModuleConfig\n\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/preview-generator/interface/preview-consumer-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 NEST_LOG_LEVEL\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 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 import { S3Config } from '@shared/infra/s3-client';\n\nexport interface PreviewModuleConfig {\n\tNEST_LOG_LEVEL: string;\n\tINCOMING_REQUEST_TIMEOUT: number;\n}\n\nexport interface PreviewConfig {\n\tstorageConfig: S3Config;\n\tserverConfig: PreviewModuleConfig;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewOptions.html":{"url":"interfaces/PreviewOptions.html","title":"interface - PreviewOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewOptions\n\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/preview-generator/interface/preview.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n format\n \n \n \n Optional\n \n width\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n format\n \n \n \n \n \n \n \n \n format: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n width\n \n \n \n \n \n \n \n \n width: 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 PreviewOptions {\n\tformat: string;\n\twidth?: number;\n}\n\nexport interface PreviewFileOptions {\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tpreviewOptions: PreviewOptions;\n}\n\nexport interface PreviewResponseMessage {\n\tpreviewFilePath: string;\n\tstatus: 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/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:126\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:113\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:118\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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/PreviewProducer.html":{"url":"injectables/PreviewProducer.html","title":"injectable - PreviewProducer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewProducer\n\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/preview-generator/preview.producer.ts\n \n\n\n\n \n Extends\n \n \n RpcMessageProducer\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n generate\n \n \n Protected\n checkError\n \n \n Protected\n createRequest\n \n \n Protected\n Async\n request\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, logger: Logger, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview.producer.ts:11\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 logger\n \n \n Logger\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 generate\n \n \n \n \n \n \n \n generate(payload: PreviewFileOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview.producer.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 payload\n \n PreviewFileOptions\n \n\n \n No\n \n\n\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 checkError\n \n \n \n \n \n \n \n checkError(response: RpcMessage)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:21\n\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 response\n \n RpcMessage\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createRequest\n \n \n \n \n \n \n \n createRequest(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer: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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : { exchange: string; routingKey: string; payload: unknown; timeout: number; }\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(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:12\n\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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\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 { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { FilesPreviewEvents, FilesPreviewExchange, RpcMessageProducer } from '@shared/infra/rabbitmq';\nimport { Logger } from '@src/core/logger';\nimport { PreviewFileOptions, PreviewResponseMessage } from './interface';\nimport { PreviewModuleConfig } from './interface/preview-consumer-config';\nimport { PreviewActionsLoggable } from './loggable/preview-actions.loggable';\n\n@Injectable()\nexport class PreviewProducer extends RpcMessageProducer {\n\tconstructor(\n\t\tprotected readonly amqpConnection: AmqpConnection,\n\t\tprivate readonly logger: Logger,\n\t\tprotected readonly configService: ConfigService\n\t) {\n\t\tconst timeout = configService.get('INCOMING_REQUEST_TIMEOUT');\n\n\t\tsuper(amqpConnection, FilesPreviewExchange, timeout);\n\t\tthis.logger.setContext(PreviewProducer.name);\n\t}\n\n\tasync generate(payload: PreviewFileOptions): Promise {\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewProducer.generate:started', payload));\n\t\tconst response = await this.request(FilesPreviewEvents.GENERATE_PREVIEW, payload);\n\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewProducer.generate:finished', payload));\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"},"interfaces/PreviewResponseMessage.html":{"url":"interfaces/PreviewResponseMessage.html","title":"interface - PreviewResponseMessage","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewResponseMessage\n\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/preview-generator/interface/preview.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n previewFilePath\n \n \n \n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n previewFilePath\n \n \n \n \n \n \n \n \n previewFilePath: string\n\n \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: 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 PreviewOptions {\n\tformat: string;\n\twidth?: number;\n}\n\nexport interface PreviewFileOptions {\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tpreviewOptions: PreviewOptions;\n}\n\nexport interface PreviewResponseMessage {\n\tpreviewFilePath: string;\n\tstatus: 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/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 Public\n Async\n download\n \n \n Private\n Async\n generatePreview\n \n \n Private\n Async\n getPreviewFile\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, logger: LegacyLogger, previewProducer: PreviewProducer)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/service/preview.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 storageClient\n \n \n S3ClientAdapter\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 previewProducer\n \n \n PreviewProducer\n \n \n \n No\n \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: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 fileRecord\n \n FileRecord\n \n\n \n No\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: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 fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\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 download\n \n \n \n \n \n \n \n download(fileRecord: FileRecord, previewParams: PreviewParams, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.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 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 bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \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: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 params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \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: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 params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \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 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: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 PreviewFileParams\n \n\n \n No\n \n\n\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 { PreviewProducer } from '@shared/infra/preview-generator';\nimport { S3ClientAdapter } from '@shared/infra/s3-client';\nimport { LegacyLogger } from '@src/core/logger';\nimport { PreviewParams } from '../controller/dto';\nimport { FileRecord, PreviewStatus } from '../entity';\nimport { ErrorType } from '../error';\nimport { FILES_STORAGE_S3_CONNECTION } from '../files-storage.config';\nimport { createPreviewDirectoryPath, getPreviewName } from '../helper';\nimport { GetFileResponse, PreviewFileParams } from '../interface';\nimport { FileResponseBuilder, PreviewBuilder } from '../mapper';\n\n@Injectable()\nexport class PreviewService {\n\tconstructor(\n\t\t@Inject(FILES_STORAGE_S3_CONNECTION) private readonly storageClient: S3ClientAdapter,\n\t\tprivate logger: LegacyLogger,\n\t\tprivate readonly previewProducer: PreviewProducer\n\t) {\n\t\tthis.logger.setContext(PreviewService.name);\n\t}\n\n\tpublic async download(\n\t\tfileRecord: FileRecord,\n\t\tpreviewParams: PreviewParams,\n\t\tbytesRange?: string\n\t): Promise {\n\t\tthis.checkIfPreviewPossible(fileRecord);\n\n\t\tconst previewFileParams = PreviewBuilder.buildParams(fileRecord, previewParams, bytesRange);\n\n\t\tconst response = await this.tryGetPreviewOrGenerate(previewFileParams);\n\n\t\treturn response;\n\t}\n\n\tpublic async deletePreviews(fileRecords: FileRecord[]): Promise {\n\t\tconst paths = fileRecords.map((fileRecord) => createPreviewDirectoryPath(fileRecord.getSchoolId(), fileRecord.id));\n\n\t\tconst promises = paths.map((path) => this.storageClient.deleteDirectory(path));\n\n\t\tawait Promise.all(promises);\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\tif (params.previewParams.forceUpdate) {\n\t\t\t\tawait this.generatePreview(params);\n\t\t\t}\n\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\tawait this.generatePreview(params);\n\t\t\tfile = await this.getPreviewFile(params);\n\t\t}\n\n\t\treturn file;\n\t}\n\n\tprivate async getPreviewFile(params: PreviewFileParams): Promise {\n\t\tconst { fileRecord, previewFilePath, bytesRange, previewParams } = params;\n\t\tconst name = getPreviewName(fileRecord, previewParams.outputFormat);\n\t\tconst file = await this.storageClient.get(previewFilePath, 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 payload = PreviewBuilder.buildPayload(params);\n\n\t\tawait this.previewProducer.generate(payload);\n\t}\n}\n\n \n\n\n\n\n\n\n\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 '@modules/account/account.module';\nimport { RoleModule } from '@modules/role';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system/system.module';\nimport { UserModule } from '@modules/user';\nimport { GroupModule } from '@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 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 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 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 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 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 '@modules/system';\nimport { SystemDto } from '@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 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 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 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 '@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"},"modules/PseudonymApiModule.html":{"url":"modules/PseudonymApiModule.html","title":"module - PseudonymApiModule","body":"\n \n\n\n\n\n Modules\n PseudonymApiModule\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_PseudonymApiModule\n\n\n\ncluster_PseudonymApiModule_providers\n\n\n\ncluster_PseudonymApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nPseudonymApiModule\n\nPseudonymApiModule\n\nPseudonymApiModule -->\n\nAuthorizationModule->PseudonymApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nPseudonymApiModule -->\n\nLegacySchoolModule->PseudonymApiModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nPseudonymApiModule -->\n\nPseudonymModule->PseudonymApiModule\n\n\n\n\n\nPseudonymUc\n\nPseudonymUc\n\nPseudonymApiModule -->\n\nPseudonymUc->PseudonymApiModule\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-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n PseudonymUc\n \n \n \n \n Controllers\n \n \n PseudonymController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n PseudonymModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { PseudonymModule } from './pseudonym.module';\nimport { PseudonymController } from './controller/pseudonym.controller';\nimport { PseudonymUc } from './uc';\n\n@Module({\n\timports: [PseudonymModule, AuthorizationModule, LegacySchoolModule],\n\tproviders: [PseudonymUc],\n\tcontrollers: [PseudonymController],\n})\nexport class PseudonymApiModule {}\n\n \n\n\n\n\n\n\n\n\n\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/PseudonymController.html":{"url":"controllers/PseudonymController.html","title":"controller - PseudonymController","body":"\n \n\n\n\n\n\n\n Controllers\n PseudonymController\n\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/controller/pseudonym.controller.ts\n \n\n \n Prefix\n \n \n pseudonyms\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 getPseudonym\n \n \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 getPseudonym\n \n \n \n \n \n \n \n getPseudonym(params: PseudonymParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':pseudonym')@ApiFoundResponse({description: 'Pseudonym has been found.', type: PseudonymResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Returns the related user and tool information to a pseudonym'})\n \n \n\n \n \n Defined in apps/server/src/modules/pseudonym/controller/pseudonym.controller.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 params\n \n PseudonymParams\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 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\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { Pseudonym } from '@shared/domain';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { PseudonymMapper } from '../mapper/pseudonym.mapper';\nimport { PseudonymUc } from '../uc';\nimport { PseudonymResponse } from './dto';\nimport { PseudonymParams } from './dto/pseudonym-params';\n\n@ApiTags('Pseudonym')\n@Authenticate('jwt')\n@Controller('pseudonyms')\nexport class PseudonymController {\n\tconstructor(private readonly pseudonymUc: PseudonymUc) {}\n\n\t@Get(':pseudonym')\n\t@ApiFoundResponse({ description: 'Pseudonym has been found.', type: PseudonymResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Returns the related user and tool information to a pseudonym' })\n\tasync getPseudonym(\n\t\t@Param() params: PseudonymParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst pseudonym: Pseudonym = await this.pseudonymUc.findPseudonymByPseudonym(currentUser.userId, params.pseudonym);\n\n\t\tconst pseudonymResponse: PseudonymResponse = PseudonymMapper.mapToResponse(pseudonym);\n\n\t\treturn pseudonymResponse;\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/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"},"classes/PseudonymMapper.html":{"url":"classes/PseudonymMapper.html","title":"class - PseudonymMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymMapper\n\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/mapper/pseudonym.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(pseudonym: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/mapper/pseudonym.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 pseudonym\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : PseudonymResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Pseudonym } from '@shared/domain';\nimport { PseudonymResponse } from '../controller/dto';\n\nexport class PseudonymMapper {\n\tstatic mapToResponse(pseudonym: Pseudonym): PseudonymResponse {\n\t\tconst response: PseudonymResponse = new PseudonymResponse({\n\t\t\tid: pseudonym.id,\n\t\t\ttoolId: pseudonym.toolId,\n\t\t\tuserId: pseudonym.userId,\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"},"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\ncluster_PseudonymModule_imports\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nPseudonymModule -->\n\nLearnroomModule->PseudonymModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nPseudonymModule -->\n\nUserModule->PseudonymModule\n\n\n\n\n\nFeathersRosterService \n\nFeathersRosterService \n\nFeathersRosterService -->\n\nPseudonymModule->FeathersRosterService \n\n\n\n\n\nPseudonymService \n\nPseudonymService \n\nPseudonymService -->\n\nPseudonymModule->PseudonymService \n\n\n\n\n\nExternalToolPseudonymRepo\n\nExternalToolPseudonymRepo\n\nPseudonymModule -->\n\nExternalToolPseudonymRepo->PseudonymModule\n\n\n\n\n\nFeathersRosterService\n\nFeathersRosterService\n\nPseudonymModule -->\n\nFeathersRosterService->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 FeathersRosterService\n \n \n LegacyLogger\n \n \n PseudonymService\n \n \n PseudonymsRepo\n \n \n \n \n Imports\n \n \n LearnroomModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n FeathersRosterService\n \n \n PseudonymService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { LearnroomModule } from '@modules/learnroom';\nimport { UserModule } from '@modules/user';\nimport { ToolModule } from '@modules/tool';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from './repo';\nimport { FeathersRosterService, PseudonymService } from './service';\n\n@Module({\n\timports: [UserModule, LearnroomModule, forwardRef(() => ToolModule), forwardRef(() => AuthorizationModule)],\n\tproviders: [PseudonymService, PseudonymsRepo, ExternalToolPseudonymRepo, LegacyLogger, FeathersRosterService],\n\texports: [PseudonymService, FeathersRosterService],\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"},"classes/PseudonymParams.html":{"url":"classes/PseudonymParams.html","title":"class - PseudonymParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymParams\n\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/controller/dto/pseudonym-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 pseudonym\n \n \n \n \n\n\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 @IsString()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/controller/dto/pseudonym-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 { IsString } from 'class-validator';\n\nexport class PseudonymParams {\n\t@IsString()\n\t@ApiProperty({ nullable: false, required: true })\n\tpseudonym!: 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/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"},"classes/PseudonymResponse.html":{"url":"classes/PseudonymResponse.html","title":"class - PseudonymResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymResponse\n\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/controller/dto/pseudonym.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 toolId\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(response: PseudonymResponse)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:11\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 PseudonymResponse\n \n \n \n No\n \n \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/pseudonym/controller/dto/pseudonym.response.ts:5\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/pseudonym/controller/dto/pseudonym.response.ts:8\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/pseudonym/controller/dto/pseudonym.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';\n\nexport class PseudonymResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\ttoolId: string;\n\n\t@ApiProperty()\n\tuserId: string;\n\n\tconstructor(response: PseudonymResponse) {\n\t\tthis.id = response.id;\n\t\tthis.toolId = response.toolId;\n\t\tthis.userId = response.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"},"classes/PseudonymScope.html":{"url":"classes/PseudonymScope.html","title":"class - PseudonymScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymScope\n\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.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 byPseudonym\n \n \n byToolId\n \n \n byUserId\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 byPseudonym\n \n \n \n \n \n \nbyPseudonym(pseudonym: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.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 pseudonym\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 byToolId\n \n \n \n \n \n \nbyToolId(toolId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.scope.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 toolId\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 byUserId\n \n \n \n \n \n \nbyUserId(userId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.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 userId\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 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 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 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 { ObjectId } from 'bson';\nimport { ExternalToolPseudonymEntity } from './external-tool-pseudonym.entity';\n\nexport class PseudonymScope extends Scope {\n\tbyPseudonym(pseudonym: string | undefined): this {\n\t\tif (pseudonym) {\n\t\t\tthis.addQuery({ pseudonym });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyUserId(userId: string | undefined): this {\n\t\tif (userId) {\n\t\t\tthis.addQuery({ userId: new ObjectId(userId) });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyToolId(toolId: string | undefined): this {\n\t\tif (toolId) {\n\t\t\tthis.addQuery({ toolId: new ObjectId(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"},"interfaces/PseudonymSearchQuery.html":{"url":"interfaces/PseudonymSearchQuery.html","title":"interface - PseudonymSearchQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PseudonymSearchQuery\n\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/domain/pseudonym-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 pseudonym\n \n \n \n Optional\n \n toolId\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 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 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 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 Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface PseudonymSearchQuery {\n\tpseudonym?: string;\n\ttoolId?: string;\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/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 findByUserAndToolOrThrow\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 Async\n findPseudonym\n \n \n Async\n findPseudonymByPseudonym\n \n \n Private\n Async\n findPseudonymsByUserId\n \n \n getIframeSubject\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:11\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: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 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: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 userId\n \n string\n \n\n \n No\n \n\n\n \n \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: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 userId\n \n string\n \n\n \n No\n \n\n\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 findByUserAndToolOrThrow\n \n \n \n \n \n \n \n findByUserAndToolOrThrow(user: UserDO, tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 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 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: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 string\n \n\n \n No\n \n\n\n \n \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: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 userId\n \n string\n \n\n \n No\n \n\n\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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonym\n \n \n \n \n \n \n \n findPseudonym(query: PseudonymSearchQuery, options: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 query\n \n PseudonymSearchQuery\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 Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \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: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 string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getIframeSubject\n \n \n \n \n \n \ngetIframeSubject(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 pseudonym\n \n string\n \n\n \n No\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 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: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 tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\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 { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { IFindOptions, LtiToolDO, Page, Pseudonym, UserDO } from '@shared/domain';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { v4 as uuidv4 } from 'uuid';\nimport { PseudonymSearchQuery } from '../domain';\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 findByUserAndToolOrThrow(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\tasync findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst result: Pseudonym | null = await this.externalToolPseudonymRepo.findPseudonymByPseudonym(pseudonym);\n\n\t\treturn result;\n\t}\n\n\tasync findPseudonym(query: PseudonymSearchQuery, options: IFindOptions): Promise> {\n\t\tconst result: Page = await this.externalToolPseudonymRepo.findPseudonym(query, options);\n\n\t\treturn result;\n\t}\n\n\tgetIframeSubject(pseudonym: string): string {\n\t\tconst iFrameSubject = ``;\n\n\t\treturn iFrameSubject;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PseudonymUc.html":{"url":"injectables/PseudonymUc.html","title":"injectable - PseudonymUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PseudonymUc\n\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/uc/pseudonym.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 findPseudonymByPseudonym\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(pseudonymService: PseudonymService, authorizationService: AuthorizationService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/uc/pseudonym.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 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 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 findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(userId: EntityId, pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/uc/pseudonym.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 userId\n \n EntityId\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 \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, Pseudonym, User } from '@shared/domain';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { PseudonymService } from '../service';\n\n@Injectable()\nexport class PseudonymUc {\n\tconstructor(\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {}\n\n\tasync findPseudonymByPseudonym(userId: EntityId, pseudonym: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tconst foundPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (foundPseudonym === null) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\tconst pseudonymUserId: string = foundPseudonym.userId;\n\t\tconst pseudonymUser: User = await this.authorizationService.getUserWithPermissions(pseudonymUserId);\n\t\tconst pseudonymSchool: LegacySchoolDo = await this.schoolService.getSchoolById(pseudonymUser.school.id);\n\n\t\tthis.authorizationService.checkPermission(user, pseudonymSchool, AuthorizationContextBuilder.read([]));\n\n\t\treturn foundPseudonym;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 '@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 { FilesPreviewExchange, 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\t{\n\t\t\t\tname: FilesPreviewExchange,\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:55\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 { FilesPreviewExchange, 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\t{\n\t\t\t\tname: FilesPreviewExchange,\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"},"classes/RecursiveCopyVisitor.html":{"url":"classes/RecursiveCopyVisitor.html","title":"class - RecursiveCopyVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RecursiveCopyVisitor\n\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-copy-service/recursive-copy.visitor.ts\n \n\n\n\n\n \n Implements\n \n \n BoardCompositeVisitorAsync\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n copyMap\n \n \n resultMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copy\n \n \n getCopiesForChildrenOf\n \n \n getCopyStatusesForChildrenOf\n \n \n Async\n visitCardAsync\n \n \n Async\n visitChildrenOf\n \n \n Async\n visitColumnAsync\n \n \n Async\n visitColumnBoardAsync\n \n \n visitExternalToolElementAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitLinkElementAsync\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(fileCopyService: SchoolSpecificFileCopyService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileCopyService\n \n \n SchoolSpecificFileCopyService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n copyMap\n \n \n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n resultMap\n \n \n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:21\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copy\n \n \n \n \n \n \n \n copy(original: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getCopiesForChildrenOf\n \n \n \n \n \n \ngetCopiesForChildrenOf(original: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:227\n \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 AnyBoardDo\n \n\n \n No\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 getCopyStatusesForChildrenOf\n \n \n \n \n \n \ngetCopyStatusesForChildrenOf(original: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n AnyBoardDo\n \n\n \n No\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 Async\n visitCardAsync\n \n \n \n \n \n \n \n visitCardAsync(original: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitChildrenOf\n \n \n \n \n \n \n \n visitChildrenOf(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:210\n \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 Returns : unknown\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(original: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n Column\n \n\n \n No\n \n\n\n \n \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(original: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElementAsync\n \n \n \n \n \n \nvisitExternalToolElementAsync(original: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:192\n \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 ExternalToolElement\n \n\n \n No\n \n\n\n \n \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(original: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitLinkElementAsync\n \n \n \n \n \n \n \n visitLinkElementAsync(original: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n LinkElement\n \n\n \n No\n \n\n\n \n \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(original: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:146\n \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 RichTextElement\n \n\n \n No\n \n\n\n \n \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(original: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.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 original\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \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(original: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n SubmissionItem\n \n\n \n No\n \n\n\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\tAnyBoardDo,\n\tBoardCompositeVisitorAsync,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tEntityId,\n\tExternalToolElement,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { CopyElementType, CopyStatus, CopyStatusEnum } from '@modules/copy-helper';\nimport { ObjectId } from 'bson';\nimport { SchoolSpecificFileCopyService } from './school-specific-file-copy.interface';\n\nexport class RecursiveCopyVisitor implements BoardCompositeVisitorAsync {\n\tresultMap = new Map();\n\n\tcopyMap = new Map();\n\n\tconstructor(private readonly fileCopyService: SchoolSpecificFileCopyService) {}\n\n\tasync copy(original: AnyBoardDo): Promise {\n\t\tawait original.acceptAsync(this);\n\n\t\tconst result = this.resultMap.get(original.id);\n\t\t/* istanbul ignore next */\n\t\tif (result === undefined) {\n\t\t\tthrow new Error('nothing copied');\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync visitColumnBoardAsync(original: ColumnBoard): Promise {\n\t\tawait this.visitChildrenOf(original);\n\n\t\tconst copy = new ColumnBoard({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: original.title,\n\t\t\tcontext: original.context,\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tchildren: this.getCopiesForChildrenOf(original),\n\t\t});\n\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.COLUMNBOARD,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitColumnAsync(original: Column): Promise {\n\t\tawait this.visitChildrenOf(original);\n\t\tconst copy = new Column({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: original.title,\n\t\t\tchildren: this.getCopiesForChildrenOf(original),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.COLUMN,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitCardAsync(original: Card): Promise {\n\t\tawait this.visitChildrenOf(original);\n\t\tconst copy = new Card({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: original.title,\n\t\t\theight: original.height,\n\t\t\tchildren: this.getCopiesForChildrenOf(original),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.CARD,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitFileElementAsync(original: FileElement): Promise {\n\t\tconst copy = new FileElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcaption: original.caption,\n\t\t\talternativeText: original.alternativeText,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tconst fileCopy = await this.fileCopyService.copyFilesOfParent({\n\t\t\tsourceParentId: original.id,\n\t\t\ttargetParentId: copy.id,\n\t\t\tparentType: FileRecordParentType.BoardNode,\n\t\t});\n\t\tconst fileCopyStatus = fileCopy.map((copyFileDto) => {\n\t\t\treturn {\n\t\t\t\ttype: CopyElementType.FILE,\n\t\t\t\tstatus: copyFileDto.id ? CopyStatusEnum.SUCCESS : CopyStatusEnum.FAIL,\n\t\t\t\ttitle: copyFileDto.name ?? `(old fileid: ${copyFileDto.sourceId})`,\n\t\t\t};\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.FILE_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: fileCopyStatus,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitLinkElementAsync(original: LinkElement): Promise {\n\t\tconst copy = new LinkElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\turl: original.url,\n\t\t\ttitle: original.title,\n\t\t\timageUrl: original.imageUrl,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.LINK_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync visitRichTextElementAsync(original: RichTextElement): Promise {\n\t\tconst copy = new RichTextElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttext: original.text,\n\t\t\tinputFormat: original.inputFormat,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.RICHTEXT_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync visitSubmissionContainerElementAsync(original: SubmissionContainerElement): Promise {\n\t\tawait this.visitChildrenOf(original);\n\t\tconst copy = new SubmissionContainerElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tdueDate: original.dueDate,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.SUBMISSION_CONTAINER_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitSubmissionItemAsync(original: SubmissionItem): Promise {\n\t\tthis.resultMap.set(original.id, {\n\t\t\ttype: CopyElementType.SUBMISSION_ITEM,\n\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tvisitExternalToolElementAsync(original: ExternalToolElement): Promise {\n\t\tconst copy = new ExternalToolElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcontextExternalToolId: undefined,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.EXTERNAL_TOOL_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync visitChildrenOf(boardDo: AnyBoardDo) {\n\t\treturn Promise.allSettled(boardDo.children.map((child) => child.acceptAsync(this)));\n\t}\n\n\tgetCopyStatusesForChildrenOf(original: AnyBoardDo) {\n\t\tconst childstatusses: CopyStatus[] = [];\n\n\t\toriginal.children.forEach((child) => {\n\t\t\tconst childStatus = this.resultMap.get(child.id);\n\t\t\tif (childStatus) {\n\t\t\t\tchildstatusses.push(childStatus);\n\t\t\t}\n\t\t});\n\n\t\treturn childstatusses;\n\t}\n\n\tgetCopiesForChildrenOf(original: AnyBoardDo) {\n\t\tconst copies: AnyBoardDo[] = [];\n\t\toriginal.children.forEach((child) => {\n\t\t\tconst childCopy = this.copyMap.get(child.id);\n\t\t\tif (childCopy) {\n\t\t\t\tcopies.push(childCopy);\n\t\t\t}\n\t\t});\n\n\t\treturn copies;\n\t}\n}\n\n \n\n\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 visitExternalToolElementAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitLinkElementAsync\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: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 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: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 domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\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: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 card\n \n Card\n \n\n \n No\n \n\n\n \n \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: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 domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \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: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 column\n \n Column\n \n\n \n No\n \n\n\n \n \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: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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitExternalToolElementAsync\n \n \n \n \n \n \n \n visitExternalToolElementAsync(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\n \n \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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitLinkElementAsync\n \n \n \n \n \n \n \n visitLinkElementAsync(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\n \n \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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \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: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 submission\n \n SubmissionItem\n \n\n \n No\n \n\n\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\tExternalToolElement,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport { FilesStorageClientAdapterService } from '@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 visitLinkElementAsync(linkElement: LinkElement): Promise {\n\t\tthis.deleteNode(linkElement);\n\n\t\tawait this.visitChildrenAsync(linkElement);\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\tasync visitExternalToolElementAsync(externalToolElement: ExternalToolElement): Promise {\n\t\t// TODO N21-1296: Delete linked ContextExternalTool\n\t\tthis.deleteNode(externalToolElement);\n\n\t\tawait this.visitChildrenAsync(externalToolElement);\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 visitExternalToolElement\n \n \n visitFileElement\n \n \n visitLinkElement\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:36\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:36\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:203\n \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 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: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 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 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: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 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 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: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 card\n \n Card\n \n\n \n No\n \n\n\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:188\n \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 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: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 column\n \n Column\n \n\n \n No\n \n\n\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: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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElement\n \n \n \n \n \n \nvisitExternalToolElement(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:172\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitLinkElement\n \n \n \n \n \n \nvisitLinkElement(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\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: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 submission\n \n SubmissionItem\n \n\n \n No\n \n\n\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\tExternalToolElement,\n\tExternalToolElementNodeEntity,\n\tFileElement,\n\tFileElementNode,\n\tRichTextElement,\n\tRichTextElementNode,\n\tSubmissionContainerElement,\n\tSubmissionContainerElementNode,\n\tSubmissionItem,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport { LinkElementNode } from '@shared/domain/entity/boardnode/link-element-node.entity';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity';\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\talternativeText: fileElement.alternativeText,\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\tvisitLinkElement(linkElement: LinkElement): void {\n\t\tconst parentData = this.parentsMap.get(linkElement.id);\n\n\t\tconst boardNode = new LinkElementNode({\n\t\t\tid: linkElement.id,\n\t\t\turl: linkElement.url,\n\t\t\ttitle: linkElement.title,\n\t\t\timageUrl: linkElement.imageUrl,\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(linkElement, 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\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tdueDate: submissionContainerElement.dueDate,\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\tvisitExternalToolElement(externalToolElement: ExternalToolElement): void {\n\t\tconst parentData: ParentData | undefined = this.parentsMap.get(externalToolElement.id);\n\n\t\tconst boardNode: ExternalToolElementNodeEntity = new ExternalToolElementNodeEntity({\n\t\t\tid: externalToolElement.id,\n\t\t\tcontextExternalTool: externalToolElement.contextExternalToolId\n\t\t\t\t? this.em.getReference(ContextExternalToolEntity, externalToolElement.contextExternalToolId)\n\t\t\t\t: undefined,\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(externalToolElement, 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/domain/service/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 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/domain/service/reference.loader.ts:39\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 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/domain/service/reference.loader.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 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 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/domain/service/reference.loader.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 type\n \n AuthorizableReferenceType\n \n\n \n No\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/domain/service/reference.loader.ts:39\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, EntityId } 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 '@modules/board';\nimport { ContextExternalToolAuthorizableService } from '@modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from '../type';\n\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 });\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\n \n\n\n\n\n\n\n\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:79\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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 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 '@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/ResolvedGroupDto.html":{"url":"classes/ResolvedGroupDto.html","title":"class - ResolvedGroupDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedGroupDto\n\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/uc/dto/resolved-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 Optional\n externalSource\n \n \n id\n \n \n name\n \n \n Optional\n organizationId\n \n \n type\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(group: ResolvedGroupDto)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:16\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 ResolvedGroupDto\n \n \n \n No\n \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 externalSource\n \n \n \n \n \n \n Type : ExternalSource\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:14\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 Defined in apps/server/src/modules/group/uc/dto/resolved-group.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/group/uc/dto/resolved-group.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n organizationId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:16\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/group/uc/dto/resolved-group.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : ResolvedGroupUser[]\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ExternalSource } from '@shared/domain';\nimport { GroupTypes } from '../../domain';\nimport { ResolvedGroupUser } from './resolved-group-user';\n\nexport class ResolvedGroupDto {\n\tid: string;\n\n\tname: string;\n\n\ttype: GroupTypes;\n\n\tusers: ResolvedGroupUser[];\n\n\texternalSource?: ExternalSource;\n\n\torganizationId?: string;\n\n\tconstructor(group: ResolvedGroupDto) {\n\t\tthis.id = group.id;\n\t\tthis.name = group.name;\n\t\tthis.type = group.type;\n\t\tthis.users = group.users;\n\t\tthis.externalSource = group.externalSource;\n\t\tthis.organizationId = group.organizationId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResolvedGroupUser.html":{"url":"classes/ResolvedGroupUser.html","title":"class - ResolvedGroupUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedGroupUser\n\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/uc/dto/resolved-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 role\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: ResolvedGroupUser)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group-user.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 ResolvedGroupUser\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : RoleDto\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group-user.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : UserDO\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group-user.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { UserDO } from '@shared/domain';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\n\nexport class ResolvedGroupUser {\n\tuser: UserDO;\n\n\trole: RoleDto;\n\n\tconstructor(props: ResolvedGroupUser) {\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"},"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 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\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:20\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:11\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:17\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:14\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:29\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:26\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:32\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: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';\n\nexport type Role = {\n\tname: string;\n\n\tid: string;\n};\n\nexport class ResolvedUserResponse {\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: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 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 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 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 '@modules/authorization';\nimport { LegacySchoolService } from '@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}\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:56\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:52\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 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 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 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 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 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\nexport function isRichTextElement(reference: unknown): reference is RichTextElement {\n\treturn reference instanceof RichTextElement;\n}\n\n \n\n\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:65\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:61\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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\nexport function isRichTextElement(reference: unknown): reference is RichTextElement {\n\treturn reference instanceof RichTextElement;\n}\n\n \n\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 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 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 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 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 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 '@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_exports\n\n\n\ncluster_RoleModule_providers\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 '@modules/role/service/role.service';\nimport { RoleUc } from '@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 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 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 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 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 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 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 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 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 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 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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { RoleService } from '@modules/role/service/role.service';\nimport { RoleDto } from '@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:186\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:192\n \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 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, Action } from '@modules/authorization';\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 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 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 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 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 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: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 RoomUrlParams\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { CopyApiResponse, CopyMapper } from '@modules/copy-helper';\nimport { serverConfig } from '@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 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 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 '@modules/board';\nimport { TaskService } from '@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 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 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 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: string;\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"},"classes/RpcMessageProducer.html":{"url":"classes/RpcMessageProducer.html","title":"class - RpcMessageProducer","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RpcMessageProducer\n\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-producer.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 Protected\n checkError\n \n \n Protected\n createRequest\n \n \n Protected\n Async\n request\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, exchange: string, timeout: number)\n \n \n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rpc-message-producer.ts:5\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 exchange\n \n \n string\n \n \n \n No\n \n \n \n \n timeout\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 \n Methods\n \n \n \n \n \n \n \n Protected\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/shared/infra/rabbitmq/rpc-message-producer.ts:21\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 response\n \n RpcMessage\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createRequest\n \n \n \n \n \n \n \n createRequest(event: string, payload)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rpc-message-producer.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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : { exchange: string; routingKey: string; payload: unknown; timeout: number; }\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(event: string, payload)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rpc-message-producer.ts:12\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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\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 \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { ErrorMapper } from './error.mapper';\nimport { RpcMessage } from './rpc-message';\n\nexport abstract class RpcMessageProducer {\n\tconstructor(\n\t\tprotected readonly amqpConnection: AmqpConnection,\n\t\tprotected readonly exchange: string,\n\t\tprotected readonly timeout: number\n\t) {}\n\n\tprotected async request(event: string, payload: unknown) {\n\t\tconst response = await this.amqpConnection.request>(this.createRequest(event, 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\tprotected 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\tprotected createRequest(event: string, payload: unknown) {\n\t\treturn {\n\t\t\texchange: this.exchange,\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 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/domain/type/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/domain/type/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 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/domain/type/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 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/domain/service/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, groupRule: GroupRule)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/service/rule-manager.ts:23\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 groupRule\n \n \n GroupRule\n \n \n \n No\n \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/domain/service/rule-manager.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 rules\n \n Rule[]\n \n\n \n No\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/domain/service/rule-manager.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 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 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/domain/service/rule-manager.ts:23\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 type { AuthorizationContext, Rule } from '../type';\nimport {\n\tBoardDoRule,\n\tContextExternalToolRule,\n\tCourseGroupRule,\n\tCourseRule,\n\tLegacySchoolRule,\n\tLessonRule,\n\tSchoolExternalToolRule,\n\tSubmissionRule,\n\tTaskRule,\n\tTeamRule,\n\tUserLoginMigrationRule,\n\tUserRule,\n\tGroupRule,\n} from '../rules';\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\tprivate readonly groupRule: GroupRule\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\tthis.groupRule,\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 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 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 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 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 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 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 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 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 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\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 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 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 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 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 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: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 relation\n \n SanisSonstigeGruppenzugehoerigeResponse\n \n\n \n No\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 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 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 '@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{\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].filter((sanisGroupUser) => sanisGroupUser.ktid && sanisGroupUser.rollen);\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\tconst externalOrganizationId = source.personenkontexte[0].organisation?.id;\n\n\t\t\t\treturn new ExternalGroupDto({\n\t\t\t\t\tname: group.gruppe.bezeichnung,\n\t\t\t\t\ttype: groupType,\n\t\t\t\t\texternalOrganizationId,\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"},"interfaces/ScanResult.html":{"url":"interfaces/ScanResult.html","title":"interface - ScanResult","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ScanResult\n\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/interfaces/antivirus.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 virus_detected\n \n \n \n Optional\n \n virus_signature\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 virus_detected\n \n \n \n \n \n \n \n \n virus_detected: 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 virus_signature\n \n \n \n \n \n \n \n \n virus_signature: string\n\n \n \n\n\n \n \n 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 AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n\thostname: string;\n\tport: number;\n}\n\nexport interface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\nexport interface ScanResult {\n\tvirus_detected?: boolean;\n\tvirus_signature?: string;\n\terror?: 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/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 Implements\n \n \n ScanResult\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:66\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:58\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:62\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 : FederalStateEntity\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:107\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 : SchoolYearEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {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(undefined, 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 : UserLoginMigrationEntity\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:104\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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameterEntry, ToolConfigurationStatus } from '@modules/tool/common/domain';\nimport { SchoolExternalTool, SchoolExternalToolProps } from '@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_providers\n\n\n\ncluster_SchoolExternalToolModule_exports\n\n\n\ncluster_SchoolExternalToolModule_imports\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/tool/school-external-tool/uc/dto/school-external-tool.types';\nimport { ISchoolExternalToolProperties, SchoolExternalToolEntity } from '@modules/tool/school-external-tool/entity';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { ExternalToolEntity } from '@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 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 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 { ToolConfigurationStatusResponse } from '../../../context-external-tool/controller/dto/tool-configuration-status.response';\nimport { CustomParameterEntryResponse } from './custom-parameter-entry.response';\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: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 entries\n \n CustomParameterEntry[]\n \n\n \n No\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: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 schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\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: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 externalTools\n \n SchoolExternalTool[]\n \n\n \n No\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 { ToolStatusResponseMapper } from '../../common/mapper/tool-status-response.mapper';\nimport { ToolConfigurationStatusResponse } from '../../context-external-tool/controller/dto';\nimport {\n\tCustomParameterEntryResponse,\n\tSchoolExternalToolResponse,\n\tSchoolExternalToolSearchListResponse,\n} from '../controller/dto';\nimport { SchoolExternalTool } from '../domain';\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? ToolStatusResponseMapper.mapToResponse(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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@modules/tool/school-external-tool/entity';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 '@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 findById\n \n \n Async\n findSchoolExternalTools\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 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 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 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 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(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 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 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 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 { SchoolExternalToolRepo } from '@shared/repo';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../domain';\nimport { SchoolExternalToolQuery } from '../uc/dto/school-external-tool.types';\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 findById(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.findById(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 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 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 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 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: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 schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 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 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 '@modules/authorization';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalTool } from '../domain';\nimport { SchoolExternalToolService, SchoolExternalToolValidationService } from '../service';\nimport { SchoolExternalToolDto, SchoolExternalToolQueryInput } from './dto/school-external-tool.types';\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.findById(schoolExternalToolId);\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.findById(schoolExternalToolId);\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: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 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 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 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.findById(schoolExternalTool.toolId);\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 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 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 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 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 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 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 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 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 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 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 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 '@modules/legacy-school';\nimport { UserService } from '@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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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"},"interfaces/SchoolSpecificFileCopyService.html":{"url":"interfaces/SchoolSpecificFileCopyService.html","title":"interface - SchoolSpecificFileCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SchoolSpecificFileCopyService\n\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-copy-service/school-specific-file-copy.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n copyFilesOfParent\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n copyFilesOfParent\n \n \n \n \n \n \ncopyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy.interface.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 params\n \n SchoolSpecificFileCopyServiceCopyParams\n \n\n \n No\n \n\n\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 { EntityId } from '@shared/domain';\nimport { CopyFileDto } from '@modules/files-storage-client/dto';\nimport { FileRecordParentType } from '@modules/files-storage/entity';\n\nexport type SchoolSpecificFileCopyServiceCopyParams = {\n\tsourceParentId: EntityId;\n\ttargetParentId: EntityId;\n\tparentType: FileRecordParentType;\n};\n\nexport type SchoolSpecificFileCopyServiceProps = {\n\tsourceSchoolId: EntityId;\n\ttargetSchoolId: EntityId;\n\tuserId: EntityId;\n};\n\nexport interface SchoolSpecificFileCopyService {\n\tcopyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams): 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"},"injectables/SchoolSpecificFileCopyServiceFactory.html":{"url":"injectables/SchoolSpecificFileCopyServiceFactory.html","title":"injectable - SchoolSpecificFileCopyServiceFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolSpecificFileCopyServiceFactory\n\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-copy-service/school-specific-file-copy-service.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 Constructor\n \n \n \n \nconstructor(filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy-service.factory.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\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 build\n \n \n \n \n \n \nbuild(props: SchoolSpecificFileCopyServiceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy-service.factory.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 SchoolSpecificFileCopyServiceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : SchoolSpecificFileCopyService\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { FilesStorageClientAdapterService } from '@modules/files-storage-client';\nimport {\n\tSchoolSpecificFileCopyService,\n\tSchoolSpecificFileCopyServiceProps,\n} from './school-specific-file-copy.interface';\nimport { SchoolSpecificFileCopyServiceImpl } from './school-specific-file-copy.service';\n\n@Injectable()\nexport class SchoolSpecificFileCopyServiceFactory {\n\tconstructor(private readonly filesStorageClientAdapterService: FilesStorageClientAdapterService) {}\n\n\tbuild(props: SchoolSpecificFileCopyServiceProps): SchoolSpecificFileCopyService {\n\t\treturn new SchoolSpecificFileCopyServiceImpl(this.filesStorageClientAdapterService, props);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolSpecificFileCopyServiceImpl.html":{"url":"classes/SchoolSpecificFileCopyServiceImpl.html","title":"class - SchoolSpecificFileCopyServiceImpl","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolSpecificFileCopyServiceImpl\n\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-copy-service/school-specific-file-copy.service.ts\n \n\n\n\n\n \n Implements\n \n \n SchoolSpecificFileCopyService\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n copyFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(filesStorageClientAdapterService: FilesStorageClientAdapterService, props: SchoolSpecificFileCopyServiceProps)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy.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 filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n props\n \n \n SchoolSpecificFileCopyServiceProps\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 copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy.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 params\n \n SchoolSpecificFileCopyServiceCopyParams\n \n\n \n No\n \n\n\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 { FilesStorageClientAdapterService } from '@modules/files-storage-client';\nimport { CopyFileDto } from '@modules/files-storage-client/dto';\nimport {\n\tSchoolSpecificFileCopyService,\n\tSchoolSpecificFileCopyServiceCopyParams,\n\tSchoolSpecificFileCopyServiceProps,\n} from './school-specific-file-copy.interface';\n\nexport class SchoolSpecificFileCopyServiceImpl implements SchoolSpecificFileCopyService {\n\tconstructor(\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService,\n\t\tprivate readonly props: SchoolSpecificFileCopyServiceProps\n\t) {}\n\n\tpublic async copyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams): Promise {\n\t\treturn this.filesStorageClientAdapterService.copyFilesOfParent({\n\t\t\tsource: {\n\t\t\t\tparentId: params.sourceParentId,\n\t\t\t\tparentType: params.parentType,\n\t\t\t\tschoolId: this.props.sourceSchoolId,\n\t\t\t},\n\t\t\ttarget: {\n\t\t\t\tparentId: params.targetParentId,\n\t\t\t\tparentType: params.parentType,\n\t\t\t\tschoolId: this.props.targetSchoolId,\n\t\t\t},\n\t\t\tuserId: this.props.userId,\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/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 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 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/SchoolYearEntity.html":{"url":"entities/SchoolYearEntity.html","title":"entity - SchoolYearEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolYearEntity\n\n\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 SchoolYearEntity 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 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 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 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 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 { SchoolYearEntity } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\n\n@Injectable()\nexport class SchoolYearRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn SchoolYearEntity;\n\t}\n\n\tasync findCurrentYear(): Promise {\n\t\tconst currentDate = new Date();\n\t\tconst year: SchoolYearEntity | null = await this._em.findOneOrFail(SchoolYearEntity, {\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 findById\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 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/legacy-school/service/school-year.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 Returns : Promise\n\n \n \n \n \n \n \n \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 { EntityId, SchoolYearEntity } 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: SchoolYearEntity = await this.schoolYearRepo.findCurrentYear();\n\n\t\treturn current;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst year: SchoolYearEntity = await this.schoolYearRepo.findById(id);\n\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"},"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 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 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 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 '@modules/files';\nimport { FileEntity } from '@modules/files/entity';\nimport { FileRecord } from '@modules/files-storage/entity';\nimport { ManagementModule } from '@modules/management/management.module';\nimport { serverConfig } from '@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\nPseudonymApiModule\n\nPseudonymApiModule\n\nServerModule -->\n\nPseudonymApiModule->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 PseudonymApiModule\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: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 consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\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 '@modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { GroupApiModule } from '@modules/group/group-api.module';\nimport { LearnroomApiModule } from '@modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { ToolApiModule } from '@modules/tool/tool-api.module';\nimport { ImportUserModule } from '@modules/user-import';\nimport { UserLoginMigrationApiModule } from '@modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@modules/teams/teams-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-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\tPseudonymApiModule,\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\nPseudonymApiModule\n\nPseudonymApiModule\n\nServerTestModule -->\n\nPseudonymApiModule->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 PseudonymApiModule\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: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 consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\n\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: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 options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\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 '@modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { GroupApiModule } from '@modules/group/group-api.module';\nimport { LearnroomApiModule } from '@modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { ToolApiModule } from '@modules/tool/tool-api.module';\nimport { ImportUserModule } from '@modules/user-import';\nimport { UserLoginMigrationApiModule } from '@modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@modules/teams/teams-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-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\tPseudonymApiModule,\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 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 '@modules/authorization/domain';\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\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 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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { CopyApiResponse, CopyMapper } from '@modules/copy-helper';\n// invalid import can produce dependency cycles\nimport { serverConfig } from '@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 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 '@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 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 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 '@modules/authorization/domain';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/learnroom/service';\nimport { LessonService } from '@modules/lesson/service';\nimport { TaskService } from '@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, authorizationReferenceService: AuthorizationReferenceService, 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:24\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 authorizationReferenceService\n \n \n AuthorizationReferenceService\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:192\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 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: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 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 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: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 parentType\n \n ShareTokenParentType\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 token\n \n string\n \n\n \n No\n \n\n\n \n \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: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 days\n \n number\n \n\n \n No\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 { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { AuthorizationReferenceService } from '@modules/authorization/domain';\nimport { CopyStatus } from '@modules/copy-helper';\nimport { CourseCopyService } from '@modules/learnroom';\nimport { CourseService } from '@modules/learnroom/service';\nimport { LessonCopyService } from '@modules/lesson/service';\nimport { TaskCopyService } from '@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 authorizationReferenceService: AuthorizationReferenceService,\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\tconst authorizationContext = AuthorizationContextBuilder.write(requiredPermissions);\n\n\t\tawait this.authorizationReferenceService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tallowedParentType,\n\t\t\tpayload.parentId,\n\t\t\tauthorizationContext\n\t\t);\n\t}\n\n\tprivate async checkContextReadPermission(userId: EntityId, context: ShareTokenContext) {\n\t\tconst allowedContextType = ShareTokenContextTypeMapper.mapToAllowedAuthorizationEntityType(context.contextType);\n\t\tconst authorizationContext = AuthorizationContextBuilder.read([]);\n\n\t\tawait this.authorizationReferenceService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tallowedContextType,\n\t\t\tcontext.contextId,\n\t\t\tauthorizationContext\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\t// Configuration.get is the deprecated way to read envirment variables\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\t// Configuration.get is the deprecated way to read envirment variables\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\t// Configuration.get is the deprecated way to read envirment variables\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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nSharingApiModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\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, AuthorizationReferenceModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [\n\t\tSharingModule,\n\t\tAuthorizationModule,\n\t\tAuthorizationReferenceModule,\n\t\tLearnroomModule,\n\t\tLessonModule,\n\t\tTaskModule,\n\t\tLoggerModule,\n\t],\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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nSharingModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\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, AuthorizationReferenceModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [\n\t\tSharingModule,\n\t\tAuthorizationModule,\n\t\tAuthorizationReferenceModule,\n\t\tLearnroomModule,\n\t\tLessonModule,\n\t\tTaskModule,\n\t\tLoggerModule,\n\t],\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:72\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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/SortHelper.html":{"url":"classes/SortHelper.html","title":"class - SortHelper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortHelper\n\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/util/sort-helper.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 genericSortFunction\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 genericSortFunction\n \n \n \n \n \n \n \n genericSortFunction(a: T, b: T, sortOrder: SortOrder)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/util/sort-helper.ts:4\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 a\n \n T\n \n\n \n No\n \n\n\n \n \n b\n \n T\n \n\n \n No\n \n\n\n \n \n sortOrder\n \n SortOrder\n \n\n \n No\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\n\n \n import { SortOrder } from '@shared/domain';\n\nexport class SortHelper {\n\tpublic static genericSortFunction(a: T, b: T, sortOrder: SortOrder): number {\n\t\tlet order: number;\n\n\t\tif (typeof a !== 'undefined' && typeof b === 'undefined') {\n\t\t\torder = 1;\n\t\t} else if (typeof a === 'undefined' && typeof b !== 'undefined') {\n\t\t\torder = -1;\n\t\t} else if (typeof a === 'string' && typeof b === 'string') {\n\t\t\torder = a.localeCompare(b);\n\t\t} else if (typeof a === 'number' && typeof b === 'number') {\n\t\t\torder = a - b;\n\t\t} else {\n\t\t\torder = 0;\n\t\t}\n\n\t\treturn sortOrder === SortOrder.desc ? -order : order;\n\t}\n}\n\n \n\n\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: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 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 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 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 '@modules/authorization';\nimport { LegacySchoolService } from '@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}\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 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 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 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 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 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 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 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 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 \n Optional\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 \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: 'The point in time until when a submission can be handed in.'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:74\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 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 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 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 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 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 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 | null)\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 | null\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 | null {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date | null) {\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 | null;\n}\n\nexport function isSubmissionContainerElement(reference: unknown): reference is SubmissionContainerElement {\n\treturn reference instanceof SubmissionContainerElement;\n}\n\n \n\n\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 | null\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: Date, description: 'The dueDate as date string or null of not set', example: '2023-08-17T14:17:51.958+00:00'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.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 { 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\t\ttype: Date,\n\t\tdescription: 'The dueDate as date string or null of not set',\n\t\texample: '2023-08-17T14:17:51.958+00:00',\n\t})\n\tdueDate: Date | null;\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:83\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:79\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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 | null\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/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({ nullable: true })\n\tdueDate: Date | null;\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 | null;\n}\n\n \n\n\n\n\n\n\n\n\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 | null\n\n \n \n\n\n \n \n Type : Date | null\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 | null {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date | null) {\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 | null;\n}\n\nexport function isSubmissionContainerElement(reference: unknown): reference is SubmissionContainerElement {\n\treturn reference instanceof SubmissionContainerElement;\n}\n\n \n\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: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 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: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/submission-container-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/submission-container-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.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: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 } 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\t\ttype: Date,\n\t\tdescription: 'The dueDate as date string or null of not set',\n\t\texample: '2023-08-17T14:17:51.958+00:00',\n\t})\n\tdueDate: Date | null;\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: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 element\n \n SubmissionContainerElement\n \n\n \n No\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 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({\n\t\t\t\tdueDate: element.dueDate,\n\t\t\t}),\n\t\t});\n\n\t\tif (element.dueDate) {\n\t\t\tresult.content = 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 | null\n\n \n \n\n\n \n \n Type : Date | null\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({ nullable: true })\n\tdueDate: Date | null;\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 | null;\n}\n\n \n\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: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 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 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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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\nexport function isSubmissionItem(reference: unknown): reference is SubmissionItem {\n\treturn reference instanceof SubmissionItem;\n}\n\n \n\n\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\nexport function isSubmissionItem(reference: unknown): reference is SubmissionItem {\n\treturn reference instanceof 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/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 userId\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: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 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: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}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:13\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:16\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({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: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 { TimestampsResponse } from '../timestamps.response';\n\nexport class SubmissionItemResponse {\n\tconstructor({ id, timestamps, completed, userId }: SubmissionItemResponse) {\n\t\tthis.id = id;\n\t\tthis.timestamps = timestamps;\n\t\tthis.completed = completed;\n\t\tthis.userId = userId;\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({ pattern: '[a-f0-9]{24}' })\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/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 mapSubmissionsToResponse\n \n \n Public\n mapToResponse\n \n \n Private\n mapUsersToResponse\n \n \n \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 mapSubmissionsToResponse\n \n \n \n \n \n \n \n mapSubmissionsToResponse(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.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 submissionItem\n \n SubmissionItem\n \n\n \n No\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 Public\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(submissionItems: SubmissionItem[], users: UserBoardRoles[])\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 submissionItems\n \n SubmissionItem[]\n \n\n \n No\n \n\n\n \n \n users\n \n UserBoardRoles[]\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : SubmissionsResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapUsersToResponse\n \n \n \n \n \n \n \n mapUsersToResponse(user: UserBoardRoles)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-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 user\n \n UserBoardRoles\n \n\n \n No\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 { SubmissionItem, UserBoardRoles } from '@shared/domain';\nimport { SubmissionItemResponse, SubmissionsResponse, 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(submissionItems: SubmissionItem[], users: UserBoardRoles[]): SubmissionsResponse {\n\t\tconst submissionItemsResponse: SubmissionItemResponse[] = submissionItems.map((item) =>\n\t\t\tthis.mapSubmissionsToResponse(item)\n\t\t);\n\t\tconst usersResponse: UserDataResponse[] = users.map((user) => this.mapUsersToResponse(user));\n\n\t\tconst response = new SubmissionsResponse(submissionItemsResponse, usersResponse);\n\n\t\treturn response;\n\t}\n\n\tpublic mapSubmissionsToResponse(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\tuserId: submissionItem.userId,\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tprivate mapUsersToResponse(user: UserBoardRoles) {\n\t\tconst result = new UserDataResponse({\n\t\t\tuserId: user.userId,\n\t\t\tfirstName: user.firstName || '',\n\t\t\tlastName: user.lastName || '',\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/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 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 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 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, UnprocessableEntityException } from '@nestjs/common';\n\nimport { EntityId, isSubmissionContainerElement, 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 submissionContainterElement = await this.boardDoRepo.findParentOfId(submissionItem.id);\n\t\tif (!isSubmissionContainerElement(submissionContainterElement)) {\n\t\t\tthrow new UnprocessableEntityException();\n\t\t}\n\n\t\tconst now = new Date();\n\t\tif (submissionContainterElement.dueDate && submissionContainterElement.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 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:16\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 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: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 submissionContainerId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 \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: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 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 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 {\n\tAnyBoardDo,\n\tEntityId,\n\tisSubmissionContainerElement,\n\tisSubmissionItem,\n\tSubmissionItem,\n\tUserBoardRoles,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\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(\n\t\tuserId: EntityId,\n\t\tsubmissionContainerId: EntityId\n\t): Promise {\n\t\tconst submissionContainerElement = await this.elementService.findById(submissionContainerId);\n\n\t\tif (!isSubmissionContainerElement(submissionContainerElement)) {\n\t\t\tthrow new HttpException('Id is not submission container', HttpStatus.UNPROCESSABLE_ENTITY);\n\t\t}\n\n\t\tawait this.checkPermission(userId, submissionContainerElement, Action.read);\n\n\t\tlet submissionItems = submissionContainerElement.children.filter(isSubmissionItem);\n\n\t\tconst boardAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(submissionContainerElement);\n\t\tlet users = boardAuthorizable.users.filter((user) => user.userRoleEnum === UserRoleEnum.STUDENT);\n\n\t\tconst isAuthorizedStudent = await this.isAuthorizedStudent(userId, submissionContainerElement);\n\t\tif (isAuthorizedStudent) {\n\t\t\tsubmissionItems = submissionItems.filter((item) => item.userId === userId);\n\t\t\tusers = [];\n\t\t}\n\n\t\treturn { submissionItems, users };\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 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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/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 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 { Submission, User } from '@shared/domain/entity';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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} else {\n\t\t\tthrow new NotImplementedException('Action is not supported.');\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 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 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 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 '@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 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 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 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 '@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"},"classes/SubmissionsResponse.html":{"url":"classes/SubmissionsResponse.html","title":"class - SubmissionsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionsResponse\n\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/submissions.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 submissionItemsResponse\n \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(submissionItemsResponse: SubmissionItemResponse[], users: UserDataResponse[])\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submissions.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 submissionItemsResponse\n \n \n SubmissionItemResponse[]\n \n \n \n No\n \n \n \n \n users\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 submissionItemsResponse\n \n \n \n \n \n \n Type : SubmissionItemResponse[]\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/submission-item/submissions.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : UserDataResponse[]\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/submission-item/submissions.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 { UserDataResponse } from '../user-data.response';\nimport { SubmissionItemResponse } from './submission-item.response';\n\nexport class SubmissionsResponse {\n\tconstructor(submissionItemsResponse: SubmissionItemResponse[], users: UserDataResponse[]) {\n\t\tthis.submissionItemsResponse = submissionItemsResponse;\n\t\tthis.users = users;\n\t}\n\n\t@ApiProperty({\n\t\ttype: [SubmissionItemResponse],\n\t})\n\tsubmissionItemsResponse: SubmissionItemResponse[];\n\n\t@ApiProperty({\n\t\ttype: [UserDataResponse],\n\t})\n\tusers: 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"},"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 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 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"},"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 '@modules/system/controller/system.controller';\nimport { SystemUc } from '@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 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 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 '@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 '@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"},"entities/SystemEntity.html":{"url":"entities/SystemEntity.html","title":"entity - SystemEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SystemEntity\n\n\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({ nullable: true })\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 SystemEntity 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"},"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 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 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 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 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 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 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 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 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 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 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 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 import { ISystemProperties, LdapConfig, OauthConfig, OidcConfig, SystemEntity } 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(SystemEntity, ({ 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: SystemEntity[])\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 SystemEntity[]\n \n\n \n No\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: SystemEntity)\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 SystemEntity\n \n\n \n No\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 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, SystemEntity } from '@shared/domain';\nimport { OauthConfigDto } from '@modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@modules/system/service/dto/system.dto';\n\nexport class SystemMapper {\n\tstatic mapFromEntityToDto(entity: SystemEntity): 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: SystemEntity[]): 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_providers\n\n\n\ncluster_SystemModule_imports\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 '@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: SystemEntity[])\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 SystemEntity[]\n \n\n \n No\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: SystemEntity)\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 SystemEntity\n \n\n \n No\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 Returns : OidcConfigDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OidcConfig, SystemEntity } from '@shared/domain';\nimport { OidcConfigDto } from '@modules/system/service/dto/oidc-config.dto';\n\nexport class SystemOidcMapper {\n\tstatic mapFromEntityToDto(entity: SystemEntity): 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: SystemEntity[]): 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 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, SystemEntity, SystemTypeEnum } from '@shared/domain';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemOidcMapper } from '@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(SystemEntity.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 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 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 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 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 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 { SystemEntity, 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 SystemEntity;\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(SystemEntity, scope.query);\n\t}\n\n\tasync findAll(): Promise {\n\t\treturn this._em.find(SystemEntity, {});\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 '@modules/system/controller/dto/oauth-config.response';\nimport { OauthConfigDto } from '@modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@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 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 Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SystemEntity } 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 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 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: SystemEntity[])\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 SystemEntity[]\n \n\n \n No\n \n\n\n \n \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 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, SystemEntity, SystemTypeEnum } from '@shared/domain';\nimport { IdentityManagementOauthService } from '@shared/infra/identity-management/identity-management-oauth.service';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemMapper } from '@modules/system/mapper/system.mapper';\nimport { SystemDto } from '@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(SystemEntity.name, { id });\n\t\t}\n\t\treturn SystemMapper.mapFromEntityToDto(system);\n\t}\n\n\tasync findByType(type?: SystemTypeEnum): Promise {\n\t\tlet systems: SystemEntity[];\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: SystemEntity;\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 SystemEntity({\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: SystemEntity[]): 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: SystemEntity;\n\t\treturn systems.map((system) => {\n\t\t\tif (system.oidcConfig && !system.oauthConfig) {\n\t\t\t\tgeneratedSystem = new SystemEntity({\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 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 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, SystemEntity, SystemType, SystemTypeEnum } from '@shared/domain';\nimport { SystemDto } from '@modules/system/service/dto/system.dto';\nimport { SystemService } from '@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(SystemEntity.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 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 '@modules/authorization';\nimport { CopyHelperModule } from '@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 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 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 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 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 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 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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { CopyApiResponse, CopyMapper } from '@modules/copy-helper';\n// invalid import can produce dependency cycles\nimport { serverConfig } from '@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 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 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 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 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 '@modules/copy-helper';\nimport { CopyFilesService } from '@modules/files-storage-client';\nimport { FileUrlReplacement } from '@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 Private\n checkDestinationCourseAuthorisation\n \n \n Private\n checkDestinationLessonAuthorization\n \n \n Private\n checkFeatureEnabled\n \n \n Private\n checkOriginalTaskAuthorization\n \n \n Async\n copyTask\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:11\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 Private\n checkDestinationCourseAuthorisation\n \n \n \n \n \n \n \n checkDestinationCourseAuthorisation(authorizableUser: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.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 authorizableUser\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 Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkDestinationLessonAuthorization\n \n \n \n \n \n \n \n checkDestinationLessonAuthorization(authorizableUser: User, destinationLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.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 authorizableUser\n \n User\n \n\n \n No\n \n\n\n \n \n destinationLesson\n \n LessonEntity\n \n\n \n No\n \n\n\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 checkFeatureEnabled\n \n \n \n \n \n \n \n checkFeatureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:112\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 checkOriginalTaskAuthorization\n \n \n \n \n \n \n \n checkOriginalTaskAuthorization(authorizableUser: User, originalTask: Task)\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 authorizableUser\n \n User\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 \n \n \n Returns : void\n\n \n \n \n \n \n \n \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: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 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 Returns : Promise\n\n \n \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: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 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 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:92\n \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 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)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.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 lessonId\n \n string | undefined\n \n\n \n No\n \n\n\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, Task, LessonEntity, User } from '@shared/domain';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@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.checkFeatureEnabled();\n\n\t\t// i put it to promise all, it do not look like any more information can be expose over errors if it is called between the authorizations\n\t\t// TODO: Add try catch around it with throw BadRequest invalid data\n\t\tconst [authorizableUser, originalTask, destinationCourse]: [User, Task, Course | undefined] = await Promise.all([\n\t\t\tthis.authorisation.getUserWithPermissions(userId),\n\t\t\tthis.taskRepo.findById(taskId),\n\t\t\tthis.getDestinationCourse(parentParams.courseId),\n\t\t]);\n\n\t\tthis.checkOriginalTaskAuthorization(authorizableUser, originalTask);\n\n\t\tif (destinationCourse) {\n\t\t\tthis.checkDestinationCourseAuthorisation(authorizableUser, destinationCourse);\n\t\t}\n\n\t\t// i think getDestinationLesson can also to a promise.all on top\n\t\t// then getCopyName can be put into if (destinationCourse) {\n\t\t// but then the test need to cleanup\n\t\tconst [destinationLesson, copyName]: [LessonEntity | undefined, string | undefined] = await Promise.all([\n\t\t\tthis.getDestinationLesson(parentParams.lessonId),\n\t\t\tthis.getCopyName(originalTask.name, parentParams.courseId),\n\t\t]);\n\n\t\tif (destinationLesson) {\n\t\t\tthis.checkDestinationLessonAuthorization(authorizableUser, destinationLesson);\n\t\t}\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: authorizableUser,\n\t\t\tcopyName,\n\t\t});\n\n\t\treturn status;\n\t}\n\n\tprivate checkOriginalTaskAuthorization(authorizableUser: User, originalTask: Task): void {\n\t\tconst context = AuthorizationContextBuilder.read([]);\n\t\tif (!this.authorisation.hasPermission(authorizableUser, originalTask, context)) {\n\t\t\t// error message and erorr type are not correct\n\t\t\tthrow new NotFoundException('could not find task to copy');\n\t\t}\n\t}\n\n\tprivate checkDestinationCourseAuthorisation(authorizableUser: User, destinationCourse: Course): void {\n\t\tconst context = AuthorizationContextBuilder.write([]);\n\t\tthis.authorisation.checkPermission(authorizableUser, destinationCourse, context);\n\t}\n\n\tprivate checkDestinationLessonAuthorization(authorizableUser: User, destinationLesson: LessonEntity): void {\n\t\tconst context = AuthorizationContextBuilder.write([]);\n\t\tif (!this.authorisation.hasPermission(authorizableUser, destinationLesson, context)) {\n\t\t\tthrow new ForbiddenException('you dont have permission to add to this lesson');\n\t\t}\n\t}\n\n\tprivate async getCopyName(originalTaskName: string, parentCourseId: EntityId | undefined) {\n\t\tlet existingNames: string[] = [];\n\t\tif (parentCourseId) {\n\t\t\t// It should really get an task where the creatorId === '' ?\n\t\t\tconst [existingTasks] = await this.taskRepo.findBySingleParent('', parentCourseId);\n\t\t\texistingNames = existingTasks.map((t) => t.name);\n\t\t}\n\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): 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\n\t\treturn destinationLesson;\n\t}\n\n\tprivate checkFeatureEnabled() {\n\t\t// This is the deprecated way to read envirement variables\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_exports\n\n\n\ncluster_TaskModule_imports\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 '@modules/authorization';\nimport { CopyHelperModule } from '@modules/copy-helper';\nimport { FilesStorageClientModule } from '@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 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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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/modules/authorization/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 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 { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:19\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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { PaginationParams } from '@shared/controller';\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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 (response.error) {\n\t\t\tconst error = JSON.stringify(response.error);\n\t\t\tthrow new Error(error);\n\t\t}\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 '@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 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 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 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 '@modules/authorization';\nimport { LegacySchoolService } from '@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 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 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"},"classes/TooManyPseudonymsLoggableException.html":{"url":"classes/TooManyPseudonymsLoggableException.html","title":"class - TooManyPseudonymsLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TooManyPseudonymsLoggableException\n\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/loggable/too-many-pseudonyms.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(pseudonym: string)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/loggable/too-many-pseudonyms.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 pseudonym\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 \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/pseudonym/loggable/too-many-pseudonyms.loggable-exception.ts:18\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 { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage, LogMessage, ValidationErrorLogMessage } from '@src/core/logger/types';\n\nexport class TooManyPseudonymsLoggableException extends BusinessError implements Loggable {\n\tconstructor(private readonly pseudonym: string) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'PSEUDONYMS_TOO_MANY_PSEUDONYMS_FOUND',\n\t\t\t\ttitle: 'Too many pseudonyms where found.',\n\t\t\t\tdefaultMessage: 'Too many pseudonyms where found.',\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: 'PSEUDONYMS_TOO_MANY_PSEUDONYMS_FOUND',\n\t\t\tmessage: 'Too many pseudonyms where found.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tpseudonym: this.pseudonym,\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/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\nBoardModule\n\nBoardModule\n\nToolApiModule -->\n\nBoardModule->ToolApiModule\n\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\nToolApiModule -->\n\nCommonToolModule->ToolApiModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nToolApiModule -->\n\nLearnroomModule->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\nToolPermissionHelper\n\nToolPermissionHelper\n\nToolApiModule -->\n\nToolPermissionHelper->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 ToolPermissionHelper\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 ToolReferenceController\n \n \n ToolController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n BoardModule\n \n \n CommonToolModule\n \n \n LearnroomModule\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 { AuthorizationModule } from '@modules/authorization';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { UserModule } from '@modules/user';\nimport { Module } from '@nestjs/common';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { BoardModule } from '../board';\nimport { LearnroomModule } from '../learnroom';\nimport { CommonToolModule } from './common';\nimport { ToolPermissionHelper } from './common/uc/tool-permission-helper';\nimport { ToolContextController } from './context-external-tool/controller';\nimport { ToolReferenceController } from './context-external-tool/controller/tool-reference.controller';\nimport { ContextExternalToolUc, ToolReferenceUc } from './context-external-tool/uc';\nimport { ToolConfigurationController, ToolController } from './external-tool/controller';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from './external-tool/mapper';\nimport { ExternalToolConfigurationService } from './external-tool/service';\nimport { ExternalToolConfigurationUc, ExternalToolUc } 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';\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\tLearnroomModule,\n\t\tBoardModule,\n\t],\n\tcontrollers: [\n\t\tToolLaunchController,\n\t\tToolConfigurationController,\n\t\tToolSchoolController,\n\t\tToolContextController,\n\t\tToolReferenceController,\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\tToolPermissionHelper,\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: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 ContextRefParams\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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: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 body\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\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: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 ContextExternalToolIdParams\n \n\n \n No\n \n\n\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: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 params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\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: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 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 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:146\n \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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { 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 { 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\tcurrentUser.schoolId,\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\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\tcurrentUser.schoolId,\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 \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: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 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 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: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 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 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: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 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 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:101\n \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 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:160\n \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 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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { Response } from 'express';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from '../mapper';\nimport { ExternalToolLogoService } from '../service';\nimport { ExternalToolCreate, ExternalToolUc, ExternalToolUpdate } from '../uc';\nimport {\n\tExternalToolCreateParams,\n\tExternalToolIdParams,\n\tExternalToolResponse,\n\tExternalToolSearchListResponse,\n\tExternalToolSearchParams,\n\tExternalToolUpdateParams,\n\tSortExternalToolParams,\n} from './dto';\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 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('/: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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 = {\n\t[ToolLaunchDataType.BASIC]: ToolConfigType.BASIC,\n\t[ToolLaunchDataType.LTI11]: ToolConfigType.LTI11,\n\t[ToolLaunchDataType.OAUTH2]: ToolConfigType.OAUTH2,\n};\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_exports\n\n\n\ncluster_ToolLaunchModule_providers\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\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 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, forwardRef } from '@nestjs/common';\nimport { LearnroomModule } from '@modules/learnroom';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@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\tforwardRef(() => PseudonymModule), // i do not like this solution, the root problem is on other place but not detectable for me\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 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 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: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 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 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 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 { ToolConfigType, ToolConfigurationStatus } from '../../common/enum';\nimport { CommonToolService } from '../../common/service';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\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 { ToolStatusOutdatedLoggableException } from '../error';\nimport { ToolLaunchMapper } from '../mapper';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\nimport {\n\tBasicToolLaunchStrategy,\n\tIToolLaunchStrategy,\n\tLti11ToolLaunchStrategy,\n\tOAuth2ToolLaunchStrategy,\n} from './strategy';\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.findById(schoolExternalToolId);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(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 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 '@modules/authorization';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { ToolLaunchService } from '../service';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\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.findById(\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, courseService: CourseService, boardElementService: ContentElementService, boardService: BoardDoAuthorizableService)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:13\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 courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n boardElementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n boardService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \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: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 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 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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AuthorizationContext, AuthorizationService, ForbiddenLoggableException } from '@modules/authorization';\nimport { AuthorizableReferenceType } from '@modules/authorization/domain';\nimport { BoardDoAuthorizableService, ContentElementService } from '@modules/board';\nimport { CourseService } from '@modules/learnroom';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { BoardDoAuthorizable, Course, EntityId, LegacySchoolDo, User } from '@shared/domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ToolContextType } from '../enum';\n\n@Injectable()\nexport class ToolPermissionHelper {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService)) private readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\t// invalid dependency on this place it is in UC layer in a other module\n\t\t// loading of ressources should be part of service layer\n\t\t// if it must resolve different loadings based on the request it can be added in own service and use in UC\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly boardElementService: ContentElementService,\n\t\tprivate readonly boardService: BoardDoAuthorizableService\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\tconst authorizableUser = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tthis.authorizationService.checkPermission(authorizableUser, contextExternalTool, context);\n\n\t\tif (contextExternalTool.contextRef.type === ToolContextType.COURSE) {\n\t\t\t// loading of ressources should be part of the UC -> unnessasary awaits\n\t\t\tconst course: Course = await this.courseService.findById(contextExternalTool.contextRef.id);\n\n\t\t\tthis.authorizationService.checkPermission(authorizableUser, course, context);\n\t\t} else if (contextExternalTool.contextRef.type === ToolContextType.BOARD_ELEMENT) {\n\t\t\tconst boardElement = await this.boardElementService.findById(contextExternalTool.contextRef.id);\n\n\t\t\tconst board: BoardDoAuthorizable = await this.boardService.getBoardAuthorizable(boardElement);\n\n\t\t\tthis.authorizationService.checkPermission(authorizableUser, board, context);\n\t\t} else {\n\t\t\tthrow new ForbiddenLoggableException(userId, AuthorizableReferenceType.ContextExternalToolEntity, context);\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\t// loading of ressources should be part of the UC -> unnessasary awaits\n\t\tconst [user, school]: [User, LegacySchoolDo] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.schoolService.getSchoolById(schoolExternalTool.schoolId),\n\t\t]);\n\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/context-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/context-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/context-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/context-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/context-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/context-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/context-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"},"controllers/ToolReferenceController.html":{"url":"controllers/ToolReferenceController.html","title":"controller - ToolReferenceController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolReferenceController\n\n\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-reference.controller.ts\n \n\n \n Prefix\n \n \n tools/tool-references\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 getToolReference\n \n \n \n \n \n \n \n Async\n getToolReferencesForContext\n \n \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 getToolReference\n \n \n \n \n \n \n \n getToolReference(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('context-external-tools/:contextExternalToolId')@ApiOperation({summary: 'Get ExternalTool Reference for a given context external tool'})@ApiOkResponse({description: 'The Tool Reference has been successfully fetched.', type: ToolReferenceResponse})@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/context-external-tool/controller/tool-reference.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 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 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 getToolReferencesForContext\n \n \n \n \n \n \n \n getToolReferencesForContext(currentUser: ICurrentUser, params: ContextExternalToolContextParams)\n \n \n\n \n \n Decorators : \n \n @Get('/:contextType/:contextId')@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/context-external-tool/controller/tool-reference.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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param } from '@nestjs/common';\nimport { ApiForbiddenResponse, ApiOkResponse, ApiOperation, ApiTags, ApiUnauthorizedResponse } from '@nestjs/swagger';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { ToolReference } from '../domain';\nimport { ContextExternalToolResponseMapper } from '../mapper';\nimport { ToolReferenceUc } from '../uc';\nimport {\n\tContextExternalToolContextParams,\n\tContextExternalToolIdParams,\n\tToolReferenceListResponse,\n\tToolReferenceResponse,\n} from './dto';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/tool-references')\nexport class ToolReferenceController {\n\tconstructor(private readonly toolReferenceUc: ToolReferenceUc) {}\n\n\t@Get('context-external-tools/:contextExternalToolId')\n\t@ApiOperation({ summary: 'Get ExternalTool Reference for a given context external tool' })\n\t@ApiOkResponse({\n\t\tdescription: 'The Tool Reference has been successfully fetched.',\n\t\ttype: ToolReferenceResponse,\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 getToolReference(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tconst toolReference: ToolReference = await this.toolReferenceUc.getToolReference(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId\n\t\t);\n\n\t\tconst toolReferenceResponse: ToolReferenceResponse =\n\t\t\tContextExternalToolResponseMapper.mapToToolReferenceResponse(toolReference);\n\n\t\treturn toolReferenceResponse;\n\t}\n\n\t@Get('/:contextType/:contextId')\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 getToolReferencesForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolContextParams\n\t): Promise {\n\t\tconst toolReferences: ToolReference[] = await this.toolReferenceUc.getToolReferencesForContext(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextType,\n\t\t\tparams.contextId\n\t\t);\n\n\t\tconst toolReferenceResponses: ToolReferenceResponse[] =\n\t\t\tContextExternalToolResponseMapper.mapToToolReferenceResponses(toolReferences);\n\t\tconst toolReferenceListResponse = new ToolReferenceListResponse(toolReferenceResponses);\n\n\t\treturn toolReferenceListResponse;\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/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-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/context-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 Returns : ToolReference\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ToolConfigurationStatus } from '../../common/enum';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ContextExternalTool, ToolReference } from '../domain';\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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/tool-reference.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 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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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, enumName: 'ToolConfigurationStatusResponse', nullable: false, required: true, description: 'The status of the tool'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/tool-reference.response.ts:28\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\tenumName: '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/ToolReferenceService.html":{"url":"injectables/ToolReferenceService.html","title":"injectable - ToolReferenceService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolReferenceService\n\n\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/tool-reference.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 getToolReference\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, commonToolService: CommonToolService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/tool-reference.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 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 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 Async\n getToolReference\n \n \n \n \n \n \n \n getToolReference(contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/tool-reference.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 contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\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 { ToolConfigurationStatus } from '../../common/enum';\nimport { CommonToolService } from '../../common/service';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolLogoService, ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ContextExternalTool, ToolReference } from '../domain';\nimport { ToolReferenceMapper } from '../mapper';\nimport { ContextExternalToolService } from './context-external-tool.service';\n\n@Injectable()\nexport class ToolReferenceService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly commonToolService: CommonToolService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync getToolReference(contextExternalToolId: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\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(\n\t\t\t'/v3/tools/external-tools/{id}/logo',\n\t\t\texternalTool\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\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/context-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 ensureToolPermissions\n \n \n Async\n getToolReference\n \n \n Async\n getToolReferencesForContext\n \n \n Private\n Async\n tryBuildToolReference\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolService: ContextExternalToolService, toolReferenceService: ToolReferenceService, toolPermissionHelper: ToolPermissionHelper)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.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 contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolReferenceService\n \n \n ToolReferenceService\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 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/context-external-tool/uc/tool-reference.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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReference\n \n \n \n \n \n \n \n getToolReference(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.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 contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReferencesForContext\n \n \n \n \n \n \n \n getToolReferencesForContext(userId: EntityId, contextType: ToolContextType, contextId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.uc.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 contextType\n \n ToolContextType\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 \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 tryBuildToolReference\n \n \n \n \n \n \n \n tryBuildToolReference(userId: EntityId, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\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 '@modules/authorization';\nimport { ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { ContextExternalTool, ContextRef, ToolReference } from '../domain';\nimport { ContextExternalToolService, ToolReferenceService } from '../service';\n\n@Injectable()\nexport class ToolReferenceUc {\n\tconstructor(\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly toolReferenceService: ToolReferenceService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper\n\t) {}\n\n\tasync getToolReferencesForContext(\n\t\tuserId: EntityId,\n\t\tcontextType: ToolContextType,\n\t\tcontextId: EntityId\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\tasync (contextExternalTool: ContextExternalTool) => this.tryBuildToolReference(userId, contextExternalTool)\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 tryBuildToolReference(\n\t\tuserId: EntityId,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\ttry {\n\t\t\tawait this.ensureToolPermissions(userId, contextExternalTool);\n\n\t\t\tconst toolReference: ToolReference = await this.toolReferenceService.getToolReference(\n\t\t\t\tcontextExternalTool.id as string\n\t\t\t);\n\n\t\t\treturn toolReference;\n\t\t} catch (e: unknown) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync getToolReference(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\n\t\tawait this.ensureToolPermissions(userId, contextExternalTool);\n\n\t\tconst toolReference: ToolReference = await this.toolReferenceService.getToolReference(\n\t\t\tcontextExternalTool.id as string\n\t\t);\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\n \n\n\n\n\n\n\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: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 body\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\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:101\n \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 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: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 SchoolExternalToolIdParams\n \n\n \n No\n \n\n\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: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 schoolExternalToolParams\n \n SchoolExternalToolSearchParams\n \n\n \n No\n \n\n\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: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 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 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 { LegacyLogger } from '@src/core/logger';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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"},"classes/ToolStatusResponseMapper.html":{"url":"classes/ToolStatusResponseMapper.html","title":"class - ToolStatusResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolStatusResponseMapper\n\n\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/tool-status-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(status: ToolConfigurationStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/mapper/tool-status-response.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 status\n \n ToolConfigurationStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ToolConfigurationStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ToolConfigurationStatusResponse } from '../../context-external-tool/controller/dto';\nimport { ToolConfigurationStatus } from '../enum';\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\nexport class ToolStatusResponseMapper {\n\tstatic mapToResponse(status: ToolConfigurationStatus): ToolConfigurationStatusResponse {\n\t\treturn statusMapping[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"},"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 | LinkElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody | ExternalToolElementContentBody\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:133\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 AccountParams\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 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 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 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 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 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 Optional\n \n firstName\n \n \n \n Optional\n \n lastName\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 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 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 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\tfirstName?: string;\n\tlastName?: string;\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: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 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 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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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\tSystemEntity,\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 '@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: SystemEntity): 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"},"interfaces/UserData.html":{"url":"interfaces/UserData.html","title":"interface - UserData","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserData\n\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/feathers-roster.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n user_id\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 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 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 import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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, name: RoleName.STUDENT });\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, name: RoleName.TEACHER });\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, name: RoleName.ADMINISTRATOR });\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"},"interfaces/UserGroup.html":{"url":"interfaces/UserGroup.html","title":"interface - UserGroup","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserGroup\n\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/feathers-roster.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_id\n \n \n \n \n name\n \n \n \n \n student_count\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n group_id\n \n \n \n \n \n \n \n \n group_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 student_count\n \n \n \n \n \n \n \n \n student_count: 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 { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/UserGroups.html":{"url":"interfaces/UserGroups.html","title":"interface - UserGroups","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserGroups\n\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/feathers-roster.service.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 import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/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 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"},"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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { OauthModule } from '@modules/oauth';\nimport { ProvisioningModule } from '@modules/provisioning';\nimport { LegacySchoolModule } from '@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 \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 \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()@ApiNoContentResponse({description: 'User login migration was reverted'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:200\n \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 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 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 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:217\n \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 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 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 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 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\tApiNoContentResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { Page, UserLoginMigrationDO } from '@shared/domain';\nimport { Authenticate, CurrentUser, ICurrentUser, JWT } from '@modules/authentication';\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\t@ApiNoContentResponse({ description: 'User login migration was reverted' })\n\tasync closeMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | undefined = await this.closeUserLoginMigrationUc.closeMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tif (userLoginMigration) {\n\t\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration);\n\t\t\treturn migrationResponse;\n\t\t}\n\t\treturn undefined;\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"},"entities/UserLoginMigrationEntity.html":{"url":"entities/UserLoginMigrationEntity.html","title":"entity - UserLoginMigrationEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n UserLoginMigrationEntity\n\n\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 : SystemEntity\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 : SystemEntity\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 { SystemEntity } 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 UserLoginMigrationEntity extends BaseEntityWithTimestamps {\n\t@OneToOne(() => SchoolEntity, undefined, { nullable: false })\n\tschool: SchoolEntity;\n\n\t// undefined, if migrating from 'local'\n\t@ManyToOne(() => SystemEntity, { nullable: true })\n\tsourceSystem?: SystemEntity;\n\n\t@ManyToOne(() => SystemEntity)\n\ttargetSystem: SystemEntity;\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/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 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 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 '@modules/account';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@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: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: IUserLoginMigration)\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 IUserLoginMigration\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : UserLoginMigrationEntity\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: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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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: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 entityDO\n \n UserLoginMigrationDO\n \n\n \n No\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: UserLoginMigrationEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:40\n\n \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 UserLoginMigrationEntity\n \n\n \n No\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 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 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 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 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 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 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 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 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 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 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:19\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, SystemEntity, UserLoginMigrationDO } from '@shared/domain';\nimport { IUserLoginMigration, UserLoginMigrationEntity } 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 UserLoginMigrationEntity;\n\t}\n\n\tentityFactory(props: IUserLoginMigration): UserLoginMigrationEntity {\n\t\treturn new UserLoginMigrationEntity(props);\n\t}\n\n\tasync findBySchoolId(schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationEntity | null = await this._em.findOne(UserLoginMigrationEntity, {\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: UserLoginMigrationEntity): 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(SystemEntity, entityDO.sourceSystemId) : undefined,\n\t\t\ttargetSystem: this._em.getReference(SystemEntity, 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 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 '@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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { UserLoginMigrationDO } from '@shared/domain/domainobject';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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: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 userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \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:180\n \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 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:188\n \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 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: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 \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 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 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 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 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 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 '@modules/legacy-school';\nimport { SystemDto, SystemService } from '@modules/system';\nimport { UserService } from '@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.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 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 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 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 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 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 '@modules/authentication/services/authentication.service';\nimport { Action, AuthorizationService } from '@modules/authorization';\nimport { OAuthTokenDto } from '@modules/oauth';\nimport { OAuthService } from '@modules/oauth/service/oauth.service';\nimport { ProvisioningService } from '@modules/provisioning';\nimport { OauthDataDto } from '@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 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 '@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 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 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"},"interfaces/UserMetdata.html":{"url":"interfaces/UserMetdata.html","title":"interface - UserMetdata","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserMetdata\n\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/feathers-roster.service.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 import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/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 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 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 '@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 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 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 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 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 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 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 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 '@modules/account/services/account.service';\nimport { AccountDto } from '@modules/account/services/dto';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { SystemDto, SystemService } from '@modules/system/service';\nimport { UserService } from '@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_providers\n\n\n\ncluster_UserModule_imports\n\n\n\ncluster_UserModule_exports\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 '@modules/account';\nimport { RoleModule } from '@modules/role/role.module';\nimport { LegacySchoolModule } from '@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/loggable/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/loggable/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/loggable/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 deleteUser\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 deleteUser\n \n \n \n \n \n \n \n deleteUser(userId: EntityId)\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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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/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 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 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 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 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:189\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:173\n \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 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: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 \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 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 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 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\tasync deleteUser(userId: EntityId): Promise {\n\t\tconst deletedUserNumber: Promise = this._em.nativeDelete(User, {\n\t\t\tid: userId,\n\t\t});\n\t\treturn deletedUserNumber;\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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 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 deleteUser\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:20\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: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 language\n \n LanguageType\n \n\n \n No\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 deleteUser\n \n \n \n \n \n \n \n deleteUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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: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 email\n \n string\n \n\n \n No\n \n\n\n \n \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: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 EntityId\n \n\n \n No\n \n\n\n \n \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: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 id\n \n string\n \n\n \n No\n \n\n\n \n \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: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 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 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: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 UserDO\n \n\n \n No\n \n\n\n \n \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 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 [object Object],[object Object],[object Object]\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: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 id\n \n string\n \n\n \n No\n \n\n\n \n \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: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 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: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 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 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: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 UserDO\n \n\n \n No\n \n\n\n \n \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: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 users\n \n UserDO[]\n \n\n \n No\n \n\n\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 { AccountService } from '@modules/account';\nimport { AccountDto } from '@modules/account/services/dto';\n// invalid import\nimport { CurrentUserMapper } from '@modules/authentication/mapper';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\nimport { RoleService } from '@modules/role/service/role.service';\nimport { BadRequestException, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId, IFindOptions, LanguageType, User } from '@shared/domain';\nimport { Page, RoleReference, UserDO } from '@shared/domain/domainobject';\nimport { UserRepo } from '@shared/repo';\nimport { UserDORepo } from '@shared/repo/user/user-do.repo';\nimport { OauthCurrentUser } from '@modules/authentication/interface';\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 use {@link UserService.findById} instead\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\n\t\treturn userDto;\n\t}\n\n\tasync getResolvedUser(userId: EntityId): Promise {\n\t\tconst user: UserDO = await this.findById(userId);\n\t\tconst account: AccountDto = await this.accountService.findByUserIdOrFail(userId);\n\n\t\tconst resolvedUser: OauthCurrentUser = CurrentUserMapper.mapToOauthCurrentUser(account.id, user, account.systemId);\n\n\t\treturn resolvedUser;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst userDO = await this.userDORepo.findById(id, true);\n\n\t\treturn userDO;\n\t}\n\n\tasync save(user: UserDO): Promise {\n\t\tconst savedUser: Promise = this.userDORepo.save(user);\n\n\t\treturn savedUser;\n\t}\n\n\tasync saveAll(users: UserDO[]): Promise {\n\t\tconst savedUsers: Promise = this.userDORepo.saveAll(users);\n\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\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\n\t\treturn user;\n\t}\n\n\tasync findByEmail(email: string): Promise {\n\t\tconst user: Promise = this.userRepo.findByEmail(email);\n\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\tasync deleteUser(userId: EntityId): Promise {\n\t\tconst deletedUserNumber: Promise = this.userRepo.deleteUser(userId);\n\n\t\treturn deletedUserNumber;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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/UsersList.html":{"url":"classes/UsersList.html","title":"class - UsersList","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UsersList\n\n\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\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n firstName\n \n \n id\n \n \n lastName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\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/entity/course.entity.ts:46\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 Defined in apps/server/src/shared/domain/entity/course.entity.ts:44\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/entity/course.entity.ts:48\n \n \n\n\n \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 { ClassEntity } from '@modules/class/entity/class.entity';\nimport { GroupEntity } from '@modules/group/entity/group.entity';\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\tclasses?: ClassEntity[];\n\tgroups?: GroupEntity[];\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\nexport class UsersList {\n\tid!: string;\n\n\tfirstName!: string;\n\n\tlastName!: string;\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\t@ManyToMany(() => ClassEntity, undefined, { fieldName: 'classIds' })\n\tclasses = new Collection(this);\n\n\t@ManyToMany(() => GroupEntity, undefined, { fieldName: 'groupIds' })\n\tgroups = new Collection(this);\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\tthis.classes.set(props.classes || []);\n\t\tthis.groups.set(props.groups || []);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = Course.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = Course.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = Course.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate static 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 getStudentsList(): UsersList[] {\n\t\tconst users = this.students.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getTeachersList(): UsersList[] {\n\t\tconst users = this.teachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getSubstitutionTeachersList(): UsersList[] {\n\t\tconst users = this.substitutionTeachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate static extractUserList(users: User[]): UsersList[] {\n\t\tconst usersList: UsersList[] = users.map((user) => {\n\t\t\treturn {\n\t\t\t\tid: user.id,\n\t\t\t\tfirstName: user.firstName,\n\t\t\t\tlastName: user.lastName,\n\t\t\t};\n\t\t});\n\t\treturn usersList;\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 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_providers\n\n\n\ncluster_VideoConferenceApiModule_imports\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 '@modules/user';\nimport { AuthorizationModule } from '@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: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 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 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: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 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 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: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 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 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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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: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 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 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:92\n \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 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: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 schoolId\n \n string\n \n\n \n No\n \n\n\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 '@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\t/* need to be replace with\n\t\tconst [authorizableUser, scopeRessource]: [User, TeamEntity | Course] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.videoConferenceService.loadScopeRessources(scopeId, scope),\n\t\t]);\n\t\t*/\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: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 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 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: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 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 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: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 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 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, ICurrentUser } from '@modules/authentication';\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 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 '@modules/video-conference/error/error-status.enum';\nimport { UserService } from '@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\t/* need to be replace with\n\t\tconst [authorizableUser, scopeRessource]: [User, TeamEntity | Course] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.videoConferenceService.loadScopeRessources(scopeId, scope),\n\t\t]);\n\t\t*/\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 \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\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 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: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 scope\n \n ScopeRef\n \n\n \n No\n \n\n\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 '@modules/video-conference/error/error-status.enum';\nimport { UserService } from '@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\t/* need to be replace with\n\t\tconst [authorizableUser, scopeRessource]: [User, TeamEntity | Course] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.videoConferenceService.loadScopeRessources(scopeId, scope),\n\t\t]);\n\t\t*/\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 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 '@modules/video-conference/error/error-status.enum';\nimport { UserService } from '@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: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 videoConferenceInfo\n \n VideoConferenceInfo\n \n\n \n No\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: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 videoConferenceJoin\n \n VideoConferenceJoin\n \n\n \n No\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: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 VideoConferenceCreateParams\n \n\n \n No\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: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 state\n \n VideoConferenceState\n \n\n \n No\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 } from '@shared/domain';\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\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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nVideoConferenceModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\nimport { TeamsRepo } from '@shared/repo';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { LoggerModule } from '@src/core/logger';\nimport { ConverterUtil } from '@shared/common';\nimport { UserModule } from '@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\tAuthorizationReferenceModule, // can be removed wenn video-conference-deprecated is removed\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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"},"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 clamscan : ^2.1.2\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.2.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 open-graph-scraper : ^6.2.2\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"},"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.\nExample :Root-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\nExample : 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.\nExample : 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.\nExample : 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:\nExample :a) 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:\nExample :a) 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:\nExample :a) 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.\nExample : 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.\nExample :\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 AuthorizationReferenceModule\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 PreviewGeneratorAMQPModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n PreviewGeneratorConsumerModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n PreviewGeneratorProducerModule\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 PseudonymApiModule\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\nExample :docker 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:\nExample :docker 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.\nExample : 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.\nExample :@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\nExample :@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.\nExample :src/ // 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.\nExample :// 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.\nExample :// 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.\nExample : // 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.\nExample : @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.\nExample :export 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}\nExample :import { 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\nExample :[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\nExample : 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:\nExample :try {\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.\nExample :export 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}Example :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:\nExample :public 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.\nExample :// 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.\nExample :describe('[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.\nExample : // 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\nExample : // 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.\nExample : // 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.\nExample : 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\nExample :let 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.\nExample :describe('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\nExample : 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.\nExample : 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\nExample :BC-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\nExample :BC-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:\nExample :docker 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:\nExample :docker 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\nExample :docker 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:\nExample :docker 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:\nExample :docker run \\\n --name sc-openldap-single \\\n -p 389:389 \\\n ghcr.io/hpi-schul-cloud/sc-openldap-single:latestExample :docker 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:\nExample :curl -X POST \\\n  'http://localhost:3030/api/v1/sync?target=ldap' \\\n  --header 'Accept: */*' \\\n  --header 'X-API-KEY: example'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':\nExample :npx 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.\nExample :docker run --name rocket-chat-mongodb -m=256m -p27030:27017 -d docker.io/mongo --replSet rs0 --oplogSize 10Start mongoDB console and execute\nExample :rs.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)\nExample :docker 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\nExample :ROCKETCHAT_SERVICE_ENABLED=true\nROCKET_CHAT_URI=\"http://localhost:3000\"\nROCKET_CHAT_ADMIN_USER=admin\nROCKET_CHAT_ADMIN_PASSWORD=huhudBildungscloud Legacy Client\nExample :ROCKETCHAT_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.\nExample :Root-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\nExample : this.authorizationService.checkPermission(user, course, AuthorizationContextBuilder.write([])\n // or\n this.authorizationService.hasPermission(user, course, AuthorizationContextBuilder.write([])\n // next orchestration stepsExample 2 - Set Permission(s) of User as Required\nExample :// 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\nExample :/** 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\nExample :async 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 await this.schoolService.save(school);\n\n return true;\n}\nExample - Create user by admin\nExample :\nasync createUserByAdmin(userId: EntityId, params: { email: string, firstName: string, lastName: string, schoolId: EntityId }) {\n\n const user = this.authorizationService.getUserWithPermissions(userId);\n \n const context = AuthorizationContextBuilder.write([Permission.INSTANCE, Permission.CREATE_USER])\n await this.authorizationService.checkPermission(user, school, context);\n\n const newUser = new User(params)\n await this.userService.save(newUser);\n\n return true;\n}\nExample - Edit course by admin\nExample :// 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 const school = course.school;\n\n const context = AuthorizationContextBuilder.write([Permission.INSTANCE, Permission.CREATE_USER]);\n this.authorizationService.checkPermissions(user, school, context);\n\n course.description = params.description;\n await this.courseService.save(course);\n\n return true;\n}\nExample - Create a Course\nExample :// 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 await this.courseService.saveCourse(course);\n\n return course;\n}\nExample - Create a Lesson\nExample :// 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 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\nExample :@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\nIt should be use only inside of the authorization module.\nIt is use to load registrated ressouces by the id and name of the ressource.\nThis is needed to solve the API requests from external services. (API implementation is missing for now)\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:\nExample :export 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.\nExample :// 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.232,1,5.947]],["body/classes/AbstractAccountService.html",[0,0.17,1,6.537,2,0.557,3,0.012,4,0.012,5,0.006,6,4.991,7,0.075,8,0.903,9,6.718,10,3.016,11,6.259,12,3.423,13,5.433,14,6.537,15,6.537,16,6.537,17,6.537,18,3.776,19,6.537,20,6.537,21,6.537,22,6.909,23,6.909,24,6.909,25,6.537,26,2.963,27,0.542,28,4.991,29,1.029,30,0.001,31,0.736,32,0.179,33,0.635,34,1.271,35,1.59,36,2.991,37,6.259,38,4.991,39,2.412,40,3.608,41,4.991,42,5.433,43,4.991,44,6.537,45,4.991,46,6.537,47,0.955,48,4.222,49,3.914,50,4.991,51,5.431,52,3.543,53,5.433,54,6.537,55,2.75,56,5.364,57,4.991,58,3.22,59,2.328,60,6.537,61,4.991,62,2.929,63,6.909,64,7.79,65,4.991,66,6.874,67,6.537,68,4.991,69,6.537,70,4.436,71,4.991,72,3.386,73,6.909,74,6.037,75,7.474,76,6.909,77,4.757,78,5.044,79,6.537,80,6.537,81,6.909,82,7.016,83,2.741,84,4.991,85,5.781,86,6.909,87,4.496,88,4.991,89,6.909,90,4.991,91,6.909,92,8.282,93,4.991,94,2.424,95,0.115,96,1.365,97,2.159,98,2.959,99,0.833,100,1.671,101,0.008,102,3.751,103,0,104,0]],["title/injectables/AbstractLaunchStrategy.html",[105,0.91,106,5.694]],["body/injectables/AbstractLaunchStrategy.html",[0,0.094,3,0.007,4,0.007,5,0.003,7,0.042,8,0.565,9,4.88,26,1.943,27,0.468,29,0.888,30,0.001,31,0.645,32,0.161,33,0.548,35,1.348,36,2.431,39,1.916,47,0.897,95,0.148,99,0.463,101,0.005,103,0,104,0,105,0.626,106,3.916,107,0.669,108,6.692,109,11.521,110,2.427,111,2.538,112,2.539,113,5.301,114,5.301,115,4.09,116,3.589,117,5.301,118,4.09,119,4.09,120,4.09,121,4.09,122,3.916,123,3.916,124,4.09,125,5.301,126,5.301,127,0.348,128,2.241,129,4.415,130,6.184,131,2.774,132,3.017,133,2.427,134,10.446,135,5.301,136,7.334,137,5.905,138,2.043,139,6.87,140,6.598,141,2.774,142,2.427,143,6.223,144,2.755,145,2.762,146,6.289,147,2.774,148,2.19,149,4.09,150,3.469,151,6.948,152,2.774,153,2.427,154,2.776,155,8.109,156,2.774,157,4.09,158,4.21,159,2.774,160,8.108,161,4.09,162,2.774,163,2.65,164,4.09,165,0.622,166,2.774,167,2.23,168,4.09,169,2.774,170,3.916,171,3.916,172,2.774,173,4.09,174,2.774,175,6.525,176,4.09,177,2.774,178,5.747,179,2.427,180,5.301,181,7.038,182,2.774,183,2.427,184,6.948,185,4.024,186,2.774,187,0.401,188,2.239,189,2.592,190,2.062,191,1.538,192,1.806,193,5.301,194,1.816,195,4.091,196,1.976,197,1.743,198,1.348,199,1.049,200,1.888,201,3.084,202,2.427,203,4.09,204,0.941,205,2.241,206,1.412,207,3.916,208,1.036,209,1.545,210,3.061,211,2.323,212,3.916,213,2.774,214,0.875,215,0.886,216,0.865,217,1.682,218,6.577,219,2.774,220,2.774,221,2.319,222,2.774,223,2.774,224,2.774,225,2.774,226,2.774,227,1.104,228,4.676,229,2.774,230,2.774,231,3.36,232,2.774,233,2.774,234,1.488,235,1.566,236,2.744,237,2.774,238,2.615,239,4.676,240,1.923,241,4.323,242,2.565,243,2.774,244,2.565,245,2.774,246,2.774,247,2.375,248,2.774,249,2.774,250,2.323,251,2.774,252,2.774,253,2.565,254,2.427,255,2.427,256,2.427,257,2.774,258,2.774,259,2.774,260,2.774,261,2.774,262,2.774,263,6.061,264,2.547,265,2.774,266,4.676,267,2.774,268,2.774,269,2.774,270,2.427,271,2.774,272,2.774,273,2.774,274,2.427,275,5.301,276,2.241,277,3.698,278,3.563,279,2.017,280,2.774,281,2.062,282,2.774,283,2.774,284,2.527,285,2.774,286,2.565,287,2.774,288,5.603,289,2.774,290,3.557,291,2.565,292,2.774,293,2.774,294,4.676,295,2.774,296,4.676,297,2.774,298,2.172,299,2.774,300,2.774,301,2.774,302,2.565,303,2.774,304,2.774,305,1.727,306,2.774,307,2.938,308,2.774,309,5.536,310,2.323,311,2.427,312,2.323,313,2.565,314,2.323,315,2.427,316,1.976,317,2.565,318,2.062,319,1.398,320,2.774,321,2.323,322,2.565,323,2.241,324,2.323,325,2.323,326,2.062,327,2.565,328,2.565,329,2.774,330,2.774,331,2.977,332,2.774,333,2.774]],["title/interfaces/AcceptConsentRequestBody.html",[334,0.731,335,5.694]],["body/interfaces/AcceptConsentRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,32,0.186,33,0.681,47,0.993,55,2.611,95,0.114,101,0.015,103,0.001,104,0.001,138,4.847,165,0.869,334,0.951,335,9.293,336,2.118,337,6.183,338,8.182,339,6.579,340,7.149,341,11.749,342,11.116,343,11.749,344,9.952,345,9.952,346,8.09,347,2.452,348,7.263,349,5.974,350,7.412,351,4.441,352,7.741,353,7.149]],["title/interfaces/AcceptLoginRequestBody.html",[334,0.731,354,5.493]],["body/interfaces/AcceptLoginRequestBody.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.184,33,0.686,47,1.004,55,2.619,77,8.109,101,0.015,103,0.001,104,0.001,165,0.873,199,4.815,334,0.957,336,2.132,337,6.224,338,8.236,340,7.197,344,9.976,345,9.976,347,2.459,354,9.001,355,3.58,356,11.142,357,11.142,358,11.777,359,4.239]],["title/classes/AcceptQuery.html",[0,0.232,360,5.493]],["body/classes/AcceptQuery.html",[0,0.396,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,27,0.394,30,0.001,32,0.13,95,0.161,101,0.016,103,0.001,104,0.001,165,0.912,347,2.355,355,4.678,360,9.404,361,6.454,362,9.565,363,7.989,364,1.742,365,9.565,366,6.511,367,5.551,368,4.561,369,2.584,370,3.835,371,3.21,372,9.565,373,6.241,374,3.053,375,4.434,376,2.188,377,7.734,378,9.565,379,2.168]],["title/entities/Account.html",[94,3.303,380,1.445]],["body/entities/Account.html",[0,0.225,3,0.016,4,0.016,5,0.008,7,0.171,27,0.538,30,0.001,32,0.18,33,0.667,39,3.051,47,0.917,48,5.34,49,4.682,51,5.1,82,8.222,83,3.467,87,5.269,94,4.447,95,0.135,96,2.504,97,2.86,101,0.015,103,0.001,104,0.001,165,0.822,216,1.223,240,4.194,347,1.852,351,5.269,364,2.379,369,3.061,370,4.237,371,2.525,380,1.945,381,2.2,382,6.613,383,6.872,384,8.482,385,7.087,386,7.328,387,6.613,388,6.613,389,6.613,390,6.613,391,6.613,392,6.613,393,6.613,394,5.215,395,6.613,396,5.179,397,6.613,398,1.948,399,3.632,400,2.918,401,8.463,402,2.741,403,4.328,404,1.192,405,1.762,406,2.151,407,5.342,408,6.113,409,6.113,410,6.113,411,5.039,412,5.538,413,6.113,414,6.113,415,3.574,416,4.21,417,4.807,418,5.179,419,6.113,420,6.113,421,5.179,422,5.538,423,5.784,424,6.113]],["title/modules/AccountApiModule.html",[425,1.812,426,5.493]],["body/modules/AccountApiModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,30,0.001,95,0.173,99,1.424,101,0.014,103,0.001,104,0.001,187,1.234,425,3.176,426,11.407,427,3.082,428,3.316,429,3.414,430,3.399,431,3.385,432,4.386,433,4.098,434,8.532,435,8.532,436,8.532,437,9.423,438,6.199,439,12.232,440,11.081,441,7.931,442,4.339,443,3.343,444,3.263,445,7.887,446,5.361,447,4.494,448,10.425,449,4.302,450,3.505,451,8.532,452,8.532,453,7.887,454,8.532]],["title/classes/AccountByIdBodyParams.html",[0,0.232,455,5.947]],["body/classes/AccountByIdBodyParams.html",[0,0.352,2,0.884,3,0.019,4,0.019,5,0.01,7,0.12,27,0.475,30,0.001,31,0.579,32,0.156,33,0.627,47,0.87,51,5.591,87,6.512,95,0.157,101,0.013,103,0.001,104,0.001,165,0.81,234,2.107,347,2.092,364,2.097,368,5.084,369,2.88,370,4.275,371,3.578,373,5.544,374,2.53,376,1.813,379,2.608,383,7.533,455,9.045,456,10.217,457,7.928,458,7.928,459,10.342,460,5.948,461,3.066,462,7.928,463,7.928,464,7.928,465,7.928,466,7.928,467,3.201,468,8.354,469,3.48,470,4.815,471,4.945,472,5.351,473,9.56,474,6.639,475,3.875,476,6.639]],["title/classes/AccountByIdParams.html",[0,0.232,477,5.947]],["body/classes/AccountByIdParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.289,47,0.84,94,5.721,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,456,9.864,467,3.09,470,4.927,477,10.301,478,6.943,479,7.248,480,9.013]],["title/controllers/AccountController.html",[448,5.947,481,2.611]],["body/controllers/AccountController.html",[0,0.116,3,0.008,4,0.008,5,0.004,7,0.052,8,0.67,10,1.377,27,0.393,29,0.747,30,0.001,31,0.534,32,0.189,33,0.461,34,1.622,35,1.517,36,2.491,87,4.784,94,6.396,95,0.129,100,1.142,101,0.006,103,0,104,0,112,2.762,163,3.575,185,4.911,187,0.493,215,1.089,216,0.631,227,0.988,264,3.396,290,2.001,364,1.736,367,5.54,368,3.167,376,0.78,379,3.14,403,4.591,439,6.484,447,1.414,448,4.853,453,3.153,455,7.069,461,2.657,477,9.735,481,1.31,482,3.411,483,1.626,484,6.135,485,6.135,486,7.015,487,7.015,488,8.082,489,7.015,490,3.411,491,6.216,492,3.411,493,4.228,494,6.277,495,10.923,496,4.422,497,8.082,498,7.973,499,8.116,500,3.808,501,7.015,502,7.209,503,7.245,504,8.044,505,8.812,506,7.604,507,9.896,508,7.015,509,8.091,510,8.28,511,5.624,512,3.411,513,6.332,514,3.411,515,3.411,516,3.411,517,3.411,518,7.069,519,3.411,520,6.333,521,6.528,522,6.329,523,5.549,524,5.115,525,3.411,526,5.549,527,3.411,528,3.411,529,4.143,530,7.069,531,3.411,532,5.549,533,4.853,534,5.13,535,2.975,536,6.135,537,5.549,538,2.5,539,3.411,540,4.034,541,3.411,542,3.411,543,5.328,544,3.411,545,3.411,546,3.411,547,7.069,548,3.411,549,4.814,550,3.411,551,3.411,552,2.201,553,6.09,554,8.196,555,1.773,556,1.814,557,3.411,558,1.636,559,3.411,560,3.411,561,1.829,562,3.411,563,5.713,564,4.757,565,4.752,566,3.411,567,3.411,568,3.411,569,2.341,570,3.411,571,2.143,572,3.411,573,2.599,574,1.497,575,2.044,576,3.132,577,1.925,578,3.153,579,3.411,580,3.411,581,3.411,582,3.411,583,3.411,584,3.411,585,3.411,586,3.411,587,3.411,588,3.411,589,3.411]],["title/classes/AccountDto.html",[0,0.232,66,4.387]],["body/classes/AccountDto.html",[0,0.231,2,0.757,3,0.016,4,0.016,5,0.008,7,0.103,26,2.547,27,0.565,29,0.532,30,0.001,31,0.38,32,0.186,33,0.677,34,1.811,39,2.511,47,0.857,48,4.394,51,4.529,64,10.839,66,7.751,82,7.302,83,3.797,87,4.679,94,3.299,95,0.12,99,1.133,101,0.011,103,0.001,104,0.001,127,0.851,165,0.73,216,2.429,347,1.374,351,4.679,364,2.421,383,6.103,384,7.532,385,6.293,404,1.68,405,2.485,471,2.753,590,6.792,591,4.628,592,4.824,593,7.809,594,6.792,595,2.274,596,4.156,597,6.792,598,6.792,599,6.792,600,6.278,601,6.792,602,7.809,603,6.792,604,8.62,605,6.792,606,6.792,607,6.792,608,6.278,609,6.792,610,8.62,611,6.792,612,6.792,613,6.792,614,5.94,615,6.792,616,6.792,617,3.765,618,2.777,619,3.765,620,4.382,621,5.174,622,4.382,623,5.174]],["title/classes/AccountEntityToDtoMapper.html",[0,0.232,624,5.694]],["body/classes/AccountEntityToDtoMapper.html",[0,0.269,2,0.881,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.474,29,0.9,30,0.001,31,0.643,32,0.156,33,0.556,34,1.343,35,1.391,39,2.126,48,3.721,51,3.836,55,2.475,66,8.52,82,6.183,87,3.963,94,6.686,95,0.132,98,6.812,99,1.318,101,0.013,103,0.001,104,0.001,217,1.342,227,1.191,234,1.282,351,3.963,380,2.588,383,5.168,384,6.379,385,5.33,403,5.168,591,3.432,592,3.577,624,8.639,625,9.839,626,7.896,627,4.155,628,10.315,629,10.315,630,8.332,631,10.315,632,7.896,633,10.315,634,7.896,635,7.3,636,8.639,637,7.896,638,6.613,639,5.74,640,7.896,641,7.3,642,6.907,643,5.623,644,6.907,645,7.3,646,7.3,647,6.907,648,6.613,649,7.896,650,7.3,651,7.3,652,7.896,653,10.315,654,7.896,655,7.896,656,7.896,657,7.3]],["title/classes/AccountFactory.html",[0,0.232,658,5.493]],["body/classes/AccountFactory.html",[0,0.158,2,0.516,3,0.011,4,0.011,5,0.006,7,0.07,8,0.853,26,2.03,27,0.534,29,1.023,30,0.001,31,0.703,32,0.18,33,0.607,34,1.848,35,1.445,39,1.901,47,0.504,48,2.182,49,4.056,51,3.43,55,2.434,59,3.211,87,2.323,94,2.249,95,0.123,99,0.773,101,0.014,103,0,104,0,127,0.58,138,3.084,144,3.204,148,1.425,165,0.553,185,4.879,216,1.306,217,1.342,227,0.888,234,1.146,305,1.319,319,3.482,359,2.462,366,2.589,379,1.94,380,2.191,381,2.349,401,4.28,404,1.272,461,2.358,538,3.182,569,3.177,596,3.876,627,2.167,658,6.914,659,4.63,660,7.18,661,4.566,662,5.404,663,7.061,664,7.061,665,3.985,666,5.404,667,5.658,668,3.985,669,3.985,670,3.985,671,3.914,672,4.386,673,4.831,674,6.21,675,5.715,676,7.004,677,2.637,678,7.061,679,4.63,680,7.061,681,4.63,682,2.613,683,3.985,684,2.637,685,5.054,686,5.218,687,4.082,688,4.906,689,3.949,690,2.613,691,2.463,692,4.059,693,2.544,694,2.502,695,2.613,696,4.978,697,2.637,698,4.745,699,2.613,700,7.172,701,4.119,702,6.575,703,2.637,704,4.238,705,2.613,706,2.637,707,2.613,708,2.637,709,2.613,710,2.947,711,2.745,712,2.613,713,6.023,714,2.637,715,2.613,716,3.985,717,3.727,718,3.985,719,2.637,720,2.523,721,2.502,722,2.064,723,2.613,724,2.613,725,2.613,726,2.637,727,2.637,728,1.771,729,2.613,730,2.637,731,2.79,732,2.613,733,2.637,734,2.637,735,2.689,736,2.745,737,4.232,738,3.671,739,4.63,740,4.049,741,4.63,742,7.061,743,4.63,744,3.365,745,4.28,746,4.63,747,4.63]],["title/injectables/AccountIdmToDtoMapper.html",[105,0.91,748,5.493]],["body/injectables/AccountIdmToDtoMapper.html",[0,0.33,3,0.023,4,0.023,5,0.012,7,0.147,8,1.419,9,6.184,27,0.4,29,0.76,30,0.001,31,0.543,32,0.132,33,0.469,35,1.175,66,8.149,78,7.926,94,4.713,95,0.162,99,1.619,101,0.016,103,0.001,104,0.001,105,1.571,107,2.339,187,1.403,625,9.486,630,9.486,636,9.835,638,8.126,748,9.486,749,9.703,750,10.601,751,9.703]],["title/classes/AccountIdmToDtoMapperDb.html",[0,0.232,752,5.947]],["body/classes/AccountIdmToDtoMapperDb.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,8,1.352,27,0.37,29,0.702,30,0.001,31,0.502,32,0.122,33,0.434,34,1.526,35,1.086,39,2.415,48,4.226,51,4.356,66,8.24,78,7.552,83,2.744,94,5.435,95,0.157,99,1.497,101,0.015,103,0.001,104,0.001,217,1.167,227,0.93,234,1.817,404,2.016,591,3.898,592,4.063,593,7.511,596,2.736,625,7.245,630,9.038,636,9.37,638,7.511,639,6.52,643,6.387,748,10.315,750,10.315,752,9.786,753,8.969,754,8.291,755,8.291,756,10.667,757,10.343,758,8.291,759,7.844,760,7.844]],["title/classes/AccountIdmToDtoMapperIdm.html",[0,0.232,761,5.947]],["body/classes/AccountIdmToDtoMapperIdm.html",[0,0.307,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.355,27,0.371,29,0.706,30,0.001,31,0.505,32,0.122,33,0.436,34,1.532,35,1.091,39,2.426,48,4.245,51,4.376,66,8.253,78,7.573,83,2.756,94,5.45,95,0.157,99,1.503,101,0.015,103,0.001,104,0.001,145,2.281,217,1.172,227,0.934,234,1.822,404,2.022,591,3.916,592,4.081,593,7.545,596,2.748,625,7.277,630,9.063,636,9.397,638,7.545,639,6.549,643,6.415,748,10.331,750,10.331,754,8.328,755,8.328,756,10.688,757,10.372,759,7.88,760,7.88,761,9.814,762,9.009]],["title/injectables/AccountLookupService.html",[105,0.91,763,5.694]],["body/injectables/AccountLookupService.html",[0,0.184,3,0.013,4,0.013,5,0.007,7,0.082,8,0.957,26,2.521,27,0.387,29,0.735,30,0.001,31,0.526,32,0.128,33,0.454,34,2.426,35,1.251,36,2.216,47,0.565,49,4.896,78,5.347,94,3.848,95,0.148,99,0.901,101,0.009,103,0,104,0,105,1.06,107,1.301,111,1.588,112,2.536,127,0.992,167,4.234,187,0.781,200,4.041,216,1.465,217,1.031,221,1.834,227,1.193,234,1.286,235,5.834,264,3.329,359,2.762,369,1.758,379,2.126,569,7.897,639,3.925,694,5.587,734,5.345,763,6.634,764,9.556,765,5.399,766,4.324,767,11.274,768,5.437,769,7.692,770,7.231,771,9.556,772,9.041,773,5.043,774,7.094,775,4.857,776,7.922,777,6.203,778,5.347,779,5.889,780,7.922,781,6.929,782,10.064,783,6.974,784,6.219,785,7.922,786,7.323,787,5.399,788,8.35,789,7.782,790,5.399,791,7.922,792,7.922,793,5.399,794,10.337,795,6.338,796,12.196,797,10.337,798,6.495,799,7.323,800,5.399,801,3.136,802,3.925,803,3.35,804,4.228,805,4.361,806,3.225,807,7.323,808,4.722,809,7.922,810,5.399,811,5.399,812,5.399]],["title/modules/AccountModule.html",[425,1.812,437,4.842]],["body/modules/AccountModule.html",[0,0.228,3,0.016,4,0.016,5,0.008,30,0.001,95,0.176,99,1.118,101,0.011,103,0.001,104,0.001,187,0.969,206,3.41,227,0.958,234,1.5,369,1.487,425,2.818,427,2.421,428,2.604,429,2.681,430,2.67,431,2.659,432,3.891,433,3.996,437,10.148,438,5.79,440,10.35,441,7.408,442,3.697,443,2.626,444,2.563,449,3.666,450,2.753,687,2.856,748,8.541,752,8.081,761,8.081,763,10.35,789,6.92,801,3.892,802,4.871,803,4.158,804,5.248,813,6.701,814,6.701,815,6.701,816,6.701,817,9.678,818,10.285,819,11.807,820,9.984,821,10.81,822,12.359,823,8.984,824,6.701,825,6.701,826,5.861,827,6.701,828,6.701,829,10.574,830,6.701,831,6.701,832,6.701,833,6.195,834,6.701,835,6.701,836,3.892,837,4.772,838,6.701,839,3.195]],["title/interfaces/AccountParams.html",[334,0.731,840,5.694]],["body/interfaces/AccountParams.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,26,2.404,30,0.001,32,0.125,33,0.548,47,0.9,48,5.61,49,4.462,51,5.783,94,6.592,95,0.153,99,1.105,101,0.015,103,0.001,104,0.001,111,1.837,116,3.273,165,0.718,185,4.906,192,2.731,217,1.7,227,1.235,334,1.129,336,1.585,404,1.194,461,3.056,627,3.653,658,5.351,734,3.774,840,9.498,841,5.794,842,5.794,843,5.004,844,4.175,845,4.815,846,4.717,847,5.794,848,8.076,849,5.047,850,9.617,851,4.371,852,4.371,853,4.73,854,4.599,855,10.314,856,5.547,857,5.794,858,8.017,859,5.794,860,5.794,861,5.794,862,8.801,863,8.017,864,8.017,865,5.547,866,9.192,867,9.192,868,5.794,869,8.017,870,8.017,871,5.547,872,5.794,873,8.017,874,6.527,875,5.547]],["title/injectables/AccountRepo.html",[105,0.91,820,5.493]],["body/injectables/AccountRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.055,8,0.709,10,2.37,11,4.918,12,2.69,13,4.269,14,5.136,15,5.136,16,5.136,17,5.136,18,2.967,19,5.136,20,5.136,26,2.767,27,0.524,29,0.987,30,0.001,31,0.699,32,0.171,33,0.603,34,1.887,35,1.525,36,2.84,37,4.918,39,2.785,40,1.766,42,4.269,44,5.136,46,5.136,47,0.845,48,3.967,49,5.038,51,5.222,52,2.784,53,4.269,54,5.136,55,2.758,56,5.987,58,6.351,60,5.136,62,2.147,67,5.136,69,5.136,70,5.324,85,2.361,94,5.649,95,0.126,96,1.606,97,1.582,99,0.611,101,0.006,102,1.836,103,0,104,0,105,0.786,107,0.882,111,1.475,112,3.039,144,2.023,148,1.807,187,0.529,217,1.2,221,1.949,227,1.206,234,1.497,247,3.857,264,1.538,319,2.516,347,1.488,369,0.812,371,1.009,379,0.829,380,1.789,381,1.953,398,1.078,404,1.058,461,1.926,596,2.568,692,4.345,704,1.812,771,9.561,808,3.2,820,4.744,876,3.659,877,6.069,878,4.103,879,7.783,880,7.356,881,5.429,882,7.356,883,2.491,884,2.767,885,5.605,886,5.872,887,3.659,888,3.659,889,3.659,890,5.136,891,3.659,892,3.659,893,3.659,894,4.269,895,3.659,896,3.659,897,3.659,898,3.659,899,5.872,900,3.659,901,3.659,902,8.42,903,3.659,904,3.659,905,3.063,906,3.659,907,4.03,908,2.243,909,2.27,910,2.243,911,2.27,912,2.605,913,2.243,914,2.27,915,2.028,916,3.659,917,3.659,918,3.659,919,2.787,920,5.872,921,4.365,922,4.918,923,3.659,924,3.659,925,3.659,926,3.659,927,3.659,928,3.659,929,3.2,930,5.872,931,3.659,932,3.659,933,3.659,934,3.659,935,3.064,936,3.659,937,3.659,938,2.66,939,3.659,940,3.382,941,7.356,942,3.659,943,3.659,944,3.382,945,3.2,946,2.395,947,3.382,948,2.787,949,3.659,950,2.865,951,2.787,952,3.659,953,2.395,954,2.72,955,3.659,956,2.395,957,2.028,958,3.064,959,3.2,960,2.511,961,3.659,962,3.659,963,3.659,964,2.511]],["title/classes/AccountResponse.html",[0,0.232,499,5.493]],["body/classes/AccountResponse.html",[0,0.283,2,0.928,3,0.02,4,0.02,5,0.01,7,0.126,27,0.542,29,0.652,30,0.001,31,0.466,32,0.179,33,0.646,34,2.185,39,3.459,47,0.937,51,6.24,83,3.264,95,0.107,101,0.014,103,0.001,104,0.001,127,1.337,165,0.836,347,2.158,364,2.34,376,1.903,383,8.409,407,6.721,415,4.497,423,7.277,467,3.641,499,10.378,592,5.82,618,3.403,622,5.369,965,8.32,966,4.233,967,8.32,968,8.32,969,8.32,970,8.32,971,8.32,972,8.32]],["title/classes/AccountResponseMapper.html",[0,0.232,973,6.286]],["body/classes/AccountResponseMapper.html",[0,0.294,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.32,27,0.451,29,0.856,30,0.001,31,0.612,32,0.149,33,0.529,34,1.859,35,1.323,39,2.943,51,5.309,66,8.13,94,6.448,95,0.154,99,1.442,101,0.014,103,0.001,104,0.001,227,1.134,234,1.775,383,7.154,499,10.891,592,4.952,625,9.685,627,4.074,639,7.946,641,10.105,642,7.558,643,7.784,644,9.561,973,10.105,974,5.124,975,6.06,976,10.931,977,10.931,978,6.981,979,10.931,980,6.584,981,8.642,982,4.308,983,7.237]],["title/classes/AccountSaveDto.html",[0,0.232,64,5.324]],["body/classes/AccountSaveDto.html",[0,0.287,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,26,2.587,27,0.553,29,0.461,30,0.001,31,0.329,32,0.182,33,0.678,34,1.676,39,2.652,47,0.92,48,4.641,51,4.784,64,8.917,82,7.713,83,3.819,87,4.943,95,0.138,99,0.981,101,0.01,103,0,104,0,127,0.736,165,0.66,216,2.35,347,1.705,351,4.943,364,2.423,373,4.518,374,1.877,383,6.447,384,7.957,385,6.648,405,2.246,407,4.75,408,5.435,409,5.435,410,5.435,411,4.48,412,4.924,413,5.435,414,5.435,415,3.178,416,3.743,417,4.274,418,4.604,419,5.435,420,5.435,421,4.604,422,4.924,423,5.143,424,5.435,468,6.807,469,2.581,470,4.5,471,5.434,472,3.968,474,4.924,475,2.874,476,4.924,591,4.281,592,4.462,593,8.249,595,1.969,600,5.435,602,7.058,604,9.945,608,5.435,610,9.106,614,5.143,618,2.404,619,3.259,620,3.794,621,4.48,622,3.794,623,4.48,984,13.495,985,5.88,986,8.427,987,5.88,988,5.88,989,5.88,990,5.88,991,5.88,992,5.88,993,5.88,994,5.88,995,5.88,996,5.88,997,5.88,998,5.88,999,7.249,1000,4.38,1001,5.051,1002,5.88,1003,5.88,1004,5.88]],["title/classes/AccountSearchListResponse.html",[0,0.232,536,5.947]],["body/classes/AccountSearchListResponse.html",[0,0.268,2,0.877,3,0.019,4,0.019,5,0.009,7,0.119,27,0.52,29,0.616,30,0.001,31,0.441,32,0.184,33,0.61,55,3.024,56,6.212,59,3.205,70,6.412,95,0.147,101,0.013,103,0.001,104,0.001,127,0.985,145,1.992,163,3.885,165,0.806,364,2.215,376,1.799,404,1.854,456,8.617,467,2.699,469,3.453,499,10.656,536,8.999,596,3.71,1005,7.327,1006,5.495,1007,8.088,1008,6.998,1009,5.861,1010,7.271,1011,3.974,1012,7.271,1013,5.252,1014,3.751,1015,4.399,1016,2.762,1017,5.495,1018,6.639,1019,5.976,1020,5.148,1021,4.184,1022,5.495,1023,5.495,1024,7.866,1025,4.942,1026,4.36]],["title/classes/AccountSearchQueryParams.html",[0,0.232,530,5.947]],["body/classes/AccountSearchQueryParams.html",[0,0.351,2,0.879,3,0.019,4,0.019,5,0.01,7,0.119,27,0.502,30,0.001,32,0.182,33,0.589,47,0.735,55,2.472,56,5.506,70,5.101,94,3.828,95,0.156,101,0.013,103,0.001,104,0.001,144,3.63,165,0.807,247,3.088,319,3.079,364,2.217,368,4.769,369,2.701,370,4.01,371,3.356,374,2.515,376,1.803,379,2.335,404,1.856,456,9.612,467,3.011,469,3.46,470,4.309,479,5.859,530,9.011,533,9.011,596,3.143,905,3.282,907,7.071,1005,8.994,1014,3.758,1020,5.158,1027,7.881,1028,8.824,1029,12.63,1030,7.881,1031,3.228,1032,7.881,1033,7.881,1034,7.285,1035,5.506,1036,6.6,1037,6.004,1038,7.285,1039,7.881,1040,7.285,1041,4.408,1042,6.6,1043,7.881,1044,3.781,1045,7.881]],["title/injectables/AccountServiceDb.html",[105,0.91,821,5.947]],["body/injectables/AccountServiceDb.html",[0,0.112,1,10.885,3,0.008,4,0.008,5,0.004,7,0.05,8,0.652,10,2.179,11,4.522,12,2.473,13,3.925,14,4.723,15,4.723,16,4.723,17,4.723,18,2.729,19,4.723,20,4.723,21,4.723,22,4.992,23,4.992,24,4.992,25,4.723,26,2.858,27,0.513,29,0.975,30,0.001,31,0.697,32,0.169,33,0.602,34,1.348,35,1.492,36,2.89,37,4.522,39,2.133,40,2.607,42,3.925,44,4.723,46,4.723,47,0.909,48,4.118,49,3.898,51,5.021,54,4.723,55,2.371,56,4.96,58,2.129,60,4.723,62,1.936,63,4.992,64,6.204,66,5.639,67,4.723,69,4.723,70,3.923,81,4.992,82,6.844,83,2.097,85,4.423,86,4.992,87,4.386,89,4.992,91,4.992,92,6.337,94,5.477,95,0.141,96,0.902,97,1.427,98,1.956,99,0.551,100,1.105,101,0.006,103,0,104,0,105,0.722,107,0.795,111,1.986,112,3.04,127,0.413,144,0.907,145,1.736,167,1.987,187,0.477,206,1.679,215,1.053,216,0.999,217,1.604,221,3.033,227,1.291,234,1.608,247,2.116,305,1.538,319,0.986,351,1.656,383,2.159,384,2.665,385,2.227,404,0.973,406,1.073,510,2.398,511,1.667,558,1.583,596,3.676,624,2.763,635,6.337,643,3.845,644,2.886,645,3.05,646,3.05,647,4.723,648,6.635,650,3.05,657,7.324,763,8.296,764,7.324,786,4.992,799,4.992,820,7.581,821,4.723,826,2.886,833,3.05,894,3.925,907,2.264,983,2.763,1046,3.299,1047,5.4,1048,3.05,1049,3.299,1050,3.299,1051,3.299,1052,5.4,1053,3.299,1054,3.299,1055,3.299,1056,3.299,1057,3.299,1058,3.299,1059,3.299,1060,3.299,1061,3.299,1062,3.299,1063,3.299,1064,3.299,1065,3.299,1066,3.299,1067,3.299,1068,2.763,1069,2.886,1070,3.299,1071,10.7,1072,5.4,1073,9.907,1074,8.74,1075,3.299,1076,3.299,1077,4.992,1078,3.299,1079,3.299,1080,3.299,1081,3.299,1082,5.4,1083,2.665,1084,5.4,1085,5.4,1086,5.4,1087,5.4,1088,5.4,1089,5.4,1090,5.4,1091,5.4,1092,5.4,1093,5.4,1094,8.74,1095,7.923,1096,6.855,1097,3.299,1098,3.299,1099,3.299,1100,3.299,1101,5.4,1102,3.299,1103,3.299,1104,3.299,1105,3.299,1106,3.299,1107,2.305,1108,3.299,1109,3.299,1110,3.299]],["title/injectables/AccountValidationService.html",[105,0.91,819,5.947]],["body/injectables/AccountValidationService.html",[0,0.225,3,0.016,4,0.016,5,0.008,7,0.1,8,1.106,26,2.924,27,0.467,29,0.888,30,0.001,31,0.635,32,0.154,33,0.548,35,1.271,36,2.639,39,3.463,47,0.931,48,5.34,49,2.602,59,3.271,85,8.143,94,4.447,95,0.153,99,1.104,101,0.011,103,0.001,104,0.001,105,1.225,107,1.594,111,1.326,112,2.878,127,0.828,167,2.434,187,0.956,215,2.111,217,1.475,221,2.43,227,1.089,284,3.574,380,1.405,403,4.328,441,7.564,450,2.716,624,5.538,639,4.807,642,5.784,691,3.518,819,8.007,820,9.943,826,5.784,853,5.419,905,4.719,1048,6.113,1077,6.113,1111,6.613,1112,9.155,1113,9.155,1114,9.155,1115,6.613,1116,9.155,1117,6.613,1118,9.155,1119,6.613,1120,9.155,1121,6.613,1122,6.613,1123,6.613,1124,6.113,1125,3.921,1126,5.179,1127,4.21,1128,5.538,1129,3.804,1130,6.113,1131,6.113,1132,6.613,1133,6.613,1134,6.613,1135,6.613,1136,6.113,1137,9.155,1138,9.155,1139,6.613,1140,6.613,1141,4.055,1142,3.063,1143,6.613,1144,6.613,1145,6.613,1146,6.613,1147,9.155,1148,6.613,1149,9.155,1150,6.613]],["title/interfaces/AdminIdAndToken.html",[334,0.731,1151,5.493]],["body/interfaces/AdminIdAndToken.html",[0,0.195,3,0.008,4,0.008,5,0.004,7,0.054,30,0.001,31,0.464,32,0.123,34,1.809,36,2.801,39,3.429,47,1.005,51,4.02,55,1.553,72,2.598,83,1.754,87,3.619,95,0.106,101,0.014,103,0,104,0,105,0.767,111,2.394,112,2.879,116,3.901,127,0.445,148,1.093,165,0.449,187,0.514,204,1.946,216,1.06,217,1.384,221,2.248,227,1.368,234,1.475,305,2.587,334,0.775,336,0.85,347,1.964,351,5.337,359,1.238,369,0.788,404,0.64,461,1.65,535,3.866,543,4.211,564,2.102,692,1.327,701,1.256,720,1.936,728,2.758,731,4.455,839,1.694,853,1.833,874,4.084,953,4.72,1016,2.906,1035,2.482,1151,8.59,1152,2.869,1153,2.975,1154,5.038,1155,2.063,1156,6.306,1157,2.325,1158,2.782,1159,2.706,1160,4.49,1161,3.936,1162,4.49,1163,4.49,1164,4.49,1165,4.632,1166,1.704,1167,3.152,1168,2.975,1169,2.975,1170,2.975,1171,2.975,1172,2.975,1173,2.975,1174,2.582,1175,2.975,1176,2.975,1177,2.975,1178,2.292,1179,7.606,1180,1.529,1181,2.869,1182,2.397,1183,2.482,1184,1.969,1185,2.53,1186,2.975,1187,5.377,1188,5.314,1189,5.314,1190,5.621,1191,6.284,1192,7.914,1193,6.555,1194,6.039,1195,2.706,1196,2.975,1197,2.975,1198,2.482,1199,2.975,1200,2.975,1201,2.975,1202,2.782,1203,2.975,1204,5.647,1205,2.869,1206,2.975,1207,2.975,1208,2.975,1209,2.869,1210,2.975,1211,2.975,1212,2.975,1213,8.558,1214,2.975,1215,2.975,1216,1.392,1217,2.975,1218,2.975,1219,2.975,1220,2.975,1221,2.975,1222,2.975,1223,2.975,1224,2.975,1225,8.134,1226,8.134,1227,2.975,1228,2.975,1229,2.975,1230,2.975,1231,2.975,1232,2.975,1233,2.438,1234,2.975,1235,2.975,1236,2.975,1237,2.975,1238,2.975,1239,2.975,1240,2.975,1241,2.975,1242,2.975,1243,2.975,1244,2.975,1245,2.975,1246,2.975,1247,2.975,1248,4.369,1249,4.369,1250,2.975,1251,2.975,1252,2.975,1253,2.975,1254,2.975,1255,2.397,1256,2.975,1257,2.975,1258,2.975,1259,4.802,1260,2.975,1261,4.802,1262,4.802,1263,2.975,1264,2.975,1265,2.706,1266,6.039,1267,4.791,1268,4.421,1269,2.975,1270,3.4,1271,5.269,1272,4.369,1273,5.647,1274,6.039,1275,6.039,1276,6.039,1277,2.782,1278,2.975,1279,2.975,1280,2.975,1281,7.606,1282,6.039,1283,6.039,1284,6.039,1285,2.975,1286,4.802,1287,4.802,1288,2.975,1289,2.975,1290,2.975,1291,2.975,1292,2.975,1293,4.802,1294,4.49]],["title/modules/AntivirusModule.html",[425,1.812,1295,5.694]],["body/modules/AntivirusModule.html",[0,0.292,3,0.02,4,0.02,5,0.01,8,1.035,27,0.353,29,0.671,30,0.001,31,0.48,32,0.116,33,0.414,35,1.037,95,0.161,101,0.014,103,0.001,104,0.001,187,1.239,217,1.115,227,1.127,234,1.391,336,2.051,371,2.363,425,3.182,427,3.095,432,3.153,433,3.238,627,3.336,701,3.029,836,6.315,837,6.102,1295,10.001,1296,8.568,1297,6.228,1298,7.462,1299,10.146,1300,8.568,1301,7.934,1302,10.05,1303,7.494,1304,10.445,1305,8.568,1306,8.568,1307,6.102,1308,5.193,1309,8.568,1310,6.921,1311,8.568,1312,5.317,1313,7.494,1314,5.529,1315,7.494,1316,11.942,1317,10.872,1318,7.494,1319,8.568,1320,8.568,1321,8.568,1322,6.709,1323,5.986,1324,8.568,1325,8.568,1326,8.568]],["title/interfaces/AntivirusModuleOptions.html",[334,0.731,1299,5.493]],["body/interfaces/AntivirusModuleOptions.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.182,47,1.021,55,2.624,101,0.02,103,0.001,104,0.001,165,0.875,204,3.036,334,1.309,336,2.142,347,2.656,1299,9.026,1308,7.959,1310,10.608,1312,8.149,1314,8.474,1323,8.915,1327,7.827,1328,10.686,1329,7.229,1330,5.696,1331,5.857,1332,5.857]],["title/injectables/AntivirusService.html",[105,0.91,1304,5.947]],["body/injectables/AntivirusService.html",[0,0.209,3,0.015,4,0.015,5,0.007,7,0.093,8,1.05,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,35,1.221,36,1.864,47,0.939,95,0.159,101,0.01,103,0,104,0,105,1.163,107,1.48,111,2.41,112,2.649,116,3.744,127,1.089,145,3.13,150,2.126,167,3.198,187,0.888,204,2.083,216,1.865,217,1.564,221,2.012,227,0.901,234,1.638,305,2.476,336,1.469,351,5.063,369,2.239,371,1.693,576,3.465,701,3.567,784,4.697,839,2.928,1302,10.141,1303,5.37,1304,7.601,1329,8.862,1330,6.983,1331,4.018,1332,4.018,1333,6.14,1334,8.691,1335,7.278,1336,7.601,1337,4.959,1338,8.936,1339,10.088,1340,6.14,1341,8.691,1342,6.893,1343,6.14,1344,5.688,1345,2.436,1346,8.691,1347,6.14,1348,8.691,1349,6.14,1350,7.812,1351,4.289,1352,3.962,1353,4.195,1354,4.372,1355,4.808,1356,4.959,1357,5.676,1358,3.908,1359,4.678,1360,4.808,1361,6.14,1362,10.088,1363,6.14,1364,6.14,1365,10.088,1366,6.14,1367,6.14,1368,6.14,1369,4.736,1370,5.774,1371,7.601,1372,6.14,1373,6.14,1374,8.691,1375,6.14,1376,8.691,1377,6.14,1378,6.14,1379,6.14,1380,5.37,1381,6.14,1382,6.14,1383,5.37,1384,5.37,1385,6.14,1386,6.14,1387,6.14,1388,6.14,1389,6.14,1390,6.14,1391,6.14]],["title/interfaces/AntivirusServiceOptions.html",[334,0.731,1329,5.493]],["body/interfaces/AntivirusServiceOptions.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.175,47,1.019,55,1.989,101,0.021,103,0.001,104,0.001,165,0.893,204,3.134,334,1.328,336,2.21,347,2.681,1299,7.461,1308,8.033,1310,10.706,1312,8.224,1314,8.552,1323,6.453,1327,8.078,1328,7.735,1329,9.204,1330,5.879,1331,6.045,1332,6.045]],["title/classes/ApiValidationError.html",[0,0.232,1392,4.589]],["body/classes/ApiValidationError.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.542,29,0.605,30,0.001,31,0.433,32,0.185,33,0.55,35,0.936,47,0.811,55,1.665,95,0.131,101,0.013,103,0.001,104,0.001,127,0.968,165,0.797,187,1.118,204,4.259,216,2.517,364,2.286,404,1.833,406,2.514,503,7.407,564,2.834,596,3.931,722,3.446,798,4.857,1013,5.533,1016,2.714,1142,5.266,1180,3.327,1216,4.455,1392,6.865,1393,10.172,1394,7.73,1395,8.269,1396,6.882,1397,4.045,1398,7.237,1399,7.73,1400,7.73,1401,9.944,1402,4.988,1403,4.285,1404,4.988,1405,4.988,1406,4.988,1407,4.988,1408,4.988,1409,4.633,1410,4.363,1411,6.053,1412,6.473,1413,7.146,1414,5.689,1415,6.237,1416,4.857,1417,6.053]],["title/classes/ApiValidationErrorResponse.html",[0,0.232,1418,5.947]],["body/classes/ApiValidationErrorResponse.html",[0,0.222,2,0.726,3,0.015,4,0.015,5,0.008,7,0.098,8,1.093,27,0.528,29,0.709,30,0.001,31,0.507,32,0.184,33,0.544,35,0.788,47,0.914,55,1.401,95,0.145,101,0.011,103,0.001,104,0.001,111,2.087,127,0.815,144,2.49,148,2.786,165,0.709,187,0.941,204,4.014,216,2.437,217,1.355,309,3.742,319,2.705,379,2.051,394,3.707,404,1.631,503,7.703,558,3.121,565,4.512,577,3.672,596,3.608,1016,3.178,1142,5.479,1180,2.8,1216,4.409,1392,8.266,1396,5.93,1397,3.768,1401,9.105,1409,7.679,1414,5.063,1415,7.703,1418,7.917,1419,11.254,1420,6.506,1421,7.567,1422,6.729,1423,7.365,1424,9.052,1425,9.052,1426,9.052,1427,9.105,1428,6.506,1429,6.506,1430,5.311,1431,5.157,1432,6.506,1433,3.989,1434,6.506,1435,5.691,1436,6.506,1437,6.015,1438,4.198,1439,6.015,1440,9.052,1441,11.254,1442,6.506,1443,6.506,1444,6.506,1445,6.506,1446,6.506,1447,6.506,1448,9.052,1449,6.506,1450,6.506,1451,6.506,1452,6.506,1453,6.506,1454,6.506,1455,6.506,1456,6.506,1457,6.506]],["title/interfaces/AppStartInfo.html",[334,0.731,1458,5.947]],["body/interfaces/AppStartInfo.html",[0,0.287,3,0.025,4,0.02,5,0.01,7,0.127,30,0.001,32,0.17,33,0.638,47,0.977,55,2.552,95,0.108,101,0.014,103,0.001,104,0.001,145,3,163,3.31,165,0.842,214,2.656,215,2.689,216,1.558,217,1.096,227,0.874,334,0.905,336,2.016,549,5.782,1021,4.481,1216,3.301,1323,8.721,1458,10.363,1459,7.788,1460,7.369,1461,11.28,1462,10.918,1463,10.918,1464,4.954,1465,5.551,1466,9.408,1467,2.689,1468,7.056,1469,4.172,1470,7.788,1471,9.943,1472,7.788,1473,9.943,1474,7.788,1475,9.943,1476,7.788,1477,5.436,1478,7.788]],["title/classes/AppStartLoggable.html",[0,0.232,1468,5.694]],["body/classes/AppStartLoggable.html",[0,0.292,2,0.955,3,0.028,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.671,30,0.001,31,0.48,32,0.116,33,0.414,35,1.037,47,0.852,55,1.846,95,0.11,101,0.014,103,0.001,104,0.001,127,1.073,145,3.024,163,3.346,214,3.428,215,2.735,216,1.584,217,1.115,227,0.888,334,0.921,549,5.881,1021,6.352,1216,3.357,1323,5.986,1458,10.986,1459,11.04,1460,7.494,1461,9.509,1462,7.494,1463,7.494,1464,5.5,1465,6.163,1466,9.509,1467,2.735,1468,9.105,1469,6.22,1470,7.921,1471,10.05,1472,7.921,1473,10.05,1474,7.921,1475,10.05,1476,7.921,1477,5.529,1478,7.921,1479,8.568,1480,8.568,1481,8.568]],["title/interfaces/AppendedAttachment.html",[334,0.731,1482,5.055]],["body/interfaces/AppendedAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.503,47,1.013,77,5.722,101,0.015,103,0.001,104,0.001,165,0.878,334,1.461,336,2.151,404,2.369,1482,9.075,1483,6.848,1484,9.5,1485,10.019,1486,6.848,1487,5.027,1488,8.329,1489,6.534,1490,6.848,1491,6.534,1492,9.075,1493,6.848,1494,8.329,1495,8.537,1496,8.537,1497,8.329,1498,6.791,1499,6.682,1500,6.682,1501,6.848,1502,6.848]],["title/modules/AuthenticationApiModule.html",[425,1.812,1503,5.324]],["body/modules/AuthenticationApiModule.html",[0,0.317,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.345,425,3.303,427,3.36,428,3.614,429,3.721,430,3.705,431,3.69,432,4.561,433,4.325,442,4.579,443,3.644,444,3.556,446,5.843,447,4.743,449,4.54,1503,10.833,1504,9.3,1505,9.3,1506,9.3,1507,8.983,1508,11.323,1509,9.3,1510,10.842,1511,9.3,1512,9.3,1513,8.597]],["title/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.232,1514,5.493]],["body/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.288,2,0.943,3,0.02,4,0.02,5,0.01,7,0.128,27,0.544,29,0.663,30,0.001,31,0.474,32,0.179,33,0.409,47,0.969,95,0.109,101,0.014,103,0.001,104,0.001,127,1.06,165,0.845,405,2.874,595,2.833,1142,6.402,1514,10.431,1515,13.418,1516,10.973,1517,8.46,1518,8.454,1519,9.59,1520,10.384,1521,10.384,1522,10.785,1523,8.46,1524,8.46,1525,9.97,1526,8.46,1527,8.46,1528,7.821,1529,7.085,1530,6.289,1531,7.821,1532,8.46,1533,8.46,1534,8.46,1535,8.46,1536,8.46,1537,8.46,1538,8.46,1539,7.4,1540,8.46]],["title/modules/AuthenticationModule.html",[425,1.812,1507,4.517]],["body/modules/AuthenticationModule.html",[0,0.189,3,0.013,4,0.013,5,0.007,30,0.001,32,0.076,95,0.176,101,0.009,103,0,104,0,187,0.803,217,1.364,234,0.902,305,1.583,425,2.542,427,2.007,428,2.159,429,2.223,430,2.213,431,2.204,432,3.51,433,3.605,437,8.276,438,5.445,441,6.966,442,3.237,443,2.177,444,2.125,449,3.209,450,2.282,783,3.367,802,4.038,803,3.447,817,9.101,823,8.449,1422,4.13,1467,1.773,1507,9.472,1541,5.555,1542,5.555,1543,5.555,1544,5.555,1545,9.388,1546,9.101,1547,8.64,1548,8.12,1549,9.699,1550,10.166,1551,9.388,1552,9.733,1553,10.166,1554,8.12,1555,10.166,1556,10.166,1557,5.555,1558,5.555,1559,9.539,1560,4.859,1561,8.089,1562,4.13,1563,4.859,1564,4.233,1565,5.555,1566,4.488,1567,3.813,1568,8.72,1569,11.136,1570,4.13,1571,4.653,1572,4.859,1573,4.653,1574,5.136,1575,5.136,1576,4.859,1577,5.555,1578,5.555,1579,5.555,1580,5.555,1581,3.956,1582,4.35,1583,3.636,1584,5.136,1585,5.555,1586,4.859,1587,5.136,1588,3.881,1589,5.136,1590,5.555,1591,5.555,1592,5.555,1593,4.653,1594,5.555,1595,5.555,1596,5.555,1597,5.555,1598,5.555,1599,5.555,1600,5.555,1601,5.555,1602,3.881,1603,5.555,1604,5.555,1605,3.294,1606,5.555,1607,9.539,1608,5.555,1609,4.233,1610,5.555,1611,5.136,1612,5.555,1613,3.447,1614,5.555,1615,4.653,1616,5.555,1617,5.555,1618,3.227,1619,5.136,1620,5.555,1621,5.555]],["title/interfaces/AuthenticationResponse.html",[334,0.731,1622,5.947]],["body/interfaces/AuthenticationResponse.html",[0,0.178,3,0.012,4,0.012,5,0.006,7,0.079,30,0.001,32,0.071,36,1.119,47,0.978,51,3.752,55,1.124,87,3.876,94,3.752,95,0.131,99,0.871,101,0.009,103,0,104,0,111,2.473,112,1.15,116,3.54,163,2.831,165,0.605,167,1.92,185,2.028,187,0.755,204,1.77,216,1.701,217,1.797,221,1.208,227,1.336,234,1.651,247,3.027,305,2.201,334,0.561,336,1.249,347,1.055,359,1.819,363,4.917,483,2.488,543,5.783,576,7.471,643,3.715,740,6.756,905,2.172,946,3.415,1016,3.229,1277,6.049,1345,2.07,1414,2.918,1605,6.436,1622,8.893,1623,4.823,1624,4.823,1625,7.551,1626,9.399,1627,6.756,1628,4.823,1629,4.823,1630,3.793,1631,4.563,1632,4.823,1633,4.369,1634,4.823,1635,4.823,1636,4.563,1637,6.756,1638,4.823,1639,3.321,1640,4.823,1641,4.823,1642,3.715,1643,4.563,1644,4.369,1645,4.214,1646,2.918,1647,6.686,1648,8.503,1649,4.823,1650,4.823,1651,7.141,1652,7.141,1653,4.823,1654,10.507,1655,4.823,1656,4.823,1657,10.034,1658,10.034,1659,11.6,1660,4.823,1661,4.823,1662,10.034,1663,4.823,1664,9.399,1665,4.823,1666,4.823,1667,7.703,1668,4.823,1669,4.823,1670,4.823,1671,4.823,1672,4.823,1673,4.823,1674,4.823,1675,4.823,1676,7.141,1677,4.823,1678,4.563,1679,4.823,1680,3.975,1681,7.141,1682,4.823,1683,4.823,1684,4.823,1685,7.141,1686,4.823,1687,7.141,1688,4.823,1689,4.823,1690,7.141,1691,4.823,1692,4.823,1693,4.823,1694,7.141,1695,3.321,1696,4.823,1697,4.823,1698,4.823,1699,4.823,1700,4.823,1701,4.823,1702,4.823,1703,4.823,1704,4.823,1705,4.823]],["title/injectables/AuthenticationService.html",[105,0.91,1549,5.055]],["body/injectables/AuthenticationService.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.925,21,6.698,27,0.496,29,0.943,30,0.001,31,0.674,32,0.167,33,0.582,34,0.877,35,1.418,36,2.581,47,0.98,48,5.333,51,3.72,59,1.606,66,6.97,73,4.767,74,4.166,77,3.283,83,1.578,87,2.588,94,5.497,95,0.168,101,0.009,103,0,104,0,105,1.024,107,1.243,111,2.027,112,2.833,127,0.959,145,1.306,148,2.357,167,3.362,187,0.746,216,1.869,217,1.473,221,2.5,227,1.048,231,2.859,234,1.754,305,2.182,369,1.145,403,3.375,461,1.18,504,5.012,647,4.511,789,7.669,801,2.996,804,4.038,818,8.928,1136,4.767,1423,3.375,1549,5.693,1551,9.465,1560,4.511,1564,3.929,1570,3.834,1575,4.767,1576,4.511,1605,3.058,1625,3.426,1630,3.749,1695,3.283,1706,5.157,1707,7.658,1708,7.658,1709,7.08,1710,7.658,1711,7.658,1712,7.658,1713,5.157,1714,11.318,1715,5.157,1716,7.658,1717,5.157,1718,7.658,1719,7.917,1720,5.157,1721,7.08,1722,5.157,1723,7.658,1724,5.157,1725,7.658,1726,5.157,1727,7.658,1728,5.157,1729,5.157,1730,7.658,1731,5.157,1732,3.834,1733,4.166,1734,3.834,1735,4.511,1736,4.511,1737,7.658,1738,3.749,1739,5.567,1740,4.511,1741,4.319,1742,4.319,1743,7.153,1744,3.603,1745,5.157,1746,5.157,1747,5.157,1748,4.767,1749,6.791,1750,3.397,1751,5.157,1752,5.157,1753,5.157,1754,5.157,1755,7.08,1756,5.157,1757,7.658,1758,7.658,1759,5.157,1760,7.658,1761,4.767,1762,5.157,1763,3.749,1764,4.511,1765,7.08,1766,5.157,1767,5.157,1768,5.157,1769,5.157,1770,2.996,1771,5.157,1772,4.038,1773,5.157,1774,5.157,1775,5.157]],["title/classes/AuthenticationValues.html",[0,0.232,1776,6.286]],["body/classes/AuthenticationValues.html",[0,0.326,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,27,0.518,29,0.751,30,0.001,31,0.537,32,0.171,33,0.464,47,0.932,101,0.016,103,0.001,104,0.001,108,7.592,127,1.201,165,0.913,405,3.107,595,3.21,1776,12.382,1777,13.07,1778,9.588,1779,12.563,1780,12.563,1781,11.659,1782,9.588,1783,9.588,1784,9.588,1785,9.588,1786,9.588]],["title/interfaces/AuthorizableObject.html",[334,0.731,1787,3.949]],["body/interfaces/AuthorizableObject.html",[0,0.33,3,0.023,4,0.023,5,0.012,9,4.572,26,2.677,30,0.001,34,1.998,95,0.125,101,0.02,103,0.001,104,0.001,116,3.658,208,3.625,214,3.059,217,1.263,227,1.218,334,1.042,336,2.322,405,2.586,595,3.932,661,4.078,692,4.718,1787,7.335,1788,8.97,1789,8.487,1790,4.097,1791,9.835,1792,8.97,1793,6.261,1794,10.856]],["title/interfaces/AuthorizationContext.html",[334,0.731,1795,3.675]],["body/interfaces/AuthorizationContext.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.163,95,0.154,99,1.676,101,0.017,103,0.001,104,0.001,165,0.939,334,1.079,336,2.403,843,5.858,1795,6.479,1796,8.783,1797,9.283,1798,7.917,1799,8.045,1800,10.042]],["title/classes/AuthorizationContextBuilder.html",[0,0.232,1801,4.075]],["body/classes/AuthorizationContextBuilder.html",[0,0.279,2,0.915,3,0.019,4,0.019,5,0.01,7,0.124,8,1.277,27,0.482,29,0.916,30,0.001,31,0.655,32,0.168,33,0.566,35,1.416,95,0.136,99,1.369,101,0.014,103,0.001,104,0.001,111,2.346,199,4.949,217,1.523,227,1.213,627,4.185,667,5.011,843,6.068,1795,7.201,1798,7.618,1799,7.49,1801,6.337,1802,12.358,1803,8.202,1804,6.408,1805,7.024,1806,10.572,1807,8.202,1808,10.572,1809,8.202,1810,10.572,1811,8.202,1812,10.572,1813,5.841,1814,5.629]],["title/classes/AuthorizationError.html",[0,0.232,1815,6.286]],["body/classes/AuthorizationError.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.542,29,0.605,30,0.001,31,0.433,32,0.185,33,0.55,35,0.936,47,0.919,55,1.665,59,3.168,95,0.131,101,0.013,103,0.001,104,0.001,127,0.968,165,0.797,187,1.118,204,4.259,216,2.517,364,2.286,404,1.833,406,2.514,564,2.834,596,3.931,1013,5.533,1016,2.714,1142,5.266,1180,5.199,1216,4.918,1395,8.269,1396,7.484,1397,4.045,1398,7.237,1402,4.988,1403,4.285,1404,4.988,1405,4.988,1406,4.988,1407,4.988,1408,4.988,1409,4.633,1410,4.363,1411,6.053,1416,4.857,1798,4.363,1815,9.403,1816,7.73,1817,7.965,1818,7.73,1819,7.73,1820,4.797,1821,6.761,1822,7.146]],["title/injectables/AuthorizationHelper.html",[105,0.91,1823,4.219]],["body/injectables/AuthorizationHelper.html",[0,0.207,3,0.014,4,0.014,5,0.007,7,0.092,8,1.042,27,0.475,29,0.965,30,0.001,31,0.646,32,0.167,33,0.558,35,1.396,47,0.926,95,0.129,96,1.662,101,0.01,103,0,104,0,105,1.154,107,1.464,111,2.011,116,4.133,187,0.879,217,1.639,227,1.278,247,2.38,347,2.591,369,1.348,371,2.379,380,2.618,398,1.79,461,3.161,496,4.869,692,4.704,738,3.158,806,3.512,1345,2.41,1750,5.465,1799,7.764,1823,5.353,1824,6.075,1825,8.626,1826,10.478,1827,8.626,1828,7.974,1829,8.626,1830,8.626,1831,10.03,1832,12.591,1833,6.075,1834,7.974,1835,6.075,1836,8.626,1837,6.075,1838,7.974,1839,6.075,1840,8.626,1841,10.918,1842,6.075,1843,4.089,1844,3.641,1845,5.616,1846,7.545,1847,7.974,1848,5.616,1849,5.033,1850,5.313,1851,8.626,1852,2.565,1853,6.075,1854,4.036,1855,3.817,1856,4.907,1857,4.628,1858,3.182,1859,5.616,1860,5.616,1861,5.228,1862,6.075,1863,6.075,1864,6.075,1865,5.252,1866,6.075,1867,6.075]],["title/interfaces/AuthorizationLoaderService.html",[334,0.731,1868,5.493]],["body/interfaces/AuthorizationLoaderService.html",[3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,12,5.332,26,2.838,27,0.394,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,34,1.627,35,1.158,36,2.691,40,6.058,95,0.161,99,1.596,101,0.019,103,0.001,104,0.001,334,1.251,336,2.289,359,3.335,404,1.724,1787,5.556,1796,10.182,1868,10.138,1869,9.116,1870,8.366,1871,9.565,1872,5.556,1873,5.935,1874,6.811,1875,7.287,1876,8.01]],["title/interfaces/AuthorizationLoaderServiceGeneric.html",[334,0.731,1876,5.694]],["body/interfaces/AuthorizationLoaderServiceGeneric.html",[3,0.023,4,0.023,5,0.011,7,0.144,8,1.402,12,5.316,26,2.834,27,0.393,29,0.746,30,0.001,31,0.533,32,0.129,33,0.46,34,1.619,35,1.152,36,2.685,40,6.045,95,0.161,99,1.589,101,0.019,103,0.001,104,0.001,334,1.247,336,2.278,359,3.319,404,2.092,1787,5.529,1796,10.153,1868,10.117,1869,9.09,1870,8.326,1872,5.529,1873,5.907,1874,6.779,1875,7.253,1876,9.721,1877,9.52]],["title/modules/AuthorizationModule.html",[425,1.812,1878,3.675]],["body/modules/AuthorizationModule.html",[0,0.217,3,0.015,4,0.015,5,0.008,30,0.001,95,0.16,101,0.011,103,0.001,104,0.001,187,0.923,425,2.745,427,2.306,428,2.48,429,2.554,430,2.543,431,2.532,432,3.791,433,3.894,438,5.703,441,7.296,442,3.574,443,2.501,444,2.441,449,3.544,450,2.622,1467,2.037,1823,7.553,1878,7.82,1879,6.383,1880,6.383,1881,6.383,1882,6.383,1883,9.833,1884,7.235,1885,11.211,1886,10.194,1887,10.194,1888,9.833,1889,9.049,1890,9.833,1891,10.194,1892,10.194,1893,9.833,1894,10.194,1895,10.194,1896,10.194,1897,9.833,1898,10.194,1899,10.194,1900,10.194,1901,6.383,1902,5.583,1903,6.383,1904,2.67,1905,3.868,1906,4.998]],["title/classes/AuthorizationParams.html",[0,0.232,1907,5.324]],["body/classes/AuthorizationParams.html",[0,0.369,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,27,0.534,30,0.001,32,0.176,33,0.658,47,0.97,95,0.139,101,0.014,102,5.441,103,0.001,104,0.001,165,0.849,204,4.044,364,2.358,374,2.723,460,6.855,470,5.416,471,5.248,602,9.08,614,7.462,1001,7.144,1044,4.093,1142,5.52,1907,8.491,1908,8.532,1909,9.333,1910,11.018,1911,7.887,1912,8.532,1913,11.018,1914,7.887,1915,8.532,1916,8.532,1917,8.532,1918,8.532,1919,7.887,1920,5.431,1921,7.887,1922,7.887]],["title/modules/AuthorizationReferenceModule.html",[425,1.812,1923,5.055]],["body/modules/AuthorizationReferenceModule.html",[0,0.217,3,0.015,4,0.015,5,0.008,30,0.001,72,4.037,95,0.16,101,0.011,103,0.001,104,0.001,163,3.43,187,0.92,379,1.442,425,3.327,427,2.298,428,2.473,429,2.546,430,2.535,431,2.524,432,3.785,433,3.887,438,5.697,441,7.288,442,3.566,443,2.493,444,2.433,449,3.536,450,2.614,460,5.126,574,4.893,704,4.413,1467,2.031,1554,8.496,1820,5.53,1823,7.546,1852,2.686,1878,6.886,1904,2.662,1923,10.624,1924,6.363,1925,6.363,1926,6.363,1927,6.363,1928,10.477,1929,9.522,1930,7.37,1931,7.959,1932,9.823,1933,9.04,1934,9.265,1935,8.496,1936,8.346,1937,6.363,1938,6.363,1939,6.226,1940,8.912,1941,5.673,1942,6.116,1943,8.912,1944,6.116,1945,6.116,1946,5.921,1947,8.727,1948,5.341,1949,7.795,1950,6.346,1951,7.199,1952,8.239,1953,7.786,1954,6.625,1955,5.328,1956,6.79,1957,4.848,1958,6.363,1959,3.467,1960,6.363,1961,4.445,1962,6.363]],["title/injectables/AuthorizationReferenceService.html",[105,0.91,1928,5.324]],["body/injectables/AuthorizationReferenceService.html",[0,0.238,3,0.017,4,0.017,5,0.008,7,0.105,8,1.148,26,2.992,27,0.445,29,0.846,30,0.001,31,0.605,32,0.158,33,0.522,35,1.15,36,2.486,39,3.122,95,0.161,99,1.165,101,0.012,103,0.001,104,0.001,105,1.271,107,1.683,111,1.399,112,2.758,116,3.897,127,0.874,187,1.009,199,4.993,204,2.368,215,2.228,216,1.757,217,1.236,221,2.199,227,0.724,234,1.133,284,3.772,305,1.988,359,3.312,379,1.582,425,2.532,461,1.597,574,4.171,722,4.236,769,5.633,885,6.583,1795,6.92,1820,5.895,1861,5.758,1869,7.439,1884,6.92,1928,7.439,1932,9.365,1963,11.594,1964,6.452,1965,7.674,1966,8.31,1967,9.5,1968,10.801,1969,10.801,1970,6.98,1971,6.98,1972,6.98,1973,9.117,1974,6.98,1975,6.98,1976,6.98,1977,6.452,1978,5.466,1979,6.98,1980,6.98,1981,6.105,1982,4.183,1983,6.98,1984,5.466]],["title/injectables/AuthorizationService.html",[105,0.91,1884,3.675]],["body/injectables/AuthorizationService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.081,8,0.954,26,2.187,27,0.502,29,0.954,30,0.001,31,0.682,32,0.169,33,0.589,35,1.438,36,1.694,39,1.448,47,0.924,95,0.156,99,0.897,101,0.009,103,0,104,0,105,1.057,107,1.296,111,1.877,112,2.063,116,4.272,127,0.989,148,3.536,187,0.778,199,4.777,204,1.825,216,1.731,217,1.218,221,1.245,227,1.07,234,1.52,235,3.035,305,2.667,347,2.324,359,4.407,369,1.193,441,7.118,450,2.209,461,3.177,766,2.249,1787,6.898,1795,6.418,1799,8.117,1823,7.369,1826,6.909,1828,7.302,1834,7.302,1838,7.302,1852,3.335,1861,6.253,1872,6.898,1873,3.337,1884,4.269,1894,9.622,1966,4.703,1978,7.331,1985,5.378,1986,7.899,1987,7.899,1988,5.872,1989,9.362,1990,5.378,1991,5.378,1992,7.899,1993,5.378,1994,7.899,1995,5.378,1996,7.899,1997,5.378,1998,7.899,1999,5.378,2000,5.378,2001,5.378,2002,5.097,2003,5.378,2004,6.425,2005,5.378,2006,4.901,2007,4.344,2008,5.378,2009,5.378,2010,5.378,2011,5.378,2012,5.378,2013,5.248,2014,7.899,2015,4.211,2016,5.378,2017,7.899,2018,4.211]],["title/classes/AxiosResponseImp.html",[0,0.232,2019,6.286]],["body/classes/AxiosResponseImp.html",[0,0.257,2,0.841,3,0.018,4,0.018,5,0.009,7,0.114,27,0.528,29,0.591,30,0.001,31,0.422,32,0.18,33,0.365,47,0.853,55,2.419,95,0.129,101,0.017,103,0.001,104,0.001,127,0.945,154,5.702,163,3.832,165,0.784,214,3.155,217,0.981,227,0.782,234,1.824,405,2.667,498,5.176,564,4.564,595,2.525,660,4.145,692,4.196,731,2.98,736,4.472,1026,4.181,1187,3.596,1188,3.554,1189,3.554,1190,3.759,1191,4.11,1270,7.588,2019,10.383,2020,13.058,2021,6.972,2022,7.999,2023,12.451,2024,12.451,2025,10.008,2026,11.964,2027,7.542,2028,12.451,2029,6.972,2030,7.542,2031,7.542,2032,10.008,2033,5.269,2034,10.008,2035,4.076,2036,7.542,2037,4.425,2038,5.269,2039,7.542,2040,7.542,2041,7.542,2042,7.542,2043,6.092,2044,6.316,2045,5.269,2046,7.542,2047,6.972]],["title/classes/BBBBaseMeetingConfig.html",[0,0.232,2048,5.055]],["body/classes/BBBBaseMeetingConfig.html",[0,0.335,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.488,29,0.771,30,0.001,31,0.551,32,0.161,33,0.476,47,0.845,101,0.016,103,0.001,104,0.001,127,1.233,154,4.509,165,0.928,2048,10.03,2049,6.559,2050,11.115,2051,7.24,2052,9.845,2053,9.05,2054,10.362,2055,9.845,2056,9.845,2057,9.101,2058,8.611]],["title/interfaces/BBBBaseResponse.html",[334,0.731,2059,4.751]],["body/interfaces/BBBBaseResponse.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.173,47,0.978,95,0.127,101,0.017,103,0.001,104,0.001,165,0.931,334,1.063,336,2.368,1216,5.176,2049,5.106,2059,8.301,2060,8.286,2061,9.894,2062,13.209,2063,13.209,2064,12.211,2065,5.93,2066,7.992]],["title/classes/BBBCreateConfig.html",[0,0.232,2067,5.694]],["body/classes/BBBCreateConfig.html",[0,0.235,2,0.769,3,0.016,4,0.016,5,0.008,7,0.104,27,0.555,29,0.54,30,0.001,31,0.738,32,0.183,33,0.673,47,0.974,95,0.089,101,0.016,103,0.001,104,0.001,127,0.864,154,3.158,165,0.738,347,2.333,404,1.698,596,2.104,1031,2.161,2048,8.575,2049,6.945,2050,11.769,2051,3.929,2053,6.71,2054,8.242,2057,6.375,2058,6.032,2065,4.133,2067,10.114,2068,6.896,2069,10.733,2070,10.733,2071,10.905,2072,6.926,2073,10.733,2074,9.756,2075,6.637,2076,10.733,2077,10.733,2078,9.922,2079,6.896,2080,6.896,2081,6.896,2082,6.896,2083,6.896,2084,6.896,2085,6.896,2086,6.896,2087,6.896,2088,6.896,2089,6.375,2090,6.375,2091,9.423,2092,9.423,2093,9.423,2094,6.375,2095,2.736,2096,6.896,2097,5.127,2098,6.896,2099,6.896,2100,6.896,2101,6.896,2102,6.896,2103,6.896,2104,6.896,2105,6.896,2106,6.896,2107,6.896,2108,6.896,2109,6.896,2110,6.896]],["title/classes/BBBCreateConfigBuilder.html",[0,0.232,2111,5.947]],["body/classes/BBBCreateConfigBuilder.html",[0,0.239,2,0.784,3,0.017,4,0.017,5,0.008,7,0.106,8,1.153,27,0.517,29,0.911,30,0.001,31,0.681,32,0.165,33,0.562,35,1.472,47,0.915,95,0.139,101,0.012,102,3.527,103,0.001,104,0.001,144,2.981,165,0.748,204,2.385,216,1.765,227,1.261,347,2.192,367,3.352,369,1.56,404,1.72,596,2.912,661,4.011,667,5.511,691,3.738,692,2.626,728,2.688,883,5.319,956,4.6,2049,6.274,2065,4.213,2067,9.078,2071,10.967,2072,6.159,2074,5.678,2075,3.863,2078,8.824,2111,11.701,2112,11.239,2113,6.497,2114,8.463,2115,7.994,2116,9.545,2117,9.545,2118,9.545,2119,9.545,2120,6.497,2121,7.029,2122,9.545,2123,7.029,2124,9.545,2125,7.029,2126,9.545,2127,7.029,2128,9.545,2129,7.029,2130,3.07,2131,3.436,2132,3.312,2133,4.474,2134,5.225,2135,7.029,2136,7.029,2137,7.029,2138,7.029,2139,4.535,2140,7.029,2141,6.497,2142,5.225,2143,6.148,2144,3.967,2145,4.416,2146,4.744,2147,5.504,2148,7.029,2149,5.678,2150,7.029,2151,6.497,2152,7.029,2153,7.029]],["title/interfaces/BBBCreateResponse.html",[334,0.731,2154,5.947]],["body/interfaces/BBBCreateResponse.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.188,47,1.01,55,2.957,95,0.109,101,0.014,103,0.001,104,0.001,165,0.847,334,0.913,336,2.033,347,2.673,404,1.949,2049,4.385,2053,8.917,2059,8.311,2060,7.115,2065,5.092,2154,9.458,2155,8.496,2156,11.575,2157,11.575,2158,11.575,2159,10.952,2160,11.575,2161,11.575,2162,11.575,2163,11.575,2164,11.575,2165,7.115]],["title/classes/BBBJoinConfig.html",[0,0.232,2166,5.694]],["body/classes/BBBJoinConfig.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,27,0.547,29,0.631,30,0.001,31,0.451,32,0.18,33,0.642,39,3.123,47,0.946,95,0.103,101,0.017,103,0.001,104,0.001,127,1.009,154,3.689,165,0.818,347,2.113,404,1.883,415,4.353,496,4.897,596,2.457,1031,2.524,2048,9.124,2049,6.847,2050,11.604,2051,4.588,2053,7.441,2054,9.139,2065,4.827,2089,7.446,2090,7.446,2094,7.446,2134,8.622,2166,10.651,2167,8.054,2168,10.145,2169,11.599,2170,7.484,2171,8.054,2172,8.054,2173,8.054,2174,8.054,2175,8.054,2176,8.054,2177,9.139,2178,10.449,2179,8.054,2180,8.054,2181,5.855,2182,8.054,2183,8.054,2184,8.054,2185,8.054,2186,6.745,2187,8.054]],["title/classes/BBBJoinConfigBuilder.html",[0,0.232,2188,5.947]],["body/classes/BBBJoinConfigBuilder.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,8,1.262,27,0.524,29,0.908,30,0.001,31,0.65,32,0.167,33,0.561,35,1.486,47,0.827,95,0.134,101,0.013,103,0.001,104,0.001,144,3.584,165,0.818,216,1.932,227,1.203,347,2.346,404,1.883,596,3.187,661,4.391,667,5.498,692,3.904,2049,6.334,2112,11.346,2113,7.446,2114,8.796,2115,8.751,2120,7.446,2134,9.124,2166,6.745,2188,11.762,2189,9.351,2190,10.449,2191,9.659,2192,9.659,2193,10.449,2194,8.054,2195,10.449,2196,8.054,2197,10.449,2198,8.054,2199,8.054,2200,8.054,2201,8.054,2202,8.054,2203,8.054,2204,8.054]],["title/interfaces/BBBJoinResponse.html",[334,0.731,2205,6.286]],["body/interfaces/BBBJoinResponse.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.181,47,1.021,95,0.121,101,0.016,103,0.001,104,0.001,150,4.493,165,0.901,334,1.008,336,2.246,404,2.074,2049,4.844,2059,8.696,2060,7.861,2065,5.626,2165,7.861,2205,10.639,2206,8.677,2207,12.975,2208,12.975,2209,12.975,2210,10.16]],["title/interfaces/BBBMeetingInfoResponse.html",[334,0.731,2211,5.324]],["body/interfaces/BBBMeetingInfoResponse.html",[3,0.015,4,0.015,5,0.008,7,0.094,30,0.001,32,0.193,33,0.534,39,1.679,47,0.995,55,3.078,95,0.08,101,0.01,103,0.001,104,0.001,138,5.277,165,0.688,334,0.67,336,1.492,347,2.813,404,1.583,496,2.632,674,3.426,1345,2.474,2049,3.218,2053,7.866,2059,7.108,2060,5.221,2065,3.737,2156,10.211,2157,10.211,2158,10.211,2159,9.661,2160,10.211,2161,10.211,2162,10.211,2163,5.763,2164,10.211,2165,5.221,2168,5.453,2211,6.88,2212,5.763,2213,4.882,2214,11.046,2215,11.645,2216,11.046,2217,10.211,2218,11.046,2219,11.046,2220,11.046,2221,11.046,2222,7.866,2223,11.046,2224,11.046,2225,11.046,2226,8.029,2227,10.211,2228,11.046,2229,11.046,2230,5.763,2231,6.235,2232,6.235,2233,6.235,2234,6.235,2235,6.235,2236,6.235]],["title/interfaces/BBBResponse.html",[334,0.731,2237,5.181]],["body/interfaces/BBBResponse.html",[3,0.025,4,0.025,5,0.013,7,0.157,30,0.001,32,0.141,95,0.133,101,0.017,103,0.001,104,0.001,165,0.958,334,1.115,336,2.484,692,4.855,1016,4.711,2049,5.356,2059,7.251,2065,6.22,2165,8.691,2237,9.314,2238,10.378]],["title/injectables/BBBService.html",[105,0.91,2239,5.181]],["body/injectables/BBBService.html",[0,0.119,3,0.008,4,0.008,5,0.004,7,0.053,8,0.682,27,0.482,29,0.956,30,0.001,31,0.642,32,0.152,33,0.527,35,1.536,36,2.458,47,0.946,95,0.147,101,0.006,103,0,104,0,105,0.755,107,0.839,111,2.032,112,1.568,127,0.707,150,4.114,154,4.834,163,1.736,167,1.281,185,2.193,187,0.503,193,10.678,216,1.315,217,1.623,221,0.806,227,1.266,234,1.819,235,1.965,238,3.979,250,9.134,254,3.045,255,4.935,256,3.045,264,4.583,270,3.045,305,2.742,359,3.533,367,1.66,379,0.789,661,4.911,687,2.405,691,4.351,839,1.66,883,3.47,884,2.659,956,3.693,1016,1.222,1154,7.08,1155,2.022,1157,2.279,1270,2.064,1335,4.725,1353,4.645,1354,2.479,1355,2.726,1384,4.935,1414,3.156,1433,3.459,1738,4.101,2022,5.825,2033,2.432,2035,1.882,2048,8.832,2049,6.132,2053,2.479,2058,3.045,2059,2.432,2064,3.218,2065,7.121,2067,8.839,2142,4.194,2145,3.545,2146,3.808,2147,4.418,2154,3.045,2166,7.528,2189,7.332,2211,2.726,2212,9.757,2237,7.332,2239,4.299,2240,3.482,2241,3.808,2242,5.642,2243,5.642,2244,5.216,2245,5.642,2246,5.746,2247,7.862,2248,3.482,2249,6.608,2250,8.487,2251,3.482,2252,6.222,2253,5.642,2254,3.482,2255,5.825,2256,5.642,2257,3.42,2258,5.216,2259,5.642,2260,5.642,2261,3.482,2262,4.935,2263,5.642,2264,3.482,2265,5.216,2266,5.216,2267,9.624,2268,3.214,2269,8.18,2270,5.642,2271,3.482,2272,5.642,2273,3.482,2274,5.642,2275,3.482,2276,7.155,2277,5.642,2278,5.642,2279,3.482,2280,3.214,2281,5.642,2282,3.482,2283,4.935,2284,5.216,2285,3.482,2286,3.482,2287,3.482,2288,3.482,2289,3.482,2290,3.482,2291,3.482,2292,7.721,2293,2.916,2294,2.916,2295,3.482,2296,3.482,2297,3.482,2298,3.482,2299,6.608,2300,3.482,2301,8.18,2302,5.642,2303,1.411,2304,3.482,2305,3.482,2306,3.482,2307,7.114,2308,6.576,2309,9.624,2310,5.642,2311,5.642,2312,7.114,2313,7.114,2314,7.114,2315,7.114,2316,6.576,2317,6.576,2318,3.482,2319,3.482,2320,3.482,2321,3.482,2322,5.216,2323,3.482,2324,3.482,2325,3.482,2326,3.482,2327,4.935,2328,3.482,2329,3.482,2330,3.482,2331,3.482,2332,3.482,2333,3.482,2334,3.482,2335,3.482,2336,3.482,2337,3.482,2338,3.218,2339,3.482]],["title/classes/BaseDO.html",[0,0.232,1872,3.949]],["body/classes/BaseDO.html",[0,0.337,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,9,4.662,27,0.49,29,0.775,30,0.001,31,0.554,32,0.162,33,0.616,34,2.298,47,0.963,59,3.082,101,0.017,102,4.965,103,0.001,104,0.001,127,1.239,165,0.931,618,4.046,661,4.993,1872,6.902,2340,9.894,2341,9.304,2342,11.882]],["title/injectables/BaseDORepo.html",[105,0.91,2343,4.667]],["body/injectables/BaseDORepo.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,8,0.779,9,5.662,10,3.629,12,2.952,18,3.257,26,2.657,27,0.522,29,0.981,30,0.001,31,0.702,32,0.17,33,0.606,34,2.005,35,1.499,36,2.836,40,3.111,47,0.46,49,1.619,55,0.886,95,0.125,96,1.763,97,1.779,99,0.687,101,0.007,102,2.065,103,0,104,0,105,0.862,107,0.992,111,2.448,112,2.862,127,0.515,148,1.266,165,0.505,187,0.595,216,1.192,217,1.69,221,2.667,227,1.195,234,1.047,247,1.612,359,2.247,380,2.631,381,2.144,398,1.212,500,4.424,524,3.707,574,1.806,595,1.378,661,4.954,770,2.44,878,4.503,884,3.037,885,4.934,915,2.281,929,3.599,1008,4.295,1467,1.313,1790,3.797,1852,1.737,1872,2.39,2015,3.222,2051,3.672,2280,2.344,2343,4.424,2344,4.114,2345,4.59,2346,4.59,2347,4.59,2348,4.59,2349,4.503,2350,4.503,2351,4.59,2352,4.503,2353,4.59,2354,2.991,2355,5.172,2356,3.264,2357,4.096,2358,4.114,2359,4.685,2360,4.59,2361,4.114,2362,7.644,2363,4.59,2364,4.114,2365,4.59,2366,4.114,2367,5.201,2368,4.503,2369,4.59,2370,4.114,2371,4.59,2372,4.114,2373,4.59,2374,8.111,2375,4.114,2376,4.114,2377,4.59,2378,4.114,2379,4.35,2380,4.503,2381,4.114,2382,4.59,2383,4.114,2384,3.863,2385,3.952,2386,4.59,2387,4.114,2388,4.59,2389,4.114,2390,2.875,2391,4.59,2392,4.114,2393,4.114,2394,5.332,2395,2.777,2396,3.599,2397,2.777,2398,7.946,2399,4.114,2400,4.114,2401,4.685,2402,4.114,2403,7.042,2404,4.114,2405,4.114,2406,5.047,2407,3.803,2408,2.875,2409,4.791,2410,9.575,2411,6.445,2412,4.103,2413,3.803,2414,4.114,2415,4.114,2416,4.114,2417,4.114,2418,5.638,2419,4.114,2420,4.114,2421,4.114,2422,3.446,2423,4.114,2424,4.114,2425,4.114,2426,4.114,2427,4.114,2428,4.114,2429,4.114,2430,4.114,2431,3.446,2432,4.114,2433,4.114,2434,4.114,2435,4.114,2436,4.114,2437,4.114,2438,3.599,2439,2.414,2440,2.344,2441,4.114,2442,4.114,2443,4.114,2444,3.599]],["title/classes/BaseDomainObject.html",[0,0.232,2445,6.286]],["body/classes/BaseDomainObject.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,9,6.333,27,0.4,30,0.001,32,0.132,34,2.148,47,0.837,95,0.125,101,0.016,102,5.893,103,0.001,104,0.001,165,0.92,214,3.702,334,1.042,359,3.383,1787,7.335,1789,8.487,1798,5.476,1904,5.283,2445,10.856,2446,11.743,2447,9.703,2448,8.97,2449,6.659,2450,5.528,2451,7.838,2452,8.97,2453,9.703]],["title/classes/BaseEntity.html",[0,0.232,2395,4.589]],["body/classes/BaseEntity.html",[0,0.386,2,0.855,3,0.018,4,0.018,5,0.009,7,0.116,9,4.769,27,0.417,30,0.001,32,0.17,34,2.187,47,0.808,49,4.739,72,3.475,83,3.465,95,0.155,96,2.769,97,3.318,101,0.02,103,0.001,104,0.001,165,0.943,214,3.571,217,0.998,234,1.839,240,3.593,334,0.824,359,2.674,364,2.063,380,2.151,381,2.552,398,2.26,399,4.015,574,3.368,591,4.399,592,4.585,672,3.931,722,3.42,938,5.576,946,5.021,960,5.265,1129,4.412,1142,3.553,1167,7.067,1198,5.359,1787,6.996,1852,3.239,1904,3.209,2142,5.702,2385,4.703,2395,7.645,2396,6.709,2454,7.091,2455,8.87,2456,11.134,2457,7.671,2458,11.134,2459,7.671,2460,6.424,2461,4.649,2462,5.576,2463,6.424,2464,6.196,2465,6.424,2466,6.424,2467,7.091,2468,4.598,2469,4.95,2470,5.265,2471,5.021,2472,7.091,2473,6.709,2474,7.091,2475,5.265,2476,6.424,2477,6.709,2478,7.091,2479,6.709,2480,7.091]],["title/classes/BaseEntityWithTimestamps.html",[0,0.232,399,2.698]],["body/classes/BaseEntityWithTimestamps.html",[0,0.377,2,0.815,3,0.017,4,0.017,5,0.009,7,0.11,9,4.618,27,0.487,30,0.001,32,0.167,34,2.158,47,0.788,49,4.648,72,3.311,83,3.769,95,0.152,96,2.681,97,3.161,101,0.02,103,0.001,104,0.001,144,2.695,165,0.925,214,3.486,217,0.951,234,2,240,3.748,319,2.929,334,0.785,359,2.548,364,2.244,380,2.083,381,2.431,398,2.153,399,4.387,574,3.209,591,5.135,592,5.352,672,3.745,722,3.259,938,5.313,946,4.784,960,5.016,1129,4.204,1142,3.385,1167,6.971,1198,5.107,1787,6.862,1852,3.086,1904,3.057,2142,5.433,2385,4.481,2395,6.615,2396,6.393,2454,6.757,2455,7.675,2456,10.922,2458,10.922,2460,6.121,2461,4.43,2462,5.313,2463,6.121,2464,5.904,2465,6.121,2466,6.121,2467,6.757,2468,4.381,2469,4.716,2470,5.016,2471,4.784,2472,6.757,2473,6.393,2474,6.757,2475,5.016,2476,6.121,2477,6.393,2478,6.757,2479,6.393,2480,6.757,2481,7.309,2482,7.309,2483,7.309,2484,7.309,2485,7.309]],["title/classes/BaseFactory.html",[0,0.232,660,3.737]],["body/classes/BaseFactory.html",[0,0.232,2,0.364,3,0.008,4,0.008,5,0.004,7,0.049,8,0.647,27,0.489,29,0.981,30,0.001,31,0.629,32,0.17,33,0.543,34,1.678,35,1.489,47,0.485,49,1.284,55,2.363,59,2.707,95,0.069,101,0.005,103,0,104,0,127,0.852,138,3.439,144,3.091,148,1.648,165,0.617,185,4.728,215,1.042,216,1.456,217,1.616,227,1.105,234,1.896,247,2.098,264,4.61,319,3.428,334,0.575,359,2.745,366,1.826,379,1.784,380,2.662,381,2.619,538,4.207,595,2.91,627,2.088,660,2.942,661,4.48,662,6.693,665,3.021,666,5.27,667,5.698,668,3.021,669,3.021,670,3.021,671,2.968,672,4.453,673,4.443,674,6.029,675,6.081,676,7.448,682,1.842,683,3.841,685,5.205,686,5.374,687,3.704,688,5.053,689,4.861,690,1.842,691,1.736,692,4.68,693,1.794,694,1.764,695,3.021,696,4.854,698,5.176,699,3.021,700,6.784,701,4.193,702,6.59,704,4.624,705,3.021,707,1.842,709,3.021,711,3.174,712,1.842,713,6.23,715,1.842,716,5.81,717,4.155,718,4.443,720,5.374,721,3.678,722,2.387,723,3.021,724,4.443,725,3.021,728,2.047,729,3.021,731,4.067,732,3.021,735,1.896,808,2.855,948,2.487,1167,1.794,1187,3.754,1188,3.71,1189,3.71,1190,3.924,1191,3.709,1192,2.24,1204,2.556,1268,6.312,1678,2.855,2045,3.74,2412,3.408,2486,3.264,2487,3.408,2488,5.353,2489,3.264,2490,5.353,2491,3.264,2492,3.264,2493,3.264,2494,3.264,2495,3.264,2496,3.264,2497,3.264,2498,3.264,2499,3.264,2500,3.264,2501,3.264,2502,3.264,2503,4.949,2504,4.079,2505,3.264,2506,3.264,2507,3.264,2508,3.264,2509,3.264,2510,3.018,2511,5.353,2512,5.353,2513,3.264,2514,3.264,2515,7.873,2516,3.264,2517,10.295,2518,7.873,2519,3.264,2520,3.264,2521,3.264,2522,3.264,2523,3.264,2524,3.141,2525,3.264,2526,3.264,2527,3.264,2528,3.264,2529,3.264]],["title/injectables/BaseRepo.html",[105,0.91,877,3.99]],["body/injectables/BaseRepo.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.102,8,1.121,9,4.374,10,3.746,12,4.251,18,4.69,26,2.423,27,0.511,29,0.939,30,0.001,31,0.671,32,0.163,33,0.579,34,1.579,35,1.384,36,2.812,40,4.48,49,4.497,95,0.159,96,2.539,97,2.918,101,0.011,103,0.001,104,0.001,105,1.242,107,1.626,112,2.891,127,0.845,187,0.976,216,1.247,217,0.878,221,2.148,227,0.962,379,1.529,380,1.972,381,3.087,398,1.988,692,5.188,734,3.843,774,6.37,877,5.446,883,3.937,884,4.374,885,6.055,908,5.691,910,5.691,913,5.691,915,3.74,1844,4.043,1855,5.832,1904,3.883,1941,5.908,1942,6.37,2280,3.843,2343,6.37,2354,4.904,2355,6.574,2359,6.747,2394,5.503,2395,4.553,2397,4.553,2407,6.236,2413,6.236,2418,5.9,2530,6.746,2531,6.177,2532,8.58,2533,9.282,2534,9.282,2535,8.58,2536,5.563,2537,6.075,2538,6.61,2539,6.746,2540,6.746,2541,6.746,2542,6.746,2543,6.746,2544,6.746,2545,3.588,2546,6.746]],["title/interfaces/BaseResponseMapper.html",[334,0.731,2547,5.055]],["body/interfaces/BaseResponseMapper.html",[3,0.022,4,0.022,5,0.011,7,0.143,8,1.398,27,0.477,29,0.907,30,0.001,31,0.648,32,0.177,33,0.56,35,1.401,95,0.149,99,1.581,100,3.172,101,0.016,103,0.001,104,0.001,334,1.018,336,2.268,347,2.341,692,5.074,975,6.416,2547,8.604,2548,12.498,2549,9.475,2550,9.064,2551,9.064,2552,9.475,2553,4.934,2554,8.819,2555,9.475,2556,10.096,2557,4.631]],["title/classes/BasicToolConfig.html",[0,0.232,2558,4.943]],["body/classes/BasicToolConfig.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,27,0.511,29,0.727,30,0.001,31,0.52,32,0.184,33,0.449,47,0.662,95,0.147,101,0.015,103,0.001,104,0.001,127,1.162,165,0.895,198,4.507,200,2.89,209,4.092,238,6.925,404,2.059,405,3.045,406,3.018,595,3.107,596,3.486,2558,9.647,2559,5.177,2560,11.427,2561,7.77,2562,9.865,2563,8.577,2564,8.115,2565,6.335,2566,8.115,2567,8.115,2568,6.483,2569,6.607]],["title/classes/BasicToolConfigEntity.html",[0,0.232,2570,5.493]],["body/classes/BasicToolConfigEntity.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,27,0.393,29,0.747,30,0.001,31,0.534,32,0.13,33,0.461,95,0.161,96,2.61,101,0.016,103,0.001,104,0.001,127,1.195,198,4.635,200,2.972,209,4.143,398,2.811,404,1.719,405,3.098,595,3.195,617,5.29,2559,5.266,2565,5.29,2568,8.122,2569,6.795,2570,10.805,2571,11.625,2572,7.991,2573,9.542,2574,6,2575,9.39,2576,8.346,2577,5.386,2578,4.255,2579,6.795]],["title/classes/BasicToolConfigParams.html",[0,0.232,2580,5.493]],["body/classes/BasicToolConfigParams.html",[0,0.389,2,1.032,3,0.022,4,0.022,5,0.011,7,0.14,27,0.47,30,0.001,32,0.18,47,0.814,95,0.166,101,0.015,103,0.001,104,0.001,165,0.894,198,4.497,200,2.883,209,3.771,238,6.918,364,2.078,374,2.955,376,2.118,404,2.056,467,3.245,470,4.773,596,3.481,1044,4.441,2559,4.194,2565,6.857,2580,9.217,2581,9.257,2582,8.558,2583,9.64,2584,6.468,2585,7.478,2586,7.478,2587,7.478,2588,7.478,2589,7.478]],["title/classes/BasicToolConfigResponse.html",[0,0.232,2590,5.694]],["body/classes/BasicToolConfigResponse.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,27,0.501,29,0.698,30,0.001,31,0.499,32,0.182,33,0.431,47,0.795,95,0.156,101,0.015,103,0.001,104,0.001,127,1.116,165,0.873,198,4.327,200,2.775,209,4.018,238,6.8,364,2.03,376,2.038,404,2.008,405,2.969,406,2.898,467,3.441,595,2.983,596,3.399,2559,5.048,2565,6.74,2568,6.224,2569,6.344,2578,3.972,2579,6.344,2590,10.984,2591,11.143,2592,7.197,2593,10.594,2594,8.909,2595,7.792,2596,7.792,2597,7.197]],["title/injectables/BasicToolLaunchStrategy.html",[105,0.91,2598,5.694]],["body/injectables/BasicToolLaunchStrategy.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.07,8,0.855,9,2.189,26,2.307,27,0.524,29,0.996,30,0.001,31,0.712,32,0.176,33,0.615,35,1.539,36,2.426,39,2.31,47,0.869,95,0.133,99,0.775,101,0.008,103,0,104,0,105,0.947,106,10.948,107,1.12,108,2.698,110,4.063,111,2.621,112,2.686,113,6.192,114,6.192,115,6.192,116,3.961,117,7.502,118,6.192,119,6.192,120,6.192,121,6.192,122,5.929,123,5.929,124,6.192,125,6.192,126,6.192,133,4.063,134,10.49,135,6.192,136,7.201,137,5.263,138,3.093,139,6.906,140,6.632,142,4.063,143,6.192,144,1.947,145,2.429,146,6.584,148,2.179,149,4.063,150,3.321,151,6.192,153,4.063,155,9.132,157,4.063,158,4.193,160,8.088,161,4.063,163,3.348,164,6.192,165,0.751,167,3.156,168,4.063,170,3.891,171,3.891,173,4.063,175,3.308,176,6.192,178,8.788,179,4.063,180,6.192,181,6.189,183,4.063,184,6.192,185,2.751,187,0.672,207,3.891,208,1.736,209,2.34,210,3.041,211,3.891,217,1.344,227,0.995,231,2.575,240,2.246,241,6.545,247,1.82,253,4.295,347,0.94,404,1.276,596,3.879,731,2.797,1180,1.999,1187,3.376,1188,3.336,1189,3.336,1190,3.529,1191,3.858,2139,5.535,2598,5.929,2599,4.646,2600,4.295,2601,4.646,2602,4.646,2603,4.295,2604,4.295,2605,4.295,2606,4.295,2607,4.295,2608,4.295,2609,4.295,2610,4.295,2611,4.295,2612,4.295,2613,4.295,2614,5.146,2615,5.042,2616,3.638,2617,7.08,2618,4.646,2619,6.545,2620,4.646,2621,4.646,2622,4.646,2623,7.08,2624,4.646,2625,4.646,2626,4.063]],["title/entities/Board.html",[380,1.445,2627,2.858]],["body/entities/Board.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,26,2.47,27,0.335,30,0.001,32,0.143,34,0.952,95,0.169,96,1.53,101,0.014,103,0,104,0,111,2.239,144,1.538,145,2.059,148,1.722,165,0.637,187,0.809,188,4.549,208,2.09,217,1.7,227,1.208,234,2,305,2.728,319,1.672,334,0.601,347,1.131,364,1.481,369,2.333,380,1.727,381,1.861,394,4.631,398,1.648,399,3.225,400,2.468,402,2.319,404,1.008,405,1.491,406,1.819,571,3.515,577,3.157,744,4.066,783,3.39,806,3.899,1041,4.547,1843,2.652,2439,3.282,2462,6.962,2553,4.966,2627,4.896,2628,7.499,2629,5.594,2630,7.554,2631,5.594,2632,4.841,2633,3.9,2634,6.194,2635,5.594,2636,4.43,2637,8.13,2638,6.567,2639,5.594,2640,3.048,2641,6.366,2642,4.066,2643,3.249,2644,2.999,2645,5.175,2646,3.282,2647,4.291,2648,3.908,2649,4.27,2650,3.471,2651,7.486,2652,11.386,2653,8.02,2654,6.194,2655,4.324,2656,5.789,2657,4.893,2658,6.567,2659,2.621,2660,6.567,2661,8.13,2662,5.594,2663,3.661,2664,5.594,2665,5.594,2666,8.13,2667,4.685,2668,5.594,2669,9.577,2670,5.594,2671,5.594,2672,5.594,2673,5.594,2674,5.594,2675,8.13,2676,5.594,2677,8.13,2678,8.13,2679,5.594,2680,5.594,2681,4.519,2682,5.594,2683,5.594,2684,5.171,2685,5.594,2686,4.066,2687,5.594,2688,4.685,2689,5.594,2690,5.594,2691,5.594,2692,5.594,2693,5.594,2694,5.594,2695,5.594,2696,5.594,2697,5.594,2698,5.594,2699,5.594,2700,5.594,2701,5.594,2702,4.737,2703,5.594,2704,8.13,2705,5.594,2706,5.594,2707,5.594,2708,5.594,2709,11.65,2710,4.893]],["title/modules/BoardApiModule.html",[425,1.812,2711,5.493]],["body/modules/BoardApiModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,95,0.173,101,0.013,103,0.001,104,0.001,187,1.162,425,3.088,427,2.904,428,3.124,429,3.216,430,3.203,431,3.189,432,4.264,433,3.038,438,6.102,442,4.176,443,3.15,444,3.074,446,5.051,447,4.325,449,4.14,481,3.086,1467,2.566,1878,5.64,1953,7.291,1956,9.924,2711,11.406,2712,8.038,2713,8.038,2714,8.038,2715,10.908,2716,10.2,2717,10.521,2718,10.908,2719,8.038,2720,10.135,2721,10.135,2722,10.135,2723,10.135,2724,10.135,2725,3.641,2726,8.038,2727,3.856,2728,7.031,2729,7.431,2730,7.431]],["title/classes/BoardColumnBoardResponse.html",[0,0.232,2731,5.694]],["body/classes/BoardColumnBoardResponse.html",[0,0.257,2,0.843,3,0.018,4,0.018,5,0.009,7,0.114,27,0.539,29,0.592,30,0.001,31,0.423,32,0.178,33,0.365,34,2.119,47,0.913,83,3.663,95,0.129,101,0.013,103,0.001,104,0.001,127,1.255,165,0.785,347,2.027,364,2.332,376,1.728,467,3.61,469,3.317,591,5.415,592,5.644,618,3.09,620,4.875,622,4.875,966,3.844,1397,4.171,2655,7.458,2731,10.433,2732,10.387,2733,10.387,2734,7.556,2735,9.492,2736,8.154,2737,7.556,2738,7.556,2739,7.556,2740,7.556,2741,7.556,2742,5.492,2743,7.556,2744,7.556,2745,6.378,2746,7.556,2747,3.9,2748,6.985]],["title/classes/BoardComposite.html",[0,0.232,2749,4.121]],["body/classes/BoardComposite.html",[0,0.199,2,0.652,3,0.014,4,0.014,5,0.007,7,0.088,8,1.014,9,6.07,26,1.779,27,0.538,29,0.926,30,0.001,31,0.662,32,0.173,33,0.572,34,1.428,35,1.475,36,1.799,55,2.115,59,1.821,83,3.282,95,0.146,99,0.976,101,0.014,103,0,104,0,116,2.614,148,3.64,165,0.657,187,0.845,208,2.184,217,0.761,227,1.113,234,1.594,247,2.29,305,2.797,334,0.628,347,2.17,359,2.926,363,5.342,404,1.512,591,4.663,592,4.861,595,2.81,596,2.56,661,3.527,692,3.135,884,3.955,1129,3.362,1646,4.694,1790,4.994,1793,6.335,1852,2.468,1873,3.627,1874,4.163,1875,4.454,2440,3.33,2557,6.59,2643,3.395,2749,5.086,2750,11.908,2751,5.404,2752,5.976,2753,5.976,2754,5.976,2755,5.575,2756,5.976,2757,7.242,2758,3.884,2759,5.146,2760,6.295,2761,5.846,2762,5.863,2763,5.146,2764,6.171,2765,5.846,2766,5.863,2767,6.579,2768,5.846,2769,7.655,2770,5.863,2771,5.846,2772,5.976,2773,5.846,2774,5.863,2775,5.846,2776,3.884,2777,5.404,2778,5.846,2779,5.113,2780,5.846,2781,5.113,2782,5.846,2783,3.504,2784,7.758,2785,4.578,2786,4.578,2787,5.404,2788,5.404,2789,5.404,2790,7.758,2791,5.404,2792,5.404,2793,5.404,2794,3.466,2795,5.404,2796,5.404,2797,5.404,2798,5.404,2799,7.34,2800,3.826,2801,5.976,2802,5.404,2803,5.113,2804,3.543]],["title/interfaces/BoardCompositeProps.html",[334,0.731,2804,4.121]],["body/interfaces/BoardCompositeProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,9,5.535,26,2.49,30,0.001,32,0.172,33,0.469,34,2.086,36,1.545,55,1.552,83,4.015,95,0.157,99,1.202,101,0.016,103,0.001,104,0.001,148,3.378,165,0.76,187,1.042,208,2.692,217,0.938,227,1.218,234,1.782,247,2.823,305,3.127,334,0.774,336,1.724,347,1.963,359,3.384,404,1.298,591,5.329,592,5.555,1129,4.144,1646,5.429,1790,4.098,1852,3.042,1873,4.471,1874,5.13,1875,5.489,2440,4.104,2557,6.5,2643,4.185,2749,4.367,2750,6.66,2751,6.66,2757,8.275,2759,4.417,2760,5.695,2763,4.417,2764,5.583,2766,5.033,2767,6.666,2769,7.38,2770,5.033,2772,5.13,2774,5.033,2783,4.318,2784,8.973,2785,5.642,2786,5.642,2787,6.66,2788,6.66,2789,6.66,2790,8.973,2791,6.66,2792,6.66,2793,6.66,2794,4.272,2795,6.66,2796,6.66,2797,6.66,2798,6.66,2799,8.49,2800,4.715,2801,6.912,2802,6.66,2803,6.301,2804,5.883]],["title/interfaces/BoardCompositeVisitor.html",[334,0.731,2760,3.99]],["body/interfaces/BoardCompositeVisitor.html",[3,0.014,4,0.014,5,0.01,7,0.092,8,1.046,27,0.529,29,1.005,30,0.001,31,0.718,32,0.187,33,0.62,35,1.553,36,2.751,95,0.165,101,0.014,103,0,104,0,148,4.239,200,1.904,209,2.02,334,0.931,336,1.463,2280,3.482,2655,6.565,2760,5.083,2764,3.515,2805,10.185,2806,12.023,2807,5.65,2808,8.008,2809,8.008,2810,8.008,2811,8.008,2812,8.008,2813,8.008,2814,8.008,2815,8.008,2816,8.008,2817,7.577,2818,6.838,2819,6.112,2820,7.577,2821,6.112,2822,7.577,2823,7.275,2824,6.112,2825,7.577,2826,7.856,2827,6.112,2828,7.577,2829,7.856,2830,6.112,2831,7.577,2832,7.856,2833,6.112,2834,7.577,2835,7.745,2836,6.112,2837,7.577,2838,7.542,2839,6.112,2840,8.008,2841,7.448,2842,6.112,2843,5.118,2844,5.65,2845,5.118,2846,8.401,2847,4.543,2848,2.95,2849,3.747,2850,3.663,2851,4.937,2852,5.118,2853,5.118,2854,5.118,2855,5.118,2856,5.118,2857,5.118,2858,5.118,2859,5.65,2860,5.118]],["title/interfaces/BoardCompositeVisitorAsync.html",[334,0.731,2764,3.911]],["body/interfaces/BoardCompositeVisitorAsync.html",[3,0.014,4,0.014,5,0.01,7,0.092,8,1.046,27,0.529,29,1.005,30,0.001,31,0.718,32,0.187,33,0.62,35,1.553,36,2.953,95,0.165,101,0.014,103,0,104,0,148,3.948,200,1.904,209,2.02,334,0.931,336,1.463,2280,3.482,2655,6.565,2760,3.586,2764,4.982,2805,10.185,2806,12.023,2807,5.65,2817,5.346,2818,6.838,2820,5.346,2822,5.346,2823,7.275,2825,5.346,2826,7.856,2828,5.346,2829,7.856,2831,5.346,2832,7.856,2834,5.346,2835,7.745,2837,5.346,2838,7.542,2840,5.65,2841,7.448,2843,5.118,2844,5.65,2845,5.118,2846,8.401,2847,4.543,2848,2.95,2849,3.747,2850,3.663,2851,4.937,2852,7.255,2853,7.255,2854,7.255,2855,7.255,2856,7.255,2857,7.255,2858,7.255,2859,8.008,2860,7.255,2861,7.255,2862,7.255,2863,7.255,2864,7.255,2865,7.255,2866,7.255,2867,7.255,2868,7.255,2869,7.255,2870,6.112,2871,6.112,2872,6.112,2873,6.112,2874,6.112,2875,6.112,2876,6.112,2877,6.112,2878,6.112]],["title/classes/BoardContextResponse.html",[0,0.232,2879,5.947]],["body/classes/BoardContextResponse.html",[0,0.305,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.502,29,0.701,30,0.001,31,0.501,32,0.187,33,0.433,34,2.234,47,0.797,95,0.143,99,1.493,101,0.015,103,0.001,104,0.001,127,1.4,165,0.875,364,2.035,376,2.047,467,3.196,475,4.374,618,3.66,966,4.553,1031,2.804,2578,3.99,2879,11.486,2880,12.76,2881,8.949,2882,8.949,2883,5.857,2884,5.943,2885,5.943,2886,8.949,2887,9.675,2888,5.424,2889,5.533,2890,8.949]],["title/controllers/BoardController.html",[481,2.611,2720,5.947]],["body/controllers/BoardController.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.068,8,0.836,10,3.399,27,0.42,29,0.798,30,0.001,31,0.571,32,0.191,33,0.493,35,1.233,36,2.593,95,0.148,100,1.51,101,0.008,103,0,104,0,112,2.842,187,0.652,199,2.616,206,2.295,215,1.44,216,0.834,217,1.4,221,2.358,227,0.873,234,1.367,264,4.282,364,1.856,376,1.032,447,1.87,481,1.732,483,2.151,491,6.397,498,6.483,502,7.504,506,7.915,509,8.791,513,6.773,543,3.522,552,2.91,553,6.518,554,8.422,555,2.345,556,2.399,558,2.164,561,2.418,563,6.107,564,4.89,883,2.936,1016,3.776,1392,7.258,1397,2.318,2627,4.519,2644,5.765,2655,4.48,2715,7.053,2720,6.054,2727,2.164,2783,6.445,2879,6.054,2891,4.511,2892,4.17,2893,8.422,2894,6.922,2895,8.422,2896,8.422,2897,8.422,2898,4.511,2899,11.374,2900,7.575,2901,10.19,2902,5.591,2903,4.511,2904,7.763,2905,7.763,2906,4.511,2907,4.511,2908,7.915,2909,4.511,2910,5.591,2911,4.511,2912,4.511,2913,4.511,2914,4.511,2915,4.511,2916,4.511,2917,4.511,2918,6.922,2919,4.511,2920,4.511,2921,4.511,2922,4.511,2923,6.803,2924,7.631,2925,4.149,2926,4.511,2927,4.511,2928,3.279,2929,2.594,2930,2.418,2931,5.797,2932,5.591,2933,4.511,2934,4.511,2935,3.945,2936,3.777,2937,3.644,2938,4.511,2939,4.511,2940,4.511,2941,10.19,2942,4.511,2943,4.511,2944,4.511,2945,4.511,2946,4.511,2947,5.591,2948,5.591,2949,4.511,2950,4.511,2951,3.945,2952,4.511,2953,4.511,2954,4.511,2955,4.511,2956,4.511,2957,4.17]],["title/injectables/BoardCopyService.html",[105,0.91,2958,5.694]],["body/injectables/BoardCopyService.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,27,0.459,29,0.871,30,0.001,31,0.623,32,0.161,33,0.538,34,0.627,35,1.305,36,2.499,39,0.992,55,0.794,95,0.146,99,0.615,101,0.006,103,0,104,0,105,0.79,107,0.888,111,2.68,112,2.726,127,0.74,145,0.933,185,2.295,187,0.533,188,4.568,216,1.826,217,1.642,221,1.711,227,1.283,234,1.502,380,0.783,450,1.514,461,3.123,564,4.077,731,2.334,738,1.916,784,1.992,806,3.01,846,2.624,1041,4.134,1358,2.346,1369,2.008,1370,2.448,1397,1.978,1467,1.176,1680,7.524,1858,1.93,2356,2.426,2357,3.851,2384,3.54,2401,2.679,2627,4.359,2630,5.312,2647,4.884,2649,4.126,2651,8.124,2654,4.5,2656,7.387,2658,4.771,2660,4.771,2667,3.086,2702,3.81,2735,2.808,2823,3.58,2887,2.624,2958,4.947,2959,11.408,2960,2.886,2961,5.907,2962,7.392,2963,6.833,2964,4.947,2965,4.771,2966,5.907,2967,5.907,2968,5.907,2969,2.487,2970,7.711,2971,8.123,2972,8.687,2973,8.687,2974,7.54,2975,3.685,2976,5.907,2977,8.455,2978,3.685,2979,3.685,2980,9.964,2981,3.407,2982,7.392,2983,3.685,2984,3.685,2985,5.907,2986,3.685,2987,3.407,2988,5.907,2989,3.685,2990,3.223,2991,5.907,2992,7.98,2993,3.685,2994,9.254,2995,5.907,2996,3.685,2997,4.947,2998,5.907,2999,3.685,3000,5.46,3001,5.632,3002,3.685,3003,3.685,3004,3.407,3005,3.685,3006,3.086,3007,2.886,3008,2.74,3009,2.234,3010,2.061,3011,3.685,3012,3.685,3013,2.977,3014,2.977,3015,2.74,3016,5.166,3017,3.685,3018,3.685,3019,3.685,3020,7.392,3021,3.685,3022,3.223,3023,2.886,3024,3.086,3025,3.685,3026,3.685,3027,9.589,3028,3.685,3029,3.685,3030,3.685,3031,3.086,3032,3.685,3033,5.46,3034,3.685,3035,3.685,3036,6.465,3037,3.086,3038,3.685,3039,3.685,3040,7.392,3041,3.086,3042,3.685,3043,3.685,3044,3.086,3045,3.685,3046,3.685,3047,4.206,3048,3.685,3049,4.294,3050,4.5,3051,3.685,3052,3.685,3053,3.685,3054,3.685,3055,3.223,3056,3.223,3057,3.407,3058,3.223,3059,3.086,3060,3.407,3061,3.685,3062,3.407,3063,3.223,3064,3.407,3065,3.685,3066,2.886,3067,3.685,3068,3.685,3069,3.685,3070,3.685,3071,3.685,3072,3.685,3073,3.685,3074,3.685,3075,3.685,3076,5.907,3077,3.685,3078,5.907,3079,5.907,3080,3.685,3081,3.685,3082,3.685,3083,3.685,3084,3.685,3085,3.685,3086,3.685,3087,3.685]],["title/classes/BoardDoAuthorizable.html",[0,0.232,3088,4.842]],["body/classes/BoardDoAuthorizable.html",[0,0.256,2,0.839,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,26,2.379,27,0.513,29,0.59,30,0.001,31,0.422,32,0.136,33,0.364,34,1.28,35,1.21,39,2.027,47,0.713,95,0.128,101,0.021,102,3.778,103,0.001,104,0.001,116,3.113,145,3.027,148,2.317,165,0.783,227,1.036,334,1.074,359,2.625,404,2.022,521,6.081,595,3.347,596,3.049,661,4.201,692,3.734,728,2.879,843,3.322,851,3.59,852,3.59,884,4.71,1031,3.132,1787,5.806,1790,5.254,1793,7.241,1855,4.73,1873,4.671,1942,5.166,2545,4.004,2758,5.001,2776,5.001,2805,9.362,3088,7.118,3089,6.584,3090,5.171,3091,9.657,3092,6.959,3093,7.528,3094,7.528,3095,7.528,3096,7.528,3097,10.61,3098,7.528,3099,8.074,3100,8.074,3101,8.742,3102,6.081,3103,6.584,3104,3.41,3105,7.143,3106,5.641,3107,6.584,3108,6.584,3109,8.55,3110,3.752,3111,6.304,3112,6.081,3113,8.742,3114,6.584]],["title/interfaces/BoardDoAuthorizableProps.html",[334,0.731,3111,5.694]],["body/interfaces/BoardDoAuthorizableProps.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.122,26,2.696,30,0.001,32,0.158,33,0.505,34,2.088,39,2.169,47,0.745,95,0.134,101,0.021,102,4.042,103,0.001,104,0.001,145,2.646,165,0.818,227,1.084,334,1.123,336,1.928,359,2.808,404,2.09,521,6.506,728,3.08,843,3.554,851,3.841,852,3.841,1031,3.274,1787,6.737,1790,4.412,1855,5.061,1873,4.998,1942,5.528,2545,4.284,2805,6.307,3088,5.736,3089,7.045,3090,5.501,3091,10.273,3097,10.644,3099,8.441,3100,8.441,3101,9.139,3102,6.506,3103,7.045,3104,3.649,3105,7.383,3106,5.897,3107,7.045,3108,7.045,3109,9.69,3110,4.015,3111,8.751,3112,6.506,3113,9.139,3114,7.045]],["title/injectables/BoardDoAuthorizableService.html",[105,0.91,3115,4.943]],["body/injectables/BoardDoAuthorizableService.html",[0,0.208,3,0.014,4,0.014,5,0.007,7,0.092,8,1.045,12,3.963,26,2.319,27,0.451,29,0.857,30,0.001,31,0.613,32,0.149,33,0.529,34,1.861,35,1.217,36,2.346,39,2.707,40,4.177,95,0.148,99,1.018,101,0.01,103,0,104,0,105,1.158,107,1.471,111,2.316,112,2.644,127,1.084,187,0.882,188,4.431,214,1.924,216,1.6,217,1.692,221,2.674,227,1.279,234,1.776,305,1.738,450,2.507,738,5.227,770,3.618,806,2.484,839,2.91,851,4.795,852,4.795,905,3.603,1868,6.99,1930,7.478,1953,4.263,2531,3.298,2557,5.348,2725,2.765,2823,6.094,2887,4.346,3066,4.779,3088,8.543,3090,5.336,3097,8.567,3099,4.929,3109,7.661,3110,5.012,3115,6.29,3116,8.801,3117,5.641,3118,8.654,3119,8.654,3120,4.536,3121,8.62,3122,6.102,3123,6.102,3124,8.654,3125,6.102,3126,6.776,3127,8.654,3128,6.102,3129,4.929,3130,5.641,3131,6.102,3132,7.569,3133,6.102,3134,10.055,3135,6.102,3136,6.102,3137,8.654,3138,6.102,3139,6.102,3140,6.102,3141,6.102,3142,6.102,3143,3.196,3144,4.779,3145,6.102,3146,6.68,3147,6.488,3148,8.654,3149,6.102,3150,6.102,3151,6.102,3152,6.102,3153,6.102,3154,5.337]],["title/interfaces/BoardDoBuilder.html",[334,0.731,3155,4.075]],["body/interfaces/BoardDoBuilder.html",[3,0.015,4,0.015,5,0.011,7,0.095,8,1.068,27,0.532,29,1.012,30,0.001,31,0.723,32,0.189,33,0.624,35,1.563,95,0.168,101,0.01,103,0.001,104,0.001,200,1.96,209,2.08,334,0.676,336,1.506,1790,2.657,2280,3.585,2553,4.981,2627,2.645,2655,6.215,2818,6.318,2823,6.197,2826,6.692,2829,6.692,2832,6.692,2835,6.598,2838,6.424,2841,6.345,2847,4.678,2848,3.038,2849,3.825,2850,3.772,3143,6.764,3155,5.3,3156,13.087,3157,6.293,3158,8.175,3159,8.175,3160,8.175,3161,8.175,3162,8.175,3163,8.175,3164,8.175,3165,8.175,3166,8.175,3167,8.175,3168,8.685,3169,6.293,3170,8.175,3171,8.959,3172,6.293,3173,8.175,3174,8.45,3175,6.293,3176,8.175,3177,8.685,3178,6.293,3179,8.175,3180,8.685,3181,6.293,3182,8.175,3183,8.685,3184,6.293,3185,8.175,3186,8.685,3187,6.293,3188,8.175,3189,8.685,3190,6.293,3191,8.175,3192,8.685,3193,6.293,3194,11.939,3195,3.905]],["title/classes/BoardDoBuilderImpl.html",[0,0.232,3196,5.947]],["body/classes/BoardDoBuilderImpl.html",[0,0.12,2,0.394,3,0.008,4,0.008,5,0.004,7,0.053,8,0.69,27,0.511,29,0.98,30,0.001,31,0.686,32,0.179,33,0.592,34,1.865,35,1.464,39,0.951,95,0.092,99,0.953,101,0.006,103,0,104,0,111,1.441,116,4.14,127,0.443,144,0.972,148,1.757,150,1.223,165,0.447,187,0.511,199,1.335,214,1.8,217,1.668,227,1.217,234,1.869,247,1.384,305,1.627,319,1.056,591,4.765,592,4.966,692,4.206,1041,4.615,1180,2.458,1397,2.763,2553,5.001,2557,1.727,2655,5.154,2686,2.569,2757,8.165,2777,5.279,2818,5.52,2823,5.872,2826,5.928,2829,5.401,2832,5.401,2835,5.324,2838,5.185,2841,5.12,2848,1.706,3143,7.21,3155,4.307,3158,5.279,3159,5.279,3160,5.279,3161,5.279,3162,5.279,3163,5.279,3164,5.279,3165,5.279,3166,5.279,3167,5.279,3168,6.462,3170,5.279,3171,6.665,3173,5.279,3174,6.287,3176,5.279,3177,6.462,3179,5.279,3180,6.462,3182,5.279,3183,6.462,3185,5.279,3186,6.462,3188,5.279,3189,6.462,3191,5.279,3192,6.462,3196,4.994,3197,10.941,3198,11.564,3199,3.533,3200,6.643,3201,5.71,3202,5.71,3203,5.71,3204,5.71,3205,5.71,3206,5.71,3207,4.994,3208,3.533,3209,5.71,3210,3.533,3211,3.533,3212,3.533,3213,5.71,3214,3.533,3215,3.533,3216,3.533,3217,3.533,3218,3.533,3219,3.533,3220,3.533,3221,5.71,3222,6.721,3223,3.533,3224,5.71,3225,3.533,3226,5.71,3227,3.533,3228,2.249,3229,3.533,3230,3.533,3231,3.533,3232,8.252,3233,3.266,3234,4.245,3235,8.252,3236,10.134,3237,8.252,3238,10.962,3239,10.962,3240,3.533,3241,3.091,3242,4.35,3243,3.091,3244,3.091,3245,3.091,3246,3.091,3247,3.091,3248,2.28,3249,3.533,3250,9.058,3251,2.095,3252,3.533,3253,2.095,3254,3.533,3255,3.533,3256,2.516,3257,3.533,3258,3.533,3259,1.824,3260,3.533,3261,3.091,3262,1.811,3263,3.533,3264,2.142,3265,3.533,3266,3.533,3267,1.976,3268,3.533,3269,3.533,3270,3.533,3271,3.533,3272,5.71,3273,3.533,3274,3.533,3275,3.533,3276,3.533,3277,3.533,3278,3.533,3279,3.533,3280,3.919,3281,2.347,3282,2.22,3283,3.533,3284,4.782,3285,3.533,3286,3.533,3287,5.71,3288,3.533,3289,3.533,3290,3.533,3291,3.533,3292,3.533]],["title/injectables/BoardDoCopyService.html",[105,0.91,3293,5.694]],["body/injectables/BoardDoCopyService.html",[0,0.299,3,0.021,4,0.021,5,0.013,7,0.133,8,1.335,27,0.363,29,0.689,30,0.001,31,0.492,32,0.15,33,0.425,35,1.064,36,2.37,95,0.168,99,1.467,101,0.018,103,0.001,104,0.001,105,1.478,107,2.12,112,2.664,116,3.764,185,3.417,187,1.272,192,2.62,217,1.438,221,2.035,227,0.912,234,1.428,1184,4.874,1750,4.902,2524,7.44,2557,5.402,2762,6.143,2960,6.885,2992,5.673,3009,5.329,3010,4.918,3116,8.42,3293,9.255,3294,10.216,3295,11.051,3296,12.679,3297,8.793,3298,7.69,3299,7.69,3300,8.793,3301,8.654,3302,7.363,3303,6.261,3304,7.69,3305,8.793,3306,8.793]],["title/injectables/BoardDoRepo.html",[105,0.91,3121,4.751]],["body/injectables/BoardDoRepo.html",[0,0.152,3,0.011,4,0.011,5,0.005,7,0.067,8,0.829,10,2.77,12,3.143,18,3.467,26,2.808,27,0.497,29,0.961,30,0.001,31,0.675,32,0.171,33,0.583,34,1.958,35,1.429,36,2.823,40,3.313,49,1.755,55,2.306,59,2.605,95,0.148,96,1.877,97,1.929,99,0.744,101,0.007,103,0,104,0,105,0.918,107,1.075,111,1.677,112,3.017,127,0.86,138,2.998,145,1.129,187,0.645,216,1.547,217,1.713,221,2.918,227,1.224,234,1.738,305,1.271,398,1.314,595,1.494,692,2.564,770,6.348,806,1.816,1772,5.374,1790,5.18,1865,2.032,2355,5.401,2367,4.492,2438,6.002,2557,6.344,2627,2.884,2644,2.391,2757,3.011,3121,4.795,3126,3.493,3143,4.919,3174,3.399,3196,3.901,3197,10.73,3198,4.124,3200,4.124,3207,3.901,3280,3.061,3299,6.002,3307,4.124,3308,8.364,3309,5.747,3310,6.344,3311,6.863,3312,6.863,3313,6.863,3314,3.116,3315,9.009,3316,8.364,3317,7.865,3318,4.461,3319,4.159,3320,4.461,3321,4.461,3322,10.642,3323,4.461,3324,8.364,3325,4.461,3326,6.002,3327,4.461,3328,6.344,3329,6.827,3330,4.461,3331,6.863,3332,4.461,3333,4.461,3334,6.863,3335,4.461,3336,6.863,3337,4.461,3338,6.002,3339,4.713,3340,4.461,3341,3.603,3342,4.461,3343,4.124,3344,4.124,3345,3.901,3346,4.461,3347,4.461,3348,4.461,3349,4.461,3350,4.461,3351,3.901,3352,4.461,3353,5.74,3354,6.344,3355,4.461,3356,4.461,3357,4.461,3358,4.461,3359,4.461,3360,6.344,3361,4.461,3362,4.461,3363,4.461,3364,2.518,3365,4.461,3366,3.603,3367,4.461,3368,3.901,3369,4.461,3370,4.461,3371,4.461,3372,4.461,3373,4.461,3374,4.461,3375,4.461,3376,4.461,3377,4.461,3378,4.461,3379,4.461,3380,4.461,3381,5.544,3382,4.461]],["title/injectables/BoardDoRule.html",[105,0.91,1886,5.694]],["body/injectables/BoardDoRule.html",[0,0.246,3,0.017,4,0.017,5,0.009,7,0.109,8,1.174,27,0.453,29,0.861,30,0.001,31,0.615,32,0.16,33,0.531,35,1.176,39,2.617,95,0.158,101,0.012,103,0.001,104,0.001,105,1.3,107,1.74,116,3.936,127,0.904,187,1.044,199,4.152,214,2.275,215,2.304,216,1.335,217,1.43,227,1.339,347,2.377,369,2.157,371,3.383,461,3.043,738,3.752,806,2.938,1795,6.353,1798,4.073,1813,5.14,1814,4.953,1823,7.842,1844,4.326,1861,7.124,1886,8.139,2002,6.271,2006,6.03,2013,4.795,3088,9.89,3099,5.83,3383,11.754,3384,7.217,3385,6.456,3386,4.871,3387,7.217,3388,7.217,3389,6.36,3390,7.217,3391,4.724,3392,4.871,3393,6.559,3394,5.365,3395,9.718,3396,7.217,3397,8.5,3398,7.217,3399,9.718,3400,9.718,3401,7.217]],["title/injectables/BoardDoService.html",[105,0.91,3402,5.055]],["body/injectables/BoardDoService.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,8,1.251,27,0.475,29,0.902,30,0.001,31,0.645,32,0.157,33,0.557,35,1.253,36,2.618,55,2.482,59,2.474,95,0.148,99,1.326,101,0.013,103,0.001,104,0.001,105,1.385,107,1.915,112,2.861,127,0.995,187,1.149,215,2.535,216,1.469,217,1.348,221,3.005,1790,3.354,2531,4.293,2557,6.686,2769,4.991,3116,9.302,3120,5.905,3121,9.071,3339,5.782,3402,7.698,3403,7.943,3404,10.355,3405,7.107,3406,7.943,3407,10.355,3408,7.943,3409,10.355,3410,12.209,3411,9.862,3412,7.943,3413,7.943,3414,7.943,3415,6.652,3416,7.943,3417,7.943,3418,7.943,3419,11.521,3420,7.943,3421,7.943,3422,7.943,3423,7.943,3424,7.943]],["title/entities/BoardElement.html",[380,1.445,2651,4.842]],["body/entities/BoardElement.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,9,4.879,26,2.195,27,0.427,30,0.001,31,0.684,32,0.166,34,1.761,95,0.167,96,2.173,101,0.02,103,0.001,104,0.001,165,0.811,208,2.967,364,1.447,369,1.763,380,2.2,381,2.642,398,2.34,399,4.108,400,3.505,404,1.431,405,2.117,406,2.583,1031,3.826,1843,5.787,1865,4.717,2627,3.338,2628,9.022,2647,5.465,2648,5.55,2649,5.443,2650,4.929,2651,7.374,2652,11.286,2655,4.225,2656,7.374,2657,6.947,2659,4.851,2702,5.958,2823,6.276,3001,10.074,3425,7.943,3426,7.943,3427,7.107,3428,7.943,3429,6.591,3430,7.235,3431,10.355,3432,5.656,3433,5.55,3434,5.905]],["title/classes/BoardElementResponse.html",[0,0.232,3435,5.694]],["body/classes/BoardElementResponse.html",[0,0.27,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,27,0.475,29,0.622,30,0.001,31,0.445,32,0.186,33,0.384,95,0.163,101,0.013,103,0.001,104,0.001,127,1.297,165,0.811,208,3.868,364,1.886,376,1.817,379,2.347,467,3.023,966,4.041,1013,4.743,1031,3.826,1184,5.74,2303,5.495,2439,6.076,2537,6.777,2553,4.414,2578,3.542,2627,5.557,2649,4.617,2655,6.735,2659,4.851,2731,9.649,2732,9.56,2733,9.56,3435,10.604,3436,5.55,3437,7.943,3438,9.649,3439,9.649,3440,7.943,3441,10.604,3442,10.355,3443,7.343,3444,7.943,3445,7.343,3446,7.943,3447,7.943,3448,4.87]],["title/interfaces/BoardExternalReference.html",[334,0.731,3329,4.943]],["body/interfaces/BoardExternalReference.html",[3,0.024,4,0.024,5,0.012,7,0.15,26,2.805,30,0.001,32,0.187,34,2.251,95,0.128,101,0.02,103,0.001,104,0.001,165,0.933,188,4.402,200,3.097,334,1.068,336,2.379,1031,3.116,2545,5.288,2805,7.786,2887,9.422,3329,8.663,3449,8.696]],["title/classes/BoardLessonResponse.html",[0,0.232,3439,5.694]],["body/classes/BoardLessonResponse.html",[0,0.313,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,27,0.546,29,0.521,30,0.001,31,0.691,32,0.18,33,0.611,34,2.029,47,0.88,55,2.657,83,3.477,95,0.135,101,0.011,103,0.001,104,0.001,127,1.152,165,0.72,347,1.86,364,2.382,374,2.125,375,3.503,376,1.523,467,3.563,469,2.923,471,4.271,591,5.184,592,5.403,618,2.722,620,4.295,622,4.295,966,3.387,2095,2.641,2655,7.112,2732,10.47,2733,10.47,2742,4.839,2745,6.707,3439,9.989,3450,6.657,3451,7.362,3452,7.494,3453,11.026,3454,11.026,3455,9.989,3456,6.657,3457,5.823,3458,6.657,3459,6.657,3460,6.657,3461,6.657,3462,6.657,3463,9.197,3464,6.657,3465,6.657,3466,6.154,3467,6.657,3468,6.657,3469,8.093,3470,4.741,3471,4.741,3472,6.657,3473,6.657,3474,6.657,3475,7.659]],["title/classes/BoardManagementConsole.html",[0,0.232,3476,5.947]],["body/classes/BoardManagementConsole.html",[0,0.27,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,8,1.251,27,0.427,29,0.811,30,0.001,31,0.58,32,0.141,33,0.501,35,0.962,36,2.22,47,0.738,49,3.125,95,0.157,101,0.013,103,0.001,104,0.001,111,1.592,112,2.539,127,0.995,144,2.185,215,2.535,217,1.034,221,1.838,227,0.824,234,1.29,319,2.374,364,1.447,379,2.611,734,4.525,783,4.814,836,4.614,883,5.179,2439,4.661,2627,5.635,2633,5.857,2655,5.508,3264,4.814,3476,9.057,3477,11.521,3478,6.947,3479,9.572,3480,6.652,3481,8.111,3482,11.074,3483,7.943,3484,8.365,3485,9.572,3486,6.416,3487,10.355,3488,7.943,3489,5.55,3490,8.379,3491,7.671,3492,4.71,3493,7.343,3494,6.22,3495,5.199,3496,7.943,3497,7.943,3498,6.652,3499,10.678,3500,7.943,3501,7.943,3502,5.905]],["title/injectables/BoardManagementUc.html",[105,0.91,3482,5.694]],["body/injectables/BoardManagementUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.924,26,2.483,27,0.496,29,0.963,30,0.001,31,0.674,32,0.17,33,0.582,34,0.876,35,1.418,36,2.166,55,2.95,95,0.139,96,1.409,97,2.228,99,0.86,101,0.009,103,0,104,0,105,1.023,107,1.242,111,2.712,112,2.493,127,0.645,144,1.417,145,1.304,148,1.585,187,0.745,188,2.826,199,2.892,215,1.644,217,1.524,221,2.618,227,1.275,319,1.539,369,1.143,371,1.42,687,2.195,692,2.858,784,2.784,905,4.207,1018,5.89,1041,2.881,1369,2.807,1370,3.422,1397,2.562,1583,3.371,2355,5.811,2627,3.215,2633,5.427,2655,4.07,2767,4.818,2818,4.359,2848,3.693,2887,3.668,3066,4.033,3143,6.967,3234,3.829,3242,3.924,3248,3.323,3259,3.949,3319,5.533,3339,6.448,3470,6.5,3479,7.073,3480,4.313,3481,6.712,3482,6.408,3484,6.18,3485,7.073,3489,3.599,3503,12.293,3504,4.761,3505,7.651,3506,7.651,3507,7.651,3508,7.651,3509,7.651,3510,7.073,3511,5.151,3512,5.151,3513,7.651,3514,5.151,3515,7.651,3516,5.151,3517,7.651,3518,5.151,3519,7.651,3520,5.151,3521,7.651,3522,9.128,3523,5.151,3524,4.505,3525,7.651,3526,8.162,3527,5.151,3528,5.151,3529,5.151,3530,5.151,3531,5.151,3532,4.761,3533,5.151,3534,5.151,3535,5.151,3536,5.151,3537,5.151,3538,5.151,3539,5.151,3540,5.151,3541,4.161,3542,5.151,3543,5.151,3544,5.151,3545,4.761,3546,5.151,3547,5.151,3548,5.151,3549,4.761,3550,9.128,3551,5.151,3552,5.151,3553,5.151,3554,5.151,3555,5.151,3556,4.505,3557,5.151,3558,5.151,3559,5.151,3560,5.151,3561,5.151]],["title/modules/BoardModule.html",[425,1.812,1956,5.181]],["body/modules/BoardModule.html",[0,0.195,3,0.014,4,0.014,5,0.007,30,0.001,95,0.17,99,0.958,101,0.01,103,0,104,0,187,0.83,425,2.834,427,2.073,428,2.23,429,2.296,430,2.286,431,2.276,432,3.575,433,3.672,438,5.506,442,3.313,443,2.248,444,2.194,449,3.285,450,2.357,461,1.312,766,4.064,774,3.938,1467,1.831,1734,4.265,1852,2.422,1930,7.123,1956,10.987,2440,3.268,2524,3.366,2531,3.101,2537,3.755,2627,2.411,2973,10.995,3006,4.805,3115,9.544,3121,8.211,3293,9.842,3294,5.304,3315,9.493,3317,9.842,3344,5.304,3402,8.736,3489,4.008,3562,5.737,3563,5.737,3564,5.737,3565,5.737,3566,9.203,3567,8.736,3568,7.384,3569,10.995,3570,10.605,3571,11.483,3572,9.76,3573,10.605,3574,9.493,3575,9.493,3576,9.842,3577,5.737,3578,2.961,3579,2.823,3580,2.336,3581,5.737,3582,5.737,3583,4.493,3584,3.872,3585,5.737,3586,4.493]],["title/entities/BoardNode.html",[380,1.445,3143,3.561]],["body/entities/BoardNode.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.168,9,4.176,26,2.48,27,0.482,30,0.001,32,0.178,33,0.429,34,1.889,47,0.888,55,2.52,95,0.16,96,1.727,101,0.015,103,0.001,104,0.001,145,2.244,165,0.694,167,3.261,187,0.913,208,3.311,217,1.333,227,1.213,234,1.025,240,3.711,247,4.013,305,1.798,334,0.678,364,2.131,369,1.967,370,3.659,371,3.345,380,1.883,381,2.1,386,5.835,398,1.86,399,3.516,400,2.786,402,2.617,404,1.138,405,1.682,406,2.053,576,5.781,618,3.624,619,4.913,627,1.937,883,2.678,905,3.69,1031,2.777,1353,3.047,1397,3.719,1790,2.665,2557,4.332,2627,2.653,2747,3.258,2767,5.862,3132,5.521,3143,5.365,3155,5.312,3222,6.81,3280,6.083,3339,4.448,3353,4.333,3432,4.495,3587,5.836,3588,7.614,3589,6.313,3590,5.836,3591,6.313,3592,6.313,3593,6.313,3594,6.313,3595,6.313,3596,4.81,3597,8.193,3598,5.434,3599,9.468,3600,8.193,3601,5.521,3602,4.943,3603,5.836,3604,5.836,3605,5.836,3606,5.836,3607,4.41,3608,4.41,3609,4.018,3610,5.007,3611,5.836,3612,5.836,3613,7.752,3614,5.836,3615,5.836,3616,5.836,3617,5.836,3618,5.836,3619,3.917,3620,5.836,3621,5.836]],["title/interfaces/BoardNodeProps.html",[334,0.731,3598,4.169]],["body/interfaces/BoardNodeProps.html",[0,0.222,3,0.015,4,0.015,5,0.008,7,0.17,9,4.27,26,2.665,30,0.001,32,0.171,33,0.62,34,2.138,47,0.896,55,2.55,95,0.161,96,1.783,101,0.015,103,0.001,104,0.001,145,2.295,165,0.71,167,3.335,187,0.942,208,3.386,217,1.356,227,1.227,234,1.058,240,3.755,247,4.082,305,1.857,334,0.7,336,1.56,369,1.446,370,3.71,371,2.873,380,1.926,398,1.92,399,3.595,400,2.876,402,2.701,404,1.174,405,1.737,406,2.12,576,3.678,618,3.706,619,5.024,627,2,883,2.765,905,3.773,1031,2.84,1353,3.146,1397,3.963,1790,2.752,2557,4.43,2627,2.739,2747,3.363,2767,6.247,3132,5.7,3143,5.899,3155,5.432,3222,6.388,3280,6.22,3339,5.94,3353,4.473,3432,4.641,3587,6.024,3588,4.845,3596,4.965,3597,8.377,3598,6.388,3599,9.631,3600,8.377,3601,5.7,3602,5.103,3603,6.024,3604,6.024,3605,6.024,3606,6.024,3607,4.553,3608,4.553,3609,4.148,3610,5.093,3611,6.024,3612,6.024,3613,7.926,3614,6.024,3615,6.024,3616,6.024,3617,6.024,3618,6.024,3619,4.044,3620,6.024,3621,6.024]],["title/injectables/BoardNodeRepo.html",[105,0.91,3315,5.493]],["body/injectables/BoardNodeRepo.html",[0,0.217,3,0.015,4,0.015,5,0.008,7,0.096,8,1.078,12,4.086,26,2.364,27,0.46,29,0.874,30,0.001,31,0.625,32,0.152,33,0.539,34,1.751,35,1.246,36,2.609,40,4.307,55,2.217,59,1.985,95,0.132,96,1.743,97,2.756,99,1.064,101,0.011,103,0.001,104,0.001,105,1.193,107,1.536,112,2.854,127,0.798,145,1.614,187,0.922,215,2.034,216,1.178,217,1.686,221,2.383,227,1.295,247,2.497,380,2.494,574,2.798,576,5.035,957,3.533,958,7.472,1166,3.057,1180,2.743,1750,3.957,1852,2.691,1855,4.004,2355,6.414,3143,6.784,3197,10.268,3207,10.268,3280,4.374,3314,4.452,3315,7.207,3319,5.407,3322,10.852,3354,8.248,3364,5.81,3588,4.737,3622,6.373,3623,8.922,3624,8.922,3625,6.373,3626,6.373,3627,8.922,3628,6.373,3629,8.922,3630,6.373,3631,6.373,3632,5.891,3633,6.373,3634,8.922,3635,8.248,3636,10.295,3637,5.148,3638,8.922,3639,8.922,3640,6.373,3641,6.373,3642,5.574,3643,6.373,3644,6.373,3645,8.922,3646,6.373,3647,6.373,3648,6.373,3649,4.452,3650,6.373,3651,6.373,3652,6.373,3653,6.373,3654,5.337,3655,6.373,3656,6.373,3657,6.373,3658,6.373,3659,6.373]],["title/injectables/BoardRepo.html",[105,0.91,2970,5.055]],["body/injectables/BoardRepo.html",[0,0.195,3,0.014,4,0.014,5,0.007,7,0.087,8,0.999,10,3.338,12,3.788,18,4.179,26,2.808,27,0.521,29,0.971,30,0.001,31,0.694,32,0.169,33,0.6,34,1.407,35,1.501,36,2.75,40,3.993,95,0.125,99,0.956,101,0.01,103,0,104,0,105,1.106,107,1.381,111,2.532,112,3.023,187,0.829,188,3.926,217,1.613,221,3.038,227,1.218,234,0.93,380,1.217,381,2.751,404,1.491,596,3.243,692,4.852,806,3.952,877,7.106,883,3.509,884,3.898,885,4.905,908,3.513,909,3.555,910,3.513,911,3.555,913,3.513,914,3.555,915,3.176,1041,3.204,1345,2.273,2627,5.74,2630,3.6,2633,5.408,2654,6.302,2658,6.682,2660,6.682,2702,4.374,2970,6.149,3660,5.729,3661,8.272,3662,8.272,3663,8.272,3664,8.272,3665,8.272,3666,5.729,3667,8.272,3668,5.729,3669,5.729,3670,8.272,3671,5.729,3672,8.272,3673,5.729,3674,5.729,3675,3.932,3676,5.729,3677,8.272,3678,5.729,3679,5.729,3680,5.011,3681,5.729,3682,5.729,3683,5.729,3684,5.729,3685,5.729,3686,9.708,3687,8.974,3688,5.729,3689,5.729,3690,5.729,3691,5.729,3692,5.729]],["title/classes/BoardResponse.html",[0,0.232,2931,5.694]],["body/classes/BoardResponse.html",[0,0.28,2,0.918,3,0.019,4,0.019,5,0.01,7,0.124,27,0.528,29,0.645,30,0.001,31,0.461,32,0.178,33,0.567,34,2.178,47,0.883,95,0.159,101,0.014,103,0.001,104,0.001,127,1.328,145,2.085,165,0.83,364,2.254,376,1.884,467,3.44,469,3.616,475,4.026,618,3.368,966,4.19,1011,4.161,1397,4.288,2742,5.986,2745,6.747,2747,4.25,2883,5.39,2884,5.638,2885,5.638,2931,10.725,2932,9.998,3234,9.52,3693,8.235,3694,7.593,3695,8.235,3696,8.235,3697,8.235,3698,6.809,3699,8.235,3700,8.235,3701,8.235,3702,5.471,3703,6.897,3704,5.471]],["title/classes/BoardResponseMapper.html",[0,0.232,2935,5.947]],["body/classes/BoardResponseMapper.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,27,0.355,29,0.674,30,0.001,31,0.482,32,0.148,33,0.416,34,1.464,35,1.042,95,0.162,99,1.436,100,2.881,101,0.014,103,0.001,104,0.001,187,1.244,217,1.12,227,1.13,234,1.943,305,2.451,591,3.74,627,3.672,731,3.4,806,3.503,974,5.102,975,6.043,1397,2.881,1410,4.856,1750,4.835,2384,5.157,2627,3.616,2655,6.691,2769,5.407,2823,7.625,2931,10.536,2935,9.535,2936,7.206,2957,7.955,3047,6.128,3234,6.397,3549,7.955,3694,5.102,3698,6.332,3705,10.901,3706,10.078,3707,7.206,3708,8.104,3709,5.717,3710,7.526,3711,8.605,3712,8.605,3713,8.605,3714,6.951,3715,6.128,3716,8.605,3717,8.605]],["title/controllers/BoardSubmissionController.html",[481,2.611,2724,5.947]],["body/controllers/BoardSubmissionController.html",[0,0.209,3,0.015,4,0.015,5,0.007,7,0.093,8,1.051,27,0.359,29,0.681,30,0.001,31,0.487,32,0.184,33,0.421,35,1.053,36,1.866,95,0.167,100,2.059,101,0.01,103,0,104,0,111,2.024,112,2.651,127,0.77,187,0.889,206,4.427,216,1.867,217,1.314,221,2.014,227,0.638,264,4.243,364,1.585,376,1.407,447,2.549,481,2.361,483,2.932,491,6.083,498,5.971,502,6.812,506,7.185,509,6.324,513,6.248,538,3.92,543,4.427,552,3.968,553,6.119,554,7.936,555,3.197,556,3.271,558,2.95,561,3.297,563,5.215,564,4.533,1016,3.055,1019,5.053,1392,6.815,2627,2.584,2644,4.664,2716,7.906,2717,8.156,2718,8.456,2724,7.61,2727,2.95,2728,5.378,2729,5.684,2730,5.684,2783,6.052,2849,5.01,2850,3.685,2900,6.468,2904,6.629,2905,4.685,2908,7.872,2910,4.967,2923,8.156,2925,5.215,2928,4.47,2930,3.297,2937,4.967,2947,4.967,2948,4.967,3090,3.763,3195,3.816,3282,5.467,3339,4.366,3718,10.097,3719,6.149,3720,4.91,3721,8.456,3722,9.334,3723,6.149,3724,9.602,3725,6.149,3726,6.149,3727,6.149,3728,6.149,3729,6.149,3730,9.602,3731,9.602,3732,6.149,3733,6.149,3734,6.149,3735,7.286,3736,6.149,3737,6.149,3738,5.15,3739,6.149,3740,6.149,3741,5.378,3742,6.149,3743,5.105,3744,6.149,3745,5.684,3746,6.149,3747,6.149,3748,6.149,3749,6.149,3750,5.684]],["title/classes/BoardTaskResponse.html",[0,0.232,3438,5.694]],["body/classes/BoardTaskResponse.html",[0,0.227,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,27,0.551,29,0.521,30,0.001,31,0.691,32,0.182,33,0.647,34,2.029,47,0.944,83,3.942,95,0.135,101,0.011,103,0.001,104,0.001,127,1.152,165,0.72,364,2.411,375,4.981,376,1.523,379,2.388,467,3.473,469,2.923,564,4.373,591,5.184,592,5.403,618,2.722,620,4.295,622,4.295,966,3.387,2037,3.906,2095,2.641,2627,2.798,2649,2.968,2655,7.172,2732,10.559,2733,10.559,2742,4.839,2745,7.234,3262,5.399,3438,9.989,3451,7.362,3457,8.044,3751,6.657,3752,6.799,3753,6.538,3754,6.657,3755,6.657,3756,6.657,3757,6.657,3758,6.657,3759,6.657,3760,6.657,3761,6.657,3762,6.657,3763,8.824,3764,6.657,3765,6.657,3766,5.213]],["title/classes/BoardTaskStatusMapper.html",[0,0.232,3767,5.947]],["body/classes/BoardTaskStatusMapper.html",[0,0.33,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,8,1.419,27,0.4,29,0.76,30,0.001,31,0.543,32,0.132,33,0.469,35,1.175,95,0.151,99,1.619,100,3.932,101,0.016,103,0.001,104,0.001,217,1.263,227,1.006,234,1.575,564,3.557,627,3.875,975,6.51,982,4.837,3763,10.576,3767,10.271,3768,11.743,3769,9.703,3770,10.271,3771,8.719,3772,9.703,3773,9.703]],["title/classes/BoardTaskStatusResponse.html",[0,0.232,3763,5.694]],["body/classes/BoardTaskStatusResponse.html",[0,0.26,2,0.852,3,0.018,4,0.018,5,0.009,7,0.115,27,0.54,29,0.599,30,0.001,31,0.428,32,0.178,33,0.37,55,2.767,95,0.098,101,0.013,103,0.001,104,0.001,127,1.265,165,0.791,347,2.598,364,2.34,376,1.748,467,3.637,966,3.888,2649,5.929,2655,7.073,2732,10.413,2733,10.413,3763,10.472,3774,7.064,3775,8.44,3776,8.736,3777,8.184,3778,8.184,3779,8.905,3780,8.44,3781,7.064,3782,7.642,3783,7.642,3784,7.642,3785,7.642,3786,7.642,3787,7.642,3788,6.4,3789,7.064,3790,6.4,3791,6.173,3792,7.064,3793,7.064]],["title/classes/BoardUrlParams.html",[0,0.232,2899,5.947]],["body/classes/BoardUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2627,4.964,2899,10.332,3499,11.092,3794,9.798,3795,5.749,3796,9.798]],["title/classes/BruteForceError.html",[0,0.232,1740,5.947]],["body/classes/BruteForceError.html",[0,0.256,2,0.838,3,0.018,4,0.018,5,0.009,7,0.113,8,1.206,27,0.546,29,0.589,30,0.001,31,0.421,32,0.186,33,0.542,35,0.91,47,0.912,55,2.754,95,0.128,101,0.013,103,0.001,104,0.001,127,0.941,165,0.782,187,1.087,204,4.053,216,2.557,364,2.265,380,1.597,404,1.799,406,2.444,511,3.796,558,3.605,564,2.755,596,3.9,1013,5.471,1016,2.638,1142,5.192,1180,3.234,1216,5.111,1395,8.223,1396,6.387,1397,4,1398,7.136,1402,4.848,1403,4.165,1404,4.848,1405,4.848,1406,4.848,1407,4.848,1408,4.848,1409,4.503,1410,4.241,1416,4.721,1740,8.732,1765,11.818,3797,11.211,3798,7.514,3799,9.983,3800,9.983,3801,6.946,3802,7.514,3803,7.514]],["title/injectables/BsonConverter.html",[105,0.91,3804,5.694]],["body/injectables/BsonConverter.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.235,27,0.422,29,0.801,30,0.001,31,0.573,32,0.139,33,0.494,35,1.467,95,0.131,101,0.013,103,0.001,104,0.001,105,1.368,107,1.878,187,1.126,217,1.331,227,1.06,264,4.297,379,2.317,734,4.437,778,9.012,1345,5.124,1630,9.707,2284,12.344,3804,8.562,3805,7.79,3806,9.451,3807,9.451,3808,10.224,3809,7.79,3810,10.224,3811,11.011,3812,9.488,3813,9.487,3814,9.007,3815,11.201,3816,12.117,3817,10.224,3818,7.79,3819,10.224,3820,7.79,3821,7.79,3822,8.942,3823,7.79]],["title/classes/Builder.html",[0,0.232,2114,4.589]],["body/classes/Builder.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,8,1.396,27,0.515,29,0.74,30,0.001,31,0.529,32,0.157,33,0.457,35,1.144,101,0.016,103,0.001,104,0.001,127,1.184,165,0.905,216,2.309,227,0.98,661,5.247,667,6.165,692,5.135,2049,6.713,2114,7.801,2115,10.456,3824,9.453,3825,11.558,3826,11.558,3827,11.558,3828,9.453,3829,11.558]],["title/classes/BusinessError.html",[0,0.232,1395,4.169]],["body/classes/BusinessError.html",[0,0.34,2,0.673,3,0.014,4,0.014,5,0.007,7,0.091,8,1.037,9,4.711,27,0.507,29,0.473,30,0.001,31,0.338,32,0.184,33,0.483,35,0.731,47,0.853,55,1.85,59,2.675,95,0.14,101,0.01,103,0,104,0,127,1.076,145,1.529,165,0.673,187,0.873,204,4.34,216,2.505,217,0.786,227,0.626,234,1.623,359,2.105,364,2.096,375,3.272,376,1.381,379,2.709,404,1.548,406,1.964,467,3.018,564,3.149,661,3.61,795,3.702,806,2.458,966,3.072,1013,4.987,1016,3.015,1142,6.079,1180,4.952,1216,4.684,1345,2.396,1395,5.266,1396,7.287,1397,4.209,1398,6.931,1403,3.347,1409,7.372,1410,6.145,1415,3.702,1416,6.281,1423,7.127,1539,7.512,1695,3.844,2051,4.893,2139,3.896,2578,3.83,2747,4.433,3580,3.497,3708,8.094,3830,6.038,3831,6.938,3832,6.938,3833,5.895,3834,6.544,3835,5.467,3836,9.524,3837,9.632,3838,8.589,3839,6.038,3840,6.038,3841,6.038,3842,6.038,3843,6.038,3844,6.038,3845,6.038,3846,5.281,3847,5.582,3848,5.582,3849,6.544,3850,7.94,3851,8.589,3852,6.038,3853,6.038]],["title/injectables/CacheService.html",[105,0.91,3854,5.694]],["body/injectables/CacheService.html",[0,0.334,3,0.023,4,0.023,5,0.012,7,0.148,8,1.429,27,0.405,30,0.001,35,1.189,95,0.163,101,0.016,103,0.001,104,0.001,105,1.582,107,2.368,187,1.42,227,1.018,1530,7.301,2130,4.29,2131,4.801,2132,4.628,3854,9.907,3855,9.821,3856,13.177,3857,9.821,3858,11.104,3859,5.493,3860,9.821,3861,7.483,3862,9.079,3863,8.59,3864,9.821]],["title/modules/CacheWrapperModule.html",[425,1.812,1545,5.493]],["body/modules/CacheWrapperModule.html",[0,0.268,3,0.019,4,0.019,5,0.009,30,0.001,47,0.734,95,0.172,101,0.013,103,0.001,104,0.001,150,2.724,187,1.137,204,2.669,217,1.492,227,1.067,334,0.845,425,3.055,427,2.841,428,3.057,429,3.147,430,3.134,431,3.121,432,4.219,433,4.334,438,4.82,442,4.117,443,3.082,444,3.008,449,4.082,837,5.601,839,3.751,883,4.365,1467,2.511,1545,10.809,2007,8.311,2130,3.436,2131,3.845,2132,3.706,2356,3.231,2357,5.223,3580,3.202,3854,11.755,3858,6.88,3859,4.399,3861,8.736,3863,6.88,3865,7.866,3866,7.866,3867,7.866,3868,7.866,3869,10.289,3870,10.289,3871,6.88,3872,6.159,3873,8.057,3874,8.617,3875,7.866,3876,7.866,3877,7.866,3878,9.511,3879,7.271,3880,7.866,3881,6.88,3882,7.271,3883,6.88,3884,6.88,3885,7.271]],["title/classes/CalendarEventDto.html",[0,0.232,3886,5.694]],["body/classes/CalendarEventDto.html",[0,0.33,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,27,0.52,29,0.758,30,0.001,31,0.542,32,0.171,33,0.468,47,0.935,100,3.241,101,0.016,103,0.001,104,0.001,127,1.212,165,0.918,1397,4.224,2747,4.996,3886,11.247,3887,13.113,3888,9.68,3889,8.658,3890,9.82,3891,11.726,3892,9.68,3893,9.68,3894,8.948,3895,8.948]],["title/injectables/CalendarMapper.html",[105,0.91,3896,5.694]],["body/injectables/CalendarMapper.html",[0,0.321,3,0.022,4,0.022,5,0.011,7,0.142,8,1.394,27,0.389,29,0.739,30,0.001,31,0.528,32,0.128,33,0.456,35,1.142,95,0.16,101,0.016,103,0.001,104,0.001,105,1.544,107,2.273,187,1.364,217,1.227,227,0.978,234,1.531,630,9.323,1397,3.158,3886,10.884,3889,7.921,3896,9.666,3897,9.431,3898,11.542,3899,10.884,3900,9.431,3901,7.618,3902,9.431,3903,8.718,3904,8.718,3905,8.718,3906,7.618,3907,9.431,3908,9.431,3909,7.185,3910,9.431]],["title/modules/CalendarModule.html",[425,1.812,3911,5.694]],["body/modules/CalendarModule.html",[0,0.315,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.015,103,0.001,104,0.001,187,1.336,425,3.293,427,3.337,428,3.589,429,3.696,430,3.68,431,3.664,432,4.547,433,4.67,442,4.559,443,3.619,444,3.532,449,3.664,1155,5.365,3896,11.304,3911,11.663,3912,9.236,3913,9.236,3914,9.236,3915,12.377,3916,9.236,3917,7.691,3918,9.236,3919,8.538]],["title/injectables/CalendarService.html",[105,0.91,3915,5.947]],["body/injectables/CalendarService.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.098,8,1.091,26,2.661,27,0.487,29,0.814,30,0.001,31,0.582,32,0.161,33,0.503,34,1.103,35,1.093,36,1.937,39,2.432,47,0.872,55,2.238,95,0.171,99,1.082,101,0.011,103,0.001,104,0.001,105,1.208,107,1.563,111,2.64,112,2.29,127,0.812,150,3.891,154,5.147,165,0.707,167,2.387,185,3.51,187,0.938,193,10.334,215,2.07,216,2.367,217,1.175,227,0.937,234,1.687,238,5.812,250,8.703,254,5.673,255,5.673,270,5.673,305,1.848,363,4.128,576,5.865,1154,8.547,1155,3.767,1157,4.245,1265,4.941,1270,3.845,1353,4.36,1354,4.618,1355,5.079,1631,5.673,1820,4.024,2022,6.432,2033,4.531,2130,2.833,2131,3.17,2132,3.056,2292,7.918,2293,7.564,2308,5.995,2316,5.995,2317,5.995,2338,5.995,2579,4.618,3859,3.627,3886,5.431,3896,10.512,3899,5.431,3903,5.995,3904,5.995,3905,5.995,3915,7.9,3919,5.995,3920,6.486,3921,10.392,3922,9.032,3923,5.995,3924,9.032,3925,9.032,3926,11.238,3927,6.486,3928,9.078,3929,6.486,3930,6.486,3931,6.486,3932,6.486,3933,9.032,3934,6.486,3935,6.486,3936,6.486,3937,4.821,3938,6.486,3939,6.486,3940,6.486]],["title/classes/Card.html",[0,0.232,2818,3.873]],["body/classes/Card.html",[0,0.196,2,0.643,3,0.014,4,0.014,5,0.01,7,0.087,8,1.004,27,0.542,29,0.973,30,0.001,31,0.696,32,0.175,33,0.601,35,1.532,36,1.783,47,0.806,55,2.614,59,1.797,95,0.156,101,0.016,103,0,104,0,112,2.148,116,2.59,148,3.624,165,0.651,200,1.797,208,2.156,209,1.907,217,0.751,221,1.336,227,1.106,334,0.62,347,1.971,363,5.292,404,1.756,595,2.784,596,3.789,661,3.494,687,2.46,692,3.106,728,3.18,806,4.794,884,3.918,1345,2.289,1397,3.943,1790,5.245,1793,6.289,1865,3.787,2280,3.287,2557,6.279,2627,2.425,2749,7.669,2752,5.921,2753,5.921,2754,5.921,2755,5.524,2756,5.921,2758,3.834,2759,5.098,2760,6.258,2762,5.809,2763,5.098,2764,6.134,2766,4.031,2767,4.388,2769,6.124,2770,4.031,2772,5.921,2774,4.031,2776,3.834,2804,5.039,2818,6.076,2826,5.442,2829,5.442,2832,5.442,2835,5.365,2838,5.224,2846,8.218,2847,4.289,2848,2.785,2849,2.496,2850,3.458,3248,7.598,3941,5.334,3942,5.77,3943,5.77,3944,5.334,3945,4.195,3946,4.195,3947,4.195,3948,4.832,3949,5.77,3950,5.047,3951,5.77,3952,5.77,3953,5.77,3954,5.77,3955,5.77,3956,3.626,3957,5.706,3958,4.518,3959,7.686,3960,5.334,3961,5.159,3962,5.334,3963,5.334,3964,5.047,3965,5.334]],["title/controllers/CardController.html",[481,2.611,2722,5.947]],["body/controllers/CardController.html",[0,0.129,3,0.009,4,0.009,5,0.005,7,0.057,8,0.727,10,3.032,27,0.412,29,0.782,30,0.001,31,0.559,32,0.189,33,0.483,35,1.208,36,2.561,95,0.14,100,1.264,101,0.006,103,0,104,0,111,0.757,112,2.817,163,1.162,187,0.546,206,1.921,215,1.205,216,1.113,217,1.363,221,2.31,227,0.624,234,1.22,264,3.936,364,1.818,376,0.864,447,1.565,481,1.449,483,1.8,491,6.336,498,4.133,502,7.412,506,7.818,509,8.354,513,6.694,529,2.617,538,2.713,543,4.765,552,2.436,553,6.348,554,8.324,555,1.963,556,2.008,558,1.811,561,2.024,563,5.982,564,4.834,770,2.238,883,2.555,1016,2.114,1392,7.069,1397,2.016,1750,2.671,2553,3.202,2556,3.049,2644,5.351,2715,6.291,2716,5.882,2722,5.267,2727,1.811,2783,6.277,2818,5.686,2900,7.42,2902,4.864,2904,7.605,2905,7.135,2908,7.522,2910,6.924,2923,9.797,2924,6.924,2925,5.138,2928,2.744,2929,2.171,2930,2.024,2937,3.049,2947,6.924,2948,6.924,2951,3.302,3242,6.531,3248,3.885,3282,6.833,3405,4.133,3545,3.49,3966,3.775,3967,6.944,3968,6.022,3969,7.512,3970,6.944,3971,7.512,3972,7.512,3973,3.775,3974,10.988,3975,7.498,3976,3.775,3977,5.723,3978,5.723,3979,5.723,3980,3.775,3981,4.377,3982,3.49,3983,3.775,3984,3.775,3985,3.775,3986,8.572,3987,3.775,3988,3.775,3989,3.775,3990,7.512,3991,7.498,3992,3.775,3993,3.775,3994,3.775,3995,3.775,3996,3.775,3997,7.498,3998,3.775,3999,3.775,4000,3.775,4001,7.498,4002,3.775,4003,3.775,4004,3.775,4005,3.775,4006,3.775,4007,2.372,4008,4.864,4009,2.403,4010,6.57,4011,4.588,4012,4.588,4013,3.775,4014,3.775,4015,3.162,4016,3.049,4017,3.775,4018,5.267,4019,3.775,4020,6.022,4021,3.775,4022,6.022,4023,3.49,4024,3.775,4025,3.775,4026,9.365,4027,3.775,4028,3.302,4029,3.775,4030,3.775,4031,3.775,4032,3.775,4033,3.775,4034,3.775,4035,3.775,4036,3.775,4037,2.403,4038,5.811,4039,3.302,4040,3.302,4041,3.302,4042,3.302,4043,3.302,4044,3.775,4045,4.715,4046,3.775,4047,3.302]],["title/classes/CardIdsParams.html",[0,0.232,3991,5.947]],["body/classes/CardIdsParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.171,47,0.956,95,0.15,101,0.016,103,0.001,104,0.001,145,2.434,165,0.914,364,1.75,369,2.133,374,3.068,376,2.198,379,2.178,467,3.063,770,7.947,1000,4.753,1858,6.115,2450,5.475,3991,10.212,4048,10.793,4049,9.611,4050,9.611,4051,7.763,4052,6.851,4053,9.611]],["title/classes/CardListResponse.html",[0,0.232,4010,5.947]],["body/classes/CardListResponse.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,27,0.479,29,0.747,30,0.001,31,0.534,32,0.17,33,0.461,95,0.149,101,0.016,103,0.001,104,0.001,127,1.456,145,2.416,163,4.117,165,0.911,364,1.738,376,2.183,467,3.05,966,4.855,1006,6.667,1011,4.821,1026,5.29,4010,11.7,4048,11.589,4054,9.542,4055,10.541,4056,9.542,4057,9.542]],["title/entities/CardNode.html",[380,1.445,3168,5.324]],["body/entities/CardNode.html",[0,0.302,3,0.021,4,0.021,5,0.011,7,0.134,27,0.366,30,0.001,32,0.151,55,2.614,95,0.168,96,2.426,101,0.019,103,0.001,104,0.001,165,0.87,208,3.314,217,1.154,227,0.92,240,3.849,334,0.953,364,1.616,380,2.361,381,2.951,398,2.613,404,2.002,405,2.364,617,4.917,1790,4.692,2577,5.006,2578,3.955,2818,6.33,3143,5.82,3155,6.66,3168,8.701,3222,5.438,3241,9.719,3248,8.207,3280,6.088,3391,5.805,3596,6.758,3598,6.813,3619,5.504,4058,10.272,4059,5.646,4060,8.2,4061,5.646,4062,9.719,4063,7.428,4064,8.2,4065,8.2]],["title/interfaces/CardNodeProps.html",[334,0.731,4062,5.947]],["body/interfaces/CardNodeProps.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.151,55,2.744,95,0.168,96,2.437,101,0.019,103,0.001,104,0.001,165,0.873,208,3.328,217,1.159,227,0.924,240,3.535,334,0.957,336,2.132,380,2.368,398,2.625,404,2.191,405,2.374,617,4.939,1790,4.705,2577,5.028,2578,3.972,2818,6.348,3143,5.836,3155,6.678,3168,6.977,3222,5.463,3241,9.746,3248,8.463,3280,6.115,3391,5.831,3596,6.788,3598,7.455,3619,5.528,4058,8.236,4059,5.671,4061,5.671,4062,10.634,4063,7.461,4064,8.236,4065,8.236]],["title/interfaces/CardProps.html",[334,0.731,3964,5.947]],["body/interfaces/CardProps.html",[0,0.258,3,0.018,4,0.018,5,0.012,7,0.114,30,0.001,32,0.153,36,1.623,47,0.889,55,2.685,95,0.168,101,0.019,103,0.001,104,0.001,112,1.668,148,2.33,165,0.786,200,2.358,208,2.828,209,2.502,217,0.985,221,1.752,227,1.242,334,0.813,336,1.812,347,1.531,404,2.028,687,3.227,728,3.837,806,5.216,1345,3.003,1397,4.29,1790,5.263,1865,4.57,2280,4.312,2557,4.904,2627,3.181,2749,6.081,2759,4.641,2760,5.887,2763,4.641,2764,5.77,2772,5.391,2804,6.82,2818,6.41,2826,6.566,2829,6.566,2832,6.566,2835,6.474,2838,6.304,2846,9.062,2847,5.627,2848,3.654,2849,3.274,2850,4.537,3248,8.266,3941,6.998,3956,4.756,3957,6.886,3958,5.928,3959,9.275,3960,6.998,3961,6.226,3962,6.998,3963,6.998,3964,8.775,3965,6.998]],["title/classes/CardResponse.html",[0,0.232,4055,5.493]],["body/classes/CardResponse.html",[0,0.24,2,0.785,3,0.017,4,0.017,5,0.008,7,0.106,27,0.529,29,0.551,30,0.001,31,0.394,32,0.177,33,0.525,34,2.069,47,0.83,55,2.059,95,0.156,101,0.012,103,0.001,104,0.001,127,1.197,145,1.783,165,0.749,364,2.285,375,3.64,376,1.611,467,3.472,469,3.091,475,3.442,618,2.879,966,3.582,1011,3.558,1019,5.551,1041,6.804,1397,4.073,1858,5.006,2553,3.001,2556,8.764,2745,6.083,2747,3.634,2883,4.608,2884,5.083,2885,5.083,3248,7.849,3457,6.158,3694,7.213,3698,6.302,3702,4.678,3704,4.678,3977,7.281,3978,7.281,3979,7.281,4008,7.72,4009,4.482,4011,7.281,4012,7.281,4037,4.482,4038,7.549,4039,6.158,4040,6.158,4041,6.158,4042,6.158,4043,6.158,4055,9.827,4063,5.897,4066,7.041,4067,11.246,4068,7.041,4069,7.041,4070,7.041,4071,7.041,4072,7.041,4073,7.041,4074,9.086,4075,7.041,4076,6.158,4077,7.041,4078,6.509,4079,7.041]],["title/classes/CardResponseMapper.html",[0,0.232,4015,5.694]],["body/classes/CardResponseMapper.html",[0,0.307,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,8,1.357,27,0.372,29,0.707,30,0.001,31,0.506,32,0.123,33,0.437,34,1.536,35,1.093,95,0.157,99,1.507,100,3.023,101,0.015,103,0.001,104,0.001,217,1.175,227,0.936,234,1.986,591,3.924,627,3.753,974,5.354,975,6.229,980,6.879,1041,5.05,1397,3.023,1750,4.984,2303,3.66,2553,3.849,2818,7.501,3248,5.826,3694,5.354,3698,6.526,3715,6.43,4015,9.41,4016,7.293,4047,7.897,4055,10.34,4067,8.347,4074,9.41,4080,11.236,4081,11.236,4082,9.029,4083,7.897,4084,7.897,4085,7.562,4086,9.029,4087,9.029,4088,9.029]],["title/injectables/CardService.html",[105,0.91,3569,5.694]],["body/injectables/CardService.html",[0,0.178,3,0.012,4,0.012,5,0.006,7,0.079,8,0.934,10,3.121,12,3.541,26,2.495,27,0.509,29,0.966,30,0.001,31,0.691,32,0.168,33,0.597,34,0.889,35,1.462,36,2.859,47,0.656,49,2.055,55,2.449,59,2.408,83,2.365,95,0.146,99,0.872,101,0.009,103,0,104,0,105,1.034,107,1.259,111,2.28,112,3.043,127,0.968,187,0.755,216,1.702,217,1.413,221,2.947,227,0.955,234,1.763,305,1.488,591,2.271,592,2.367,734,2.976,770,3.097,806,2.127,883,3.28,1397,3.636,2303,2.118,2531,2.823,2627,2.195,2644,2.801,2655,6.259,2757,3.526,2818,7.947,3120,3.883,3121,7.944,3242,5.891,3248,7.007,3309,6.475,3339,5.706,3402,8.747,3405,5.307,3411,8.218,3415,4.375,3569,6.475,3572,8.747,4018,4.569,4084,4.569,4085,4.375,4089,5.224,4090,7.732,4091,7.732,4092,6.763,4093,5.224,4094,6.763,4095,10.792,4096,6.308,4097,5.224,4098,7.732,4099,5.224,4100,7.732,4101,5.224,4102,7.732,4103,5.224,4104,6.246,4105,7.732,4106,5.224,4107,7.732,4108,10.174,4109,5.224,4110,7.732,4111,5.224,4112,7.732,4113,5.224,4114,4.22,4115,5.224,4116,5.224,4117,5.224,4118,5.224,4119,5.224,4120,4.829,4121,3.419,4122,4.829,4123,5.224,4124,5.224,4125,5.224,4126,5.224,4127,7.732,4128,7.732,4129,7.732,4130,5.224]],["title/classes/CardSkeletonResponse.html",[0,0.232,4131,5.694]],["body/classes/CardSkeletonResponse.html",[0,0.292,2,0.957,3,0.02,4,0.02,5,0.01,7,0.13,27,0.493,29,0.673,30,0.001,31,0.481,32,0.162,33,0.415,47,0.776,55,2.345,72,4.932,95,0.11,101,0.014,103,0.001,104,0.001,127,1.364,144,2.994,165,0.853,364,1.983,376,1.964,379,1.946,467,3.136,475,4.197,946,7.125,966,4.369,1013,3.933,2504,8.294,2818,6.202,2883,5.62,2884,5.791,2885,5.791,3248,8.687,3427,7.472,4063,7.191,4104,10.478,4131,10.863,4132,12.57,4133,8.586,4134,8.586,4135,8.586,4136,10.887,4137,9.522,4138,10.887,4139,9.522,4140,7.125,4141,10.887,4142,10.064,4143,10.064,4144,8.586,4145,8.586]],["title/injectables/CardUc.html",[105,0.91,2716,5.324]],["body/injectables/CardUc.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.07,8,0.85,26,2.959,27,0.465,29,0.911,30,0.001,31,0.632,32,0.173,33,0.546,35,1.313,36,2.689,39,3.377,55,2.43,59,1.435,95,0.132,99,0.769,101,0.008,103,0,104,0,105,0.941,107,1.111,111,2.479,112,2.917,127,0.881,145,1.167,187,0.666,199,3.61,216,1.902,217,1.685,221,3.063,227,1.125,461,1.61,692,3.844,766,1.928,1041,2.578,1467,1.471,1695,2.934,1750,2.044,1798,7.512,1799,4.265,1813,6.803,1814,3.163,1884,5.862,1982,4.217,1984,3.609,1988,5.231,2356,3.506,2357,4.351,2401,3.35,2406,3.609,2553,4.623,2557,4.669,2716,5.51,2725,2.088,2818,5.442,3088,7.327,3115,8.201,3126,8.057,3242,5.361,3411,8.311,3569,9.448,3572,7.101,3961,4.366,3967,8.831,3970,4.26,4018,8.355,4045,8.493,4096,5.121,4104,7.716,4146,4.609,4147,7.89,4148,7.036,4149,8.535,4150,7.148,4151,3.723,4152,7.465,4153,4.609,4154,5.51,4155,4.609,4156,4.609,4157,4.609,4158,7.036,4159,9.397,4160,4.609,4161,7.036,4162,8.535,4163,4.609,4164,7.036,4165,4.609,4166,4.609,4167,9.553,4168,4.609,4169,4.031,4170,4.609,4171,7.278,4172,4.609,4173,7.036,4174,4.609,4175,4.609,4176,7.48,4177,4.609,4178,7.036,4179,6.505,4180,4.609,4181,7.89,4182,4.609,4183,4.031,4184,3.11,4185,4.609,4186,4.609,4187,4.609,4188,4.609,4189,4.609]],["title/classes/CardUrlParams.html",[0,0.232,3974,5.947]],["body/classes/CardUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2818,6.729,3795,5.749,3974,10.332,4104,10.244,4190,9.798,4191,9.798]],["title/classes/ChallengeParams.html",[0,0.232,4192,5.947]],["body/classes/ChallengeParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,355,4.733,361,6.529,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,470,4.927,479,7.248,4192,10.301,4193,9.75,4194,9.583,4195,9.75]],["title/classes/ChangeLanguageParams.html",[0,0.232,4196,5.694]],["body/classes/ChangeLanguageParams.html",[0,0.405,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,27,0.409,30,0.001,32,0.135,95,0.164,99,1.655,101,0.017,103,0.001,104,0.001,165,0.932,364,1.807,374,3.166,376,2.269,467,3.122,1031,3.108,1044,4.758,2888,6.011,4196,9.965,4197,9.918,4198,8.907,4199,10.072,4200,9.918,4201,9.918,4202,9.918]],["title/classes/Class.html",[0,0.318]],["body/classes/Class.html",[0,0.377,2,0.697,3,0.015,4,0.029,5,0.008,7,0.094,8,1.064,26,2.802,27,0.565,29,0.49,30,0.001,31,0.653,32,0.12,33,0.302,35,1.066,39,2.371,47,0.942,55,1.897,62,6.49,83,3.384,95,0.131,101,0.015,103,0.001,104,0.001,116,3.631,145,3.212,148,1.925,165,0.69,227,1.394,334,0.672,359,2.18,404,1.836,591,4.807,592,5.011,595,2.948,596,2.686,661,3.7,692,3.289,884,4.149,1787,5.114,1790,4.922,1793,6.575,1873,3.881,2545,3.326,2758,4.155,2776,4.155,2779,5.47,2781,5.47,2785,4.897,2786,4.897,4203,5.781,4204,8.139,4205,3.728,4206,7.876,4207,8.427,4208,8.04,4209,8.427,4210,6.95,4211,8.427,4212,8.427,4213,8.139,4214,6.254,4215,4.765,4216,6.254,4217,3.929,4218,6.254,4219,6.254,4220,6.254,4221,5.237,4222,6.254,4223,6.254,4224,6.254,4225,6.254,4226,6.254,4227,6.254,4228,6.254,4229,6.254,4230,6.254,4231,6.254,4232,6.254,4233,6.254,4234,6.254,4235,6.254,4236,6.254,4237,6.254,4238,6.254,4239,7.764,4240,5.237,4241,5.237,4242,5.237,4243,5.781,4244,8.139,4245,5.781,4246,5.781,4247,5.781,4248,5.781,4249,5.781,4250,5.781,4251,5.781,4252,5.781,4253,5.781,4254,5.781]],["title/entities/ClassEntity.html",[380,1.445,4255,4.943]],["body/entities/ClassEntity.html",[0,0.268,2,0.596,3,0.013,4,0.027,5,0.006,7,0.179,26,1.666,27,0.528,30,0.001,31,0.576,32,0.174,33,0.647,34,0.909,47,0.923,49,5.264,55,2.009,62,6.034,95,0.141,96,2.15,97,2.31,99,0.891,101,0.013,103,0,104,0,111,1.071,144,1.469,145,3.195,165,0.73,234,0.867,240,4.107,305,1.522,334,0.574,359,2.74,364,2.331,369,2.969,370,4.088,380,1.67,381,1.777,386,6.751,396,6.155,398,1.574,399,3.118,402,2.214,404,0.963,405,1.423,406,1.737,618,2.184,619,4.357,905,2.224,2095,2.119,4205,3.466,4206,7.324,4207,7.835,4208,7.967,4209,7.835,4210,6.887,4211,7.835,4212,7.835,4255,5.714,4256,4.938,4257,5.342,4258,5.342,4259,5.342,4260,5.342,4261,5.342,4262,6.583,4263,5.342,4264,8.583,4265,3.804,4266,5.342,4267,5.342,4268,5.342,4269,5.342,4270,5.342,4271,4.283,4272,3.238,4273,4.938,4274,7.81,4275,4.474,4276,9.507,4277,6.583,4278,4.938,4279,4.938,4280,4.474,4281,2.333,4282,3.167,4283,3.971,4284,7.266,4285,4.183,4286,4.938,4287,4.938,4288,7.266,4289,4.938,4290,7.266,4291,4.938,4292,4.938,4293,6.155,4294,3.971,4295,7.266,4296,4.938,4297,5.989,4298,3.883,4299,7.266,4300,4.938]],["title/classes/ClassEntityFactory.html",[0,0.232,4301,6.286]],["body/classes/ClassEntityFactory.html",[0,0.163,2,0.533,3,0.011,4,0.021,5,0.006,7,0.072,8,0.874,27,0.533,29,1.021,30,0.001,31,0.717,32,0.18,33,0.603,34,1.656,35,1.458,47,0.516,49,4.74,55,2.462,59,3.258,62,5.124,95,0.125,101,0.008,103,0,104,0,127,0.599,138,3.162,144,3.237,148,1.472,165,0.567,185,4.849,216,1.339,217,0.942,227,0.751,234,1.855,319,3.517,359,2.524,366,2.675,379,1.979,380,2.222,381,2.408,404,1.304,538,3.262,596,3.903,627,2.221,660,7.221,661,4.624,662,5.496,665,4.085,666,5.496,667,5.711,668,4.085,669,4.085,670,4.085,671,4.013,672,4.475,673,4.929,674,7.032,675,5.798,676,7.046,677,2.725,682,2.7,683,4.085,684,2.725,685,5.139,686,5.306,687,4.151,688,4.989,689,4.048,690,2.7,691,2.544,692,4.111,693,2.629,694,2.585,695,2.7,696,5.062,697,2.725,698,4.841,699,2.7,700,7.138,701,4.161,702,6.642,703,2.725,704,4.324,705,2.7,706,2.725,707,2.7,708,2.725,709,2.7,710,3.045,711,2.836,712,2.7,713,6.1,714,2.725,715,2.7,716,4.085,717,3.82,718,4.085,719,2.725,720,2.607,721,2.585,722,2.133,723,2.7,724,2.7,725,2.7,726,2.725,727,2.725,728,1.829,729,2.7,730,2.725,731,2.86,732,2.7,733,2.725,734,2.725,735,2.779,737,2.867,1858,2.506,2280,2.725,4205,1.612,4206,3.407,4207,3.645,4208,3.477,4209,3.645,4210,3.006,4211,3.645,4212,3.645,4255,3.477,4264,5.668,4274,4.006,4301,8.073,4302,4.784,4303,6.692,4304,6.692,4305,4.784,4306,4.006,4307,4.784,4308,4.784,4309,3.407,4310,3.645]],["title/classes/ClassFactory.html",[0,0.232,4311,6.286]],["body/classes/ClassFactory.html",[0,0.295,2,0.527,3,0.011,4,0.023,5,0.006,7,0.071,8,0.866,27,0.532,29,1.019,30,0.001,31,0.715,32,0.179,33,0.602,34,1.645,35,1.453,47,0.742,49,1.858,55,2.451,59,3.239,62,5.084,83,2.193,95,0.134,96,1.292,97,2.042,101,0.008,103,0,104,0,127,0.591,138,3.131,144,3.224,148,1.453,165,0.561,185,4.834,216,1.325,217,0.933,227,0.743,234,2.02,319,3.503,359,2.499,366,2.641,379,1.963,380,1.841,381,2.384,404,1.292,538,3.23,591,2.052,592,2.139,596,3.892,627,2.199,660,7.013,661,4.601,662,5.459,665,4.045,666,5.459,667,5.556,668,4.045,669,4.045,670,4.045,671,3.974,672,4.439,673,4.89,674,7.013,675,5.765,676,6.967,677,2.69,682,2.665,683,4.045,684,2.69,685,5.105,686,5.271,687,4.123,688,4.956,689,4.009,690,2.665,691,2.512,692,4.09,693,2.595,694,2.552,695,2.665,696,5.029,697,2.69,698,4.803,699,2.665,700,7.118,701,4.144,702,6.615,703,2.69,704,3.549,705,2.665,706,2.69,707,2.665,708,2.69,709,2.665,712,2.665,713,6.069,714,2.69,715,2.665,716,4.045,717,3.783,718,4.045,719,2.69,720,2.573,721,2.552,722,2.105,723,2.665,724,2.665,725,2.665,726,2.69,727,2.69,728,1.806,729,2.665,730,2.69,731,2.832,732,2.665,733,2.69,735,2.743,737,2.83,2280,2.69,3532,4.365,4121,7.672,4205,1.592,4206,3.363,4207,3.598,4208,3.433,4209,3.598,4210,2.967,4211,3.598,4212,3.598,4239,5.461,4240,3.955,4241,3.955,4303,6.626,4304,6.626,4309,3.363,4310,3.598,4311,8.009,4312,4.722,4313,6.17,4314,4.722,4315,3.433,4316,4.722,4317,4.722]],["title/classes/ClassInfoDto.html",[0,0.232,4318,5.324]],["body/classes/ClassInfoDto.html",[0,0.359,2,0.909,3,0.019,4,0.019,5,0.01,7,0.123,27,0.556,29,0.639,30,0.001,31,0.691,32,0.189,33,0.643,34,1.984,47,0.98,95,0.105,101,0.014,103,0.001,104,0.001,127,1.021,165,0.825,347,2.13,405,2.806,595,2.73,618,3.334,619,4.519,2095,3.234,2470,5.595,2578,3.635,4281,3.561,4318,9.997,4319,13.623,4320,7.536,4321,9.423,4322,9.77,4323,7.635,4324,7.239,4325,10.531,4326,8.152,4327,8.152,4328,8.152,4329,8.152,4330,8.152,4331,10.203,4332,8.152,4333,4.886,4334,7.536,4335,7.536,4336,7.536,4337,7.536,4338,6.211,4339,6.384,4340,7.536,4341,7.536]],["title/classes/ClassInfoResponse.html",[0,0.232,4342,5.694]],["body/classes/ClassInfoResponse.html",[0,0.256,2,0.838,3,0.018,4,0.018,5,0.009,7,0.113,27,0.546,29,0.589,30,0.001,31,0.669,32,0.188,33,0.631,34,1.907,47,0.974,95,0.128,101,0.013,103,0.001,104,0.001,127,0.941,145,1.903,165,0.782,347,2.019,364,2.376,375,4.969,376,1.719,405,2.66,467,3.423,595,2.516,618,3.073,619,4.165,1011,3.796,1031,2.354,2095,2.981,2213,5.884,2470,5.157,2578,3.35,2888,4.554,4281,3.282,4321,9.056,4322,9.389,4323,7.338,4324,6.957,4331,10.876,4333,4.503,4334,6.946,4335,6.946,4336,6.946,4337,6.946,4338,5.725,4339,5.884,4340,6.946,4341,6.946,4342,10.414,4343,12.398,4344,9.229,4345,7.514,4346,7.514,4347,7.514,4348,7.514,4349,6.572,4350,7.514,4351,7.514]],["title/classes/ClassInfoSearchListResponse.html",[0,0.232,4352,5.694]],["body/classes/ClassInfoSearchListResponse.html",[0,0.349,2,0.872,3,0.027,4,0.018,5,0.009,7,0.118,27,0.519,29,0.613,30,0.001,31,0.438,32,0.184,33,0.609,55,3.021,56,6.202,59,3.192,70,6.401,95,0.147,101,0.013,103,0.001,104,0.001,127,0.98,145,1.98,163,3.877,165,0.803,364,2.21,376,1.789,404,1.847,467,2.689,469,3.433,596,3.702,1005,7.299,1006,5.463,1007,8.077,1008,6.987,1009,5.839,1010,7.229,1011,3.951,1012,7.229,1013,5.237,1014,3.729,1015,4.373,1016,2.745,1017,5.463,1018,6.614,1019,5.953,1020,5.118,1021,4.159,1022,5.463,1023,5.463,1025,4.913,1026,4.335,4342,11.032,4343,9.475,4352,8.584,4353,6.549]],["title/classes/ClassMapper.html",[0,0.232,4354,5.947]],["body/classes/ClassMapper.html",[0,0.464,2,0.756,3,0.016,4,0.027,5,0.008,7,0.102,8,1.125,27,0.472,29,0.897,30,0.001,31,0.695,32,0.156,33,0.554,34,1.584,35,1.386,49,2.668,62,5.465,95,0.147,96,1.855,97,2.932,101,0.011,103,0.001,104,0.001,111,2.487,145,2.9,227,1.188,234,2.101,380,1.979,381,2.255,591,2.947,592,3.072,627,4.15,921,5.04,1790,2.863,1904,2.836,2367,4.438,2403,5.309,2408,4.737,4205,3.139,4206,6.632,4207,7.096,4208,6.77,4209,7.096,4210,5.852,4211,7.096,4212,7.096,4239,7.096,4240,5.678,4255,9.832,4310,5.166,4354,8.146,4355,6.78,4356,9.314,4357,9.314,4358,9.314,4359,9.314,4360,9.314,4361,6.78,4362,9.314,4363,6.78,4364,9.314,4365,6.78,4366,9.314,4367,6.78,4368,6.78,4369,4.375,4370,5.309,4371,6.78,4372,6.78,4373,6.78,4374,6.78,4375,6.78,4376,6.78,4377,6.78,4378,6.78,4379,5.93,4380,6.78,4381,6.78,4382,6.78,4383,5.678,4384,5.678,4385,5.93,4386,6.78,4387,6.78,4388,6.78,4389,6.78,4390,6.78,4391,6.78,4392,6.78,4393,6.78,4394,6.268,4395,6.78,4396,6.78,4397,6.78,4398,6.78,4399,6.78,4400,6.268,4401,6.78]],["title/modules/ClassModule.html",[425,1.812,4402,5.694]],["body/modules/ClassModule.html",[0,0.32,3,0.022,4,0.022,5,0.011,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.357,425,3.317,427,3.391,428,3.648,429,3.756,430,3.74,431,3.724,432,4.58,433,4.704,442,4.605,443,3.678,444,3.59,766,3.926,2531,5.073,4402,11.694,4403,9.387,4404,9.387,4405,9.387,4406,11.875,4407,11.348,4408,9.387]],["title/interfaces/ClassProps.html",[334,0.731,4241,5.694]],["body/interfaces/ClassProps.html",[0,0.348,3,0.015,4,0.029,5,0.008,7,0.095,26,2.96,30,0.001,31,0.654,32,0.183,33,0.662,39,1.692,47,0.981,55,2.387,62,6.852,83,3.886,95,0.131,101,0.015,103,0.001,104,0.001,116,1.957,145,3.216,165,0.692,227,1.395,334,0.675,336,1.504,359,2.191,404,1.841,591,5.076,592,5.29,1787,5.934,1790,3.73,1873,3.899,2545,3.342,2785,4.92,2786,4.92,4203,5.808,4205,3.936,4206,8.316,4207,8.898,4208,8.489,4209,8.898,4210,7.338,4211,8.898,4212,8.898,4213,5.808,4239,8.898,4240,5.262,4241,7.398,4242,5.262,4243,5.808,4244,8.166,4245,5.808,4246,5.808,4247,5.808,4248,5.808,4249,5.808,4250,5.808,4251,5.808,4252,5.808,4253,5.808,4254,5.808]],["title/injectables/ClassService.html",[105,0.91,4406,5.694]],["body/injectables/ClassService.html",[0,0.416,2,1.156,3,0.019,4,0.019,5,0.01,7,0.12,8,1.252,26,2.805,27,0.475,29,0.903,30,0.001,31,0.646,32,0.157,33,0.558,34,1.354,35,1.255,36,2.62,39,2.792,95,0.157,99,1.328,101,0.013,103,0.001,104,0.001,105,1.387,107,1.919,112,2.863,116,4.046,127,0.997,145,2.015,187,1.151,215,2.54,216,1.472,217,1.501,221,2.669,227,1.196,234,1.292,305,2.267,1127,5.066,1353,3.842,1790,3.36,1904,3.329,2367,5.209,2531,4.302,4205,2.682,4400,7.357,4406,8.683,4407,10.879,4409,7.959,4410,10.368,4411,8.375,4412,7.959,4413,7.959,4414,10.368,4415,7.959,4416,8.683,4417,7.959,4418,7.959,4419,7.357,4420,7.959,4421,7.959,4422,7.959,4423,7.959,4424,7.959,4425,7.959]],["title/classes/ClassSortParams.html",[0,0.232,4426,5.947]],["body/classes/ClassSortParams.html",[0,0.383,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,31,0.629,32,0.153,33,0.543,95,0.157,101,0.019,103,0.001,104,0.001,144,2.483,165,0.88,319,2.699,364,2.047,374,2.882,375,4.28,376,2.065,404,2.025,469,3.964,471,4.554,596,3.427,1031,3.521,1044,4.332,3015,9.093,4321,7.293,4426,9.827,4427,9.029,4428,7.293,4429,7.897,4430,10.636,4431,8.043,4432,13.167,4433,9.029,4434,7.897,4435,6.094,4436,7.562,4437,7.897,4438,9.029,4439,9.029]],["title/classes/ClassSourceOptions.html",[0,0.232,4239,5.181]],["body/classes/ClassSourceOptions.html",[0,0.317,2,1.037,3,0.022,4,0.031,5,0.011,7,0.14,27,0.511,29,0.728,30,0.001,31,0.521,32,0.156,33,0.45,47,0.816,101,0.019,103,0.001,104,0.001,127,1.165,145,2.355,165,0.896,227,0.964,334,0.999,405,3.049,595,4.446,661,5.209,884,5.392,1791,7.788,4239,8.719,4310,9.854,4440,11.956,4441,8.597,4442,11.826,4443,11.443,4444,9.3,4445,9.3,4446,8.597]],["title/classes/ClassSourceOptionsEntity.html",[0,0.232,4264,5.324]],["body/classes/ClassSourceOptionsEntity.html",[0,0.315,2,1.03,3,0.022,4,0.031,5,0.011,7,0.14,27,0.47,29,0.723,30,0.001,31,0.517,32,0.155,33,0.598,47,0.881,95,0.119,96,2.527,101,0.019,103,0.001,104,0.001,127,1.157,145,2.339,165,0.893,240,3.615,334,0.992,364,1.682,369,2.529,370,3.043,386,5.261,398,2.721,405,3.036,595,3.092,2574,5.881,4264,8.923,4310,9.83,4447,11.424,4448,8.538,4449,11.285,4450,11.395,4451,10.534,4452,8.538]],["title/interfaces/ClassSourceOptionsEntityProps.html",[334,0.731,4449,5.947]],["body/interfaces/ClassSourceOptionsEntityProps.html",[0,0.33,3,0.023,4,0.028,5,0.012,7,0.146,30,0.001,32,0.132,33,0.567,47,0.935,95,0.124,96,2.648,101,0.02,103,0.001,104,0.001,145,2.451,165,0.918,240,3.72,334,1.04,336,2.317,369,2.148,370,3.189,398,2.852,405,2.579,2574,6.052,4264,7.58,4310,10.232,4447,8.948,4448,8.948,4449,11.034,4451,10.84,4452,8.948]],["title/interfaces/ClassSourceOptionsProps.html",[334,0.731,4442,5.947]],["body/interfaces/ClassSourceOptionsProps.html",[0,0.336,3,0.023,4,0.028,5,0.012,7,0.149,30,0.001,32,0.134,33,0.574,47,0.941,101,0.02,103,0.001,104,0.001,145,2.499,165,0.929,227,1.023,334,1.06,336,2.362,405,2.63,595,3.973,661,4.148,1791,8.265,4239,7.52,4310,10.287,4440,9.124,4441,9.124,4442,11.544,4446,9.124]],["title/injectables/ClassesRepo.html",[105,0.91,4407,5.694]],["body/injectables/ClassesRepo.html",[0,0.443,2,1.242,3,0.018,4,0.018,5,0.009,7,0.112,8,1.195,26,2.757,27,0.49,29,0.931,30,0.001,31,0.666,32,0.162,33,0.575,35,1.348,36,2.731,39,1.997,49,2.918,62,4.352,95,0.164,96,2.029,97,3.208,99,1.238,101,0.012,103,0.001,104,0.001,105,1.324,107,1.788,112,2.948,127,0.929,187,1.073,206,3.774,215,2.367,216,1.371,217,1.658,221,2.578,227,1.026,234,1.607,380,1.576,921,5.513,1904,3.102,2355,6.835,3314,5.182,3319,5.999,4205,3.336,4255,8.097,4354,6.487,4407,8.289,4453,7.417,4454,9.897,4455,7.995,4456,9.897,4457,7.417,4458,9.897,4459,7.417,4460,8.289,4461,7.417,4462,9.897,4463,7.417,4464,9.897,4465,6.856,4466,6.903,4467,9.897,4468,7.417,4469,7.417,4470,7.417,4471,7.417,4472,7.417,4473,7.417,4474,7.417]],["title/injectables/CloseUserLoginMigrationUc.html",[105,0.91,4475,5.694]],["body/injectables/CloseUserLoginMigrationUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,8,1.108,26,2.678,27,0.434,29,0.824,30,0.001,31,0.589,32,0.143,33,0.509,35,1.111,36,1.968,39,1.787,47,0.473,95,0.153,99,1.107,101,0.011,103,0.001,104,0.001,105,1.227,107,1.599,111,2.532,112,2.318,127,1.149,145,1.68,167,2.442,204,2.251,216,2.099,217,1.55,221,2.852,227,1.177,234,1.49,305,2.614,347,2.295,355,5.173,461,2.889,766,2.775,843,2.928,1798,5.179,1799,4.021,1813,4.725,1884,6.827,1982,3.977,2725,3.006,4184,4.478,4205,4.015,4475,7.684,4476,5.06,4477,11.349,4478,5.36,4479,8.026,4480,11.349,4481,5.36,4482,8.774,4483,9.389,4484,10.203,4485,6.134,4486,9.176,4487,6.635,4488,9.176,4489,7.95,4490,6.635,4491,7.392,4492,4.932,4493,7.185,4494,5.055,4495,5.196,4496,5.557,4497,6.134,4498,8.237,4499,6.635,4500,5.557,4501,4.932,4502,8.026,4503,6.635,4504,8.026,4505,6.134,4506,6.134,4507,6.134,4508,5.055,4509,5.557]],["title/injectables/CollaborativeStorageAdapter.html",[105,0.91,4510,5.694]],["body/injectables/CollaborativeStorageAdapter.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.081,8,0.953,27,0.489,29,0.9,30,0.001,31,0.643,32,0.161,33,0.555,34,1.342,35,1.33,36,2.611,47,0.667,72,3.575,95,0.152,100,4.077,101,0.009,103,0,104,0,105,1.056,107,1.295,111,1.582,127,0.988,148,1.653,163,2.428,165,0.618,187,0.777,200,2.458,206,4.759,227,1.069,264,4.989,379,2.602,493,6.012,494,6.883,496,5.247,520,5.242,728,3.943,839,2.561,1467,1.714,1849,6.237,2255,5.619,2356,3.842,2357,4.696,2925,4.729,3579,6.114,3889,5.416,4510,6.608,4511,8.219,4512,10.651,4513,5.37,4514,5.736,4515,8.329,4516,10.198,4517,6.902,4518,6.374,4519,9.129,4520,6.902,4521,6.374,4522,6.374,4523,7.891,4524,6.374,4525,6.374,4526,5.37,4527,10.039,4528,8.635,4529,7.891,4530,6.374,4531,8.998,4532,5.37,4533,8.541,4534,6.374,4535,5.37,4536,7.891,4537,5.37,4538,6.374,4539,5.37,4540,7.891,4541,7.204,4542,8.074,4543,5.37,4544,5.866,4545,4.697,4546,4.205,4547,4.497,4548,6.608,4549,5.37,4550,4.697,4551,4.964,4552,3.992,4553,5.37,4554,5.37,4555,7.891,4556,5.37,4557,5.37,4558,5.37,4559,5.37]],["title/injectables/CollaborativeStorageAdapterMapper.html",[105,0.91,4528,5.694]],["body/injectables/CollaborativeStorageAdapterMapper.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,8,1.249,27,0.327,29,0.621,30,0.001,31,0.444,32,0.108,33,0.383,35,0.96,95,0.162,100,4.578,101,0.013,103,0.001,104,0.001,105,1.383,107,1.911,116,3.585,187,1.146,227,1.072,234,1.287,264,4.837,379,1.796,496,5.58,1849,6.633,1904,4.326,3579,5.088,3889,5.441,4466,6.007,4511,6.98,4515,9.854,4518,8.354,4528,8.661,4531,8.687,4533,7.57,4541,8.523,4542,9.553,4544,7.688,4545,6.934,4546,8.098,4547,6.639,4550,9.045,4552,5.893,4560,7.928,4561,10.342,4562,10.342,4563,7.928,4564,8.354,4565,8.354,4566,9.854,4567,6.404,4568,6.934,4569,6.934,4570,6.934,4571,4.32,4572,5.645,4573,7.928,4574,7.928,4575,7.928,4576,7.928,4577,7.928]],["title/modules/CollaborativeStorageAdapterModule.html",[425,1.812,4578,5.694]],["body/modules/CollaborativeStorageAdapterModule.html",[0,0.242,3,0.017,4,0.017,5,0.009,30,0.001,47,0.507,95,0.175,101,0.012,103,0.001,104,0.001,187,1.029,217,0.926,425,2.906,427,2.57,428,2.765,429,2.847,430,2.835,431,2.823,432,4.014,433,4.122,438,5.895,442,3.851,443,2.788,444,2.721,449,3.819,836,5.591,1155,4.133,1307,5.067,1467,2.271,1954,9.355,1955,5.959,2130,3.108,2131,3.478,2132,3.353,3568,7.907,3579,4.735,3859,3.98,3917,6.496,4510,11.417,4511,4.802,4512,6.224,4516,5.959,4527,5.748,4528,10.539,4548,9.135,4550,6.224,4551,6.578,4578,11.89,4579,7.115,4580,7.115,4581,7.115,4582,7.115,4583,9.355,4584,9.148,4585,11.633,4586,11.254,4587,7.115,4588,4.968,4589,7.115,4590,7.115,4591,6.578,4592,5.572,4593,3.595,4594,7.115,4595,9.625,4596,7.115,4597,7.115,4598,7.115]],["title/controllers/CollaborativeStorageController.html",[481,2.611,4599,5.947]],["body/controllers/CollaborativeStorageController.html",[0,0.36,3,0.016,4,0.016,5,0.008,7,0.101,8,1.115,27,0.276,29,0.524,30,0.001,31,0.375,32,0.091,33,0.324,35,0.81,36,1.979,95,0.163,101,0.011,103,0.001,104,0.001,111,1.341,187,0.967,200,3.547,204,3.131,215,2.135,216,1.237,227,0.694,234,1.498,264,5.021,364,1.219,367,3.19,376,1.53,379,3.003,447,2.773,461,2.605,481,2.569,483,3.19,491,5.603,496,5.216,498,6.334,502,5.726,506,6.04,509,6.708,511,4.663,513,6.037,520,7.566,524,5.308,535,4.948,543,4.695,552,4.317,554,7.507,555,3.478,556,3.558,561,3.587,564,4.175,843,2.952,1184,5.116,1467,2.135,1849,5.715,2356,2.748,2357,4.203,2451,7.455,2930,3.587,3579,6.077,4516,10.006,4525,8.534,4533,8.004,4567,7.455,4599,8.072,4600,6.447,4601,9.228,4602,6.69,4603,7.728,4604,6.69,4605,11.045,4606,9.538,4607,11.948,4608,9.2,4609,6.69,4610,6.69,4611,7.455,4612,9.228,4613,6.69,4614,7.031,4615,6.69,4616,6.69,4617,9.228,4618,6.334,4619,8.072,4620,7.728,4621,6.185,4622,6.185,4623,5.852,4624,6.185,4625,6.69,4626,6.69,4627,6.69,4628,6.69,4629,6.69,4630,6.69]],["title/modules/CollaborativeStorageModule.html",[425,1.812,4631,5.493]],["body/modules/CollaborativeStorageModule.html",[0,0.252,3,0.018,4,0.018,5,0.009,30,0.001,95,0.175,101,0.012,103,0.001,104,0.001,187,1.071,425,2.965,427,2.674,428,2.877,429,2.962,430,2.95,431,2.937,432,4.095,433,4.206,438,5.964,442,3.955,443,2.901,444,2.831,447,4.097,449,3.922,450,3.041,1467,2.363,1547,9.463,1878,6.88,1936,8.737,2725,3.354,3579,3.642,4512,8.646,4544,8.273,4548,6.2,4578,10.661,4599,9.734,4600,5.172,4620,11.488,4621,6.844,4622,6.844,4631,11.507,4632,7.403,4633,7.403,4634,7.403,4635,7.403,4636,10.661,4637,10.661,4638,10.661,4639,6.844,4640,7.403,4641,6.475,4642,6.844,4643,7.403,4644,6.475,4645,6.2,4646,6.844,4647,7.403,4648,7.403]],["title/injectables/CollaborativeStorageService.html",[105,0.91,4636,5.694]],["body/injectables/CollaborativeStorageService.html",[0,0.184,3,0.013,4,0.013,5,0.007,7,0.082,8,0.959,26,2.194,27,0.475,29,0.902,30,0.001,31,0.645,32,0.157,33,0.557,34,1.35,35,1.334,36,2.714,47,0.926,95,0.163,99,0.903,100,3.466,101,0.009,103,0,104,0,105,1.062,107,1.305,111,2.309,112,2.538,127,0.994,144,1.489,187,0.783,221,2.396,227,1.266,234,1.289,264,4.84,319,1.618,369,1.762,371,2.189,379,1.799,380,1.687,450,2.224,461,1.816,496,3.351,843,2.389,1467,1.728,1801,3.245,1849,5.194,1884,5.594,1936,8.168,1946,5.273,2356,3.86,2357,4.714,2725,2.452,3090,3.433,3579,2.663,3889,8.807,4466,4.61,4510,8.668,4515,6.412,4521,6.412,4522,6.412,4524,6.412,4525,7.592,4530,6.412,4531,8.475,4533,7.147,4534,6.412,4538,6.412,4542,8.105,4546,4.239,4548,4.534,4567,4.373,4600,8.314,4618,5.448,4636,6.647,4637,8.668,4644,10.409,4649,5.414,4650,7.938,4651,5.414,4652,8.847,4653,9.398,4654,8.22,4655,5.414,4656,5.414,4657,5.414,4658,7.938,4659,7.906,4660,5.414,4661,4.189,4662,6.647,4663,5.448,4664,5.414,4665,5.414,4666,8.562,4667,10.187,4668,5.414,4669,6.216,4670,6.647,4671,6.343,4672,7.338,4673,7.338,4674,4.534,4675,5.414,4676,5.414,4677,5.414,4678,5.414,4679,7.938,4680,5.414,4681,5.414,4682,5.414,4683,5.414,4684,5.414,4685,5.414,4686,5.414,4687,5.414,4688,5.414]],["title/injectables/CollaborativeStorageUc.html",[105,0.91,4620,5.694]],["body/injectables/CollaborativeStorageUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,8,1.11,27,0.491,29,0.934,30,0.001,31,0.668,32,0.162,33,0.576,35,1.375,36,2.761,47,0.879,95,0.158,101,0.011,103,0.001,104,0.001,105,1.229,107,1.602,111,1.842,112,2.32,127,1.151,187,0.961,216,1.699,227,1.178,234,1.492,264,4.424,379,1.506,461,2.101,496,4.795,766,3.843,1849,5.699,1946,6.103,3889,4.561,4521,7.421,4522,7.421,4524,7.421,4530,7.421,4531,8.999,4533,7.65,4534,7.421,4538,7.421,4544,7.826,4547,5.566,4600,8.613,4605,10.499,4606,9.511,4608,9.174,4618,6.305,4620,7.693,4623,5.813,4624,6.144,4636,9.511,4638,9.511,4641,5.813,4642,6.144,4644,5.813,4645,5.566,4669,7.193,4670,7.693,4671,7.665,4672,8.492,4673,8.492,4689,12.328,4690,6.646,4691,10.528,4692,6.646,4693,10.528,4694,6.646,4695,6.646,4696,6.646,4697,6.646,4698,6.646,4699,11.357,4700,6.646,4701,9.186,4702,8.492,4703,6.646,4704,6.646,4705,6.646,4706,6.646,4707,6.646,4708,6.646,4709,6.646]],["title/classes/Column.html",[0,0.232,2655,3.617]],["body/classes/Column.html",[0,0.222,2,0.726,3,0.015,4,0.015,5,0.008,7,0.098,8,1.093,27,0.543,29,0.984,30,0.001,31,0.704,32,0.177,33,0.608,35,1.551,36,1.941,47,0.844,55,1.95,59,2.027,95,0.134,101,0.017,103,0.001,104,0.001,112,2.294,116,2.819,148,3.641,165,0.709,208,2.431,217,0.847,221,1.506,227,1.079,334,0.699,347,2.106,363,5.762,404,1.876,595,3.031,596,3.908,661,3.804,687,2.773,692,3.382,728,2.488,806,3.685,884,4.265,1345,2.581,1397,4.1,1790,4.752,1793,6.717,1865,4.123,2557,6.441,2627,2.734,2655,5.986,2749,7.886,2752,6.446,2753,6.446,2754,6.446,2755,6.014,2756,6.446,2758,4.323,2759,5.55,2760,6.603,2762,6.324,2763,5.55,2764,6.473,2766,4.546,2767,4.778,2769,6.541,2770,4.546,2772,6.446,2774,4.546,2776,4.323,2804,5.486,2818,5.157,2843,5.449,3945,6.58,3946,4.73,3947,4.73,3948,5.449,3950,5.691,3956,4.088,3957,6.213,3958,5.095,3961,5.617,4710,6.015,4711,5.691,4712,6.015,4713,6.506,4714,6.506,4715,6.015,4716,6.015,4717,5.691,4718,6.015]],["title/classes/ColumnBoard.html",[0,0.232,2823,4.121]],["body/classes/ColumnBoard.html",[0,0.208,2,0.68,3,0.014,4,0.014,5,0.007,7,0.092,8,1.045,27,0.548,29,0.987,30,0.001,31,0.706,32,0.177,33,0.61,35,1.552,36,1.856,47,0.824,55,1.864,59,1.901,95,0.129,101,0.017,103,0,104,0,112,2.216,116,2.695,148,3.692,165,0.678,199,4.534,208,2.28,217,0.794,221,1.412,227,1.134,334,0.656,347,2.034,363,5.508,404,1.812,595,2.897,596,3.845,661,3.637,687,2.601,692,3.233,728,3.309,806,3.523,884,4.078,1345,2.421,1397,4.017,1790,4.619,1793,6.488,1865,3.942,2557,6.356,2627,2.565,2655,4.603,2749,7.772,2752,6.162,2753,6.162,2754,6.162,2755,5.749,2756,6.162,2758,4.054,2759,5.306,2760,6.419,2762,6.046,2763,5.306,2764,6.292,2766,4.263,2767,4.567,2769,6.318,2770,4.263,2772,6.162,2774,4.263,2776,4.054,2804,5.245,2823,6.631,2845,5.111,3329,8.721,3945,4.436,3946,4.436,3947,4.436,3948,5.111,3950,5.337,3956,3.834,3957,5.939,3958,4.779,3961,5.37,4719,10.678,4720,5.641,4721,6.102,4722,6.102,4723,5.641,4724,6.102,4725,6.102,4726,6.102,4727,6.102,4728,6.102,4729,6.102,4730,8,4731,5.641,4732,5.641,4733,5.641,4734,5.111,4735,5.641]],["title/injectables/ColumnBoardCopyService.html",[105,0.91,2973,5.694]],["body/injectables/ColumnBoardCopyService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.137,26,2.274,27,0.388,29,0.737,30,0.001,31,0.527,32,0.157,33,0.455,35,0.833,36,2.018,39,2.534,95,0.164,99,1.149,101,0.011,103,0.001,104,0.001,105,1.259,107,1.66,111,2.42,112,2.363,127,1.179,138,4.111,187,0.996,188,2.543,216,2.232,217,1.571,221,2.794,227,0.714,234,1.528,305,2.681,416,4.382,450,2.828,461,1.575,595,2.305,731,3.718,766,2.88,1353,3.323,1642,4.903,1852,2.907,1930,7.731,2384,5.641,2524,5.522,2531,3.721,2627,5.072,2823,6.5,2887,4.903,2960,5.391,2963,8.7,2973,7.882,2992,6.919,3009,4.173,3010,3.85,3016,8.232,3047,6.702,3062,6.364,3064,6.364,3066,5.391,3120,5.118,3121,8.706,3228,4.382,3293,10.683,3303,4.903,3304,8.232,3329,6.842,3576,9.654,4593,3.478,4736,9.913,4737,7.409,4738,10.724,4739,6.884,4740,9.412,4741,6.021,4742,6.884,4743,6.364,4744,6.884,4745,6.884,4746,6.884,4747,6.884,4748,3.816,4749,6.364,4750,6.884,4751,6.884,4752,6.884,4753,6.364,4754,6.884,4755,6.364,4756,5.561,4757,6.884,4758,6.884,4759,6.884,4760,6.884,4761,6.884,4762,6.884]],["title/classes/ColumnBoardFactory.html",[0,0.232,4763,6.286]],["body/classes/ColumnBoardFactory.html",[0,0.167,2,0.548,3,0.012,4,0.012,5,0.006,7,0.074,8,0.892,27,0.536,29,1.017,30,0.001,31,0.692,32,0.182,33,0.598,34,1.8,35,1.469,47,0.527,49,1.933,55,2.484,59,3.295,83,2.259,95,0.114,99,0.82,101,0.012,103,0,104,0,127,0.615,138,3.226,144,3.263,145,1.244,148,1.512,165,0.578,185,4.88,199,2.791,216,1.641,217,0.961,227,0.766,234,1.602,319,3.546,359,2.575,366,2.747,379,2.011,380,2.248,381,2.456,404,1.331,538,3.328,591,2.135,592,2.225,596,3.924,627,2.266,660,7.253,661,4.671,662,5.57,665,4.168,666,5.57,667,5.753,668,4.168,669,4.168,670,4.168,671,4.094,672,4.547,673,5.008,674,6.52,675,5.865,676,7.08,677,2.798,682,2.772,683,4.168,684,2.798,685,5.208,686,5.378,687,4.206,688,5.057,689,4.13,690,2.772,691,2.613,692,4.152,693,2.7,694,2.655,695,2.772,696,5.131,697,2.798,698,4.919,699,2.772,700,6.978,701,4.195,702,6.696,703,2.798,704,4.394,705,2.772,706,2.798,707,2.772,708,2.798,709,2.772,710,3.127,711,2.912,712,2.772,713,6.161,714,2.798,715,2.772,716,4.168,717,3.898,718,4.168,719,2.798,720,2.677,721,2.655,722,2.19,723,2.772,724,2.772,725,2.772,726,2.798,727,2.798,728,1.878,729,2.772,730,2.798,731,2.918,732,2.772,733,2.798,734,2.798,736,2.912,737,2.944,1397,1.645,2627,2.064,2655,2.613,2757,3.315,2823,2.977,2887,3.498,3066,3.846,4121,4.833,4734,4.114,4763,8.203,4764,7.385,4765,4.912,4766,9.869,4767,4.912,4768,4.912,4769,4.912]],["title/entities/ColumnBoardNode.html",[380,1.445,3174,5.181]],["body/entities/ColumnBoardNode.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,27,0.43,30,0.001,32,0.167,34,1.367,49,4.559,95,0.167,96,2.199,101,0.017,103,0.001,104,0.001,165,0.817,199,4.635,208,3.003,217,1.046,227,1.082,234,1.305,240,3.676,334,0.864,364,1.901,380,2.217,381,2.674,398,2.368,404,1.88,405,2.142,617,4.456,734,4.579,1790,4.406,2557,5.101,2577,4.537,2578,3.584,2627,4.87,2632,4.806,2887,8.252,3143,5.466,3155,6.255,3174,7.951,3222,4.928,3280,5.517,3329,8.423,3366,9.36,3368,10.135,3391,5.261,3596,6.124,3598,6.398,3619,4.988,4059,5.117,4061,5.117,4770,10.135,4771,7.951,4772,8.038,4773,6.255,4774,8.038,4775,9.647,4776,9.127,4777,9.647,4778,7.431,4779,6.732,4780,7.431,4781,7.431,4782,7.431]],["title/interfaces/ColumnBoardNodeProps.html",[334,0.731,4776,5.947]],["body/interfaces/ColumnBoardNodeProps.html",[0,0.283,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,32,0.16,34,1.415,49,4.198,95,0.169,96,2.276,101,0.018,103,0.001,104,0.001,165,0.836,199,4.968,208,3.108,217,1.083,227,1.106,234,1.351,240,3.737,334,0.894,336,1.991,380,2.267,398,2.451,404,2.123,405,2.217,617,4.612,734,4.74,1790,4.505,2557,5.216,2577,4.696,2578,3.71,2627,3.497,2632,4.914,2887,7.599,3143,5.589,3155,6.395,3174,6.339,3222,5.102,3280,5.71,3329,9.339,3366,6.721,3368,7.277,3391,5.446,3596,6.339,3598,7.222,3619,5.163,4059,5.296,4061,5.296,4770,7.277,4773,4.987,4775,9.864,4776,10.303,4777,9.864,4778,7.692,4779,6.968,4780,7.692,4781,7.692,4782,7.692]],["title/interfaces/ColumnBoardProps.html",[334,0.731,4734,5.694]],["body/interfaces/ColumnBoardProps.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.159,36,1.762,47,0.913,95,0.15,101,0.02,103,0.001,104,0.001,112,1.811,148,2.529,165,0.829,199,4.952,208,3.07,217,1.07,221,1.902,227,1.283,334,0.883,336,1.967,347,1.662,404,2.11,687,3.503,728,4.048,806,4.31,1345,3.261,1397,4.387,1790,3.47,1865,4.822,2557,5.175,2627,3.454,2655,5.631,2749,6.416,2759,5.039,2760,6.212,2763,5.039,2764,6.089,2772,5.853,2804,7.098,2823,7.098,2845,6.883,3329,9.525,3956,5.164,3957,7.266,3958,6.436,3961,6.569,4719,7.598,4720,7.598,4730,9.786,4731,7.598,4732,7.598,4733,7.598,4734,8.866,4735,7.598]],["title/injectables/ColumnBoardService.html",[105,0.91,3570,5.493]],["body/injectables/ColumnBoardService.html",[0,0.152,3,0.011,4,0.011,5,0.005,7,0.067,8,0.829,10,2.77,12,3.143,26,2.364,27,0.487,29,0.925,30,0.001,31,0.661,32,0.161,33,0.571,34,1.598,35,1.394,36,2.669,47,0.888,49,1.755,83,3.522,95,0.137,99,0.744,101,0.007,103,0,104,0,105,0.918,107,1.075,111,2.146,112,2.95,127,0.86,144,1.227,187,0.645,199,3.161,216,1.547,217,1.689,221,2.347,227,1.11,234,2.107,319,2.051,591,4.082,592,4.254,734,2.541,770,4.069,883,2.911,1345,1.77,1397,4.108,1865,2.032,2130,1.949,2131,2.18,2132,2.102,2280,2.541,2531,2.411,2553,2.925,2627,4.838,2655,4.449,2757,6.338,2818,4.765,2823,7.641,2835,6.542,2848,3.313,2892,4.124,3120,3.316,3121,7.48,3248,2.878,3310,6.344,3328,6.344,3329,8.764,3402,8.29,3499,6.002,3570,5.544,3574,9.009,3710,3.901,3859,2.495,4092,6.002,4096,2.391,4114,3.603,4121,6.147,4122,4.124,4736,11.146,4743,4.124,4783,4.461,4784,6.863,4785,6.863,4786,6.863,4787,4.461,4788,6.863,4789,4.461,4790,6.863,4791,4.461,4792,6.863,4793,4.461,4794,6.344,4795,6.863,4796,4.461,4797,6.863,4798,4.461,4799,4.461,4800,6.863,4801,4.461,4802,4.461,4803,6.863,4804,4.461,4805,4.461,4806,6.863,4807,4.461,4808,6.863,4809,4.461,4810,4.461,4811,4.461,4812,4.461,4813,4.461,4814,4.461,4815,4.461,4816,4.461,4817,4.461,4818,4.461,4819,9.391,4820,8.364,4821,4.461,4822,4.461,4823,4.461,4824,4.461,4825,6.863,4826,4.461,4827,4.461,4828,4.461,4829,4.461,4830,4.461,4831,4.461,4832,4.461,4833,4.461,4834,4.461,4835,4.461,4836,4.461,4837,4.461,4838,4.461,4839,6.863,4840,4.461,4841,4.461,4842,6.863,4843,6.863,4844,4.461,4845,4.461,4846,4.461,4847,4.461,4848,4.461,4849,4.461,4850,4.461,4851,4.461,4852,4.461,4853,4.461,4854,4.461,4855,6.863,4856,6.863,4857,4.461,4858,6.863,4859,6.863,4860,4.461,4861,4.461,4862,4.461,4863,6.863,4864,4.461,4865,3.061,4866,3.493,4867,4.461,4868,4.461,4869,4.461,4870,4.461,4871,4.124]],["title/entities/ColumnBoardTarget.html",[380,1.445,2656,4.842]],["body/entities/ColumnBoardTarget.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.118,26,2.422,27,0.471,30,0.001,32,0.155,47,0.815,49,4.494,95,0.162,96,2.135,101,0.017,103,0.001,104,0.001,144,2.146,148,3.15,165,0.802,214,2.461,227,1.062,234,1.267,240,4.099,319,2.333,364,2.081,369,1.732,371,3.15,380,2.175,381,2.596,398,2.299,399,4.061,400,3.444,404,1.406,405,2.08,406,2.538,687,3.327,734,4.446,806,3.178,1345,3.096,1397,4.06,1865,4.663,2545,4.151,2627,5.096,2628,9.495,2632,3.594,2645,6.516,2656,8.635,2735,7.799,2736,7.476,2747,4.028,2748,9.463,2823,6.204,3609,4.968,4771,5.946,4872,11.21,4873,7.805,4874,10.56,4875,7.805,4876,7.805,4877,7.805,4878,4.785,4879,10.237,4880,7.805,4881,7.805,4882,4.904,4883,5.036,4884,7.805,4885,7.805]],["title/injectables/ColumnBoardTargetService.html",[105,0.91,4886,5.694]],["body/injectables/ColumnBoardTargetService.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.11,8,1.181,26,2.744,27,0.455,29,0.865,30,0.001,31,0.618,32,0.15,33,0.534,34,1.663,35,1.184,36,2.53,95,0.158,96,2.675,97,3.15,99,1.215,101,0.012,103,0.001,104,0.001,105,1.308,107,1.756,111,2.365,112,2.792,127,0.912,187,1.053,215,2.324,216,1.808,217,1.602,221,2.731,227,1.145,234,1.182,398,2.146,1345,2.889,1397,3.696,1957,5.549,2355,6.785,2394,5.797,2627,4.958,2656,6.962,2702,5.316,2735,5.549,3319,6.689,3360,6.732,3381,5.883,3570,10.235,4874,6.732,4886,8.188,4887,11.797,4888,7.283,4889,9.777,4890,9.777,4891,7.283,4892,7.283,4893,9.777,4894,7.283,4895,10.203,4896,9.777,4897,7.283,4898,11.037,4899,7.283,4900,7.283,4901,9.777,4902,7.283,4903,7.283,4904,7.283,4905,7.283,4906,7.283,4907,7.283,4908,7.283]],["title/controllers/ColumnController.html",[481,2.611,2721,5.947]],["body/controllers/ColumnController.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.073,8,0.884,10,3.555,27,0.404,29,0.768,30,0.001,31,0.549,32,0.19,33,0.474,35,1.187,36,2.535,59,1.512,95,0.152,100,1.625,101,0.008,103,0,104,0,112,2.796,187,0.702,206,2.469,215,1.549,216,0.897,217,1.146,221,2.27,227,0.503,234,1.188,264,4.122,364,1.787,368,1.901,371,2.018,376,1.11,447,2.011,481,1.863,483,2.314,491,6.313,502,7.335,506,7.736,509,8.592,513,6.7,543,4.99,552,3.131,553,6.379,554,8.332,555,2.523,556,2.581,558,2.328,561,2.602,563,5.879,564,4.829,883,3.104,1016,2.569,1392,7.104,1397,2.45,2644,5.643,2655,5.598,2715,7.377,2721,6.4,2727,2.328,2783,6.308,2818,5.018,2900,7.291,2902,5.911,2904,7.473,2905,7.473,2908,7.736,2910,7.116,2923,8.937,2924,7.923,2925,4.386,2928,3.528,2929,2.791,2930,2.602,2937,3.92,2947,7.116,2948,7.116,2951,4.245,3234,3.607,3282,6.952,3405,5.022,4007,3.049,4015,4.064,4023,4.486,4028,4.245,4055,5.911,4095,6.4,4909,4.853,4910,8.809,4911,7.318,4912,8.809,4913,8.809,4914,4.853,4915,11.224,4916,10.58,4917,9.809,4918,4.853,4919,4.486,4920,4.853,4921,4.853,4922,4.853,4923,4.853,4924,4.853,4925,4.853,4926,8.579,4927,4.853,4928,4.853,4929,4.853,4930,4.853,4931,4.853,4932,6.765,4933,4.853,4934,4.853,4935,4.853,4936,4.853,4937,4.853,4938,9.809,4939,4.853,4940,4.853,4941,4.853,4942,4.853,4943,4.853,4944,4.853,4945,4.853,4946,4.853]],["title/entities/ColumnNode.html",[380,1.445,3171,5.493]],["body/entities/ColumnNode.html",[0,0.323,3,0.022,4,0.022,5,0.011,30,0.001,32,0.129,95,0.172,96,2.598,101,0.016,103,0.001,104,0.001,208,3.548,217,1.236,227,0.985,380,2.463,381,3.159,398,2.798,404,1.711,405,2.531,617,5.265,1790,5.282,2557,5.666,2577,5.36,2578,4.234,3143,6.071,3155,6.947,3171,9.363,3222,5.823,3233,10.715,3280,6.518,3596,7.236,3598,7.107,3619,5.893,4059,6.045,4061,6.045,4770,8.307,4947,9.497]],["title/interfaces/ColumnProps.html",[334,0.731,4717,5.947]],["body/interfaces/ColumnProps.html",[0,0.295,3,0.02,4,0.02,5,0.01,7,0.131,30,0.001,32,0.149,36,1.857,47,0.927,95,0.154,101,0.02,103,0.001,104,0.001,112,1.909,148,2.665,165,0.857,208,3.235,217,1.127,221,2.004,227,1.245,334,0.93,336,2.073,347,1.752,404,2.163,687,3.691,728,3.312,806,4.456,1345,3.436,1397,4.447,1790,3.657,1865,4.986,2557,5.35,2627,3.64,2655,6.384,2749,6.634,2759,5.31,2760,6.423,2763,5.31,2764,6.295,2772,6.167,2804,7.274,2818,6.236,2843,7.253,3956,5.441,3957,7.512,3958,6.782,3961,6.792,4710,8.006,4715,8.006,4716,8.006,4717,9.574,4718,8.006]],["title/classes/ColumnResponse.html",[0,0.232,2932,5.493]],["body/classes/ColumnResponse.html",[0,0.28,2,0.916,3,0.019,4,0.019,5,0.01,7,0.124,27,0.528,29,0.644,30,0.001,31,0.46,32,0.178,33,0.566,34,2.177,47,0.882,95,0.159,101,0.014,103,0.001,104,0.001,127,1.326,145,2.081,165,0.829,364,2.253,376,1.88,467,3.438,469,3.608,475,4.017,618,3.361,966,4.182,1011,4.153,1397,4.285,2742,5.974,2745,6.739,2747,4.242,2818,4.682,2883,5.379,2884,5.631,2885,5.631,2932,10.338,3242,9.751,3694,7.589,3698,6.802,3702,5.46,3704,5.46,4131,10.358,4948,8.219,4949,8.219,4950,8.219,4951,8.219,4952,8.219,4953,8.219,4954,8.219,4955,8.219]],["title/classes/ColumnResponseMapper.html",[0,0.232,2936,5.694]],["body/classes/ColumnResponseMapper.html",[0,0.294,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,8,1.319,27,0.356,29,0.675,30,0.001,31,0.483,32,0.148,33,0.417,34,1.467,35,1.044,95,0.154,99,1.439,100,2.887,101,0.014,103,0.001,104,0.001,187,1.247,217,1.122,227,1.132,234,2.044,305,2.457,591,3.748,627,3.675,731,3.407,806,3.511,974,5.113,975,6.051,980,6.57,1397,2.887,1410,4.867,1750,4.842,2384,5.168,2655,6.908,2769,5.418,2818,6.823,2932,10.17,2936,9.142,3047,6.141,3242,6.57,3248,5.564,3694,5.113,3698,6.341,3708,6.41,3714,6.966,3715,6.141,4083,7.542,4085,7.222,4104,6.966,4131,9.142,4956,10.916,4957,10.916,4958,7.972,4959,7.542,4960,8.623,4961,8.623,4962,8.623,4963,8.623,4964,8.623]],["title/injectables/ColumnService.html",[105,0.91,3571,5.947]],["body/injectables/ColumnService.html",[0,0.223,3,0.015,4,0.015,5,0.008,7,0.099,8,1.098,10,3.67,12,4.165,26,2.393,27,0.506,29,0.961,30,0.001,31,0.687,32,0.167,33,0.593,34,1.114,35,1.435,36,2.829,47,0.745,49,2.577,55,2.25,59,2.04,83,2.782,95,0.152,99,1.093,101,0.011,103,0.001,104,0.001,105,1.216,107,1.579,111,1.313,112,3.021,127,0.82,187,0.947,215,2.09,216,1.681,217,1.359,221,2.84,227,0.943,234,1.832,591,2.846,592,2.967,734,3.731,883,3.857,1397,3.97,2531,3.539,2627,2.752,2655,7.388,2757,4.42,2823,7.628,3120,4.868,3121,8.573,3339,5.663,3402,9.356,3405,6.241,3411,9.116,3415,5.484,3571,7.953,4092,7.953,4094,7.953,4114,5.29,4121,4.286,4959,5.728,4965,6.549,4966,6.549,4967,6.549,4968,9.093,4969,6.549,4970,9.093,4971,6.549,4972,8.406,4973,9.093,4974,11.285,4975,6.549,4976,9.093,4977,6.549,4978,6.549,4979,6.549,4980,6.549,4981,6.549,4982,6.549,4983,6.549]],["title/classes/ColumnUrlParams.html",[0,0.232,4915,5.947]],["body/classes/ColumnUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2655,6.283,3795,5.749,4915,10.332,4972,11.723,4984,9.798,4985,9.798]],["title/entities/ColumnboardBoardElement.html",[380,1.445,2654,5.181]],["body/entities/ColumnboardBoardElement.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.142,27,0.388,30,0.001,32,0.128,95,0.16,96,2.574,101,0.016,103,0.001,104,0.001,165,0.903,364,1.714,380,2.449,381,3.13,398,2.772,404,1.695,405,2.507,617,5.216,2577,5.31,2627,5.236,2628,9.025,2651,8.207,2653,7.879,2654,8.781,2655,5.004,2656,9.247,2657,8.229,2702,5.851,3001,7.168,3044,9.652,4872,10.654,4986,9.409,4987,11.525,4988,9.409,4989,4.309,4990,8.229]],["title/injectables/CommonCartridgeExportService.html",[105,0.91,4991,5.694]],["body/injectables/CommonCartridgeExportService.html",[0,0.143,3,0.01,4,0.01,5,0.005,7,0.063,8,0.791,26,2.72,27,0.45,29,0.854,30,0.001,31,0.611,32,0.169,33,0.527,35,1.264,36,2.239,39,2.937,47,0.827,95,0.145,99,0.7,101,0.007,103,0,104,0,105,0.876,107,1.011,111,2.612,112,2.555,127,0.82,130,7.048,145,2.038,150,3.413,187,0.607,188,4.282,216,1.488,217,1.572,221,2.281,227,1.17,234,0.681,235,3.694,264,1.763,290,3.84,318,3.119,693,3.597,1397,3.882,1438,6.738,1750,2.903,1843,3.102,2114,6.652,2303,3.684,2633,5.687,2649,4.656,3013,3.389,3014,3.389,3105,4.166,3833,4.492,4324,4.061,4564,5.287,4991,5.481,4992,11.282,4993,7.194,4994,4.196,4995,8.047,4996,8.047,4997,5.725,4998,8.047,4999,6.545,5000,8.047,5001,4.196,5002,8.54,5003,8.31,5004,4.196,5005,4.196,5006,8.835,5007,7.368,5008,8.806,5009,4.196,5010,4.196,5011,4.196,5012,6.05,5013,4.196,5014,4.196,5015,6.238,5016,4.196,5017,3.967,5018,6.131,5019,6.545,5020,4.196,5021,6.545,5022,4.166,5023,4.196,5024,4.196,5025,7.038,5026,2.988,5027,4.196,5028,3.879,5029,3.389,5030,3.764,5031,4.196,5032,6.05,5033,4.196,5034,3.197,5035,4.196,5036,3.286,5037,4.196,5038,3.286,5039,4.196,5040,4.196,5041,4.196,5042,4.196,5043,2.368,5044,4.196,5045,4.196,5046,5.287,5047,6.545,5048,4.196,5049,3.514,5050,4.166,5051,4.196,5052,5.287,5053,4.196,5054,4.196,5055,3.764,5056,3.879,5057,3.119,5058,2.788,5059,2.832,5060,4.196,5061,4.196,5062,9.856,5063,6.545,5064,6.739,5065,6.545,5066,6.05,5067,8.047,5068,2.988,5069,5.725,5070,6.05,5071,6.05,5072,4.758,5073,4.196,5074,2.988,5075,4.196,5076,5.481,5077,5.725,5078,5.725,5079,2.988,5080,6.545,5081,6.545,5082,4.196,5083,3.879,5084,4.196,5085,4.196,5086,4.196,5087,4.196,5088,6.545,5089,4.196,5090,6.545,5091,4.196,5092,4.196,5093,3.879,5094,4.196,5095,4.196,5096,4.196]],["title/classes/CommonCartridgeFileBuilder.html",[0,0.232,5006,5.324]],["body/classes/CommonCartridgeFileBuilder.html",[0,0.263,2,0.581,3,0.012,4,0.012,5,0.015,7,0.079,8,0.932,27,0.498,29,0.72,30,0.001,31,0.515,32,0.138,33,0.444,35,1.113,36,1.971,47,0.725,95,0.151,101,0.017,103,0,104,0,111,2.653,112,2.026,127,0.967,144,2.794,165,0.604,214,2.898,215,1.663,216,2.464,217,1.478,227,1.178,234,2.132,319,3.037,334,0.829,595,3.077,667,5.142,701,2.728,1397,2.584,1438,4.979,1858,5.322,2114,6.858,2553,3.918,3195,4.789,4993,8.148,5006,6.043,5007,4.171,5008,5.296,5018,8.957,5030,6.239,5036,6.043,5038,6.043,5046,6.234,5050,7.231,5052,4.209,5059,5.209,5097,7.956,5098,7.956,5099,4.364,5100,9.177,5101,8.495,5102,7.742,5103,8.51,5104,7.134,5105,7.134,5106,4.209,5107,8.51,5108,7.717,5109,5.211,5110,5.211,5111,8.51,5112,5.211,5113,7.697,5114,9.177,5115,5.211,5116,9.497,5117,7.697,5118,5.211,5119,5.211,5120,4.209,5121,4.209,5122,3.97,5123,3.711,5124,6.015,5125,3.517,5126,6.043,5127,6.234,5128,4.08,5129,5.495,5130,4.08,5131,6.463,5132,4.209,5133,4.364,5134,4.364,5135,4.364,5136,8.51,5137,4.364,5138,6.463,5139,4.364,5140,4.364,5141,6.463,5142,4.364,5143,4.364,5144,4.364,5145,4.364,5146,4.364,5147,4.364,5148,4.364,5149,4.364,5150,4.364,5151,4.364,5152,4.364,5153,4.209,5154,4.364,5155,4.364,5156,4.364,5157,4.364,5158,4.364,5159,3.362,5160,4.364,5161,4.364,5162,4.364]],["title/classes/CommonCartridgeLtiResource.html",[0,0.232,5163,5.947]],["body/classes/CommonCartridgeLtiResource.html",[0,0.215,2,0.704,3,0.015,4,0.015,5,0.011,7,0.095,8,1.071,27,0.458,29,0.494,30,0.001,31,0.354,32,0.151,33,0.305,35,1.24,47,0.888,95,0.143,101,0.015,103,0.001,104,0.001,111,1.266,127,0.791,150,2.186,214,2.794,215,2.015,216,1.639,217,0.822,227,1.062,307,3.966,309,3.631,319,1.887,347,1.793,371,1.741,379,2.008,405,1.682,595,2.968,1180,3.815,1397,2.968,1438,5.719,2114,7.496,2303,4.502,3957,4.333,4993,7.89,5007,3.412,5008,6.083,5029,5.099,5030,5.891,5064,7.422,5076,5.287,5097,7.548,5098,7.548,5102,7.803,5122,4.81,5123,4.495,5124,6.703,5125,4.261,5159,7.166,5163,7.752,5164,9.797,5165,5.521,5166,8.02,5167,8.971,5168,10.267,5169,6.313,5170,5.836,5171,6.313,5172,6.313,5173,5.287,5174,5.836,5175,6.313,5176,6.313,5177,5.521,5178,6.313,5179,6.313,5180,6.313,5181,5.521,5182,5.521,5183,3.966,5184,5.521,5185,6.313,5186,5.521,5187,6.313,5188,7.422,5189,6.313,5190,6.313,5191,8.193,5192,6.313,5193,6.313,5194,6.313,5195,5.521,5196,8.863,5197,8.863,5198,8.863,5199,8.863,5200,8.863,5201,8.863,5202,8.863,5203,8.863,5204,8.863,5205,6.313,5206,6.313,5207,6.313,5208,6.313,5209,5.888,5210,8.863,5211,8.863,5212,8.863,5213,8.863,5214,6.313,5215,6.313,5216,6.313,5217,6.313,5218,6.313,5219,5.099,5220,5.099,5221,5.521]],["title/classes/CommonCartridgeManifestElement.html",[0,0.232,5126,5.324]],["body/classes/CommonCartridgeManifestElement.html",[0,0.232,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,8,1.13,27,0.386,29,0.535,30,0.001,31,0.382,32,0.127,33,0.33,35,0.826,47,0.487,95,0.155,101,0.016,103,0.001,104,0.001,111,2.303,127,1.172,214,2.95,216,2.124,217,0.888,227,0.97,234,2.018,307,4.289,309,3.926,319,2.04,405,1.819,595,3.133,1180,4.027,1438,6.889,2222,7.603,2553,4.551,4993,8.043,5008,4.685,5030,6.921,5050,7.66,5059,4.607,5076,5.717,5097,6.889,5098,6.889,5101,9.423,5123,4.861,5124,8.606,5125,4.607,5126,7.327,5127,9.721,5129,4.861,5159,7.411,5177,8.184,5181,8.184,5182,8.184,5183,5.879,5184,8.184,5219,7.558,5222,5.345,5223,11.486,5224,10.676,5225,10.618,5226,6.31,5227,6.826,5228,5.97,5229,5.97,5230,8.184,5231,5.97,5232,9.357,5233,6.826,5234,9.357,5235,9.357,5236,9.357,5237,9.357,5238,9.357,5239,6.826,5240,9.357,5241,6.826,5242,6.826,5243,6.826,5244,6.826,5245,9.357,5246,9.357,5247,9.357,5248,9.357,5249,9.357,5250,9.357,5251,6.826,5252,6.826,5253,6.826]],["title/classes/CommonCartridgeMetadataElement.html",[0,0.232,5228,5.947]],["body/classes/CommonCartridgeMetadataElement.html",[0,0.286,2,0.937,3,0.02,4,0.02,5,0.01,7,0.127,8,1.297,27,0.443,29,0.659,30,0.001,31,0.471,32,0.146,33,0.407,35,1.018,47,0.844,59,2.619,95,0.138,101,0.018,103,0.001,104,0.001,127,1.053,214,3.387,215,2.683,216,1.555,227,0.872,405,2.24,595,3.597,1180,4.623,1397,2.815,2222,8.429,3957,5.77,3981,6.111,4993,8.179,5007,4.544,5008,7.372,5030,6.808,5036,6.583,5038,6.583,5097,7.638,5098,7.638,5123,5.987,5124,7.747,5125,5.674,5159,8.048,5195,7.353,5222,6.583,5225,11.531,5226,7.772,5228,9.395,5254,8.407,5255,8.407,5256,8.407,5257,8.407,5258,8.407,5259,8.407,5260,10.742,5261,8.407,5262,8.407,5263,8.407,5264,8.407,5265,8.407,5266,8.407]],["title/classes/CommonCartridgeOrganizationBuilder.html",[0,0.232,5132,5.493]],["body/classes/CommonCartridgeOrganizationBuilder.html",[0,0.283,2,0.644,3,0.014,4,0.014,5,0.014,7,0.087,8,1.005,27,0.44,29,0.652,30,0.001,31,0.466,32,0.133,33,0.402,35,0.699,36,1.785,47,0.761,95,0.156,101,0.018,103,0,104,0,111,2.434,112,1.274,127,1.043,214,3.075,215,1.844,216,2.298,217,1.533,227,1.222,234,2.086,334,0.894,405,1.54,595,3.266,667,3.945,701,2.043,884,3.922,1397,2.787,1438,5.37,1858,4.359,2114,7.634,2553,4.158,3195,5.165,4993,7.973,5006,4.525,5007,4.498,5008,5.712,5018,9.25,5030,6.506,5036,6.517,5038,6.517,5046,6.723,5050,7.499,5052,4.668,5059,7.203,5097,7.298,5098,7.298,5099,4.839,5100,8.621,5101,7.638,5102,8.131,5103,8.938,5107,6.97,5111,9.473,5113,6.97,5114,9.516,5116,10.038,5117,6.97,5120,4.668,5121,4.668,5122,4.403,5123,4.115,5124,6.384,5125,3.9,5126,6.517,5127,6.723,5128,4.525,5129,5.927,5130,4.525,5131,8.169,5132,6.723,5133,4.839,5134,4.839,5135,4.839,5136,8.938,5137,4.839,5138,6.97,5139,4.839,5140,4.839,5141,6.97,5142,4.839,5143,4.839,5144,4.839,5145,4.839,5146,4.839,5147,4.839,5148,4.839,5149,4.839,5150,4.839,5151,4.839,5152,4.839,5153,4.668,5154,4.839,5155,4.839,5156,4.839,5157,4.839,5158,4.839,5159,3.729,5160,4.839,5161,4.839,5162,4.839,5267,7.694,5268,5.779,5269,5.779,5270,5.779,5271,5.779,5272,5.779,5273,5.779]],["title/classes/CommonCartridgeOrganizationItemElement.html",[0,0.232,5130,5.324]],["body/classes/CommonCartridgeOrganizationItemElement.html",[0,0.285,2,0.932,3,0.02,4,0.02,5,0.01,7,0.126,8,1.292,27,0.441,29,0.654,30,0.001,31,0.468,32,0.145,33,0.404,35,1.011,47,0.842,95,0.152,101,0.018,103,0.001,104,0.001,127,1.047,214,3.373,215,2.667,216,1.545,227,1.109,405,2.226,595,3.582,1180,4.605,1397,3.952,1438,7.615,2553,3.561,3195,7.982,3341,6.749,3957,5.734,4993,7.982,5007,4.516,5018,8.151,5030,6.153,5032,9.89,5050,5.318,5059,7.966,5066,7.724,5097,7.615,5098,7.615,5114,10.052,5124,7.725,5125,5.639,5129,5.95,5130,8.378,5159,8.03,5191,7.724,5219,6.749,5222,6.542,5274,8.355,5275,8.355,5276,8.355,5277,8.355]],["title/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.232,5229,5.947]],["body/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.299,2,0.98,3,0.021,4,0.021,5,0.011,7,0.133,8,1.335,27,0.456,29,0.689,30,0.001,31,0.492,32,0.12,33,0.425,35,1.064,95,0.113,101,0.015,103,0.001,104,0.001,127,1.101,214,3.484,215,2.806,216,1.626,227,0.912,905,3.661,1180,4.756,1438,7.131,3195,6.857,4993,7.868,5030,5.057,5059,8.558,5097,7.798,5098,7.798,5124,8.727,5125,5.934,5159,8.181,5222,6.885,5229,9.666,5230,10.571,5278,8.793,5279,8.128,5280,11.051,5281,8.128,5282,8.793,5283,6.885,5284,8.793,5285,8.128,5286,8.793,5287,8.793,5288,8.793]],["title/classes/CommonCartridgeResourceItemElement.html",[0,0.232,5128,5.324]],["body/classes/CommonCartridgeResourceItemElement.html",[0,0.23,2,0.755,3,0.016,4,0.016,5,0.008,7,0.102,8,1.124,27,0.495,29,0.53,30,0.001,31,0.379,32,0.144,33,0.327,35,1.287,47,0.663,95,0.163,101,0.016,103,0.001,104,0.001,111,2.131,127,0.848,165,0.729,214,2.933,216,1.966,227,1.102,234,1.858,305,1.928,347,1.882,405,2.479,595,2.266,1180,4.004,1345,2.686,2114,7.725,2280,3.856,2303,4.864,3195,7.693,4333,6.86,4993,8.391,5018,8.72,5025,8.137,5029,5.468,5030,7.13,5069,5.92,5077,5.92,5078,5.92,5097,7.999,5098,7.999,5102,9.141,5122,5.157,5123,4.82,5124,7.491,5125,4.568,5128,7.285,5129,9.346,5159,7.385,5163,5.92,5164,5.669,5166,8.963,5167,9.245,5168,8.6,5173,5.669,5174,6.257,5222,5.3,5289,8.902,5290,9.303,5291,6.769,5292,6.769,5293,6.769,5294,5.92,5295,7.515,5296,5.92,5297,8.6,5298,10.63,5299,6.769,5300,6.769,5301,6.769,5302,6.769,5303,6.769,5304,6.769,5305,6.769]],["title/classes/CommonCartridgeResourceWrapperElement.html",[0,0.232,5231,5.947]],["body/classes/CommonCartridgeResourceWrapperElement.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.471,29,0.727,30,0.001,31,0.52,32,0.126,33,0.449,35,1.123,95,0.119,101,0.015,103,0.001,104,0.001,127,1.162,214,3.603,215,2.962,216,1.716,227,0.962,1180,4.918,4993,8.019,5030,5.337,5097,7.99,5098,7.99,5124,8.844,5125,6.262,5129,9.203,5159,8.339,5222,7.266,5230,10.831,5231,9.995,5279,8.577,5281,8.577,5306,9.279,5307,11.427,5308,9.279,5309,9.279]],["title/classes/CommonCartridgeWebContentResource.html",[0,0.232,5294,5.947]],["body/classes/CommonCartridgeWebContentResource.html",[0,0.261,2,0.855,3,0.018,4,0.018,5,0.012,7,0.116,8,1.223,27,0.497,29,0.601,30,0.001,31,0.43,32,0.164,33,0.371,35,1.371,47,0.917,95,0.145,101,0.017,103,0.001,104,0.001,127,0.961,214,3.191,215,2.448,216,1.418,227,1.175,347,2.047,371,2.115,405,2.044,595,3.389,1180,4.356,1397,2.568,1438,6.53,2303,5.459,4993,8.259,5007,4.146,5008,6.946,5025,10.535,5028,9.356,5029,6.196,5030,6.515,5064,8.476,5069,6.709,5070,9.356,5071,7.091,5072,5.576,5097,8.079,5098,8.079,5123,5.463,5124,7.413,5125,5.177,5159,7.772,5165,6.709,5166,8.87,5167,9.729,5170,7.091,5173,6.424,5219,6.196,5220,6.196,5221,6.709,5294,8.852,5295,10.114,5310,7.091,5311,7.671,5312,7.671,5313,7.671,5314,7.671]],["title/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.232,5296,5.947]],["body/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.231,2,0.756,3,0.016,4,0.016,5,0.011,7,0.102,8,1.125,27,0.472,29,0.531,30,0.001,31,0.38,32,0.156,33,0.328,35,1.288,47,0.884,95,0.147,101,0.016,103,0.001,104,0.001,111,1.359,127,0.849,150,3.225,214,2.936,215,2.164,216,1.722,217,0.882,227,1.188,307,4.26,309,3.9,319,2.026,347,1.884,371,1.87,405,1.807,595,3.118,1180,4.009,1397,3.118,1438,6.01,2114,7.73,2280,6.839,2303,4.643,2702,3.055,3957,4.653,4993,8.03,5007,3.664,5008,6.392,5029,5.477,5030,6.119,5064,8.91,5076,5.678,5077,5.93,5078,5.93,5097,7.746,5098,7.746,5102,8.106,5122,5.166,5123,4.828,5124,6.963,5125,4.576,5153,7.523,5159,7.39,5165,5.93,5166,8.331,5167,9.252,5173,5.678,5177,8.146,5181,8.146,5182,8.146,5183,5.852,5184,8.146,5188,5.678,5195,5.93,5219,5.477,5220,5.477,5221,5.93,5295,9.698,5296,8.146,5297,10.588,5310,6.268,5315,6.78,5316,6.78,5317,6.78,5318,10.639,5319,6.78,5320,6.78,5321,6.78,5322,6.78,5323,9.314,5324,9.314,5325,6.78,5326,9.314,5327,6.78]],["title/modules/CommonToolModule.html",[425,1.812,5328,4.943]],["body/modules/CommonToolModule.html",[0,0.267,3,0.019,4,0.019,5,0.009,30,0.001,95,0.162,101,0.013,103,0.001,104,0.001,187,1.135,191,4.352,192,2.339,381,2.611,425,3.052,427,2.836,428,3.051,429,3.141,430,3.128,431,3.115,432,4.215,433,4.33,438,6.063,442,4.112,443,3.076,444,3.002,449,4.077,450,3.225,766,3.284,1467,2.506,1852,3.315,1854,5.215,1933,10.288,1959,4.278,2471,5.138,5328,10.347,5329,7.85,5330,7.85,5331,7.85,5332,7.85,5333,8.238,5334,10.837,5335,10.837,5336,10.837,5337,7.85,5338,6.341,5339,6.866,5340,7.85,5341,7.85,5342,7.85,5343,6.574]],["title/injectables/CommonToolService.html",[105,0.91,5334,5.324]],["body/injectables/CommonToolService.html",[0,0.276,3,0.019,4,0.019,5,0.01,7,0.123,8,1.269,27,0.433,29,0.823,30,0.001,31,0.588,32,0.143,33,0.508,35,1.271,95,0.168,101,0.014,103,0.001,104,0.001,105,1.405,107,1.957,111,2.334,139,7.403,140,7.015,158,6.584,187,1.174,192,2.42,199,3.069,200,3.627,201,5.924,227,1.207,334,0.872,347,2.124,1031,2.544,5334,8.225,5344,10.763,5345,6.559,5346,11.643,5347,10.504,5348,8.119,5349,8.119,5350,8.291,5351,10.504,5352,7.799,5353,11.643,5354,8.119,5355,8.119,5356,8.119,5357,10.504,5358,6.8,5359,7.506,5360,8.119,5361,8.119]],["title/injectables/CommonToolValidationService.html",[105,0.91,5335,5.324]],["body/injectables/CommonToolValidationService.html",[0,0.143,3,0.01,4,0.01,5,0.005,7,0.063,8,0.789,27,0.478,29,0.907,30,0.001,31,0.696,32,0.164,33,0.545,35,1.365,47,0.826,95,0.145,101,0.011,103,0,104,0,105,0.874,107,1.009,111,2.611,116,3.609,136,8.164,139,4.416,140,4.241,144,1.797,145,3.105,148,3.871,158,4.438,165,0.512,181,8.275,187,0.606,192,1.248,195,2.826,196,7.011,199,1.582,200,2.503,201,4.089,209,4.053,217,1.358,227,0.434,234,1.694,264,5.341,279,3.044,281,3.113,290,4.715,298,3.279,305,2.587,310,5.472,312,5.472,314,5.472,319,1.251,321,5.472,324,5.472,325,5.472,326,4.857,347,1.991,368,1.641,369,2.015,371,3.267,494,2.51,503,6.037,511,2.116,558,2.009,627,2.466,728,1.601,806,2.66,846,2.982,1031,1.312,1431,2.385,1904,1.751,2006,2.598,2035,2.263,2146,2.826,2257,2.538,3284,5.472,5335,5.117,5344,10.952,5362,3.279,5363,8.036,5364,6.534,5365,6.534,5366,6.534,5367,6.534,5368,6.534,5369,6.534,5370,6.534,5371,6.534,5372,6.534,5373,12.93,5374,4.187,5375,3.662,5376,6.534,5377,3.871,5378,6.534,5379,12.431,5380,4.187,5381,6.534,5382,4.187,5383,6.534,5384,4.187,5385,6.534,5386,4.187,5387,6.534,5388,12.263,5389,4.187,5390,6.534,5391,4.187,5392,6.534,5393,4.187,5394,4.187,5395,4.187,5396,4.187,5397,4.187,5398,4.187,5399,6.534,5400,4.187,5401,4.187,5402,4.187,5403,4.187,5404,3.871,5405,4.187,5406,2.598,5407,6.534,5408,4.187,5409,4.187,5410,4.187,5411,5.715,5412,6.534,5413,4.187,5414,4.187,5415,4.187,5416,4.187,5417,3.662,5418,4.187,5419,6.534,5420,4.187,5421,3.871,5422,6.534,5423,3.507,5424,3.507,5425,4.187,5426,4.187,5427,3.382,5428,4.187,5429,2.74]],["title/classes/ConsentRequestBody.html",[0,0.232,5430,5.694]],["body/classes/ConsentRequestBody.html",[0,0.286,2,0.653,3,0.014,4,0.014,5,0.007,7,0.088,27,0.514,30,0.001,32,0.169,33,0.656,34,1.429,47,0.844,55,2.117,95,0.126,101,0.01,103,0,104,0,116,1.823,165,0.658,204,4.135,247,3.292,277,3.391,339,7.981,340,4.729,342,8.594,344,9.544,345,7.694,347,1.699,361,5.952,364,2.271,368,5.111,369,2.181,370,4.297,371,3.832,373,4.504,374,1.869,376,1.339,379,2.433,404,1.514,461,1.922,467,2.817,470,3.514,471,4.352,502,3.633,506,3.831,564,2.146,565,4.188,596,3.468,728,4.106,1035,5.869,1142,2.711,1342,3.678,1421,4.255,1433,3.589,1820,7.343,1909,6.578,2075,3.217,2257,7.172,2450,3.335,2468,5.035,3580,4.371,4588,4.336,4669,6.578,5406,3.633,5430,7.036,5431,10.736,5432,10.073,5433,7.036,5434,7.036,5435,6.578,5436,5.854,5437,5.854,5438,6.431,5439,5.854,5440,4.903,5441,7.348,5442,5.598,5443,7.348,5444,7.766,5445,7.348,5446,5.854,5447,5.412,5448,7.766,5449,6.107,5450,9.925,5451,6.245,5452,7.766,5453,5.854,5454,8.407,5455,4.46,5456,5.12,5457,5.12,5458,5.12,5459,5.412,5460,3.831,5461,6.401,5462,5.869,5463,4.46,5464,4.729,5465,4.46,5466,4.903,5467,4.729,5468,5.412,5469,4.903,5470,5.412,5471,4.46,5472,5.412,5473,5.12,5474,4.903,5475,5.12,5476,5.412,5477,5.348,5478,6.786,5479,5.412]],["title/classes/ConsentResponse.html",[0,0.232,5480,5.493]],["body/classes/ConsentResponse.html",[0,0.337,2,0.552,3,0.012,4,0.012,5,0.006,7,0.075,27,0.536,29,0.388,30,0.001,31,0.277,32,0.177,33,0.666,34,1.686,47,0.954,70,5.258,72,3.367,77,6.76,95,0.127,101,0.008,103,0,104,0,127,0.621,137,7.368,144,2.044,145,1.882,150,2.573,165,0.582,199,3.371,339,7.368,346,7.098,347,1.503,349,5.016,355,4.481,356,9.288,357,7.801,359,2.591,361,7.273,364,2.347,367,5.317,368,3.883,369,2.357,370,3.673,371,3.514,374,1.581,376,1.133,379,2.695,461,2.551,467,3.413,470,4.146,471,5.223,522,5.82,1013,2.269,1795,4.017,1820,6.15,1865,3.385,1920,6.309,2241,5.016,2257,6.007,2450,5.081,3303,5.293,3433,3.461,3580,4.708,4051,4.002,4194,8.663,5442,5.646,5474,6.224,5477,6.309,5480,9.341,5481,4.954,5482,8.245,5483,8.245,5484,7.47,5485,7.47,5486,7.47,5487,7.205,5488,7.432,5489,4.954,5490,9.753,5491,4.954,5492,7.801,5493,7.432,5494,4.954,5495,7.432,5496,6.224,5497,4.954,5498,7.47,5499,8.245,5500,4.954,5501,4.954,5502,7.432,5503,6.501,5504,4.954,5505,7.432,5506,4.954,5507,7.47,5508,4.954,5509,7.432,5510,8.669,5511,6.689,5512,4.954,5513,4.954,5514,4.954,5515,6.871,5516,6.871,5517,4.954,5518,4.954,5519,4.333,5520,4.58,5521,4.58,5522,4.58]],["title/classes/ConsentSessionResponse.html",[0,0.232,5523,5.694]],["body/classes/ConsentSessionResponse.html",[0,0.349,2,0.87,3,0.018,4,0.018,5,0.009,7,0.118,27,0.5,29,0.611,30,0.001,31,0.64,32,0.165,33,0.637,34,1.741,47,1,95,0.131,101,0.013,103,0.001,104,0.001,127,0.978,145,3.421,165,0.802,339,7.61,361,6.98,364,2.081,367,4.881,374,2.491,376,1.785,379,2.589,467,3.181,471,4.149,1013,4.688,1518,8.135,1531,7.215,1820,6.352,3580,4.937,4194,9.377,5490,6.826,5523,8.573,5524,12.591,5525,7.215,5526,8.945,5527,9.463,5528,12.126,5529,7.805,5530,5.103,5531,9.463,5532,7.805,5533,7.805,5534,7.805,5535,7.805,5536,7.805]],["title/modules/ConsoleWriterModule.html",[425,1.812,3566,5.324]],["body/modules/ConsoleWriterModule.html",[0,0.327,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.39,425,3.351,427,3.472,428,3.735,429,3.845,430,3.829,431,3.813,432,4.628,433,4.753,442,4.672,443,3.766,444,3.675,3481,9.448,3491,6.038,3566,10.8,5537,9.611,5538,9.611,5539,9.611,5540,8.884,5541,7.763,5542,9.611,5543,8.406]],["title/injectables/ConsoleWriterService.html",[105,0.91,3481,4.517]],["body/injectables/ConsoleWriterService.html",[0,0.334,3,0.03,4,0.023,5,0.012,7,0.148,8,1.427,27,0.404,29,0.767,30,0.001,31,0.549,32,0.133,33,0.474,35,1.186,47,0.904,95,0.126,101,0.016,103,0.001,104,0.001,105,1.58,107,2.362,148,3.635,187,1.417,731,3.871,1187,4.672,1188,4.617,1189,4.617,2848,5.702,3481,7.848,3491,6.156,5540,10.92,5541,9.542,5544,9.798,5545,11.812,5546,9.798,5547,9.798]],["title/injectables/ContentElementFactory.html",[105,0.91,3574,5.493]],["body/injectables/ContentElementFactory.html",[0,0.203,3,0.014,4,0.014,5,0.01,7,0.09,8,1.027,27,0.491,29,0.466,30,0.001,31,0.333,32,0.155,33,0.288,34,1.946,35,1.44,49,2.341,83,3.956,95,0.164,101,0.01,103,0,104,0,105,1.137,107,1.434,111,2.71,150,2.06,167,2.189,187,0.86,200,1.853,208,2.223,209,1.966,217,1.489,227,1.234,234,2.253,305,1.695,307,3.738,309,6.579,319,1.778,591,4.972,592,5.182,667,4.028,734,3.389,1397,1.992,2280,3.389,2545,3.164,2553,5.875,2757,7.3,2826,5.562,2829,5.562,2832,5.562,2835,5.484,2838,5.34,2846,8.316,2847,4.422,2848,4.102,2849,2.573,2850,3.566,3228,3.787,3251,3.527,3253,3.527,3259,4.386,3262,3.048,3556,5.203,3574,6.865,4096,5.798,4121,7.487,4169,9.46,5209,7.904,5548,12.247,5549,5.949,5550,10.816,5551,9.998,5552,10.816,5553,10.816,5554,10.816,5555,8.498,5556,5.949,5557,5.949,5558,5.949,5559,5.949,5560,5.949,5561,5.949,5562,3.839,5563,5.949,5564,3.839,5565,5.949,5566,3.839,5567,5.949,5568,3.839,5569,5.949,5570,3.839,5571,5.949,5572,5.949]],["title/classes/ContentElementResponseFactory.html",[0,0.232,4016,5.493]],["body/classes/ContentElementResponseFactory.html",[0,0.265,2,0.869,3,0.018,4,0.018,5,0.012,7,0.118,8,1.235,27,0.422,29,0.61,30,0.001,31,0.436,32,0.155,33,0.377,35,0.943,95,0.173,99,1.3,100,2.608,101,0.013,103,0.001,104,0.001,111,2.288,144,2.142,165,0.801,187,1.126,200,2.426,209,2.574,217,1.331,227,0.808,234,1.265,305,2.219,319,2.328,627,3.963,975,5.668,1750,4.535,2021,7.201,2029,7.201,2051,4.437,2280,4.437,2547,8.484,2553,5.81,2554,7.789,2556,9.219,2557,5.923,2847,5.791,2848,3.76,2849,3.369,2850,4.669,3228,4.958,3709,8.359,4016,8.258,5573,11.412,5574,10.55,5575,10.224,5576,10.224,5577,10.224,5578,10.224,5579,10.224,5580,7.79,5581,6.1,5582,6.813,5583,6.813,5584,6.813,5585,6.813,5586,6.813,5587,10.224,5588,7.79,5589,7.79,5590,7.79,5591,6.813,5592,7.79]],["title/injectables/ContentElementService.html",[105,0.91,3572,5.055]],["body/injectables/ContentElementService.html",[0,0.207,3,0.014,4,0.014,5,0.007,7,0.092,8,1.043,10,3.485,12,3.955,26,2.316,27,0.494,29,0.939,30,0.001,31,0.671,32,0.174,33,0.58,34,1.035,35,1.397,36,2.786,55,2.162,95,0.158,99,1.015,101,0.01,103,0,104,0,105,1.155,107,1.467,111,2.19,112,2.989,127,1.082,187,0.88,216,2.02,217,1.422,221,2.853,227,1.041,234,1.402,305,1.733,883,3.663,982,3.033,2303,4.429,2531,3.288,2553,5.462,2627,2.557,2644,3.262,2818,7.022,2925,5.175,3120,4.523,3121,8.374,3339,5.483,3351,5.321,3402,9.164,3405,5.926,3411,8.826,3415,5.095,3572,6.419,3574,9.958,3575,9.958,4094,7.553,4096,5.857,4114,4.915,4159,4.915,4169,11.365,4181,10.1,5591,5.321,5593,11.396,5594,6.084,5595,6.084,5596,6.084,5597,8.635,5598,6.084,5599,8.635,5600,6.084,5601,8.635,5602,6.084,5603,8.635,5604,7.151,5605,6.084,5606,6.084,5607,5.321,5608,6.084,5609,4.523,5610,4.764,5611,5.624,5612,6.084,5613,6.084,5614,6.084,5615,6.084,5616,6.084,5617,6.084,5618,4.423,5619,6.084,5620,6.084,5621,6.084,5622,6.084,5623,6.084]],["title/injectables/ContentElementUpdateVisitor.html",[105,0.91,5607,5.947]],["body/injectables/ContentElementUpdateVisitor.html",[0,0.159,3,0.011,4,0.011,5,0.006,7,0.071,8,0.859,27,0.519,29,0.972,30,0.001,31,0.695,32,0.173,33,0.6,35,1.478,36,2.875,95,0.14,99,0.78,101,0.008,103,0,104,0,105,0.951,107,1.126,111,2.273,112,3.032,127,0.585,145,1.801,165,0.557,187,0.676,209,2.35,214,1.473,216,1.779,217,0.925,221,1.082,227,1.346,234,0.759,469,2.051,520,3.104,806,4.215,982,2.329,1865,2.128,1959,2.546,2303,4.196,2473,4.087,2553,5.484,2557,4.703,2616,8.106,2655,5.506,2764,4.09,2794,2.771,2818,5.897,2823,6.274,2826,6.775,2829,6.775,2832,6.775,2835,6.68,2838,6.504,2841,5.97,2846,3.397,2849,2.021,2852,5.955,2853,5.955,2854,5.955,2855,5.955,2856,5.955,2857,5.955,2858,5.955,2860,5.955,2861,5.955,2862,5.955,2863,5.955,2864,5.955,2865,5.955,2866,5.955,2867,5.955,2868,5.955,2869,5.955,2925,2.801,3033,4.32,3259,2.412,3448,6.686,3575,9.157,5593,11.771,5604,7.137,5607,6.22,5609,3.474,5610,3.659,5611,4.32,5624,4.673,5625,7.111,5626,7.111,5627,7.111,5628,7.111,5629,4.673,5630,3.207,5631,4.673,5632,4.673,5633,4.673,5634,4.673,5635,4.673,5636,4.673,5637,4.673,5638,4.673,5639,6.574,5640,4.673,5641,4.32,5642,3.913,5643,4.724,5644,4.724,5645,4.724,5646,4.724,5647,4.724,5648,4.673,5649,4.673,5650,4.673,5651,4.32,5652,4.673,5653,7.111,5654,4.32,5655,4.673,5656,4.673,5657,4.673,5658,4.673,5659,4.673,5660,4.673,5661,4.32,5662,4.673,5663,4.32,5664,4.673,5665,4.32,5666,4.673,5667,4.673,5668,4.673,5669,4.673,5670,4.32,5671,4.673,5672,4.673,5673,4.32,5674,4.673,5675,7.111,5676,4.32,5677,4.673,5678,7.111,5679,4.32,5680,4.673,5681,4.673,5682,7.111,5683,4.673,5684,3.775,5685,4.32,5686,4.673,5687,4.32,5688,4.673]],["title/classes/ContentElementUrlParams.html",[0,0.232,5689,5.947]],["body/classes/ContentElementUrlParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,1000,4.795,2553,5.02,3795,5.721,5689,10.301,5690,11.778,5691,9.013,5692,11.699,5693,9.013]],["title/classes/ContextExternalTool.html",[0,0.232,140,3.589]],["body/classes/ContextExternalTool.html",[0,0.244,2,0.798,3,0.017,4,0.017,5,0.009,7,0.108,8,1.167,27,0.54,29,0.958,30,0.001,31,0.401,32,0.175,33,0.591,34,1.86,35,0.866,47,0.872,55,2.635,95,0.157,101,0.016,103,0.001,104,0.001,127,0.896,140,5.098,165,0.757,181,7.557,192,2.132,194,4.682,199,2.704,200,4.355,201,3.64,214,3.046,227,0.742,334,0.769,404,1.741,405,2.574,595,2.395,596,2.182,1872,6.803,4038,4.439,5352,7.56,5694,7.611,5695,11.461,5696,5.602,5697,8.576,5698,5.959,5699,8.923,5700,8.923,5701,9.808,5702,8.93,5703,7.153,5704,7.153,5705,7.153,5706,9.46,5707,7.153,5708,5.2,5709,7.153,5710,5.602,5711,5.094,5712,5.45,5713,6.613,5714,6.613,5715,6.613,5716,6.613,5717,4.553,5718,4.909,5719,4.752,5720,5.2,5721,6.879,5722,5.318]],["title/injectables/ContextExternalToolAuthorizableService.html",[105,0.91,5723,5.493]],["body/injectables/ContextExternalToolAuthorizableService.html",[0,0.296,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,12,5.02,26,2.675,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,34,1.476,35,1.051,36,2.35,40,5.291,95,0.167,99,1.448,101,0.014,103,0.001,104,0.001,105,1.466,107,2.092,112,2.648,127,1.087,140,6.66,187,1.255,200,4.139,209,3.97,214,2.736,215,2.77,216,1.605,217,1.129,221,2.009,227,0.9,450,3.565,1868,8.854,1904,3.63,2725,3.932,3117,8.023,5336,10.407,5694,6.978,5723,8.854,5724,10.508,5725,8.023,5726,8.679,5727,8.679,5728,8.679]],["title/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.232,5729,5.694]],["body/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.011,7,0.138,27,0.467,29,0.717,30,0.001,31,0.513,32,0.167,33,0.443,95,0.146,101,0.015,103,0.001,104,0.001,127,1.146,145,2.317,163,4.068,165,0.887,199,3.459,200,4.006,209,4.251,364,1.667,376,2.093,467,2.973,1006,6.394,1009,6.455,1011,4.624,1026,5.073,1268,7.546,2130,5.618,2559,5.575,5729,9.489,5730,11.377,5731,11.028,5732,8.873,5733,8.46]],["title/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.232,5731,5.493]],["body/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.251,2,0.821,3,0.017,4,0.017,5,0.009,7,0.111,26,2.619,27,0.535,29,0.928,30,0.001,31,0.664,32,0.179,33,0.537,47,0.845,55,2.121,95,0.143,99,1.229,101,0.012,103,0.001,104,0.001,127,0.922,145,1.864,165,0.771,200,4.108,209,4.359,364,2.315,375,4.227,376,1.684,467,3.54,1011,3.72,1431,4.194,2095,2.921,2130,5.835,2559,5.975,5007,5.998,5719,4.891,5730,12.192,5731,9.977,5734,6.806,5735,7.754,5736,6.264,5737,8.067,5738,9.104,5739,9.849,5740,6.806,5741,6.806,5742,6.806,5743,9.279,5744,6.806,5745,6.806,5746,6.44,5747,6.166,5748,6.806,5749,7.363,5750,7.363,5751,6.806,5752,4.819,5753,6.806,5754,6.806,5755,5.765,5756,6.806]],["title/classes/ContextExternalToolContextParams.html",[0,0.232,5757,5.694]],["body/classes/ContextExternalToolContextParams.html",[0,0.373,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,27,0.452,30,0.001,32,0.149,47,0.782,95,0.154,101,0.014,103,0.001,104,0.001,145,2.198,165,0.859,197,8.479,198,4.216,200,4.139,209,3.97,316,6.18,364,1.996,368,4.945,369,2.801,370,3.958,371,3.48,374,2.77,376,1.985,467,3.152,1000,4.462,1031,2.72,1044,4.164,2536,7.564,2889,5.427,4773,7.2,5694,6.978,5757,9.179,5758,9.704,5759,8.679,5760,7.548,5761,7.591,5762,8.679,5763,8.679,5764,8.679,5765,8.679,5766,8.679,5767,7.591]],["title/entities/ContextExternalToolEntity.html",[380,1.445,5768,4.943]],["body/entities/ContextExternalToolEntity.html",[0,0.239,3,0.017,4,0.017,5,0.008,7,0.106,27,0.517,29,0.91,30,0.001,32,0.17,33,0.461,47,0.894,55,2.333,95,0.156,96,1.919,101,0.016,103,0.001,104,0.001,165,0.747,192,2.091,199,2.652,200,4.329,209,2.319,240,4.138,334,0.754,364,2.283,369,2.578,370,2.311,380,2.026,381,2.334,386,3.997,398,2.067,399,3.783,402,2.908,404,1.264,405,1.87,406,2.282,1530,5.216,1858,4.994,4265,4.996,4271,5.196,4272,4.252,4773,6.964,4989,4.96,5352,6.817,5694,7.447,5698,5.912,5717,4.466,5718,4.815,5719,4.661,5720,5.1,5721,4.996,5722,5.216,5760,7.3,5768,6.931,5769,10.737,5770,5.668,5771,9.73,5772,7.016,5773,10.162,5774,7.016,5775,7.016,5776,9.257,5777,7.016,5778,8.446,5779,7.016,5780,7.016,5781,5.876,5782,4.527,5783,7.985,5784,6.486,5785,6.486,5786,6.486,5787,6.137,5788,5.876,5789,5.668,5790,5.876]],["title/classes/ContextExternalToolFactory.html",[0,0.232,5791,6.286]],["body/classes/ContextExternalToolFactory.html",[0,0.159,2,0.522,3,0.011,4,0.011,5,0.006,7,0.071,8,0.86,27,0.531,29,1.025,30,0.001,31,0.705,32,0.18,33,0.6,34,1.466,35,1.45,47,0.834,49,1.843,55,2.444,59,3.399,95,0.14,96,1.281,97,2.026,101,0.008,103,0,104,0,127,0.587,138,3.112,140,2.472,144,3.359,145,2.183,148,1.441,165,0.558,181,4.596,185,4.825,188,1.73,197,2.943,200,2.685,201,2.383,209,1.548,216,1.317,217,0.927,227,0.739,234,1.157,264,1.968,316,3.335,319,3.494,359,2.484,366,2.619,379,1.954,380,1.832,381,2.37,404,1.284,538,3.21,596,3.886,627,2.186,660,7.001,661,4.587,662,5.437,665,4.02,666,5.437,667,5.542,668,4.02,669,4.02,670,4.02,671,3.949,672,4.417,673,4.865,674,6.425,675,5.745,676,6.956,677,2.668,682,2.643,683,4.02,684,2.668,685,5.084,686,5.249,687,4.106,688,4.936,689,3.984,690,2.643,691,2.491,692,4.077,693,2.574,694,2.531,695,2.643,696,5.008,697,2.668,698,4.779,699,2.643,700,7.105,701,4.134,702,6.599,703,2.668,704,3.527,705,2.643,706,2.668,707,2.643,708,2.668,709,2.643,712,2.643,713,6.05,714,2.668,715,2.643,716,4.02,717,3.76,718,4.02,719,2.668,720,2.552,721,2.531,722,2.088,723,2.643,724,2.643,725,2.643,726,2.668,727,2.668,728,1.791,729,2.643,730,2.668,731,2.814,732,2.643,733,2.668,735,2.72,736,2.777,737,2.807,905,2.966,4121,3.065,4205,3.678,4313,6.139,4315,3.405,5352,2.748,5697,3.065,5698,2.383,5699,5.427,5701,3.922,5791,7.969,5792,7.124,5793,3.783,5794,7.124,5795,7.124,5796,4.684,5797,7.002,5798,3.668,5799,3.161,5800,3.112,5801,4.684]],["title/classes/ContextExternalToolIdParams.html",[0,0.232,5802,5.181]],["body/classes/ContextExternalToolIdParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,47,0.837,95,0.151,101,0.016,103,0.001,104,0.001,165,0.92,200,4.087,209,3.881,364,1.767,368,4.601,369,2.606,370,3.196,371,3.238,374,3.097,376,2.22,467,3.081,478,6.91,1000,4.781,3267,7.063,5694,6.821,5758,9.486,5802,8.947,5803,8.126,5804,8.487]],["title/classes/ContextExternalToolIdParams-1.html",[0,0.193,905,2.354,5802,4.307]],["body/classes/ContextExternalToolIdParams-1.html",[0,0.403,2,1.095,3,0.023,4,0.023,5,0.012,7,0.148,26,2.691,27,0.405,30,0.001,32,0.133,95,0.163,99,1.639,101,0.016,103,0.001,104,0.001,165,0.927,200,3.685,209,3.91,364,1.789,374,3.135,376,2.247,467,3.104,478,6.994,1000,4.816,2559,5.359,3267,7.1,5802,9.013,5805,10.936,5806,7.139,5807,7.934]],["title/modules/ContextExternalToolModule.html",[425,1.812,5808,5.493]],["body/modules/ContextExternalToolModule.html",[0,0.257,3,0.018,4,0.018,5,0.009,30,0.001,95,0.164,101,0.013,103,0.001,104,0.001,187,1.093,192,2.252,200,3.729,209,3.312,425,2.996,427,2.73,428,2.936,429,3.023,430,3.01,431,2.998,432,4.137,433,4.249,438,5.999,442,4.009,443,2.961,444,2.89,449,3.976,766,3.161,1467,2.412,5030,4.346,5328,9.308,5338,6.103,5694,4.389,5723,11.115,5808,11.546,5809,7.556,5810,7.556,5811,7.556,5812,7.556,5813,9.756,5814,10.027,5815,9.006,5816,11.524,5817,11.524,5818,7.556]],["title/classes/ContextExternalToolPostParams.html",[0,0.232,5819,5.694]],["body/classes/ContextExternalToolPostParams.html",[0,0.379,2,0.824,3,0.017,4,0.017,5,0.009,7,0.112,27,0.525,29,0.871,30,0.001,32,0.182,33,0.574,47,0.907,55,2.127,95,0.159,101,0.012,103,0.001,104,0.001,165,0.773,192,2.202,197,6.986,198,3.589,200,4.339,209,4.294,364,2.318,369,1.64,374,2.359,375,4.235,376,1.69,467,3.244,470,4.13,471,4.507,1000,4.527,1044,3.545,2450,4.21,3469,7.031,4773,6.664,5352,6.524,5477,6.284,5694,7.546,5698,5.657,5758,10.494,5760,6.986,5767,6.463,5797,8.082,5819,8.268,5820,6.831,5821,7.975,5822,7.39,5823,7.39,5824,7.39,5825,5.372,5826,7.39,5827,9.422,5828,6.189,5829,6.189,5830,6.189,5831,7.39,5832,6.831,5833,6.831,5834,7.39,5835,4.643,5836,5.522,5837,5.63]],["title/interfaces/ContextExternalToolProps.html",[334,0.731,5701,5.694]],["body/interfaces/ContextExternalToolProps.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,29,0.992,30,0.001,32,0.176,33,0.59,34,2.077,47,0.943,55,2.727,95,0.163,101,0.017,103,0.001,104,0.001,140,4.192,165,0.811,181,8.17,192,2.367,194,5.199,199,3.002,200,3.588,201,4.041,214,2.504,227,0.824,334,0.853,336,1.901,404,1.431,405,2.117,1872,6.015,4038,4.929,5352,7.759,5694,4.614,5695,6.947,5696,6.22,5697,8.952,5698,6.442,5699,9.647,5700,6.052,5701,9.649,5706,10.228,5710,6.22,5711,5.656,5712,6.052,5713,7.343,5714,7.343,5715,7.343,5716,7.343,5717,5.056,5718,5.452,5719,5.277,5720,5.774,5721,7.374,5722,5.905]],["title/injectables/ContextExternalToolRepo.html",[105,0.91,5336,5.324]],["body/injectables/ContextExternalToolRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,10,2.384,12,2.705,18,2.985,26,2.419,27,0.532,29,1.018,30,0.001,31,0.718,32,0.179,33,0.62,34,1.68,35,1.54,36,2.585,40,2.851,47,0.527,95,0.157,96,1.616,97,1.594,101,0.006,103,0,104,0,105,0.79,107,0.888,111,2.53,112,2.826,116,2.302,127,0.462,140,5.869,148,1.134,158,1.801,165,0.289,187,0.533,197,6.518,199,2.232,200,3.852,201,3.005,216,1.092,217,1.447,221,1.367,227,1.231,234,1.684,277,2.983,305,1.683,307,3.711,309,4.863,316,4.206,319,1.765,359,2.059,380,1.966,381,1.226,398,1.086,404,1.064,450,1.514,529,2.567,595,1.234,596,3.677,661,3.107,878,4.127,884,2.783,885,4.675,915,2.043,935,3.086,945,3.223,1467,1.176,1530,2.74,1790,3.121,1904,1.542,2051,2.099,2139,2.378,2343,8.579,2345,4.206,2346,4.206,2347,4.206,2348,4.206,2349,4.127,2350,4.127,2351,4.206,2352,4.127,2353,4.206,2354,2.679,2355,4.863,2356,3.473,2357,3.851,2359,4.294,2360,2.624,2362,4.863,2363,2.624,2365,2.624,2367,2.412,2368,4.127,2369,2.624,2371,2.624,2373,4.206,2377,4.206,2379,3.987,2380,4.127,2382,2.624,2384,2.209,2385,2.26,2386,2.624,2388,2.624,2390,2.575,2391,2.624,2397,2.487,2408,2.575,2409,4.391,2431,4.947,2444,3.223,4205,1.242,4369,2.378,4466,3.431,4659,3.924,4661,3.118,4773,2.209,5336,4.625,5352,3.466,5697,6.056,5698,3.005,5699,4.5,5706,5.971,5760,2.316,5768,8.293,5771,4.947,5773,9.073,5778,2.679,5782,3.811,5783,8.27,5797,2.679,5800,4.911,5838,9.966,5839,3.223,5840,5.46,5841,5.907,5842,5.907,5843,5.907,5844,3.685,5845,5.46,5846,9.589,5847,3.685,5848,8.637,5849,5.907,5850,3.685,5851,5.46,5852,3.685,5853,4.947,5854,3.407,5855,3.685,5856,5.907,5857,3.685,5858,5.907,5859,3.685,5860,3.685,5861,3.685,5862,2.679,5863,2.679,5864,2.679,5865,2.679,5866,2.679,5867,2.679,5868,2.679,5869,2.679,5870,2.679,5871,3.685,5872,3.685,5873,3.685,5874,2.624,5875,4.206,5876,2.977,5877,3.223,5878,2.808,5879,3.685,5880,3.431,5881,3.407,5882,2.575,5883,5.907,5884,3.685,5885,3.685,5886,3.685,5887,3.685,5888,3.685,5889,3.407,5890,3.685,5891,3.685,5892,3.407,5893,3.685,5894,3.407,5895,3.407,5896,3.685,5897,3.685,5898,3.685,5899,3.685,5900,3.685,5901,3.685,5902,3.407,5903,3.407,5904,5.907,5905,5.46,5906,5.907,5907,5.907]],["title/classes/ContextExternalToolRequestMapper.html",[0,0.232,5908,5.947]],["body/classes/ContextExternalToolRequestMapper.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,8,1.262,27,0.431,29,0.908,30,0.001,31,0.65,32,0.158,33,0.505,34,1.37,35,1.265,95,0.158,101,0.013,103,0.001,104,0.001,111,2.325,144,2.215,181,7.484,192,2.4,194,5.272,200,4.189,209,3.833,227,1.203,367,3.841,627,3.999,982,4.015,5352,4.726,5694,6.737,5697,5.272,5698,4.098,5699,6.137,5797,5.855,5819,10.279,5827,9.69,5837,6.137,5874,5.736,5908,9.139,5909,10.722,5910,6.506,5911,10.449,5912,10.145,5913,10.449,5914,8.054,5915,10.145,5916,7.045,5917,8.054,5918,8.751,5919,7.045,5920,8.054,5921,8.054,5922,8.054,5923,8.054,5924,8.054,5925,7.446,5926,7.045,5927,6.745,5928,7.045]],["title/classes/ContextExternalToolResponse.html",[0,0.232,5929,5.493]],["body/classes/ContextExternalToolResponse.html",[0,0.232,2,0.759,3,0.016,4,0.016,5,0.008,7,0.103,27,0.542,29,0.898,30,0.001,31,0.381,32,0.181,33,0.581,34,1.813,47,0.948,55,2.011,95,0.137,101,0.011,103,0.001,104,0.001,127,0.852,144,1.871,145,1.723,165,0.731,192,2.027,197,7.552,198,3.304,200,4.384,319,2.033,364,2.359,375,4.578,376,1.556,467,3.522,618,2.782,1011,3.437,1016,2.388,1031,2.132,2888,4.123,4773,6.388,5352,6.253,5694,7.722,5698,5.422,5717,4.33,5719,4.52,5721,4.845,5736,6.015,5752,4.453,5758,10.739,5760,6.696,5787,5.95,5789,5.495,5797,7.747,5837,5.183,5929,9.709,5930,5.95,5931,7.541,5932,8.165,5933,5.95,5934,5.95,5935,5.95,5936,5.95,5937,8.982,5938,5.95,5939,5.95,5940,5.95,5941,5.183,5942,6.289,5943,6.803,5944,6.803,5945,6.803,5946,6.803,5947,5.95,5948,6.289,5949,5.95]],["title/classes/ContextExternalToolResponseMapper.html",[0,0.232,5950,5.694]],["body/classes/ContextExternalToolResponseMapper.html",[0,0.227,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,8,1.111,27,0.469,29,0.934,30,0.001,31,0.668,32,0.154,33,0.55,34,1.132,35,1.376,95,0.146,101,0.011,103,0.001,104,0.001,111,2.112,140,6.295,144,1.831,192,1.984,200,4.165,209,3.942,217,1.552,227,1.237,234,1.711,313,6.154,315,5.823,564,3.372,627,4.137,974,3.947,982,3.318,1016,3.229,1904,2.785,3707,5.575,3709,4.423,4466,6.601,4773,3.99,5352,3.906,5694,6.928,5698,4.679,5736,3.757,5760,4.183,5797,4.839,5827,9.087,5837,5.072,5909,11.026,5912,9.216,5916,5.823,5918,7.702,5927,5.575,5928,5.823,5929,9.635,5937,10.089,5950,7.702,5951,9.197,5952,9.197,5953,9.197,5954,9.197,5955,5.823,5956,9.197,5957,9.964,5958,6.657,5959,10.212,5960,9.197,5961,6.154,5962,6.154,5963,5.575,5964,6.154,5965,5.213,5966,4.651,5967,5.823,5968,6.657,5969,6.657,5970,6.657,5971,6.657,5972,8.502,5973,6.657,5974,6.657,5975,5.377,5976,6.154,5977,6.154,5978,5.823,5979,5.575,5980,6.154,5981,6.657]],["title/injectables/ContextExternalToolRule.html",[105,0.91,1887,5.694]],["body/injectables/ContextExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.178,27,0.454,29,0.863,30,0.001,31,0.617,32,0.16,33,0.533,35,1.181,95,0.163,101,0.012,103,0.001,104,0.001,105,1.305,107,1.749,116,3.942,127,0.909,140,6.938,187,1.049,199,4.164,200,3.942,201,3.692,214,2.288,215,2.316,216,1.342,217,0.944,227,1.011,347,2.56,380,2.83,461,3.078,806,4.485,1795,6.367,1823,7.854,1844,4.349,1861,7.838,1887,8.168,2002,4.682,2006,6.052,2013,6.48,3385,6.48,3386,4.898,3389,6.384,3392,4.898,3393,6.583,3394,7.25,5768,9.681,5782,4.682,5800,6.48,5982,11.78,5983,6.708,5984,6.708,5985,6.708,5986,6.708,5987,6.946,5988,7.256,5989,7.256]],["title/classes/ContextExternalToolScope.html",[0,0.232,5848,5.947]],["body/classes/ContextExternalToolScope.html",[0,0.217,2,0.711,3,0.015,4,0.015,5,0.008,7,0.096,8,1.078,26,2.782,27,0.534,29,0.953,30,0.001,31,0.681,32,0.176,33,0.588,34,1.751,35,1.473,95,0.143,99,1.064,101,0.011,103,0.001,104,0.001,111,2.439,144,1.753,145,3.476,148,1.961,165,0.699,197,7.007,200,3.789,227,1.156,277,5.227,319,1.905,347,2.082,404,1.608,450,2.618,529,2.77,596,3.581,2394,6.104,4773,6.17,5760,6.468,5768,4.632,5771,5.337,5782,4.112,5797,7.483,5799,4.301,5800,4.234,5838,10.852,5848,11.476,5990,5.574,5991,6.022,5992,6.022,5993,6.022,5994,8.922,5995,8.922,5996,8.922,5997,8.922,5998,6.022,5999,6.022,6000,4.374,6001,4.301,6002,4.374,6003,4.374,6004,8.922,6005,6.373,6006,8.922,6007,6.373,6008,8.922,6009,6.373,6010,8.922,6011,6.373,6012,4.301,6013,6.022,6014,4.374,6015,4.301,6016,4.374,6017,4.301,6018,7.527]],["title/classes/ContextExternalToolSearchListResponse.html",[0,0.232,6019,5.947]],["body/classes/ContextExternalToolSearchListResponse.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,27,0.469,29,0.72,30,0.001,31,0.515,32,0.168,33,0.445,95,0.146,101,0.015,103,0.001,104,0.001,127,1.152,145,2.328,163,4.073,165,0.89,199,3.475,200,4.256,209,4.076,364,1.675,376,2.103,467,2.981,1005,8.782,1006,6.423,1009,6.473,1011,4.645,1026,5.097,5694,7.163,5732,8.898,5758,9.962,5929,11.038,6019,9.938,6020,8.041]],["title/injectables/ContextExternalToolService.html",[105,0.91,5815,4.45]],["body/injectables/ContextExternalToolService.html",[0,0.213,3,0.015,4,0.015,5,0.008,7,0.095,8,1.065,12,4.037,26,2.635,27,0.513,29,0.974,30,0.001,31,0.696,32,0.169,33,0.601,35,1.465,36,2.803,95,0.15,99,1.045,101,0.01,103,0.001,104,0.001,105,1.179,107,1.51,112,3.045,127,0.785,140,7.147,187,0.906,199,2.367,200,4.285,209,2.913,215,1.999,216,1.158,217,1.518,221,2.877,227,1.148,450,2.573,529,2.722,1904,2.62,3267,3.503,5336,9.475,5345,5.06,5694,7.371,5697,7.919,5699,4.772,5724,11.1,5725,5.79,5737,6.407,5797,4.553,5815,5.769,5846,10.232,5874,4.46,5919,5.479,6021,8.815,6022,7.71,6023,8.815,6024,8.815,6025,8.815,6026,6.264,6027,8.815,6028,6.264,6029,8.815,6030,6.264,6031,8.815,6032,6.264,6033,8.815,6034,5.79,6035,8.815,6036,5.79,6037,8.815,6038,6.264,6039,8.671,6040,6.264,6041,6.264,6042,8.815,6043,6.264,6044,8.815,6045,6.264,6046,6.264]],["title/injectables/ContextExternalToolUc.html",[105,0.91,6047,5.694]],["body/injectables/ContextExternalToolUc.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.065,8,0.811,26,2.942,27,0.455,29,0.865,30,0.001,31,0.618,32,0.155,33,0.534,34,1.142,35,1.281,36,2.565,39,3.221,47,0.586,95,0.156,99,0.724,101,0.007,103,0,104,0,105,0.898,107,1.045,111,2.287,112,2.888,116,3.297,127,0.841,139,5.5,140,6.998,187,0.627,192,2.001,197,5.813,198,2.106,199,4.674,200,4.107,201,2.206,209,3.498,216,1.85,217,1.68,221,3.011,227,1.038,234,1.625,305,1.913,311,5.872,461,1.879,766,1.814,843,2.963,1345,1.72,1795,5.409,1801,2.599,1884,5.966,1904,1.814,1973,3.088,1978,3.395,1981,5.872,1982,2.599,1984,3.395,2725,1.964,3010,2.425,3267,6.174,4205,4.032,4773,5.545,5694,6.625,5697,4.394,5760,5.813,5815,7.225,5816,9.245,5874,3.088,5915,11.083,5965,3.395,5975,6.637,6022,5.872,6047,5.623,6048,11.406,6049,3.792,6050,7.595,6051,8.216,6052,6.207,6053,7.595,6054,7.595,6055,4.336,6056,7.868,6057,7.334,6058,4.008,6059,4.336,6060,4.336,6061,6.714,6062,4.336,6063,4.336,6064,6.37,6065,4.336,6066,6.714,6067,4.336,6068,4.336,6069,4.336,6070,4.336,6071,4.336,6072,3.223,6073,3.395,6074,2.69,6075,4.336,6076,8.216,6077,4.881,6078,6.714,6079,6.207,6080,4.336,6081,4.336,6082,8.091,6083,6.714,6084,6.207,6085,6.714,6086,3.502,6087,4.336,6088,6.207,6089,4.336,6090,4.336,6091,3.303,6092,9.251,6093,4.336,6094,4.336,6095,6.207,6096,4.336]],["title/injectables/ContextExternalToolValidationService.html",[105,0.91,5816,5.694]],["body/injectables/ContextExternalToolValidationService.html",[0,0.224,3,0.016,4,0.016,5,0.008,7,0.1,8,1.103,27,0.432,29,0.821,30,0.001,31,0.666,32,0.142,33,0.507,35,1.106,36,1.959,95,0.168,101,0.011,103,0.001,104,0.001,105,1.222,107,1.589,111,2.528,112,2.71,127,1.144,139,5.02,140,7.044,158,4.465,187,0.953,188,3.374,192,2.722,199,3.452,200,4.224,201,4.647,209,4.167,216,2.093,217,1.189,221,2.619,234,1.07,247,2.583,305,1.878,394,3.755,503,5.6,520,4.379,558,3.162,774,4.524,795,4.042,1904,2.757,1945,4.524,2257,5.536,3498,5.52,3832,5.325,3833,4.524,5022,4.196,5335,9.873,5362,5.162,5375,5.765,5377,6.093,5694,6.573,5699,5.022,5724,9.898,5815,8.048,5816,7.65,5965,5.162,5966,4.605,5967,5.765,6057,8.376,6064,4.196,6074,5.668,6077,4.792,6097,9.134,6098,5.978,6099,6.093,6100,7.73,6101,6.592,6102,9.134,6103,9.134,6104,6.592,6105,5.162,6106,5.325,6107,6.592,6108,6.592,6109,6.592,6110,6.093,6111,7.65,6112,6.093,6113,6.592,6114,6.592,6115,5.765,6116,6.093,6117,6.592,6118,6.592,6119,6.592,6120,6.592,6121,6.592,6122,6.592]],["title/classes/ContextRef.html",[0,0.232,5697,4.45]],["body/classes/ContextRef.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.513,29,0.735,30,0.001,31,0.526,32,0.184,33,0.454,34,2.117,47,0.821,95,0.121,101,0.016,103,0.001,104,0.001,127,1.176,165,0.901,197,7.82,198,4.559,200,4.041,405,3.067,595,3.143,618,3.839,619,5.203,2578,4.185,4333,5.626,5694,7.537,5695,11.349,5697,8.714,6123,8.677,6124,10.639,6125,8.677]],["title/classes/ContextRefParams.html",[0,0.232,6126,5.947]],["body/classes/ContextRefParams.html",[0,0.39,2,1.039,3,0.022,4,0.022,5,0.011,7,0.141,26,2.631,27,0.473,30,0.001,32,0.169,95,0.166,99,1.556,101,0.016,103,0.001,104,0.001,165,0.898,197,8.349,198,4.528,364,2.087,374,2.975,376,2.132,467,3.255,1000,4.666,1044,4.472,2559,5.621,4773,7.437,5760,7.796,5767,8.153,5805,11.471,5806,6.776,6126,10.023,6127,9.322,6128,9.322,6129,9.322,6130,9.322]],["title/injectables/ConverterUtil.html",[105,0.91,2250,5.694]],["body/injectables/ConverterUtil.html",[0,0.429,3,0.023,4,0.023,5,0.012,7,0.146,8,1.414,27,0.398,29,0.917,30,0.001,31,0.541,32,0.159,33,0.467,35,1.169,47,0.899,95,0.15,101,0.016,103,0.001,104,0.001,105,1.566,107,2.328,187,1.396,227,1.001,379,2.188,692,4.895,2250,9.806,4619,10.242,6131,9.657,6132,11.709,6133,11.709,6134,9.657,6135,9.657,6136,9.657,6137,8.927,6138,9.657]],["title/classes/CookiesDto.html",[0,0.232,6139,5.694]],["body/classes/CookiesDto.html",[0,0.333,2,1.09,3,0.023,4,0.023,5,0.012,7,0.148,27,0.522,29,0.766,30,0.001,31,0.547,32,0.172,33,0.473,47,0.938,101,0.016,103,0.001,104,0.001,127,1.224,165,0.924,405,3.143,595,3.272,6139,11.277,6140,9.774,6141,11.08,6142,11.08,6143,11.795,6144,9.774,6145,9.774,6146,9.774,6147,9.774,6148,9.774]],["title/classes/CopyApiResponse.html",[0,0.232,6149,5.324]],["body/classes/CopyApiResponse.html",[0,0.226,2,0.741,3,0.016,4,0.016,5,0.008,7,0.1,27,0.521,29,0.521,30,0.001,31,0.372,32,0.19,33,0.632,34,2.15,47,0.944,95,0.118,100,3.076,101,0.011,103,0.001,104,0.001,127,1.151,145,1.683,165,0.72,188,3.393,364,2.245,375,4.54,376,1.52,379,2.999,467,2.762,538,4.139,564,4.793,966,3.381,1011,4.642,1031,3.559,1041,6.667,1397,4.312,1403,5.836,1414,5.138,1582,10.084,2037,3.9,2524,6.664,2553,5.489,2578,2.963,2747,3.43,3007,9.334,3008,8.861,3009,4.028,3299,8.035,5283,7.193,6149,10.084,6150,10.785,6151,6.646,6152,7.193,6153,6.305,6154,6.103,6155,9.208,6156,6.646,6157,8.035,6158,6.646,6159,6.144,6160,8.492,6161,6.542,6162,6.646,6163,6.646,6164,8.492,6165,6.646,6166,6.646,6167,6.646,6168,6.646]],["title/classes/CopyFileDto.html",[0,0.232,6169,5.181]],["body/classes/CopyFileDto.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,26,2.775,27,0.524,29,0.693,30,0.001,31,0.712,32,0.173,33,0.586,34,2.062,47,0.791,95,0.142,99,1.477,101,0.015,103,0.001,104,0.001,127,1.109,145,2.81,163,2.724,165,0.869,336,2.118,618,3.619,1009,6.321,2095,3.511,3579,6.44,6169,8.454,6170,6.062,6171,13.09,6172,8.851,6173,8.053,6174,10.644,6175,11.097,6176,8.851,6177,8.851,6178,7.149,6179,7.149,6180,7.149,6181,7.149]],["title/classes/CopyFileListResponse.html",[0,0.232,6182,5.324]],["body/classes/CopyFileListResponse.html",[0,0.37,2,0.669,3,0.014,4,0.014,5,0.007,7,0.091,27,0.473,29,0.47,30,0.001,31,0.558,32,0.176,33,0.555,34,1.455,47,0.911,55,2.972,56,6.022,59,2.664,70,6.216,83,1.836,95,0.139,101,0.018,103,0,104,0,127,0.752,145,1.52,150,2.078,163,3.779,165,0.67,364,1.978,375,3.795,376,1.373,380,1.275,404,1.795,467,3.552,469,2.635,596,3.313,618,3.497,1007,7.696,1008,6.636,1009,6.186,1011,3.033,1013,4.563,1014,2.862,1015,4.783,1016,2.107,1017,4.194,1018,5.518,1019,4.968,1020,3.929,1021,3.193,1022,4.194,1023,4.194,1025,5.374,1026,4.741,1031,3.122,1356,4.849,1360,4.7,1487,3.357,2095,3.393,2745,6.342,2889,4.934,3578,3.098,3610,2.934,6170,3.961,6173,3.988,6178,4.849,6179,4.849,6180,4.849,6181,4.849,6182,6.697,6183,5.598,6184,5.027,6185,9.829,6186,6.002,6187,6.002,6188,5.126,6189,5.918,6190,8.174,6191,6.521,6192,8.073,6193,5.027,6194,4.849,6195,5.027,6196,3.244,6197,5.027,6198,4.194,6199,5.027,6200,5.027,6201,5.027,6202,4.7,6203,4.849,6204,5.027,6205,5.027,6206,4.274,6207,4.849,6208,3.988,6209,4.849,6210,4.363,6211,5.027,6212,5.027,6213,4.849,6214,5.027,6215,4.462,6216,3.327,6217,2.953,6218,3.929,6219,4.462]],["title/classes/CopyFileParams.html",[0,0.232,6220,4.667]],["body/classes/CopyFileParams.html",[0,0.456,2,0.717,3,0.015,4,0.021,5,0.011,7,0.097,26,2.587,27,0.37,30,0.001,32,0.166,39,1.732,47,0.963,95,0.161,99,1.074,101,0.022,103,0.001,104,0.001,150,2.228,165,0.703,204,2.183,214,2.028,334,0.691,347,1.817,364,1.636,369,1.428,373,4.815,374,2.054,375,4.266,376,1.472,377,5.967,379,1.458,380,1.367,467,3.636,469,2.825,470,5.105,471,4.54,565,3.207,1000,4.968,1001,6.712,1031,3.242,1044,3.087,1180,2.769,1270,3.815,1330,5.717,1331,4.211,1332,4.211,2702,5.308,2889,5.124,3610,3.145,4205,2.168,5836,6.589,6170,4.792,6183,6.772,6189,6.103,6217,3.165,6220,6.164,6221,4.495,6222,7.229,6223,5.948,6224,6.434,6225,8.107,6226,5.948,6227,6.434,6228,4.495,6229,8.107,6230,7.824,6231,7.824,6232,4.495,6233,4.416,6234,6.984,6235,4.416,6236,4.495,6237,4.342,6238,6.062,6239,4.274,6240,4.342,6241,4.416,6242,4.342,6243,4.342,6244,4.095,6245,4.495,6246,4.495,6247,4.495,6248,4.095,6249,4.095,6250,4.211,6251,4.274,6252,4.495]],["title/classes/CopyFileResponse.html",[0,0.232,6185,5.324]],["body/classes/CopyFileResponse.html",[0,0.382,2,0.72,3,0.015,4,0.015,5,0.008,7,0.097,27,0.462,29,0.506,30,0.001,31,0.661,32,0.166,33,0.501,34,1.908,47,0.956,55,2.7,56,5.38,70,5.553,83,1.975,95,0.144,101,0.019,103,0.001,104,0.001,127,0.808,150,2.235,163,3.63,165,0.705,364,1.888,375,4.272,376,1.476,380,1.371,404,1.622,467,3.607,469,2.834,618,3.681,1007,6.355,1008,4.865,1009,6.389,1015,3.61,1025,5.656,1026,4.99,1031,3.248,1356,5.214,1360,5.054,1487,3.61,2095,3.571,2742,4.692,2745,6.598,2889,5.133,3578,3.331,3610,3.155,6170,5.463,6173,6.886,6178,5.214,6179,5.214,6180,5.214,6181,5.214,6182,5.054,6183,7.719,6184,5.405,6185,10.012,6188,5.395,6189,6.111,6190,8.399,6191,6.784,6192,8.337,6193,5.405,6194,5.214,6195,5.405,6196,3.488,6197,5.405,6198,4.509,6199,5.405,6200,5.405,6201,5.405,6202,5.054,6203,5.214,6204,5.405,6205,5.405,6206,4.596,6207,5.214,6208,4.288,6209,5.214,6210,4.692,6211,5.405,6212,5.405,6213,5.214,6214,5.405,6215,4.798,6216,3.578,6217,3.175,6218,4.224,6219,4.798,6253,6.454,6254,6.454,6255,6.454,6256,6.454]],["title/classes/CopyFileResponseBuilder.html",[0,0.232,6257,6.286]],["body/classes/CopyFileResponseBuilder.html",[0,0.318,2,1.042,3,0.022,4,0.022,5,0.015,7,0.141,8,1.386,27,0.385,29,0.732,30,0.001,31,0.745,32,0.127,33,0.452,34,1.952,35,1.131,47,0.995,95,0.12,101,0.016,103,0.001,104,0.001,116,2.91,217,1.216,227,0.969,234,1.517,627,3.811,667,5.44,982,4.657,6170,5.315,6173,8.606,6185,10.599,6257,10.609,6258,11.476,6259,8.637,6260,11.476,6261,9.343]],["title/interfaces/CopyFiles.html",[334,0.731,6262,5.324]],["body/interfaces/CopyFiles.html",[3,0.022,4,0.022,5,0.014,7,0.139,30,0.001,32,0.155,47,1.021,55,1.985,95,0.118,101,0.022,103,0.001,104,0.001,163,3.502,165,0.891,334,1.385,336,2.205,1342,7.756,1344,6.031,1487,5.154,2145,5.79,6262,8.91,6263,7.216,6264,7.717,6265,10.414,6266,10.414,6267,5.866,6268,7.216,6269,6.438,6270,6.438,6271,6.438,6272,6.438,6273,6.698,6274,6.85,6275,6.562,6276,6.85,6277,6.85]],["title/classes/CopyFilesOfParentParamBuilder.html",[0,0.232,6278,5.947]],["body/classes/CopyFilesOfParentParamBuilder.html",[0,0.307,2,1.007,3,0.027,4,0.031,5,0.014,7,0.136,8,1.357,26,2.714,27,0.372,29,0.707,30,0.001,31,0.506,32,0.123,33,0.437,35,1.093,39,3.025,95,0.157,99,1.507,101,0.015,103,0.001,104,0.001,217,1.175,227,0.936,336,2.161,367,4.305,627,3.753,667,5.326,2702,5.768,3339,5.638,3578,5.799,3579,5.528,6170,5.204,6278,9.827,6279,11.236,6280,8.347,6281,11.236,6282,10.659,6283,8.347,6284,10.244,6285,8.347,6286,10.387]],["title/classes/CopyFilesOfParentParams.html",[0,0.232,6242,4.589]],["body/classes/CopyFilesOfParentParams.html",[0,0.458,2,0.731,3,0.016,4,0.022,5,0.011,7,0.099,26,2.603,27,0.27,30,0.001,32,0.161,39,1.766,47,0.959,95,0.162,99,1.095,101,0.022,103,0.001,104,0.001,150,2.271,165,0.713,204,2.226,214,2.068,334,0.705,347,1.841,364,1.195,369,1.456,373,4.88,374,2.094,375,4.302,376,1.5,377,6.048,379,1.486,380,1.394,467,3.645,469,2.88,470,5.136,471,4.578,565,3.27,1000,4.999,1001,6.769,1031,3.276,1044,3.147,1180,2.823,1270,3.889,1330,5.795,1331,4.293,1332,4.293,2702,5.346,2889,5.177,3610,3.206,4205,2.211,5836,6.635,6170,4.216,6183,5.958,6189,6.154,6217,3.227,6220,4.502,6221,4.583,6222,4.583,6225,8.157,6226,6.064,6228,4.583,6229,8.157,6230,7.89,6231,7.89,6232,4.583,6233,4.502,6234,7.056,6235,4.502,6236,4.583,6237,4.427,6238,6.144,6239,4.358,6240,4.427,6241,4.502,6242,6.144,6243,4.427,6244,4.175,6245,4.583,6246,4.583,6247,4.583,6248,4.175,6249,4.175,6250,4.293,6251,4.358,6252,4.583,6287,6.559]],["title/classes/CopyFilesOfParentPayload.html",[0,0.232,6243,4.589]],["body/classes/CopyFilesOfParentPayload.html",[0,0.455,2,0.704,3,0.015,4,0.026,5,0.011,7,0.095,26,2.641,27,0.422,30,0.001,32,0.169,39,2.758,47,0.953,95,0.16,99,1.054,101,0.022,103,0.001,104,0.001,150,2.186,165,0.694,204,2.142,214,1.99,334,0.678,347,1.793,364,1.866,369,1.401,373,4.752,374,2.015,375,4.231,376,1.444,377,5.888,379,1.431,380,1.341,467,3.628,469,2.771,470,5.074,471,4.502,565,3.147,1000,5.072,1001,6.657,1031,3.209,1044,3.029,1180,2.717,1270,3.743,1330,5.642,1331,4.132,1332,4.132,2702,5.271,2889,5.072,3610,3.086,4205,2.128,5836,6.967,6170,5.144,6183,7.269,6189,6.052,6217,3.106,6220,4.333,6221,4.41,6222,4.41,6225,8.276,6228,4.41,6229,8.059,6230,7.76,6231,7.76,6232,4.41,6233,4.333,6234,6.913,6235,4.333,6236,4.41,6237,4.261,6238,5.982,6239,4.194,6240,4.261,6241,4.333,6242,4.261,6243,5.982,6244,4.018,6245,4.41,6246,4.41,6247,4.41,6248,4.018,6249,4.018,6250,4.132,6251,4.194,6252,4.41,6288,6.313,6289,6.313,6290,6.313]],["title/injectables/CopyFilesService.html",[105,0.91,6291,5.694]],["body/injectables/CopyFilesService.html",[0,0.201,3,0.014,4,0.023,5,0.01,7,0.089,8,1.021,26,2.285,27,0.444,29,0.893,30,0.001,31,0.684,32,0.17,33,0.521,34,1.94,35,1.195,36,1.813,39,2.659,47,0.421,95,0.157,99,0.986,100,1.977,101,0.014,103,0,104,0,105,1.131,107,1.424,111,2.506,112,2.176,127,1.059,187,0.854,206,3.005,216,1.563,217,1.733,221,1.367,227,1.183,234,0.959,336,1.413,564,3.099,574,2.593,692,4.565,1041,3.303,1397,1.977,1582,4.624,1750,3.75,2702,3.809,2974,8.627,2992,6.955,3007,4.624,3008,4.39,3009,3.579,3010,3.303,3023,8.441,3024,8.269,3031,4.946,3578,3.048,3579,5.838,5429,5.533,5471,4.499,6169,9.311,6170,5.283,6173,6.56,6242,3.986,6278,5.165,6291,7.08,6292,10.545,6293,5.906,6294,9.874,6295,8.454,6296,7.815,6297,5.906,6298,8.702,6299,5.906,6300,5.906,6301,5.906,6302,8.454,6303,5.906,6304,9.874,6305,11.297,6306,8.454,6307,5.906,6308,5.906,6309,5.165,6310,5.459,6311,8.454,6312,5.906,6313,5.906,6314,8.636,6315,5.906,6316,5.906,6317,5.906,6318,5.906,6319,7.815,6320,5.906,6321,7.394,6322,5.906,6323,5.906,6324,4.39,6325,5.906,6326,5.906,6327,5.459,6328,5.906,6329,8.454,6330,5.906,6331,5.459,6332,4.624,6333,4.77,6334,5.165,6335,8.454,6336,5.906,6337,5.906]],["title/modules/CopyHelperModule.html",[425,1.812,6338,4.943]],["body/modules/CopyHelperModule.html",[0,0.327,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.39,425,3.351,427,3.472,428,3.735,429,3.845,430,3.829,431,3.813,432,4.628,433,4.753,442,4.672,443,3.766,444,3.675,2974,10.338,6150,8.049,6338,10.026,6339,9.611,6340,9.611,6341,9.611,6342,8.884,6343,9.611,6344,8.884,6345,9.611]],["title/injectables/CopyHelperService.html",[105,0.91,2974,4.943]],["body/injectables/CopyHelperService.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.128,26,1.442,27,0.439,29,0.835,30,0.001,31,0.712,32,0.145,33,0.515,35,1.29,47,0.923,95,0.147,101,0.011,103,0.001,104,0.001,105,1.249,107,1.64,144,1.871,187,0.984,217,1.616,227,1.319,234,1.105,247,2.666,319,2.033,359,2.372,472,6.301,564,4.552,905,3.887,1041,3.805,1787,3.952,1873,4.222,2035,3.677,2545,3.619,2974,6.786,2992,8.356,3008,7.923,3027,8.63,3031,5.697,3364,6.015,3687,6.289,6150,9.606,6332,8.346,6346,11.47,6347,6.803,6348,9.335,6349,9.335,6350,9.335,6351,9.335,6352,6.803,6353,10.658,6354,9.335,6355,9.606,6356,6.803,6357,9.335,6358,6.803,6359,6.289,6360,6.803,6361,9.335,6362,6.803,6363,5.697,6364,6.803,6365,4.52,6366,6.803,6367,5.697,6368,4.845,6369,6.803,6370,6.803,6371,6.803,6372,6.803,6373,10.658,6374,6.803,6375,5.057,6376,9.335,6377,6.803,6378,9.335,6379,6.803,6380,6.803,6381,6.803,6382,6.803,6383,6.803,6384,6.803,6385,6.803]],["title/classes/CopyMapper.html",[0,0.232,6386,5.493]],["body/classes/CopyMapper.html",[0,0.241,2,0.788,3,0.017,4,0.017,5,0.009,7,0.107,8,1.157,26,2.723,27,0.448,29,0.851,30,0.001,31,0.609,32,0.158,33,0.526,35,1.316,39,3.518,95,0.165,99,1.179,100,4.205,101,0.012,103,0.001,104,0.001,185,3.723,217,1.516,227,1.127,234,1.147,564,2.59,627,4.064,975,5.31,1397,2.366,2633,4.596,2647,5.056,2649,4.271,2992,7.859,3008,5.252,3023,5.533,5017,4.282,6149,9.125,6150,9.759,6332,7.501,6359,6.532,6386,7.738,6387,7.066,6388,9.58,6389,9.58,6390,9.58,6391,9.759,6392,7.066,6393,10.047,6394,9.58,6395,9.759,6396,7.066,6397,10.047,6398,9.58,6399,7.066,6400,7.066,6401,8.856,6402,7.066,6403,7.066,6404,7.066,6405,7.066,6406,7.066,6407,7.066,6408,9.58,6409,9.58,6410,5.917,6411,7.066,6412,7.066,6413,7.066,6414,9.58,6415,7.066,6416,7.066,6417,7.066,6418,7.066,6419,7.066,6420,8.856,6421,6.532]],["title/modules/CoreModule.html",[425,1.812,6422,4.517]],["body/modules/CoreModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,30,0.001,95,0.164,101,0.014,103,0.001,104,0.001,187,1.174,204,3.95,379,1.84,425,3.397,427,2.933,428,3.155,429,3.249,430,3.235,431,3.221,432,2.988,433,4.4,438,6.515,442,4.203,443,3.181,444,3.105,449,4.167,1415,4.978,2356,3.335,3835,6.686,4603,8.796,6422,9.285,6423,8.119,6424,8.119,6425,8.119,6426,10.55,6427,10.938,6428,10.938,6429,8.119,6430,8.225,6431,8.225,6432,8.796,6433,9.71,6434,7.338,6435,10.504,6436,7.48,6437,7.635,6438,10.504,6439,7.338,6440,9.187,6441,9.71,6442,10.504,6443,8.796,6444,6.559]],["title/classes/County.html",[0,0.232,6445,5.694]],["body/classes/County.html",[0,0.348,2,0.867,3,0.018,4,0.018,5,0.009,7,0.117,27,0.499,29,0.609,30,0.001,31,0.723,32,0.165,33,0.376,47,0.972,55,2.199,83,3.124,95,0.131,96,2.127,101,0.019,103,0.001,104,0.001,127,0.974,165,0.8,240,3.841,334,0.835,369,2.266,370,3.756,371,2.816,380,2.17,398,2.291,399,4.051,400,3.431,402,3.222,404,1.401,405,2.072,406,2.529,591,3.379,592,3.522,620,5.016,621,5.923,622,5.016,623,5.923,1858,4.072,2095,4.051,2574,5.27,4271,5.564,4281,3.396,5736,5.763,5752,5.088,6445,11.307,6446,10.999,6447,6.8,6448,9.972,6449,9.972,6450,8.931,6451,7.775,6452,7.775,6453,7.775,6454,7.775,6455,8.551,6456,8.931,6457,8.931,6458,6.8,6459,6.8,6460,6.8,6461,6.8,6462,6.8,6463,6.8,6464,5.336,6465,6.8,6466,6.8,6467,6.088]],["title/entities/Course.html",[188,2.511,380,1.445]],["body/entities/Course.html",[0,0.183,2,0.882,3,0.008,4,0.008,5,0.004,7,0.149,26,2.097,27,0.497,30,0.001,31,0.489,32,0.159,33,0.532,34,1.164,39,1.842,47,0.878,62,3.16,83,3.27,95,0.148,96,0.9,101,0.011,103,0,104,0,111,1.585,116,3.425,127,0.412,144,2.939,145,2.911,148,1.657,165,0.422,188,3.461,192,2.357,208,1.228,214,1.037,217,1.633,227,1.301,234,1.929,240,3.573,305,1.534,319,3.436,334,0.353,347,1.089,364,2.193,369,2.637,370,2.874,371,0.907,379,1.977,380,1.144,381,1.094,386,3.896,394,3.068,398,0.969,399,2.137,400,1.451,402,1.363,404,0.593,405,0.876,406,1.069,461,2.143,475,1.607,535,1.763,565,2.685,618,1.345,627,1.653,686,1.792,701,1.163,738,1.71,770,3.193,844,3.974,851,2.568,852,2.568,905,1.369,922,2.754,1031,2.143,1107,2.297,1353,2.6,1397,1.101,1843,2.553,1852,2.274,1858,2.821,1946,2.185,2075,1.807,2095,3.137,2632,5.294,2636,6.265,2640,3.727,2648,2.297,2650,2.04,3090,3.42,3146,2.185,3147,2.122,3319,1.993,3429,2.093,3590,3.04,3753,2.04,3777,3.525,3778,3.525,3981,2.39,4052,1.929,4205,1.815,4206,5.631,4221,2.754,4255,4.972,4281,2.353,4324,5.414,4748,1.823,4878,2.016,4989,2.467,6375,2.444,6436,2.342,6468,2.876,6469,6.572,6470,5.888,6471,6.213,6472,5.253,6473,5.068,6474,4.694,6475,6.213,6476,5.482,6477,5.525,6478,6.342,6479,4.979,6480,4.711,6481,3.288,6482,4.711,6483,3.288,6484,3.288,6485,4.711,6486,3.475,6487,3.288,6488,4.711,6489,3.288,6490,6.916,6491,2.754,6492,3.288,6493,4.711,6494,3.288,6495,4.711,6496,3.288,6497,2.876,6498,3.288,6499,2.876,6500,3.288,6501,3.288,6502,6.323,6503,3.288,6504,4.711,6505,3.288,6506,3.288,6507,3.288,6508,2.04,6509,2.876,6510,2.876,6511,3.264,6512,3.835,6513,2.876,6514,5.085,6515,2.876,6516,3.915,6517,2.656,6518,3.16,6519,2.185,6520,3.525,6521,2.016,6522,3.384,6523,1.839,6524,4.35,6525,4.35,6526,2.876,6527,2.656,6528,2.342,6529,2.876,6530,2.876,6531,2.754,6532,2.444,6533,2.876,6534,2.876,6535,2.575,6536,2.876,6537,3.302,6538,9.95,6539,4.871,6540,2.656,6541,3.635,6542,2.152,6543,2.04,6544,1.971,6545,2.656,6546,2.876,6547,2.876,6548,4.711,6549,4.711,6550,4.711,6551,6.387,6552,4.35,6553,4.103,6554,4.711,6555,4.004,6556,4.103,6557,2.444,6558,2.876,6559,2.876,6560,2.093,6561,3.578,6562,2.876,6563,2.876,6564,2.876,6565,4.711,6566,2.876,6567,2.876,6568,2.876,6569,2.876,6570,2.876,6571,2.876,6572,2.876,6573,5.525,6574,5.983,6575,2.876,6576,2.876,6577,2.876,6578,2.876,6579,2.876,6580,2.39,6581,2.876,6582,2.876,6583,2.876,6584,2.876,6585,2.876,6586,2.219,6587,2.876,6588,2.754,6589,2.876,6590,5.983,6591,4.711,6592,2.876,6593,2.876,6594,2.656,6595,2.656,6596,2.257,6597,2.876,6598,5.525,6599,2.876,6600,2.876,6601,2.876,6602,2.876]],["title/controllers/CourseController.html",[481,2.611,6603,5.947]],["body/controllers/CourseController.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.102,8,1.124,27,0.384,29,0.729,30,0.001,31,0.521,32,0.144,33,0.45,35,1.126,36,2.454,56,4.463,70,4.607,95,0.171,100,2.266,101,0.011,103,0.001,104,0.001,111,2.131,112,2.732,127,0.848,187,0.979,216,1.966,217,1.561,221,2.153,227,0.965,234,1.726,250,8.902,264,3.91,305,1.928,364,1.694,369,1.502,376,1.548,447,2.806,469,2.972,481,2.599,483,3.228,491,6.247,513,6.416,529,4.62,555,3.519,556,3.6,561,3.629,789,6.957,801,3.932,1008,5.028,1016,4.458,1028,7.996,1491,4.92,1750,4.715,2303,3.771,2644,4.988,2908,6.957,2930,3.629,3743,3.972,4748,5.157,4997,9.297,6603,8.137,6604,6.769,6605,9.826,6606,6.769,6607,10.011,6608,10.011,6609,9.303,6610,6.769,6611,6.257,6612,7.191,6613,6.769,6614,6.279,6615,5.669,6616,4.057,6617,8.902,6618,6.769,6619,8.902,6620,6.257,6621,6.769,6622,5.669,6623,5.92,6624,6.769,6625,6.769,6626,6.769,6627,6.769,6628,6.769,6629,5.3,6630,6.769,6631,6.769,6632,5.669,6633,6.769,6634,6.769,6635,6.769,6636,6.769,6637,6.769,6638,5.669,6639,6.769]],["title/injectables/CourseCopyService.html",[105,0.91,6640,5.493]],["body/injectables/CourseCopyService.html",[0,0.171,3,0.012,4,0.012,5,0.006,7,0.076,8,0.905,10,2.022,26,1.904,27,0.44,29,0.836,30,0.001,31,0.65,32,0.177,33,0.516,35,1.206,36,2.137,39,2.418,47,0.534,83,1.533,95,0.144,99,0.836,101,0.008,103,0,104,0,105,1.003,107,1.208,111,2.635,112,2.689,127,0.939,138,3.274,145,1.269,185,2.913,187,0.724,188,4.855,192,1.493,216,2.07,217,1.697,221,2.876,227,1.033,234,1.217,247,1.963,318,3.724,369,1.112,441,6.957,450,2.058,461,2.791,564,4.375,1041,4.192,1345,1.988,1397,1.677,1930,6.786,2018,3.923,2524,2.94,2627,3.774,2633,4.308,2681,4.047,2958,9.72,2960,3.923,2970,8.628,2974,8.437,2980,3.923,2981,4.631,2992,7.225,3000,10.351,3006,4.195,3007,3.923,3008,3.724,3009,3.036,3010,2.802,3016,7.854,3022,4.382,3023,3.923,3024,4.195,3050,3.817,3303,3.567,4324,3.109,4741,4.382,6332,3.923,6355,6.276,6367,7.52,6469,3.328,6470,3.381,6475,3.567,6478,3.642,6640,6.054,6641,11.197,6642,7.52,6643,7.495,6644,7.495,6645,7.495,6646,4.195,6647,9.376,6648,4.631,6649,5.01,6650,7.495,6651,9.966,6652,5.01,6653,7.495,6654,12.425,6655,11.197,6656,7.495,6657,5.01,6658,5.01,6659,8.619,6660,6.555,6661,4.631,6662,5.01,6663,5.01,6664,5.01,6665,5.01,6666,5.01,6667,4.631,6668,5.01,6669,5.01,6670,5.01,6671,5.01,6672,5.01,6673,7.495,6674,5.01,6675,7.495,6676,5.01,6677,4.195,6678,5.01,6679,5.01,6680,5.01,6681,5.01,6682,5.01,6683,5.01,6684,4.631,6685,5.01,6686,5.01,6687,5.01,6688,7.495,6689,5.01,6690,5.01,6691,5.01,6692,5.01,6693,5.01,6694,5.01]],["title/injectables/CourseCopyUC.html",[105,0.91,6695,5.694]],["body/injectables/CourseCopyUC.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.216,26,2.775,27,0.465,29,0.789,30,0.001,31,0.564,32,0.137,33,0.487,35,1.219,36,2.159,39,2.712,95,0.168,99,1.271,101,0.013,102,3.82,103,0.001,104,0.001,105,1.347,107,1.835,111,2.504,112,2.487,127,1.261,148,2.343,187,1.101,199,3.806,216,1.862,217,1.469,221,2.331,227,0.789,234,1.236,305,2.169,347,1.54,766,3.185,843,3.359,1308,6.839,1353,3.675,1750,4.467,1801,4.563,1820,6.249,1928,9.403,1973,5.421,2130,3.326,2131,4.922,2132,4.745,2133,6.41,2633,5.992,2725,3.449,2992,4.912,3009,4.614,3010,4.258,3649,5.319,6072,5.659,6640,10.572,6642,8.434,6695,8.434,6696,11.101,6697,6.659,6698,10.057,6699,7.613,6700,7.613,6701,7.613,6702,9.309,6703,7.613,6704,6.659,6705,7.613,6706,7.613,6707,6.376,6708,7.038,6709,7.613,6710,6.659,6711,6.659,6712,4.912]],["title/injectables/CourseExportUc.html",[105,0.91,6619,5.694]],["body/injectables/CourseExportUc.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.124,8,1.28,26,2.827,27,0.437,29,0.83,30,0.001,31,0.594,32,0.144,33,0.513,35,0.997,36,2.273,39,3.448,95,0.168,99,1.374,101,0.014,103,0.001,104,0.001,105,1.418,107,1.985,111,2.125,112,2.583,127,1.328,187,1.191,199,4.006,216,1.96,217,1.072,221,1.906,227,0.854,843,3.634,1801,4.936,1884,6.336,1928,9.692,1973,5.865,2633,5.085,2725,3.731,4991,10.366,4993,6.578,4997,9.271,5007,6.69,5008,8.495,5012,9.799,5030,4.737,6072,6.122,6619,8.877,6696,10.836,6707,6.897,6713,8.235,6714,8.235,6715,8.235,6716,10.6,6717,8.235,6718,8.235,6719,8.235,6720,8.235,6721,8.235,6722,8.235]],["title/classes/CourseFactory.html",[0,0.232,6723,5.694]],["body/classes/CourseFactory.html",[0,0.151,2,0.494,3,0.01,4,0.01,5,0.005,7,0.067,8,0.824,27,0.538,29,1.015,30,0.001,31,0.705,32,0.179,33,0.601,34,1.416,35,1.426,47,0.486,55,2.711,59,3.147,95,0.13,99,0.739,101,0.007,103,0,104,0,127,0.554,138,2.98,144,3.158,148,1.362,165,0.534,185,4.945,188,3.074,192,1.319,216,1.261,217,1.566,227,1.048,234,1.108,319,3.432,359,2.378,366,2.476,379,2.289,380,2.147,381,2.269,404,1.229,538,3.074,596,3.839,627,2.093,660,7.122,661,4.485,662,5.279,665,3.85,666,5.279,667,5.585,668,3.85,669,3.85,670,3.85,671,3.782,672,4.265,673,4.698,674,6.475,675,5.6,676,6.945,677,2.522,682,2.498,683,3.85,684,2.522,685,4.936,686,5.097,687,3.987,688,4.793,689,3.815,690,2.498,691,2.354,692,3.987,693,2.433,694,2.392,695,2.498,696,4.863,697,2.522,698,4.614,699,2.498,700,7.252,701,4.06,702,6.481,703,2.522,704,4.122,705,2.498,706,2.522,707,2.498,708,2.522,709,2.498,710,2.818,711,2.624,712,2.498,713,5.917,714,2.522,715,2.498,716,3.85,717,3.601,718,3.85,719,2.522,720,2.412,721,2.392,722,1.974,723,2.498,724,2.498,725,2.498,726,2.522,727,2.522,728,1.693,729,2.498,730,2.522,731,2.695,732,2.498,733,2.522,735,2.571,736,2.624,737,5.606,848,3.152,849,3.372,1763,3.218,3777,6.122,4324,4.233,6469,2.941,6476,4.286,6478,6.799,6524,3.575,6723,6.971,6724,4.426,6725,9.353,6726,6.306,6727,6.822,6728,4.426,6729,4.426,6730,6.306,6731,4.426,6732,4.092,6733,6.822,6734,4.426,6735,4.426,6736,3.466,6737,3.575,6738,8.324,6739,3.466,6740,5.071,6741,5.342,6742,4.092,6743,4.426,6744,4.426,6745,4.426,6746,3.466]],["title/entities/CourseGroup.html",[380,1.445,6518,3.99]],["body/entities/CourseGroup.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.187,26,2.418,27,0.47,30,0.001,31,0.639,32,0.172,39,1.807,47,0.813,62,3.939,95,0.168,96,1.836,101,0.015,103,0.001,104,0.001,116,2.881,144,1.846,145,2.342,148,2.066,165,0.829,188,4.897,192,3.399,204,2.277,208,2.508,214,2.116,217,0.874,227,0.696,234,1.502,240,3.357,309,3.861,319,2.006,334,0.994,364,2.077,380,1.965,381,2.233,398,1.978,399,3.67,400,2.962,402,2.782,404,1.21,405,1.789,406,2.183,461,2.116,844,5.195,957,3.721,1107,4.69,1166,3.22,1843,3.182,2095,2.663,2440,3.824,2471,4.393,2632,5.695,2633,4.437,2636,5.041,2640,3.658,2646,3.939,2648,4.69,2650,4.165,2663,4.393,2794,3.98,2849,2.903,3050,5.114,3427,4.607,4205,2.262,4281,2.932,4989,4.236,6152,5.256,6471,4.78,6476,7.166,6511,5.606,6518,5.427,6520,6.054,6521,4.116,6522,5.812,6523,3.754,6539,6.587,6543,4.165,6545,5.422,6560,4.273,6561,7.031,6598,5.422,6747,6.205,6748,5.871,6749,6.712,6750,6.712,6751,4.53,6752,6.205,6753,6.712,6754,6.712,6755,6.712,6756,7.746,6757,4.165,6758,4.459,6759,6.205,6760,6.205,6761,4.879,6762,6.205,6763,6.205,6764,6.205,6765,6.205,6766,6.205,6767,6.205]],["title/classes/CourseGroupFactory.html",[0,0.232,6768,6.286]],["body/classes/CourseGroupFactory.html",[0,0.168,2,0.55,3,0.012,4,0.012,5,0.006,7,0.074,8,0.894,27,0.536,29,1.027,30,0.001,31,0.713,32,0.181,33,0.608,34,1.513,35,1.471,47,0.528,55,2.666,59,3.301,95,0.136,99,0.823,101,0.008,103,0,104,0,127,0.618,138,3.235,144,3.266,148,1.517,165,0.58,185,4.884,188,1.821,216,1.369,217,1.157,227,0.768,319,3.55,359,2.582,366,2.757,379,2.015,380,2.252,381,2.463,404,1.334,538,3.337,596,3.927,627,2.272,660,7.258,661,4.677,662,5.58,665,4.179,666,5.58,667,5.759,668,4.179,669,4.179,670,4.179,671,4.105,672,4.557,673,5.019,674,6.527,675,5.874,676,7.085,677,2.808,682,2.782,683,4.179,684,2.808,685,5.218,686,5.388,687,4.214,688,5.066,689,4.142,690,2.782,691,2.622,692,4.158,693,2.709,694,2.665,695,2.782,696,5.14,697,2.808,698,4.93,699,2.782,700,7.185,701,4.199,702,6.703,703,2.808,704,4.404,705,2.782,706,2.808,707,2.782,708,2.808,709,2.782,710,3.138,711,2.923,712,2.782,713,6.17,714,2.808,715,2.782,716,4.179,717,3.908,718,4.179,719,2.808,720,2.687,721,2.665,722,2.198,723,2.782,724,2.782,725,2.782,726,2.808,727,2.808,728,1.885,729,2.782,730,2.808,731,2.926,732,2.782,733,2.808,735,2.864,736,2.923,737,2.955,848,3.511,849,3.756,6476,4.653,6518,4.345,6723,4.129,6726,6.845,6730,6.845,6732,4.557,6742,4.557,6756,4.129,6768,8.221,6769,4.93,6770,4.93,6771,4.557,6772,4.93,6773,4.557]],["title/injectables/CourseGroupRepo.html",[105,0.91,1929,5.324]],["body/injectables/CourseGroupRepo.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,10,3.772,12,4.28,13,6.794,18,4.722,26,2.697,27,0.525,29,0.973,30,0.001,31,0.696,32,0.169,33,0.601,34,1.159,35,1.504,36,2.778,39,1.835,40,4.511,42,6.794,47,0.761,49,2.681,95,0.147,96,1.864,97,2.947,98,4.041,99,1.137,101,0.011,103,0.001,104,0.001,105,1.25,107,1.643,112,3.004,187,0.985,188,3.452,217,1.388,221,2.657,227,1.19,234,1.106,380,1.448,381,3.109,404,1.684,596,3.501,692,5.016,877,7.465,883,3.965,884,4.404,885,5.39,908,4.178,909,4.229,910,4.178,911,4.229,913,4.178,914,4.229,915,3.778,921,5.066,1929,7.319,3675,4.677,5880,6.667,6471,8.174,6476,4.282,6518,6.735,6774,6.815,6775,8.64,6776,8.64,6777,6.815,6778,7.121,6779,6.815,6780,6.815,6781,6.815,6782,5.192,6783,6.815,6784,9.346]],["title/injectables/CourseGroupRule.html",[105,0.91,1888,5.493]],["body/injectables/CourseGroupRule.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,8,1.206,27,0.462,29,0.878,30,0.001,31,0.628,32,0.162,33,0.542,35,1.208,95,0.16,101,0.013,103,0.001,104,0.001,105,1.335,107,1.811,111,1.506,116,3.982,127,0.941,187,1.087,199,4.515,214,2.369,215,2.398,216,1.846,217,1.555,227,1.035,347,2.416,380,2.815,461,3.068,806,3.059,1795,6.457,1798,5.634,1799,6.795,1813,5.351,1823,7.933,1826,8.732,1844,4.503,1861,7.24,1888,8.064,1889,9.698,2002,6.441,2006,6.195,2013,4.992,3385,6.632,3386,5.071,3389,6.534,3392,5.071,3393,6.738,6476,4.721,6518,7.774,6785,11.946,6786,7.514,6787,7.514,6788,7.514,6789,7.514,6790,6.572,6791,6.572,6792,6.292,6793,6.572]],["title/injectables/CourseGroupService.html",[105,0.91,6794,6.286]],["body/injectables/CourseGroupService.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.126,8,1.291,26,2.835,27,0.486,29,0.924,30,0.001,31,0.66,32,0.16,33,0.57,35,1.293,36,2.666,39,2.877,95,0.151,98,4.944,99,1.391,101,0.014,103,0.001,104,0.001,105,1.429,107,2.01,112,2.899,116,4.097,127,1.044,187,1.206,215,2.661,216,1.542,217,1.391,221,2.729,227,1.108,450,3.425,1929,9.737,2531,5.775,5880,7.223,6471,8.396,6518,4.892,6794,9.877,6795,8.338,6796,10.685,6797,10.685,6798,7.293,6799,8.338,6800,10.685,6801,8.338,6802,10.685,6803,8.338,6804,10.685,6805,8.338,6806,8.338,6807,8.338]],["title/classes/CourseMapper.html",[0,0.232,6623,5.947]],["body/classes/CourseMapper.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,8,1.398,27,0.391,29,0.742,30,0.001,31,0.531,32,0.129,33,0.458,35,1.147,95,0.149,99,1.581,100,3.876,101,0.016,103,0.001,104,0.001,188,4.931,217,1.506,227,0.983,234,1.538,627,3.835,982,4.723,6623,10.124,6808,9.475,6809,11.575,6810,11.575,6811,9.475,6812,10.901,6813,9.475,6814,9.475,6815,9.475,6816,9.475,6817,9.475,6818,9.475,6819,9.475,6820,9.475,6821,9.475]],["title/classes/CourseMetadataListResponse.html",[0,0.232,6622,5.694]],["body/classes/CourseMetadataListResponse.html",[0,0.307,2,0.721,3,0.015,4,0.015,5,0.008,7,0.098,26,1.911,27,0.487,29,0.506,30,0.001,31,0.362,32,0.177,33,0.571,34,1.909,47,0.894,55,2.948,56,5.863,59,2.807,70,6.052,83,3.913,95,0.133,99,1.079,101,0.015,103,0.001,104,0.001,127,1.129,145,1.637,163,3.632,165,0.706,188,3.832,240,2.051,364,2.044,375,4.275,376,1.479,379,2.842,404,1.624,467,3.207,469,2.838,475,3.16,596,3.423,618,2.644,728,2.472,1007,7.689,1008,6.606,1009,5.134,1011,3.266,1013,4.751,1014,3.083,1015,3.616,1016,2.27,1017,4.517,1018,5.815,1019,5.234,1020,4.231,1021,5.518,1022,4.517,1023,4.517,1025,4.062,1026,3.584,1397,3.951,1588,4.517,2241,4.363,2553,4.784,2747,3.336,2884,3.439,2885,3.439,3753,6.437,6469,4.295,6470,7.002,6475,7.388,6478,7.541,6551,5.222,6553,4.925,6555,4.806,6596,7.12,6622,7.547,6812,10.503,6822,8.331,6823,5.976,6824,6.465,6825,6.465,6826,5.222,6827,5.062,6828,7.702,6829,5.062,6830,5.976,6831,5.062,6832,5.062,6833,4.062,6834,4.699,6835,5.222]],["title/classes/CourseMetadataResponse.html",[0,0.232,6812,5.694]],["body/classes/CourseMetadataResponse.html",[0,0.288,2,0.66,3,0.014,4,0.014,5,0.007,7,0.089,26,2.287,27,0.516,29,0.463,30,0.001,31,0.331,32,0.173,33,0.591,34,2.127,47,0.974,55,2.129,56,4.06,59,3.078,70,4.191,83,4.214,95,0.127,99,0.987,101,0.014,103,0,104,0,127,1.06,163,2.604,165,0.663,188,4.386,240,2.685,364,2.227,375,4.109,376,1.353,379,2.77,404,1.066,467,3.115,469,2.597,475,4.137,618,2.419,728,3.236,1007,5.189,1008,3.196,1009,3.369,1013,4.94,1021,5.737,1025,3.716,1026,3.279,1397,4.376,1403,5.478,1588,5.913,2241,5.712,2341,4.631,2553,5.33,2747,3.052,2884,4.501,2885,4.501,3753,7.586,6469,5.622,6470,8.251,6475,8.706,6478,8.887,6551,4.777,6553,4.506,6555,4.397,6596,8.391,6622,4.953,6812,9.559,6822,11.767,6823,5.467,6826,4.777,6827,4.631,6828,8.581,6829,6.627,6830,7.823,6831,6.627,6832,6.627,6833,5.317,6834,6.152,6835,6.836,6836,5.914,6837,5.914,6838,5.914,6839,5.914,6840,5.914,6841,5.914,6842,5.914,6843,5.914]],["title/entities/CourseNews.html",[380,1.445,6844,5.055]],["body/entities/CourseNews.html",[0,0.344,3,0.012,4,0.022,5,0.006,7,0.171,9,3.609,26,2.143,27,0.213,30,0.001,31,0.429,32,0.137,34,0.877,47,0.877,83,2.343,95,0.155,96,2.499,101,0.018,103,0,104,0,165,0.846,188,3.374,192,3.219,208,1.927,227,0.535,234,1.483,240,3.717,334,0.554,364,0.939,369,2.6,370,3.86,380,2.295,381,1.715,398,1.519,399,3.038,400,2.276,404,1.822,405,2.694,406,1.677,461,2.471,571,5.74,574,4.011,595,1.727,617,5.064,627,1.582,672,4.681,731,3.609,769,4.541,843,2.276,844,5.155,854,3.843,1031,2.4,1187,4.356,1188,4.764,1189,4.305,1190,4.554,1191,4.978,1397,3.059,1415,4.696,1843,3.63,1849,2.588,1865,3.488,1941,3.283,1959,2.81,2303,3.703,2577,5.156,2632,4.207,2646,3.026,2702,5.792,2747,2.662,3427,3.539,3429,3.283,3430,3.603,3432,3.673,3433,3.603,3434,3.834,3448,3.162,3584,3.481,3609,3.283,4205,1.738,4297,3.929,4298,3.749,4989,4.184,5057,3.834,5072,3.749,5618,6.641,6216,2.859,6434,3.603,6521,3.162,6523,2.884,6544,3.091,6757,4.752,6844,5.693,6845,4.166,6846,5.157,6847,4.642,6848,4.166,6849,6.791,6850,5.894,6851,4.166,6852,8.862,6853,5.088,6854,4.937,6855,5.693,6856,5.693,6857,6.711,6858,7.526,6859,4.166,6860,5.454,6861,4.166,6862,3.929,6863,3.929,6864,4.942,6865,4.166,6866,3.929,6867,3.929,6868,4.166,6869,3.834,6870,4.166,6871,3.058,6872,3.162,6873,3.929,6874,4.166,6875,4.166,6876,7.153,6877,4.166,6878,7.379,6879,4.166,6880,4.166,6881,5.835,6882,3.929,6883,6.382,6884,4.038,6885,5.012,6886,3.929,6887,3.749,6888,3.929,6889,4.166]],["title/classes/CourseQueryParams.html",[0,0.232,6608,5.947]],["body/classes/CourseQueryParams.html",[0,0.394,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.391,30,0.001,32,0.129,95,0.16,101,0.021,103,0.001,104,0.001,165,0.907,364,1.726,368,4.535,369,2.569,370,3.813,371,3.192,374,3.024,376,2.167,379,2.147,467,3.037,470,4.842,472,6.395,1031,3.627,1500,8.604,4993,5.879,5007,7.215,5008,9.162,5030,5.45,6608,10.124,6890,9.475,6891,9.475,6892,9.475,6893,9.475]],["title/injectables/CourseRepo.html",[105,0.91,1930,4.121]],["body/injectables/CourseRepo.html",[0,0.225,3,0.01,4,0.01,5,0.005,7,0.064,8,0.798,10,2.667,12,3.027,18,3.339,26,2.844,27,0.491,29,0.912,30,0.001,31,0.652,32,0.17,33,0.563,34,1.124,35,1.409,36,2.705,39,3.491,40,3.19,56,3.171,58,4.265,59,3.088,83,1.3,95,0.127,96,1.162,98,2.519,99,0.709,101,0.007,103,0,104,0,105,0.884,107,1.024,112,2.943,138,3.997,144,1.169,187,0.614,188,4.394,217,1.729,221,2.43,227,1.276,234,1.61,277,4.422,319,1.27,347,1.337,369,1.467,371,1.172,380,0.903,381,2.199,398,1.252,404,1.462,596,2.791,692,4.527,701,4.006,877,6.429,883,2.804,884,3.114,885,4.098,908,2.605,909,2.637,910,2.605,911,2.637,913,2.605,914,2.637,915,2.355,964,4.536,1930,4.006,1944,4.536,2144,5.165,2394,3.919,2633,3.171,2801,3.026,3675,2.916,3680,3.716,3778,5.989,4324,5.679,4455,6.552,4460,3.558,4659,6.08,4748,5.819,5880,6.097,5882,6.394,6018,6.691,6471,3.026,6476,4.153,6477,5.667,6478,4.804,6612,3.961,6782,3.237,6894,3.928,6895,6.609,6896,7.095,6897,6.609,6898,6.11,6899,6.11,6900,4.249,6901,7.475,6902,6.641,6903,4.249,6904,4.249,6905,4.249,6906,6.11,6907,4.249,6908,4.249,6909,6.11,6910,4.249,6911,4.249,6912,6.03,6913,10.405,6914,3.928,6915,6.11,6916,7.664,6917,3.928,6918,3.928,6919,3.928,6920,6.11,6921,6.11,6922,3.432,6923,3.928,6924,3.928,6925,3.928,6926,5.781,6927,6.11,6928,6.11,6929,6.11,6930,8.004,6931,4.804,6932,4.804,6933,7.498,6934,3.928,6935,3.716,6936,3.928,6937,3.928,6938,3.928]],["title/injectables/CourseRule.html",[105,0.91,1889,5.055]],["body/injectables/CourseRule.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.117,8,1.233,27,0.47,29,0.893,30,0.001,31,0.639,32,0.165,33,0.551,35,1.236,95,0.155,101,0.013,103,0.001,104,0.001,105,1.366,107,1.874,116,4.02,127,0.974,187,1.124,188,4.93,199,4.576,214,2.451,215,2.481,216,1.438,217,1.484,227,1.059,347,2.449,380,2.836,461,3.117,806,3.165,1795,6.544,1798,6.435,1799,6.189,1814,5.336,1823,8.009,1844,4.66,1861,7.338,1889,7.59,2002,6.588,2006,6.336,2013,5.165,3385,6.784,3386,5.247,3389,6.683,3392,5.247,3393,6.892,4324,6.336,6476,4.885,6477,7.134,6939,7.775,6940,7.775,6941,7.775,6942,7.775,6943,7.775]],["title/classes/CourseScope.html",[0,0.232,6913,5.947]],["body/classes/CourseScope.html",[0,0.238,2,0.509,3,0.011,4,0.011,5,0.006,7,0.069,8,0.844,26,2.818,27,0.5,29,0.846,30,0.001,31,0.605,32,0.162,33,0.523,34,0.777,35,1.361,36,2.317,39,3.48,40,2.204,56,3.352,58,4.509,83,1.397,95,0.132,96,1.249,98,2.708,99,0.762,101,0.008,103,0,104,0,105,0.935,111,2.167,112,2.382,144,1.256,148,1.405,165,0.547,187,0.66,188,4.154,217,1.747,221,2.501,227,1.298,234,1.664,277,5.169,319,1.365,347,2.073,369,1.013,371,1.259,398,1.345,404,1.529,529,1.985,596,3.126,701,3.362,877,4.1,885,2.307,964,4.796,1930,2.768,1944,4.796,2144,5.366,2394,6.075,2633,3.352,2801,3.252,3675,3.134,3680,3.994,3778,6.223,4324,5.9,4455,3.689,4659,4.642,4748,5.991,5880,6.277,5882,6.643,5991,4.716,5992,4.716,5993,4.716,5998,4.716,5999,4.716,6000,3.134,6001,3.082,6002,3.134,6003,3.134,6012,3.082,6013,4.716,6014,3.134,6015,3.082,6016,3.134,6017,3.082,6018,6.916,6471,3.252,6476,4.39,6477,5.93,6478,5.079,6612,4.188,6782,3.479,6894,4.222,6896,3.994,6899,4.222,6901,4.976,6902,5.144,6906,4.222,6909,4.222,6912,6.309,6913,11.399,6914,6.46,6915,6.46,6916,7.962,6917,6.46,6918,6.46,6919,8.789,6920,6.46,6921,6.46,6922,3.689,6923,6.46,6924,4.222,6925,4.222,6926,6.112,6927,6.46,6928,6.46,6929,6.46,6930,8.316,6931,5.079,6932,5.079,6933,7.846,6934,4.222,6935,3.994,6936,4.222,6937,4.222,6938,4.222,6944,6.988,6945,6.988,6946,6.988,6947,6.988,6948,4.567,6949,4.567,6950,4.567,6951,4.567,6952,4.567]],["title/injectables/CourseService.html",[105,0.91,130,4.589]],["body/injectables/CourseService.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.198,12,4.544,26,2.928,27,0.511,29,0.971,30,0.001,31,0.694,32,0.169,33,0.599,35,1.441,36,2.835,39,3.005,95,0.143,98,4.414,99,1.242,101,0.012,103,0.001,104,0.001,105,1.327,107,1.794,112,3.026,116,3.971,127,0.932,130,6.696,187,1.077,188,3.665,215,2.376,216,1.377,217,1.452,221,2.755,227,1.234,450,3.058,1930,7.214,2531,5.362,2633,3.571,4455,8.014,4460,8.309,4748,6.872,5880,6.913,6798,6.511,6953,7.444,6954,9.922,6955,9.922,6956,7.444,6957,9.922,6958,7.444,6959,7.444,6960,9.922,6961,7.444,6962,9.922,6963,7.444,6964,7.444,6965,11.16,6966,7.444,6967,7.444,6968,7.444]],["title/injectables/CourseUc.html",[105,0.91,6617,5.694]],["body/injectables/CourseUc.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.134,8,1.344,26,2.699,27,0.459,29,0.872,30,0.001,31,0.623,32,0.151,33,0.538,35,1.076,36,2.386,39,2.394,59,2.769,95,0.163,98,5.271,99,1.484,101,0.015,103,0.001,104,0.001,105,1.488,107,2.143,127,1.113,187,1.286,188,3.283,215,2.837,216,1.644,227,0.922,450,3.652,469,3.903,592,4.027,701,4.501,1028,8.893,1930,8.104,2144,5.017,4431,5.585,6612,5.328,6617,9.319,6646,7.445,6667,8.218,6969,8.89,6970,11.127,6971,8.89,6972,11.127,6973,8.89,6974,6.961]],["title/classes/CourseUrlParams.html",[0,0.232,6607,5.947]],["body/classes/CourseUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,188,4.363,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2633,6.084,3795,5.749,6607,10.332,6975,9.798,6976,9.798]],["title/classes/CreateCardBodyParams.html",[0,0.232,4916,5.947]],["body/classes/CreateCardBodyParams.html",[0,0.394,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.39,30,0.001,32,0.128,33,0.559,95,0.16,99,1.578,101,0.016,103,0.001,104,0.001,165,0.905,364,1.722,368,3.704,369,2.771,371,3.187,374,3.017,375,4.403,376,2.162,471,4.685,1031,3.622,1044,4.535,2450,6.584,4095,10.92,4096,7.152,4916,10.109,5477,7.357,6977,11.558,6978,8.738,6979,7.679,6980,9.453,6981,9.453]],["title/classes/CreateContentElementBodyParams.html",[0,0.232,3975,5.947]],["body/classes/CreateContentElementBodyParams.html",[0,0.365,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,27,0.442,30,0.001,32,0.186,33,0.519,55,2.685,95,0.152,99,1.4,101,0.014,103,0.001,104,0.001,165,0.84,319,3.206,364,1.954,368,4.883,369,2.381,370,4.106,371,3.633,374,2.678,375,4.086,376,1.919,379,2.431,467,2.814,471,4.348,1031,3.361,1044,4.025,1184,5.947,2303,4.793,2553,5.313,2767,6.578,2889,5.312,3470,5.974,3475,6.099,3975,9.383,4045,9.26,4096,7.18,5478,8.665,6979,5.574,6982,11.826,6983,7.026,6984,8.39,6985,9.917,6986,9.383,6987,8.39,6988,8.39,6989,8.39]],["title/interfaces/CreateJwtParams.html",[334,0.731,6990,5.947]],["body/interfaces/CreateJwtParams.html",[0,0.249,3,0.017,4,0.017,5,0.009,7,0.11,30,0.001,32,0.179,33,0.662,47,1.013,85,8.184,95,0.126,101,0.012,103,0.001,104,0.001,116,3.053,165,0.768,217,1.538,227,1.016,334,0.785,336,1.749,565,4.885,627,3.007,1568,5.724,1570,5.433,1593,6.121,1605,4.334,1609,5.569,1613,4.536,1738,7.124,1749,7.286,4508,7.467,6161,8.774,6990,9.671,6991,6.757,6992,9.648,6993,10.319,6994,9.648,6995,11.725,6996,10.622,6997,9.06,6998,6.757,6999,6.757,7000,6.757,7001,6.757,7002,8.572,7003,6.757,7004,9.06,7005,9.06,7006,6.757,7007,6.393,7008,6.393,7009,6.757,7010,9.06,7011,6.757,7012,6.757,7013,6.757,7014,6.757,7015,6.757,7016,5.724,7017,5.724,7018,6.393,7019,6.757,7020,6.757,7021,6.757,7022,6.757]],["title/interfaces/CreateJwtPayload.html",[334,0.731,1719,5.324]],["body/interfaces/CreateJwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.181,33,0.598,39,3.444,47,1.017,48,5.823,55,2.277,85,7.974,101,0.018,103,0.001,104,0.001,165,0.828,334,1.136,336,1.963,347,2.649,355,3.296,404,1.478,461,1.876,575,4.916,722,3.657,956,5.368,1609,6.249,1613,5.09,1719,9.162,1739,5.962,1749,6.097,1852,4.464,1946,5.449,2449,8.778,3110,6.16,4205,4.165,5058,5.449,6161,5.841,6992,6.423,6994,6.423,7016,6.423,7017,6.423,7023,7.582,7024,7.582,7025,9.983,7026,6.869,7027,5.09,7028,7.582,7029,7.174,7030,7.174]],["title/classes/CreateNewsParams.html",[0,0.232,7031,5.493]],["body/classes/CreateNewsParams.html",[0,0.328,2,0.793,3,0.017,4,0.017,5,0.009,7,0.107,27,0.503,30,0.001,32,0.166,33,0.465,34,1.637,47,0.933,83,2.945,95,0.15,99,1.187,100,3.223,101,0.012,103,0.001,104,0.001,165,0.754,364,2.224,374,2.271,375,3.666,376,1.628,379,2.966,380,2.849,467,3.203,469,3.124,470,4.563,471,3.902,475,3.478,999,6.127,1000,3.919,1031,2.23,1035,6.725,1044,3.414,1184,5.336,1397,4.088,1770,5.591,1944,6.606,2303,4.949,2702,5.266,2736,6.3,2884,5.12,2885,5.12,3259,3.672,6153,6.606,6850,7.038,6853,7.247,6857,6.467,6858,7.859,7031,7.775,7032,12.584,7033,6.224,7034,7.537,7035,7.621,7036,7.115,7037,6.578,7038,5.959,7039,6.127,7040,8.061,7041,7.333,7042,6.578,7043,6.578,7044,7.439,7045,7.115,7046,7.115,7047,6.997,7048,7.115,7049,5.748,7050,7.115,7051,7.333,7052,6.578,7053,6.578]],["title/classes/CreateSubmissionItemBodyParams.html",[0,0.232,7054,5.947]],["body/classes/CreateSubmissionItemBodyParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.131,95,0.15,101,0.016,103,0.001,104,0.001,165,0.914,347,2.646,364,1.75,368,4.575,369,2.591,373,6.259,374,3.068,376,2.198,379,2.178,467,3.063,2849,5.657,3264,8.123,7054,10.212,7055,9.143,7056,11.675,7057,8.884,7058,8.406,7059,10.212,7060,9.431,7061,8.884]],["title/classes/CurrentUserMapper.html",[0,0.232,7062,5.055]],["body/classes/CurrentUserMapper.html",[0,0.223,2,0.729,3,0.015,4,0.015,5,0.008,7,0.099,8,1.097,27,0.465,29,0.883,30,0.001,31,0.632,32,0.153,33,0.545,34,1.112,35,1.365,39,3.037,47,0.977,48,6.215,59,3.251,85,8.117,95,0.158,99,1.091,101,0.011,103,0.001,104,0.001,227,1.169,231,3.624,234,1.062,305,1.863,334,0.702,369,1.451,371,1.803,461,3.017,491,6.31,496,3.835,503,4.009,513,3.303,558,3.137,627,4.125,738,5.426,1719,8.173,1739,8.614,1742,5.475,2449,4.487,3110,5.621,3391,4.279,3743,3.836,4205,3.801,4756,5.281,5987,4.656,7025,9.11,7062,6.752,7063,11.85,7064,5.719,7065,9.083,7066,9.083,7067,10.437,7068,9.083,7069,9.083,7070,6.538,7071,9.083,7072,6.538,7073,6.538,7074,5.907,7075,9.11,7076,6.538,7077,7.758,7078,9.083,7079,6.538,7080,6.13,7081,5.281,7082,6.538,7083,5.281,7084,6.538,7085,6.538,7086,5.719,7087,6.538,7088,4.981,7089,6.538,7090,6.044,7091,6.538,7092,6.538,7093,6.538,7094,6.538,7095,6.538,7096,6.538,7097,6.538,7098,5.719,7099,6.538,7100,6.538]],["title/interfaces/CustomLtiProperty.html",[334,0.731,7101,5.947]],["body/interfaces/CustomLtiProperty.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.084,26,1.711,30,0.001,31,0.533,32,0.129,47,0.965,49,3.176,95,0.134,96,2.208,97,2.396,101,0.019,103,0,104,0,116,2.514,144,2.878,145,2.044,150,1.918,165,0.632,216,1.024,227,0.574,234,0.9,236,3.251,240,4.367,319,3.325,334,0.595,336,1.326,347,2.25,369,2.967,370,4.518,371,3.687,380,1.715,394,4.599,398,1.632,399,3.203,400,2.445,402,2.296,404,0.998,405,1.476,406,1.802,540,5.868,701,1.959,853,2.859,1019,4.689,1031,3.486,1498,3.358,1602,6.654,1618,3.218,1858,2.902,2035,6.012,2095,2.198,2362,3.186,2545,2.947,2632,2.551,3110,2.762,4281,2.42,6196,2.994,6527,4.475,6540,4.475,7101,8.33,7102,5.121,7103,6.761,7104,7.693,7105,7.463,7106,7.463,7107,5.121,7108,5.121,7109,7.463,7110,5.121,7111,5.121,7112,6.233,7113,7.463,7114,7.463,7115,5.121,7116,4.118,7117,4.338,7118,3.575,7119,4.338,7120,3.575,7121,6.761,7122,3.575,7123,4.338,7124,4.338,7125,4.118,7126,5.121,7127,5.121,7128,4.475,7129,4.338,7130,5.121,7131,3.945,7132,4.338,7133,3.527,7134,4.118,7135,3.321,7136,3.481,7137,4.027,7138,4.475,7139,4.338,7140,4.64,7141,4.64,7142,5.121,7143,4.221,7144,4.475,7145,4.64,7146,5.121,7147,4.221,7148,4.475,7149,4.338,7150,4.475,7151,4.221,7152,4.475,7153,4.64,7154,5.121,7155,4.64,7156,5.121,7157,4.64,7158,5.121,7159,5.121,7160,5.121,7161,5.121,7162,4.64,7163,5.121,7164,4.64,7165,5.121,7166,4.221,7167,4.475,7168,3.871,7169,4.118,7170,4.64,7171,5.121,7172,4.118,7173,4.475]],["title/classes/CustomLtiPropertyDO.html",[0,0.232,7174,5.694]],["body/classes/CustomLtiPropertyDO.html",[0,0.336,2,0.823,3,0.017,4,0.017,5,0.009,7,0.111,26,2.091,27,0.458,29,0.578,30,0.001,31,0.552,32,0.151,33,0.357,47,1.011,95,0.143,101,0.016,103,0.001,104,0.001,127,0.924,144,3.571,150,2.554,165,0.772,236,4.328,347,2.5,404,1.329,1618,4.284,1872,5.728,2035,6.873,2095,2.926,2545,3.923,3110,3.677,4385,6.451,6196,3.987,7104,7.965,7112,6.454,7117,5.776,7118,4.759,7119,5.776,7120,4.759,7122,4.759,7123,5.776,7124,5.776,7125,5.483,7129,5.776,7131,5.253,7132,5.776,7133,4.695,7134,5.483,7135,4.421,7137,7.168,7139,5.776,7141,6.177,7143,5.62,7145,6.177,7147,5.62,7149,5.776,7151,5.62,7153,6.177,7155,6.177,7157,6.177,7162,6.177,7164,6.177,7166,5.62,7168,5.153,7170,6.177,7172,5.483,7174,9.303,7175,6.819,7176,9.116,7177,9.861,7178,7.376,7179,6.451,7180,5.62,7181,5.776,7182,6.889,7183,5.776,7184,5.776,7185,6.819,7186,6.819,7187,6.819,7188,6.819,7189,6.819,7190,6.819,7191,6.819,7192,6.451,7193,6.819,7194,6.819,7195,6.819,7196,6.819,7197,6.819,7198,6.819,7199,6.819,7200,6.819,7201,6.819,7202,6.819,7203,6.819,7204,6.819]],["title/classes/CustomParameter.html",[0,0.232,136,4.328]],["body/classes/CustomParameter.html",[0,0.256,2,0.839,3,0.018,4,0.018,5,0.009,7,0.114,27,0.563,29,0.59,30,0.001,31,0.67,32,0.189,33,0.649,47,0.981,95,0.097,101,0.013,103,0.001,104,0.001,127,0.943,136,7.92,146,7.702,165,0.783,195,7.574,196,7.991,277,4.529,319,3.354,331,7.143,347,2.022,379,2.543,405,2.663,471,4.549,595,2.52,1031,2.359,2095,2.987,2578,3.356,4281,3.288,4333,4.512,5429,7.345,5698,5.709,5717,4.792,5718,5.166,6541,5.081,6542,4.927,7205,12.713,7206,7.528,7207,8.342,7208,9.995,7209,7.528,7210,7.528,7211,7.528,7212,7.528,7213,7.528,7214,7.528,7215,7.528,7216,7.528,7217,7.528,7218,6.959,7219,6.959,7220,6.304,7221,6.304,7222,5.081,7223,6.081,7224,6.584,7225,6.584,7226,6.584,7227,6.584,7228,6.584,7229,6.584]],["title/classes/CustomParameterEntity.html",[0,0.232,7230,5.493]],["body/classes/CustomParameterEntity.html",[0,0.22,2,0.72,3,0.015,4,0.015,5,0.008,7,0.097,27,0.548,29,0.506,30,0.001,31,0.628,32,0.185,33,0.628,47,0.956,95,0.116,96,1.766,101,0.011,103,0.001,104,0.001,127,0.808,146,7.114,165,0.705,195,6.996,196,7.381,198,3.135,240,4.217,277,4.183,319,3.098,331,6.598,347,1.821,364,2.396,369,2.838,370,3.694,379,2.349,386,6.389,398,1.902,405,2.399,471,4.202,595,2.161,1031,3.928,2095,2.561,2559,6.076,2574,4.646,2578,2.878,4281,2.819,4333,3.868,5429,6.784,5698,5.274,5717,4.108,5718,4.43,6541,4.356,6542,4.224,7207,7.705,7218,5.967,7219,5.967,7220,5.405,7221,5.405,7222,4.356,7223,5.214,7224,5.645,7225,5.645,7226,5.645,7227,5.645,7228,5.645,7229,5.645,7230,9.527,7231,13.413,7232,13.413,7233,6.454,7234,9.002,7235,6.454,7236,6.454,7237,6.454,7238,6.454,7239,6.454,7240,6.454,7241,6.454,7242,6.454,7243,6.454]],["title/classes/CustomParameterEntry.html",[0,0.232,181,4.387]],["body/classes/CustomParameterEntry.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,27,0.517,29,0.747,30,0.001,31,0.731,32,0.17,33,0.606,47,0.93,101,0.016,103,0.001,104,0.001,127,1.195,144,3.448,165,0.911,181,8.631,290,7.657,405,3.098,595,3.195,2095,3.786,4281,4.168,7181,7.472,7205,12.063,7244,9.542,7245,11.625,7246,9.542,7247,7.991]],["title/classes/CustomParameterEntryEntity.html",[0,0.232,5776,5.181]],["body/classes/CustomParameterEntryEntity.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,27,0.508,29,0.72,30,0.001,31,0.721,32,0.168,33,0.596,47,0.919,95,0.118,96,2.515,101,0.015,103,0.001,104,0.001,127,1.152,144,3.392,165,0.89,240,4.199,290,7.559,364,2.07,398,2.709,405,3.028,595,3.078,2095,3.648,2574,5.864,4281,4.016,5776,10.084,7181,7.199,7247,7.7,7248,12.882,7249,9.194,7250,11.363,7251,9.194]],["title/classes/CustomParameterEntryParam.html",[0,0.232,5827,5.181]],["body/classes/CustomParameterEntryParam.html",[0,0.392,2,1.049,3,0.022,4,0.022,5,0.011,7,0.142,27,0.475,30,0.001,31,0.698,32,0.157,33,0.557,47,0.926,95,0.148,101,0.016,103,0.001,104,0.001,144,3.427,165,0.903,200,3.881,290,7.311,364,2.099,374,3.003,375,4.39,376,2.152,467,3.024,470,5.212,471,4.672,2584,6.573,5825,6.839,5827,8.781,7252,7.731,7253,11.518,7254,9.409,7255,9.409,7256,9.409]],["title/classes/CustomParameterEntryResponse.html",[0,0.232,5937,5.324]],["body/classes/CustomParameterEntryResponse.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,27,0.505,29,0.709,30,0.001,31,0.717,32,0.166,33,0.592,47,0.913,95,0.116,101,0.015,103,0.001,104,0.001,127,1.134,144,3.368,165,0.881,200,3.99,290,7.517,364,2.049,375,4.286,376,2.07,405,2.998,467,3.361,595,3.03,2095,3.59,4281,3.953,5937,10.317,7181,7.086,7247,7.579,7252,7.949,7253,11.842,7257,9.049,7258,11.252,7259,9.049,7260,9.049]],["title/classes/CustomParameterFactory.html",[0,0.232,7261,5.694]],["body/classes/CustomParameterFactory.html",[0,0.259,2,0.429,3,0.009,4,0.009,5,0.005,7,0.058,8,0.738,27,0.509,29,0.988,30,0.001,31,0.691,32,0.178,33,0.57,34,1.04,35,1.399,47,0.436,55,2.358,59,3.135,95,0.121,101,0.016,103,0,104,0,127,0.482,136,4.842,138,2.67,144,3.011,146,2.64,148,1.184,150,1.332,154,3.484,158,1.881,165,0.479,185,5.055,195,2.597,196,2.74,200,1.198,201,1.957,209,1.271,216,1.13,217,1.586,227,1.223,236,2.257,238,4.254,277,3.815,278,2.931,279,4.444,281,2.86,290,2.257,319,3.272,326,2.86,331,2.449,359,2.131,366,2.152,371,2.389,379,1.724,380,1.616,381,2.033,404,1.561,461,0.88,471,1.559,538,2.754,596,3.717,627,1.876,660,6.697,661,4.23,662,4.89,665,3.45,666,4.89,667,5.19,668,3.45,669,3.45,670,3.45,671,3.389,672,3.897,673,4.293,674,6.352,675,5.24,676,6.672,677,2.192,682,2.171,683,3.45,684,2.192,685,4.573,686,4.722,687,3.693,688,4.44,689,3.419,690,2.171,691,2.046,692,3.76,693,2.114,694,2.079,695,2.171,696,4.504,697,2.192,698,4.216,699,2.171,700,7.463,701,3.871,702,6.179,703,2.192,704,3.027,705,2.171,706,2.192,707,2.171,708,2.192,709,2.171,712,2.171,713,5.579,714,2.192,715,2.171,716,3.45,717,3.226,718,3.45,719,2.192,720,2.097,721,2.079,722,1.715,723,2.171,724,2.171,725,2.171,726,2.192,727,2.192,728,1.471,729,2.171,730,2.192,731,2.415,732,2.171,733,2.192,735,2.235,736,2.281,737,5.193,905,1.602,1431,2.192,1618,3.551,2035,3.304,2558,2.797,2565,2.133,2568,2.688,4313,6.732,4315,2.797,5007,2.079,5530,3.047,5698,1.957,5736,2.171,5793,3.108,5798,3.013,5799,2.597,7112,2.518,7118,2.482,7120,2.482,7122,2.482,7133,2.449,7135,2.306,7261,6.37,7262,5.347,7263,6.113,7264,5.347,7265,3.847,7266,2.797,7267,4.544,7268,3.013,7269,2.797,7270,2.64,7271,2.387,7272,3.365,7273,3.365,7274,3.365,7275,6.653,7276,5.119,7277,3.365,7278,3.705,7279,3.108,7280,2.797,7281,2.931,7282,3.365,7283,2.86,7284,3.365,7285,3.365,7286,3.222,7287,3.365,7288,3.365,7289,2.597,7290,3.365,7291,3.365,7292,3.365,7293,2.64,7294,3.365,7295,3.365,7296,3.222,7297,3.365,7298,2.74,7299,4.657,7300,5.347,7301,6.653,7302,5.347,7303,5.347,7304,3.365,7305,3.222,7306,3.013,7307,5.119,7308,3.365,7309,3.365,7310,3.365,7311,3.365,7312,3.365,7313,5.347,7314,3.365,7315,3.222,7316,2.518,7317,3.222,7318,3.365,7319,3.365,7320,3.365,7321,3.365]],["title/classes/CustomParameterPostParams.html",[0,0.232,7322,5.493]],["body/classes/CustomParameterPostParams.html",[0,0.326,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,27,0.552,30,0.001,31,0.608,32,0.186,33,0.632,47,0.971,95,0.139,101,0.012,103,0.001,104,0.001,165,0.749,198,3.426,277,4.382,331,6.912,347,1.935,364,2.438,373,5.13,374,2.251,375,4.637,376,1.613,379,2.461,467,3.368,470,5.37,471,5.294,1001,6.508,1044,3.384,2559,6.12,5429,7.107,5698,5.525,5825,8.464,7207,8.072,7322,7.729,7323,13.509,7324,7.053,7325,8.273,7326,7.053,7327,7.053,7328,7.729,7329,7.053,7330,5.374,7331,7.053,7332,9.094,7333,7.053,7334,7.053,7335,7.053,7336,7.053,7337,7.053,7338,9.094,7339,7.053,7340,7.053,7341,9.094,7342,7.053,7343,7.053,7344,7.053,7345,7.053,7346,7.053]],["title/classes/CustomParameterResponse.html",[0,0.232,5743,5.324]],["body/classes/CustomParameterResponse.html",[0,0.227,2,0.742,3,0.016,4,0.016,5,0.008,7,0.101,27,0.551,29,0.521,30,0.001,31,0.637,32,0.186,33,0.632,47,0.962,95,0.118,101,0.011,103,0.001,104,0.001,127,0.834,165,0.72,198,3.233,277,4.253,331,6.707,347,1.86,364,2.411,375,4.981,376,1.523,379,2.388,405,2.451,467,3.473,471,4.271,595,2.229,1031,3.302,2095,2.641,2559,6.109,2578,2.968,2888,6.386,4281,2.908,4333,3.99,5429,6.896,5698,5.361,5717,4.237,5718,4.569,5743,9.34,6541,4.493,6542,4.357,7207,7.833,7220,5.575,7221,5.575,7222,4.493,7223,5.377,7224,5.823,7225,5.823,7226,5.823,7227,5.823,7228,5.823,7229,5.823,7325,8.028,7332,9.989,7338,9.989,7341,9.989,7347,13.484,7348,6.657,7349,9.197,7350,6.657,7351,6.657,7352,6.657,7353,6.657,7354,6.657,7355,6.657,7356,6.657,7357,6.657,7358,6.657,7359,6.657,7360,6.657]],["title/controllers/DashboardController.html",[481,2.611,7361,5.947]],["body/controllers/DashboardController.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.119,27,0.437,29,0.83,30,0.001,31,0.593,32,0.144,33,0.512,35,1.282,36,2.653,55,2.665,95,0.159,100,4.244,101,0.011,103,0.001,104,0.001,112,2.888,185,4.808,187,0.972,215,2.146,216,1.243,217,1.61,221,2.452,227,1.098,264,4.451,364,1.929,376,1.538,447,2.787,481,2.582,483,3.206,491,6.525,513,6.768,529,2.922,543,5.389,552,4.338,555,3.496,556,3.576,561,3.605,1271,7.265,2908,6.061,2930,3.605,3743,5.434,4150,8.871,6605,8.56,6611,6.216,7361,8.099,7362,6.724,7363,7.171,7364,10.592,7365,6.724,7366,6.724,7367,11.087,7368,9.558,7369,9.26,7370,6.724,7371,6.724,7372,8.127,7373,9.982,7374,9.26,7375,6.724,7376,5.881,7377,6.724,7378,8.871,7379,6.724,7380,5.123,7381,6.724,7382,6.724,7383,6.724,7384,6.724,7385,10.592,7386,8.099,7387,6.724,7388,6.724,7389,6.724,7390,6.724,7391,6.724,7392,6.724,7393,6.724,7394,6.216]],["title/classes/DashboardEntity.html",[0,0.232,7395,4.943]],["body/classes/DashboardEntity.html",[0,0.17,2,0.334,3,0.007,4,0.007,5,0.004,7,0.125,8,0.603,26,2.458,27,0.516,29,0.876,30,0.001,31,0.626,32,0.17,33,0.541,34,1.757,35,1.443,39,2.013,47,0.85,55,2.651,83,0.918,95,0.082,101,0.017,103,0,104,0,111,2.653,127,0.376,144,1.373,145,1.893,148,3.568,165,0.391,187,0.434,214,0.946,217,1.688,227,1.345,234,1.615,247,2.929,305,1.827,334,0.322,347,1.512,405,0.799,415,2.698,416,1.909,595,2.147,618,3.394,619,2.767,627,2.294,905,2.67,1041,1.678,1166,3.982,1271,4.758,1397,3.181,1680,5.695,1695,3.178,1750,3.315,1865,2.92,2341,3.909,2545,1.595,2553,4.661,2630,6.694,2643,1.742,2644,1.608,2686,2.18,2747,3.858,2767,5.623,3234,4.766,3364,3.619,3433,2.096,3609,3.178,3703,6.951,3753,3.098,4150,4.181,4878,1.839,6363,2.512,6470,2.024,6512,9.355,6516,3.629,6596,3.426,6828,6.149,7372,5.323,7395,3.629,7396,2.623,7397,4.992,7398,6.538,7399,4.992,7400,4.992,7401,6.538,7402,6.26,7403,7.504,7404,4.992,7405,6.038,7406,4.992,7407,4.992,7408,4.992,7409,4.992,7410,4.992,7411,4.992,7412,6.538,7413,2.999,7414,2.999,7415,2.999,7416,2.999,7417,2.999,7418,4.366,7419,2.999,7420,2.23,7421,2.999,7422,4.366,7423,2.999,7424,4.615,7425,4.366,7426,9.547,7427,2.999,7428,9.709,7429,2.999,7430,2.999,7431,6.827,7432,2.999,7433,4.366,7434,9.547,7435,2.999,7436,2.999,7437,4.366,7438,2.999,7439,4.366,7440,2.999,7441,4.366,7442,2.999,7443,4.366,7444,2.999,7445,4.366,7446,2.999,7447,4.366,7448,2.999,7449,2.999,7450,4.366,7451,2.999,7452,4.366,7453,2.23,7454,4.366,7455,2.623,7456,4.366,7457,4.366,7458,4.366,7459,2.623,7460,4.366,7461,2.623,7462,4.366,7463,2.623,7464,3.629,7465,8.756,7466,2.623,7467,4.366,7468,2.623,7469,4.366,7470,2.623,7471,4.366,7472,2.623,7473,2.623,7474,2.623,7475,2.623,7476,2.623,7477,4.366,7478,2.623,7479,4.366,7480,2.512,7481,4.366,7482,2.623,7483,2.096,7484,4.366,7485,2.623,7486,2.623,7487,2.623,7488,2.623,7489,2.423,7490,2.623,7491,4.366,7492,2.623,7493,2.285,7494,2.623,7495,2.623,7496,2.623,7497,2.623,7498,2.623,7499,2.623,7500,2.623,7501,2.623,7502,2.623,7503,4.366,7504,4.366,7505,2.512,7506,5.608,7507,2.623,7508,4.366,7509,2.623,7510,2.623,7511,2.623,7512,2.623,7513,2.623,7514,2.623,7515,2.623,7516,2.623,7517,2.623,7518,2.623,7519,2.623,7520,2.623,7521,2.623,7522,2.623,7523,2.623,7524,2.623,7525,2.623,7526,2.623,7527,2.623,7528,2.623,7529,2.623,7530,2.623,7531,2.623,7532,4.366,7533,2.623,7534,2.623,7535,2.623,7536,4.366,7537,4.366,7538,2.623,7539,2.623,7540,2.623,7541,2.623,7542,2.623,7543,2.623,7544,2.623,7545,5.608,7546,2.623,7547,2.623]],["title/entities/DashboardGridElementModel.html",[380,1.445,7548,5.324]],["body/entities/DashboardGridElementModel.html",[0,0.31,3,0.016,4,0.016,5,0.008,7,0.179,27,0.489,30,0.001,32,0.154,33,0.44,34,2.018,39,2.451,47,0.846,49,2.581,55,2.645,95,0.152,96,2.49,97,2.837,101,0.019,103,0.001,104,0.001,127,0.822,144,1.804,145,2.305,165,0.713,188,3.362,234,1.697,240,3.895,319,1.96,334,0.978,364,2.161,369,2.633,370,2.161,380,2.222,381,2.182,386,3.737,398,1.933,399,4.148,402,3.773,404,1.64,405,1.748,406,2.961,461,2.583,618,3.723,619,3.636,1397,4.111,1843,4.315,2462,8.209,2630,7.454,2632,4.815,2634,7.965,2636,5.697,2638,7.353,2640,3.575,2642,4.768,2646,3.849,2747,3.385,4272,3.976,4989,3.004,6508,4.07,6523,3.669,6864,4.232,7363,7.911,7548,8.187,7549,5.493,7550,9.918,7551,9.918,7552,6.559,7553,6.559,7554,6.559,7555,6.559,7556,6.559,7557,6.559,7558,6.559,7559,7.353,7560,6.767,7561,5.493,7562,7.624,7563,5.493,7564,5.493,7565,5.493,7566,5.493,7567,5.493,7568,5.299,7569,5.493,7570,5.493,7571,7.353,7572,6.617,7573,5.493,7574,4.583,7575,5.493,7576,5.493,7577,5.493,7578,5.493,7579,5.493]],["title/interfaces/DashboardGridElementModelProperties.html",[334,0.731,7559,5.493]],["body/interfaces/DashboardGridElementModelProperties.html",[0,0.315,3,0.016,4,0.016,5,0.008,7,0.181,30,0.001,32,0.168,33,0.552,34,2.196,39,2.491,47,0.921,49,2.641,55,2.781,95,0.154,96,2.53,97,2.903,101,0.019,103,0.001,104,0.001,127,0.841,145,1.7,165,0.724,188,4.213,234,1.502,240,3.618,334,0.994,336,1.606,369,2.349,370,2.211,380,2.249,398,1.978,399,4.199,402,3.834,404,1.667,405,1.789,406,3.008,461,2.609,618,3.783,619,3.721,1397,4.242,1843,4.384,2462,7.693,2630,7.77,2632,4.26,2634,7.047,2636,5.041,2638,5.422,2640,3.658,2642,4.879,2646,3.939,2747,3.464,4272,4.068,4989,3.074,6508,4.165,6523,3.754,6864,4.331,7363,8.111,7548,7.243,7549,5.621,7550,10.235,7551,10.235,7559,8.549,7560,8.478,7561,5.621,7562,7.746,7563,5.621,7564,5.621,7565,5.621,7566,5.621,7567,5.621,7568,5.422,7569,5.621,7570,5.621,7571,7.472,7572,6.724,7573,5.621,7574,4.69,7575,5.621,7576,5.621,7577,5.621,7578,5.621,7579,5.621]],["title/classes/DashboardGridElementResponse.html",[0,0.232,7580,5.493]],["body/classes/DashboardGridElementResponse.html",[0,0.313,2,0.583,3,0.012,4,0.012,5,0.006,7,0.079,27,0.518,29,0.409,30,0.001,31,0.293,32,0.175,33,0.616,34,2.282,47,0.944,55,2.191,83,2.365,95,0.099,101,0.015,103,0,104,0,127,1.274,145,1.958,165,0.606,240,2.453,364,2.247,376,1.195,379,3.021,380,1.11,467,3.498,469,2.294,475,5.558,538,4.148,618,3.764,728,2.957,966,2.658,1011,2.64,1013,5.389,1021,4.113,1041,2.922,1166,4.881,1271,4.922,1397,4.399,1588,5.402,2553,5.749,2745,5.859,2747,3.99,2767,5.37,2884,6.048,2885,6.048,3753,7.497,6469,6.115,6470,7.33,6555,3.883,6596,8.292,6826,6.246,6827,6.055,6828,9.15,6829,7.208,6832,6.055,6833,4.858,6834,5.62,6835,6.246,6860,3.72,7363,4.858,7372,5.506,7380,5.891,7464,7.894,7572,6.691,7580,9.505,7581,4.569,7582,9.499,7583,9.095,7584,9.095,7585,5.224,7586,5.224,7587,5.224,7588,8.772,7589,6.763,7590,5.224,7591,5.224,7592,5.224,7593,5.224,7594,4.569,7595,5.224,7596,5.224,7597,5.224,7598,4.569,7599,4.569,7600,4.569,7601,4.569,7602,4.569]],["title/classes/DashboardGridSubElementResponse.html",[0,0.232,7588,5.493]],["body/classes/DashboardGridSubElementResponse.html",[0,0.336,2,0.657,3,0.014,4,0.014,5,0.007,7,0.089,27,0.47,29,0.461,30,0.001,31,0.33,32,0.166,33,0.285,34,2.309,47,0.956,55,1.817,83,1.801,95,0.108,101,0.016,103,0,104,0,127,1.348,145,1.491,165,0.661,240,1.868,364,1.961,376,1.347,379,3.059,380,1.251,467,3.562,469,2.585,475,5.57,538,3.801,618,4.031,728,2.252,966,2.996,1013,4.515,1021,3.132,1041,3.293,1166,4.047,1271,3.748,1397,4.49,1588,4.114,2553,5.753,2745,6.275,2747,4.354,2767,4.452,2884,6.06,2885,6.06,3753,7.75,6469,6.549,6470,6.653,6555,4.377,6596,8.571,6826,6.815,6827,6.606,6828,9.203,6829,7.719,6832,4.611,6833,3.7,6834,4.28,6835,4.756,6860,4.193,7363,5.301,7372,4.193,7380,6.427,7464,7.166,7572,7.166,7580,8.696,7581,5.15,7582,8.622,7583,8.256,7584,8.256,7588,9.863,7589,5.15,7594,5.15,7598,5.15,7599,5.15,7600,5.15,7601,5.15,7602,5.15,7603,5.888,7604,5.888,7605,5.888,7606,5.888,7607,5.888]],["title/classes/DashboardMapper.html",[0,0.232,7376,5.947]],["body/classes/DashboardMapper.html",[0,0.258,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.464,29,0.881,30,0.001,31,0.63,32,0.153,33,0.544,34,1.288,35,1.362,95,0.129,99,1.263,100,4.012,101,0.013,103,0.001,104,0.001,111,2.568,145,1.917,163,2.33,217,1.559,227,1.167,234,1.827,627,4.121,975,5.562,982,3.773,1397,2.535,2222,5.391,2767,3.995,3753,4.697,6410,6.34,6470,5.109,6516,8.71,6596,5.195,7363,6.304,7376,8.775,7380,9.129,7395,8.71,7402,6.34,7431,9.129,7572,5.503,7580,9.679,7583,6.34,7584,6.34,7588,9.09,7608,7.57,7609,10.033,7610,10.033,7611,10.033,7612,7.57,7613,10.033,7614,7.57,7615,10.033,7616,7.57,7617,7.57,7618,7.57,7619,7.57,7620,7.57,7621,7.57,7622,7.57,7623,7.57,7624,7.57,7625,7.57,7626,7.57,7627,7.57,7628,7.57,7629,10.033,7630,7.57,7631,10.033,7632,7.57,7633,7.57,7634,7.57,7635,7.57,7636,7.57]],["title/entities/DashboardModelEntity.html",[380,1.445,7560,5.055]],["body/entities/DashboardModelEntity.html",[0,0.321,3,0.016,4,0.016,5,0.008,7,0.182,27,0.389,30,0.001,32,0.128,34,2.054,39,2.89,47,0.823,49,2.713,55,2.485,95,0.155,96,2.578,97,2.983,101,0.019,103,0.001,104,0.001,127,0.864,144,1.897,145,1.746,165,0.738,188,3.48,234,1.743,240,3.659,319,2.061,334,1.012,364,1.716,369,2.56,370,2.272,380,2.281,381,2.294,398,2.032,399,4.258,402,3.906,404,1.698,405,1.838,406,3.065,461,2.852,618,3.853,619,3.823,1397,3.862,1843,5.088,2462,8.386,2630,6.744,2632,4.943,2634,8.178,2636,5.849,2638,5.571,2640,3.758,2642,5.013,2646,4.046,2747,3.559,4272,4.18,4989,3.158,6508,4.279,6523,3.857,6864,4.45,7363,7.834,7548,7.379,7549,5.775,7550,9.318,7551,9.318,7559,7.611,7560,7.979,7561,5.775,7562,7.891,7563,5.775,7564,5.775,7565,5.775,7566,5.775,7567,5.775,7568,5.571,7569,5.775,7570,5.775,7571,7.611,7572,8.386,7573,5.775,7574,4.818,7575,5.775,7576,5.775,7577,5.775,7578,7.891,7579,5.775,7637,6.896,7638,6.375,7639,6.896]],["title/injectables/DashboardModelMapper.html",[105,0.91,7640,5.324]],["body/injectables/DashboardModelMapper.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.808,27,0.502,29,0.953,30,0.001,31,0.681,32,0.168,33,0.588,34,1.138,35,1.446,36,2.807,39,1.162,47,0.308,95,0.105,96,1.181,99,0.72,101,0.007,103,0,104,0,105,0.895,107,1.041,111,2.477,112,3.005,127,0.541,145,1.093,187,0.624,188,4.319,216,0.798,217,1.733,221,2.93,227,1.298,234,1.499,284,2.333,305,1.23,380,1.422,398,1.272,461,1.874,1271,2.748,1353,2.084,1680,3.289,1750,2.968,1865,3.048,2222,3.074,2355,5.309,2362,2.483,2397,2.914,2630,6.275,2642,3.138,2794,6.753,3314,3.016,3319,4.056,3583,3.381,6512,6.573,6517,3.487,6595,3.487,6828,4.593,7363,7.762,7372,3.074,7395,8.012,7431,9.536,7465,7.821,7480,3.616,7548,8.919,7550,3.487,7551,3.487,7560,9.411,7568,3.487,7572,3.138,7640,5.24,7641,4.317,7642,8.194,7643,8.194,7644,6.692,7645,6.692,7646,6.692,7647,6.692,7648,8.194,7649,6.692,7650,6.692,7651,8.194,7652,4.317,7653,4.317,7654,4.317,7655,12.517,7656,4.317,7657,4.317,7658,6.692,7659,4.317,7660,6.692,7661,4.317,7662,9.241,7663,6.692,7664,4.317,7665,6.692,7666,4.317,7667,4.317,7668,4.317,7669,6.692,7670,4.317,7671,6.692,7672,4.317,7673,4.317,7674,4.317,7675,9.988,7676,6.692,7677,4.317,7678,4.317,7679,4.317,7680,4.317,7681,4.317,7682,4.317,7683,4.317,7684,4.317,7685,4.317,7686,4.317,7687,4.317,7688,4.317,7689,4.317,7690,4.317,7691,4.317,7692,4.317,7693,3.991,7694,4.317,7695,6.692,7696,4.317,7697,6.692,7698,4.317,7699,4.317,7700,4.317,7701,6.692,7702,4.317,7703,6.692,7704,4.317,7705,6.692,7706,4.317,7707,4.317,7708,4.317,7709,6.692,7710,6.692,7711,4.317,7712,4.317,7713,4.317,7714,3.776,7715,4.317,7716,4.317,7717,4.317,7718,4.317,7719,4.317,7720,4.317,7721,3.776,7722,6.692,7723,4.317,7724,4.317]],["title/injectables/DashboardRepo.html",[105,0.91,7725,5.324]],["body/injectables/DashboardRepo.html",[0,0.308,3,0.015,4,0.015,5,0.008,7,0.098,8,1.092,9,3.061,26,2.793,27,0.487,29,0.926,30,0.001,31,0.662,32,0.161,33,0.572,34,1.538,35,1.361,36,2.854,39,3.028,49,2.556,95,0.144,96,1.777,97,2.81,99,1.084,101,0.015,103,0.001,104,0.001,105,1.21,107,1.566,112,2.959,127,0.814,187,0.939,206,5.292,214,2.048,216,1.672,217,1.693,221,2.907,227,1.269,234,1.055,334,0.698,380,1.921,461,1.486,661,2.73,722,2.896,877,3.812,1852,2.743,2355,6.468,2397,4.384,3314,4.538,3319,5.48,6828,4.458,7128,7.304,7363,7.691,7395,9.309,7431,6.889,7560,4.829,7640,8.806,7662,7.909,7721,5.682,7725,7.08,7726,6.005,7727,8.359,7728,7.909,7729,8.359,7730,6.496,7731,9.615,7732,6.496,7733,9.097,7734,6.496,7735,8.359,7736,6.496,7737,9.615,7738,6.496,7739,6.005,7740,6.005,7741,8.359,7742,6.005,7743,5.682,7744,7.572,7745,4.949,7746,8.359,7747,6.005,7748,8.359,7749,6.005,7750,9.615,7751,6.005,7752,8.359,7753,6.005,7754,6.005]],["title/classes/DashboardResponse.html",[0,0.232,7380,5.181]],["body/classes/DashboardResponse.html",[0,0.342,2,0.68,3,0.014,4,0.014,5,0.007,7,0.092,27,0.415,29,0.478,30,0.001,31,0.342,32,0.157,33,0.295,34,2.321,47,0.938,55,1.864,83,1.867,95,0.111,101,0.017,103,0,104,0,127,1.37,145,2.191,165,0.678,240,1.936,364,1.576,376,1.396,379,3.092,380,1.839,467,3.58,469,2.679,475,5.646,538,4.531,618,4.112,728,2.334,966,3.105,1011,3.083,1013,2.795,1021,3.246,1041,4.84,1166,4.152,1271,3.884,1397,4.353,1588,4.263,2553,5.606,2745,6.4,2747,4.466,2767,4.567,2884,6.144,2885,6.144,3753,7.445,6469,5.749,6470,6.786,6555,4.536,6596,8.234,6826,6.99,6827,6.776,6828,8.924,6829,6.776,6832,4.779,6833,3.834,6834,4.436,6835,4.929,6860,6.162,7363,6.874,7372,4.346,7380,8.801,7464,7.309,7572,8.397,7580,9.331,7581,5.337,7582,8.794,7583,8.421,7584,8.421,7588,8.838,7589,5.337,7598,5.337,7599,5.337,7600,5.337,7601,5.337,7602,5.337,7755,6.102,7756,6.102,7757,6.102]],["title/injectables/DashboardUc.html",[105,0.91,7378,5.694]],["body/injectables/DashboardUc.html",[0,0.216,3,0.015,4,0.015,5,0.008,7,0.096,8,1.073,26,2.944,27,0.483,29,0.917,30,0.001,31,0.68,32,0.159,33,0.566,35,1.346,36,2.604,39,3.652,47,0.732,95,0.15,99,1.057,101,0.011,103,0.001,104,0.001,105,1.188,107,1.527,111,2.348,112,2.85,127,1.113,148,1.949,185,3.987,187,0.916,216,1.642,217,1.524,221,2.886,227,1.064,234,1.028,305,1.804,369,1.405,450,2.601,511,3.2,722,2.823,839,3.02,1930,7.557,2144,3.574,2644,4.762,2688,5.303,2767,5.415,4431,3.979,4435,4.274,4748,3.51,6926,5.539,7363,7.996,7378,7.439,7386,9.728,7395,8.085,7426,9.314,7434,10.442,7465,4.959,7505,5.303,7725,6.956,7728,7.769,7733,7.769,7744,9.314,7758,6.333,7759,10.26,7760,10.26,7761,8.883,7762,6.333,7763,6.333,7764,6.333,7765,6.333,7766,6.333,7767,6.333,7768,6.333,7769,8.883,7770,6.333,7771,6.333,7772,5.854,7773,4.825,7774,6.333,7775,6.333,7776,6.333,7777,6.333,7778,10.26,7779,8.883,7780,8.883,7781,6.333,7782,6.333,7783,6.333,7784,6.333]],["title/classes/DashboardUrlParams.html",[0,0.232,7367,5.947]],["body/classes/DashboardUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,3795,5.749,7363,7.422,7367,10.332,7386,11.092,7785,9.798,7786,9.798]],["title/classes/DatabaseManagementConsole.html",[0,0.232,7787,5.694]],["body/classes/DatabaseManagementConsole.html",[0,0.198,2,0.647,3,0.014,4,0.014,5,0.007,7,0.088,8,1.008,27,0.441,29,0.766,30,0.001,31,0.548,32,0.133,33,0.517,35,1.184,36,2.53,47,0.414,95,0.126,101,0.02,103,0,104,0,111,1.163,112,2.793,127,0.727,145,2.987,163,2.569,215,1.852,217,1.619,221,2.475,227,1.014,334,0.623,347,1.689,364,1.781,368,4.19,369,1.288,371,2.949,379,2.951,443,3.271,701,4.762,721,4.512,1843,4.635,1948,7.071,2139,6.309,2794,3.441,3264,3.517,3282,5.246,3478,5.076,3480,4.86,3481,7.104,3484,6.744,3486,7.899,3490,8.538,3491,6.719,3492,3.441,3494,4.545,3495,5.464,3578,2.995,5541,4.688,5543,5.076,7787,6.992,7788,10.474,7789,7.718,7790,8.349,7791,8.638,7792,9.52,7793,5.804,7794,7.718,7795,9.922,7796,8.956,7797,5.804,7798,7.718,7799,7.916,7800,5.804,7801,8.872,7802,8.423,7803,5.387,7804,6.361,7805,5.804,7806,5.076,7807,4.86,7808,7.718,7809,8.147,7810,6.557,7811,7.718,7812,5.076,7813,7.718,7814,7.718,7815,5.365,7816,5.365,7817,5.365,7818,8.956,7819,7.718,7820,9.039,7821,3.983,7822,7.302,7823,5.365,7824,5.365,7825,5.076]],["title/controllers/DatabaseManagementController.html",[481,2.611,7826,5.947]],["body/controllers/DatabaseManagementController.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.197,27,0.511,29,0.873,30,0.001,31,0.624,32,0.152,33,0.539,35,1.5,36,2.834,47,0.909,95,0.127,101,0.012,103,0.001,104,0.001,112,3.025,187,1.075,215,2.372,217,0.967,221,2.294,227,1.285,264,3.123,347,2.255,364,2.257,447,3.08,481,2.853,483,3.543,529,3.23,2929,4.274,3494,5.819,6614,6.688,7789,10.994,7791,9.607,7792,8.731,7802,8.288,7807,6.223,7825,8.667,7826,8.667,7827,12.744,7828,7.43,7829,7.43,7830,9.909,7831,9.16,7832,9.909,7833,7.43,7834,9.909,7835,7.43,7836,10.402,7837,9.909,7838,7.43,7839,6.869,7840,9.909,7841,7.43,7842,7.43,7843,9.909,7844,7.43,7845,11.149,7846,9.909,7847,7.43,7848,7.43,7849,7.43,7850,7.43,7851,7.43,7852,7.43,7853,7.43,7854,7.43,7855,7.43]],["title/modules/DatabaseManagementModule.html",[425,1.812,7856,5.694]],["body/modules/DatabaseManagementModule.html",[0,0.328,3,0.023,4,0.023,5,0.012,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.393,425,3.355,427,3.48,428,3.744,429,3.855,430,3.838,431,3.822,432,4.632,433,4.758,442,4.678,443,3.775,444,3.684,1948,5.774,7856,11.556,7857,9.634,7858,9.634,7859,9.634,7860,11.491,7861,8.906,7862,8.906,7863,8.068]],["title/injectables/DatabaseManagementService.html",[105,0.91,7860,5.493]],["body/injectables/DatabaseManagementService.html",[0,0.183,3,0.013,4,0.013,5,0.006,7,0.081,8,0.952,27,0.528,29,0.953,30,0.001,31,0.696,32,0.165,33,0.589,35,1.504,36,2.871,47,0.981,95,0.141,96,2.157,97,2.32,99,0.895,101,0.009,103,0,104,0,105,1.055,107,1.293,111,1.58,112,3.052,127,0.672,187,0.776,215,1.712,216,0.992,217,1.667,221,2.746,227,1.288,247,3.662,369,2.074,398,1.58,779,8.161,884,3.715,948,4.086,1345,3.708,1750,3.497,1843,5.77,2355,5.926,2395,5.321,3314,3.747,3319,4.778,3811,6.368,3822,8.175,5083,4.958,6885,6.118,7791,8.323,7795,6.173,7804,7.851,7831,7.287,7836,10.378,7839,7.287,7860,6.368,7861,11.977,7864,4.691,7865,7.883,7866,7.287,7867,7.883,7868,7.883,7869,7.883,7870,10.304,7871,7.883,7872,5.363,7873,7.883,7874,5.363,7875,7.883,7876,5.363,7877,7.883,7878,5.363,7879,7.883,7880,5.363,7881,7.883,7882,5.363,7883,5.363,7884,7.883,7885,5.363,7886,5.363,7887,5.363,7888,5.363,7889,5.363,7890,5.363,7891,5.363,7892,5.363,7893,9.347,7894,7.883,7895,5.363,7896,5.363,7897,5.363,7898,5.363,7899,7.883,7900,5.363,7901,5.363,7902,5.363,7903,7.883,7904,5.363,7905,5.363,7906,5.363,7907,5.363,7908,5.363,7909,5.363,7910,5.363]],["title/classes/DeleteFilesConsole.html",[0,0.232,7911,5.947]],["body/classes/DeleteFilesConsole.html",[0,0.265,2,0.869,3,0.018,4,0.018,5,0.012,7,0.118,8,1.235,27,0.422,29,0.801,30,0.001,31,0.573,32,0.139,33,0.494,35,0.943,36,2.192,55,2.71,83,2.383,95,0.147,101,0.013,103,0.001,104,0.001,111,1.562,112,2.515,127,0.976,144,2.142,215,2.486,217,1.014,221,1.803,234,1.265,319,2.328,364,1.419,379,2.586,1015,4.357,1021,4.143,1467,2.486,1763,7.432,1959,5.571,2356,4.688,2357,5.519,2727,3.737,3486,6.292,3490,8.316,3491,7.613,3492,4.619,3578,6.253,5339,10.598,6532,9.354,7911,8.942,7912,11.412,7913,7.79,7914,9.451,7915,7.79,7916,10.815,7917,7.79,7918,10.224,7919,11.295,7920,11.295,7921,9.982,7922,9.557,7923,11.412,7924,7.79,7925,11.412,7926,7.79,7927,6.1,7928,7.201,7929,7.201,7930,6.813,7931,7.79,7932,7.79,7933,7.79,7934,7.79,7935,4.958]],["title/injectables/DeleteFilesUc.html",[105,0.91,7916,5.694]],["body/injectables/DeleteFilesUc.html",[0,0.172,3,0.012,4,0.012,5,0.011,7,0.076,8,0.91,27,0.48,29,0.838,30,0.001,31,0.599,32,0.153,33,0.517,35,1.295,36,2.144,47,0.643,55,1.941,58,4.858,83,2.757,95,0.149,99,0.841,101,0.008,103,0.001,104,0,105,1.007,107,1.215,111,2.69,112,2.819,116,2.807,127,0.943,144,1.386,165,0.59,187,0.729,204,1.71,216,1.667,217,1.665,221,2.692,227,0.935,234,1.623,247,4.397,319,1.507,369,2,371,1.39,380,1.071,432,1.855,444,1.928,500,5.168,549,3.46,784,2.725,798,3.167,905,3.135,1178,4.858,1369,2.747,1467,1.609,2035,2.725,2145,3.167,2356,3.702,2357,4.554,2401,3.664,2406,3.947,2531,2.725,3364,5.642,3578,5.159,3580,3.669,6269,3.522,6270,6.297,6271,3.522,6272,3.522,6334,6.586,7914,6.961,7916,6.306,7919,8.744,7927,5.896,7929,4.66,7930,4.409,7935,3.209,7936,11.956,7937,5.041,7938,9.997,7939,6.586,7940,7.53,7941,7.53,7942,9.997,7943,5.041,7944,9.066,7945,9.74,7946,7.53,7947,7.53,7948,7.953,7949,5.041,7950,6.306,7951,9.357,7952,7.53,7953,8.861,7954,5.041,7955,7.53,7956,5.041,7957,7.53,7958,5.041,7959,5.041,7960,7.53,7961,4.222,7962,4.409,7963,4.072,7964,4.66,7965,5.041,7966,5.041,7967,9.013,7968,9.997,7969,9.997,7970,5.041,7971,9.013,7972,5.041,7973,5.041,7974,5.041,7975,9.013,7976,5.041,7977,5.041,7978,5.041,7979,7.53,7980,5.041,7981,5.041,7982,3.747,7983,5.041,7984,5.041,7985,5.041,7986,5.041,7987,5.041,7988,5.041,7989,5.041,7990,4.222,7991,5.041,7992,4.66,7993,5.041,7994,4.66,7995,3.747,7996,4.66,7997,4.66,7998,5.041,7999,5.041,8000,5.041,8001,7.53,8002,4.66,8003,5.041,8004,6.586,8005,5.041,8006,5.041,8007,5.041,8008,5.041,8009,5.041]],["title/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.232,8010,5.324]],["body/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.378,2,1.377,3,0.017,4,0.017,5,0.009,7,0.111,27,0.509,29,0.577,30,0.001,31,0.412,32,0.173,33,0.597,47,0.791,95,0.126,99,1.229,101,0.019,102,5.946,103,0.001,104,0.001,127,0.922,138,3.216,150,2.549,165,0.771,234,1.924,347,2.245,404,2,460,6.383,564,4.069,574,5.202,596,3.385,701,3.924,843,5.609,1016,4.16,1178,4.751,2037,4.32,2049,5.728,2439,6.953,6196,3.979,8010,9.672,8011,8.69,8012,7.376,8013,6.44,8014,8.084,8015,10.328,8016,9.279,8017,7.363,8018,5.609,8019,7.363,8020,6.806,8021,8.965,8022,6.806,8023,6.806,8024,6.166,8025,5.473,8026,6.166,8027,5.947,8028,6.44,8029,7.956,8030,8.614,8031,6.166,8032,5.243,8033,5.053,8034,5.053,8035,5.352,8036,6.166]],["title/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.232,8029,5.493]],["body/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.378,2,1.378,3,0.017,4,0.017,5,0.009,7,0.111,27,0.51,29,0.578,30,0.001,31,0.413,32,0.168,33,0.598,47,0.846,95,0.127,99,1.231,101,0.019,102,5.951,103,0.001,104,0.001,127,0.924,150,3.846,165,0.772,234,1.925,347,2.247,404,2.002,460,6.389,564,4.072,574,5.206,596,3.388,701,2.608,843,5.612,1016,4.163,1178,4.759,2037,4.328,2049,5.733,2439,6.958,6196,3.987,8010,7.722,8011,8.698,8012,7.379,8013,6.451,8014,8.089,8015,10.332,8016,9.286,8018,5.62,8020,6.819,8021,8.973,8022,6.819,8023,6.819,8024,6.177,8025,5.483,8026,6.177,8027,5.958,8028,6.451,8029,9.983,8030,8.625,8031,6.177,8032,5.253,8033,5.062,8034,5.062,8035,5.362,8036,6.177,8037,9.861]],["title/classes/DoBaseFactory.html",[0,0.232,4313,4.842]],["body/classes/DoBaseFactory.html",[0,0.173,2,0.566,3,0.012,4,0.012,5,0.006,7,0.077,8,0.915,27,0.534,29,1.024,30,0.001,31,0.698,32,0.18,33,0.603,34,1.826,35,1.483,47,0.646,49,1.998,55,2.511,59,3.343,95,0.116,96,1.389,97,2.197,101,0.008,103,0,104,0,127,0.636,138,3.308,144,3.368,148,1.563,165,0.593,185,4.845,216,1.4,217,0.661,227,0.527,234,0.825,319,3.581,359,2.64,366,2.841,369,1.127,379,2.052,380,2.281,381,2.519,404,1.364,538,3.412,596,3.95,627,2.323,660,7.294,661,4.73,662,5.663,665,4.274,666,5.663,667,5.68,668,4.274,669,4.274,670,4.274,671,4.198,672,4.639,673,5.109,674,6.185,675,5.95,676,7.064,677,2.893,682,2.867,683,4.274,684,2.893,685,5.296,686,5.468,687,4.277,688,5.142,689,4.235,690,2.867,691,2.702,692,4.477,693,2.791,694,2.745,695,2.867,696,5.217,697,2.893,698,5.019,699,2.867,700,7.231,701,4.408,702,7.036,703,2.893,704,3.749,705,2.867,706,2.893,707,2.867,708,2.893,709,4.274,712,2.867,713,6.239,714,2.893,715,2.867,716,4.274,717,3.996,718,4.274,719,2.893,720,2.768,721,2.745,722,2.265,723,2.867,724,2.867,725,2.867,726,2.893,727,2.893,728,1.942,729,2.867,730,2.893,731,3.577,732,2.867,733,2.893,735,2.95,736,3.012,1187,2.422,1188,2.393,1189,2.393,1190,2.532,1191,2.768,2045,3.549,2139,3.277,2510,4.695,4121,3.324,4313,5.392,4315,3.692,8038,5.079,8039,5.079,8040,5.079,8041,5.079]],["title/classes/DomainObject.html",[0,0.232,1790,2.871]],["body/classes/DomainObject.html",[0,0.296,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,9,4.09,26,2.547,27,0.52,29,0.68,30,0.001,31,0.486,32,0.149,33,0.42,34,2.147,35,1.051,95,0.111,101,0.018,103,0.001,104,0.001,116,3.931,127,1.087,165,0.859,208,3.242,214,3.456,217,1.129,227,1.137,334,0.932,405,2.921,595,4.357,661,5.049,692,5.042,884,5.165,1787,6.978,1788,12.03,1789,7.591,1790,4.628,1791,9.179,1792,8.023,1793,8.143,1794,10.132,7403,7.268,8042,10.961,8043,8.679,8044,8.679]],["title/classes/DomainObjectFactory.html",[0,0.232,8045,6.286]],["body/classes/DomainObjectFactory.html",[0,0.167,2,0.547,3,0.012,4,0.012,5,0.006,7,0.074,8,0.891,27,0.53,29,1.017,30,0.001,31,0.692,32,0.179,33,0.598,34,1.89,35,1.469,47,0.632,55,2.483,59,3.294,95,0.127,101,0.008,103,0,104,0,127,0.615,138,3.223,144,3.262,148,1.51,165,0.578,185,4.803,187,0.709,216,1.364,234,0.797,305,1.398,319,3.544,359,3.092,366,2.744,379,2.009,380,1.884,381,2.454,404,1.777,538,3.324,573,3.738,574,2.154,596,3.923,627,2.264,660,7.252,661,4.669,662,5.566,665,4.164,666,5.566,667,5.751,668,4.164,669,4.164,670,4.164,671,4.09,672,4.544,673,5.004,674,6.106,675,5.862,676,7.019,677,2.795,682,2.769,683,4.164,684,2.795,685,5.205,686,5.375,687,4.204,688,5.054,689,4.126,690,2.769,691,2.609,692,4.431,693,2.696,694,2.652,695,2.769,696,5.127,697,2.795,698,4.916,699,2.769,700,7.178,701,4.29,702,6.976,703,2.795,704,3.653,705,2.769,706,2.795,707,2.769,708,2.795,709,4.164,712,2.769,713,6.159,714,2.795,715,2.769,716,4.164,717,3.894,718,4.164,719,2.795,720,4.832,721,3.988,722,2.187,723,2.769,724,2.769,725,2.769,726,2.795,727,2.795,728,2.821,729,2.769,730,2.795,731,3.897,732,2.769,733,2.795,735,2.85,736,2.909,1187,3.518,1188,3.477,1189,3.477,1190,3.678,1191,4.021,1271,3.123,1787,4.285,1790,3.115,1873,3.044,1904,2.052,2045,3.428,2139,3.166,2614,3.566,2615,3.494,3813,3.367,6250,3.211,8045,6.82,8046,4.906,8047,4.906,8048,4.906,8049,7.378,8050,3.566]],["title/classes/DownloadFileParams.html",[0,0.232,6237,4.589]],["body/classes/DownloadFileParams.html",[0,0.456,2,0.717,3,0.015,4,0.021,5,0.011,7,0.097,26,2.655,27,0.37,30,0.001,32,0.166,39,1.732,47,0.963,95,0.161,99,1.074,101,0.022,103,0.001,104,0.001,150,2.228,165,0.703,204,2.183,214,2.028,334,0.691,347,1.817,364,1.636,369,1.428,373,4.815,374,2.054,375,4.266,376,1.472,377,5.967,379,1.458,380,1.367,467,3.636,469,2.825,470,5.105,471,4.54,565,3.207,1000,4.968,1001,6.712,1031,3.242,1044,3.087,1180,2.769,1270,3.815,1330,5.717,1331,4.211,1332,4.211,2702,4.663,2889,5.124,3610,3.145,4205,2.168,5821,5.197,5836,6.589,6170,4.792,6183,6.772,6189,6.103,6217,3.165,6220,4.416,6221,4.495,6222,4.495,6223,5.948,6225,7.827,6228,4.495,6229,8.107,6230,7.824,6231,7.824,6232,4.495,6233,4.416,6234,7.951,6235,4.416,6236,4.495,6237,6.062,6238,7.559,6239,4.274,6240,4.342,6241,4.416,6242,4.342,6243,4.342,6244,4.095,6245,4.495,6246,4.495,6247,4.495,6248,4.095,6249,4.095,6250,4.211,6251,4.274,6252,4.495,8051,6.434,8052,6.434]],["title/classes/DtoCreator.html",[0,0.232,8053,5.947]],["body/classes/DtoCreator.html",[0,0.206,2,0.423,3,0.009,4,0.009,5,0.005,7,0.057,8,0.73,27,0.518,29,0.853,30,0.001,31,0.629,32,0.176,33,0.527,34,1.027,35,1.393,95,0.128,99,0.632,100,2.876,101,0.006,103,0,104,0,105,0.808,111,2.708,127,0.943,138,2.638,165,0.473,187,0.548,188,3.466,216,1.117,217,1.708,227,1.259,234,0.981,347,1.738,369,1.34,371,1.665,461,2.814,564,3.665,591,2.625,592,2.736,806,1.543,843,1.672,966,1.928,1041,5.248,1233,2.601,1397,2.022,1750,4.652,1798,3.409,1799,2.297,1814,2.601,1884,5.071,2130,1.655,2131,1.852,2132,1.786,2303,4.053,2553,3.662,2627,5.711,2647,3.974,2649,4.855,2651,8.953,2654,4.602,2656,5.362,2659,1.775,2667,7.858,2725,1.717,2735,2.887,2736,2.48,3001,2.887,3036,8.207,3037,5.058,3041,5.058,3044,3.173,3063,3.314,3441,3.173,3451,2.647,3452,2.381,3455,3.173,3753,2.351,3771,5.707,3859,2.119,4466,4.374,5049,3.173,6365,5.003,6916,7.194,7420,8.343,7574,2.647,7714,3.314,8053,6.586,8054,11.729,8055,3.503,8056,9.525,8057,9.506,8058,6.04,8059,6.04,8060,6.04,8061,7.941,8062,7.941,8063,6.04,8064,6.04,8065,6.04,8066,6.04,8067,6.04,8068,3.789,8069,3.789,8070,3.789,8071,3.789,8072,5.583,8073,10.86,8074,3.789,8075,8.373,8076,5.583,8077,3.789,8078,5.583,8079,3.789,8080,3.789,8081,3.789,8082,3.789,8083,5.583,8084,3.789,8085,5.583,8086,3.789,8087,5.583,8088,3.789,8089,5.583,8090,3.789,8091,2.755,8092,5.283,8093,5.283,8094,3.503,8095,3.503,8096,3.314,8097,5.583,8098,3.503,8099,5.583,8100,5.583,8101,3.503,8102,3.503,8103,3.503,8104,3.503,8105,3.503,8106,3.503,8107,3.503,8108,3.503,8109,3.503,8110,3.503,8111,5.583,8112,3.314,8113,3.503,8114,3.503,8115,3.503,8116,3.503,8117,6.961,8118,3.503,8119,3.503,8120,3.503,8121,3.314,8122,3.314,8123,5.583,8124,3.503,8125,3.503,8126,3.314,8127,3.314,8128,3.173,8129,3.314,8130,3.314,8131,3.503,8132,3.503,8133,3.503,8134,3.503,8135,3.503,8136,3.503,8137,3.314,8138,3.503,8139,3.503,8140,3.503,8141,3.503,8142,3.503,8143,3.503,8144,3.503,8145,3.503,8146,3.173,8147,3.503,8148,3.061,8149,3.503,8150,3.503,8151,3.503]],["title/injectables/DurationLoggingInterceptor.html",[105,0.91,8152,6.286]],["body/injectables/DurationLoggingInterceptor.html",[0,0.291,3,0.02,4,0.02,5,0.01,7,0.129,8,1.311,27,0.448,29,0.85,30,0.001,31,0.608,32,0.148,33,0.525,35,1.035,95,0.161,101,0.014,103,0.001,104,0.001,105,1.452,107,2.061,127,1.071,187,1.236,199,3.231,214,2.696,215,2.729,217,1.113,227,0.887,379,1.938,691,5.775,731,4.714,1157,5.596,1159,6.514,1467,2.729,1944,5.868,2159,9.496,2292,9.09,2356,4.46,2357,5.717,2969,5.771,4508,8.272,6437,7.892,6444,8.77,8152,10.037,8153,11.931,8154,7.904,8155,10.037,8156,9.496,8157,8.55,8158,9.496,8159,10.978,8160,10.978,8161,8.55,8162,9.496,8163,7.904,8164,8.55,8165,8.55,8166,8.55,8167,8.55,8168,8.55]],["title/classes/ElementContentBody.html",[0,0.232,8169,4.589]],["body/classes/ElementContentBody.html",[0,0.457,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,9,2.771,27,0.242,30,0.001,31,0.638,32,0.188,47,0.812,83,1.799,95,0.138,99,0.981,101,0.022,103,0,104,0,144,3.132,150,2.036,163,1.81,165,0.66,240,1.865,364,1.071,369,1.305,374,1.877,375,3.752,376,1.345,379,2.232,404,2.052,467,3.596,470,4.764,471,3.993,524,4.847,999,5.364,1000,3.431,1031,1.842,1044,2.821,1770,3.415,2303,4.616,2553,4.586,2848,2.838,2849,2.543,2888,3.564,2889,4.173,3251,3.486,3253,3.486,3259,5.084,3262,3.013,3267,3.288,4009,3.743,4037,3.743,4038,7.066,4096,6.353,5562,6.356,5564,6.356,5566,6.356,5568,6.356,5570,6.356,5604,3.848,5643,6.544,5644,6.544,5645,6.544,5646,6.544,5647,6.544,5835,3.694,5836,6.826,6979,3.906,7039,3.743,8169,8.426,8170,5.784,8171,4.035,8172,5.88,8173,5.88,8174,6.544,8175,6.544,8176,4.035,8177,6.544,8178,3.605,8179,3.968,8180,6.544,8181,6.544,8182,3.906,8183,3.906,8184,3.906,8185,3.906,8186,4.035,8187,4.035,8188,4.035,8189,4.035,8190,4.035]],["title/controllers/ElementController.html",[481,2.611,2723,5.947]],["body/controllers/ElementController.html",[0,0.15,3,0.01,4,0.01,5,0.005,7,0.067,8,0.821,10,3.35,27,0.385,29,0.731,30,0.001,31,0.523,32,0.188,33,0.451,35,1.13,36,2.459,95,0.147,100,1.476,101,0.007,103,0,104,0,111,0.883,112,2.736,187,0.637,206,3.459,215,1.407,216,1.257,217,1.312,221,2.16,227,0.705,234,1.104,264,4.237,364,1.7,368,1.727,369,1.509,376,1.008,447,1.827,481,1.692,483,2.101,491,6.186,502,7.116,506,7.505,509,8.336,513,6.593,543,4.748,552,2.844,553,6.111,554,8.198,555,2.291,556,2.344,558,2.114,561,2.363,563,5.593,564,4.747,883,2.884,1016,3.276,1041,2.465,1392,6.805,2303,4.319,2553,4.541,2556,3.56,2644,5.405,2716,6.5,2717,6.705,2723,5.947,2727,2.114,2728,3.855,2783,6.043,2841,2.735,2849,4.036,2850,4.075,2900,6.937,2902,7.538,2904,7.11,2905,7.11,2908,7.505,2910,5.492,2923,9.505,2925,4.075,2928,3.203,2929,2.535,2930,2.363,2937,3.56,2947,5.492,2948,5.492,3195,4.219,3282,6.694,3339,3.412,3405,4.666,3602,5.324,3738,3.691,3743,4.871,3745,4.074,3750,4.074,3977,3.358,3978,3.358,3979,3.358,3981,4.942,3982,4.074,4007,2.769,4008,5.492,4009,2.805,4011,3.358,4012,3.358,4016,3.56,4028,3.855,4037,2.805,4038,6.257,4039,3.855,4040,3.855,4041,3.855,4042,3.855,4043,3.855,4047,3.855,4147,7.673,4150,6.952,4919,4.074,4932,6.285,5689,10.998,7054,8.819,8174,4.517,8175,4.517,8177,5.515,8180,5.515,8181,5.515,8182,6.199,8191,4.407,8192,7.673,8193,8.301,8194,4.407,8195,4.407,8196,4.407,8197,4.407,8198,4.407,8199,4.407,8200,6.799,8201,4.407,8202,4.407,8203,4.407,8204,8.162,8205,4.407,8206,4.407,8207,4.407,8208,4.407,8209,4.407,8210,4.407,8211,4.407,8212,5.492,8213,4.407,8214,4.407,8215,4.407,8216,9.331,8217,4.407,8218,4.407,8219,4.407,8220,4.407,8221,4.407,8222,4.407,8223,4.407,8224,4.407,8225,4.407,8226,4.407,8227,4.407]],["title/injectables/ElementUc.html",[105,0.91,2717,5.493]],["body/injectables/ElementUc.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.984,26,2.858,27,0.434,29,0.824,30,0.001,31,0.59,32,0.152,33,0.509,35,1.161,36,2.257,39,3.14,59,1.747,95,0.155,99,0.936,101,0.009,103,0,104,0,105,1.09,107,1.352,111,2.471,112,2.769,127,1.02,187,0.811,199,3.079,216,2.067,217,1.518,221,2.853,227,0.995,234,1.557,305,2.733,347,1.94,461,1.863,766,2.347,839,2.675,883,2.38,982,2.796,1019,3.258,1345,2.226,1410,3.166,1467,1.79,1798,6.957,1799,3.4,1813,3.995,1814,3.85,1884,6.503,1953,3.919,1982,3.362,1988,7.13,2146,3.786,2303,4.267,2356,4.943,2553,5.129,2557,5.145,2717,6.58,2725,2.541,2757,3.786,2838,6.027,2841,5.952,2849,5.044,2850,5.749,3088,5.801,3091,9.03,3097,8.243,3115,8.747,3126,7.511,3129,4.531,3154,4.906,3195,5.055,3264,6.38,3397,4.906,3572,7.825,3573,9.72,3708,7.825,3714,6.58,3961,3.481,4151,4.531,4152,8.39,4154,4.393,4159,7.748,4176,6.379,4179,5.186,4183,4.906,4184,3.786,5604,6.889,5692,8.867,8192,8.867,8228,5.61,8229,8.146,8230,5.61,8231,5.61,8232,5.61,8233,5.61,8234,8.146,8235,5.61,8236,4.906,8237,5.186,8238,5.61,8239,5.61,8240,5.61,8241,5.61,8242,5.61,8243,5.186,8244,4.531,8245,5.61,8246,5.61,8247,8.146,8248,5.61,8249,5.61,8250,5.61,8251,5.186,8252,4.274,8253,5.61,8254,5.61]],["title/modules/EncryptionModule.html",[425,1.812,8255,4.943]],["body/modules/EncryptionModule.html",[0,0.287,3,0.02,4,0.02,5,0.01,30,0.001,47,0.602,95,0.166,101,0.014,103,0.001,104,0.001,187,1.221,217,1.099,227,0.875,234,1.371,425,3.16,427,3.05,428,3.281,429,3.378,430,3.364,431,3.35,432,3.963,433,4.07,438,6.182,442,4.31,443,3.308,444,3.229,449,4.273,687,3.599,789,8.887,801,4.904,836,6.256,837,7.67,839,5.136,1467,2.695,2035,5.821,2356,5.301,2357,6.011,8255,9.592,8256,8.443,8257,8.443,8258,8.443,8259,8.817,8260,10.374,8261,7.804,8262,7.384,8263,8.443,8264,11.86,8265,8.443,8266,8.443,8267,8.443,8268,7.804,8269,8.443]],["title/classes/EntityNotFoundError.html",[0,0.232,510,4.943]],["body/classes/EntityNotFoundError.html",[0,0.263,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,8,1.227,27,0.541,29,0.604,30,0.001,31,0.432,32,0.185,33,0.549,35,0.934,47,0.918,55,1.662,59,2.403,95,0.13,101,0.013,103,0.001,104,0.001,127,0.966,165,0.796,187,1.116,204,4.096,216,2.516,364,2.285,380,2.159,404,1.831,406,2.509,510,7.385,511,5.133,564,2.828,596,3.929,885,5.739,1013,5.529,1016,2.709,1142,5.261,1180,5.195,1216,4.451,1395,8.266,1396,7.48,1397,4.042,1398,7.23,1402,4.978,1403,4.277,1404,4.978,1405,4.978,1406,4.978,1407,4.978,1408,4.978,1409,4.624,1410,4.354,1411,6.041,1412,6.461,1416,4.847,3801,7.132,8270,10.159,8271,7.715,8272,7.715,8273,7.715,8274,7.715]],["title/classes/ErrorLoggable.html",[0,0.232,8275,5.493]],["body/classes/ErrorLoggable.html",[0,0.335,2,0.654,3,0.014,4,0.014,5,0.007,7,0.089,8,1.016,27,0.488,29,0.842,30,0.001,31,0.602,32,0.166,33,0.52,35,1.19,47,0.766,95,0.152,101,0.01,103,0,104,0,111,2.643,127,0.734,144,3.128,165,0.659,187,0.848,204,4.473,214,2.651,215,1.871,216,1.987,217,1.48,227,1.228,240,3.608,319,1.752,347,1.701,369,1.866,374,2.684,468,4.736,503,6.587,535,3.143,558,2.813,661,2.464,704,2.903,722,2.614,731,3.323,806,2.387,953,3.837,1180,4.232,1187,4.01,1188,3.963,1189,3.963,1190,4.192,1191,3.195,1192,4.024,1193,3.957,1216,3.295,1267,3.895,1268,3.595,1345,3.337,1354,4.175,1392,7.677,1401,7.356,1414,3.279,1415,3.595,1464,4.529,1465,5.075,1469,5.32,1905,3.553,2222,4.175,2362,3.372,2702,3.789,3831,4.736,4662,4.91,7773,4.467,8275,6.793,8276,5.863,8277,9.834,8278,8.41,8279,8.41,8280,8.41,8281,5.863,8282,5.863,8283,9.834,8284,5.863,8285,8.41,8286,5.863,8287,5.863,8288,5.585,8289,5.807,8290,8.41,8291,5.863,8292,8.41,8293,5.863,8294,5.863,8295,5.863,8296,5.863,8297,8.41,8298,5.863,8299,5.863,8300,10.744,8301,5.863,8302,5.863,8303,4.467,8304,5.863,8305,8.41,8306,5.863,8307,5.863,8308,8.41,8309,5.863,8310,4.096,8311,5.42,8312,4.358,8313,4.91,8314,5.863,8315,5.863,8316,5.863,8317,5.863,8318,5.863,8319,5.863,8320,8.41,8321,5.863,8322,5.863,8323,5.863,8324,5.863]],["title/injectables/ErrorLogger.html",[105,0.91,8325,5.694]],["body/injectables/ErrorLogger.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,27,0.513,29,0.975,30,0.001,31,0.697,32,0.169,33,0.602,35,1.447,72,3.41,95,0.16,101,0.013,103,0.001,104,0.001,105,1.337,107,1.815,111,1.509,127,0.943,148,4.079,187,1.089,204,3.391,216,1.392,217,1.556,336,1.801,427,2.719,574,3.305,839,3.59,1216,4.684,1464,6.477,2356,4.609,2969,5.081,6426,6.081,7803,4.857,8325,9.398,8326,12.791,8327,7.528,8328,9.995,8329,9.995,8330,9.995,8331,10.456,8332,7.528,8333,9.995,8334,7.528,8335,9.995,8336,7.528,8337,9.995,8338,7.528,8339,9.995,8340,7.528,8341,6.584,8342,7.827,8343,6.081,8344,6.959,8345,6.584,8346,11.052,8347,7.528,8348,7.528,8349,7.528,8350,7.528]],["title/classes/ErrorMapper.html",[0,0.232,8351,5.947]],["body/classes/ErrorMapper.html",[0,0.295,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.322,27,0.357,29,0.678,30,0.001,31,0.485,32,0.118,33,0.419,35,1.048,95,0.154,101,0.014,103,0.001,104,0.001,187,1.252,204,4.507,227,0.898,234,2.047,502,5.374,506,5.668,627,3.683,1353,6.087,1354,6.167,1355,6.782,1384,7.575,2643,7.324,2783,7.558,8351,9.574,8352,8.66,8353,11.095,8354,8.66,8355,10.186,8356,8.66,8357,10.946,8358,5.754,8359,12.002,8360,8.66,8361,8.66,8362,6.782,8363,8.66,8364,8.66]],["title/modules/ErrorModule.html",[425,1.812,6426,5.493]],["body/modules/ErrorModule.html",[0,0.308,3,0.021,4,0.021,5,0.011,30,0.001,95,0.165,101,0.015,103,0.001,104,0.001,187,1.309,319,3.363,379,2.051,425,3.263,427,3.269,428,3.517,429,3.621,430,3.606,431,3.59,432,4.14,433,3.42,438,6.292,442,4.502,443,3.546,444,3.461,449,4.464,836,5.256,2356,3.717,3281,7.475,3492,6.671,6426,10.849,6439,7.861,6443,10.728,7810,6.899,8365,9.049,8366,9.049,8367,9.049,8368,10.401,8369,6.819,8370,6.895,8371,9.423,8372,9.049,8373,9.049,8374,6.895]],["title/classes/ErrorResponse.html",[0,0.232,1409,4.075]],["body/classes/ErrorResponse.html",[0,0.239,2,0.782,3,0.017,4,0.017,5,0.008,7,0.106,27,0.517,29,0.55,30,0.001,31,0.393,32,0.189,33,0.524,47,0.987,55,2.617,59,2.185,95,0.09,101,0.012,103,0.001,104,0.001,127,1.194,165,0.747,187,1.015,204,4.426,216,2.559,309,5.484,379,2.454,394,5.431,565,5.792,577,5.381,1016,3.347,1142,6.125,1180,5.229,1216,5.023,1396,7.534,1397,4.293,1409,5.714,1410,3.96,1421,8.446,1422,7.087,1423,6.24,1430,6.817,1431,6.619,1433,5.846,1435,8.339,1437,8.814,1438,6.152,1439,8.814,1539,6.137,2578,3.128,2747,3.621,3848,6.486,3849,5.346,3850,6.486,8375,7.016,8376,7.016,8377,9.534,8378,7.016,8379,7.016,8380,7.016,8381,7.016]],["title/classes/ErrorUtils.html",[0,0.232,1354,4.842]],["body/classes/ErrorUtils.html",[0,0.255,2,0.835,3,0.018,4,0.018,5,0.009,7,0.113,8,1.203,27,0.492,29,0.934,30,0.001,31,0.668,32,0.135,33,0.577,35,1.444,47,0.798,59,2.332,95,0.144,101,0.012,103,0.001,104,0.001,145,2.522,187,1.083,204,4.783,227,1.237,234,1.215,334,0.804,371,2.064,379,2.703,558,3.591,627,4.216,806,4.856,1345,4.733,1354,7.091,1395,7.314,3708,8.867,3837,5.862,8382,7.486,8383,9.958,8384,9.958,8385,12.42,8386,9.958,8387,9.958,8388,7.486,8389,9.039,8390,9.958,8391,7.486,8392,9.958,8393,7.486,8394,9.99,8395,9.958,8396,7.486,8397,7.486,8398,11.928,8399,7.486]],["title/injectables/EtherpadService.html",[105,0.91,8400,5.947]],["body/injectables/EtherpadService.html",[0,0.272,3,0.019,4,0.019,5,0.01,7,0.12,8,1.254,26,2.592,27,0.428,29,0.813,30,0.001,31,0.581,32,0.157,33,0.502,35,0.965,36,2.226,39,2.795,47,0.944,94,3.873,95,0.157,101,0.017,103,0.001,104,0.001,105,1.389,107,1.922,111,1.599,112,2.544,127,0.999,163,3.195,187,1.153,204,3.522,215,2.545,216,1.475,217,1.502,221,1.846,227,1.077,234,1.295,371,2.199,766,3.336,784,4.31,883,3.383,1369,4.346,1397,4.094,1467,2.545,2356,4.742,2357,5.569,2545,4.242,2633,5.866,8400,9.08,8401,7.975,8402,10.382,8403,6.975,8404,9.448,8405,7.975,8406,10.382,8407,7.975,8408,7.372,8409,6.975,8410,10.382,8411,7.975,8412,7.975,8413,7.975,8414,7.975,8415,7.372,8416,7.975,8417,7.372,8418,5.679]],["title/classes/ExternalGroupDto.html",[0,0.232,8419,5.181]],["body/classes/ExternalGroupDto.html",[0,0.279,2,0.913,3,0.019,4,0.019,5,0.01,7,0.124,27,0.556,29,0.641,30,0.001,31,0.692,32,0.188,33,0.565,47,0.933,83,3.778,95,0.136,101,0.014,103,0.001,104,0.001,127,1.025,165,0.827,200,2.549,405,2.813,595,2.741,854,5.865,1166,3.927,2095,3.247,2578,3.649,3090,5.055,4281,3.575,4333,4.906,6871,4.853,6872,5.019,8178,7.166,8419,9.739,8420,11.417,8421,7.567,8422,10.223,8423,10.559,8424,8.185,8425,8.185,8426,8.185,8427,8.905,8428,8.185,8429,8.185,8430,9.153,8431,8.185,8432,6.855,8433,7.567,8434,6.41,8435,7.159,8436,7.159,8437,7.159,8438,7.159,8439,7.159,8440,8.185,8441,8.185]],["title/classes/ExternalGroupUserDto.html",[0,0.232,8430,5.324]],["body/classes/ExternalGroupUserDto.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.515,29,0.742,30,0.001,31,0.531,32,0.17,33,0.458,47,0.825,95,0.122,99,1.581,101,0.016,103,0.001,104,0.001,127,1.187,165,0.907,405,3.084,595,3.172,1166,6.245,4571,7.401,8420,10.901,8430,10.454,8442,8.759,8443,8.303,8444,10.7,8445,8.759,8446,8.287,8447,9.475,8448,8.759,8449,8.759]],["title/classes/ExternalSchoolDto.html",[0,0.232,8450,5.055]],["body/classes/ExternalSchoolDto.html",[0,0.318,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.534,29,0.732,30,0.001,31,0.726,32,0.176,33,0.601,47,0.965,101,0.016,103,0.001,104,0.001,127,1.17,165,0.899,405,3.058,595,3.128,854,6.233,2095,3.707,4281,4.081,6871,5.54,6872,5.729,8420,11.136,8450,9.885,8451,9.343,8452,7.804,8453,11.476,8454,9.343,8455,9.343,8456,6.945,8457,7.547]],["title/classes/ExternalSource.html",[0,0.232,8458,4.589]],["body/classes/ExternalSource.html",[0,0.33,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,27,0.52,29,0.758,30,0.001,31,0.542,32,0.171,33,0.468,47,0.935,48,5.945,101,0.016,103,0.001,104,0.001,127,1.212,165,0.918,405,3.125,417,7.036,418,7.58,595,3.241,854,6.331,6871,5.739,6872,5.935,8458,9.064,8459,13.113,8460,9.68,8461,11.726,8462,9.68]],["title/classes/ExternalSourceEntity.html",[0,0.232,8463,5.324]],["body/classes/ExternalSourceEntity.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,27,0.503,29,0.702,30,0.001,31,0.502,32,0.166,33,0.434,47,0.87,95,0.144,96,2.453,101,0.019,103,0.001,104,0.001,127,1.123,165,0.876,240,3.869,334,0.964,364,2.038,398,2.642,405,2.981,595,3.003,854,6.408,2574,5.775,3104,5.785,4989,5.125,6751,6.053,6871,5.318,6872,5.499,8463,8.762,8464,11.805,8465,8.291,8466,11.169,8467,11.189,8468,8.969,8469,7.102,8470,6.667,8471,7.023,8472,7.511]],["title/interfaces/ExternalSourceEntityProps.html",[334,0.731,8466,5.947]],["body/interfaces/ExternalSourceEntityProps.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.157,47,0.926,95,0.148,96,2.574,101,0.019,103,0.001,104,0.001,165,0.903,240,3.656,334,1.011,336,2.252,398,2.772,405,2.507,854,6.686,2574,5.948,3104,6.036,4989,5.278,6871,5.579,6872,5.769,8463,7.368,8464,8.698,8465,8.698,8466,10.898,8469,7.328,8470,6.994,8471,7.368,8472,7.879]],["title/classes/ExternalSourceResponse.html",[0,0.232,8473,5.694]],["body/classes/ExternalSourceResponse.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.513,29,0.735,30,0.001,31,0.526,32,0.169,33,0.454,47,0.925,48,5.865,95,0.121,101,0.016,103,0.001,104,0.001,127,1.176,165,0.901,364,2.096,376,2.147,405,3.067,417,6.823,418,7.35,467,3.493,595,3.143,854,6.246,6871,5.566,6872,5.755,8473,11.151,8474,12.975,8475,9.387,8476,11.509,8477,9.387]],["title/classes/ExternalTool.html",[0,0.232,158,3.324]],["body/classes/ExternalTool.html",[0,0.198,2,0.65,3,0.014,4,0.014,5,0.007,7,0.088,8,1.012,27,0.552,29,0.953,30,0.001,31,0.682,32,0.181,33,0.642,34,1.667,35,1.187,47,0.955,55,2.445,95,0.146,101,0.014,103,0,104,0,127,0.73,136,6.821,150,3.71,154,5.809,158,4.094,165,0.656,194,3.815,198,2.831,214,2.64,227,1.016,236,6.287,334,0.626,347,2.39,404,1.509,405,2.232,595,1.952,596,1.778,627,3.626,1872,6.224,2043,4.708,2044,4.881,2095,2.313,2558,7.789,2559,6.065,2562,9.049,2565,3.231,4281,2.546,5007,5.791,5352,5.751,5696,4.564,5700,8.164,5702,5.388,5708,4.237,5710,4.564,5711,4.151,5712,4.441,5719,3.872,5720,4.237,5736,6.047,5752,3.815,5755,6.558,6196,3.15,6467,4.564,7135,6.422,7136,3.662,7168,4.072,7169,4.333,7172,4.333,7173,4.708,7268,8.391,7269,8.589,7270,8.109,7289,3.934,7293,4,7316,7.013,8478,11.709,8479,8.375,8480,8.375,8481,8.375,8482,5.829,8483,5.829,8484,5.829,8485,5.829,8486,5.829,8487,5.829,8488,5.829,8489,5.829,8490,7.742,8491,5.829,8492,7.742,8493,5.829,8494,5.098,8495,5.388,8496,5.098,8497,7.742]],["title/classes/ExternalToolConfig.html",[0,0.232,2562,5.055]],["body/classes/ExternalToolConfig.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,9,4.413,27,0.513,29,0.734,30,0.001,31,0.525,32,0.184,33,0.453,47,0.819,95,0.12,101,0.016,103,0.001,104,0.001,127,1.173,165,0.9,198,4.549,209,4.285,238,6.954,405,3.062,595,3.136,2559,5.873,2561,7.843,2562,9.891,2563,8.657,2565,6.893,2569,6.669,2578,4.175,2579,6.669,4333,5.613,8498,12.965,8499,11.492]],["title/classes/ExternalToolConfigCreateParams.html",[0,0.232,2583,4.943]],["body/classes/ExternalToolConfigCreateParams.html",[0,0.334,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,9,6.524,27,0.487,30,0.001,32,0.183,47,0.842,95,0.126,101,0.016,103,0.001,104,0.001,165,0.925,198,4.759,209,4.191,238,7.093,2559,5.745,2565,7.03,2582,9.057,2583,8.587,8500,12.682,8501,9.798,8502,9.798]],["title/classes/ExternalToolConfigEntity.html",[0,0.232,2575,5.493]],["body/classes/ExternalToolConfigEntity.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,9,5.251,27,0.501,29,0.698,30,0.001,31,0.499,32,0.184,33,0.431,47,0.795,95,0.143,96,2.437,101,0.015,103,0.001,104,0.001,127,1.116,165,0.873,198,4.327,209,4.21,238,6.8,240,3.857,364,2.03,369,1.977,398,2.625,405,2.969,595,2.983,1031,3.81,2559,5.771,2565,6.74,2569,6.344,2572,7.461,2574,5.751,2575,10.594,2578,3.972,2579,6.344,3432,6.344,4333,5.34,8503,12.739,8504,11.143,8505,8.909]],["title/classes/ExternalToolConfigResponse.html",[0,0.232,2593,5.493]],["body/classes/ExternalToolConfigResponse.html",[0,0.334,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,9,6.524,27,0.487,30,0.001,32,0.183,47,0.842,95,0.126,101,0.016,103,0.001,104,0.001,165,0.925,198,4.759,209,4.191,238,7.093,2559,5.745,2565,7.03,2592,7.914,2593,9.542,8506,12.682,8507,9.798,8508,9.798]],["title/injectables/ExternalToolConfigurationService.html",[105,0.91,8509,5.493]],["body/injectables/ExternalToolConfigurationService.html",[0,0.192,3,0.013,4,0.013,5,0.007,7,0.085,8,0.986,26,2.235,27,0.461,29,0.877,30,0.001,31,0.627,32,0.152,33,0.541,35,1.276,95,0.161,99,0.939,101,0.009,103,0,104,0,105,1.092,107,1.356,111,1.128,116,4.074,127,0.705,136,5.196,139,7.365,140,6.161,145,1.424,148,1.731,154,2.576,158,6.69,167,3.004,187,0.813,192,1.676,194,3.682,195,7.114,198,2.732,199,2.126,200,2.542,201,4.153,209,4.156,216,1.04,217,1.605,227,1.249,276,6.594,277,4.254,290,3.301,291,5.2,347,2.132,369,1.248,839,2.682,1014,5.026,1744,3.93,1904,2.353,2559,5.288,5966,3.93,8509,6.594,8510,8.894,8511,5.2,8512,9.607,8513,9.607,8514,8.163,8515,8.163,8516,5.2,8517,8.03,8518,5.625,8519,7.32,8520,5.625,8521,10.346,8522,5.625,8523,7.76,8524,10.331,8525,5.625,8526,8.881,8527,5.625,8528,5.813,8529,8.163,8530,8.881,8531,5.625,8532,8.163,8533,5.625,8534,5.625,8535,5.625,8536,5.625,8537,5.625,8538,9.219,8539,5.625,8540,6.836,8541,5.625,8542,5.625,8543,5.625,8544,8.163,8545,5.625,8546,4.711,8547,5.625,8548,5.625,8549,5.625,8550,4.92,8551,5.625,8552,5.625,8553,11.192,8554,5.625,8555,5.625,8556,5.625]],["title/injectables/ExternalToolConfigurationUc.html",[105,0.91,8557,5.694]],["body/injectables/ExternalToolConfigurationUc.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.756,26,2.929,27,0.44,29,0.836,30,0.001,31,0.598,32,0.15,33,0.516,34,0.674,35,1.234,36,2.593,39,3.202,95,0.16,99,0.661,100,1.326,101,0.007,103,0,104,0,105,0.837,107,0.955,111,2.425,112,2.842,116,3.767,127,0.784,139,6.972,140,6.009,158,5.565,187,0.573,192,1.864,195,2.673,197,5.533,198,1.924,199,4.908,200,2.743,201,3.183,209,4.107,216,1.885,217,1.651,221,2.876,227,0.913,234,1.016,279,4.547,281,4.65,284,4.19,305,1.782,766,1.657,839,1.889,843,2.76,1014,3.697,1268,3.835,1795,6.428,1801,2.374,1904,1.657,1953,2.767,2559,5.011,2644,2.123,2725,1.794,3010,2.215,3129,3.199,3267,4.925,4205,3.728,4661,3.301,4773,5.278,5737,5.635,5760,5.533,5815,6.984,5966,2.767,6056,8.223,6057,7.09,6064,6.487,6073,3.101,6074,3.882,6077,2.879,6082,5.471,6086,3.199,6095,5.783,6100,6.249,6112,3.661,8509,8.62,8521,5.783,8523,6.262,8524,5.239,8526,7.167,8528,4.454,8530,5.783,8538,5.471,8550,3.464,8557,5.239,8558,10.226,8559,3.661,8560,7.167,8561,6.781,8562,7.167,8563,5.783,8564,7.752,8565,7.752,8566,3.101,8567,7.933,8568,3.961,8569,3.661,8570,3.961,8571,3.464,8572,3.961,8573,3.961,8574,3.961,8575,6.255,8576,3.661,8577,3.961,8578,3.961,8579,3.961,8580,3.961,8581,3.661,8582,3.661,8583,3.661,8584,6.255,8585,6.255,8586,4.766,8587,5.783,8588,3.661,8589,3.961,8590,3.961,8591,6.255,8592,7.752,8593,3.199,8594,5.783,8595,5.783,8596,5.783,8597,3.961,8598,3.961,8599,6.255,8600,3.961,8601,3.961,8602,6.255,8603,3.961,8604,6.255,8605,3.961,8606,3.464,8607,5.783,8608,4.547,8609,5.783,8610,5.783,8611,5.471]],["title/classes/ExternalToolContentBody.html",[0,0.232,5643,4.517]],["body/classes/ExternalToolContentBody.html",[0,0.457,2,0.66,3,0.014,4,0.014,5,0.007,7,0.089,9,2.791,27,0.244,30,0.001,31,0.64,32,0.186,33,0.41,47,0.847,83,1.812,95,0.139,99,0.988,101,0.022,103,0,104,0,144,3.141,150,2.051,163,1.823,165,0.664,240,1.879,364,1.079,369,1.314,374,1.891,375,3.767,376,1.355,379,1.92,404,2.058,467,3.599,470,4.777,471,4.009,524,3.407,999,5.393,1000,3.449,1031,1.856,1044,2.842,1770,3.44,2303,4.629,2553,4.216,2848,2.859,2849,2.562,2889,2.933,3251,3.512,3253,3.512,3259,5.104,3262,3.035,3267,5.531,4009,3.77,4037,3.77,4038,7.086,4096,5.787,5562,6.382,5564,6.382,5566,6.382,5568,6.382,5570,6.382,5604,3.877,5643,7.171,5644,6.571,5645,6.571,5646,6.571,5647,6.571,5835,3.722,5836,6.841,6979,3.935,7039,3.77,8169,8.255,8170,5.814,8171,4.065,8174,6.571,8175,6.571,8176,4.065,8177,6.571,8178,3.632,8179,3.998,8180,6.571,8181,6.571,8182,3.935,8183,3.935,8184,3.935,8185,3.935,8186,4.065,8187,4.065,8188,4.065,8189,4.065,8190,4.065,8612,5.923,8613,5.923]],["title/classes/ExternalToolCreateParams.html",[0,0.232,8614,5.694]],["body/classes/ExternalToolCreateParams.html",[0,0.35,2,0.709,3,0.015,4,0.015,5,0.008,7,0.096,27,0.515,29,0.806,30,0.001,31,0.681,32,0.182,33,0.588,47,0.867,95,0.156,101,0.011,103,0.001,104,0.001,144,2.829,145,1.611,150,3.561,154,5.104,165,0.698,198,3.09,209,4.211,236,6.035,240,2.018,347,2.254,364,2.274,369,2.283,373,5.514,374,2.031,375,4.245,376,1.455,467,3.078,470,4.662,471,4.518,731,3.521,1431,3.625,2384,5.341,2450,3.625,2559,5.772,2565,3.527,2568,4.445,2580,9.477,2583,6.478,2584,4.445,3047,6.346,4008,5.14,4009,4.05,4037,4.05,4038,6.383,5477,5.673,5736,5.805,5825,6.478,5828,5.328,5829,5.328,5830,5.328,5835,3.998,5836,5.753,7135,6.165,7289,4.294,7293,4.367,7322,9.477,7330,6.79,8183,5.921,8184,4.227,8185,5.921,8614,7.464,8615,10.292,8616,5.14,8617,9.333,8618,9.826,8619,5.565,8620,5.882,8621,6.363,8622,6.363,8623,5.882,8624,5.565,8625,6.363,8626,6.363,8627,6.363,8628,5.882,8629,6.363,8630,5.882,8631,6.363,8632,6.363]],["title/classes/ExternalToolElement.html",[0,0.232,2826,4.45]],["body/classes/ExternalToolElement.html",[0,0.224,2,0.734,3,0.016,4,0.016,5,0.008,7,0.099,8,1.102,27,0.545,29,0.963,30,0.001,31,0.688,32,0.175,33,0.594,35,1.555,36,1.956,47,0.847,55,1.965,59,2.05,95,0.117,101,0.017,103,0.001,104,0.001,112,2.308,116,2.842,144,2.509,145,2.864,148,3.656,165,0.715,208,2.459,209,3.461,221,1.523,227,1.086,334,0.707,347,2.118,363,5.808,371,1.815,404,1.887,595,3.055,596,3.919,661,3.834,687,2.805,692,3.409,728,2.517,806,2.679,884,4.299,1345,2.611,1790,3.852,1793,6.758,1865,4.156,2557,6.008,2627,2.766,2749,7.906,2752,6.497,2753,6.497,2754,6.497,2755,7.513,2756,6.497,2758,4.372,2759,5.594,2760,6.636,2762,6.374,2763,5.594,2764,6.504,2766,4.598,2767,4.815,2769,6.58,2770,4.598,2774,4.598,2776,4.372,2804,5.53,2826,7.402,3267,6.325,3945,4.784,3946,4.784,3947,4.784,3956,4.135,8633,9.681,8634,4.686,8635,6.581,8636,6.084,8637,6.581,8638,6.581,8639,5.756,8640,6.581,8641,5.756,8642,8.434,8643,6.084,8644,6.084,8645,6.084,8646,5.756,8647,6.084]],["title/classes/ExternalToolElementContent.html",[0,0.232,8648,5.694]],["body/classes/ExternalToolElementContent.html",[0,0.364,2,0.93,3,0.02,4,0.02,5,0.01,7,0.126,27,0.441,29,0.653,30,0.001,31,0.467,32,0.169,33,0.403,34,1.418,47,0.917,95,0.151,99,1.391,101,0.018,103,0.001,104,0.001,127,1.044,165,0.837,167,3.932,209,3.897,364,1.519,368,4.186,369,2.76,370,3.52,376,1.907,405,3.142,467,3.451,475,4.076,595,2.792,618,3.41,619,4.622,1011,4.213,1031,2.613,2303,3.38,2578,3.717,2884,4.435,2885,4.435,2889,4.129,3267,6.594,3436,5.825,3448,5.112,3694,4.944,3698,6.206,3702,5.539,3704,5.539,4011,8.141,4096,6.321,4333,4.997,5570,5.38,6866,6.352,8648,11.015,8649,10.9,8650,6.735,8651,8.338,8652,7.708,8653,7.708,8654,7.708]],["title/classes/ExternalToolElementContentBody.html",[0,0.232,8181,4.517]],["body/classes/ExternalToolElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.314,5566,6.314,5568,6.314,5570,6.905,5604,3.804,5643,7.109,5644,6.502,5645,6.502,5646,6.502,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,6.502,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,6.502,8181,7.109,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,8656,5.812,8657,5.812]],["title/entities/ExternalToolElementNodeEntity.html",[380,1.445,3177,5.324]],["body/entities/ExternalToolElementNodeEntity.html",[0,0.294,3,0.02,4,0.02,5,0.01,7,0.13,27,0.356,30,0.001,32,0.117,33,0.528,95,0.167,96,2.359,101,0.018,103,0.001,104,0.001,140,6.645,165,0.855,200,3.4,208,3.221,209,3.608,217,1.122,227,0.894,334,0.926,364,1.571,369,2.423,370,2.841,380,2.32,381,2.868,398,2.541,404,1.967,405,2.298,617,4.78,1790,4.609,2553,4.653,2557,5.336,2577,4.867,2578,3.845,3143,5.718,3155,6.543,3177,8.548,3222,5.287,3247,9.548,3391,5.644,3598,6.693,3619,5.351,4059,5.489,4061,5.489,4989,5,5768,9.152,5769,7.222,5800,5.729,8658,10.091,8659,8.623,8660,7.542,8661,7.972,8662,9.548,8663,7.972,8664,7.972,8665,7.972]],["title/interfaces/ExternalToolElementNodeEntityProps.html",[334,0.731,8662,5.947]],["body/interfaces/ExternalToolElementNodeEntityProps.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.118,33,0.531,95,0.167,96,2.384,101,0.018,103,0.001,104,0.001,140,6.877,165,0.861,200,3.423,208,3.256,209,2.881,217,1.134,227,0.904,334,0.936,336,2.086,369,1.934,370,2.871,380,2.335,398,2.568,404,2.169,405,2.323,617,4.832,1790,4.641,2553,3.715,2557,5.372,2577,4.919,2578,3.886,3143,5.757,3155,6.587,3177,6.826,3222,5.344,3247,9.613,3391,5.705,3598,7.381,3619,5.409,4059,5.548,4061,5.548,4989,5.034,5768,9.472,5769,7.3,5800,5.791,8658,8.058,8661,8.058,8662,10.529,8663,8.058,8664,8.058,8665,8.058]],["title/interfaces/ExternalToolElementProps.html",[334,0.731,8646,5.947]],["body/interfaces/ExternalToolElementProps.html",[0,0.298,3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.15,33,0.533,36,1.877,47,0.93,95,0.142,101,0.02,103,0.001,104,0.001,112,1.929,144,2.408,145,2.791,148,2.694,165,0.863,208,3.27,209,2.893,221,2.026,227,1.251,334,0.941,336,2.095,347,1.771,371,2.414,404,2.173,687,3.732,728,3.348,806,3.564,1345,3.473,1865,5.02,2627,3.679,2749,6.679,2755,5.816,2759,5.368,2760,6.466,2763,5.368,2764,6.339,2804,7.31,2826,7.894,3267,7.297,3956,5.501,8633,8.093,8634,6.234,8642,10.188,8643,8.093,8644,8.093,8645,8.093,8646,9.639,8647,8.093]],["title/classes/ExternalToolElementResponse.html",[0,0.232,4011,5.181]],["body/classes/ExternalToolElementResponse.html",[0,0.348,2,0.869,3,0.018,4,0.018,5,0.009,7,0.118,27,0.519,29,0.61,30,0.001,31,0.436,32,0.184,33,0.377,34,1.941,47,0.864,95,0.147,99,1.3,101,0.017,103,0.001,104,0.001,127,0.976,165,0.801,167,2.866,209,4.268,364,2.207,368,3.052,369,2.269,370,2.566,376,1.782,405,3.041,467,3.503,475,3.808,595,2.608,618,3.185,619,4.318,1031,2.441,2303,4.626,2578,3.473,2883,5.098,2884,5.438,2885,5.438,2888,4.721,2889,5.063,3267,4.357,3436,5.442,3448,4.776,3694,6.767,3698,6.629,3702,5.175,3704,5.175,4011,9.587,4096,6.746,4333,4.669,5570,6.597,6866,5.935,8648,10.147,8649,11.938,8652,7.201,8653,7.201,8654,7.201,8666,7.201,8667,7.79,8668,7.201,8669,7.79,8670,7.201]],["title/classes/ExternalToolElementResponseMapper.html",[0,0.232,5582,5.947]],["body/classes/ExternalToolElementResponseMapper.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,8,1.221,27,0.496,29,0.792,30,0.001,31,0.566,32,0.164,33,0.489,34,1.302,35,1.37,95,0.145,99,1.278,100,2.564,101,0.013,103,0.001,104,0.001,111,2.269,116,2.385,165,0.792,167,2.817,209,4.135,214,3.187,217,0.996,227,1.173,234,1.954,347,2.045,591,3.328,627,3.944,806,3.117,974,4.54,975,5.604,978,6.185,980,5.833,1750,4.484,2051,4.362,2303,3.104,2547,8.412,2550,7.915,2551,7.915,2553,5.671,2554,7.701,2826,8.707,3267,4.282,3694,4.54,3698,5.871,3715,5.452,4011,9.17,4096,4.105,5183,7.11,5570,4.94,5581,5.995,5582,11.463,8648,8.465,8671,12.512,8672,9.17,8673,6.697,8674,6.185,8675,11.316,8676,6.185,8677,6.185,8678,6.185,8679,7.656]],["title/entities/ExternalToolEntity.html",[380,1.445,8680,4.842]],["body/entities/ExternalToolEntity.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.097,27,0.536,29,0.812,30,0.001,31,0.581,32,0.179,33,0.618,47,0.912,55,1.939,95,0.144,96,1.766,101,0.015,103,0.001,104,0.001,150,3.589,154,5.136,165,0.705,216,1.193,236,6.082,240,4.217,290,3.787,347,2.268,364,2.366,369,2.919,370,3.885,380,1.913,381,2.147,386,5.905,394,5.128,398,1.902,399,3.571,402,2.675,404,1.163,405,1.72,406,2.099,1431,3.677,1858,4.715,2043,5.214,2044,5.405,2095,2.561,2559,5.959,2570,9.059,4265,6.41,4271,5.649,4272,3.912,4281,2.819,5007,5.602,5719,4.288,5720,4.692,5736,5.85,5752,4.224,5755,5.054,5770,5.214,6196,3.488,6467,5.054,7135,6.212,7136,4.055,7168,4.509,7169,4.798,7172,4.798,7173,5.214,7230,9.059,8496,5.645,8680,6.41,8681,13.155,8682,8.68,8683,9.059,8684,9.059,8685,6.454,8686,6.454,8687,6.454,8688,6.454,8689,6.454,8690,6.454,8691,6.454,8692,6.454,8693,6.454,8694,6.454,8695,7.539,8696,6.454,8697,6.454,8698,6.454]],["title/classes/ExternalToolEntityFactory.html",[0,0.232,8699,6.286]],["body/classes/ExternalToolEntityFactory.html",[0,0.136,2,0.446,3,0.009,4,0.009,5,0.005,7,0.06,8,0.761,27,0.533,29,1.004,30,0.001,31,0.718,32,0.181,33,0.586,34,1.326,35,1.382,47,0.791,55,2.306,59,2.999,95,0.114,101,0.013,103,0,104,0,127,0.501,138,2.752,144,3.052,146,2.743,148,1.23,150,1.384,154,4.053,165,0.493,185,4.891,195,2.697,196,2.846,200,1.245,209,3.539,216,1.165,217,1.394,227,1.11,234,1.437,236,2.345,238,4.95,277,1.613,279,2.905,290,2.345,319,3.494,326,2.971,331,2.544,359,2.196,366,2.235,369,0.887,371,2.15,379,2.005,380,2.046,381,2.095,404,1.135,461,0.914,471,1.62,538,2.838,596,3.751,627,1.933,660,6.985,661,4.299,662,4.995,665,3.555,666,4.995,667,5.412,668,3.555,669,3.555,670,3.555,671,3.492,672,3.995,673,4.401,674,6.424,675,5.338,676,6.803,677,2.276,682,2.255,683,3.555,684,2.276,685,4.671,686,4.823,687,3.772,688,4.535,689,3.523,690,2.255,691,2.125,692,3.822,693,2.196,694,2.16,695,2.255,696,4.601,697,2.276,698,4.323,699,2.255,700,7.173,701,3.923,702,6.262,703,2.276,704,3.861,705,2.255,706,2.276,707,2.255,708,2.276,709,2.255,710,2.544,711,2.369,712,2.255,713,5.671,714,2.276,715,2.255,716,3.555,717,3.325,718,3.555,719,2.276,720,2.178,721,2.16,722,1.782,723,2.255,724,2.255,725,2.255,726,2.276,727,2.276,728,1.528,729,2.255,730,2.276,731,2.489,732,2.255,733,2.276,735,2.321,736,2.369,737,5.772,905,1.664,1618,3.659,2035,3.405,2047,3.694,2565,2.215,2568,5.448,2570,6.299,5007,2.16,5429,4.123,5530,3.14,5698,2.033,5736,2.255,5782,2.578,5799,2.697,7112,2.615,7118,2.578,7120,4.065,7121,3.347,7122,2.578,7133,2.544,7135,2.395,7207,2.971,7230,5.088,7266,2.905,7271,2.48,7289,2.697,7296,3.347,7298,2.846,7299,4.799,7305,3.347,7315,7.411,7317,3.347,8680,4.486,8682,3.347,8683,5.088,8684,5.088,8695,5.275,8699,7.208,8700,10.23,8701,3.996,8702,8.85,8703,8.181,8704,5.823,8705,5.823,8706,3.996,8707,3.996,8708,3.996,8709,5.823,8710,3.996,8711,6.299,8712,3.996,8713,8.85,8714,3.996,8715,3.996,8716,3.228,8717,3.347,8718,3.996,8719,3.996,8720,3.996,8721,3.996]],["title/classes/ExternalToolFactory.html",[0,0.232,7307,5.694]],["body/classes/ExternalToolFactory.html",[0,0.253,2,0.414,3,0.009,4,0.009,5,0.004,7,0.056,8,0.718,27,0.521,29,0.998,30,0.001,31,0.701,32,0.179,33,0.584,34,1.011,35,1.35,47,0.424,55,2.516,59,3.368,95,0.119,101,0.016,103,0,104,0,127,0.465,136,3.785,138,2.597,144,2.974,146,2.55,148,1.144,150,1.287,154,3.404,158,1.816,165,0.466,185,4.99,195,2.508,196,2.646,200,1.157,201,1.891,209,1.228,216,1.099,217,1.572,227,1.211,236,2.18,238,4.157,277,3.75,278,2.831,279,4.322,281,2.762,290,2.18,319,3.232,326,2.762,331,2.365,359,2.073,366,2.078,371,2.343,379,1.684,380,1.579,381,1.978,404,1.531,461,0.85,471,1.506,538,2.679,596,3.685,627,1.825,660,6.639,661,4.165,662,4.795,665,3.356,666,4.795,667,5.125,668,3.356,669,3.356,670,3.356,671,3.296,672,3.809,673,4.195,674,6.286,675,5.151,676,6.618,677,2.117,682,2.097,683,3.356,684,2.117,685,4.484,686,4.63,687,3.621,688,4.353,689,3.326,690,2.097,691,1.976,692,3.703,693,2.042,694,2.008,695,2.097,696,4.417,697,2.117,698,4.12,699,2.097,700,7.553,701,3.823,702,6.103,703,2.117,704,2.944,705,2.097,706,2.117,707,2.097,708,2.117,709,2.097,712,2.097,713,5.495,714,2.117,715,2.097,716,3.356,717,3.138,718,3.356,719,2.117,720,2.025,721,2.008,722,1.657,723,2.097,724,2.097,725,2.097,726,2.117,727,2.117,728,1.421,729,2.097,730,2.117,731,2.349,732,2.097,733,2.117,735,2.158,736,2.203,737,5.092,905,1.547,1431,2.117,1618,3.454,2035,3.214,2558,2.701,2565,2.06,2568,2.596,4313,6.617,4315,2.701,5007,2.008,5530,2.964,5698,1.891,5736,2.097,5793,3.002,5798,2.91,5799,2.508,7112,2.432,7118,2.398,7120,2.398,7122,2.398,7133,2.365,7135,2.227,7261,4.98,7262,8.127,7264,3.25,7266,2.701,7267,4.42,7268,2.91,7269,2.701,7270,2.55,7271,2.306,7272,3.25,7273,3.25,7274,3.25,7275,6.501,7276,4.98,7277,3.25,7278,3.604,7279,3.002,7280,2.701,7281,2.831,7282,3.25,7283,2.762,7284,3.25,7285,3.25,7286,3.112,7287,3.25,7288,3.25,7289,2.508,7290,3.25,7291,3.25,7292,3.25,7293,2.55,7294,3.25,7295,3.25,7296,3.112,7297,3.25,7298,2.646,7299,4.53,7300,5.201,7301,6.501,7302,5.201,7303,5.201,7304,3.25,7305,3.112,7306,2.91,7307,6.225,7308,5.201,7309,3.25,7310,5.201,7311,3.25,7312,5.201,7313,8.669,7314,3.25,7315,7.114,7316,2.432,7317,3.112,7318,3.25,7319,3.25,7320,3.25,7321,3.25,8703,5.497,8705,5.497,8722,5.946,8723,3.716,8724,3.716,8725,3.716,8726,3.716]],["title/classes/ExternalToolIdParams.html",[0,0.232,8727,5.947]],["body/classes/ExternalToolIdParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,209,3.904,364,1.785,368,4.628,369,2.621,370,3.228,371,3.257,374,3.127,376,2.241,467,3.099,478,6.977,1000,4.809,2559,5.351,5735,8.86,5803,8.205,5804,8.569,8615,9.542,8727,10.332]],["title/classes/ExternalToolLogo.html",[0,0.232,8728,5.694]],["body/classes/ExternalToolLogo.html",[0,0.323,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.516,29,0.744,30,0.001,31,0.532,32,0.17,33,0.459,47,0.827,101,0.016,103,0.001,104,0.001,127,1.19,165,0.908,209,4.306,2559,5.902,6275,8.909,6996,9.707,7316,8.188,8478,11.395,8494,8.307,8728,11.38,8729,9.497,8730,11.591,8731,11.591,8732,9.497,8733,9.497,8734,9.497,8735,8.78]],["title/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.232,8736,5.947]],["body/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.229,2,0.751,3,0.016,4,0.016,5,0.008,7,0.102,8,1.12,27,0.533,29,0.528,30,0.001,31,0.377,32,0.182,33,0.513,35,1.122,47,0.883,55,1.451,59,2.098,95,0.136,101,0.011,103,0.001,104,0.001,111,1.35,127,0.844,163,2.073,165,0.726,187,0.974,200,3.302,204,3.875,209,4.091,214,2.923,215,2.15,216,2.498,227,0.698,364,2.181,404,1.671,406,2.19,558,3.231,564,2.469,596,3.776,798,7.176,1013,5.231,1016,2.365,1142,4.91,1180,2.899,1216,4.475,1395,8.039,1396,6.039,1397,3.824,1398,6.748,1402,4.346,1403,3.733,1404,4.346,1405,4.346,1406,4.346,1407,4.346,1408,4.346,1409,4.037,1410,7.292,1416,4.232,1464,5.701,1465,5.471,1467,2.15,1469,5.656,2559,4.803,2681,9.226,5736,5.983,5752,4.408,7316,8.101,8288,5.512,8289,5.73,8736,8.109,8737,8.564,8738,4.287,8739,6.226,8740,4.796,8741,5.891,8742,9.271,8743,7.489,8744,5.64,8745,3.952,8746,4.129,8747,6.735]],["title/classes/ExternalToolLogoFetchedLoggable.html",[0,0.232,8748,5.947]],["body/classes/ExternalToolLogoFetchedLoggable.html",[0,0.304,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,8,1.348,27,0.46,29,0.699,30,0.001,31,0.5,32,0.152,33,0.432,35,1.081,47,0.868,95,0.115,101,0.015,103,0.001,104,0.001,127,1.118,163,2.748,200,2.781,209,4.214,214,3.518,215,2.85,216,1.651,227,0.926,1216,3.499,1460,7.81,1464,5.605,1465,6.281,1467,2.85,1469,6.313,2559,5.514,5736,6.869,5752,5.844,7316,8.344,8288,6.327,8289,6.578,8737,9.831,8739,8.254,8743,10.299,8748,9.759,8749,8.929,8750,8.929,8751,8.929]],["title/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.232,8752,5.947]],["body/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.294,2,0.962,3,0.02,4,0.02,5,0.01,7,0.13,8,1.319,27,0.45,29,0.675,30,0.001,31,0.483,32,0.148,33,0.417,35,1.044,47,0.854,95,0.14,101,0.014,103,0.001,104,0.001,127,1.08,163,2.654,187,1.247,200,2.686,209,4.161,214,3.442,215,2.752,216,1.595,227,0.894,404,1.967,406,2.805,511,6.361,1216,3.379,1464,6.111,1465,6.182,1467,2.752,1469,6.234,2559,5.426,2644,6.422,5735,8.368,5747,7.222,7316,8.24,8288,6.227,8289,6.474,8737,9.675,8738,5.489,8745,5.06,8746,5.287,8752,9.548,8753,7.972,8754,7.222,8755,7.222,8756,8.623]],["title/classes/ExternalToolLogoService.html",[0,0.232,8567,5.055]],["body/classes/ExternalToolLogoService.html",[0,0.162,2,0.531,3,0.011,4,0.011,5,0.006,7,0.072,8,0.871,26,2.059,27,0.47,29,0.894,30,0.001,31,0.639,32,0.155,33,0.552,34,1.227,35,1.33,36,2.355,47,0.921,95,0.16,99,0.795,101,0.008,103,0,104,0,111,2.459,112,2.652,127,0.903,145,2.46,148,2.22,154,2.181,158,6.093,187,0.689,200,1.483,204,2.954,209,4.119,216,1.796,217,1.68,221,2.015,227,1.219,234,1.908,247,1.865,305,3.129,696,5.71,784,2.573,806,3.545,839,2.27,1016,1.672,1154,7.971,1155,2.765,1156,5.495,1157,3.116,1180,2.049,1268,2.919,1369,2.595,1464,2.193,1467,1.52,1904,1.992,2022,5.136,2033,3.326,2356,4.687,2559,5.324,3708,5.362,5736,2.687,6100,6.996,6106,3.846,6275,6.917,6996,9.841,7316,6.358,7453,3.539,8510,8.953,8516,4.401,8517,7.401,8519,6.634,8567,5.362,8593,3.846,8682,6.04,8728,8.741,8736,4.164,8748,4.164,8752,4.164,8757,4.761,8758,7.213,8759,7.213,8760,7.213,8761,7.213,8762,7.213,8763,7.213,8764,4.761,8765,7.213,8766,4.761,8767,7.213,8768,4.761,8769,4.761,8770,7.213,8771,4.761,8772,7.213,8773,4.761,8774,7.213,8775,4.761,8776,2.595,8777,7.213,8778,4.761,8779,4.401,8780,6.309,8781,9.979,8782,4.761,8783,4.761,8784,7.213,8785,4.761,8786,4.761,8787,4.401,8788,4.761,8789,4.761,8790,4.164,8791,4.164,8792,4.761,8793,4.761,8794,4.761,8795,4.761,8796,4.401,8797,4.761,8798,6.668,8799,4.761,8800,7.213,8801,3.39,8802,8.707,8803,4.761,8804,4.761,8805,3.213,8806,4.761,8807,3.728,8808,4.761,8809,4.761,8810,4.761,8811,4.761,8812,7.213,8813,4.761,8814,4.164,8815,4.761,8816,4.761,8817,7.213,8818,4.761,8819,4.761,8820,4.761,8821,4.761,8822,4.761]],["title/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.232,8780,5.947]],["body/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.226,2,0.74,3,0.016,4,0.016,5,0.008,7,0.1,8,1.108,27,0.531,29,0.52,30,0.001,31,0.372,32,0.182,33,0.509,35,1.111,47,0.879,55,2.445,95,0.135,101,0.011,103,0.001,104,0.001,111,1.84,127,1.149,145,2.663,163,2.042,165,0.719,187,0.96,200,3.276,204,3.851,209,4.072,214,2.893,216,2.492,227,0.688,364,2.17,404,1.653,406,2.158,558,3.183,564,2.432,596,3.758,1013,5.198,1015,6.891,1016,2.329,1142,4.872,1180,2.856,1216,4.447,1395,8.012,1396,5.992,1397,3.8,1398,6.695,1402,4.281,1403,3.678,1404,4.281,1405,4.281,1406,4.281,1407,4.281,1408,4.281,1409,3.977,1410,3.745,1416,4.169,1417,5.196,1464,5.675,1465,5.429,1467,2.118,1469,5.62,2559,4.765,5735,7.349,5747,5.557,7316,8.064,8288,5.468,8289,5.685,8737,8.497,8738,4.223,8740,4.725,8745,3.893,8746,4.068,8753,6.134,8780,8.026,8823,11.39,8824,9.926,8825,6.635,8826,9.176,8827,6.635]],["title/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.232,8781,5.947]],["body/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.234,2,0.765,3,0.016,4,0.016,5,0.015,7,0.104,8,1.134,27,0.535,30,0.001,32,0.188,33,0.454,35,1.137,47,0.763,55,1.478,95,0.137,101,0.011,103,0.001,104,0.001,127,1.341,165,0.735,187,0.992,200,3.334,204,3.906,209,4.114,214,2.96,216,2.462,227,0.711,364,2.196,404,1.692,406,2.231,558,3.292,564,2.515,596,3.797,1013,5.272,1016,2.409,1142,4.958,1180,2.953,1216,4.51,1395,8.071,1396,6.098,1397,3.854,1398,6.814,1402,4.427,1403,3.803,1404,4.427,1405,4.427,1406,4.427,1407,4.427,1408,4.427,1409,4.112,1410,3.872,1416,4.311,1417,5.373,1464,5.733,1465,5.525,1467,2.19,1469,5.7,1642,6.687,2559,4.85,3578,4.846,7316,8.147,7773,9.484,8288,5.565,8289,5.786,8737,8.647,8738,4.367,8740,4.886,8741,6.001,8745,4.026,8746,4.207,8781,8.213,8828,9.39,8829,9.39,8830,8.68]],["title/modules/ExternalToolModule.html",[425,1.812,5813,5.181]],["body/modules/ExternalToolModule.html",[0,0.232,3,0.016,4,0.016,5,0.008,30,0.001,95,0.169,101,0.011,103,0.001,104,0.001,187,0.987,209,2.256,425,2.845,427,2.466,428,2.653,429,2.731,430,2.72,431,2.708,432,3.929,433,4.035,438,5.823,442,3.744,443,2.675,444,2.61,449,3.712,450,2.804,766,2.855,1155,3.965,1467,2.179,2559,3.092,3917,6.315,4588,3.523,5030,3.926,5328,9.035,5338,5.514,5813,10.939,6100,8.302,8255,9.035,8509,10.938,8567,9.635,8831,6.826,8832,6.826,8833,6.826,8834,6.826,8835,9.733,8836,9.47,8837,11.34,8838,11.34,8839,10.409,8840,10.409,8841,10.409,8842,6.826,8843,4.535,8844,4.769,8845,5.717]],["title/injectables/ExternalToolParameterValidationService.html",[105,0.91,8839,5.694]],["body/injectables/ExternalToolParameterValidationService.html",[0,0.136,3,0.009,4,0.009,5,0.005,7,0.06,8,0.76,27,0.491,29,0.949,30,0.001,31,0.688,32,0.167,33,0.576,35,1.414,36,1.896,72,1.807,95,0.137,101,0.007,103,0,104,0,105,0.841,107,0.961,111,2.725,112,2.253,127,0.788,136,8.676,144,2.142,158,5.711,167,2.314,187,0.577,194,2.61,195,2.692,198,1.937,200,1.242,209,4.113,216,1.163,217,1.15,221,1.456,227,1.329,234,1.967,264,3.715,276,3.222,277,1.61,278,4.792,290,7.722,298,8.378,305,3.251,319,2.327,327,5.814,328,3.687,347,2.63,369,2.461,371,2.147,503,6.799,504,2.61,558,1.913,577,2.251,696,5.314,731,1.576,784,2.155,795,2.445,1127,4.004,1187,1.902,1188,1.879,1189,1.879,1369,2.173,1431,6.317,1904,1.668,2146,2.692,2257,2.417,2362,2.294,2559,5.489,3284,7.403,5335,8.378,5362,3.123,5404,3.687,5406,2.475,5421,3.687,5423,5.267,5424,5.267,5429,5.097,6100,6.267,6105,3.123,6106,3.222,6111,5.267,6439,4.394,8510,9.231,8566,3.123,8801,2.84,8839,5.267,8846,6.29,8847,6.29,8848,6.29,8849,6.29,8850,6.29,8851,6.29,8852,6.29,8853,6.29,8854,6.29,8855,6.29,8856,3.488,8857,6.29,8858,3.687,8859,6.29,8860,3.988,8861,6.29,8862,3.988,8863,6.29,8864,3.988,8865,6.29,8866,3.988,8867,6.29,8868,3.988,8869,6.29,8870,3.687,8871,6.29,8872,3.988,8873,6.29,8874,3.988,8875,6.29,8876,3.687,8877,3.988,8878,3.988,8879,3.988,8880,5.933,8881,3.988,8882,3.988,8883,3.988,8884,3.988,8885,3.988,8886,3.988,8887,2.899,8888,3.988,8889,3.988,8890,3.039,8891,3.988,8892,3.988,8893,3.988,8894,3.039,8895,3.988,8896,3.988,8897,3.988,8898,3.988,8899,3.988,8900,3.488,8901,3.988,8902,3.687,8903,3.988,8904,6.29,8905,3.988,8906,6.29,8907,3.988,8908,3.988,8909,3.988,8910,7.199,8911,3.988,8912,3.988,8913,3.988,8914,3.988,8915,6.29,8916,6.29]],["title/interfaces/ExternalToolProps.html",[334,0.731,7268,5.324]],["body/interfaces/ExternalToolProps.html",[0,0.227,3,0.016,4,0.016,5,0.008,7,0.101,29,0.934,30,0.001,31,0.668,32,0.18,33,0.64,34,1.933,47,0.996,55,2.569,95,0.153,101,0.015,103,0.001,104,0.001,136,7.592,150,4.13,154,5.901,158,3.254,165,0.72,194,4.357,198,3.233,214,2.099,227,1.093,236,6.998,334,0.715,336,1.593,347,2.606,404,1.2,405,1.774,627,2.822,1872,5.342,2043,5.377,2044,5.575,2095,2.641,2558,8.67,2559,3.016,2562,7.833,2565,3.69,4281,2.908,5007,6.446,5352,5.396,5696,5.213,5700,5.072,5710,5.213,5711,4.741,5712,5.072,5719,4.423,5720,4.839,5736,6.732,5752,4.357,5755,7.202,6196,3.598,6467,5.213,7135,7.149,7136,4.183,7168,4.651,7169,4.949,7172,4.949,7173,5.377,7268,8.251,7269,8.966,7270,8.465,7289,4.493,7293,4.569,7316,7.806,8478,5.823,8490,6.154,8492,6.154,8494,5.823,8495,6.154,8496,5.823,8497,8.502]],["title/entities/ExternalToolPseudonymEntity.html",[380,1.445,8917,4.842]],["body/entities/ExternalToolPseudonymEntity.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,26,2.238,27,0.482,30,0.001,32,0.159,34,1.392,39,3.442,47,0.833,49,5.239,95,0.159,96,2.888,97,3.54,99,1.366,101,0.018,103,0.001,104,0.001,165,0.916,167,3.012,200,2.549,209,4.224,240,4.152,334,0.879,364,2.129,380,2.244,381,2.723,394,6.658,398,2.412,399,4.189,402,3.393,404,1.475,405,2.181,406,2.662,415,4.424,416,5.21,618,3.347,619,5.853,4272,4.961,8776,6.966,8917,7.519,8918,11.416,8919,7.567,8920,7.102,8921,7.159,8922,8.185,8923,8.185,8924,8.185,8925,8.842,8926,5.438,8927,6.612,8928,6.855,8929,5.95,8930,6.41]],["title/injectables/ExternalToolPseudonymRepo.html",[105,0.91,8931,5.694]],["body/injectables/ExternalToolPseudonymRepo.html",[0,0.151,3,0.01,4,0.01,5,0.005,7,0.067,8,0.825,13,4.963,26,2.805,27,0.496,29,0.943,30,0.001,31,0.674,32,0.164,33,0.582,34,0.754,35,1.427,36,2.8,39,3.241,42,4.963,47,0.594,49,1.743,56,2.126,58,2.859,59,1.38,95,0.143,96,1.212,97,1.917,99,0.74,101,0.007,103,0,104,0,105,0.913,107,1.068,112,2.947,127,0.555,145,1.122,167,3.444,187,0.641,209,4.048,215,1.414,216,0.819,217,1.711,221,2.471,227,1.27,234,2.018,277,3.362,380,2.441,381,3.113,450,1.82,529,1.926,591,1.926,592,2.007,661,4.487,701,2.945,921,6.957,1008,3.69,1014,4.463,1790,4.698,1904,1.854,2355,5.383,2379,2.991,2390,3.096,2403,3.47,2408,4.77,2422,3.711,2794,4.048,3314,3.096,3319,4.138,3381,3.579,4369,2.859,4383,3.711,4384,3.711,5882,3.096,6612,2.656,6902,5.672,6931,3.221,6932,3.221,8776,6.559,8917,8.57,8920,7.725,8925,7.837,8926,4.536,8931,5.718,8932,12.247,8933,4.431,8934,6.312,8935,5.972,8936,6.312,8937,6.312,8938,6.312,8939,5.718,8940,5.972,8941,6.312,8942,4.431,8943,6.312,8944,4.431,8945,5.972,8946,4.431,8947,4.431,8948,6.312,8949,4.431,8950,6.312,8951,4.431,8952,6.312,8953,7.837,8954,4.431,8955,5.202,8956,4.431,8957,6.312,8958,4.431,8959,6.312,8960,4.431,8961,5.202,8962,5.972,8963,4.431,8964,4.431,8965,5.972,8966,9.344,8967,6.828,8968,4.431,8969,3.876,8970,4.096,8971,4.431,8972,4.096,8973,4.431,8974,3.876,8975,4.096,8976,5.972,8977,4.431,8978,4.431,8979,4.096,8980,4.096,8981,4.096,8982,4.096,8983,4.096,8984,4.096,8985,3.711,8986,4.431,8987,4.431,8988,4.431,8989,3.876,8990,4.431,8991,3.876]],["title/injectables/ExternalToolRepo.html",[105,0.91,8840,5.694]],["body/injectables/ExternalToolRepo.html",[0,0.132,3,0.009,4,0.009,5,0.005,7,0.059,8,0.743,10,2.482,12,2.817,18,3.108,26,2.328,27,0.534,29,1.006,30,0.001,31,0.729,32,0.177,33,0.621,34,1.3,35,1.543,36,2.682,40,1.871,47,0.72,55,0.835,56,1.86,58,2.502,59,1.208,95,0.152,96,1.682,97,1.677,99,0.647,101,0.006,103,0,104,0,105,0.823,107,0.935,111,2.201,112,2.931,127,0.486,148,1.193,154,2.817,158,5.879,165,0.304,167,3.894,200,1.208,201,1.973,216,1.137,217,1.628,221,2.014,227,1.226,234,1.241,277,3.085,359,2.144,380,2.462,381,2.046,398,1.142,404,1.108,450,1.592,529,1.685,595,1.298,596,3.724,661,3.213,701,2.703,878,4.297,884,2.898,885,4.794,915,2.149,935,3.247,944,3.584,964,2.661,1008,3.324,1014,4.149,1467,1.237,1790,4.992,2051,2.209,2144,3.471,2343,8.669,2345,4.38,2346,4.38,2347,4.38,2348,4.38,2349,4.297,2350,4.297,2351,4.38,2352,4.297,2353,4.38,2354,2.818,2355,5.005,2356,3.574,2357,3.963,2359,4.471,2360,2.761,2362,5.005,2363,2.761,2365,2.761,2367,5.003,2368,4.297,2369,2.761,2371,2.761,2373,4.38,2377,4.38,2379,4.151,2380,4.297,2382,2.761,2384,2.324,2385,2.377,2386,2.761,2388,2.761,2390,4.297,2391,2.761,2397,2.617,2408,4.297,2409,6.469,2565,4.824,4431,2.436,4435,2.617,4492,2.882,4661,3.246,5530,3.066,5782,2.502,5799,2.617,5839,3.391,5853,5.151,5854,3.584,5862,2.818,5863,2.818,5864,2.818,5865,2.818,5866,2.818,5867,2.818,5868,2.818,5869,2.818,5870,2.818,5876,3.132,5877,3.391,5878,2.954,5882,2.709,6612,2.324,6902,5.274,6912,4.572,6931,2.818,6932,2.818,7271,3.816,8680,8.693,8695,8.457,8840,5.151,8961,4.686,8985,3.247,8989,3.391,8991,3.391,8992,8.863,8993,6.15,8994,5.151,8995,6.15,8996,3.877,8997,3.584,8998,6.63,8999,3.877,9000,6.15,9001,3.877,9002,5.151,9003,3.877,9004,6.15,9005,3.584,9006,3.584,9007,2.954,9008,3.584,9009,3.391,9010,3.877,9011,5.379,9012,3.877,9013,6.15,9014,3.877,9015,3.584,9016,3.877,9017,3.877,9018,3.877,9019,5.379,9020,3.877,9021,3.877]],["title/classes/ExternalToolRepoMapper.html",[0,0.232,5876,5.493]],["body/classes/ExternalToolRepoMapper.html",[0,0.134,2,0.439,3,0.009,4,0.009,5,0.005,7,0.059,8,0.752,27,0.498,29,0.972,30,0.001,31,0.722,32,0.179,33,0.584,34,0.67,35,1.462,95,0.131,101,0.007,103,0,104,0,136,7.027,144,1.712,150,2.156,154,5.531,158,5.204,181,7.333,187,0.569,192,1.173,200,1.939,201,2.003,209,2.058,227,1.252,234,1.989,236,3.653,238,5.686,264,2.617,275,5.446,277,2.513,298,4.876,305,1.774,307,3.912,309,5.847,319,2.623,331,3.963,379,1.411,380,0.837,471,2.524,627,4.236,731,2.46,1618,3.617,1852,1.663,2035,3.365,2349,4.35,2350,4.35,2377,4.434,2379,2.658,2380,4.35,2384,3.732,2531,3.365,2558,8.46,2565,2.183,2568,4.35,2570,8.917,3047,4.434,4369,2.541,4370,3.083,5007,3.365,5209,6.754,5411,5.446,5417,5.446,5423,5.214,5424,5.214,5427,5.029,5429,4.075,5530,3.104,5698,3.168,5736,3.514,5776,8.658,5782,2.541,5798,3.083,5799,2.658,5876,5.029,7118,4.017,7120,4.017,7122,4.017,7133,3.963,7135,3.732,7207,4.628,7230,8.917,7269,8.46,7270,7.988,7271,3.864,7289,4.202,7293,4.273,7298,4.434,7316,2.577,8680,6.251,8682,3.298,8683,8.917,8684,8.917,8695,6.468,8900,5.446,8910,5.756,8992,10.262,9022,3.937,9023,6.226,9024,6.226,9025,6.226,9026,6.226,9027,6.226,9028,6.226,9029,6.226,9030,6.226,9031,6.226,9032,6.226,9033,6.226,9034,3.937,9035,8.777,9036,6.226,9037,3.937,9038,6.226,9039,3.937,9040,6.226,9041,3.937,9042,5.756,9043,6.226,9044,3.937,9045,6.226,9046,3.937,9047,3.937,9048,3.937,9049,6.226,9050,3.937,9051,6.226,9052,3.937,9053,6.226,9054,3.937,9055,5.446,9056,6.226,9057,3.937,9058,2.541,9059,3.937,9060,3.937,9061,3.937,9062,3.444,9063,3.937,9064,3.937,9065,3.937,9066,3.937,9067,6.226,9068,3.444,9069,3.937,9070,3.937,9071,3.937,9072,3.64,9073,3.64,9074,3.937,9075,8.777,9076,8.777,9077,6.226,9078,6.226,9079,5.756,9080,6.226,9081,6.226,9082,6.226,9083,6.226,9084,6.226,9085,6.226,9086,6.226,9087,3.937,9088,3.937,9089,3.937,9090,3.937,9091,3.444,9092,3.64,9093,3.937,9094,3.937,9095,3.937,9096,3.64,9097,3.64,9098,3.937,9099,6.226,9100,6.226,9101,6.226,9102,6.226,9103,5.756,9104,5.756,9105,5.756]],["title/injectables/ExternalToolRequestMapper.html",[105,0.91,9106,5.694]],["body/injectables/ExternalToolRequestMapper.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.063,8,0.787,27,0.488,29,0.96,30,0.001,31,0.704,32,0.164,33,0.572,34,0.709,35,1.432,55,1.951,95,0.14,99,0.696,101,0.007,103,0,104,0,105,0.871,107,1.005,111,2.609,116,3.244,144,1.791,145,2.029,146,2.862,150,2.255,154,2.983,158,2.038,167,1.534,185,1.62,187,0.603,195,2.814,196,2.969,198,2.025,209,3.985,217,1.465,227,1.27,236,3.822,277,1.683,278,3.177,279,3.031,281,3.1,310,3.492,312,3.492,314,3.492,319,2.395,321,3.492,324,3.492,325,3.492,326,3.1,331,2.654,379,0.945,471,1.69,806,3.688,905,3.772,982,2.078,1180,3.449,1750,2.889,1904,1.744,2559,5.462,2580,8.413,2727,2,3015,5.958,5007,6.085,5429,2.729,5530,2.078,5698,2.122,5711,2.969,5736,3.676,5910,3.368,5918,3.492,5926,3.647,5927,3.492,7135,3.904,7207,3.1,7306,3.265,7322,7.938,7332,3.492,7338,3.492,7341,3.492,8614,8.23,8617,8.23,8618,7.586,8717,3.492,8998,6.902,9106,5.455,9107,11.146,9108,6.513,9109,6.513,9110,6.513,9111,6.513,9112,8.015,9113,8.015,9114,8.015,9115,8.015,9116,6.021,9117,6.513,9118,6.513,9119,4.17,9120,7.01,9121,6.513,9122,7.586,9123,4.17,9124,6.513,9125,4.17,9126,12.567,9127,9.827,9128,6.513,9129,4.17,9130,9.827,9131,4.17,9132,4.17,9133,9.059,9134,4.17,9135,8.23,9136,4.17,9137,9.059,9138,4.17,9139,4.17,9140,9.059,9141,4.17,9142,7.586,9143,4.17,9144,9.059,9145,6.021,9146,7.586,9147,4.17,9148,5.261,9149,7.094,9150,6.513,9151,8.23,9152,4.17,9153,7.01,9154,3.855,9155,3.855,9156,3.855,9157,3.855,9158,3.855,9159,3.855,9160,3.855,9161,3.647,9162,3.855,9163,3.647,9164,3.855,9165,3.855,9166,3.855,9167,3.855,9168,3.855,9169,3.855,9170,3.855,9171,10.939,9172,6.513,9173,4.17,9174,4.17,9175,4.17,9176,8.374,9177,6.513,9178,4.17,9179,4.17,9180,4.17,9181,4.17,9182,4.17,9183,4.17,9184,4.17,9185,6.513,9186,4.17,9187,4.17,9188,4.17,9189,4.17,9190,4.17,9191,4.17,9192,4.17,9193,4.17,9194,4.17,9195,4.17,9196,4.17,9197,4.17,9198,4.17,9199,4.17,9200,4.17,9201,4.17,9202,4.17,9203,4.17,9204,3.647,9205,6.513,9206,3.647,9207,4.17]],["title/classes/ExternalToolResponse.html",[0,0.232,9208,5.493]],["body/classes/ExternalToolResponse.html",[0,0.234,2,0.768,3,0.016,4,0.016,5,0.008,7,0.104,27,0.549,29,0.903,30,0.001,31,0.646,32,0.181,33,0.584,34,1.824,47,0.926,55,2.027,95,0.138,101,0.011,103,0.001,104,0.001,127,0.862,150,3.713,154,5.279,165,0.737,236,6.292,347,2.332,364,2.399,375,4.598,376,1.575,467,3.621,618,2.815,1016,2.417,1431,3.922,2043,5.561,2095,2.731,2559,6.094,2590,8.981,5007,5.796,5719,4.574,5736,6.052,5743,8.397,5746,6.021,5752,4.506,5755,5.391,5930,6.021,5931,7.603,5932,6.021,5933,6.021,5934,6.021,5935,6.021,5936,6.021,5938,6.021,5939,6.021,5940,6.021,5941,5.245,5947,6.021,5949,6.021,6196,3.721,7135,6.427,7168,4.81,7172,5.118,9208,9.75,9209,12.435,9210,9.412,9211,8.981,9212,8.981,9213,6.021,9214,6.884,9215,6.884,9216,6.884,9217,6.884,9218,6.884]],["title/injectables/ExternalToolResponseMapper.html",[105,0.91,9219,5.493]],["body/injectables/ExternalToolResponseMapper.html",[0,0.195,3,0.014,4,0.014,5,0.007,7,0.086,8,0.997,27,0.464,29,0.919,30,0.001,31,0.678,32,0.16,33,0.545,34,0.972,35,1.363,95,0.145,101,0.01,103,0,104,0,105,1.104,107,1.377,111,2.53,136,7.168,146,3.921,150,1.978,154,2.617,158,5.504,187,0.826,194,3.739,195,3.856,196,4.068,198,2.775,209,3.878,217,1.382,227,1.217,234,1.724,236,3.352,274,4.997,275,4.997,276,4.615,277,2.306,278,4.353,279,4.153,281,4.247,310,4.784,312,4.784,314,4.784,321,4.784,324,4.784,325,4.784,326,4.247,331,3.637,379,1.295,471,2.316,627,4.122,806,3.361,974,3.387,982,2.848,1180,4.171,1904,2.39,2558,8.185,2559,5.316,2590,9.43,5007,3.088,5429,3.739,5698,2.907,5736,3.224,5743,8.313,7135,3.424,7207,4.247,7269,8.185,7270,7.286,7306,4.474,7325,4.353,7332,4.784,7338,4.784,7341,4.784,8593,4.615,8609,5.281,8717,4.784,8801,4.068,8880,4.353,9107,10.848,9154,5.281,9155,5.281,9156,5.281,9157,5.281,9158,5.281,9159,5.281,9160,5.281,9161,4.997,9162,5.281,9163,4.997,9164,5.281,9165,5.281,9166,5.281,9167,5.281,9168,5.281,9169,5.281,9170,5.281,9171,10.409,9176,7.631,9208,8.576,9211,9.43,9212,9.43,9219,6.668,9220,8.255,9221,8.255,9222,8.255,9223,8.255,9224,8.255,9225,8.255,9226,5.713,9227,11.735,9228,8.255,9229,5.713,9230,8.255,9231,5.713,9232,8.255,9233,5.713,9234,8.255,9235,5.713,9236,6.913,9237,5.713,9238,5.713,9239,5.713,9240,5.713,9241,5.713,9242,4.997,9243,5.713,9244,5.713,9245,5.713,9246,5.713,9247,5.713,9248,5.713,9249,5.713,9250,5.713,9251,5.713,9252,5.713,9253,5.713]],["title/classes/ExternalToolScope.html",[0,0.232,9011,5.947]],["body/classes/ExternalToolScope.html",[0,0.241,2,0.789,3,0.017,4,0.017,5,0.009,7,0.107,8,1.158,27,0.539,29,0.955,30,0.001,31,0.742,32,0.178,33,0.589,35,1.161,47,0.896,95,0.123,101,0.012,103,0.001,104,0.001,111,2.519,144,1.947,145,3.392,148,2.178,154,3.242,165,0.751,227,1.128,277,5.347,319,2.115,347,2.541,404,1.728,529,3.076,596,3.717,958,5.928,2394,6.45,5530,5.422,5782,4.567,5990,6.191,5991,6.473,5992,6.473,5993,6.473,5998,6.473,5999,6.473,6000,4.858,6001,4.777,6002,4.858,6003,4.858,6012,4.777,6013,6.473,6014,4.858,6015,4.777,6016,4.858,6017,4.777,6018,7.342,7135,6.52,7271,4.392,8680,5.04,8992,9.766,9011,8.389,9254,9.591,9255,8.866,9256,9.591,9257,9.591,9258,7.078,9259,8.866,9260,7.078,9261,9.591,9262,7.078,9263,6.543]],["title/classes/ExternalToolSearchListResponse.html",[0,0.232,9264,5.694]],["body/classes/ExternalToolSearchListResponse.html",[0,0.265,2,0.869,3,0.018,4,0.018,5,0.009,7,0.118,27,0.519,29,0.61,30,0.001,31,0.436,32,0.184,33,0.608,55,3.02,56,6.195,59,3.184,70,6.395,95,0.147,101,0.013,103,0.001,104,0.001,127,0.976,145,1.972,163,3.872,165,0.801,200,2.426,209,3.379,364,2.207,376,1.782,404,1.842,467,2.682,469,3.42,596,3.696,1005,7.28,1006,5.442,1007,8.07,1008,6.98,1009,5.824,1011,3.936,1013,5.227,1014,3.714,1015,4.357,1016,2.735,1017,5.442,1018,6.597,1019,5.938,1020,5.098,1021,4.143,1022,5.442,1023,5.442,1025,4.894,1026,4.318,2559,4.632,6020,6.813,9208,10.631,9209,9.451,9264,8.562,9265,7.201,9266,7.201]],["title/classes/ExternalToolSearchParams.html",[0,0.232,9122,5.694]],["body/classes/ExternalToolSearchParams.html",[0,0.382,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,31,0.737,32,0.153,33,0.618,34,1.909,47,0.912,95,0.144,101,0.015,103,0.001,104,0.001,165,0.879,200,3.984,209,4.349,364,2.044,374,2.875,375,4.655,376,2.061,379,2.543,470,5.112,471,4.953,1403,6.22,2559,5.536,3580,4.568,5438,7.344,5530,6.091,8615,9.871,9122,9.397,9267,7.88,9268,11.22,9269,9.009,9270,7.88]],["title/interfaces/ExternalToolSearchQuery.html",[334,0.731,8998,5.181]],["body/interfaces/ExternalToolSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.739,32,0.173,33,0.663,47,0.978,101,0.016,103,0.001,104,0.001,165,0.929,209,3.262,334,1.06,336,2.362,347,2.573,1005,7.028,5530,6.579,7135,7.911,8998,9.039,9271,9.87,9272,8.632]],["title/injectables/ExternalToolService.html",[105,0.91,6100,4.169]],["body/injectables/ExternalToolService.html",[0,0.13,3,0.009,4,0.009,5,0.005,7,0.058,8,0.732,12,2.777,26,2.228,27,0.485,29,0.921,30,0.001,31,0.67,32,0.16,33,0.569,34,1.031,35,1.424,36,2.723,40,2.926,47,0.802,59,1.186,95,0.156,99,0.635,101,0.006,103,0,104,0,105,0.811,107,0.918,111,2.546,112,2.923,127,0.759,139,4.734,145,1.913,154,1.744,158,6.607,187,0.551,192,1.135,198,1.849,200,2.353,201,1.937,206,3.843,209,3.888,216,2.017,217,1.582,221,2.883,227,1.131,234,0.984,284,3.277,305,1.727,444,2.318,450,1.564,529,2.635,701,3.045,784,3.277,839,1.815,1014,2.891,1369,3.304,1467,1.215,1583,2.492,1904,1.593,1933,7.812,2357,4.786,2362,3.487,2412,3.859,2531,2.058,2559,5.423,4588,1.965,5336,8.229,5345,3.075,5462,5.277,5530,4.293,5711,2.711,5851,3.52,6064,3.859,6100,3.717,6365,4.028,6902,5.22,7267,4.507,7270,5.911,8259,2.83,8510,9.121,8528,2.711,8546,3.188,8776,2.075,8838,8.8,8840,8.39,8841,7.213,8843,4.028,8844,2.66,8880,2.901,8998,6.562,9055,6.607,9058,2.457,9236,3.188,9273,6.062,9274,5.302,9275,5.302,9276,6.062,9277,6.062,9278,7.554,9279,5.302,9280,6.062,9281,7.554,9282,3.807,9283,7.639,9284,7.554,9285,6.261,9286,3.807,9287,6.062,9288,3.807,9289,6.062,9290,3.807,9291,6.062,9292,3.807,9293,3.807,9294,6.062,9295,3.807,9296,6.062,9297,3.807,9298,3.807,9299,3.807,9300,6.062,9301,6.983,9302,3.807,9303,9.714,9304,6.062,9305,3.807,9306,3.807,9307,8.744,9308,10.018,9309,3.807,9310,8.613,9311,2.711,9312,3.807,9313,3.807,9314,3.075,9315,3.52,9316,5.604,9317,3.807,9318,3.52,9319,5.604,9320,6.062,9321,3.807,9322,3.807,9323,3.807,9324,3.807,9325,3.807,9326,3.807,9327,3.807,9328,3.807,9329,6.062,9330,6.062,9331,6.062,9332,6.062,9333,3.807,9334,3.807,9335,3.807,9336,3.807,9337,3.33,9338,3.807,9339,3.807,9340,3.807,9341,3.807,9342,2.981,9343,3.807,9344,3.807,9345,3.807,9346,3.807,9347,6.062,9348,3.807,9349,3.807,9350,3.807,9351,3.807,9352,3.807,9353,3.807,9354,3.807,9355,3.807,9356,3.807,9357,3.807,9358,3.807,9359,3.807,9360,3.807,9361,3.807,9362,3.807,9363,3.807,9364,3.807]],["title/injectables/ExternalToolServiceMapper.html",[105,0.91,8841,5.694]],["body/injectables/ExternalToolServiceMapper.html",[0,0.311,3,0.022,4,0.022,5,0.011,7,0.138,8,1.367,27,0.377,29,0.715,30,0.001,31,0.689,32,0.124,33,0.442,35,1.105,47,0.877,95,0.158,101,0.015,103,0.001,104,0.001,105,1.514,107,2.201,187,1.321,209,3.739,227,0.947,277,3.685,1518,6.503,1519,7.376,1904,3.82,2559,5.126,5526,7.15,7134,6.788,7270,8.82,8510,8.621,8841,9.476,8843,6.067,9055,10.753,9079,8.441,9307,9.14,9311,6.503,9365,9.131,9366,11.315,9367,11.315,9368,9.131,9369,9.131,9370,9.131,9371,8.441,9372,9.131,9373,7.987,9374,9.131,9375,9.131,9376,8.441,9377,8.441]],["title/classes/ExternalToolSortingMapper.html",[0,0.232,9009,5.947]],["body/classes/ExternalToolSortingMapper.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,8,1.359,10,3.652,27,0.373,29,0.709,30,0.001,31,0.63,32,0.123,33,0.438,35,1.095,95,0.165,96,2.476,99,1.51,101,0.015,103,0.001,104,0.001,145,2.291,158,4.423,201,4.604,209,3.718,217,1.178,227,0.938,398,2.666,627,3.757,1167,4.973,4428,7.31,5782,5.839,6912,9.984,7271,6.982,8680,6.444,8992,9.423,9009,9.841,9149,10.031,9378,9.049,9379,11.252,9380,11.252,9381,9.049,9382,8.365,9383,9.049,9384,8.365,9385,8.365,9386,10.401,9387,8.365]],["title/injectables/ExternalToolUc.html",[105,0.91,9388,5.694]],["body/injectables/ExternalToolUc.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.925,26,2.932,27,0.483,29,0.918,30,0.001,31,0.656,32,0.159,33,0.567,35,1.37,36,2.785,39,3.155,47,0.651,95,0.15,99,0.861,100,1.727,101,0.009,103,0,104,0,105,1.024,107,1.243,111,2.349,112,2.967,127,0.959,154,2.362,158,6.407,187,0.746,209,3.341,216,1.869,217,1.629,221,3.058,227,1.12,234,1.243,461,2.09,529,3.971,701,3.575,766,2.157,843,5.311,1014,3.652,1884,6.333,1904,2.157,1982,3.091,2559,5.453,2562,5.693,2725,2.336,4052,5.36,5007,2.787,5711,3.673,6049,4.511,6064,4.875,6100,6.939,6902,6.128,8558,11.127,8566,4.038,8567,8.711,8776,6.701,8796,7.08,8814,6.698,8837,8.467,8998,7.703,9120,10.528,9153,8.843,9236,4.319,9274,6.698,9275,6.698,9279,6.698,9303,4.767,9388,6.414,9389,7.658,9390,8.445,9391,7.08,9392,9.135,9393,5.157,9394,7.658,9395,5.157,9396,7.658,9397,5.157,9398,7.658,9399,5.157,9400,5.157,9401,5.157,9402,7.658,9403,5.157,9404,7.658,9405,5.157,9406,10.802,9407,10.802,9408,7.658,9409,5.157,9410,5.157,9411,5.157,9412,7.658,9413,5.157,9414,5.157,9415,7.08,9416,5.157,9417,5.157,9418,5.157,9419,4.319]],["title/classes/ExternalToolUpdateParams.html",[0,0.232,9151,5.694]],["body/classes/ExternalToolUpdateParams.html",[0,0.345,2,0.691,3,0.015,4,0.015,5,0.007,7,0.094,27,0.522,29,0.794,30,0.001,31,0.675,32,0.182,33,0.583,34,1.725,47,0.902,95,0.155,101,0.01,103,0.001,104,0.001,144,2.788,145,1.569,150,3.511,154,5.045,165,0.685,198,3.01,209,4.253,236,5.949,240,1.966,347,2.228,364,2.305,369,2.25,373,5.436,374,1.978,375,4.196,376,1.417,467,3.163,470,4.86,471,4.465,731,3.456,1431,3.53,2384,5.243,2450,3.53,2559,5.83,2565,3.435,2568,4.329,2580,9.384,2583,6.359,2584,6.112,3047,6.229,4008,5.005,4009,3.944,4037,3.944,4038,6.292,5477,5.568,5736,5.722,5825,6.359,5828,5.189,5829,5.189,5830,5.189,5835,3.893,5836,5.671,7135,6.077,7289,4.182,7293,4.253,7322,9.384,7330,6.665,8183,5.812,8184,4.117,8185,5.812,8615,10.395,8619,5.42,8620,5.728,8628,5.728,8630,5.728,9135,9.225,9142,9.729,9151,7.326,9420,5.189,9421,6.196,9422,5.42,9423,6.196,9424,5.42,9425,6.196,9426,6.196,9427,6.196,9428,5.728,9429,6.196,9430,6.196,9431,6.196]],["title/injectables/ExternalToolValidationService.html",[105,0.91,8837,5.694]],["body/injectables/ExternalToolValidationService.html",[0,0.18,3,0.012,4,0.012,5,0.006,7,0.08,8,0.94,27,0.47,29,0.894,30,0.001,31,0.639,32,0.16,33,0.552,34,1.574,35,1.32,36,2.597,47,0.66,72,2.388,95,0.152,101,0.009,103,0,104,0,105,1.041,107,1.271,111,2.615,112,2.846,127,0.975,148,2.396,154,3.565,158,6.713,167,3.405,187,0.762,200,2.882,209,4.412,216,1.89,217,0.686,221,2.641,227,0.547,234,1.852,290,4.567,305,3.25,503,6.995,558,2.529,576,2.975,577,2.975,696,4.811,795,3.232,839,2.514,1127,4.955,1618,4.521,1904,2.205,2559,5.346,3580,3.768,5164,4.415,5362,4.128,6100,6.995,6106,4.259,6111,7.75,8510,8.991,8517,7.786,8519,7.786,8566,4.128,8567,8.773,8776,4.242,8790,4.611,8801,5.543,8814,4.611,8837,6.519,8839,9.883,8856,4.611,8858,4.874,8870,4.874,8880,8.305,8902,4.874,9236,6.519,9301,4.874,9315,4.874,9316,4.874,9318,8.555,9432,7.784,9433,7.784,9434,7.784,9435,7.784,9436,7.784,9437,7.784,9438,7.784,9439,5.272,9440,7.784,9441,7.784,9442,5.272,9443,7.784,9444,5.272,9445,5.272,9446,5.272,9447,7.784,9448,5.272,9449,5.272,9450,7.784,9451,5.272,9452,7.784,9453,5.272,9454,5.272,9455,5.272,9456,7.784,9457,5.272,9458,5.272,9459,5.272,9460,5.272,9461,5.272,9462,5.272,9463,5.272,9464,5.272,9465,5.272]],["title/injectables/ExternalToolVersionService.html",[105,0.91,8838,5.694]],["body/injectables/ExternalToolVersionService.html",[0,0.163,3,0.011,4,0.011,5,0.006,7,0.072,8,0.874,27,0.485,29,0.921,30,0.001,31,0.659,32,0.16,33,0.569,35,1.424,95,0.112,101,0.008,103,0,104,0,105,0.967,107,1.152,111,2.709,136,9.032,148,2.226,158,5.584,187,0.691,194,3.127,209,3.98,217,1.71,227,1.311,288,6.686,298,7.62,302,6.686,347,2.613,905,1.989,1904,1.999,2559,5.456,5411,4.179,5417,4.179,5423,4.001,5424,4.001,8510,9.176,8838,6.057,9466,4.778,9467,7.232,9468,7.232,9469,7.232,9470,7.232,9471,7.232,9472,7.232,9473,7.232,9474,7.232,9475,7.232,9476,13.136,9477,4.778,9478,8.726,9479,7.232,9480,4.778,9481,7.232,9482,13.136,9483,4.778,9484,7.232,9485,4.778,9486,7.232,9487,4.778,9488,7.232,9489,4.778,9490,7.232,9491,4.778,9492,7.232,9493,8.726,9494,4.778,9495,4.778,9496,4.778,9497,7.232,9498,4.778,9499,4.778,9500,4.778,9501,4.778,9502,7.232,9503,7.232,9504,7.232,9505,4.778,9506,4.778,9507,4.778,9508,4.778,9509,4.778,9510,4.778,9511,11.06,9512,4.778,9513,12.044,9514,7.232,9515,4.778,9516,4.778,9517,4.778,9518,4.778,9519,4.778,9520,4.778,9521,4.778,9522,4.778,9523,4.778,9524,4.778,9525,4.778,9526,4.778,9527,4.778,9528,9.732,9529,9.732,9530,9.732,9531,4.778,9532,4.778,9533,4.778]],["title/classes/ExternalUserDto.html",[0,0.232,9534,4.943]],["body/classes/ExternalUserDto.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.547,29,0.674,30,0.001,31,0.482,32,0.18,33,0.665,47,0.972,95,0.111,99,1.436,101,0.014,103,0.001,104,0.001,127,1.078,165,0.854,405,2.905,595,2.881,851,5.706,852,5.706,853,6.176,854,6.005,3110,5.965,4571,6.521,6871,5.102,6872,5.276,7149,6.738,7150,6.951,8420,11.28,8442,7.955,8444,7.955,8445,7.955,9534,9.435,9535,10.901,9536,8.605,9537,8.605,9538,5.717,9539,6.255,9540,5.717,9541,6.255,9542,6.556,9543,6.951]],["title/injectables/FeathersAuthProvider.html",[105,0.91,1890,5.493]],["body/injectables/FeathersAuthProvider.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.012,26,2.953,27,0.487,29,0.925,30,0.001,31,0.662,32,0.161,33,0.571,35,1.374,36,2.76,39,3.278,47,0.809,49,3.857,95,0.138,96,1.595,97,2.521,99,0.973,101,0.01,103,0,104,0,105,1.12,107,1.405,111,1.965,112,2.97,127,0.73,167,2.145,187,0.843,192,1.737,215,1.86,217,1.675,221,2.627,227,1.225,234,0.946,305,1.661,334,0.626,371,1.607,461,2.849,529,2.533,766,4.1,1125,3.456,1167,3.203,1193,3.934,1849,5.695,1890,6.765,1902,5.098,2395,5.652,2644,4.49,4205,3.825,6850,7.854,6857,7.006,7035,7.486,8050,6.088,8403,5.098,8404,8.589,9544,11.253,9545,5.388,9546,8.375,9547,9.061,9548,7.325,9549,8.375,9550,9.061,9551,5.829,9552,8.375,9553,5.829,9554,5.388,9555,5.829,9556,8.375,9557,5.829,9558,8.375,9559,5.829,9560,5.829,9561,5.829,9562,8.375,9563,8.375,9564,8.375,9565,5.829,9566,5.829,9567,5.829,9568,8.375,9569,8.375,9570,6.558,9571,6.765,9572,5.829,9573,4.881,9574,5.829,9575,5.829,9576,5.829,9577,7.325,9578,5.388,9579,5.829,9580,5.829]],["title/injectables/FeathersAuthorizationService.html",[105,0.91,1885,5.694]],["body/injectables/FeathersAuthorizationService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.011,26,2.873,27,0.442,29,0.839,30,0.001,31,0.6,32,0.146,33,0.518,35,1.373,36,2.532,39,3.352,47,0.842,95,0.126,99,0.971,101,0.01,103,0,104,0,105,1.119,107,1.403,112,2.794,127,0.729,187,0.842,215,1.858,217,1.394,221,2.625,227,0.868,234,1.358,247,2.28,264,5.408,305,2.383,380,2.509,381,3.562,461,2.944,538,4.825,770,4.96,843,2.568,1184,6.547,1586,5.091,1849,6.99,1885,7.006,1890,9.54,1905,3.528,2004,5.742,2299,4.702,3281,5.558,6850,8.304,6857,8.078,6881,6.374,7035,9.103,9544,10.486,9581,5.82,9582,9.794,9583,8.366,9584,9.794,9585,5.82,9586,5.82,9587,5.82,9588,5.82,9589,6.374,9590,7.734,9591,8.366,9592,5.82,9593,5.82,9594,5.82,9595,7.734,9596,5.82,9597,5.82,9598,5.82,9599,5.82,9600,5.82,9601,5.82,9602,5.82,9603,3.705,9604,5.82,9605,5.82,9606,7.734,9607,5.82,9608,5.82,9609,5.82,9610,8.366,9611,5.82,9612,5.82]],["title/interfaces/FeathersError.html",[334,0.731,8394,5.694]],["body/interfaces/FeathersError.html",[3,0.024,4,0.024,5,0.012,7,0.151,30,0.001,32,0.189,47,0.98,55,2.752,101,0.017,103,0.001,104,0.001,165,0.935,204,4.049,334,1.071,336,2.385,404,2.151,1142,6.133,8394,9.995,9613,9.967,9614,9.967,9615,12.241]],["title/modules/FeathersModule.html",[425,1.812,1883,5.493]],["body/modules/FeathersModule.html",[0,0.302,3,0.021,4,0.021,5,0.011,30,0.001,95,0.143,101,0.015,103,0.001,104,0.001,187,1.283,367,5.299,379,2.01,425,3.49,427,4.383,428,3.447,429,3.549,430,3.534,431,3.519,432,4.465,433,4.586,442,4.446,443,3.475,444,3.392,535,5.957,704,5.502,766,4.648,1141,6.813,1883,10.953,1905,7.354,2487,7.073,8404,10.233,8409,7.758,9616,8.87,9617,8.87,9618,8.87,9619,8.87,9620,8.701,9621,7.5,9622,8.976,9623,8.976,9624,9.306,9625,9.306,9626,9.719]],["title/injectables/FeathersRosterService.html",[105,0.91,9627,5.181]],["body/injectables/FeathersRosterService.html",[0,0.104,3,0.007,4,0.007,5,0.004,7,0.046,8,0.611,26,2.271,27,0.472,29,0.897,30,0.001,31,0.662,32,0.165,33,0.554,34,0.86,35,1.36,36,2.67,47,0.957,51,3.665,55,0.656,72,2.29,95,0.147,99,0.508,101,0.005,103,0,104,0,105,0.676,107,0.734,111,2.667,112,2.902,127,0.633,130,6.455,139,4.146,140,3.982,158,6.134,163,3.296,167,1.86,187,0.44,188,4.059,190,2.263,197,1.913,200,2.35,201,3.297,216,1.669,217,1.692,221,2.962,227,1.14,234,1.466,247,1.98,284,4.523,305,2.149,316,3.599,318,2.263,334,0.899,347,0.616,379,0.69,427,1.826,461,1.156,574,2.219,688,2.59,738,1.583,766,3.156,1166,3.62,1905,3.064,2210,5.908,2280,1.735,2439,2.966,2468,3.03,2633,3.62,3090,1.317,4205,1.704,4324,4.021,4571,3.532,4572,2.168,4593,1.538,4737,5.243,4748,4.64,5034,2.32,5209,2.023,5462,3.531,5697,4.241,5735,5.271,5799,2.055,5800,3.358,5815,6.26,5875,3.599,5966,2.127,6039,4.817,6057,6.354,6074,4.021,6077,2.213,6091,3.851,6100,5.864,6473,2.936,6476,4.072,6477,2.127,6580,2.213,6629,2.384,7074,5.441,7080,3.412,7271,3.137,7803,3.261,8369,1.845,8528,2.168,8586,2.32,8608,2.213,8776,4.919,8801,5.373,8917,3.599,8920,7.218,8926,5.012,8939,4.233,8955,3.851,9627,3.851,9628,9.403,9629,2.46,9630,4.083,9631,4.083,9632,4.083,9633,3.599,9634,4.083,9635,5.055,9636,5.055,9637,5.055,9638,4.421,9639,5.055,9640,5.055,9641,5.055,9642,5.055,9643,5.055,9644,5.055,9645,5.055,9646,2.46,9647,6.564,9648,3.045,9649,4.083,9650,3.045,9651,3.045,9652,4.083,9653,3.045,9654,4.083,9655,3.045,9656,4.083,9657,8.391,9658,3.045,9659,4.083,9660,3.045,9661,4.083,9662,3.045,9663,4.083,9664,3.045,9665,4.083,9666,3.045,9667,7.839,9668,4.083,9669,3.045,9670,4.083,9671,3.045,9672,4.083,9673,3.045,9674,2.127,9675,2.213,9676,2.46,9677,3.958,9678,5.908,9679,3.958,9680,4.083,9681,4.083,9682,6.761,9683,4.083,9684,2.46,9685,4.083,9686,2.46,9687,2.46,9688,4.083,9689,2.46,9690,2.46,9691,4.083,9692,2.46,9693,2.46,9694,2.46,9695,2.46,9696,2.46,9697,2.46,9698,2.46,9699,2.46,9700,2.46,9701,2.46,9702,5.235,9703,2.46,9704,2.46,9705,2.46,9706,2.46,9707,2.46,9708,2.46,9709,2.46,9710,2.46,9711,2.46,9712,2.46,9713,2.46,9714,4.083,9715,2.46,9716,2.384,9717,2.46,9718,3.358,9719,2.055,9720,2.384,9721,2.384,9722,2.46,9723,4.083,9724,2.46,9725,4.083,9726,2.46,9727,2.384,9728,2.46,9729,2.46,9730,2.46,9731,2.46,9732,2.46,9733,2.46,9734,2.46,9735,2.384,9736,2.384]],["title/interfaces/FeathersService.html",[334,0.731,9737,5.947]],["body/interfaces/FeathersService.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.089,27,0.463,29,0.813,30,0.001,31,0.581,32,0.16,33,0.502,34,1.533,35,1.256,36,2.621,47,0.8,59,3.495,95,0.144,101,0.019,102,5.206,103,0.001,104,0.001,105,1.205,111,1.296,163,1.99,167,2.379,185,5.049,187,0.935,217,1.173,227,0.67,234,1.05,235,6.334,264,4.36,277,3.637,305,1.842,334,0.695,336,1.547,367,5.627,425,1.723,427,2.335,535,6.327,569,4.437,704,3.201,722,2.882,731,3.56,766,5.351,839,3.083,883,3.823,960,4.437,1127,4.115,1141,7.236,1180,3.879,1187,4.297,1188,4.246,1189,4.246,1190,4.492,1191,4.911,1422,4.806,1798,3.649,1905,6.288,2045,6.296,2461,3.918,2487,4.115,3835,5.736,4661,5.923,5183,5.662,6616,3.875,8370,4.925,8404,4.699,8887,4.699,9620,5.062,9621,4.363,9622,5.222,9623,5.222,9624,5.414,9625,5.414,9626,5.654,9737,9.816,9738,10.374,9739,5.654,9740,8.331,9741,12.497,9742,6.465,9743,10.374,9744,8.331,9745,6.465,9746,8.331,9747,6.465,9748,5.654,9749,5.976,9750,5.976,9751,5.976,9752,5.976,9753,5.976,9754,8.331,9755,5.976,9756,5.414,9757,5.062,9758,5.976,9759,5.976,9760,5.976,9761,5.976]],["title/injectables/FeathersServiceProvider.html",[105,0.91,8404,4.943]],["body/injectables/FeathersServiceProvider.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.119,27,0.437,29,0.725,30,0.001,31,0.519,32,0.155,33,0.448,34,1.144,35,0.814,36,2.271,47,0.814,95,0.147,101,0.019,102,5.315,103,0.001,104,0.001,105,1.239,107,1.621,111,1.348,127,0.842,167,2.474,185,4.435,187,0.972,217,1.205,227,0.697,234,1.092,235,5.226,264,4.451,277,3.737,305,1.915,334,0.722,367,6.25,379,1.524,425,1.792,427,3.345,535,6.119,569,6.355,576,3.795,704,4.585,722,2.998,731,3.659,766,5.402,839,3.206,960,4.615,1127,4.28,1141,6.998,1180,3.986,1187,4.416,1188,4.364,1189,4.364,1190,4.616,1191,5.046,1422,4.998,1798,3.795,1905,6.917,2045,6.47,2461,4.075,2487,5.894,3835,5.894,4661,3.549,5183,5.818,6616,4.03,8370,5.123,8404,6.731,8887,4.888,9620,7.251,9621,6.25,9622,7.48,9623,7.48,9624,7.755,9625,7.755,9626,8.099,9737,9.982,9738,9.792,9739,5.881,9740,6.216,9741,11.065,9743,8.56,9744,6.216,9746,6.216,9748,5.881,9749,6.216,9750,6.216,9751,6.216,9752,6.216,9753,8.56,9754,8.56,9755,6.216,9756,5.631,9757,5.265,9758,6.216,9759,6.216,9760,6.216,9761,6.216,9762,9.26,9763,6.724,9764,6.724,9765,6.724]],["title/entities/FederalStateEntity.html",[380,1.445,6464,4.667]],["body/entities/FederalStateEntity.html",[0,0.341,3,0.018,4,0.018,5,0.009,7,0.114,27,0.494,30,0.001,31,0.698,32,0.163,33,0.485,47,0.975,55,1.628,83,3.066,95,0.129,96,2.067,101,0.019,103,0.001,104,0.001,165,0.785,240,3.952,334,0.812,364,2.181,369,2.657,370,3.944,371,3.302,380,2.129,381,2.513,386,5.708,398,2.226,399,3.976,400,3.334,402,3.132,404,1.362,405,2.013,406,2.457,591,3.284,592,3.423,620,4.875,621,5.757,622,4.875,623,5.757,1858,5.248,2095,3.976,2574,5.171,4265,5.381,4271,5.461,4281,3.301,5736,6.757,5752,4.945,6445,10.723,6446,10.897,6447,6.609,6448,6.609,6449,6.609,6450,6.609,6455,8.392,6456,10.472,6457,10.472,6458,6.609,6459,6.609,6460,6.609,6461,6.609,6462,6.609,6463,6.609,6464,6.877,6465,6.609,6466,6.609,6467,5.917,9766,7.556,9767,7.556,9768,7.556,9769,7.556]],["title/injectables/FederalStateRepo.html",[105,0.91,9770,5.694]],["body/injectables/FederalStateRepo.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.215,10,4.059,12,4.606,18,5.082,26,2.132,27,0.529,29,0.978,30,0.001,31,0.733,32,0.17,33,0.604,34,1.293,35,1.511,36,2.676,40,3.668,47,0.804,49,3.957,95,0.154,96,2.079,99,1.268,101,0.013,103,0.001,104,0.001,105,1.345,107,1.832,112,2.826,187,1.099,227,1.043,380,1.615,381,3.346,398,2.239,404,1.812,596,3.66,692,5.111,877,7.676,883,4.267,884,4.739,885,6.306,908,4.659,909,4.715,910,4.659,911,4.715,912,5.411,913,4.659,914,4.715,915,4.212,3675,5.215,6464,6.903,8994,8.423,9002,8.423,9770,8.423,9771,11.274,9772,7.599,9773,7.599,9774,7.599,9775,7.599]],["title/injectables/FederalStateService.html",[105,0.91,9776,5.694]],["body/injectables/FederalStateService.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.134,8,1.344,27,0.459,29,0.872,30,0.001,31,0.68,32,0.151,33,0.538,35,1.076,36,2.386,47,0.866,95,0.156,99,1.484,101,0.015,103,0.001,104,0.001,105,1.488,107,2.143,112,2.677,127,1.113,187,1.286,215,2.837,216,1.644,217,1.157,221,2.058,227,0.922,450,3.652,883,3.771,1852,3.753,1904,3.719,1961,6.211,3813,6.101,4323,5.818,6464,7.637,9770,11.198,9776,9.319,9777,7.95,9778,12.146,9779,8.89,9780,11.127,9781,8.89,9782,8.89,9783,11.127,9784,8.89,9785,7.445,9786,6.773,9787,7.95,9788,8.89]],["title/interfaces/File.html",[5,0.008,334,0.731]],["body/interfaces/File.html",[3,0.022,4,0.022,5,0.015,7,0.139,30,0.001,32,0.155,47,1.016,55,1.985,95,0.118,101,0.022,103,0.001,104,0.001,163,4.076,165,0.891,334,1.385,336,2.205,1342,8.322,1344,6.031,1487,7.21,2145,5.79,6262,7.216,6263,7.216,6264,7.717,6265,7.444,6266,7.444,6267,5.866,6268,7.216,6269,6.438,6270,6.438,6271,6.438,6272,6.438,6273,6.698,6274,6.85,6275,6.562,6276,6.85,6277,6.85]],["title/classes/FileContentBody.html",[0,0.232,5644,4.517]],["body/classes/FileContentBody.html",[0,0.456,2,0.651,3,0.014,4,0.014,5,0.007,7,0.088,9,2.751,27,0.346,30,0.001,31,0.636,32,0.186,47,0.868,83,1.786,95,0.138,99,0.974,101,0.022,103,0,104,0,144,3.123,150,2.021,163,1.796,165,0.657,240,1.852,364,1.527,369,1.295,374,1.863,375,3.737,376,1.335,379,1.9,404,2.046,467,3.593,470,4.75,471,3.976,524,3.357,999,5.336,1000,3.413,1031,1.829,1044,2.8,1770,3.39,2303,4.603,2553,4.57,2584,5.857,2848,2.818,2849,2.525,2889,2.89,3251,5.817,3253,5.817,3259,5.063,3262,2.991,3267,3.265,4009,3.716,4037,3.716,4038,7.047,4096,5.748,5562,6.33,5564,6.33,5566,6.33,5568,6.33,5570,6.33,5604,3.82,5643,6.517,5644,7.123,5645,6.517,5646,6.517,5647,6.517,5835,3.668,5836,6.811,6979,3.878,7039,3.716,8169,8.219,8170,6.733,8171,4.006,8174,6.517,8175,6.517,8176,4.006,8177,6.517,8178,3.579,8179,3.94,8180,6.517,8181,6.517,8182,3.878,8183,3.878,8184,3.878,8185,3.878,8186,4.006,8187,4.006,8188,4.006,8189,4.006,8190,4.006,9789,5.837,9790,5.837]],["title/classes/FileDto.html",[0,0.232,6324,5.055]],["body/classes/FileDto.html",[0,0.309,2,1.011,3,0.021,4,0.021,5,0.016,7,0.137,27,0.529,29,0.71,30,0.001,31,0.718,32,0.174,33,0.439,47,0.914,95,0.145,101,0.015,103,0.001,104,0.001,127,1.136,163,3.772,165,0.883,214,3.552,1026,5.028,1342,7.701,1344,5.936,1487,6.855,2095,3.598,3580,3.693,6170,6.106,6206,6.459,6324,9.801,9791,9.07,9792,11.267,9793,9.07,9794,9.07,9795,9.07,9796,9.07,9797,6.026,9798,9.07,9799,7.933,9800,8.384]],["title/classes/FileDto-1.html",[0,0.193,905,2.354,6324,4.202]],["body/classes/FileDto-1.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,26,2.761,27,0.537,29,0.681,30,0.001,31,0.707,32,0.177,33,0.421,34,2.046,47,0.783,95,0.154,99,1.452,101,0.015,103,0.001,104,0.001,127,1.089,165,0.86,336,2.081,405,2.925,595,2.912,618,3.557,619,4.822,2095,3.451,3579,6.542,3610,5.878,4281,3.799,6170,6.159,6189,6.553,6202,6.811,6208,5.778,6217,5.916,6324,8.159,8358,5.778,9801,8.698,9802,10.577,9803,10.976,9804,8.698,9805,8.698,9806,8.698,9807,6.466,9808,7.607]],["title/classes/FileDtoBuilder.html",[0,0.232,9809,6.286]],["body/classes/FileDtoBuilder.html",[0,0.257,2,0.841,3,0.018,4,0.018,5,0.016,7,0.114,8,1.209,27,0.463,29,0.88,30,0.001,31,0.717,32,0.153,33,0.543,35,1.36,47,0.957,95,0.154,101,0.013,103,0.001,104,0.001,116,3.498,163,4.081,217,1.557,227,1.165,234,1.224,627,4.118,667,4.744,1016,3.943,1342,8.204,1344,6.55,1487,7.158,2022,8.52,2033,5.269,6170,5.541,6324,9.857,9809,9.251,9810,10.464,9811,7.542,9812,10.008,9813,10.008,9814,10.008,9815,7.542,9816,10.008,9817,7.542,9818,10.008,9819,12.451,9820,7.542,9821,6.972,9822,7.542,9823,7.542,9824,7.542,9825,7.542,9826,7.542,9827,6.972,9828,7.542,9829,6.596]],["title/classes/FileElement.html",[0,0.232,2829,4.45]],["body/classes/FileElement.html",[0,0.214,2,0.7,3,0.015,4,0.015,5,0.008,7,0.095,8,1.066,27,0.55,29,0.974,30,0.001,31,0.696,32,0.175,33,0.601,35,1.562,36,1.892,47,0.933,55,1.901,59,1.954,95,0.113,101,0.017,103,0.001,104,0.001,112,2.25,116,2.748,144,3.046,148,3.726,165,0.691,208,2.344,221,1.452,227,1.149,334,0.674,347,2.065,363,5.617,371,1.73,404,1.839,595,2.955,596,3.873,661,3.708,687,2.674,692,3.297,728,3.375,806,2.554,884,4.158,1345,2.489,1790,3.726,1793,6.586,1865,4.019,2557,5.917,2627,2.636,2749,7.822,2752,6.284,2753,6.284,2754,6.284,2755,7.358,2756,6.284,2758,4.168,2759,5.41,2760,6.499,2762,6.165,2763,5.41,2764,6.37,2766,4.383,2767,4.657,2769,6.414,2770,4.383,2774,4.383,2776,4.168,2804,5.348,2829,7.249,3251,6.567,3253,6.567,3945,4.56,3946,4.56,3947,4.56,3956,3.942,8634,4.467,8636,5.799,8639,5.487,8641,5.487,9830,10.789,9831,6.273,9832,6.273,9833,6.273,9834,6.273,9835,6.273,9836,5.799,9837,6.273,9838,5.799,9839,8.157,9840,5.799,9841,8.157,9842,5.799,9843,5.799,9844,5.799,9845,5.487,9846,5.799]],["title/classes/FileElementContent.html",[0,0.232,9847,5.694]],["body/classes/FileElementContent.html",[0,0.361,2,0.92,3,0.02,4,0.02,5,0.01,7,0.125,27,0.484,29,0.646,30,0.001,31,0.462,32,0.178,33,0.399,34,1.996,47,0.914,95,0.151,99,1.377,101,0.018,103,0.001,104,0.001,127,1.47,165,0.831,364,1.933,376,1.888,467,3.582,475,4.034,618,3.375,966,4.199,1031,2.586,2303,4.756,2578,3.679,2884,4.389,2885,4.389,2889,4.086,3251,7.598,3253,7.598,3436,5.765,3448,5.06,3694,6.957,3698,6.165,3702,5.482,3704,5.482,3977,8.087,4096,6.291,5562,5.325,8650,6.666,9847,10.985,9848,11.451,9849,7.218,9850,7.629,9851,6.911,9852,6.911]],["title/classes/FileElementContentBody.html",[0,0.232,8174,4.517]],["body/classes/FileElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.905,5564,6.314,5566,6.314,5568,6.314,5570,6.314,5604,3.804,5643,6.502,5644,7.109,5645,6.502,5646,6.502,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,7.109,8175,6.502,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,6.502,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,9853,5.812,9854,5.812]],["title/entities/FileElementNode.html",[380,1.445,3180,5.324]],["body/entities/FileElementNode.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.129,27,0.448,30,0.001,32,0.148,47,0.945,95,0.161,96,2.344,101,0.018,103,0.001,104,0.001,165,0.852,208,3.201,217,1.115,227,0.888,240,4.112,334,0.921,364,1.98,380,2.31,381,2.85,398,2.524,404,1.959,405,2.283,617,4.75,1790,5.042,2553,5.09,2557,5.314,2577,4.836,2578,3.82,3143,5.695,3155,6.516,3180,8.513,3222,5.253,3243,9.509,3251,7.448,3253,7.448,3598,6.666,3619,5.317,4059,5.454,4061,5.454,9851,7.176,9852,7.176,9855,11.04,9856,7.921,9857,7.494,9858,9.509,9859,7.921,9860,7.921,9861,7.921]],["title/interfaces/FileElementNodeProps.html",[334,0.731,9858,5.947]],["body/interfaces/FileElementNodeProps.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.149,47,0.974,95,0.162,96,2.384,101,0.018,103,0.001,104,0.001,165,0.861,208,3.256,217,1.134,227,0.904,240,3.818,334,0.936,336,2.086,380,2.335,398,2.568,404,2.169,405,2.323,617,4.832,1790,5.083,2553,3.715,2557,5.372,2577,4.919,2578,3.886,3143,5.757,3155,6.587,3180,6.826,3222,5.344,3243,9.613,3251,7.726,3253,7.726,3598,7.381,3619,5.409,4059,5.548,4061,5.548,9851,7.3,9852,7.3,9855,8.058,9858,10.529,9859,8.058,9860,8.058,9861,8.058]],["title/interfaces/FileElementProps.html",[334,0.731,9845,5.947]],["body/interfaces/FileElementProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.161,36,1.799,47,0.984,95,0.138,101,0.02,103,0.001,104,0.001,112,1.849,144,2.95,148,2.582,165,0.84,208,3.134,221,1.942,227,1.292,334,0.901,336,2.008,347,1.697,371,2.314,404,2.131,687,3.576,728,4.102,806,3.416,1345,3.329,1865,4.886,2627,3.526,2749,6.502,2755,5.574,2759,5.144,2760,6.294,2763,5.144,2764,6.17,2804,7.167,2829,7.74,3251,7.637,3253,7.637,3956,5.271,8634,5.974,9830,7.756,9839,9.917,9840,7.756,9841,9.917,9842,7.756,9843,7.756,9844,7.756,9845,9.383,9846,7.756]],["title/classes/FileElementResponse.html",[0,0.232,3977,5.181]],["body/classes/FileElementResponse.html",[0,0.349,2,0.872,3,0.018,4,0.018,5,0.009,7,0.118,27,0.519,29,0.613,30,0.001,31,0.438,32,0.185,33,0.378,34,2.143,47,0.865,95,0.147,99,1.305,101,0.017,103,0.001,104,0.001,127,1.432,165,0.803,364,2.21,376,1.789,467,3.546,475,3.822,618,3.198,966,3.979,1031,2.45,2303,5.107,2578,3.487,2883,5.118,2884,5.452,2885,5.452,2888,4.739,2889,5.075,3251,6.779,3253,6.779,3436,5.463,3448,4.795,3694,7.47,3698,6.641,3702,5.195,3704,5.195,3977,9.599,4096,6.754,5562,6.614,9847,10.163,9848,11.951,9851,6.549,9852,6.549,9862,6.84,9863,6.84,9864,6.84,9865,6.84,9866,6.84]],["title/classes/FileElementResponseMapper.html",[0,0.232,5583,5.947]],["body/classes/FileElementResponseMapper.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.498,29,0.797,30,0.001,31,0.57,32,0.164,33,0.492,34,1.315,35,1.376,95,0.146,99,1.29,100,2.588,101,0.013,103,0.001,104,0.001,111,2.279,116,2.408,165,0.797,214,3.207,217,1.006,227,1.179,234,1.961,347,2.057,591,3.36,627,3.954,806,3.147,974,4.583,975,5.639,978,6.244,980,5.889,1750,4.512,2051,4.403,2303,3.133,2547,8.452,2550,7.965,2551,7.965,2553,5.682,2554,7.75,2829,8.725,3251,4.583,3253,4.583,3694,4.583,3698,5.908,3715,5.504,3977,9.204,4096,4.144,5183,7.144,5562,4.988,5581,6.053,5583,11.49,8672,9.204,8673,6.761,8674,6.244,8676,6.244,8677,6.244,8678,6.244,9847,8.519,9867,12.551,9868,11.369,9869,7.73,9870,7.73]],["title/entities/FileEntity.html",[380,1.445,7953,5.181]],["body/entities/FileEntity.html",[0,0.12,3,0.008,4,0.008,5,0.01,7,0.154,26,2.385,27,0.528,30,0.001,31,0.507,32,0.176,33,0.627,47,0.919,49,4.309,55,2.085,83,2.961,95,0.136,96,1.559,97,1.524,99,0.588,101,0.01,103,0,104,0,111,0.707,116,2.234,144,2.488,145,3.018,148,1.754,165,0.446,204,1.196,217,0.459,227,1.004,234,1.778,240,4.063,305,1.004,319,2.704,334,0.379,347,1.451,359,1.987,364,2.333,369,2.948,370,4.297,371,3.172,380,1.211,381,1.172,386,6.04,398,1.038,399,2.261,404,0.635,405,0.939,406,1.146,500,5.655,573,2.685,591,1.532,592,1.597,620,2.274,621,4.341,622,2.274,623,4.341,701,1.246,775,5.052,905,1.467,957,1.954,1015,5.059,1031,1.786,1843,1.67,1849,4.135,1858,2.985,1904,1.474,2035,1.905,2095,1.398,2578,1.571,2632,4.691,3339,2.859,3578,2.941,3579,2.803,3610,2.785,4262,4.772,4265,4.058,4271,3.909,4272,2.136,4275,2.951,4280,2.951,4281,1.539,4333,2.112,4588,1.819,4771,6.892,4989,2.61,5007,1.905,6198,2.462,6216,3.159,6270,6.32,6491,2.951,6751,2.379,6854,1.905,7047,2.562,7948,6.724,7950,6.9,7953,4.341,8004,7.206,9808,3.082,9871,3.258,9872,5.465,9873,6.631,9874,6.631,9875,5.108,9876,6.277,9877,7.616,9878,7.206,9879,5.989,9880,6.9,9881,7.616,9882,7.616,9883,7.616,9884,3.524,9885,3.524,9886,7.616,9887,3.524,9888,4.236,9889,3.524,9890,3.524,9891,3.524,9892,3.524,9893,3.524,9894,3.524,9895,3.524,9896,3.524,9897,7.307,9898,3.524,9899,7.206,9900,3.524,9901,8.228,9902,3.524,9903,3.524,9904,3.524,9905,3.524,9906,5.267,9907,3.524,9908,3.524,9909,3.524,9910,3.524,9911,5.267,9912,3.524,9913,2.462,9914,2.62,9915,3.258,9916,3.258,9917,6.274,9918,5.267,9919,3.258,9920,8.362,9921,3.258,9922,3.258,9923,2.685,9924,3.258,9925,2.51,9926,6.631,9927,4.341,9928,5.267,9929,5.267,9930,5.267,9931,3.258,9932,3.258,9933,3.258,9934,4.236,9935,3.258,9936,3.258,9937,3.258,9938,5.794,9939,6.631,9940,3.258,9941,3.258,9942,2.951,9943,5.267,9944,3.258,9945,3.258,9946,3.258,9947,3.258,9948,3.258,9949,3.258,9950,5.267,9951,3.258,9952,5.267,9953,2.685,9954,5.267,9955,3.258,9956,2.562,9957,2.562,9958,3.258,9959,3.258,9960,3.258,9961,3.258,9962,2.685,9963,2.685,9964,2.76,9965,3.258,9966,3.258,9967,3.258,9968,5.267,9969,3.258]],["title/interfaces/FileEntityProps.html",[334,0.731,9917,5.947]],["body/interfaces/FileEntityProps.html",[0,0.129,3,0.009,4,0.009,5,0.01,7,0.159,26,2.713,30,0.001,31,0.561,32,0.182,33,0.662,47,0.96,49,3.697,55,2.348,83,3.597,95,0.14,96,1.656,97,1.644,99,0.634,101,0.01,103,0,104,0,111,0.762,116,2.35,145,3.076,148,1.863,165,0.474,204,1.289,217,0.495,227,1.038,234,1.77,240,4.027,305,1.083,334,0.408,336,0.909,347,2.124,359,1.325,369,2.763,370,4.144,371,2.76,380,1.286,398,1.12,399,2.402,404,0.685,405,1.013,406,1.236,500,6.449,573,2.895,591,3.74,592,3.898,620,2.452,621,4.612,622,2.452,623,4.612,701,1.344,775,4.626,905,1.582,957,2.107,1015,5.598,1031,1.897,1843,1.801,1849,4.715,1858,1.99,1904,1.59,2035,2.054,2095,1.508,2578,1.694,2632,4.61,3339,1.907,3578,3.124,3579,2.978,3610,4.593,4271,4.111,4272,2.303,4275,3.182,4280,3.182,4281,1.66,4333,2.278,4588,1.961,4989,2.772,5007,2.054,6198,2.655,6216,5.209,6270,6.994,6854,2.054,7047,2.762,7948,7.441,7950,7.869,7953,2.895,8004,8.218,9808,3.324,9871,3.513,9872,2.895,9873,3.513,9874,3.513,9875,2.706,9876,7.159,9877,8.686,9878,8.218,9879,6.83,9880,7.869,9881,8.686,9882,8.686,9883,8.686,9886,9.254,9888,2.825,9897,8.086,9899,8.218,9901,8.482,9906,3.513,9911,3.513,9913,2.655,9914,2.825,9915,3.513,9916,3.513,9917,7.526,9918,8.686,9919,3.513,9920,8.686,9921,3.513,9922,3.513,9923,2.895,9924,3.513,9925,2.706,9926,6.974,9927,4.612,9928,5.596,9929,5.596,9930,5.596,9931,3.513,9932,3.513,9933,3.513,9934,4.5,9935,3.513,9936,3.513,9937,3.513,9938,6.094,9939,6.974,9940,3.513,9941,3.513,9942,3.182,9943,5.596,9944,3.513,9945,3.513,9946,3.513,9947,3.513,9948,3.513,9949,3.513,9950,5.596,9951,3.513,9952,5.596,9953,2.895,9954,5.596,9955,3.513,9956,2.762,9957,2.762,9958,3.513,9959,3.513,9960,3.513,9961,3.513,9962,2.895,9963,2.895,9964,2.976,9965,3.513,9966,3.513,9967,3.513,9968,5.596,9969,3.513]],["title/classes/FileParamBuilder.html",[0,0.232,6309,5.947]],["body/classes/FileParamBuilder.html",[0,0.31,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,26,2.72,27,0.375,29,0.712,30,0.001,31,0.509,32,0.124,33,0.44,35,1.1,95,0.158,99,1.517,101,0.015,103,0.001,104,0.001,217,1.468,227,0.943,336,2.175,627,3.765,667,5.348,3339,6.157,3578,4.691,3579,6.49,3610,4.443,4205,3.803,6170,5.226,6217,5.551,6280,8.403,6282,9.608,6283,8.403,6286,10.43,6309,9.869,9970,10.43,9971,11.283,9972,11.861,9973,7.613,9974,9.09,9975,9.09,9976,9.09]],["title/classes/FileParams.html",[0,0.232,6235,4.667]],["body/classes/FileParams.html",[0,0.458,2,0.728,3,0.015,4,0.021,5,0.014,7,0.099,26,2.599,27,0.269,30,0.001,32,0.161,39,1.758,47,0.972,95,0.161,99,1.089,101,0.022,103,0.001,104,0.001,150,2.26,165,0.711,204,2.215,214,2.058,334,0.701,347,1.835,364,1.189,369,1.449,373,4.864,374,2.083,375,4.293,376,1.493,377,6.027,379,1.479,380,1.387,467,3.643,469,2.866,470,5.128,471,4.568,565,4.522,1000,4.991,1001,6.754,1011,3.298,1031,3.268,1044,3.132,1180,2.809,1270,3.87,1330,5.775,1331,4.272,1332,4.272,2702,4.699,2889,5.164,3610,3.191,4205,2.2,5836,6.624,6170,4.202,6183,5.938,6189,6.141,6217,3.211,6220,4.48,6221,4.56,6222,4.56,6225,7.868,6228,4.56,6229,8.144,6230,7.873,6231,7.873,6232,4.56,6233,4.48,6234,7.038,6235,6.227,6236,4.56,6237,4.406,6238,6.123,6239,4.337,6240,4.406,6241,4.48,6242,4.406,6243,4.406,6244,4.155,6245,4.56,6246,4.56,6247,4.56,6248,4.155,6249,4.155,6250,4.272,6251,4.337,6252,4.56,9977,6.528,9978,6.528]],["title/classes/FilePermissionEntity.html",[0,0.232,9897,5.493]],["body/classes/FilePermissionEntity.html",[0,0.24,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,10,4.699,26,2.028,27,0.529,29,0.552,30,0.001,31,0.395,32,0.148,33,0.341,49,4.272,95,0.15,96,2.617,97,3.051,99,1.177,101,0.016,103,0.001,104,0.001,127,0.883,144,3.202,145,2.948,165,0.749,234,1.145,240,4.246,319,3.48,334,0.758,347,2.355,364,2.286,369,2.899,370,3.152,371,3.211,386,4.018,398,2.078,405,2.55,595,2.362,883,4.94,1031,2.998,1804,7.057,1805,7.736,1904,2.95,2574,4.938,6491,5.907,9897,7.729,9979,10.938,9980,6.52,9981,10.184,9982,10.764,9983,10.184,9984,9.568,9985,7.053,9986,7.053,9987,7.053,9988,10.764,9989,7.053,9990,7.053,9991,6.52,9992,6.52,9993,6.52,9994,6.52,9995,8.369,9996,6.169,9997,8.369,9998,6.169,9999,8.369,10000,6.169,10001,8.369,10002,6.169]],["title/interfaces/FilePermissionEntityProps.html",[334,0.731,9983,5.947]],["body/interfaces/FilePermissionEntityProps.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,10,5.019,26,2.533,30,0.001,32,0.174,33,0.641,49,3.928,95,0.153,96,2.731,97,3.25,99,1.254,101,0.017,103,0.001,104,0.001,145,3.025,165,0.782,234,1.22,240,4.055,334,0.807,336,1.798,347,2.781,369,2.651,370,3.289,371,2.753,398,2.214,405,2.002,883,5.275,1031,3.128,1804,7.537,1805,8.261,1904,3.143,2574,5.152,9897,6.069,9979,6.292,9980,6.946,9981,10.876,9982,11.495,9983,9.806,9988,11.495,9991,6.946,9992,6.946,9993,6.946,9994,6.946,9995,8.732,9996,6.572,9997,8.732,9998,6.572,9999,8.732,10000,6.572,10001,8.732,10002,6.572]],["title/entities/FileRecord.html",[380,1.445,6188,4.075]],["body/entities/FileRecord.html",[0,0.27,3,0.008,4,0.008,5,0.008,7,0.15,26,2.485,27,0.454,30,0.001,31,0.58,32,0.153,33,0.384,34,0.921,39,0.891,47,0.86,49,4.215,55,1.48,83,3.035,95,0.133,96,1.481,97,1.432,99,0.552,101,0.017,103,0,104,0,116,3.879,145,2.512,148,2.443,165,0.538,187,0.479,188,1.223,192,2.048,204,2.331,217,1.525,227,1.339,234,1.833,240,3.872,247,1.297,305,0.943,334,0.738,347,2.007,359,2.768,364,2.007,369,2.202,370,2.884,371,1.493,379,0.75,380,2.199,381,1.101,398,0.975,399,2.148,402,1.372,404,0.596,405,1.443,406,1.077,461,0.757,564,2.519,574,2.377,576,3.056,591,1.439,592,1.499,701,2.429,770,3.21,775,4.213,905,1.378,938,3.936,946,3.544,1015,5.257,1031,3.109,1180,2.33,1185,2.357,1255,3.655,1350,3.856,1487,5.257,1750,2.402,1852,2.286,1945,3.716,2037,1.942,2038,3.783,2095,3.15,2268,1.886,2440,3.085,2574,2.794,2632,3.656,2643,1.923,2649,1.476,2659,1.551,2849,1.432,3090,1.432,3143,1.734,3339,2.717,3353,2.272,3364,3.056,3610,4.849,3720,1.868,3814,4.025,4205,3.344,4215,2.522,4217,2.08,4265,2.357,4271,2.951,4281,1.446,4282,1.963,4748,1.835,4771,5.235,5043,1.868,5055,1.904,6170,5.227,6188,4.758,6189,4.771,6190,3.856,6191,5.196,6198,2.312,6206,2.357,6208,2.199,6210,4.995,6216,3.809,6217,5.27,6218,5.196,6511,2.006,6739,2.592,6740,4.025,6854,2.926,9807,2.461,9872,5.235,9875,5.653,9879,4.995,9913,2.312,9923,2.522,9927,2.522,9953,4.125,9956,2.406,9957,2.406,9962,2.522,9963,2.522,10003,2.674,10004,4.24,10005,6.216,10006,5.55,10007,6.216,10008,3.31,10009,7.072,10010,3.31,10011,3.31,10012,3.31,10013,3.31,10014,3.06,10015,3.06,10016,3.31,10017,3.31,10018,3.31,10019,3.31,10020,3.31,10021,6.508,10022,3.31,10023,3.31,10024,2.674,10025,2.522,10026,4.24,10027,2.461,10028,3.936,10029,3.936,10030,3.936,10031,2.08,10032,4.374,10033,4.374,10034,4.374,10035,4.374,10036,4.374,10037,4.374,10038,4.24,10039,5.358,10040,4.374,10041,2.522,10042,4.025,10043,2.461,10044,4.125,10045,2.522,10046,4.125,10047,5.38,10048,2.357,10049,2.592,10050,2.406,10051,2.406,10052,2.674,10053,2.674,10054,2.522,10055,2.461,10056,2.522,10057,2.674,10058,2.674,10059,2.674,10060,2.674,10061,2.674,10062,2.674,10063,2.674,10064,2.674,10065,2.674,10066,2.674,10067,7.592,10068,2.674,10069,2.674,10070,4.374,10071,2.674,10072,2.674,10073,4.374,10074,4.374,10075,4.374,10076,2.674,10077,2.674,10078,2.674,10079,2.674,10080,2.674,10081,2.674,10082,2.674,10083,4.374,10084,5.55,10085,2.592,10086,2.674,10087,4.374,10088,2.592,10089,2.674,10090,4.374,10091,2.674,10092,5.55,10093,5.55,10094,2.592,10095,5.55,10096,2.674,10097,2.674,10098,2.674,10099,2.674,10100,2.674,10101,2.674,10102,2.674,10103,2.592,10104,2.674,10105,2.674,10106,2.674,10107,2.674,10108,2.674,10109,2.674,10110,2.674,10111,2.674,10112,2.674]],["title/classes/FileRecordFactory.html",[0,0.232,10113,6.286]],["body/classes/FileRecordFactory.html",[0,0.165,2,0.539,3,0.011,4,0.011,5,0.009,7,0.073,8,0.882,27,0.534,29,1.014,30,0.001,31,0.701,32,0.179,33,0.595,34,1.495,35,1.463,47,0.52,49,1.902,55,2.471,59,3.273,95,0.135,101,0.008,103,0,104,0,127,0.606,138,3.188,144,3.247,148,1.488,165,0.572,185,4.862,216,1.349,217,1.144,227,0.757,234,1.706,319,3.529,359,2.544,366,2.704,379,1.992,380,2.233,381,2.428,404,1.315,538,3.288,596,3.912,627,2.239,660,7.234,661,4.643,662,5.526,665,4.119,666,5.526,667,5.728,668,4.119,669,4.119,670,4.119,671,4.046,672,4.504,673,4.961,674,6.489,675,5.825,676,7.06,677,2.755,682,2.729,683,4.119,684,2.755,685,5.167,686,5.335,687,4.173,688,5.017,689,4.081,690,2.729,691,2.572,692,4.128,693,2.657,694,2.613,695,2.729,696,5.09,697,2.755,698,4.873,699,2.729,700,7.155,701,4.175,702,6.664,703,2.755,704,4.352,705,2.729,706,2.755,707,2.729,708,2.755,709,2.729,710,3.078,711,2.867,712,2.729,713,6.125,714,2.755,715,2.729,716,4.119,717,3.852,718,4.119,719,2.755,720,2.635,721,2.613,722,2.156,723,2.729,724,2.729,725,2.729,726,2.755,727,2.755,728,1.849,729,2.729,730,2.755,731,2.883,732,2.729,733,2.755,734,2.755,735,2.809,736,2.867,737,2.898,1015,2.704,1180,2.081,1344,3.165,1358,3.078,1487,2.704,3610,2.364,4121,5.753,4205,1.63,6188,2.898,6189,2.635,6216,2.68,6217,2.379,6218,3.165,6741,3.786,7018,4.229,8358,3.212,9827,4.47,9879,3.515,10021,5.425,10046,3.684,10113,8.126,10114,4.835,10115,9.791,10116,4.835,10117,4.229,10118,6.746,10119,4.47,10120,4.835,10121,4.835,10122,4.835]],["title/classes/FileRecordListResponse.html",[0,0.232,6219,5.055]],["body/classes/FileRecordListResponse.html",[0,0.37,2,0.669,3,0.014,4,0.014,5,0.007,7,0.091,27,0.473,29,0.47,30,0.001,31,0.558,32,0.176,33,0.555,34,1.455,47,0.911,55,2.972,56,6.022,59,2.664,70,6.216,83,1.836,95,0.139,101,0.018,103,0,104,0,127,0.752,145,1.52,150,2.078,163,3.779,165,0.67,364,1.978,375,3.795,376,1.373,380,1.275,404,1.795,467,3.552,469,2.635,596,3.313,618,3.497,1007,7.696,1008,6.636,1009,6.186,1011,3.033,1013,4.563,1014,2.862,1015,4.783,1016,2.107,1017,4.194,1018,5.518,1019,4.968,1020,3.929,1021,3.193,1022,4.194,1023,4.194,1025,5.374,1026,4.741,1031,3.122,1356,4.849,1360,4.7,1487,3.357,2095,3.393,2745,6.342,2889,4.934,3578,3.098,3610,2.934,6170,3.961,6173,3.988,6178,4.849,6179,4.849,6180,4.849,6181,4.849,6182,4.7,6183,5.598,6184,5.027,6185,8.988,6188,5.126,6189,5.918,6190,8.174,6191,6.521,6192,9.128,6193,5.027,6194,4.849,6195,5.027,6196,3.244,6197,5.027,6198,4.194,6199,5.027,6200,5.027,6201,5.027,6202,4.7,6203,4.849,6204,5.027,6205,5.027,6206,4.274,6207,4.849,6208,3.988,6209,4.849,6210,4.363,6211,5.027,6212,5.027,6213,4.849,6214,5.027,6215,4.462,6216,3.327,6217,2.953,6218,3.929,6219,6.358,10123,6.002,10124,6.002]],["title/classes/FileRecordMapper.html",[0,0.232,10125,6.286]],["body/classes/FileRecordMapper.html",[0,0.245,2,0.802,3,0.017,4,0.017,5,0.009,7,0.109,8,1.171,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,35,1.328,55,2.863,56,5.631,59,3.02,70,5.812,95,0.124,101,0.012,103,0.001,104,0.001,145,1.821,217,1.528,227,1.137,234,1.781,380,1.528,564,2.637,627,4.079,982,3.585,1008,6.344,1016,3.404,1330,6.171,1750,3.19,6170,5.436,6188,7.863,6191,4.707,6192,9.109,6219,8.153,6239,8.141,9810,10.266,10039,4.854,10048,6.904,10085,5.632,10088,7.592,10094,5.632,10125,8.962,10126,7.192,10127,9.695,10128,10.138,10129,8.962,10130,9.695,10131,7.192,10132,9.83,10133,6.648,10134,7.192,10135,8.962,10136,7.192,10137,6.648,10138,6.648,10139,6.29,10140,7.192,10141,6.648,10142,5.025,10143,9.695,10144,10.967,10145,10.967,10146,7.192,10147,7.192,10148,7.192,10149,10.967,10150,7.192]],["title/classes/FileRecordParams.html",[0,0.232,6225,4.517]],["body/classes/FileRecordParams.html",[0,0.455,2,0.701,3,0.015,4,0.021,5,0.011,7,0.095,26,2.693,27,0.421,30,0.001,32,0.169,39,1.692,47,0.952,95,0.16,99,1.049,101,0.022,103,0.001,104,0.001,150,2.176,165,0.692,204,2.132,214,1.981,334,0.675,347,1.787,364,1.861,369,1.394,373,4.736,374,2.005,375,4.222,376,1.437,377,5.869,379,1.424,380,1.335,467,3.626,469,2.759,470,5.066,471,4.493,565,3.132,1000,4.931,1001,6.643,1031,3.201,1044,3.014,1180,2.704,1270,3.725,1330,5.623,1331,4.112,1332,4.112,2702,4.603,2888,3.808,2889,5.488,3610,4.994,4205,3.443,5821,7.136,5836,6.531,6170,5.133,6183,7.254,6189,6.6,6217,5.026,6220,4.312,6221,4.39,6222,4.39,6225,8.046,6228,4.39,6229,8.046,6230,7.744,6231,7.744,6232,4.39,6233,4.312,6234,6.895,6235,4.312,6236,4.39,6237,4.241,6238,5.962,6239,4.174,6240,4.241,6241,4.312,6242,4.241,6243,4.241,6244,4,6245,4.39,6246,4.39,6247,4.39,6248,4,6249,4,6250,4.112,6251,4.174,6252,4.39,10151,6.283,10152,6.283,10153,6.283,10154,6.283]],["title/injectables/FileRecordRepo.html",[105,0.91,10155,5.947]],["body/injectables/FileRecordRepo.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.069,8,0.84,10,2.808,12,3.186,18,3.515,26,2.88,27,0.522,29,0.979,30,0.001,31,0.7,32,0.17,33,0.604,34,1.613,35,1.513,36,2.848,40,2.192,47,0.603,49,2.737,56,2.179,58,2.93,59,2.953,95,0.131,98,2.693,99,0.758,101,0.008,103,0,104,0,105,0.931,107,1.095,111,2.162,112,3.046,187,0.657,217,1.694,221,2.68,227,1.231,234,1.751,277,4.889,351,2.279,380,1.478,381,2.314,404,1.254,450,1.865,591,1.974,596,2.892,692,4.603,701,4.603,877,6.585,883,2.952,884,3.278,885,4.273,908,2.784,909,2.818,910,2.784,911,2.818,912,3.234,913,2.784,914,2.818,915,2.517,964,3.117,1646,2.54,1750,4.783,1941,2.891,2144,3.927,2439,2.665,3610,5.486,4205,3.195,4431,2.853,4435,3.065,4661,2.397,5880,4.041,5882,4.861,6170,5.611,6188,7.385,6612,2.722,6902,7.671,6931,3.301,6932,3.301,6974,3.556,10048,4.955,10155,6.085,10156,4.541,10157,8.458,10158,6.957,10159,8.458,10160,8.458,10161,6.957,10162,6.432,10163,6.957,10164,6.957,10165,4.541,10166,9.816,10167,4.541,10168,6.957,10169,4.541,10170,4.541,10171,4.541,10172,4.541,10173,4.541,10174,6.957,10175,4.541,10176,6.432,10177,4.541,10178,6.957,10179,4.541,10180,6.957,10181,4.541,10182,4.541,10183,4.541,10184,8.458,10185,4.541,10186,4.541,10187,8.458,10188,4.541,10189,4.541,10190,4.198,10191,4.541,10192,4.541,10193,4.541,10194,4.541]],["title/classes/FileRecordResponse.html",[0,0.232,6192,5.055]],["body/classes/FileRecordResponse.html",[0,0.356,2,0.616,3,0.013,4,0.013,5,0.007,7,0.083,27,0.537,29,0.433,30,0.001,31,0.622,32,0.18,33,0.46,34,1.778,47,0.953,55,2.644,56,5.014,70,5.175,83,2.465,95,0.134,101,0.017,103,0,104,0,127,0.692,150,3.293,163,3.216,165,0.631,364,2.348,375,3.981,376,1.264,380,1.174,404,1.452,467,3.611,469,2.426,618,3.295,1007,5.83,1008,4.354,1009,5.417,1015,5.318,1025,5.062,1026,4.466,1031,2.98,1356,4.463,1360,4.326,1487,5.318,2095,3.196,2742,4.016,2745,6.053,2888,5.763,2889,5.744,3578,2.851,3610,4.648,6170,6.094,6173,3.671,6178,4.463,6179,4.463,6180,4.463,6181,4.463,6182,4.326,6183,8.612,6184,4.627,6185,8.701,6188,6.66,6189,6.527,6190,9.057,6191,7.272,6192,8.26,6193,6.747,6194,4.463,6195,4.627,6196,2.986,6197,4.627,6198,3.86,6199,4.627,6200,4.627,6201,4.627,6202,4.326,6203,4.463,6204,4.627,6205,4.627,6206,3.934,6207,4.463,6208,3.671,6209,4.463,6210,4.016,6211,4.627,6212,4.627,6213,4.463,6214,6.747,6215,7.069,6216,5.271,6217,4.678,6218,6.224,6219,4.107,10195,5.525,10196,5.525,10197,5.525,10198,5.525,10199,5.525,10200,5.525,10201,5.525,10202,5.525,10203,5.525,10204,5.525,10205,5.525,10206,5.525]],["title/classes/FileRecordScope.html",[0,0.232,10166,5.947]],["body/classes/FileRecordScope.html",[0,0.215,2,0.704,3,0.015,4,0.015,5,0.008,7,0.095,8,1.071,26,2.776,27,0.54,29,0.976,30,0.001,31,0.698,32,0.176,33,0.602,34,1.074,35,1.508,47,0.73,49,2.484,95,0.143,96,1.727,97,2.73,99,1.054,101,0.011,103,0.001,104,0.001,111,2.432,144,2.438,148,1.943,165,0.694,167,3.261,217,0.822,227,1.213,234,1.439,277,5.216,319,2.649,347,2.072,351,4.448,369,1.967,380,1.341,404,1.597,450,2.593,529,3.852,596,3.568,1350,4.495,2394,6.073,3610,3.086,4205,2.128,4465,5.836,5991,5.982,5992,5.982,5993,5.982,5998,5.982,5999,5.982,6000,4.333,6001,4.261,6002,4.333,6003,4.333,6012,4.261,6013,5.982,6014,4.333,6015,4.261,6016,4.333,6017,4.261,6018,7.496,6170,5.618,6188,3.784,6218,5.801,6238,5.982,9875,4.495,9879,4.589,10007,4.943,10166,11.686,10207,12.13,10208,5.099,10209,8.863,10210,8.863,10211,8.863,10212,7.752,10213,8.863,10214,8.863,10215,6.313,10216,8.863,10217,5.521,10218,8.863,10219,8.863,10220,5.836,10221,7.752,10222,6.313,10223,8.863,10224,5.521,10225,6.313,10226,5.521,10227,5.836]],["title/classes/FileRecordSecurityCheck.html",[0,0.232,10021,5.055]],["body/classes/FileRecordSecurityCheck.html",[0,0.242,2,0.388,3,0.008,4,0.008,5,0.007,7,0.153,26,2.518,27,0.397,29,0.272,30,0.001,31,0.567,32,0.122,33,0.344,34,0.959,39,0.937,47,0.87,49,3.535,55,1.214,83,3.228,95,0.135,96,1.542,97,1.504,99,0.581,101,0.017,103,0,104,0,116,3.919,127,0.436,144,2.471,145,2.565,148,2.516,165,0.557,187,0.503,188,1.285,192,1.68,204,2.412,217,1.546,227,1.35,234,1.929,240,3.955,247,1.363,305,0.991,319,2.685,334,0.764,347,2.049,359,1.966,364,1.637,369,1.814,370,2.342,371,0.959,380,1.909,398,1.025,399,2.237,402,1.442,404,0.627,405,1.894,406,1.131,461,0.796,564,3.294,574,1.527,576,3.182,591,3.09,592,3.221,595,1.165,701,2.514,770,2.063,775,5.013,905,1.448,938,2.529,946,2.277,1015,4.573,1031,3.306,1180,1.497,1185,2.477,1255,3.805,1350,5.822,1487,4.573,1750,2.501,1852,2.381,1945,2.387,2037,2.041,2038,3.939,2095,3.244,2268,1.982,2440,1.982,2574,2.91,2632,3.766,2643,2.02,2649,1.551,2659,1.63,2849,1.504,3090,1.504,3143,1.822,3339,1.746,3353,2.387,3364,1.963,3610,4.952,3720,1.963,3814,2.586,4205,3.414,4215,2.65,4217,2.186,4271,3.073,4281,1.52,4282,2.063,4748,1.928,5043,1.963,5055,2.001,6170,4.692,6188,4.261,6189,4.456,6190,4.015,6191,5.881,6198,2.43,6206,2.477,6208,2.311,6210,5.168,6216,3.941,6217,4.984,6218,3.69,6511,2.108,6739,2.724,6740,4.191,6854,1.88,9807,2.586,9872,2.65,9875,4.015,9879,2.529,9913,2.43,9923,2.65,9927,2.65,9953,4.296,9956,2.529,9957,2.529,9962,2.65,9963,2.65,10003,2.81,10004,2.724,10005,4.415,10006,2.81,10007,4.415,10009,6.605,10021,6.679,10024,2.81,10025,2.65,10026,4.415,10027,2.586,10028,4.099,10029,4.099,10030,4.099,10031,2.186,10032,4.554,10033,4.554,10034,4.554,10035,4.554,10036,4.554,10037,4.554,10038,6.403,10039,6.493,10040,5.743,10041,4.296,10042,4.191,10043,2.586,10044,4.296,10045,2.65,10046,4.296,10047,5.567,10048,2.477,10049,2.724,10050,2.529,10051,2.529,10052,2.81,10053,2.81,10054,2.65,10055,2.586,10056,2.65,10057,2.81,10058,2.81,10059,2.81,10060,2.81,10061,2.81,10062,2.81,10063,2.81,10064,2.81,10065,2.81,10066,2.81,10067,7.771,10068,2.81,10069,2.81,10070,4.554,10071,2.81,10072,2.81,10073,4.554,10074,4.554,10075,4.554,10076,2.81,10077,2.81,10078,2.81,10079,2.81,10080,2.81,10081,2.81,10082,2.81,10083,4.554,10084,5.743,10085,2.724,10086,2.81,10087,4.554,10088,2.724,10089,2.81,10090,4.554,10091,2.81,10092,5.743,10093,5.743,10094,2.724,10095,5.743,10096,2.81,10097,2.81,10098,2.81,10099,2.81,10100,2.81,10101,2.81,10102,2.81,10103,2.724,10104,2.81,10105,2.81,10106,2.81,10107,2.81,10108,2.81,10109,2.81,10110,2.81,10111,2.81,10112,2.81,10228,5.638,10229,3.479,10230,3.479,10231,3.479,10232,3.479]],["title/classes/FileResponseBuilder.html",[0,0.232,10233,5.947]],["body/classes/FileResponseBuilder.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.015,7,0.142,8,1.39,27,0.387,29,0.735,30,0.001,31,0.746,32,0.128,33,0.454,35,1.136,47,0.888,95,0.148,101,0.016,103,0.001,104,0.001,116,2.924,163,2.889,217,1.222,227,0.973,334,1.008,627,3.819,667,5.455,3580,3.822,6170,5.33,6259,8.677,6273,9.432,9797,6.236,9799,8.21,9810,10.066,10233,10.066,10234,11.509,10235,9.387,10236,9.483,10237,10.066]],["title/classes/FileSecurityCheckEntity.html",[0,0.232,9901,5.493]],["body/classes/FileSecurityCheckEntity.html",[0,0.25,2,0.818,3,0.017,4,0.017,5,0.009,7,0.111,27,0.524,29,0.575,30,0.001,31,0.411,32,0.161,33,0.536,47,0.88,83,3.62,95,0.142,96,2.007,101,0.016,103,0.001,104,0.001,127,0.919,144,3.393,145,2.805,165,0.77,234,1.921,240,4.234,319,3.687,334,0.788,364,2.247,398,2.161,405,2.618,564,4.338,591,4.815,592,5.018,595,2.456,775,7.255,1031,3.471,1350,8.426,1904,3.069,2037,4.304,2038,6.864,2574,5.071,9901,7.936,9913,5.125,9914,9.64,9979,10.86,10039,7.986,10041,7.485,10042,7.303,10043,5.453,10044,7.485,10045,5.589,10238,6.781,10239,10.349,10240,9.825,10241,7.336,10242,7.336,10243,7.336,10244,10.938,10245,9.082,10246,7.336]],["title/interfaces/FileSecurityCheckEntityProps.html",[334,0.731,10239,5.947]],["body/interfaces/FileSecurityCheckEntityProps.html",[0,0.283,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,32,0.16,33,0.636,47,0.953,83,3.264,95,0.151,96,2.276,101,0.018,103,0.001,104,0.001,145,2.983,165,0.836,234,1.732,240,4.075,334,0.894,336,1.991,398,2.451,405,2.217,564,4.71,591,3.616,592,3.769,775,7.222,1031,3.344,1350,9.149,1904,3.48,2037,4.882,2038,7.455,2574,5.507,9901,6.721,9913,5.813,9914,6.185,9979,6.968,10039,8.671,10041,6.339,10042,7.932,10043,6.185,10044,8.13,10045,6.339,10238,7.692,10239,10.303,10244,11.877,10245,7.692]],["title/controllers/FileSecurityController.html",[481,2.611,10247,5.947]],["body/controllers/FileSecurityController.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.118,8,1.235,27,0.422,29,0.801,30,0.001,31,0.573,32,0.155,33,0.494,35,1.238,47,0.921,95,0.166,100,2.608,101,0.013,103,0.001,104,0.001,112,2.846,187,1.126,215,2.486,216,1.44,217,1.014,221,2.366,227,0.808,234,1.265,264,3.274,351,6.314,364,1.862,367,5.778,376,1.782,447,3.229,481,3.925,543,3.963,555,4.05,1345,3.091,1357,7.201,1360,6.1,1491,5.662,2727,3.737,3578,4.02,4007,4.894,6170,5.286,6239,8.05,6614,5.257,6615,6.524,6616,4.669,6638,6.524,9914,5.791,10132,9.557,10247,8.942,10248,11.412,10249,7.79,10250,10.224,10251,10.224,10252,7.79,10253,9.354,10254,7.79,10255,7.79,10256,7.79,10257,7.79,10258,7.79,10259,11.412,10260,10.55,10261,7.79,10262,7.79,10263,7.79,10264,7.79,10265,7.201,10266,7.79,10267,7.79,10268,7.79,10269,7.79,10270,7.79,10271,7.79,10272,7.79]],["title/injectables/FileSystemAdapter.html",[105,0.91,10273,5.694]],["body/injectables/FileSystemAdapter.html",[0,0.152,3,0.011,4,0.011,5,0.015,7,0.068,8,0.831,27,0.498,29,0.875,30,0.001,31,0.625,32,0.157,33,0.54,35,1.461,36,2.671,47,0.986,95,0.13,101,0.007,103,0,104,0,105,0.92,107,1.079,111,1.68,112,2.903,127,1.05,165,0.539,187,0.647,217,1.395,221,2.35,227,1.112,264,4.692,379,2.132,494,6.907,565,5.745,574,1.965,576,7.329,795,4.218,884,3.242,1035,4.807,1583,4.503,1804,4.17,1805,4.571,1857,5.242,1858,3.604,2139,4.439,2255,6.699,2266,6.36,2303,3.813,2401,3.253,2412,4.38,2440,2.55,2616,3.505,2794,6.833,2801,6.699,2848,5.927,3280,3.072,3510,6.36,3578,3.551,3812,5.388,7796,5.762,7821,8.551,10273,5.762,10274,11.35,10275,11.35,10276,4.475,10277,9.91,10278,6.88,10279,6.88,10280,6.88,10281,8.381,10282,8.381,10283,6.88,10284,8.381,10285,8.381,10286,6.88,10287,6.88,10288,4.475,10289,5.762,10290,10.654,10291,6.88,10292,4.475,10293,3.848,10294,9.408,10295,10.154,10296,6.88,10297,6.36,10298,5.242,10299,8.697,10300,11.524,10301,6.88,10302,4.475,10303,3.41,10304,8.381,10305,4.475,10306,6.36,10307,9.91,10308,8.381,10309,4.475,10310,7.748,10311,7.748,10312,8.697,10313,9.408,10314,6.88,10315,4.475,10316,6.36,10317,6.36,10318,5.558,10319,8.381,10320,4.475,10321,6.88,10322,4.475,10323,4.475,10324,6.88,10325,4.475,10326,4.137,10327,6.36,10328,4.475,10329,4.475,10330,4.475,10331,8.381,10332,4.475,10333,4.475,10334,4.475,10335,4.475,10336,4.475,10337,6.88,10338,4.475,10339,4.475,10340,3.505,10341,4.475,10342,4.475,10343,4.475]],["title/modules/FileSystemModule.html",[425,1.812,10344,5.694]],["body/modules/FileSystemModule.html",[0,0.327,3,0.023,4,0.023,5,0.014,30,0.001,95,0.15,101,0.016,103,0.001,104,0.001,187,1.39,425,3.351,427,3.472,428,3.735,429,3.845,430,3.829,431,3.813,432,4.628,433,4.753,442,4.672,443,3.766,444,3.675,10273,11.91,10274,8.884,10275,8.884,10344,11.55,10345,9.611,10346,9.611,10347,9.611,10348,9.611,10349,9.611]],["title/classes/FileUrlParams.html",[0,0.232,6233,4.667]],["body/classes/FileUrlParams.html",[0,0.454,2,0.698,3,0.015,4,0.021,5,0.011,7,0.095,26,2.565,27,0.421,30,0.001,32,0.169,33,0.426,39,1.687,47,0.966,95,0.16,99,1.045,101,0.022,103,0.001,104,0.001,150,3.531,165,0.69,204,2.125,214,1.975,334,0.673,347,1.783,364,1.858,369,1.39,373,4.726,374,1.999,375,4.216,376,1.433,377,5.856,379,1.419,380,1.331,467,3.625,469,2.75,470,5.061,471,4.487,565,3.122,1000,4.926,1001,6.634,1011,5.153,1031,3.196,1044,3.005,1180,3.794,1270,6.047,1330,5.611,1331,4.1,1332,4.1,2702,4.596,2889,5.05,3610,3.062,4205,2.111,5836,6.524,6170,5.126,6183,7.244,6189,6.032,6217,3.081,6220,4.299,6221,4.376,6222,4.376,6225,7.75,6228,4.376,6229,8.038,6230,7.733,6231,7.733,6232,4.376,6233,6.05,6234,7.873,6235,4.299,6236,4.376,6237,4.228,6238,5.949,6239,4.161,6240,4.228,6241,4.299,6242,4.228,6243,4.228,6244,3.987,6245,4.376,6246,4.376,6247,4.376,6248,3.987,6249,3.987,6250,4.1,6251,4.161,6252,4.376,10350,8.815,10351,6.264,10352,6.264,10353,6.264,10354,6.264]],["title/modules/FilesModule.html",[425,1.812,10355,5.694]],["body/modules/FilesModule.html",[0,0.303,3,0.021,4,0.021,5,0.011,30,0.001,95,0.172,101,0.015,103,0.001,104,0.001,187,1.286,425,3.237,427,3.211,428,3.455,429,3.557,430,3.542,431,3.527,432,4.47,433,3.36,438,6.264,442,4.452,443,3.483,444,3.4,449,4.415,1467,2.837,2531,4.805,2727,4.265,7911,9.732,7916,11.198,7920,7.775,7944,10.801,7945,11.198,7964,8.218,10355,11.792,10356,8.89,10357,8.89,10358,8.89,10359,8.89]],["title/injectables/FilesRepo.html",[105,0.91,7944,5.493]],["body/injectables/FilesRepo.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,8,0.982,10,3.281,12,3.723,18,4.108,26,2.662,27,0.518,29,0.965,30,0.001,31,0.69,32,0.167,33,0.596,34,1.383,35,1.455,36,2.692,40,2.7,49,3.768,55,2.51,56,2.684,58,6.783,83,2.93,95,0.154,96,2.224,97,2.419,99,0.934,101,0.009,103,0,104,0,105,1.088,107,1.348,112,2.951,116,3.911,127,0.701,187,0.809,216,1.034,217,1.603,221,2.217,227,1.09,234,1.32,380,1.727,381,2.704,398,1.648,404,1.465,577,3.157,596,3.207,692,4.828,701,2.874,877,7.054,883,3.449,884,3.831,885,4.839,908,3.43,909,3.471,910,3.43,911,3.471,912,3.984,913,3.43,914,3.471,915,3.101,919,4.262,964,3.839,1849,2.807,1904,2.34,2354,4.066,2355,6.046,2359,5.91,2397,3.776,3578,6.013,3637,4.519,4659,3.716,5878,4.262,7810,6.445,7919,9.195,7930,7.111,7944,6.567,7950,4.685,7953,8.009,8050,4.066,9876,4.262,9878,4.893,9888,4.158,9899,4.893,9981,4.893,10360,5.594,10361,8.13,10362,8.13,10363,8.13,10364,5.594,10365,8.13,10366,5.594,10367,5.594,10368,8.13,10369,5.594,10370,5.594,10371,8.13,10372,5.594,10373,5.594,10374,7.515,10375,4.519,10376,8.13,10377,5.594,10378,5.594,10379,7.111,10380,5.171,10381,5.594,10382,5.594,10383,5.594,10384,5.594,10385,5.594,10386,5.594]],["title/injectables/FilesService.html",[105,0.91,10387,6.286]],["body/injectables/FilesService.html",[0,0.25,3,0.017,4,0.017,5,0.009,7,0.111,8,1.188,26,2.923,27,0.509,29,0.967,30,0.001,31,0.691,32,0.168,33,0.597,35,1.433,36,2.827,39,3.188,95,0.152,99,1.226,101,0.012,103,0.001,104,0.001,105,1.316,107,1.772,112,3.02,127,0.921,187,1.063,215,2.346,216,1.359,217,1.28,221,2.741,227,1.317,247,4.639,380,1.562,381,3.272,2531,5.993,6798,6.428,7944,9.565,7953,5.599,10387,9.093,10388,7.349,10389,9.837,10390,9.837,10391,9.837,10392,9.837,10393,7.349,10394,9.837,10395,7.349,10396,9.837,10397,7.349,10398,9.837,10399,7.349,10400,9.837,10401,7.349,10402,9.837,10403,10.946,10404,9.837,10405,7.349,10406,9.837,10407,9.837,10408,7.349]],["title/modules/FilesStorageAMQPModule.html",[425,1.812,10409,5.947]],["body/modules/FilesStorageAMQPModule.html",[0,0.304,3,0.021,4,0.021,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.291,425,3.243,427,3.226,428,3.47,429,3.573,430,3.558,431,3.543,432,4.479,433,3.375,438,6.271,442,4.465,443,3.499,444,3.415,449,4.427,481,3.428,1359,6.803,1467,2.85,3578,4.608,3579,4.393,6170,4.135,6422,8.893,10409,12.323,10410,8.929,10411,8.929,10412,8.929,10413,10.813,10414,11.708,10415,8.254,10416,6.238,10417,8.254]],["title/modules/FilesStorageApiModule.html",[425,1.812,10418,5.324]],["body/modules/FilesStorageApiModule.html",[0,0.284,3,0.02,4,0.02,5,0.01,30,0.001,95,0.174,101,0.014,103,0.001,104,0.001,187,1.206,425,3.142,427,3.012,428,3.24,429,3.336,430,3.322,431,3.308,432,4.339,433,3.151,442,4.275,443,3.267,444,3.188,446,5.239,447,4.429,449,4.239,481,3.201,1155,4.843,1359,6.352,1507,8.738,1923,9.777,2727,4,3578,4.303,3579,4.102,3917,7.211,6170,3.862,6422,8.738,10247,10.313,10260,12.159,10413,10.625,10416,5.825,10417,7.708,10418,11.027,10419,8.338,10420,8.338,10421,8.338,10422,11.791,10423,6.529,10424,6.735,10425,6.735]],["title/injectables/FilesStorageClientAdapterService.html",[105,0.91,6298,4.842]],["body/injectables/FilesStorageClientAdapterService.html",[0,0.241,3,0.023,4,0.017,5,0.012,7,0.107,8,1.158,26,2.472,27,0.481,29,0.913,30,0.001,31,0.653,32,0.158,33,0.564,35,1.317,36,2.694,95,0.168,99,1.181,100,2.37,101,0.012,103,0.001,104,0.001,105,1.283,107,1.706,111,1.419,112,2.92,127,0.887,187,1.024,206,3.601,215,2.259,216,1.309,217,1.635,221,2.518,227,1.128,264,4.031,336,1.694,367,3.375,1016,3.819,1467,2.259,2356,3.94,2357,5.311,2969,4.777,3578,3.653,3579,6.59,3610,3.46,6169,5.393,6170,5.644,6282,9.131,6284,9.766,6285,6.543,6298,6.83,6324,5.262,9973,5.928,10426,11.266,10427,7.078,10428,7.747,10429,8.389,10430,8.866,10431,10.878,10432,9.766,10433,7.078,10434,9.591,10435,7.078,10436,9.591,10437,7.078,10438,9.591,10439,7.078,10440,6.543,10441,7.078,10442,7.078,10443,12.565,10444,7.078,10445,7.078,10446,9.591,10447,7.078]],["title/classes/FilesStorageClientMapper.html",[0,0.232,9973,5.694]],["body/classes/FilesStorageClientMapper.html",[0,0.204,2,0.667,3,0.014,4,0.014,5,0.007,7,0.09,8,1.031,27,0.492,29,0.934,30,0.001,31,0.702,32,0.17,33,0.576,34,1.452,35,1.443,47,0.709,95,0.139,99,0.999,100,3.331,101,0.01,103,0,104,0,217,1.632,227,1.343,234,1.761,305,2.431,336,1.432,380,2.304,627,4.215,806,4.05,1016,3.807,1642,6.077,2268,5.667,2647,4.504,2649,3.805,2849,3.691,3579,6.614,3610,2.925,5941,4.56,6169,8.263,6170,5.682,6173,3.976,6174,10.274,6182,4.686,6189,6.835,6192,4.449,6217,4.199,6219,4.449,6324,9.625,8358,3.976,9213,5.234,9802,10.504,9970,11.341,9972,10.025,9973,7.147,10448,5.985,10449,8.534,10450,8.534,10451,8.534,10452,8.534,10453,8.534,10454,8.534,10455,8.534,10456,5.985,10457,8.534,10458,5.985,10459,8.534,10460,5.985,10461,8.534,10462,5.985,10463,8.534,10464,5.985,10465,8.534,10466,5.985,10467,10.845,10468,5.985,10469,5.985,10470,5.985,10471,5.985,10472,5.985,10473,5.985,10474,5.985,10475,5.985,10476,5.985,10477,5.985,10478,5.985,10479,5.985,10480,8.534,10481,5.985,10482,5.985,10483,5.985]],["title/modules/FilesStorageClientModule.html",[425,1.812,3567,5.055]],["body/modules/FilesStorageClientModule.html",[0,0.281,3,0.02,4,0.02,5,0.01,30,0.001,95,0.168,101,0.014,103,0.001,104,0.001,187,1.193,425,3.127,427,2.981,428,3.207,429,3.302,430,3.288,431,3.274,432,4.318,433,4.435,438,6.145,442,4.247,443,3.233,444,3.156,449,4.211,1467,2.634,3009,5.002,3010,4.615,3567,10.527,3579,5.772,6170,3.822,6291,11.673,6298,9.926,6310,7.629,6338,9.535,6344,7.629,10432,10.985,10440,7.629,10484,8.252,10485,8.252,10486,8.252,10487,8.252,10488,8.252,10489,7.629,10490,7.629,10491,9.284]],["title/injectables/FilesStorageConsumer.html",[105,0.91,10414,5.947]],["body/injectables/FilesStorageConsumer.html",[0,0.192,3,0.013,4,0.023,5,0.007,7,0.085,8,0.986,26,2.235,27,0.435,29,0.826,30,0.001,31,0.59,32,0.143,33,0.51,35,1.163,36,2.503,39,1.515,95,0.166,96,1.539,99,0.939,100,1.883,101,0.009,103,0,104,0,105,1.092,107,1.356,111,2.113,112,2.771,116,3.916,127,1.022,145,2.433,187,0.813,206,2.862,216,1.776,217,1.519,221,2.59,227,0.996,231,7.08,364,1.75,398,1.657,731,2.222,957,3.118,1008,5.696,1016,3.7,1187,2.682,1188,2.651,1189,2.651,1190,2.804,1191,3.066,1216,4.13,1312,5.962,1314,7.532,1351,3.93,1352,3.63,1467,1.795,1798,5.422,1959,3.066,2356,3.946,2357,4.801,2475,3.861,2614,4.089,2615,4.006,2702,3.678,4171,7.32,4645,4.711,6170,5.183,6225,7.002,6243,7.114,6885,6.288,7804,8.03,9829,7.139,10048,5.813,10414,7.139,10428,8.514,10429,8.403,10491,4.92,10492,11.192,10493,5.625,10494,9.607,10495,5.625,10496,9.776,10497,10.085,10498,5.625,10499,5.2,10500,8.881,10501,8.952,10502,10.21,10503,9.607,10504,5.625,10505,5.2,10506,5.625,10507,5.625,10508,5.625,10509,7.546,10510,9.743,10511,11.192,10512,4.182,10513,5.2,10514,4.405,10515,4.286,10516,4.286,10517,4.92,10518,4.92,10519,5.2,10520,5.625,10521,8.163,10522,5.625,10523,8.163,10524,5.625,10525,5.625,10526,8.163,10527,8.163,10528,5.625,10529,5.625,10530,5.625,10531,5.625]],["title/classes/FilesStorageMapper.html",[0,0.232,10518,5.947]],["body/classes/FilesStorageMapper.html",[0,0.289,2,0.661,3,0.014,4,0.014,5,0.007,7,0.09,8,1.024,27,0.49,29,0.931,30,0.001,31,0.666,32,0.17,33,0.575,35,1.439,55,2.744,56,5.182,59,2.641,70,5.348,95,0.153,101,0.01,103,0,104,0,185,2.305,187,0.858,208,2.216,217,1.592,227,1.232,234,1.855,305,1.69,334,0.637,380,1.26,627,4.21,982,2.957,1008,5.838,1016,2.977,1489,4.312,1973,7.049,3228,5.398,3364,4.786,3524,5.188,3610,2.899,4205,1.999,5835,3.727,6072,4.409,6170,5.667,6188,7.918,6189,5.886,6192,7.358,6203,4.791,6209,4.791,6217,2.918,6219,7.358,6225,7.591,6237,7.29,6238,4.003,6240,7.712,6614,6.681,6615,9.569,6638,4.968,6707,4.968,10048,6.039,10128,9.15,10129,7.84,10133,5.483,10135,7.84,10137,5.483,10138,5.483,10139,5.188,10141,5.483,10236,8.229,10237,5.188,10518,7.417,10532,12.236,10533,5.932,10534,8.481,10535,7.417,10536,8.481,10537,8.481,10538,8.481,10539,5.932,10540,7.417,10541,5.932,10542,5.932,10543,5.932,10544,8.481,10545,5.932,10546,8.481,10547,5.932,10548,5.932,10549,5.932,10550,5.483,10551,5.932,10552,5.932,10553,5.932,10554,5.932,10555,5.483,10556,5.932,10557,5.483,10558,5.932,10559,5.932,10560,5.932,10561,5.932,10562,4.968,10563,5.932,10564,5.932,10565,5.932,10566,5.932,10567,5.932,10568,5.932,10569,5.932,10570,5.932]],["title/modules/FilesStorageModule.html",[425,1.812,10413,5.493]],["body/modules/FilesStorageModule.html",[0,0.202,3,0.014,4,0.014,5,0.007,30,0.001,32,0.081,47,0.814,55,1.276,87,2.972,95,0.175,96,2.317,99,0.988,101,0.01,103,0,104,0,154,2.713,187,0.857,217,1.287,234,0.962,347,1.198,369,1.314,380,1.259,381,1.97,398,1.745,425,2.635,427,2.14,428,2.302,429,2.37,430,2.36,431,2.35,432,3.972,433,3.738,438,5.565,442,3.39,443,2.321,444,2.265,449,4.282,461,1.355,511,2.993,574,2.6,701,2.995,717,3.126,722,2.641,731,2.34,778,5.718,801,3.44,885,4.28,953,3.877,1187,2.824,1188,2.791,1189,2.791,1190,2.952,1267,3.935,1268,3.632,1295,4.96,1308,3.59,1310,4.784,1312,3.675,1314,3.822,1323,4.138,1328,4.96,1359,4.513,1467,1.891,1507,7.171,1646,3.313,1852,2.501,1878,5.834,2130,2.587,2131,2.895,2132,2.791,2133,3.77,2531,3.201,2644,3.175,3578,3.057,3580,2.411,4639,5.475,4645,4.96,4865,4.065,5460,3.877,5511,3.998,6170,2.743,6188,5.078,6267,3.77,6422,7.171,9797,3.935,9925,4.218,10021,6.298,10155,10.39,10413,11.352,10418,8.452,10491,5.181,10496,11.061,10497,11.061,10519,5.475,10571,5.923,10572,5.923,10573,5.923,10574,5.923,10575,8.46,10576,7.541,10577,6.298,10578,6.298,10579,4.306,10580,6.454,10581,4.218,10582,4.306,10583,6.298,10584,5.923,10585,7.095,10586,4.96,10587,5.475,10588,4.403,10589,6.158,10590,6.158,10591,6.158,10592,4.306,10593,4.138,10594,5.181,10595,4.96,10596,5.923,10597,5.923,10598,5.923,10599,5.181,10600,5.923,10601,5.923,10602,5.923,10603,4.96,10604,6.454,10605,4.403,10606,4.403,10607,4.306,10608,4.784,10609,4.403,10610,4.513,10611,5.181]],["title/injectables/FilesStorageProducer.html",[105,0.91,10432,5.694]],["body/injectables/FilesStorageProducer.html",[0,0.201,3,0.014,4,0.014,5,0.007,7,0.089,8,1.02,26,2.284,27,0.504,29,0.996,30,0.001,31,0.684,32,0.173,33,0.591,35,1.436,36,2.543,47,0.846,55,1.27,95,0.157,99,0.984,101,0.01,103,0,104,0,105,1.13,107,1.421,111,1.182,112,2.879,127,1.058,148,1.815,187,0.853,216,1.824,217,1.284,221,2.284,227,1.023,231,7.566,336,1.411,367,4.027,404,1.522,596,3.009,661,5.251,692,3.155,789,7.995,801,3.425,1016,4.289,1312,3.659,1314,3.805,1337,4.763,1338,8.818,1345,3.351,1351,4.12,1352,3.805,1467,1.882,1798,6.695,2356,4.053,2357,4.907,3579,5.609,3901,6.822,3937,4.384,4171,9.038,6170,5.28,10426,10.539,10428,6.822,10429,7.386,10430,7.807,10432,7.072,10499,7.807,10501,6.278,10505,7.807,10512,6.278,10514,4.618,10515,4.493,10516,4.493,10517,5.158,10612,5.897,10613,9.934,10614,7.386,10615,7.386,10616,5.897,10617,8.435,10618,5.897,10619,5.897,10620,8.445,10621,8.435,10622,5.897,10623,5.158,10624,5.451,10625,5.158,10626,5.451,10627,5.158,10628,5.451,10629,4.939,10630,5.451,10631,5.897,10632,5.897,10633,5.897,10634,5.897,10635,5.897,10636,5.897,10637,5.897,10638,5.897,10639,5.897,10640,5.897,10641,5.897]],["title/modules/FilesStorageTestModule.html",[425,1.812,10642,5.947]],["body/modules/FilesStorageTestModule.html",[0,0.243,3,0.017,4,0.017,5,0.009,8,0.861,27,0.294,29,0.558,30,0.001,31,0.399,32,0.097,33,0.345,35,0.863,59,2.22,95,0.174,99,1.19,101,0.012,103,0.001,104,0.001,187,1.031,217,1.421,227,0.739,380,1.515,381,2.371,425,3.116,427,2.575,428,2.77,429,2.852,430,2.84,431,2.828,432,4.303,433,2.694,438,5.899,442,3.856,443,2.793,444,2.726,447,4.525,449,4.847,627,2.957,701,3.407,1297,5.182,1298,6.614,1301,7.253,1359,7.342,1467,2.275,1507,8.365,1878,6.805,2725,3.229,3578,3.679,3579,5.371,6170,4.463,6188,5.776,6422,8.365,10416,4.98,10418,9.86,10423,5.582,10576,8.797,10583,7.164,10587,6.589,10642,12.303,10643,7.128,10644,7.128,10645,8.535,10646,6.235,10647,8.694,10648,7.128,10649,5.182,10650,5.758,10651,5.182,10652,5.758,10653,5.97,10654,7.164]],["title/classes/FilterImportUserParams.html",[0,0.232,10655,5.694]],["body/classes/FilterImportUserParams.html",[0,0.314,2,1.377,3,0.016,4,0.016,5,0.008,7,0.101,27,0.522,30,0.001,32,0.175,33,0.661,47,0.945,95,0.172,101,0.018,103,0.001,104,0.001,165,0.722,347,1.864,364,2.305,369,2.046,373,4.942,374,2.132,375,4.911,376,1.528,469,2.932,470,4.995,471,5.226,496,4.457,577,5.957,851,5.033,852,5.033,1001,7.157,1031,3.566,1044,3.204,1602,6.44,2450,5.251,2461,5.587,3105,5.868,3106,5.202,4476,5.749,5406,5.72,5477,7.244,7810,5.652,10655,7.72,10656,11.919,10657,5.593,10658,7.374,10659,7.244,10660,6.679,10661,6.679,10662,9.758,10663,6.679,10664,6.679,10665,6.679,10666,6.679,10667,6.679,10668,11.039,10669,6.174,10670,6.679,10671,6.679,10672,6.679,10673,11.039,10674,6.679,10675,6.679,10676,9.218,10677,6.44,10678,4.756,10679,6.397,10680,6.679,10681,6.679]],["title/classes/FilterNewsParams.html",[0,0.232,10682,5.493]],["body/classes/FilterNewsParams.html",[0,0.355,2,0.895,3,0.019,4,0.019,5,0.01,7,0.121,27,0.477,30,0.001,32,0.157,33,0.63,34,1.773,47,0.874,95,0.157,99,1.339,101,0.013,103,0.001,104,0.001,165,0.816,347,2.108,364,2.109,373,5.587,374,2.561,375,4.668,376,1.835,377,6.924,379,2.878,470,4.36,471,4.968,475,3.921,1000,4.243,1031,2.514,1044,3.849,1184,5.777,2702,5.522,2736,6.821,2884,5.543,2885,5.543,6850,7.47,6857,7.531,6858,7.416,6901,7.422,7033,7.017,7035,8.088,7037,7.416,7042,7.416,7044,7.801,7047,7.576,7053,7.416,10682,8.419,10683,12.255,10684,9.351,10685,7.017,10686,8.419,10687,8.728,10688,8.022,10689,8.022,10690,7.416,10691,7.747,10692,8.022]],["title/classes/FilterUserParams.html",[0,0.232,10693,5.694]],["body/classes/FilterUserParams.html",[0,0.397,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,27,0.395,30,0.001,31,0.704,32,0.13,33,0.564,47,0.831,95,0.15,101,0.016,103,0.001,104,0.001,144,3.206,165,0.913,364,1.746,374,3.06,375,4.441,376,2.193,470,4.877,471,4.726,494,6.988,851,5.559,852,5.559,1001,6.988,4476,5.198,7810,7.148,10656,10.777,10657,8.029,10662,8.863,10693,9.764,10694,9.588]],["title/classes/ForbiddenLoggableException.html",[0,0.232,1978,5.324]],["body/classes/ForbiddenLoggableException.html",[0,0.286,2,0.936,3,0.02,4,0.02,5,0.01,7,0.127,8,1.296,26,2.642,27,0.442,29,0.657,30,0.001,31,0.47,32,0.161,33,0.406,35,1.016,39,3.184,47,0.843,95,0.165,99,1.4,101,0.014,103,0.001,104,0.001,111,2.371,127,1.344,163,2.582,187,1.213,199,4.469,214,3.382,216,2.187,217,1.092,227,0.87,404,1.933,406,2.729,415,4.534,885,6.297,945,7.338,1216,4.203,1464,5.446,1469,6.172,1795,6.736,1798,4.735,1799,5.085,1978,8.4,2783,7.088,8288,6.48,8738,5.34,8745,4.923,8746,5.144,10695,11.826,10696,6.777,10697,7.756,10698,8.39,10699,7.026,10700,7.026,10701,8.39,10702,8.39,10703,8.39]],["title/classes/ForbiddenOperationError.html",[0,0.232,507,5.694]],["body/classes/ForbiddenOperationError.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,8,1.221,27,0.54,29,0.6,30,0.001,31,0.429,32,0.185,33,0.547,35,0.927,47,0.916,55,1.649,59,3.148,95,0.13,101,0.013,103,0.001,104,0.001,127,0.959,165,0.792,187,1.107,204,4.361,216,2.513,364,2.279,404,1.821,406,2.49,507,8.465,564,2.807,596,3.92,1013,5.512,1016,2.688,1142,5.241,1180,5.18,1216,4.903,1395,8.253,1396,7.466,1397,4.03,1398,7.203,1402,4.94,1403,4.244,1404,4.94,1405,4.94,1406,4.94,1407,4.94,1408,4.94,1409,4.589,1410,4.321,1411,5.995,1416,4.811,1817,7.915,4611,6.185,10704,10.108,10705,7.656,10706,7.656,10707,7.656,10708,8.465,10709,7.701,10710,7.078]],["title/controllers/FwuLearningContentsController.html",[481,2.611,10711,5.694]],["body/controllers/FwuLearningContentsController.html",[0,0.255,3,0.018,4,0.018,5,0.009,7,0.113,8,1.204,27,0.309,29,0.587,30,0.001,31,0.42,32,0.136,33,0.363,35,0.908,36,2.138,95,0.167,101,0.013,103,0.001,104,0.001,112,2.469,185,4.353,187,1.085,215,2.394,216,1.387,217,1.458,221,1.736,227,0.778,234,1.619,264,4.19,305,2.137,363,4.774,364,1.366,367,5.692,369,1.664,376,1.715,447,3.108,481,2.879,483,3.576,555,3.899,556,3.989,561,4.021,576,4.233,1016,4.363,1308,4.545,1353,3.62,1410,4.233,1489,5.452,2130,3.276,2131,3.666,2132,3.534,2303,4.042,2930,4.021,3524,6.56,3859,4.194,6614,8.388,6615,6.281,6616,4.495,6632,6.281,6638,6.281,10253,8.874,10265,6.933,10711,8.35,10712,7.808,10713,10.005,10714,9.971,10715,7.5,10716,8.35,10717,7.5,10718,10.441,10719,9.971,10720,7.5,10721,9.048,10722,6.56,10723,6.56,10724,7.5,10725,7.5,10726,7.5,10727,7.5,10728,7.5,10729,7.5,10730,8.534,10731,7.5,10732,7.5,10733,7.5,10734,7.5,10735,7.5,10736,7.5,10737,6.933,10738,7.5,10739,7.5,10740,7.5,10741,7.5,10742,7.5,10743,7.5,10744,7.5,10745,7.5]],["title/modules/FwuLearningContentsModule.html",[425,1.812,10746,5.947]],["body/modules/FwuLearningContentsModule.html",[0,0.221,3,0.015,4,0.015,5,0.008,30,0.001,32,0.088,47,0.462,87,3.255,94,4.387,95,0.177,96,2.471,99,1.082,101,0.011,103,0.001,104,0.001,154,2.97,187,0.938,217,0.844,234,1.053,369,1.439,381,2.157,398,1.911,425,2.769,427,2.343,428,2.52,429,2.595,430,2.584,431,2.573,432,3.824,433,2.451,438,5.731,442,3.614,443,2.541,444,2.48,447,3.744,449,3.583,461,2.377,496,3.813,511,3.277,574,2.847,701,3.193,722,2.892,731,2.562,778,6.096,801,3.767,844,4.114,885,4.564,953,4.245,1155,3.767,1187,3.093,1188,3.056,1189,3.056,1190,3.233,1267,4.309,1268,3.976,1467,2.07,1507,8.128,1646,3.627,1852,2.738,1878,6.612,2644,3.477,2725,2.938,3580,2.64,3917,6.096,4865,4.451,5460,4.245,5511,4.377,6267,4.128,6422,8.128,8358,4.309,8469,4.881,9797,4.309,9925,4.618,10416,4.531,10575,8.712,10577,6.714,10578,6.714,10579,4.714,10580,6.881,10581,4.618,10582,4.714,10588,8.783,10589,6.565,10590,6.565,10591,6.565,10592,4.714,10593,4.531,10595,5.431,10603,5.431,10604,6.881,10605,4.821,10606,4.821,10607,4.714,10608,5.239,10609,4.821,10610,4.941,10611,5.673,10711,8.703,10712,5.079,10713,9.252,10716,5.431,10721,9.882,10722,5.673,10723,5.673,10746,12.135,10747,6.486,10748,6.486,10749,6.486,10750,5.995,10751,6.486,10752,5.749,10753,5.995,10754,5.995,10755,5.995,10756,5.673]],["title/modules/FwuLearningContentsTestModule.html",[425,1.812,10757,5.947]],["body/modules/FwuLearningContentsTestModule.html",[0,0.22,3,0.015,4,0.015,5,0.008,8,0.782,27,0.267,29,0.507,30,0.001,31,0.363,32,0.088,33,0.313,35,0.784,59,2.017,94,4.382,95,0.177,99,1.081,101,0.011,103,0.001,104,0.001,154,2.966,187,0.936,217,1.351,227,0.671,381,2.154,425,2.992,427,2.339,428,2.516,429,2.591,430,2.58,431,2.569,432,4.345,433,2.447,438,5.728,442,3.61,443,2.537,444,2.476,447,4.655,449,4.685,461,2.064,496,3.809,627,2.768,701,3.19,801,3.761,844,4.109,1155,3.761,1297,4.707,1298,6.192,1301,6.898,1467,2.067,1507,8.124,1878,6.609,2725,2.933,3580,2.636,3917,6.089,6267,4.122,6422,8.124,8358,4.302,8469,4.876,9797,4.302,10416,4.524,10423,5.07,10576,8.543,10582,4.707,10588,8.778,10592,4.707,10593,4.524,10595,5.423,10603,5.423,10645,8.25,10646,5.663,10647,8.348,10649,4.707,10650,5.23,10651,4.707,10652,5.23,10654,6.707,10711,8.695,10712,7.065,10713,9.825,10716,5.423,10721,9.877,10722,5.663,10723,5.663,10750,8.34,10752,5.743,10754,5.986,10755,5.986,10756,5.663,10757,12.25,10758,6.475,10759,6.475,10760,6.475,10761,6.089,10762,6.475]],["title/injectables/FwuLearningContentsUc.html",[105,0.91,10721,5.493]],["body/injectables/FwuLearningContentsUc.html",[0,0.289,3,0.02,4,0.02,5,0.01,7,0.128,8,1.306,27,0.446,29,0.847,30,0.001,31,0.606,32,0.147,33,0.523,35,1.028,47,0.943,59,2.646,95,0.161,101,0.014,103,0.001,104,0.001,105,1.447,107,2.048,111,2.168,112,2.622,127,1.355,187,1.229,216,1.571,217,1.106,221,1.966,227,0.881,576,4.795,839,4.051,1016,3.797,1265,8.239,1345,3.371,1467,2.712,2356,4.442,2357,5.703,2969,5.734,3580,3.459,9797,5.644,10712,9.315,10713,10.517,10716,7.115,10721,8.735,10730,9.54,10756,7.431,10763,11.895,10764,8.496,10765,9.609,10766,9.308,10767,8.496,10768,8.496,10769,8.496,10770,8.496,10771,8.496,10772,8.496]],["title/interfaces/GetFile.html",[334,0.731,6273,4.943]],["body/interfaces/GetFile.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.177,33,0.66,47,1.02,55,2.583,95,0.111,101,0.021,103,0.001,104,0.001,163,4,165,0.856,334,1.354,336,2.068,1342,8.166,1344,5.656,1487,4.833,2145,5.43,6262,6.767,6263,6.767,6264,7.237,6265,6.981,6266,6.981,6267,5.501,6268,6.767,6269,6.038,6270,6.038,6271,6.038,6272,6.038,6273,7.946,6274,9.366,6275,8.973,6276,9.366,6277,9.366]],["title/interfaces/GetFileResponse.html",[334,0.731,10236,5.181]],["body/interfaces/GetFileResponse.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,31,0.703,32,0.183,33,0.659,47,1.016,55,2.572,95,0.153,101,0.018,103,0.001,104,0.001,163,3.866,165,0.852,334,1.168,336,2.051,380,1.821,565,4.271,982,4.271,1342,7.892,1344,5.608,6170,3.968,6188,7.158,6244,7.602,6274,9.337,6275,8.945,6276,9.337,6277,9.337,10236,8.283,10730,6.528,10773,7.921,10774,6.921,10775,7.494,10776,6.369,10777,6.228]],["title/classes/GetFwuLearningContentParams.html",[0,0.232,10718,5.947]],["body/classes/GetFwuLearningContentParams.html",[0,0.399,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,27,0.399,30,0.001,32,0.132,47,0.836,95,0.151,101,0.016,103,0.001,104,0.001,165,0.918,364,1.763,374,3.09,376,2.214,467,3.077,470,4.905,472,7.915,1001,7.028,10712,9.183,10713,10.268,10718,10.256,10778,11.726,10779,9.68,10780,12.615,10781,9.68,10782,11.726,10783,11.726,10784,9.68,10785,9.68,10786,9.68]],["title/interfaces/GlobalConstants.html",[334,0.731,10787,6.286]],["body/interfaces/GlobalConstants.html",[3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.17,33,0.63,47,0.998,95,0.122,101,0.016,103,0.001,104,0.001,150,3.288,165,0.908,217,1.509,334,1.02,336,2.273,1948,5.692,10589,9.711,10590,9.711,10591,9.711,10787,11.566,10788,9.497,10789,11.591,10790,9.497,10791,11.591]],["title/classes/GlobalErrorFilter.html",[0,0.232,8371,5.694]],["body/classes/GlobalErrorFilter.html",[0,0.163,2,0.532,3,0.011,4,0.011,5,0.006,7,0.072,8,0.873,27,0.496,29,0.921,30,0.001,31,0.674,32,0.16,33,0.569,35,1.424,95,0.162,100,1.598,101,0.008,103,0,104,0,111,2.708,127,0.598,145,1.208,148,2.993,187,0.69,204,4.383,214,2.278,215,1.523,216,0.882,217,1.709,227,1.219,234,1.854,334,0.513,558,2.29,692,4.107,731,1.885,806,2.942,845,3.469,846,3.398,1016,4.535,1142,4.504,1187,2.276,1188,2.249,1189,2.249,1216,3.811,1322,8.942,1345,2.867,1353,3.488,1354,3.398,1369,5.3,1392,4.877,1395,5.963,1397,3.256,1409,7.577,1418,4.174,1421,3.469,1464,5.652,1467,1.523,2143,4.174,2356,2.968,2969,3.221,3341,3.855,3708,7.23,3884,6.32,4611,3.855,4773,5.226,6616,2.86,8275,3.855,8325,8.145,8343,3.855,8355,3.855,8369,2.892,8371,6.051,8394,8.145,9615,4.412,10512,6.482,10513,4.412,10792,12.273,10793,4.412,10794,8.72,10795,7.226,10796,7.226,10797,7.226,10798,7.226,10799,7.226,10800,9.726,10801,7.226,10802,4.772,10803,6.68,10804,11.419,10805,4.772,10806,7.226,10807,4.772,10808,7.226,10809,4.772,10810,7.226,10811,4.772,10812,7.226,10813,4.772,10814,7.226,10815,4.772,10816,4.772,10817,7.226,10818,4.772,10819,4.772,10820,5.837,10821,4.772,10822,4.772,10823,4.772,10824,4.772,10825,4.772,10826,4.772,10827,4.772,10828,4.772,10829,4.772,10830,4.772,10831,4.772,10832,4.772,10833,4.772,10834,4.772,10835,4.772,10836,4.772,10837,4.772,10838,4.772,10839,4.772,10840,4.772,10841,4.772,10842,7.226,10843,4.772,10844,4.772,10845,4.772,10846,7.226,10847,4.772,10848,4.772,10849,4.772,10850,4.772,10851,4.772,10852,4.772,10853,4.772,10854,4.772,10855,4.772]],["title/classes/GlobalValidationPipe.html",[0,0.232,10856,5.947]],["body/classes/GlobalValidationPipe.html",[0,0.389,2,0.87,3,0.018,4,0.018,5,0.009,27,0.322,30,0.001,32,0.155,95,0.131,100,4.216,101,0.013,103,0.001,104,0.001,127,1.431,144,2.815,163,2.402,165,0.611,185,3.033,187,1.129,204,2.648,234,1.267,319,3.059,364,1.865,368,3.058,369,2.867,371,2.152,374,3.267,379,1.769,404,1.845,406,2.538,467,2.048,503,7.004,529,3.392,558,3.744,574,4.494,685,5.403,722,3.48,728,2.985,783,4.73,951,5.946,957,4.327,1020,5.108,1273,8.016,1308,6.204,1392,5.268,1415,7.72,1423,5.108,1430,4.579,1854,5.185,1959,4.253,2051,5.832,2146,5.268,2222,5.558,2468,4.678,2702,4.613,3282,4.904,3495,6.7,3502,5.802,4565,8.269,5159,5.036,5183,4.904,6439,7.152,8275,6.304,8887,5.673,9342,6.112,10856,8.953,10857,10.237,10858,7.805,10859,10.56,10860,11.423,10861,7.805,10862,8.016,10863,7.215,10864,7.805,10865,7.805,10866,7.805,10867,7.805,10868,6.826,10869,7.805,10870,6.826,10871,7.805,10872,7.215,10873,7.805,10874,7.805,10875,7.805,10876,7.805,10877,6.304]],["title/classes/GridElement.html",[0,0.232,7465,5.324]],["body/classes/GridElement.html",[0,0.174,2,0.343,3,0.007,4,0.007,5,0.004,7,0.127,8,0.616,26,2.572,27,0.505,29,0.817,30,0.001,31,0.584,32,0.168,33,0.555,34,1.828,35,1.39,39,1.372,47,0.89,55,2.584,83,0.941,95,0.084,101,0.017,103,0,104,0,111,2.374,127,0.385,138,2.226,144,1.795,145,2.432,148,3.592,165,0.399,187,0.445,214,1.607,217,1.695,227,1.35,234,1.632,247,2.974,305,1.859,319,0.919,334,0.33,347,1.835,405,1.358,415,2.754,416,1.957,595,1.706,618,3.441,619,2.825,627,3.458,905,2.717,1041,1.72,1166,4.609,1271,4.832,1397,3.773,1680,4.972,1695,3.244,1750,3.367,1865,4.376,2341,2.408,2545,1.636,2553,4.581,2630,7.334,2643,1.786,2644,1.649,2686,2.235,2747,3.918,2767,4.441,3234,2.286,3364,2.876,3433,2.148,3609,3.244,3703,7.047,3753,3.162,4878,1.885,6363,2.575,6470,2.075,6512,9.516,6516,3.705,6596,3.498,6828,5.21,7372,5.406,7395,2.235,7396,2.69,7398,2.69,7401,2.69,7402,2.575,7403,7.597,7405,2.484,7412,4.457,7418,2.69,7422,2.69,7425,2.69,7426,7.597,7428,9.001,7431,5.783,7433,2.69,7434,7.047,7437,2.69,7439,2.69,7441,2.69,7443,2.69,7445,2.69,7447,2.69,7450,2.69,7452,4.457,7453,2.286,7454,7.36,7455,6.639,7456,5.708,7457,7.36,7458,5.708,7459,4.457,7460,7.36,7461,4.457,7462,5.708,7463,2.69,7464,3.705,7465,9.501,7466,5.708,7467,4.457,7468,2.69,7469,4.457,7470,2.69,7471,4.457,7472,2.69,7473,4.457,7474,4.457,7475,4.457,7476,4.457,7477,4.457,7478,2.69,7479,4.457,7480,2.575,7481,4.457,7482,2.69,7483,2.148,7484,4.457,7485,2.69,7486,2.69,7487,2.69,7488,4.457,7489,2.484,7490,2.69,7491,4.457,7492,2.69,7493,2.343,7494,2.69,7495,2.69,7496,2.69,7497,2.69,7498,2.69,7499,2.69,7500,2.69,7501,2.69,7502,2.69,7503,4.457,7504,4.457,7505,2.575,7506,5.708,7507,2.69,7508,4.457,7509,2.69,7510,2.69,7511,2.69,7512,2.69,7513,2.69,7514,2.69,7515,2.69,7516,2.69,7517,2.69,7518,2.69,7519,2.69,7520,2.69,7521,2.69,7522,2.69,7523,2.69,7524,2.69,7525,2.69,7526,2.69,7527,2.69,7528,2.69,7529,2.69,7530,2.69,7531,2.69,7532,4.457,7533,2.69,7534,2.69,7535,2.69,7536,4.457,7537,4.457,7538,2.69,7539,2.69,7540,2.69,7541,2.69,7542,2.69,7543,2.69,7544,2.69,7545,5.708,7546,2.69,7547,2.69,10878,4.711,10879,5.096,10880,5.096,10881,5.096,10882,5.096,10883,4.711,10884,4.711,10885,4.711,10886,3.075,10887,3.075,10888,3.075,10889,3.075,10890,3.075,10891,3.075,10892,2.843,10893,3.075,10894,3.075,10895,3.075,10896,3.075,10897,3.075,10898,3.075,10899,3.075,10900,3.075,10901,3.075,10902,3.075,10903,3.075,10904,3.075]],["title/classes/Group.html",[0,0.232,1166,3.262]],["body/classes/Group.html",[0,0.234,2,0.765,3,0.016,4,0.016,5,0.008,7,0.104,8,1.134,26,1.991,27,0.549,29,0.735,30,0.001,31,0.697,32,0.176,33,0.454,34,1.167,35,1.393,47,0.821,83,2.873,95,0.148,99,1.145,101,0.016,103,0.001,104,0.001,116,2.925,145,2.378,148,3.543,165,0.735,208,2.563,227,1.291,247,2.688,334,0.737,347,2.165,359,2.392,404,1.929,461,2.449,595,3.144,596,2.864,661,3.946,692,3.508,738,3.567,884,4.425,1166,5.522,1787,5.454,1790,5.09,1793,6.907,1873,4.257,2758,4.558,2776,4.558,3090,4.979,3092,6.343,3112,7.585,4204,8.68,4215,5.227,4242,5.746,5220,5.542,7074,6.029,8427,8.156,8458,8.602,10905,6.343,10906,9.39,10907,10.641,10908,8.77,10909,8.68,10910,9.474,10911,6.861,10912,6.861,10913,8.68,10914,6.861,10915,6.861,10916,6.861,10917,6.861,10918,6.861,10919,6.861,10920,6.861,10921,5.373,10922,6.861,10923,5.542,10924,5.746,10925,5.746,10926,6.343,10927,6.343,10928,6.343,10929,6.001,10930,6.343,10931,6.343,10932,6.001,10933,5.746,10934,6.343]],["title/modules/GroupApiModule.html",[425,1.812,10935,5.493]],["body/modules/GroupApiModule.html",[0,0.269,3,0.019,4,0.019,5,0.01,30,0.001,95,0.175,101,0.013,103,0.001,104,0.001,187,1.142,191,4.377,192,2.353,425,3.061,427,2.853,428,3.069,429,3.16,430,3.146,431,3.133,432,4.227,433,2.984,442,4.127,443,3.094,444,3.02,446,4.961,447,4.276,449,4.093,481,3.032,1547,9.636,1548,9.056,1566,6.379,1567,5.419,1878,7.006,2725,3.577,2727,3.788,3568,8.144,4402,10.856,4593,3.99,5333,8.251,10935,11.504,10936,7.896,10937,7.896,10938,7.896,10939,10.471,10940,10.856,10941,7.896,10942,10.048,10943,7.3,10944,7.896]],["title/controllers/GroupController.html",[481,2.611,10942,5.947]],["body/controllers/GroupController.html",[0,0.345,2,0.975,3,0.015,4,0.015,5,0.007,7,0.094,8,1.057,27,0.361,29,0.685,30,0.001,31,0.49,32,0.186,33,0.423,34,1.054,35,1.059,36,2.362,95,0.168,99,1.034,100,2.075,101,0.01,103,0.001,104,0.001,112,2.657,116,3.755,145,2.215,185,3.94,187,0.896,192,1.847,206,3.153,215,1.978,216,1.146,217,1.434,221,2.025,227,0.907,264,3.676,364,1.593,376,1.417,447,2.568,469,2.72,481,2.379,483,2.955,491,6.096,513,6.395,529,4.407,538,3.942,553,6.145,554,7.786,555,3.221,556,3.296,561,3.322,563,5.243,564,4.42,1014,4.171,1016,3.867,1028,7.696,1166,4.864,1409,7.227,1410,3.497,1744,4.329,2627,3.676,2727,2.973,2900,4.606,2930,3.322,3090,3.783,3743,3.636,4318,4.852,4352,8.491,4411,8.19,4426,9.634,4618,6.004,6473,5.889,6612,5.243,7088,4.721,9148,8.19,9204,5.42,9638,8.868,10940,8.491,10942,7.651,10945,6.196,10946,6.196,10947,6.196,10948,6.196,10949,11.015,10950,8.748,10951,11.015,10952,6.196,10953,6.196,10954,6.196,10955,9.634,10956,6.196,10957,6.196,10958,6.196,10959,6.196,10960,6.196,10961,6.85,10962,8.491,10963,5.42,10964,6.196,10965,6.196,10966,8.086,10967,6.196,10968,6.196,10969,7.651,10970,7.651,10971,6.196,10972,6.196,10973,6.196,10974,6.196,10975,6.196,10976,6.196]],["title/classes/GroupDomainMapper.html",[0,0.232,10977,5.947]],["body/classes/GroupDomainMapper.html",[0,0.185,2,0.606,3,0.013,4,0.013,5,0.007,7,0.082,8,0.962,27,0.476,29,0.903,30,0.001,31,0.684,32,0.166,33,0.558,34,1.354,35,1.396,39,1.464,48,2.561,95,0.133,96,1.487,97,2.351,99,0.907,101,0.009,103,0,104,0,145,2.921,217,1.622,227,1.196,234,1.792,380,2.204,461,1.821,496,3.361,595,1.82,619,3.013,627,4.162,844,2.476,854,3.995,1166,5.296,1180,3.426,1904,2.274,2355,7.288,3090,3.443,3104,2.462,3319,7.784,4281,2.374,4369,3.507,4370,4.256,4466,7.546,4666,4.041,5059,3.669,6514,7.709,8178,3.333,8427,4.141,8458,8.669,8463,9.331,8469,2.938,8940,6.963,10908,4.141,10910,9.419,10923,8.917,10924,4.552,10925,4.552,10929,4.754,10977,6.963,10978,11.916,10979,5.436,10980,7.961,10981,7.961,10982,9.42,10983,7.961,10984,7.961,10985,7.961,10986,5.436,10987,8.377,10988,7.961,10989,5.436,10990,7.961,10991,5.436,10992,5.436,10993,5.436,10994,7.961,10995,9.568,10996,5.436,10997,7.961,10998,5.436,10999,4.552,11000,7.376,11001,5.436,11002,7.359,11003,6.963,11004,5.436,11005,5.436,11006,8.239,11007,7.961,11008,7.961,11009,5.436,11010,4.754,11011,5.436,11012,5.436,11013,5.436,11014,7.961,11015,5.436,11016,5.436,11017,5.436,11018,7.961,11019,5.436,11020,5.436,11021,5.436,11022,5.436,11023,5.436,11024,5.436,11025,5.436,11026,5.436,11027,5.436,11028,4.552,11029,5.436,11030,5.436,11031,5.436,11032,5.436,11033,5.436,11034,5.436]],["title/entities/GroupEntity.html",[380,1.445,6514,5.055]],["body/entities/GroupEntity.html",[0,0.362,3,0.016,4,0.016,5,0.008,7,0.102,26,1.975,27,0.511,30,0.001,31,0.641,32,0.181,33,0.6,34,1.153,47,0.759,95,0.163,96,1.855,101,0.018,103,0.001,104,0.001,165,0.73,240,3.375,334,0.728,364,2.259,369,2.872,370,4.086,380,1.979,381,2.255,398,1.998,399,3.695,402,2.81,404,1.222,405,1.807,406,2.205,618,2.773,619,5.163,783,4.109,844,5.468,1031,3.589,1166,4.468,1858,4.878,2095,2.69,2545,3.606,2578,3.023,3090,4.954,4265,7.576,4271,6.242,4272,4.109,4281,2.962,4333,4.064,4989,4.266,5059,7.73,6473,3.938,6514,6.924,6523,3.792,6751,4.576,8434,5.309,8435,5.93,8458,7.73,8463,9.401,10987,7.523,10995,9.401,10999,9.592,11000,9.401,11006,10.018,11010,5.93,11035,6.268,11036,6.78,11037,6.78,11038,6.78,11039,6.78,11040,6.78,11041,6.78,11042,6.268,11043,6.268,11044,4.737,11045,6.268,11046,5.678,11047,6.268,11048,6.268,11049,6.268,11050,6.268]],["title/interfaces/GroupEntityProps.html",[334,0.731,10987,5.493]],["body/interfaces/GroupEntityProps.html",[0,0.368,3,0.017,4,0.017,5,0.008,7,0.105,26,2.458,30,0.001,31,0.679,32,0.185,33,0.63,34,1.972,47,0.827,95,0.164,96,1.909,101,0.018,103,0.001,104,0.001,165,0.744,240,3.014,334,0.75,336,1.67,369,2.573,370,3.558,380,2.019,398,2.056,399,3.769,402,2.893,404,1.258,405,1.86,406,2.27,618,2.854,619,5.267,783,4.23,844,5.699,1031,3.384,1166,4.558,1858,3.656,2095,2.769,2545,3.713,2578,3.112,3090,5.246,4271,6.318,4272,4.23,4281,3.049,4333,4.183,4989,4.351,5059,8.186,6473,4.054,6514,5.189,6523,3.904,8434,5.466,8435,6.105,8458,8.186,8463,9.798,10987,8.724,10995,9.798,10999,10.157,11000,9.798,11006,10.608,11010,6.105,11035,6.452,11042,6.452,11043,6.452,11044,4.877,11045,6.452,11046,5.845,11047,6.452,11048,6.452,11049,6.452,11050,6.452]],["title/classes/GroupIdParams.html",[0,0.232,10955,5.947]],["body/classes/GroupIdParams.html",[0,0.403,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.406,30,0.001,32,0.134,34,2.015,47,0.845,95,0.152,101,0.016,103,0.001,104,0.001,165,0.928,364,1.793,368,4.642,369,2.629,370,3.243,371,3.267,374,3.142,376,2.252,467,3.108,1000,4.823,4429,8.611,5803,8.245,7464,9.238,10955,10.362,11051,11.847,11052,9.101]],["title/modules/GroupModule.html",[425,1.812,10939,5.493]],["body/modules/GroupModule.html",[0,0.32,3,0.022,4,0.022,5,0.011,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.357,425,3.317,427,3.391,428,3.648,429,3.756,430,3.74,431,3.724,432,4.58,433,4.704,442,4.605,443,3.678,444,3.59,766,3.926,2531,5.073,10939,11.28,11053,9.387,11054,9.387,11055,9.387,11056,11.454,11057,11.348,11058,9.387]],["title/interfaces/GroupNameIdTuple.html",[334,0.731,11059,5.694]],["body/interfaces/GroupNameIdTuple.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,31,0.551,32,0.161,39,2.651,47,1.013,101,0.02,103,0.001,104,0.001,165,0.928,334,1.273,336,2.356,348,6.444,350,8.245,361,5.458,853,5.081,4205,3.318,5698,6.71,6473,5.719,11059,10.643,11060,9.101,11061,11.535,11062,8.611]],["title/interfaces/GroupProps.html",[334,0.731,10923,5.493]],["body/interfaces/GroupProps.html",[0,0.245,3,0.017,4,0.017,5,0.009,7,0.109,26,2.49,30,0.001,31,0.687,32,0.188,33,0.635,34,1.998,47,0.936,83,3.864,95,0.151,99,1.202,101,0.016,103,0.001,104,0.001,145,2.458,148,2.987,165,0.76,208,2.692,227,1.31,247,2.823,334,0.774,336,1.724,347,1.963,359,2.512,404,1.978,461,1.648,738,3.746,1166,5.266,1787,6.376,1790,4.098,1873,4.471,3090,5.303,3112,7.841,4242,6.034,5220,5.82,7074,5.084,8427,9.342,8458,9.071,10905,6.66,10907,6.66,10908,9.342,10909,6.66,10910,9.596,10913,6.66,10923,7.841,10924,9.837,10925,9.837,10926,6.66,10927,6.66,10928,6.66,10929,6.301,10930,6.66,10931,6.66,10932,6.301,10933,6.034,10934,6.66]],["title/injectables/GroupRepo.html",[105,0.91,11057,5.694]],["body/injectables/GroupRepo.html",[0,0.172,3,0.012,4,0.012,5,0.006,7,0.076,8,0.91,10,3.042,12,3.452,18,3.808,26,2.639,27,0.48,29,0.911,30,0.001,31,0.652,32,0.166,33,0.563,34,1.702,35,1.359,36,2.744,40,3.638,47,0.643,48,4.714,49,1.986,95,0.149,96,1.381,97,2.183,99,0.842,101,0.008,103,0,104,0,105,1.008,107,1.217,112,2.958,116,4.18,127,0.632,167,4.132,187,0.73,215,1.611,216,0.933,217,1.746,221,2.768,227,1.31,234,1.889,369,1.12,371,1.392,380,2.472,381,2.507,461,1.724,595,3.349,854,3.782,1166,6.062,1790,4.741,1904,2.111,2355,5.753,2367,6.547,2403,5.902,2408,5.266,2410,8.338,2422,4.227,2438,6.592,2545,2.685,3090,2.183,3104,2.287,3314,3.526,3319,4.568,3338,6.592,3381,4.077,4205,2.54,4411,6.088,4416,6.312,5059,3.407,6514,9.089,7074,5.24,8458,3.407,8969,4.415,8976,6.592,10923,9.07,10977,4.415,10987,6.088,10999,4.227,11002,4.666,11057,6.312,11063,5.047,11064,6.967,11065,6.967,11066,5.047,11067,5.047,11068,6.967,11069,5.047,11070,5.047,11071,6.967,11072,5.047,11073,5.047,11074,5.047,11075,5.047,11076,10.003,11077,10.003,11078,10.003,11079,7.537,11080,5.047,11081,5.047,11082,5.047,11083,7.537,11084,9.019,11085,5.047,11086,5.047,11087,5.047,11088,5.047,11089,5.047,11090,5.047]],["title/classes/GroupResponse.html",[0,0.232,10962,5.694]],["body/classes/GroupResponse.html",[0,0.264,2,0.864,3,0.018,4,0.018,5,0.009,7,0.117,27,0.542,29,0.607,30,0.001,31,0.677,32,0.187,33,0.607,34,1.936,47,0.919,95,0.155,101,0.013,103,0.001,104,0.001,127,0.97,145,1.961,165,0.798,200,2.412,364,2.348,375,4.784,376,1.772,467,3.448,618,3.167,1011,3.913,1031,2.427,1166,5.46,1249,5.901,2095,3.073,2578,3.453,2888,4.694,3090,4.922,8434,6.065,8458,7.681,8473,9.53,10908,8.67,10962,10.518,11046,6.486,11091,7.745,11092,8.908,11093,10.185,11094,7.745,11095,7.745,11096,7.745,11097,11.61,11098,7.745,11099,10.125,11100,7.745,11101,7.745,11102,7.745,11103,7.745,11104,6.774,11105,6.774,11106,7.159,11107,6.486,11108,7.159,11109,7.159]],["title/classes/GroupResponseMapper.html",[0,0.232,10963,5.947]],["body/classes/GroupResponseMapper.html",[0,0.232,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,8,1.13,27,0.44,29,0.836,30,0.001,31,0.674,32,0.164,33,0.516,34,1.816,35,1.292,47,0.487,48,3.217,55,2.677,56,5.511,59,2.914,70,5.688,95,0.148,99,1.139,100,2.286,101,0.011,103,0.001,104,0.001,111,2.14,145,1.728,217,1.566,227,1.107,234,1.954,461,1.561,496,2.882,627,4.035,851,3.255,852,3.255,854,3.426,974,4.047,1014,5.477,1016,3.285,1180,2.938,1744,4.769,1904,2.855,3090,2.952,4318,8.995,4321,5.514,4322,5.717,4323,4.468,4324,4.236,4342,10.078,4352,10.078,4466,6.672,8427,5.201,8458,4.607,8473,7.836,9163,5.97,10908,5.201,10961,8.995,10962,10.078,10963,8.184,11003,5.97,11097,6.31,11099,7.836,11110,11.486,11111,10.676,11112,9.357,11113,9.357,11114,6.826,11115,6.31,11116,9.357,11117,9.357,11118,6.826,11119,6.826,11120,9.357,11121,6.826,11122,6.31,11123,6.826,11124,9.357,11125,6.826,11126,6.826,11127,6.826,11128,6.826,11129,6.826,11130,6.826,11131,6.826,11132,6.826,11133,6.826,11134,6.826,11135,6.826,11136,6.826,11137,6.826,11138,6.826,11139,6.826,11140,6.826,11141,6.826,11142,6.826,11143,6.826,11144,6.826,11145,6.826,11146,6.826]],["title/classes/GroupRoleUnknownLoggable.html",[0,0.232,11147,5.947]],["body/classes/GroupRoleUnknownLoggable.html",[0,0.305,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,8,1.35,27,0.461,29,0.701,30,0.001,31,0.501,32,0.122,33,0.433,35,1.083,95,0.143,101,0.015,103,0.001,104,0.001,127,1.121,163,2.754,214,3.523,215,2.856,216,1.655,227,0.928,461,2.047,496,5.144,1166,4.293,1216,3.506,1345,3.55,1464,5.611,1465,6.288,1467,2.856,1469,6.318,1646,5.005,3049,6.505,7027,5.553,8288,6.334,8289,6.585,8443,5.945,11147,9.773,11148,12.183,11149,8.949,11150,8.949,11151,10.307,11152,8.949,11153,10.329,11154,8.949,11155,8.949,11156,6.505,11157,8.949,11158,8.949,11159,8.949]],["title/injectables/GroupRule.html",[105,0.91,1891,5.694]],["body/injectables/GroupRule.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.12,8,1.248,27,0.474,29,0.901,30,0.001,31,0.644,32,0.166,33,0.556,35,1.25,95,0.162,99,1.32,101,0.013,103,0.001,104,0.001,105,1.382,107,1.907,116,4.04,127,0.991,187,1.144,199,4.346,214,2.494,215,2.525,216,1.463,217,1.344,227,1.071,347,2.623,369,1.756,461,3.099,806,3.221,1166,6.427,1790,5.578,1795,6.588,1823,8.048,1861,7.388,1891,8.65,2002,6.664,2006,6.409,2013,5.256,3385,6.862,3386,5.34,3389,6.76,3392,5.34,3393,6.971,3394,5.882,5987,5.634,11160,7.912,11161,7.912,11162,7.912,11163,7.912,11164,7.912,11165,10.329]],["title/injectables/GroupService.html",[105,0.91,11056,5.493]],["body/injectables/GroupService.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.018,10,3.401,12,3.86,18,4.258,26,2.821,27,0.515,29,0.978,30,0.001,31,0.699,32,0.173,33,0.604,34,1.83,35,1.477,36,2.875,40,4.068,47,0.702,48,5.069,95,0.152,99,0.981,101,0.01,103,0,104,0,105,1.127,107,1.417,112,3.055,116,4.317,127,0.736,167,3.625,187,0.85,214,1.854,215,1.877,216,1.087,217,1.542,221,2.825,227,1.229,234,0.955,305,1.675,461,1.345,854,2.951,1166,6.707,1876,7.058,1904,2.46,2531,3.178,2725,2.664,4205,1.982,4411,6.807,4416,7.058,6473,4.895,7074,5.635,8369,3.564,9674,4.108,9675,4.274,11056,6.807,11057,9.924,11064,7.79,11065,7.79,11068,7.79,11071,7.79,11166,5.88,11167,8.427,11168,5.88,11169,5.88,11170,8.427,11171,5.88,11172,5.88,11173,5.88,11174,5.88,11175,5.88,11176,8.427,11177,5.88,11178,8.427,11179,5.88,11180,8.427,11181,5.88,11182,5.88,11183,5.88,11184,5.88,11185,8.427,11186,5.88,11187,5.88]],["title/injectables/GroupUc.html",[105,0.91,10940,5.694]],["body/injectables/GroupUc.html",[0,0.278,2,0.386,3,0.008,4,0.008,5,0.004,7,0.052,8,0.678,26,2.798,27,0.461,29,0.876,30,0.001,31,0.653,32,0.152,33,0.541,35,1.317,36,2.717,39,2.195,47,0.684,48,3.338,55,2.513,56,5.221,59,1.078,70,5.214,95,0.157,99,0.578,100,1.159,101,0.006,103,0,104,0,105,0.751,107,0.834,111,2.677,112,2.881,116,2.989,127,0.703,129,5.058,132,4.571,144,0.952,145,2.666,187,0.5,189,3.112,191,1.918,192,2.111,216,1.947,217,1.738,221,3.01,227,1.21,234,1.15,247,2.2,284,5.187,319,1.034,461,2.489,496,2.371,766,1.448,843,1.527,1014,4.576,1166,6.204,1566,2.795,1567,2.375,1801,2.074,1884,5.464,1904,1.448,1982,3.365,1988,4.174,2686,2.516,2725,1.568,3015,5.266,3104,4.06,3364,3.998,4154,4.397,4176,2.71,4205,3.235,4318,9.546,4323,4.637,4324,3.484,4406,8.466,4411,4.535,4416,4.702,4431,6.616,4435,3.789,4466,4.735,4541,3.923,4552,2.573,4593,1.749,4652,7.515,4737,5.872,6473,3.261,7074,3.711,7464,5.15,9638,4.911,10293,3.14,10752,3.574,10820,2.795,10910,5.266,10940,4.702,10943,3.199,10961,4.397,11056,7.752,11107,2.898,11122,5.19,11188,3.461,11189,5.615,11190,7.084,11191,5.615,11192,5.615,11193,5.615,11194,5.615,11195,3.461,11196,7.199,11197,8.166,11198,3.461,11199,5.615,11200,3.461,11201,8.151,11202,3.461,11203,3.461,11204,3.461,11205,3.461,11206,5.615,11207,3.461,11208,5.615,11209,3.461,11210,5.615,11211,3.461,11212,5.615,11213,3.461,11214,5.615,11215,3.461,11216,3.199,11217,4.637,11218,3.027,11219,7.239,11220,3.027,11221,3.461,11222,3.461,11223,3.461,11224,2.71,11225,5.19,11226,3.461,11227,3.461,11228,3.461,11229,3.461,11230,3.461,11231,3.461,11232,3.461,11233,3.461,11234,3.461,11235,5.615,11236,8.151,11237,8.151,11238,3.461,11239,3.461,11240,3.461,11241,3.461,11242,3.199,11243,3.461,11244,3.461,11245,3.461,11246,3.461,11247,3.461,11248,3.461,11249,3.461,11250,3.461,11251,3.461,11252,3.461,11253,3.461,11254,7.535,11255,5.615,11256,3.461,11257,3.199,11258,3.199,11259,3.461,11260,3.461,11261,3.461,11262,3.461,11263,3.461,11264,3.461,11265,2.898,11266,3.461,11267,5.19,11268,3.461,11269,3.461,11270,3.461,11271,5.615,11272,3.461,11273,3.461,11274,3.461,11275,3.461]],["title/classes/GroupUcMapper.html",[0,0.232,11220,5.947]],["body/classes/GroupUcMapper.html",[0,0.405,2,0.737,3,0.016,4,0.016,5,0.008,7,0.1,8,1.106,27,0.433,29,0.822,30,0.001,31,0.707,32,0.172,33,0.508,34,1.786,35,1.271,59,2.852,95,0.158,99,1.104,100,2.214,101,0.011,103,0.001,104,0.001,116,3.271,217,1.549,227,1.089,234,1.705,627,4.007,1166,6.342,1249,6.975,1567,4.539,1904,2.766,2470,4.539,3090,2.86,3104,4.757,3147,4.267,4277,5.538,4318,10.226,4321,7.395,4322,7.667,4323,7.417,4324,7.384,4331,5.784,4466,7.15,4571,3.604,7074,6.232,8458,4.463,9718,4.394,10752,7.214,10961,9.318,11104,8.007,11105,5.784,11107,5.538,11216,6.113,11217,7.417,11219,10.549,11220,8.007,11242,6.113,11254,10.476,11267,10.476,11276,11.333,11277,6.613,11278,9.155,11279,10.5,11280,9.155,11281,9.155,11282,6.613,11283,6.613,11284,6.613,11285,9.155,11286,6.613,11287,6.613,11288,6.613,11289,6.613,11290,6.613,11291,6.613,11292,6.613,11293,6.613,11294,9.155,11295,6.613,11296,6.613,11297,6.613,11298,6.613,11299,6.613,11300,6.613,11301,6.613,11302,6.613]],["title/classes/GroupUser.html",[0,0.232,10910,5.055]],["body/classes/GroupUser.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,26,2.838,27,0.517,29,0.749,30,0.001,31,0.536,32,0.171,33,0.463,39,3.379,95,0.123,99,1.596,101,0.016,103,0.001,104,0.001,127,1.198,165,0.912,405,3.102,415,5.17,416,6.088,595,3.203,4666,9.329,10910,9.95,11303,13.059,11304,8.842,11305,11.642,11306,9.565,11307,8.366,11308,8.366]],["title/classes/GroupUserEntity.html",[0,0.232,10995,5.324]],["body/classes/GroupUserEntity.html",[0,0.304,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.502,29,0.699,30,0.001,31,0.5,32,0.165,33,0.432,95,0.143,96,2.443,101,0.019,103,0.001,104,0.001,127,1.118,165,0.874,334,0.959,364,2.032,398,2.631,405,2.973,461,3.167,496,5.846,595,2.99,1844,5.352,2181,6.491,2574,5.759,4989,5.574,6751,7.531,7574,6.238,10995,8.737,11309,10.677,11310,7.478,11311,11.151,11312,11.158,11313,8.929,11314,6.491,11315,6.803]],["title/interfaces/GroupUserEntityProps.html",[334,0.731,11311,5.947]],["body/interfaces/GroupUserEntityProps.html",[0,0.319,3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.156,95,0.148,96,2.562,101,0.019,103,0.001,104,0.001,165,0.9,334,1.006,336,2.241,398,2.759,405,2.495,461,3.229,496,5.96,1844,5.613,2181,6.807,2574,5.931,4989,5.695,7574,6.543,10995,7.333,11309,7.843,11310,7.843,11311,10.875,11314,6.807,11315,7.135]],["title/classes/GroupUserResponse.html",[0,0.232,11099,5.694]],["body/classes/GroupUserResponse.html",[0,0.291,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,27,0.534,29,0.668,30,0.001,31,0.478,32,0.176,33,0.413,34,2.027,47,0.944,95,0.139,99,1.424,101,0.014,103,0.001,104,0.001,127,1.069,165,0.849,364,2.284,376,1.952,461,1.952,467,3.57,496,5.032,618,3.489,738,4.436,851,5.683,852,5.683,1031,2.674,2181,6.202,2888,5.171,3146,5.668,3147,5.505,4571,7.055,9538,5.668,9540,5.668,11099,10.842,11316,13.232,11317,6.892,11318,10.023,11319,10.843,11320,8.532,11321,8.532,11322,8.532,11323,8.532]],["title/interfaces/GroupUsers.html",[334,0.731,11324,5.055]],["body/interfaces/GroupUsers.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.984,55,2.651,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,5.563,4511,6.177,6473,5.316,11324,8.423,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,6.803]],["title/classes/GroupValidPeriodEntity.html",[0,0.232,11000,5.324]],["body/classes/GroupValidPeriodEntity.html",[0,0.311,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.507,29,0.715,30,0.001,31,0.511,32,0.167,33,0.442,83,4.118,95,0.117,96,2.498,101,0.019,103,0.001,104,0.001,127,1.144,165,0.886,240,4.19,334,0.981,364,2.061,398,2.69,405,3.015,595,3.057,783,7.789,2574,5.839,8178,7.879,8436,7.987,8437,7.987,8438,7.987,8439,7.987,11000,8.86,11309,10.762,11338,8.441,11339,11.24,11340,11.315,11341,9.131]],["title/interfaces/GroupValidPeriodEntityProps.html",[334,0.731,11339,5.947]],["body/interfaces/GroupValidPeriodEntityProps.html",[0,0.33,3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.159,83,4.264,95,0.124,96,2.648,101,0.02,103,0.001,104,0.001,165,0.918,240,4.002,334,1.04,336,2.317,398,2.852,405,2.579,783,5.867,2574,6.052,8178,8.234,8436,8.466,8437,8.466,8438,8.466,8439,8.466,11000,7.58,11309,8.107,11338,8.948,11339,11.034]],["title/interfaces/GroupfoldersCreated.html",[334,0.731,11337,5.055]],["body/interfaces/GroupfoldersCreated.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,2.188,47,0.96,55,2.847,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,5.316,11324,6.803,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,8.423]],["title/interfaces/GroupfoldersFolder.html",[334,0.731,11335,5.055]],["body/interfaces/GroupfoldersFolder.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.96,55,2.847,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,5.316,11324,6.803,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,8.423,11336,9.799,11337,6.803]],["title/classes/GuardAgainst.html",[0,0.232,11342,5.947]],["body/classes/GuardAgainst.html",[0,0.287,2,0.941,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,27,0.348,29,0.844,30,0.001,31,0.473,32,0.146,33,0.408,35,1.304,101,0.014,103,0.001,104,0.001,144,3.771,145,3.341,167,4.856,227,0.875,264,4.526,305,2.405,379,1.913,627,3.639,692,4.93,1129,6.195,1345,3.35,2299,10.091,4670,9.02,8050,7.829,8369,7.572,11342,9.42,11343,10.77,11344,8.443,11345,10.77,11346,10.77,11347,12.905,11348,8.443,11349,9.956,11350,8.206,11351,8.434,11352,9.42,11353,10.77]],["title/controllers/H5PEditorController.html",[481,2.611,11354,5.947]],["body/controllers/H5PEditorController.html",[0,0.224,3,0.016,4,0.016,5,0.008,7,0.099,8,1.101,27,0.376,30,0.001,32,0.187,35,1.103,47,0.468,72,2.976,95,0.145,101,0.011,103,0.001,104,0.001,112,2.707,187,0.95,217,0.855,227,1.274,364,1.66,376,1.503,447,2.723,481,2.523,483,3.133,502,7.969,506,7.396,538,2.96,553,6.342,554,8.193,555,3.416,556,3.495,558,3.152,561,3.522,563,5.462,564,4.708,627,2.796,1016,3.968,1125,3.896,1345,3.616,1353,5.051,1392,7.062,1397,3.504,2145,4.128,2468,7.362,2643,6.078,2783,6.272,2900,6.775,2904,6.944,2905,6.944,3100,9.923,3578,4.703,5072,8.629,6430,7.137,8362,8.849,10303,5.006,11354,7.971,11355,9.152,11356,10.464,11357,6.57,11358,9.152,11359,11.301,11360,11.301,11361,13.04,11362,9.114,11363,9.114,11364,6.57,11365,6.57,11366,6.57,11367,6.57,11368,6.57,11369,6.57,11370,6.074,11371,6.57,11372,7.451,11373,6.57,11374,6.57,11375,6.57,11376,9.114,11377,6.57,11378,6.57,11379,6.074,11380,6.57,11381,6.57,11382,6.57,11383,6.57,11384,6.57,11385,6.57,11386,6.57,11387,6.57,11388,9.114,11389,6.57]],["title/modules/H5PEditorModule.html",[425,1.812,11390,5.694]],["body/modules/H5PEditorModule.html",[0,0.238,3,0.017,4,0.017,5,0.008,30,0.001,32,0.095,47,0.498,87,3.503,94,4.615,95,0.175,96,2.599,99,1.165,101,0.012,103,0.001,104,0.001,154,3.197,187,1.009,217,1.509,234,1.133,369,1.549,381,2.322,398,2.056,425,2.878,427,2.521,428,2.713,429,2.793,430,2.781,431,2.769,432,4.266,433,2.638,442,3.801,443,2.735,444,2.669,447,4.477,449,4.285,461,2.471,496,4.011,511,3.527,574,3.064,701,3.359,722,3.112,731,2.758,778,6.412,801,4.054,844,4.327,885,4.8,953,4.568,1187,3.328,1188,3.289,1189,3.289,1190,3.479,1267,4.637,1268,4.28,1467,2.228,1507,8.313,1646,3.904,1852,2.947,1878,6.763,2356,5.14,2644,3.742,2725,3.162,4865,4.79,5460,4.568,5511,4.711,6422,8.313,8469,5.135,9925,4.97,10416,4.877,10577,7.062,10578,7.062,10579,5.074,10580,7.238,10581,4.97,10582,5.074,10589,6.906,10590,6.906,10591,6.906,10592,5.074,10593,4.877,10595,5.845,10604,7.238,10605,5.189,10606,5.189,10607,5.074,10608,5.638,10609,5.189,10610,5.318,10611,6.105,10752,6.047,10753,6.452,11354,9.447,11355,6.105,11358,6.105,11390,11.381,11391,6.98,11392,6.98,11393,6.98,11394,6.452,11395,6.98,11396,6.98,11397,6.98,11398,6.98]],["title/modules/H5PEditorTestModule.html",[425,1.812,11399,5.947]],["body/modules/H5PEditorTestModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,8,0.839,27,0.286,29,0.544,30,0.001,31,0.389,32,0.094,33,0.336,35,0.841,59,2.163,94,4.598,95,0.173,99,1.159,101,0.012,103,0.001,104,0.001,187,1.004,217,1.402,227,0.72,381,2.31,425,3.083,427,2.508,428,2.698,429,2.778,430,2.767,431,2.755,432,4.257,433,2.624,438,5.853,442,3.788,443,2.721,444,2.655,447,4.465,449,4.803,461,2.166,496,3.997,627,2.905,701,3.347,844,4.312,1297,5.048,1298,6.497,1301,7.156,1467,2.216,1503,9.783,1507,8.3,1878,6.752,2725,3.146,3100,7.647,6422,8.3,8358,4.613,10416,4.851,10423,5.437,10576,8.729,10645,8.458,10646,6.073,10647,8.6,10649,5.048,10650,5.609,10651,5.048,10652,5.609,10653,5.815,10654,7.037,10752,6.026,11355,8.28,11358,6.073,11390,10.463,11394,8.752,11399,12.336,11400,6.944,11401,6.944,11402,6.944,11403,6.944,11404,6.944]],["title/interfaces/HtmlMailContent.html",[334,0.731,1497,5.055]],["body/interfaces/HtmlMailContent.html",[3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,31,0.489,32,0.15,33,0.532,47,1.021,77,5.56,101,0.015,103,0.001,104,0.001,165,0.862,334,1.452,336,2.091,404,2.35,1482,8.181,1483,6.655,1484,8.957,1485,8.385,1486,6.655,1487,4.886,1488,8.181,1489,6.35,1490,6.655,1491,6.35,1492,9.403,1493,6.655,1494,8.181,1495,9.934,1496,9.934,1497,8.957,1498,6.67,1499,6.494,1500,6.494,1501,6.655,1502,6.655]],["title/injectables/HydraOauthUc.html",[105,0.91,11405,5.694]],["body/injectables/HydraOauthUc.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.077,8,0.919,27,0.482,29,0.788,30,0.001,31,0.564,32,0.153,33,0.487,35,1.1,36,2.419,39,1.376,47,0.985,55,1.957,56,2.452,59,2.37,95,0.163,99,0.853,100,2.547,101,0.009,103,0,104,0,105,1.018,107,1.232,111,2.572,112,2.704,127,0.953,144,2.499,165,0.596,187,0.739,204,3.827,216,2.22,217,1.521,221,2.779,227,0.942,234,1.475,247,2.981,305,2.167,319,2.716,334,0.549,347,1.034,359,1.782,369,1.134,498,3.508,529,2.222,564,3.331,661,3.819,731,2.019,907,5.221,982,2.548,1016,2.671,1142,5.225,1187,2.437,1188,2.409,1189,2.409,1270,3.031,1353,2.467,1467,1.631,1605,6.928,1820,4.721,1907,7.116,2022,7.663,2033,3.571,2130,2.233,2131,2.499,2132,2.409,2356,3.733,2357,4.585,3859,2.859,3928,6.145,6141,4.471,6142,4.471,7131,7.168,8823,4.725,9829,4.471,11405,6.371,11406,12.005,11407,5.111,11408,9.087,11409,9.087,11410,10.066,11411,7.608,11412,9.087,11413,7.608,11414,4.471,11415,8.595,11416,9.785,11417,5.111,11418,7.608,11419,5.111,11420,5.111,11421,5.111,11422,10.066,11423,7.608,11424,5.111,11425,7.033,11426,5.111,11427,5.111,11428,5.111,11429,5.863,11430,6.371,11431,4.725,11432,5.418,11433,4.725,11434,4.471,11435,5.53,11436,4.725,11437,4.471,11438,5.111,11439,4.471,11440,9.305,11441,7.608,11442,7.033,11443,5.111,11444,5.111,11445,5.111,11446,7.608,11447,7.61,11448,5.111,11449,5.111,11450,5.111,11451,5.111,11452,5.111,11453,7.608,11454,4.725,11455,4.471,11456,4.281,11457,5.111,11458,5.111,11459,4.281,11460,5.111,11461,5.111,11462,5.111,11463,7.608,11464,5.111,11465,5.111]],["title/classes/HydraRedirectDto.html",[0,0.232,11430,5.694]],["body/classes/HydraRedirectDto.html",[0,0.299,2,0.978,3,0.021,4,0.021,5,0.011,7,0.133,27,0.549,29,0.687,30,0.001,31,0.491,32,0.181,33,0.424,47,0.787,55,2.377,95,0.142,101,0.015,103,0.001,104,0.001,127,1.099,165,0.864,405,2.941,595,2.938,1016,4.239,1205,7.087,2022,8.598,2033,6.13,3928,9.753,6139,10.111,11430,10.934,11447,10.111,11454,11.161,11455,10.56,11456,10.111,11466,8.773,11467,8.773,11468,8.773,11469,8.773,11470,8.773,11471,8.773,11472,8.773,11473,8.11,11474,8.773,11475,8.773,11476,8.773,11477,8.773,11478,8.773,11479,8.773,11480,8.773,11481,8.773,11482,8.773]],["title/injectables/HydraSsoService.html",[105,0.91,11416,5.694]],["body/injectables/HydraSsoService.html",[0,0.154,3,0.011,4,0.011,5,0.005,7,0.068,8,0.836,27,0.462,29,0.842,30,0.001,31,0.602,32,0.152,33,0.52,35,1.233,36,2.593,47,0.956,95,0.167,99,0.753,100,1.51,101,0.008,103,0,104,0,105,0.926,107,1.087,111,2.424,112,2.611,127,0.867,144,1.24,145,1.142,148,1.388,150,1.562,165,0.542,187,0.652,209,2.288,216,2.07,217,1.678,221,1.602,227,1.057,234,1.534,277,2.793,305,1.285,319,1.348,331,6.013,450,1.853,460,2.594,511,2.279,529,1.961,576,2.546,661,3.539,774,3.096,839,2.151,905,1.878,1142,2.089,1154,7.823,1155,2.62,1157,2.952,1322,6.595,1353,2.177,1467,1.44,1518,3.212,1521,3.945,1586,3.945,1613,2.799,1642,3.212,1695,2.871,1907,3.532,1946,2.997,2022,3.212,2033,3.151,2130,1.97,2131,2.205,2132,2.125,2142,3.353,2292,5.274,2293,3.777,2322,4.17,2327,3.945,2356,3.46,2357,4.303,3859,2.523,3928,9.044,4492,3.353,4584,6.867,4588,2.328,4866,6.595,5530,2.248,6139,9.921,6141,6.054,6142,6.054,6614,6.376,7125,5.145,7131,3.212,7182,4.836,7278,2.734,8259,3.353,8805,3.044,8844,3.151,9285,6.867,9314,3.644,11416,5.797,11425,4.17,11429,6.939,11430,8.533,11431,4.17,11440,6.399,11447,9.676,11455,3.945,11456,9.006,11473,4.17,11483,4.511,11484,6.922,11485,6.922,11486,6.922,11487,6.922,11488,4.511,11489,7.367,11490,4.511,11491,6.922,11492,6.922,11493,4.511,11494,6.922,11495,4.511,11496,6.922,11497,4.511,11498,6.922,11499,4.511,11500,4.511,11501,6.922,11502,4.511,11503,4.511,11504,3.437,11505,4.511,11506,5.797,11507,3.777,11508,4.511,11509,4.511,11510,3.353,11511,3.353,11512,3.353,11513,3.437,11514,4.511,11515,4.511,11516,4.511,11517,4.511,11518,6.922,11519,4.511,11520,4.511,11521,4.511,11522,4.511,11523,6.922,11524,4.511,11525,4.511,11526,3.777,11527,4.17,11528,4.511,11529,4.511,11530,7.911,11531,4.511,11532,4.511,11533,4.511,11534,6.922,11535,4.511,11536,4.511,11537,4.511,11538,6.922,11539,4.511,11540,4.511,11541,4.511,11542,4.511,11543,4.511,11544,4.511,11545,4.511,11546,4.511,11547,4.511,11548,4.511,11549,4.511,11550,4.511,11551,4.511,11552,6.922,11553,4.511,11554,4.511,11555,4.511,11556,6.922,11557,3.096,11558,4.511,11559,4.511,11560,2.997,11561,3.777,11562,3.096,11563,4.511,11564,4.511,11565,3.096,11566,4.511,11567,4.511,11568,2.766,11569,4.511,11570,4.511,11571,3.532,11572,3.044,11573,4.511,11574,4.511,11575,4.511]],["title/interfaces/IAccountConfig.html",[334,0.731,11576,5.947]],["body/interfaces/IAccountConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.165,55,2.79,101,0.017,103,0.001,104,0.001,165,0.953,334,1.106,336,2.465,347,2.62,445,9.52,1764,11.707,11576,10.644,11577,6.951,11578,12.373]],["title/interfaces/IBbbSettings.html",[334,0.731,2249,5.493]],["body/interfaces/IBbbSettings.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.173,47,1.005,101,0.02,103,0.001,104,0.001,165,0.932,217,1.291,334,1.066,336,2.374,1322,10.352,2049,5.119,2246,10.679,2247,11.563,2249,9.612,2252,8.675,11579,9.918,11580,8.675,11581,9.918]],["title/interfaces/ICalendarEvent.html",[334,0.731,3899,5.694]],["body/interfaces/ICalendarEvent.html",[3,0.024,4,0.024,5,0.012,7,0.154,30,0.001,32,0.176,47,0.864,101,0.017,103,0.001,104,0.001,138,5.292,163,4.109,165,0.949,334,1.098,336,2.446,563,6.125,1271,6.505,3889,7.014,3899,10.145,3906,8.256,3909,7.787,11582,10.22,11583,10.22]],["title/interfaces/IClassEntityProps.html",[334,0.731,4274,5.694]],["body/interfaces/IClassEntityProps.html",[0,0.277,2,0.625,3,0.013,4,0.028,5,0.007,7,0.182,26,2.23,30,0.001,31,0.626,32,0.178,33,0.659,34,1.789,47,0.961,49,5.423,55,2.266,62,6.556,95,0.143,96,2.226,97,2.423,99,0.935,101,0.014,103,0,104,0,111,1.123,144,1.541,145,3.231,165,0.751,234,0.91,240,4.1,305,1.596,334,0.602,336,1.341,359,1.953,369,2.788,370,4.059,380,1.729,398,1.65,399,3.229,402,2.322,404,1.009,405,1.493,406,1.822,618,2.291,619,4.511,905,2.333,2095,2.223,4205,3.766,4206,7.956,4207,8.513,4208,8.473,4209,8.513,4210,7.324,4211,8.513,4212,8.513,4255,4.072,4256,5.178,4264,9.127,4271,4.435,4272,3.395,4273,5.178,4274,8.809,4275,4.691,4276,9.724,4277,6.815,4278,5.178,4279,5.178,4280,4.691,4281,2.447,4282,3.321,4283,4.164,4284,7.523,4285,4.387,4286,5.178,4287,5.178,4288,7.523,4289,5.178,4290,7.523,4291,5.178,4292,5.178,4293,6.373,4294,4.164,4295,7.523,4296,5.178,4297,6.2,4298,4.072,4299,7.523,4300,5.178]],["title/interfaces/ICleanOptions.html",[334,0.731,11584,5.493]],["body/interfaces/ICleanOptions.html",[0,0.16,3,0.011,4,0.011,5,0.006,7,0.071,10,1.901,30,0.001,32,0.064,33,0.346,36,2.438,47,0.51,52,3.392,53,3.425,55,2.449,70,4.284,72,3.241,78,8.697,95,0.124,101,0.008,103,0,104,0,111,1.937,112,2.696,127,0.59,145,1.812,165,0.56,204,1.598,216,1.6,217,1.352,221,2.776,227,0.897,234,1.162,247,2.804,264,3.636,305,1.342,319,3.105,334,0.929,336,1.127,346,2.999,347,0.953,368,4.071,371,3.23,379,2.817,403,4.683,432,1.734,461,1.078,529,2.048,575,2.824,627,1.446,701,4.019,768,3.233,773,5.507,798,2.96,803,2.923,894,6.289,905,2.979,907,5.938,1037,3.589,1125,2.793,1129,4.115,1414,2.635,1467,1.504,1639,5.507,1646,4.002,1772,5.603,1920,2.999,1948,4.289,1959,2.567,2130,2.058,2147,3.689,2356,1.935,2357,3.259,2450,2.684,2800,5.662,3090,5.066,3481,4.754,3489,3.291,3490,8.844,3491,6.528,3492,2.793,5451,3.502,5880,7.484,6431,3.689,7027,2.923,7044,2.999,7325,7.916,7799,6.044,7809,7.916,8252,3.589,8310,3.291,10142,4.999,11351,3.689,11584,6.988,11585,2.684,11586,2.888,11587,3.945,11588,3.945,11589,7.566,11590,5.992,11591,6.431,11592,3.689,11593,3.689,11594,5.992,11595,3.945,11596,3.945,11597,8.392,11598,3.945,11599,3.945,11600,5.78,11601,5.451,11602,3.945,11603,3.589,11604,3.689,11605,3.945,11606,3.945,11607,3.945,11608,8.701,11609,3.425,11610,3.945,11611,3.945,11612,7.245,11613,3.083,11614,5.839,11615,3.355,11616,4.911,11617,3.502,11618,3.945,11619,3.945,11620,3.945,11621,8.091,11622,3.945,11623,3.945,11624,3.945,11625,8.091,11626,3.945,11627,3.945,11628,3.945,11629,8.091,11630,8.091,11631,3.689,11632,3.945,11633,3.945,11634,3.945,11635,3.425,11636,3.805,11637,5.201,11638,3.945,11639,3.945,11640,3.945,11641,3.945,11642,3.945,11643,5.095,11644,3.689,11645,3.689,11646,3.945,11647,3.945,11648,3.945,11649,3.945,11650,3.945,11651,3.945,11652,3.945,11653,3.945,11654,3.945,11655,3.945,11656,3.945,11657,3.805]],["title/interfaces/ICollaborativeStorageStrategy.html",[334,0.731,4527,5.493]],["body/interfaces/ICollaborativeStorageStrategy.html",[3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.506,29,0.961,30,0.001,31,0.687,32,0.167,33,0.593,35,1.485,36,2.882,47,0.826,95,0.134,100,4.106,101,0.013,103,0.001,104,0.001,264,3.378,334,1.245,336,1.924,379,2.365,494,7.351,496,4.893,520,6.933,1849,5.237,2051,5.945,3889,5.517,4511,8.578,4521,8.43,4522,8.43,4524,8.43,4525,8.43,4527,8.43,4530,8.43,4531,9.443,4533,7.61,4534,8.43,4538,8.43,4544,5.975,4546,6.294,4547,6.732,4566,9.907,4567,6.493,11658,8.038,11659,10.436,11660,9.127,11661,8.038,11662,8.038,11663,8.038,11664,9.647,11665,8.038,11666,10.436]],["title/interfaces/ICollectionFilePath.html",[334,0.731,11667,6.286]],["body/interfaces/ICollectionFilePath.html",[0,0.09,3,0.006,4,0.021,5,0.01,7,0.04,10,1.065,27,0.109,30,0.001,31,0.432,32,0.061,33,0.283,35,1.016,36,1.919,47,0.895,55,0.966,83,1.372,95,0.143,96,0.722,97,1.142,99,0.441,101,0.013,103,0,104,0,105,0.6,111,2.499,112,2.164,127,0.331,144,0.726,145,0.668,163,2.754,165,0.351,187,0.382,204,0.896,216,1.274,217,1.715,221,2.938,227,1.292,234,0.949,247,1.757,264,3.244,284,2.423,305,0.752,331,1.68,334,0.284,336,0.632,347,0.907,369,0.995,381,0.878,433,0.998,449,1.047,494,1.582,504,1.728,520,1.754,535,1.415,538,2.02,565,2.235,576,2.531,577,2.531,674,1.451,731,1.043,734,4.397,767,2.44,774,1.812,778,1.782,789,3.825,801,1.533,839,1.259,846,1.88,851,2.138,852,2.138,853,2.314,883,2.479,905,2.869,964,1.812,1129,1.518,1187,1.259,1188,1.244,1189,1.244,1190,1.316,1191,1.439,1192,1.812,1193,1.782,1345,2.319,1462,2.309,1467,0.843,1602,1.844,1618,1.533,1630,6.845,1843,5.466,1865,1.202,1944,1.812,1947,4.577,1948,5.884,2015,4.577,2051,1.504,2130,1.153,2131,1.29,2132,1.244,2133,1.68,2139,1.703,2241,1.782,2303,1.07,2355,2.579,2356,1.084,2357,2.042,2401,1.919,2406,2.067,2440,1.504,2461,2.717,2487,5.341,2794,4.975,2801,3.193,2848,4.739,2925,1.582,2997,2.211,3104,2.031,3319,1.6,3495,2.935,3504,2.44,3541,3.622,3578,4.331,3804,4.894,3806,2.44,3807,2.44,3811,7.607,3813,1.812,3815,4.145,3822,7.826,4205,0.89,4428,2.132,4517,3.922,4618,1.812,5022,5.341,5471,2.011,6234,1.782,6314,2.309,6365,2.979,6434,3.133,6901,1.88,7044,2.854,7128,2.132,7299,2.011,7483,1.844,7791,2.132,7792,2.067,7795,8.749,7796,5.77,7799,5.392,7802,3.333,7810,3.583,7821,4.729,7822,5.112,7836,10.344,7860,4.721,7866,6.369,7948,4.345,7996,2.44,7997,2.44,8259,3.333,8260,3.922,8469,4.535,8844,1.844,9285,4.248,9314,2.132,9603,1.68,10273,4.894,10290,4.145,10293,3.269,10303,4.453,10307,2.44,10312,8.705,10316,2.44,10375,3.622,10649,1.919,10678,1.88,11527,2.44,11667,7.757,11668,2.64,11669,2.44,11670,2.44,11671,2.64,11672,2.64,11673,7.718,11674,5.844,11675,3.922,11676,8.391,11677,5.844,11678,6.89,11679,2.64,11680,2.64,11681,2.44,11682,2.64,11683,2.64,11684,2.64,11685,2.309,11686,2.64,11687,4.484,11688,2.64,11689,8.391,11690,4.484,11691,4.484,11692,2.64,11693,2.64,11694,2.64,11695,2.44,11696,2.64,11697,2.64,11698,6.89,11699,2.64,11700,2.64,11701,2.64,11702,2.64,11703,2.64,11704,2.64,11705,2.64,11706,2.64,11707,2.64,11708,2.64,11709,5.844,11710,2.64,11711,6.89,11712,2.64,11713,2.64,11714,1.638,11715,2.64,11716,4.484,11717,4.484,11718,2.64,11719,2.64,11720,2.64,11721,4.484,11722,2.64,11723,2.64,11724,2.64,11725,4.484,11726,3.922,11727,4.484,11728,4.484,11729,2.64,11730,2.64,11731,2.64,11732,2.64,11733,2.64,11734,2.64,11735,2.64,11736,2.64,11737,2.64,11738,2.64,11739,2.64,11740,6.89,11741,2.64,11742,3.755,11743,4.894,11744,2.64,11745,4.484,11746,4.484,11747,2.64,11748,4.484,11749,2.64,11750,4.484,11751,2.64,11752,2.64,11753,2.64,11754,5.844,11755,2.64,11756,2.64,11757,2.067,11758,2.44,11759,2.64,11760,2.64,11761,2.64,11762,3.259,11763,2.211,11764,2.64,11765,2.64,11766,2.64,11767,2.64,11768,2.64,11769,4.484,11770,2.64,11771,2.64,11772,2.64,11773,2.64,11774,1.68,11775,2.64,11776,2.64,11777,2.64,11778,2.64,11779,3.622,11780,2.64,11781,2.64,11782,2.64,11783,2.64,11784,1.962,11785,2.64,11786,2.64,11787,2.64,11788,2.64,11789,2.64,11790,4.484,11791,2.64,11792,2.64,11793,5.844,11794,2.64,11795,2.64,11796,2.64,11797,2.64,11798,2.309,11799,2.64,11800,2.64,11801,3.622,11802,3.622,11803,3.622,11804,2.64,11805,5.403,11806,2.64,11807,2.44,11808,2.309,11809,2.64,11810,2.64,11811,2.64,11812,3.922,11813,2.64,11814,2.64,11815,2.64,11816,2.64,11817,2.64,11818,2.64,11819,2.64,11820,2.64,11821,5.844,11822,2.64,11823,2.64,11824,2.64,11825,2.64,11826,2.64,11827,4.484,11828,3.333,11829,4.484,11830,2.64,11831,4.145,11832,4.484,11833,2.64,11834,4.484,11835,5.844,11836,2.64,11837,2.309,11838,2.44,11839,2.44,11840,2.64,11841,2.64,11842,2.44,11843,1.962,11844,2.44,11845,2.64,11846,2.64,11847,2.64,11848,2.64,11849,2.64,11850,2.64]],["title/interfaces/ICommonCartridgeConfig.html",[334,0.731,11851,5.947]],["body/interfaces/ICommonCartridgeConfig.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,101,0.018,103,0.001,104,0.001,165,0.965,334,1.129,336,2.516,347,2.643,5097,6.784,5098,6.784,11851,10.774,11852,10.513,11853,12.456]],["title/interfaces/ICommonCartridgeElement.html",[334,0.731,5124,4.45]],["body/interfaces/ICommonCartridgeElement.html",[3,0.025,4,0.025,5,0.013,7,0.157,8,1.477,27,0.428,30,0.001,35,1.256,101,0.017,103,0.001,104,0.001,334,1.115,336,2.484,1180,5.261,4993,7.586,5097,7.888,5098,7.888,5124,8.001,5159,8.658,11854,10.378,11855,10.378]],["title/interfaces/ICommonCartridgeFile.html",[334,0.731,5166,5.324]],["body/interfaces/ICommonCartridgeFile.html",[3,0.024,4,0.024,5,0.012,7,0.152,8,1.448,27,0.494,30,0.001,35,1.451,47,0.855,101,0.017,103,0.001,104,0.001,334,1.079,336,2.403,347,2.425,2303,5.381,4993,7.953,5097,8.27,5098,8.27,5166,9.387,5167,10.723,11856,10.042,11857,10.042,11858,10.042]],["title/interfaces/ICommonCartridgeFileBuilder.html",[334,0.731,5100,5.493]],["body/interfaces/ICommonCartridgeFileBuilder.html",[0,0.288,3,0.014,4,0.014,5,0.014,7,0.089,8,1.02,27,0.407,29,0.661,30,0.001,31,0.473,32,0.134,33,0.408,35,1.194,36,2.115,47,0.768,95,0.157,101,0.018,103,0,104,0,111,2.449,112,1.3,127,0.739,214,2.662,215,1.882,216,2.31,217,1.544,227,1.23,234,2.096,334,0.907,336,1.411,595,3.303,667,5.404,701,2.085,1397,2.828,1438,5.449,1858,4.423,2114,6.659,2553,4.205,3195,5.24,4993,7.893,5006,4.618,5007,4.564,5008,5.796,5018,9.307,5030,6.557,5036,6.613,5038,6.613,5046,6.822,5050,6.857,5052,4.763,5059,5.7,5097,6.951,5098,6.951,5099,4.939,5100,9.582,5101,7.726,5102,6.434,5103,7.072,5104,7.807,5105,7.807,5107,7.072,5111,8.262,5113,8.262,5114,9.582,5116,9.867,5117,8.262,5120,4.763,5121,4.763,5122,4.493,5123,4.199,5124,6.457,5125,3.98,5126,6.613,5127,6.822,5128,4.618,5129,6.014,5130,4.618,5131,7.072,5132,4.763,5133,4.939,5134,4.939,5135,4.939,5136,9.021,5137,4.939,5138,7.072,5139,4.939,5140,4.939,5141,7.072,5142,4.939,5143,4.939,5144,4.939,5145,4.939,5146,4.939,5147,4.939,5148,4.939,5149,4.939,5150,4.939,5151,4.939,5152,4.939,5153,4.763,5154,4.939,5155,4.939,5156,4.939,5157,4.939,5158,4.939,5159,3.805,5160,4.939,5161,4.939,5162,4.939,11859,5.897,11860,5.897,11861,5.897]],["title/interfaces/ICommonCartridgeOrganizationBuilder.html",[334,0.731,5116,5.493]],["body/interfaces/ICommonCartridgeOrganizationBuilder.html",[0,0.298,3,0.015,4,0.015,5,0.012,7,0.093,8,1.055,27,0.255,29,0.485,30,0.001,31,0.347,32,0.119,33,0.299,35,0.749,36,1.874,47,0.785,95,0.159,101,0.018,103,0.001,104,0.001,111,2.483,112,1.364,127,0.775,214,2.755,215,1.975,216,2.339,217,1.568,227,1.25,234,2.117,334,0.939,336,1.481,595,2.926,667,4.142,701,2.187,1397,2.926,1438,5.638,1858,4.577,2114,6.837,2553,4.318,3195,5.422,4993,7.686,5006,4.845,5007,4.723,5008,5.997,5018,9.437,5030,6.678,5036,6.842,5038,6.842,5046,7.058,5050,7.007,5052,4.998,5059,5.898,5097,5.638,5098,5.638,5099,5.181,5100,8.892,5101,7.933,5102,6.657,5103,7.318,5107,7.318,5111,8.484,5113,7.318,5114,8.892,5116,10.219,5117,7.318,5120,4.998,5121,4.998,5122,4.714,5123,4.406,5124,6.63,5125,4.176,5126,6.842,5127,7.058,5128,4.845,5129,6.222,5130,4.845,5131,8.484,5132,4.998,5133,5.181,5134,5.181,5135,5.181,5136,9.219,5137,5.181,5138,7.318,5139,5.181,5140,5.181,5141,7.318,5142,5.181,5143,5.181,5144,5.181,5145,5.181,5146,5.181,5147,5.181,5148,5.181,5149,5.181,5150,5.181,5151,5.181,5152,5.181,5153,4.998,5154,5.181,5155,5.181,5156,5.181,5157,5.181,5158,5.181,5159,3.992,5160,5.181,5161,5.181,5162,5.181,5267,8.078,11862,6.187]],["title/interfaces/IComponentEtherpadProperties.html",[334,0.731,11863,4.842]],["body/interfaces/IComponentEtherpadProperties.html",[0,0.155,3,0.011,4,0.011,5,0.005,7,0.143,26,2.167,30,0.001,31,0.39,32,0.147,47,0.972,55,2.202,95,0.156,96,1.242,101,0.021,103,0,104,0,111,1.395,116,1.414,145,1.762,150,3.886,165,0.545,187,0.657,188,3.775,208,1.696,214,1.432,217,1.627,227,1.296,234,1.539,240,3.242,247,1.779,305,1.982,334,1.244,336,1.087,347,1.407,369,1.877,370,1.496,371,1.919,379,2.443,380,1.478,398,1.338,399,2.76,400,2.004,402,1.882,404,0.818,405,1.21,406,1.477,461,1.039,535,3.73,687,1.936,769,4.125,806,1.849,1031,1.423,1167,2.496,1345,1.802,1353,2.192,1397,3.758,1843,2.152,1865,3.169,2095,1.802,2303,4.371,2627,1.908,2632,3.895,2633,2.179,2636,3.792,2640,2.475,2645,4.429,2646,2.665,2647,4.464,2649,3.771,2650,4.317,2659,2.127,2663,4.554,2767,3.672,2848,4.083,3339,4.244,3452,5.314,3471,6.023,3580,1.849,3607,3.173,3608,3.173,4052,4.082,4217,2.853,4281,1.984,4878,2.784,4882,2.853,4883,2.93,4989,2.08,5015,6.506,5026,3.234,5043,2.563,5050,4.429,5055,6.827,5068,3.234,5074,3.234,5079,3.234,5630,7.4,6365,5.619,6368,6.023,6486,2.93,6508,2.818,6518,5.997,6519,3.017,6520,4.554,6522,4.371,6560,4.429,6561,4.622,6586,4.696,6757,2.818,6758,3.017,8418,4.955,10761,4.696,11863,6.023,11864,3.301,11865,5.384,11866,3.301,11867,4.861,11868,6.689,11869,4.955,11870,3.234,11871,4.955,11872,4.955,11873,4.955,11874,3.301,11875,4.955,11876,3.017,11877,4.955,11878,4.955,11879,3.301,11880,3.301,11881,3.301,11882,3.173,11883,3.173,11884,3.301,11885,3.301,11886,3.301,11887,5.058,11888,5.909,11889,3.173,11890,5.058,11891,3.301,11892,3.301,11893,3.301,11894,3.117,11895,3.301,11896,3.301,11897,5.058,11898,3.301,11899,3.301,11900,6.891,11901,6.148,11902,3.234,11903,3.301,11904,3.301,11905,3.301,11906,3.301,11907,3.301,11908,3.301,11909,3.301,11910,3.301,11911,3.301,11912,3.301,11913,3.301,11914,3.117,11915,3.301,11916,3.301]],["title/interfaces/IComponentGeogebraProperties.html",[334,0.731,11873,4.842]],["body/interfaces/IComponentGeogebraProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.182,30,0.001,31,0.394,32,0.13,47,0.959,55,2.217,95,0.156,96,1.262,101,0.021,103,0,104,0,111,1.412,116,1.437,145,1.783,150,3.31,165,0.552,187,0.667,188,3.802,208,1.724,214,1.455,217,1.633,227,1.301,234,1.552,240,3.265,247,1.808,305,2.006,334,1.25,336,1.104,347,1.424,369,1.896,370,1.52,371,1.942,379,1.936,380,1.496,398,1.359,399,2.794,400,2.036,402,1.912,404,0.831,405,1.229,406,1.501,461,1.055,535,3.776,687,1.967,769,4.176,806,1.878,1031,1.446,1167,2.536,1345,1.831,1353,2.227,1397,3.2,1843,2.187,1865,3.208,2095,1.831,2303,4.398,2627,1.939,2632,3.934,2633,2.214,2636,3.838,2640,2.514,2645,4.483,2646,2.707,2647,4.508,2649,3.808,2650,4.37,2659,2.161,2663,4.609,2767,3.717,2848,4.123,3339,4.286,3452,5.367,3471,6.082,3580,1.878,3607,3.223,3608,3.223,4052,4.132,4217,2.899,4281,2.015,4878,2.829,4882,2.899,4883,2.977,4989,2.113,5015,6.56,5026,3.286,5043,2.604,5050,4.483,5055,6.859,5068,3.286,5074,3.286,5079,3.286,5630,7.447,6365,5.675,6368,6.082,6486,2.977,6508,2.863,6518,6.04,6519,3.065,6520,4.609,6522,4.425,6560,4.483,6561,4.679,6586,4.753,6757,2.863,6758,3.065,8418,5.015,10761,4.753,11863,5.015,11864,3.354,11865,5.437,11866,3.354,11867,4.92,11868,6.737,11869,5.015,11870,3.286,11871,5.015,11872,5.015,11873,6.082,11874,6.948,11875,5.015,11876,3.065,11877,5.015,11878,5.015,11879,3.354,11880,3.354,11881,3.354,11882,3.223,11883,3.223,11884,3.354,11885,3.354,11886,3.354,11887,5.119,11888,5.967,11889,3.223,11890,5.119,11891,3.354,11892,3.354,11893,3.354,11894,3.167,11895,3.354,11896,3.354,11897,5.119,11898,3.354,11899,3.354,11900,6.948,11901,6.209,11902,3.286,11903,3.354,11904,3.354,11905,3.354,11906,3.354,11907,3.354,11908,3.354,11909,3.354,11910,3.354,11911,3.354,11912,3.354,11913,3.354,11914,3.167,11915,3.354,11916,3.354]],["title/interfaces/IComponentInternalProperties.html",[334,0.731,11878,4.842]],["body/interfaces/IComponentInternalProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.182,30,0.001,31,0.394,32,0.13,47,0.959,55,2.217,95,0.156,96,1.262,101,0.021,103,0,104,0,111,1.412,116,1.437,145,1.783,150,3.908,165,0.552,187,0.667,188,3.802,208,1.724,214,1.455,217,1.633,227,1.301,234,1.552,240,3.265,247,1.808,305,2.006,334,1.25,336,1.104,347,1.424,369,1.896,370,1.52,371,1.942,379,1.936,380,1.496,398,1.359,399,2.794,400,2.036,402,1.912,404,0.831,405,1.229,406,1.501,461,1.055,535,3.776,687,1.967,769,4.176,806,1.878,1031,1.446,1167,2.536,1345,1.831,1353,2.227,1397,3.2,1843,2.187,1865,3.208,2095,1.831,2303,4.398,2627,1.939,2632,3.934,2633,2.214,2636,3.838,2640,2.514,2645,4.483,2646,2.707,2647,4.508,2649,3.808,2650,4.37,2659,2.161,2663,4.609,2767,3.717,2848,4.123,3339,4.286,3452,5.367,3471,6.082,3580,1.878,3607,3.223,3608,3.223,4052,4.132,4217,2.899,4281,2.015,4878,2.829,4882,2.899,4883,2.977,4989,2.113,5015,6.56,5026,3.286,5043,2.604,5050,4.483,5055,6.859,5068,3.286,5074,3.286,5079,3.286,5630,7.447,6365,5.675,6368,6.082,6486,2.977,6508,2.863,6518,6.04,6519,3.065,6520,4.609,6522,4.425,6560,4.483,6561,4.679,6586,4.753,6757,2.863,6758,3.065,8418,5.015,10761,4.753,11863,5.015,11864,3.354,11865,5.437,11866,3.354,11867,4.92,11868,6.737,11869,5.015,11870,3.286,11871,5.015,11872,5.015,11873,5.015,11874,3.354,11875,5.015,11876,3.065,11877,5.015,11878,6.082,11879,3.354,11880,3.354,11881,3.354,11882,3.223,11883,3.223,11884,3.354,11885,3.354,11886,3.354,11887,5.119,11888,5.967,11889,3.223,11890,5.119,11891,3.354,11892,3.354,11893,3.354,11894,3.167,11895,3.354,11896,3.354,11897,5.119,11898,3.354,11899,3.354,11900,6.948,11901,6.209,11902,3.286,11903,3.354,11904,3.354,11905,3.354,11906,3.354,11907,3.354,11908,3.354,11909,3.354,11910,3.354,11911,3.354,11912,3.354,11913,3.354,11914,3.167,11915,3.354,11916,3.354]],["title/interfaces/IComponentLernstoreProperties.html",[334,0.731,11875,4.842]],["body/interfaces/IComponentLernstoreProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.18,30,0.001,31,0.394,32,0.147,47,0.949,55,2.215,95,0.156,96,1.259,101,0.021,103,0,104,0,111,1.409,116,1.434,138,3.071,145,1.78,150,3.306,165,0.551,187,0.666,188,3.798,208,1.72,214,1.451,217,1.632,227,1.3,234,1.55,240,3.262,247,1.804,305,2.003,334,1.249,336,1.102,347,1.422,369,1.893,370,1.516,371,1.939,379,1.933,380,1.494,398,1.356,399,2.789,400,2.031,402,1.908,404,0.83,405,1.227,406,1.497,461,1.053,535,3.769,687,1.962,769,4.168,806,1.874,1031,1.442,1167,2.53,1345,1.826,1353,2.222,1397,3.197,1843,2.182,1865,3.202,2095,1.826,2303,4.394,2627,1.935,2632,3.928,2633,2.208,2636,3.831,2640,2.509,2645,4.475,2646,2.701,2647,4.502,2649,3.803,2650,4.363,2659,2.157,2663,4.601,2767,3.71,2848,4.117,3339,4.28,3452,5.359,3471,6.074,3580,1.874,3607,3.216,3608,3.216,4052,4.125,4217,2.892,4281,2.011,4878,2.822,4882,2.892,4883,2.97,4989,2.108,5015,6.552,5026,3.278,5043,2.598,5050,6.546,5055,6.854,5068,3.278,5074,3.278,5079,3.278,5630,7.44,6365,5.667,6368,6.074,6486,2.97,6508,2.856,6518,6.034,6519,3.058,6520,4.601,6522,4.417,6560,4.475,6561,4.671,6586,4.745,6757,2.856,6758,3.058,8418,5.006,10761,4.745,11863,5.006,11864,3.346,11865,5.429,11866,3.346,11867,4.912,11868,6.73,11869,5.006,11870,3.278,11871,5.006,11872,5.006,11873,5.006,11874,3.346,11875,6.074,11876,3.058,11877,5.006,11878,5.006,11879,3.346,11880,3.346,11881,3.346,11882,3.216,11883,3.216,11884,3.346,11885,3.346,11886,3.346,11887,5.11,11888,5.959,11889,3.216,11890,5.11,11891,3.346,11892,3.346,11893,3.346,11894,3.159,11895,3.346,11896,3.346,11897,5.11,11898,3.346,11899,3.346,11900,6.94,11901,6.2,11902,3.278,11903,3.346,11904,3.346,11905,3.346,11906,3.346,11907,3.346,11908,3.346,11909,3.346,11910,3.346,11911,3.346,11912,3.346,11913,3.346,11914,3.159,11915,3.346,11916,3.346]],["title/interfaces/IComponentNexboardProperties.html",[334,0.731,11877,4.842]],["body/interfaces/IComponentNexboardProperties.html",[0,0.153,3,0.011,4,0.011,5,0.005,7,0.143,26,2.159,30,0.001,31,0.387,32,0.152,47,0.977,55,2.194,95,0.155,96,1.233,101,0.021,103,0,104,0,111,1.386,116,1.403,145,1.751,150,3.875,165,0.542,187,0.652,188,3.762,208,1.683,214,1.42,217,1.624,227,1.294,234,1.533,240,3.231,247,1.765,305,1.97,334,1.241,336,1.078,347,1.399,369,1.868,370,1.484,371,1.907,379,2.436,380,1.469,398,1.327,399,2.744,400,1.988,402,1.867,404,0.812,405,1.201,406,1.465,461,1.031,535,3.708,687,1.92,769,4.1,806,1.834,1031,1.412,1167,2.476,1345,1.788,1353,2.175,1397,3.747,1843,2.136,1865,3.15,2095,1.788,2303,4.357,2627,3.968,2632,3.876,2633,2.162,2636,3.769,2640,2.455,2645,4.402,2646,2.644,2647,4.442,2649,3.753,2650,4.291,2659,2.111,2663,4.526,2767,3.65,2848,4.063,3339,4.224,3452,5.288,3471,5.993,3580,1.834,3607,3.148,3608,3.148,4052,4.058,4217,2.831,4281,1.968,4878,2.762,4882,2.831,4883,2.907,4989,2.063,5015,6.479,5026,3.208,5043,2.543,5050,4.402,5055,6.812,5068,3.208,5074,3.208,5079,3.208,5630,7.377,6365,5.592,6368,5.993,6486,2.907,6508,2.796,6518,5.976,6519,2.993,6520,4.526,6522,4.345,6560,4.402,6561,4.594,6586,4.668,6757,2.796,6758,2.993,8418,4.925,10761,4.668,11863,4.925,11864,3.275,11865,5.357,11866,3.275,11867,4.832,11868,6.666,11869,4.925,11870,3.208,11871,4.925,11872,4.925,11873,4.925,11874,3.275,11875,4.925,11876,2.993,11877,5.993,11878,4.925,11879,3.275,11880,3.275,11881,3.275,11882,3.148,11883,3.148,11884,3.275,11885,3.275,11886,3.275,11887,5.027,11888,5.88,11889,3.148,11890,5.027,11891,3.275,11892,3.275,11893,3.275,11894,3.092,11895,3.275,11896,3.275,11897,5.027,11898,3.275,11899,3.275,11900,6.863,11901,6.118,11902,3.208,11903,3.275,11904,3.275,11905,3.275,11906,3.275,11907,3.275,11908,3.275,11909,3.275,11910,3.275,11911,3.275,11912,3.275,11913,3.275,11914,3.092,11915,3.275,11916,3.275]],["title/interfaces/IComponentTextProperties.html",[334,0.731,11872,4.842]],["body/interfaces/IComponentTextProperties.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,26,2.182,30,0.001,31,0.394,32,0.13,47,0.959,55,2.217,95,0.156,96,1.262,101,0.021,103,0,104,0,111,1.412,116,1.437,145,1.783,150,3.31,165,0.552,187,0.667,188,3.802,208,1.724,214,1.455,217,1.633,227,1.301,234,1.552,240,3.265,247,1.808,305,2.006,334,1.25,336,1.104,347,1.424,369,1.896,370,1.52,371,1.942,379,1.936,380,1.496,398,1.359,399,2.794,400,2.036,402,1.912,404,0.831,405,1.229,406,1.501,461,1.055,535,3.776,687,1.967,769,4.176,806,1.878,1031,1.446,1167,2.536,1345,1.831,1353,2.227,1397,3.2,1843,2.187,1865,3.208,2095,1.831,2303,4.398,2627,1.939,2632,3.934,2633,2.214,2636,3.838,2640,2.514,2645,4.483,2646,2.707,2647,4.508,2649,3.808,2650,4.37,2659,2.161,2663,4.609,2767,3.717,2848,5.238,3339,4.286,3452,5.367,3471,6.082,3580,1.878,3607,3.223,3608,3.223,4052,4.132,4217,2.899,4281,2.015,4878,2.829,4882,2.899,4883,2.977,4989,2.113,5015,6.56,5026,3.286,5043,2.604,5050,4.483,5055,6.859,5068,3.286,5074,3.286,5079,3.286,5630,7.447,6365,5.675,6368,6.082,6486,2.977,6508,2.863,6518,6.04,6519,3.065,6520,4.609,6522,4.425,6560,4.483,6561,4.679,6586,4.753,6757,2.863,6758,3.065,8418,5.015,10761,4.753,11863,5.015,11864,3.354,11865,5.437,11866,3.354,11867,4.92,11868,6.737,11869,5.015,11870,3.286,11871,5.015,11872,6.082,11873,5.015,11874,3.354,11875,5.015,11876,3.065,11877,5.015,11878,5.015,11879,3.354,11880,3.354,11881,3.354,11882,3.223,11883,3.223,11884,3.354,11885,3.354,11886,3.354,11887,5.119,11888,5.967,11889,3.223,11890,5.119,11891,3.354,11892,3.354,11893,3.354,11894,3.167,11895,3.354,11896,3.354,11897,5.119,11898,3.354,11899,3.354,11900,6.948,11901,6.209,11902,3.286,11903,3.354,11904,3.354,11905,3.354,11906,3.354,11907,3.354,11908,3.354,11909,3.354,11910,3.354,11911,3.354,11912,3.354,11913,3.354,11914,3.167,11915,3.354,11916,3.354]],["title/interfaces/IContextExternalToolProperties.html",[334,0.731,5783,5.694]],["body/interfaces/IContextExternalToolProperties.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,29,0.977,30,0.001,32,0.174,33,0.58,47,0.947,55,2.583,95,0.16,96,2.075,101,0.017,103,0.001,104,0.001,165,0.787,192,2.26,199,2.866,200,3.735,209,2.507,240,3.957,334,0.815,336,1.815,369,2.229,370,2.498,380,2.134,398,2.234,399,3.985,402,3.144,404,1.367,405,2.021,406,2.467,1530,5.638,1858,3.973,4271,5.474,4272,4.597,4773,7.476,4989,4.601,5352,7.319,5694,4.405,5698,6.346,5717,4.828,5718,5.205,5719,5.039,5720,5.513,5721,5.401,5722,5.638,5760,7.837,5768,5.513,5769,6.352,5770,6.126,5771,10.446,5773,10.91,5776,9.766,5778,9.067,5781,6.352,5782,4.894,5783,9.433,5784,7.011,5785,7.011,5786,7.011,5787,6.634,5788,6.352,5789,6.126,5790,6.352]],["title/interfaces/ICopyFileDO.html",[334,0.731,10515,5.181]],["body/interfaces/ICopyFileDO.html",[3,0.018,4,0.024,5,0.009,7,0.115,10,3.061,26,2.876,30,0.001,31,0.699,32,0.153,33,0.486,34,2.122,39,2.042,47,0.958,55,1.634,83,2.32,95,0.129,99,1.266,101,0.022,103,0.001,104,0.001,165,0.787,188,2.801,192,2.26,204,3.408,217,0.987,334,1.288,336,1.815,461,1.735,538,3.417,1015,4.242,1031,3.53,1255,6.78,1487,4.242,2130,3.313,2131,3.707,2132,3.574,2524,4.45,2649,3.382,2659,3.553,2702,3.417,2849,3.28,3090,3.28,3143,3.973,3339,5.652,3353,5.205,3578,5.813,3610,4.91,3720,4.28,3859,4.242,4205,2.556,4748,4.204,5043,4.28,5055,4.362,6173,7.966,6189,6.138,6191,6.575,6215,5.638,6216,4.204,6217,4.942,6218,4.964,10028,7.302,10029,7.302,10030,7.302,10031,4.765,10501,5.638,10514,5.939,10515,7.653,10516,5.778,10617,5.939,10621,8.82,11917,6.352,11918,6.352,11919,6.352,11920,6.352,11921,6.352,11922,6.352]],["title/interfaces/ICopyFileDomainObjectProps.html",[334,0.731,6174,5.694]],["body/interfaces/ICopyFileDomainObjectProps.html",[3,0.023,4,0.023,5,0.014,7,0.146,26,2.925,30,0.001,31,0.733,32,0.171,33,0.565,34,2.227,47,0.898,95,0.124,99,1.608,101,0.016,103,0.001,104,0.001,145,3.188,165,0.916,334,1.035,336,2.305,359,3.359,1904,4.03,3579,4.739,6170,4.462,6173,8.697,6174,9.792,11923,8.906,11924,8.906]],["title/interfaces/ICopyFilesOfParentParams.html",[334,0.731,10617,5.324]],["body/interfaces/ICopyFilesOfParentParams.html",[3,0.018,4,0.03,5,0.009,7,0.115,10,3.073,26,2.817,30,0.001,31,0.564,32,0.153,34,1.713,39,3.233,47,0.933,55,1.64,83,2.329,95,0.129,99,1.271,101,0.022,103,0.001,104,0.001,165,0.789,188,2.812,192,2.269,204,3.417,217,0.991,334,1.29,336,1.822,461,1.741,538,3.43,1015,4.258,1031,3.536,1255,6.797,1487,4.258,2130,3.326,2131,3.721,2132,3.587,2524,4.467,2649,3.394,2659,3.566,2702,5.411,2849,3.293,3090,3.293,3143,3.988,3339,5.663,3353,5.225,3578,5.824,3610,4.922,3720,4.297,3859,4.258,4205,2.566,4748,4.22,5043,4.297,5055,4.379,6173,5.058,6189,6.15,6191,6.591,6215,5.659,6216,4.22,6217,4.954,6218,4.983,10028,7.32,10029,7.32,10030,7.32,10031,4.783,10501,5.659,10514,5.961,10515,5.8,10516,5.8,10617,7.886,10621,10.249,11917,6.376,11918,6.376,11919,6.376,11920,6.376,11921,6.376,11922,6.376]],["title/interfaces/ICopyFilesRequestInfo.html",[334,0.731,6284,5.694]],["body/interfaces/ICopyFilesRequestInfo.html",[3,0.028,4,0.032,5,0.015,7,0.146,26,2.78,30,0.001,32,0.171,39,3.531,95,0.151,99,1.615,101,0.016,103,0.001,104,0.001,165,0.918,334,1.04,336,2.317,367,5.592,2702,5.908,3579,4.762,6170,4.483,6282,10.816,6284,9.82,11923,8.948,11925,8.466]],["title/interfaces/ICoreModuleConfig.html",[334,0.731,11926,5.694]],["body/interfaces/ICoreModuleConfig.html",[3,0.025,4,0.025,5,0.013,30,0.001,95,0.157,101,0.017,103,0.001,104,0.001,334,1.121,336,2.496,404,2.21,425,2.78,558,5.005,2356,4.285,11577,7.041,11926,10.269,11927,10.432,11928,10.907,11929,10.907]],["title/interfaces/ICourseGroupProperties.html",[334,0.731,6756,5.694]],["body/interfaces/ICourseGroupProperties.html",[0,0.239,3,0.017,4,0.017,5,0.008,7,0.189,26,2.463,30,0.001,31,0.681,32,0.174,33,0.461,39,1.889,47,0.866,62,4.117,95,0.17,96,1.919,101,0.016,103,0.001,104,0.001,116,2.97,145,1.777,148,2.159,165,0.848,188,5.024,192,2.841,204,2.381,208,2.621,214,2.212,217,0.913,227,0.728,234,1.139,240,3.024,309,4.035,334,1.024,336,1.679,380,2.026,398,2.067,399,3.783,400,3.096,402,2.908,404,1.264,405,1.87,406,2.282,461,2.658,844,4.933,957,3.89,1107,4.902,1166,3.366,1843,3.326,2095,2.784,2440,3.997,2471,4.592,2632,4.987,2633,3.366,2636,3.824,2640,3.824,2646,4.117,2648,4.902,2650,4.354,2663,4.592,2794,4.16,2849,3.035,3050,5.346,3427,4.815,4205,2.365,4281,3.065,4989,4.367,6152,5.494,6471,4.996,6476,7.634,6511,5.778,6518,4.117,6520,6.24,6521,4.302,6522,5.99,6523,3.924,6539,4.996,6543,4.354,6545,5.668,6560,4.466,6561,7.195,6598,5.668,6747,6.486,6756,9.069,6757,4.354,6758,4.661,6759,6.486,6760,6.486,6761,5.1,6762,6.486,6763,6.486,6764,6.486,6765,6.486,6766,6.486,6767,6.486]],["title/interfaces/ICourseProperties.html",[334,0.731,6524,5.493]],["body/interfaces/ICourseProperties.html",[0,0.196,2,1.016,3,0.008,4,0.008,5,0.004,7,0.155,26,2.171,30,0.001,31,0.545,32,0.17,33,0.635,34,1.231,39,1.949,47,0.909,62,2.095,83,3.6,95,0.151,96,0.977,101,0.012,103,0,104,0,111,1.664,116,3.518,127,0.447,145,2.465,148,1.772,165,0.451,188,3.067,192,2.714,208,1.334,214,1.126,217,1.659,227,1.322,234,1.73,240,3.38,305,1.641,319,2.163,334,0.384,336,0.855,347,1.165,369,2.365,370,3,371,0.985,379,2.206,380,1.224,394,3.281,398,1.052,399,2.285,400,1.576,402,1.48,404,0.643,405,0.952,406,1.161,461,2.692,475,1.746,535,1.915,565,2.871,618,1.46,627,1.767,686,1.946,701,1.263,738,1.857,770,3.415,844,4.435,851,2.746,852,2.746,905,1.487,922,2.991,1031,2.268,1107,2.495,1353,2.78,1397,1.196,1843,2.73,1852,2.432,1858,1.87,1946,2.372,2075,1.963,2095,3.294,2632,4.484,2636,5.306,2640,3.944,2648,2.495,2650,2.216,3090,3.591,3146,2.372,3147,2.304,3319,2.164,3429,2.273,3753,2.216,3777,3.769,3778,3.769,3981,2.596,4052,2.095,4205,1.204,4206,5.154,4221,2.991,4255,6.62,4281,2.516,4324,6.041,4748,1.98,4878,2.19,4989,2.638,6375,2.655,6436,2.543,6468,3.123,6469,7.079,6470,6.571,6471,5.154,6472,6.05,6473,5.655,6474,2.451,6475,6.933,6476,6.117,6477,6.363,6478,7.077,6480,3.123,6482,3.123,6485,3.123,6486,2.304,6488,3.123,6490,7.966,6493,3.123,6495,3.123,6504,3.123,6508,2.216,6509,3.123,6510,3.123,6511,3.49,6512,4.101,6513,3.123,6514,6.77,6515,3.123,6516,4.186,6517,2.885,6518,3.379,6519,2.372,6520,3.769,6521,2.19,6522,3.619,6523,1.997,6524,5.846,6525,4.652,6526,3.123,6527,2.885,6528,2.543,6529,3.123,6530,3.123,6531,2.991,6532,2.655,6533,3.123,6534,3.123,6535,2.796,6536,3.123,6537,3.531,6538,10.158,6539,5.154,6540,2.885,6541,3.887,6542,2.337,6543,2.216,6544,2.14,6545,2.885,6546,3.123,6547,3.123,6548,5.037,6549,5.037,6550,5.037,6551,6.707,6552,4.652,6553,4.388,6554,5.037,6555,4.281,6556,4.388,6557,2.655,6558,3.123,6559,3.123,6560,2.273,6561,3.826,6562,3.123,6563,3.123,6564,3.123,6565,5.037,6566,3.123,6567,3.123,6568,3.123,6569,3.123,6570,3.123,6571,3.123,6572,3.123,6573,5.846,6574,6.33,6575,3.123,6576,3.123,6577,3.123,6578,3.123,6579,3.123,6580,2.596,6581,3.123,6582,3.123,6583,3.123,6584,3.123,6585,3.123,6586,2.41,6587,3.123,6588,2.991,6589,3.123,6590,6.33,6591,5.037,6592,3.123,6593,3.123,6594,2.885,6595,2.885,6596,2.451,6597,3.123,6598,5.846,6599,3.123,6600,3.123,6601,3.123,6602,3.123]],["title/interfaces/ICreateNews.html",[334,0.731,11930,5.493]],["body/interfaces/ICreateNews.html",[3,0.019,4,0.019,5,0.01,7,0.12,26,2.443,30,0.001,32,0.187,33,0.557,34,1.351,47,0.926,83,3.525,95,0.157,101,0.021,103,0.001,104,0.001,138,4.523,165,0.811,188,4.255,192,2.367,334,1.395,336,1.901,347,1.607,379,1.8,380,1.688,696,4.13,844,4.717,1031,2.489,1397,4.088,2303,4.949,2385,4.87,2702,5.705,3642,6.947,4533,4.929,4748,4.403,6847,6.276,6849,5.905,6850,7.434,6853,8.111,6857,6.14,6858,7.533,7035,8.049,10031,4.991,10684,6.416,11930,8.365,11931,7.343,11932,9.572,11933,7.343,11934,7.343,11935,7.343,11936,5.277,11937,6.652,11938,6.416]],["title/interfaces/ICurrentUser.html",[334,0.731,491,3.345]],["body/interfaces/ICurrentUser.html",[3,0.017,4,0.017,5,0.009,7,0.11,26,3.011,30,0.001,32,0.176,33,0.571,34,2.01,39,3.181,47,0.521,48,5.567,72,3.311,85,7.623,94,4.761,95,0.094,99,1.22,101,0.016,103,0.001,104,0.001,165,0.768,200,3.838,334,1.053,336,1.749,347,2.565,348,4.784,355,4.443,369,2.815,404,1.317,461,3.083,491,5.44,496,4.138,522,7.675,575,5.874,728,2.795,770,5.811,1193,6.615,2449,6.727,2468,5.874,3090,5.486,3104,4.44,3110,5.889,3281,6.511,4205,4.275,5058,6.511,5406,4.536,5438,4.784,5442,5.583,7025,9.544,7026,8.208,7027,4.536,7075,5.904,7077,5.433,7098,10.334,11939,6.757,11940,9.06,11941,5.904,11942,6.757,11943,6.757,11944,5.433]],["title/interfaces/IDashboardModelProperties.html",[334,0.731,7571,5.493]],["body/interfaces/IDashboardModelProperties.html",[0,0.324,3,0.017,4,0.017,5,0.008,7,0.183,30,0.001,32,0.147,33,0.459,34,2.216,39,2.558,47,0.892,49,2.746,55,2.497,95,0.156,96,2.599,97,3.019,101,0.019,103,0.001,104,0.001,127,0.874,145,1.767,165,0.744,188,3.509,234,1.543,240,3.678,334,1.021,336,1.67,369,2.397,370,2.299,380,2.295,398,2.056,399,4.285,402,3.938,404,1.712,405,1.86,406,3.09,461,3.022,618,3.885,619,3.869,1397,3.882,1843,4.503,2462,7.851,2630,6.786,2632,4.375,2634,7.238,2636,5.177,2638,5.638,2640,3.804,2642,5.074,2646,4.096,2747,3.602,4272,4.23,4989,3.197,6508,4.331,6523,3.904,6864,4.504,7363,7.62,7548,9.079,7549,5.845,7550,9.365,7551,9.365,7559,7.674,7560,7.062,7561,5.845,7562,7.956,7563,5.845,7564,5.845,7565,5.845,7566,5.845,7567,5.845,7568,5.638,7569,5.845,7570,5.845,7571,8.724,7572,8.816,7573,5.845,7574,4.877,7575,5.845,7576,5.845,7577,5.845,7578,5.845,7579,5.845]],["title/interfaces/IDashboardRepo.html",[334,0.731,7744,5.694]],["body/interfaces/IDashboardRepo.html",[0,0.322,3,0.016,4,0.016,5,0.008,7,0.105,8,1.144,9,3.272,26,2.83,27,0.444,29,0.844,30,0.001,31,0.603,32,0.146,33,0.521,34,1.61,35,1.304,36,2.862,39,3.115,49,2.732,95,0.149,96,1.9,97,3.003,99,1.159,101,0.016,103,0.001,104,0.001,105,1.266,112,2.55,187,1.004,206,3.533,214,2.189,216,1.751,217,1.717,221,2.959,227,1.296,234,1.127,334,0.746,336,1.662,380,1.475,461,1.588,661,2.918,722,3.096,877,4.074,1852,2.932,2355,5.445,2397,4.687,3319,4.209,6828,4.766,7363,7.85,7395,9.082,7431,7.213,7560,5.162,7640,7.413,7662,8.28,7721,6.073,7725,5.437,7726,6.419,7727,8.752,7728,8.28,7729,8.752,7731,9.958,7733,9.421,7735,6.419,7737,9.958,7739,6.419,7740,6.419,7741,8.752,7742,6.419,7743,6.073,7744,9.021,7745,5.29,7746,8.752,7747,6.419,7748,8.752,7749,6.419,7750,9.958,7751,6.419,7752,8.752,7753,6.419,7754,6.419,11945,6.944,11946,6.944,11947,6.944]],["title/interfaces/IEncryptionService.html",[334,0.731,9285,4.943]],["body/interfaces/IEncryptionService.html",[3,0.023,4,0.023,5,0.012,7,0.145,8,1.408,27,0.481,29,0.913,30,0.001,31,0.653,32,0.158,33,0.564,35,1.411,47,1.005,101,0.021,103,0.001,104,0.001,163,3.588,217,1.517,334,1.03,336,2.294,8259,7.127,8260,8.386,9285,8.475,11948,9.588,11949,10.197,11950,9.764,11951,10.777,11952,9.588,11953,10.777,11954,9.588,11955,9.588,11956,9.588]],["title/interfaces/IEntity.html",[334,0.731,2455,5.324]],["body/interfaces/IEntity.html",[3,0.023,4,0.023,5,0.012,7,0.144,30,0.001,32,0.158,34,2.221,47,0.895,49,5.138,83,3.562,95,0.149,96,2.617,97,4.137,101,0.021,103,0.001,104,0.001,165,0.912,192,2.85,334,1.348,336,2.289,404,2.098,591,4.157,592,4.333,844,5.303,1167,7.177,2455,10.226,6511,5.797,11044,6.683,11957,8.366,11958,8.01]],["title/interfaces/IEntityWithSchool.html",[334,0.731,6511,4.121]],["body/interfaces/IEntityWithSchool.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.132,34,1.647,47,0.69,49,4.614,83,3.588,95,0.151,96,2.648,97,4.187,101,0.021,103,0.001,104,0.001,165,0.918,192,3.908,334,1.355,336,2.317,404,2.273,591,4.207,592,4.385,844,5.973,1167,5.32,2455,10.268,6511,7.107,11044,6.763,11957,8.466,11958,8.107]],["title/interfaces/IEntityWithTimestamps.html",[334,0.731,11958,5.694]],["body/interfaces/IEntityWithTimestamps.html",[3,0.023,4,0.023,5,0.011,7,0.144,30,0.001,32,0.158,34,1.619,47,0.679,49,4.567,83,4.16,95,0.149,96,2.604,97,4.117,101,0.021,103,0.001,104,0.001,165,0.909,192,2.837,334,1.345,336,2.278,404,2.257,591,5.667,592,5.907,844,5.287,1167,5.232,2455,10.21,6511,5.77,11044,6.651,11957,8.326,11958,9.721]],["title/interfaces/IError.html",[334,0.731,8355,5.493]],["body/interfaces/IError.html",[3,0.023,4,0.023,5,0.012,7,0.15,30,0.001,32,0.162,33,0.575,47,0.909,55,2.746,101,0.02,103,0.001,104,0.001,165,0.932,204,4.325,334,1.278,336,2.374,404,2.144,564,4.847,692,3.705,1216,5.297,8355,10.298,10512,7.373,11959,8.675,11960,9.169]],["title/interfaces/IErrorType.html",[334,0.731,3836,5.947]],["body/interfaces/IErrorType.html",[3,0.024,4,0.024,5,0.012,7,0.151,30,0.001,32,0.189,47,1.006,101,0.017,103,0.001,104,0.001,165,0.936,216,2.365,334,1.073,336,2.391,1397,4.437,1416,8.327,3836,10.454,11961,9.992,11962,9.992]],["title/interfaces/IExternalToolPseudonymEntityProps.html",[334,0.731,8925,5.694]],["body/interfaces/IExternalToolPseudonymEntityProps.html",[0,0.282,3,0.02,4,0.02,5,0.01,7,0.125,26,2.63,30,0.001,32,0.169,33,0.515,34,2.11,39,3.536,47,0.885,49,5.376,95,0.159,96,2.911,97,3.584,99,1.383,101,0.018,103,0.001,104,0.001,165,0.921,167,3.049,200,2.581,209,3.517,240,3.935,334,0.89,336,1.983,380,2.261,394,6.697,398,2.441,399,4.222,402,3.435,404,1.493,405,2.208,406,2.695,415,4.478,416,5.275,618,3.389,619,5.9,4272,5.022,8776,7.156,8917,5.901,8918,7.66,8919,7.66,8920,7.38,8925,9.846,8926,5.505,8927,6.693,8928,6.939,8929,6.023,8930,6.489]],["title/interfaces/IFederalStateProperties.html",[334,0.731,6455,5.694]],["body/interfaces/IFederalStateProperties.html",[0,0.345,3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,31,0.72,32,0.175,33,0.489,47,0.994,55,1.652,83,3.934,95,0.13,96,2.098,101,0.019,103,0.001,104,0.001,165,0.793,240,3.821,334,0.824,336,1.836,369,2.246,370,3.731,371,2.791,380,2.151,398,2.26,399,4.015,400,3.385,402,3.18,404,1.382,405,2.044,406,2.495,591,5.235,592,5.456,620,4.95,621,5.844,622,4.95,623,5.844,1858,4.018,2095,4.015,2574,5.223,4271,5.515,4281,3.351,5736,7.066,5752,5.021,6445,10.981,6446,6.709,6447,6.709,6448,6.709,6449,6.709,6450,6.709,6455,9.486,6456,10.951,6457,10.951,6458,6.709,6459,6.709,6460,6.709,6461,6.709,6462,6.709,6463,6.709,6464,5.265,6465,6.709,6466,6.709,6467,6.007]],["title/interfaces/IFileDO.html",[334,0.731,10516,5.181]],["body/interfaces/IFileDO.html",[3,0.017,4,0.023,5,0.008,7,0.106,10,2.837,26,2.658,30,0.001,31,0.681,32,0.18,33,0.462,34,2.068,39,1.893,47,0.995,55,2.335,83,3.316,95,0.123,99,1.173,101,0.022,103,0.001,104,0.001,165,0.748,188,2.596,192,2.095,204,3.239,217,0.915,334,1.249,336,1.682,461,1.608,538,3.167,1015,6.503,1031,3.397,1255,6.443,1487,6.503,2130,3.07,2131,3.436,2132,3.312,2524,4.124,2649,3.134,2659,3.293,2702,3.167,2849,3.04,3090,3.04,3143,3.681,3339,5.439,3353,4.824,3578,5.594,3610,5.943,3720,3.967,3859,3.931,4205,2.369,4748,3.896,5043,3.967,5055,4.042,6173,4.67,6189,6.625,6191,7.61,6215,8.643,6216,6.446,6217,5.981,6218,7.61,10028,6.939,10029,6.939,10030,6.939,10031,4.416,10501,5.225,10514,5.504,10515,5.355,10516,7.273,10617,5.504,10621,8.488,11917,5.886,11918,5.886,11919,5.886,11920,5.886,11921,5.886,11922,5.886]],["title/interfaces/IFileDomainObjectProps.html",[334,0.731,9802,5.694]],["body/interfaces/IFileDomainObjectProps.html",[3,0.023,4,0.023,5,0.011,7,0.144,26,2.918,30,0.001,31,0.73,32,0.177,34,2.218,47,0.893,95,0.149,99,1.589,101,0.016,103,0.001,104,0.001,165,0.909,334,1.023,336,2.278,359,3.319,1904,3.982,3579,4.683,3610,6.373,6170,4.409,6189,7.105,6217,6.414,8358,6.325,9802,9.721,11924,8.8,11963,8.8]],["title/interfaces/IFileRecordParams.html",[334,0.731,10621,5.324]],["body/interfaces/IFileRecordParams.html",[3,0.018,4,0.024,5,0.009,7,0.115,10,3.073,26,2.878,30,0.001,31,0.564,32,0.153,34,1.713,39,2.05,47,0.933,55,1.64,83,2.329,95,0.129,99,1.271,101,0.022,103,0.001,104,0.001,165,0.789,188,2.812,192,2.269,204,3.417,217,0.991,334,1.29,336,1.822,461,1.741,538,3.43,1015,4.258,1031,3.536,1255,6.797,1487,4.258,2130,3.326,2131,3.721,2132,3.587,2524,4.467,2649,3.394,2659,3.566,2702,3.43,2849,3.293,3090,3.293,3143,3.988,3339,5.663,3353,5.225,3578,5.824,3610,6.105,3720,4.297,3859,4.258,4205,4.047,4748,4.22,5043,4.297,5055,4.379,6173,5.058,6189,6.806,6191,6.591,6215,5.659,6216,4.22,6217,6.144,6218,4.983,10028,7.32,10029,7.32,10030,7.32,10031,4.783,10501,5.659,10514,5.961,10515,5.8,10516,5.8,10617,5.961,10621,9.403,11917,6.376,11918,6.376,11919,6.376,11920,6.376,11921,6.376,11922,6.376]],["title/interfaces/IFileRecordProperties.html",[334,0.731,10046,5.181]],["body/interfaces/IFileRecordProperties.html",[0,0.245,3,0.008,4,0.008,5,0.007,7,0.154,26,2.735,30,0.001,31,0.614,32,0.153,33,0.399,34,0.972,39,0.952,47,0.892,49,3.565,55,1.778,83,3.248,95,0.136,96,1.563,97,1.53,99,0.59,101,0.017,103,0,104,0,116,3.932,145,2.583,148,2.541,165,0.563,187,0.511,188,1.306,192,1.703,204,2.439,217,1.553,227,1.353,234,1.87,240,3.784,247,1.386,305,1.008,334,0.772,336,0.846,347,2.063,359,1.992,369,1.832,370,2.368,371,0.975,380,1.926,398,1.042,399,2.267,402,1.466,404,0.637,405,1.523,406,1.15,461,0.809,564,2.636,574,1.553,576,3.225,591,1.537,592,1.602,701,2.542,770,2.097,775,4.408,905,1.473,938,2.571,946,2.315,1015,5.705,1031,3.196,1180,1.522,1185,2.518,1255,3.857,1350,4.069,1487,5.705,1750,2.535,1852,2.413,1945,2.427,2037,2.075,2038,3.992,2095,3.275,2268,2.015,2440,2.015,2574,2.949,2632,3.802,2643,2.054,2649,1.577,2659,1.657,2849,1.53,3090,1.53,3143,1.852,3339,1.775,3353,2.427,3364,1.996,3610,5.505,3720,1.996,3814,2.629,4205,3.796,4215,2.694,4217,2.222,4271,3.114,4281,1.545,4282,2.097,4748,1.96,5043,1.996,5055,2.034,6170,1.638,6188,4.309,6189,5.282,6190,4.069,6191,5.403,6198,2.471,6206,2.518,6208,2.35,6210,5.226,6216,5.373,6217,5.54,6218,5.931,6511,2.143,6739,2.769,6740,4.248,6854,1.911,9807,2.629,9872,2.694,9875,4.069,9879,2.571,9913,2.471,9923,2.694,9927,2.694,9953,4.354,9956,2.571,9957,2.571,9962,2.694,9963,2.694,10003,2.857,10004,2.769,10005,4.475,10006,2.857,10007,4.475,10009,8.24,10021,6.137,10024,2.857,10025,2.694,10026,4.475,10027,2.629,10028,4.154,10029,4.154,10030,4.154,10031,2.222,10032,4.616,10033,4.616,10034,4.616,10035,4.616,10036,4.616,10037,4.616,10038,4.475,10039,5.572,10040,4.616,10041,2.694,10042,4.248,10043,2.629,10044,4.354,10045,2.694,10046,5.478,10047,5.63,10048,2.518,10049,2.769,10050,2.571,10051,2.571,10052,2.857,10053,2.857,10054,2.694,10055,2.629,10056,2.694,10057,2.857,10058,2.857,10059,2.857,10060,2.857,10061,2.857,10062,2.857,10063,2.857,10064,2.857,10065,2.857,10066,2.857,10067,7.83,10068,2.857,10069,2.857,10070,4.616,10071,2.857,10072,2.857,10073,4.616,10074,4.616,10075,4.616,10076,2.857,10077,2.857,10078,2.857,10079,2.857,10080,2.857,10081,2.857,10082,2.857,10083,4.616,10084,5.808,10085,2.769,10086,2.857,10087,4.616,10088,2.769,10089,2.857,10090,4.616,10091,2.857,10092,5.808,10093,5.808,10094,2.769,10095,5.808,10096,2.857,10097,2.857,10098,2.857,10099,2.857,10100,2.857,10101,2.857,10102,2.857,10103,2.769,10104,2.857,10105,2.857,10106,2.857,10107,2.857,10108,2.857,10109,2.857,10110,2.857,10111,2.857,10112,2.857]],["title/interfaces/IFileRecordSecurityCheckProperties.html",[334,0.731,10038,5.324]],["body/interfaces/IFileRecordSecurityCheckProperties.html",[0,0.251,3,0.009,4,0.009,5,0.007,7,0.156,26,2.552,30,0.001,31,0.552,32,0.115,33,0.476,34,1,39,0.987,47,0.899,49,3.631,55,1.267,83,3.014,95,0.138,96,1.609,97,1.585,99,0.612,101,0.017,103,0,104,0,116,3.959,145,2.621,148,2.594,165,0.577,187,0.53,188,1.354,192,1.753,204,2.499,217,1.567,227,1.361,234,1.889,240,3.819,247,1.436,305,1.044,334,0.791,336,0.877,347,2.093,359,2.05,369,1.87,370,2.426,371,1.011,380,1.961,398,1.08,399,2.333,402,1.519,404,0.66,405,1.567,406,1.192,461,0.838,564,3.611,574,1.609,576,3.319,591,1.593,592,1.66,701,2.604,770,2.173,775,4.516,905,1.526,938,2.664,946,2.399,1015,4.714,1031,3.243,1180,1.577,1185,2.61,1255,3.969,1350,6.571,1487,4.714,1750,2.608,1852,2.483,1945,2.516,2037,2.151,2038,4.109,2095,3.344,2268,2.088,2440,2.088,2574,3.035,2632,3.882,2643,2.129,2649,1.634,2659,1.717,2849,1.585,3090,1.585,3143,1.92,3339,1.839,3353,2.516,3364,2.069,3610,5.059,3720,2.069,3814,2.725,4205,3.488,4215,2.793,4217,2.303,4271,3.205,4281,1.601,4282,2.173,4748,2.032,5043,2.069,5055,2.108,6170,1.698,6188,4.414,6189,4.593,6190,4.188,6191,6.447,6198,2.561,6206,2.61,6208,2.435,6210,5.354,6216,4.083,6217,5.092,6218,3.849,6511,2.221,6739,2.87,6740,4.372,6854,1.981,9807,2.725,9872,2.793,9875,4.188,9879,2.664,9913,2.561,9923,2.793,9927,2.793,9953,4.481,9956,2.664,9957,2.664,9962,2.793,9963,2.793,10003,2.961,10004,2.87,10005,4.605,10006,2.961,10007,4.605,10009,6.808,10021,6.266,10024,2.961,10025,2.793,10026,4.605,10027,2.725,10028,4.275,10029,4.275,10030,4.275,10031,2.303,10032,4.751,10033,4.751,10034,4.751,10035,4.751,10036,4.751,10037,4.751,10038,5.767,10039,6.986,10040,4.751,10041,2.793,10042,4.372,10043,2.725,10044,4.481,10045,2.793,10046,4.481,10047,5.767,10048,2.61,10049,2.87,10050,2.664,10051,2.664,10052,2.961,10053,2.961,10054,2.793,10055,2.725,10056,2.793,10057,2.961,10058,2.961,10059,2.961,10060,2.961,10061,2.961,10062,2.961,10063,2.961,10064,2.961,10065,2.961,10066,2.961,10067,7.957,10068,2.961,10069,2.961,10070,4.751,10071,2.961,10072,2.961,10073,4.751,10074,4.751,10075,4.751,10076,2.961,10077,2.961,10078,2.961,10079,2.961,10080,2.961,10081,2.961,10082,2.961,10083,4.751,10084,5.949,10085,2.87,10086,2.961,10087,4.751,10088,2.87,10089,2.961,10090,4.751,10091,2.961,10092,5.949,10093,5.949,10094,2.87,10095,5.949,10096,2.961,10097,2.961,10098,2.961,10099,2.961,10100,2.961,10101,2.961,10102,2.961,10103,2.87,10104,2.961,10105,2.961,10106,2.961,10107,2.961,10108,2.961,10109,2.961,10110,2.961,10111,2.961,10112,2.961]],["title/interfaces/IFileRequestInfo.html",[334,0.731,6282,5.324]],["body/interfaces/IFileRequestInfo.html",[3,0.023,4,0.023,5,0.012,7,0.147,26,2.933,30,0.001,32,0.172,95,0.151,99,1.627,101,0.016,103,0.001,104,0.001,165,0.923,334,1.047,336,2.333,367,4.649,3579,4.797,3610,6.425,4205,4.43,6170,4.516,6189,7.163,6217,6.467,6282,9.223,8358,6.478,11925,8.528,11963,9.013]],["title/interfaces/IFileStorageConfig.html",[334,0.731,11964,6.286]],["body/interfaces/IFileStorageConfig.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,32,0.158,47,0.93,55,2.954,95,0.149,101,0.021,103,0.001,104,0.001,154,3.696,165,0.82,217,1.656,334,0.867,336,1.931,347,2.484,404,1.885,1359,6.149,2130,3.525,2131,3.945,2132,3.803,2133,5.137,2145,5.071,2469,5.207,3580,3.286,6170,3.738,6267,7.39,6268,6.32,6269,5.638,6270,5.638,6271,5.638,6272,5.638,9797,5.362,10416,5.638,11614,5.447,11926,9.723,11964,10.732,11965,8.07,11966,12.726,11967,12.726,11968,12.726,11969,10.732,11970,9.672,11971,6.519,11972,7.461,11973,6.519,11974,8.07,11975,10.463,11976,6.759,11977,7.461,11978,10.463,11979,8.07,11980,7.059,11981,7.461,11982,8.07,11983,8.07,11984,8.07,11985,8.07,11986,8.07,11987,8.07,11988,8.07]],["title/interfaces/IFilesStorageClientConfig.html",[334,0.731,10629,5.694]],["body/interfaces/IFilesStorageClientConfig.html",[3,0.025,4,0.025,5,0.013,7,0.158,30,0.001,32,0.142,55,2.805,101,0.017,103,0.001,104,0.001,165,0.96,334,1.121,336,2.496,3579,6.032,3580,4.247,6170,4.831,10629,10.269,11577,7.041,11976,11.256,11989,10.432]],["title/interfaces/IFindOptions.html",[334,0.731,6902,4.121]],["body/interfaces/IFindOptions.html",[3,0.023,4,0.023,5,0.012,7,0.145,30,0.001,32,0.171,33,0.632,55,2.511,56,4.6,70,4.748,101,0.022,103,0.001,104,0.001,165,0.913,334,1.253,336,2.294,696,4.985,1031,3.004,2144,7.377,3654,9.764,4431,6.024,6612,7.834,6902,7.066,8961,9.958,9149,10.235,10375,9.418,11990,8.863,11991,8.863]],["title/interfaces/IGridElement.html",[334,0.731,7428,5.694]],["body/interfaces/IGridElement.html",[0,0.192,3,0.008,4,0.008,5,0.004,7,0.136,8,0.68,26,2.428,27,0.417,29,0.64,30,0.001,31,0.457,32,0.156,33,0.395,34,1.635,35,1.225,39,1.516,47,0.87,55,2.658,83,1.062,95,0.091,101,0.018,103,0,104,0,111,2.341,144,1.548,145,2.068,148,3.707,165,0.441,187,0.502,214,1.095,217,1.725,227,1.375,234,1.712,247,3.2,305,2.023,334,0.373,336,0.831,347,1.944,405,0.925,415,3.043,416,2.21,595,1.163,618,3.671,619,3.121,627,2.506,687,3.482,905,2.957,1041,1.942,1166,4.307,1271,5.199,1397,3.39,1680,5.41,1695,3.584,1750,3.623,1865,3.72,2341,2.719,2545,1.847,2553,4.772,2630,7.034,2643,2.017,2644,1.862,2686,2.524,2747,4.215,2767,4.738,3234,2.581,3364,3.178,3433,2.426,3609,3.584,3703,7.518,3753,3.494,4878,2.129,6363,2.908,6470,2.344,6512,9.36,6516,4.093,6596,3.864,6828,5.606,7372,5.817,7395,2.524,7396,3.037,7398,3.037,7401,3.037,7402,2.908,7403,8.05,7405,2.805,7412,4.925,7418,3.037,7422,3.037,7425,3.037,7426,8.05,7428,9.376,7431,6.223,7433,3.037,7434,7.518,7437,3.037,7439,3.037,7441,3.037,7443,3.037,7445,3.037,7447,3.037,7450,3.037,7452,4.925,7453,2.581,7454,7.852,7455,7.144,7456,4.925,7457,7.852,7458,6.211,7459,4.925,7460,7.852,7461,4.925,7462,6.211,7463,3.037,7464,4.093,7465,9.143,7466,3.037,7467,4.925,7468,3.037,7469,4.925,7470,3.037,7471,4.925,7472,3.037,7473,3.037,7474,3.037,7475,3.037,7476,3.037,7477,4.925,7478,3.037,7479,4.925,7480,2.908,7481,4.925,7482,3.037,7483,2.426,7484,4.925,7485,3.037,7486,3.037,7487,3.037,7488,4.925,7489,2.805,7490,3.037,7491,4.925,7492,3.037,7493,2.646,7494,3.037,7495,3.037,7496,3.037,7497,3.037,7498,3.037,7499,3.037,7500,3.037,7501,3.037,7502,3.037,7503,4.925,7504,4.925,7505,2.908,7506,6.211,7507,3.037,7508,4.925,7509,3.037,7510,3.037,7511,3.037,7512,3.037,7513,3.037,7514,3.037,7515,3.037,7516,3.037,7517,3.037,7518,3.037,7519,3.037,7520,3.037,7521,3.037,7522,3.037,7523,3.037,7524,3.037,7525,3.037,7526,3.037,7527,3.037,7528,3.037,7529,3.037,7530,3.037,7531,3.037,7532,4.925,7533,3.037,7534,3.037,7535,3.037,7536,4.925,7537,4.925,7538,3.037,7539,3.037,7540,3.037,7541,3.037,7542,3.037,7543,3.037,7544,3.037,7545,6.211,7546,3.037,7547,3.037,10878,5.205,10883,5.205,10884,5.205,10885,5.205,10892,3.21,11992,3.473,11993,3.473,11994,3.473,11995,3.473,11996,3.473,11997,3.473,11998,3.473]],["title/interfaces/IIdentityManagementConfig.html",[334,0.731,11999,5.694]],["body/interfaces/IIdentityManagementConfig.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.174,101,0.017,103,0.001,104,0.001,165,0.939,334,1.079,336,2.403,347,2.855,11585,5.72,11999,10.04,12000,7.863,12001,10.042,12002,12.271,12003,12.271,12004,12.271]],["title/interfaces/IImportUserProperties.html",[334,0.731,12005,5.694]],["body/interfaces/IImportUserProperties.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,30,0.001,31,0.404,32,0.178,33,0.593,47,0.98,49,1.871,95,0.141,96,1.301,101,0.016,103,0,104,0,111,0.953,145,1.825,165,0.86,167,2.652,192,3.584,200,1.481,214,1.499,217,1.132,227,0.747,234,0.772,240,3.726,247,3.409,305,1.355,334,0.774,336,1.138,347,1.964,355,2.896,369,2.607,370,2.374,371,1.311,380,1.531,394,5.943,398,1.401,399,2.859,400,2.098,402,1.971,404,0.857,405,1.267,406,1.547,444,1.819,461,2.953,472,3.21,575,2.85,577,4.911,701,1.681,728,1.819,844,4.752,851,4.975,852,4.975,853,5.886,854,5.509,905,1.98,1031,3.042,1166,2.281,1804,5.274,1852,2.008,2257,2.882,2283,4.159,2462,6.325,2463,3.983,2630,4.528,2632,4.805,2634,5.49,2642,3.457,2710,4.159,2925,2.85,3104,4.726,3110,2.37,4205,1.603,4210,6.898,4293,3.724,4294,3.535,4309,5.132,4571,2.592,4989,3.985,5987,3.386,6511,4.368,6521,2.916,6523,2.66,6543,2.951,6864,3.068,6871,2.82,6872,2.916,7483,3.322,7574,5.035,8469,5.638,8470,3.535,8471,3.724,9538,3.159,9539,3.457,9540,3.159,9541,3.457,9542,3.623,9543,3.841,9718,3.159,9719,3.21,10298,3.623,10658,7.289,10659,5.972,10677,5.035,10678,3.386,10679,2.882,10687,3.983,11310,3.983,11314,3.457,12005,7.287,12006,4.396,12007,7.948,12008,8.95,12009,7.041,12010,8.868,12011,8.169,12012,3.623,12013,4.159,12014,4.159,12015,4.396,12016,3.983,12017,3.386,12018,4.396,12019,4.396,12020,4.396,12021,4.396,12022,4.396,12023,4.396,12024,4.396,12025,4.396,12026,6.035,12027,4.396,12028,6.035,12029,3.983,12030,5.821,12031,4.396,12032,4.396,12033,4.396,12034,3.983,12035,3.623,12036,4.396,12037,4.396,12038,4.396,12039,4.396,12040,3.983,12041,3.983,12042,5.49,12043,5.357,12044,6.303,12045,4.396,12046,4.396,12047,4.396,12048,3.841,12049,6.035,12050,4.396]],["title/interfaces/IImportUserScope.html",[334,0.731,12051,5.493]],["body/interfaces/IImportUserScope.html",[2,1.386,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,31,0.466,32,0.184,33,0.681,47,1,95,0.107,101,0.02,103,0.001,104,0.001,165,0.836,334,1.146,336,1.991,347,2.383,472,8.386,496,5.246,577,4.696,851,6.126,852,6.126,1031,2.607,1602,7.455,6523,4.653,7810,5.102,10658,8.681,10659,8.528,10677,7.455,10678,5.925,10679,5.043,12011,9.73,12051,8.619,12052,7.692,12053,10.406,12054,7.692,12055,6.721]],["title/interfaces/IInterceptorConfig.html",[334,0.731,11928,5.694]],["body/interfaces/IInterceptorConfig.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.165,55,2.982,101,0.017,103,0.001,104,0.001,165,0.953,334,1.106,336,2.465,11577,6.951,11928,10.191,11973,10.812,11976,11.209,12056,10.298]],["title/interfaces/IJsonAccount.html",[334,0.731,12057,5.947]],["body/interfaces/IJsonAccount.html",[3,0.022,4,0.022,5,0.011,7,0.141,30,0.001,32,0.19,33,0.554,39,3.485,47,1.006,48,6.099,51,6.287,87,6.496,101,0.016,103,0.001,104,0.001,138,5.654,165,0.898,334,1.001,336,2.231,1167,7.114,11585,5.31,11586,5.715,12057,10.023,12058,8.617,12059,9.322,12060,10.594]],["title/interfaces/IJsonUser.html",[334,0.731,12061,5.947]],["body/interfaces/IJsonUser.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.186,47,1.006,101,0.016,103,0.001,104,0.001,138,5.122,165,0.918,334,1.04,336,2.317,851,6.253,852,6.253,853,6.767,1167,7.206,11585,5.514,11586,5.935,12058,8.948,12060,8.948,12061,10.256,12062,9.68]],["title/interfaces/IKeycloakConfigurationInputFiles.html",[334,0.731,12063,5.694]],["body/interfaces/IKeycloakConfigurationInputFiles.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.163,47,0.982,101,0.02,103,0.001,104,0.001,165,0.94,217,1.31,334,1.082,336,2.409,2130,4.397,2268,5.735,11585,5.735,11586,6.172,12063,10.055,12064,10.067,12065,10.067,12066,12.281,12067,12.281,12068,8.805,12069,10.067]],["title/interfaces/IKeycloakSettings.html",[334,0.731,12070,5.694]],["body/interfaces/IKeycloakSettings.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.184,47,1.012,51,4.581,87,5.792,101,0.019,103,0.001,104,0.001,138,5.042,165,0.904,217,1.227,238,7.269,334,1.013,336,2.257,5530,6.646,7995,9.661,11560,6.265,11580,8.248,11585,5.372,11586,5.782,12070,9.666,12071,9.431,12072,10.884,12073,7.898,12074,9.431]],["title/interfaces/ILearnroom.html",[334,0.731,6512,4.842]],["body/interfaces/ILearnroom.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.136,95,0.129,101,0.02,103,0.001,104,0.001,148,3.689,165,0.939,334,1.288,336,2.403,687,5.11,2545,5.341,2645,6.392,4882,6.309,4883,6.479,6512,8.537,6516,8.714,6594,10.723,12075,9.283]],["title/interfaces/ILearnroomElement.html",[334,0.731,2645,4.328]],["body/interfaces/ILearnroomElement.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.161,95,0.127,101,0.02,103,0.001,104,0.001,148,3.651,165,0.929,334,1.275,336,2.362,687,5.626,2545,5.25,2645,7.552,4882,8.293,4883,8.516,6512,7.028,6516,8.625,6594,7.972,12075,9.124]],["title/interfaces/ILegacyLogger.html",[334,0.731,12076,5.947]],["body/interfaces/ILegacyLogger.html",[3,0.018,4,0.018,5,0.009,7,0.112,8,1.195,27,0.511,29,0.97,30,0.001,31,0.693,32,0.173,33,0.599,35,1.499,39,1.997,47,1.012,59,3.967,72,4.484,101,0.017,102,4.967,103,0.001,104,0.001,145,1.878,148,4.159,150,2.568,185,2.882,199,5.267,204,3.779,234,1.607,235,4.186,334,0.797,336,1.775,367,3.537,529,3.224,1216,4.851,1345,5.159,1421,7.194,2356,4.065,5460,6.478,8310,6.915,12076,8.657,12077,12.737,12078,7.417,12079,8.657,12080,8.657,12081,9.149,12082,7.417,12083,9.149,12084,10.297,12085,7.417,12086,9.149,12087,10.395,12088,7.417,12089,9.149,12090,7.417,12091,9.149,12092,7.417]],["title/interfaces/ILessonParent.html",[334,0.731,6520,4.45]],["body/interfaces/ILessonParent.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.144,8,0.85,26,2.299,27,0.19,30,0.001,31,0.394,32,0.116,35,0.558,47,0.949,55,2.216,95,0.156,96,1.261,101,0.021,103,0,104,0,111,1.411,116,1.435,145,1.782,150,3.308,187,0.666,188,3.8,208,1.722,214,1.453,217,1.632,227,1.301,234,1.551,240,3.264,247,1.806,305,2.005,334,1.25,336,1.103,347,1.423,369,1.894,370,1.518,371,1.94,379,1.934,380,1.495,398,1.358,399,2.792,400,2.034,402,1.91,404,0.83,405,1.228,406,1.499,461,1.054,535,3.772,687,1.964,769,4.172,806,1.876,1031,1.444,1167,2.533,1345,1.828,1353,2.225,1397,3.198,1843,2.184,1865,3.205,2095,1.828,2303,4.396,2627,1.937,2632,3.931,2633,2.211,2636,3.835,2640,2.511,2645,4.479,2646,2.704,2647,4.505,2649,3.806,2650,4.366,2659,2.159,2663,4.605,2767,3.714,2848,4.12,3339,4.283,3452,5.363,3471,6.078,3580,1.876,3607,3.22,3608,3.22,4052,4.129,4217,2.896,4281,2.013,4878,2.826,4882,2.896,4883,2.974,4989,2.111,5015,6.556,5026,3.282,5043,2.601,5050,4.479,5055,6.856,5068,3.282,5074,3.282,5079,3.282,5630,7.443,6365,5.671,6368,6.078,6486,2.974,6508,2.86,6518,6.037,6519,3.062,6520,5.586,6522,4.421,6560,6.549,6561,4.675,6586,4.749,6757,2.86,6758,3.062,8418,5.011,10761,4.749,11863,5.011,11864,3.35,11865,5.433,11866,3.35,11867,4.916,11868,6.734,11869,5.011,11870,3.282,11871,5.011,11872,5.011,11873,5.011,11874,3.35,11875,5.011,11876,3.062,11877,5.011,11878,5.011,11879,3.35,11880,3.35,11881,3.35,11882,3.22,11883,3.22,11884,3.35,11885,3.35,11886,3.35,11887,5.115,11888,5.963,11889,3.22,11890,5.115,11891,3.35,11892,3.35,11893,3.35,11894,3.163,11895,3.35,11896,3.35,11897,5.115,11898,3.35,11899,3.35,11900,6.944,11901,6.204,11902,3.282,11903,3.35,11904,3.35,11905,3.35,11906,3.35,11907,3.35,11908,3.35,11909,3.35,11910,3.35,11911,3.35,11912,3.35,11913,3.35,11914,3.163,11915,3.35,11916,3.35,12093,4.609]],["title/interfaces/ILessonProperties.html",[334,0.731,11867,4.751]],["body/interfaces/ILessonProperties.html",[0,0.149,3,0.01,4,0.01,5,0.005,7,0.14,26,2.128,30,0.001,31,0.562,32,0.163,33,0.513,47,0.951,55,2.383,95,0.154,96,1.194,101,0.021,103,0,104,0,111,1.353,116,1.359,145,1.709,150,3.214,165,0.529,187,0.631,188,4.427,208,1.63,214,1.376,217,1.612,227,1.284,234,1.507,240,3.184,247,1.71,305,1.922,334,1.228,336,1.044,347,1.878,369,1.831,370,1.438,371,1.861,379,1.869,380,1.434,398,1.286,399,2.677,400,1.926,402,1.809,404,0.786,405,1.163,406,1.419,461,0.998,535,3.618,687,1.86,769,4.001,806,1.777,1031,1.367,1167,2.398,1345,1.731,1353,2.107,1397,3.108,1843,2.069,1865,3.073,2095,1.731,2303,4.302,2627,1.834,2632,3.799,2633,2.094,2636,3.677,2640,2.378,2645,4.295,2646,2.561,2647,4.354,2649,3.678,2650,4.187,2659,2.044,2663,4.416,2767,5.298,2848,3.982,3339,4.14,3452,6.668,3471,5.875,3580,1.777,3607,3.049,3608,3.049,4052,3.959,4217,2.742,4281,1.906,4878,2.676,4882,2.742,4883,2.816,4989,1.999,5015,7.283,5026,3.108,5043,2.463,5050,4.295,5055,6.748,5068,3.108,5074,3.108,5079,3.108,5630,7.283,6365,5.481,6368,5.875,6486,2.816,6508,2.708,6518,7.032,6519,2.899,6520,4.416,6522,4.24,6560,4.295,6561,4.483,6586,4.554,6757,2.708,6758,2.899,8418,4.805,10761,6.775,11863,4.805,11864,3.172,11865,6.389,11866,3.172,11867,5.764,11868,7.481,11869,4.805,11870,3.108,11871,4.805,11872,4.805,11873,4.805,11874,3.172,11875,4.805,11876,2.899,11877,4.805,11878,4.805,11879,3.172,11880,3.172,11881,3.172,11882,3.049,11883,3.049,11884,3.172,11885,3.172,11886,3.172,11887,4.905,11888,5.764,11889,3.049,11890,4.905,11891,3.172,11892,3.172,11893,3.172,11894,2.995,11895,3.172,11896,3.172,11897,4.905,11898,3.172,11899,3.172,11900,6.748,11901,5.997,11902,3.108,11903,3.172,11904,3.172,11905,3.172,11906,3.172,11907,3.172,11908,3.172,11909,3.172,11910,3.172,11911,3.172,11912,3.172,11913,3.172,11914,2.995,11915,3.172,11916,3.172]],["title/interfaces/ILoggerConfig.html",[334,0.731,11929,5.694]],["body/interfaces/ILoggerConfig.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,47,0.933,101,0.018,103,0.001,104,0.001,165,0.966,334,1.132,336,2.523,11577,7.114,11929,10.332,11971,10.893,12094,10.541]],["title/interfaces/IMaterialProperties.html",[334,0.731,12095,5.324]],["body/interfaces/IMaterialProperties.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,30,0.001,32,0.181,33,0.557,47,1.028,95,0.121,96,1.88,101,0.019,103,0.001,104,0.001,150,4.177,165,0.736,240,4.266,334,1.151,336,1.645,379,2.734,380,1.998,398,2.025,399,3.73,400,3.033,404,1.238,405,1.831,406,2.235,460,3.953,1397,4.039,1843,3.258,2747,3.547,3580,4.911,3609,4.375,6196,3.715,6541,4.639,6542,4.498,7136,4.318,11865,4.375,11868,4.498,11876,8.014,12095,8.39,12096,5.756,12097,8.967,12098,9.744,12099,9.744,12100,9.744,12101,9.744,12102,9.744,12103,9.744,12104,5.756,12105,4.996,12106,5.756,12107,5.756,12108,5.552,12109,5.756,12110,5.756,12111,5.756,12112,5.756,12113,5.756,12114,5.756,12115,5.756,12116,5.756,12117,5.756,12118,5.756,12119,5.756,12120,5.756,12121,5.756]],["title/interfaces/IMigrationOptions.html",[334,0.731,11600,5.493]],["body/interfaces/IMigrationOptions.html",[0,0.157,3,0.011,4,0.011,5,0.006,7,0.07,10,1.862,30,0.001,32,0.116,33,0.525,36,2.42,47,0.682,52,3.338,53,3.354,55,2.431,70,5.373,72,3.19,78,8.661,95,0.123,101,0.008,103,0,104,0,111,1.916,112,2.681,127,0.578,145,1.783,165,0.552,204,1.565,216,1.579,217,1.34,221,2.76,227,0.886,234,1.143,247,2.759,264,3.59,305,1.314,319,3.077,334,0.918,336,1.104,346,2.937,347,1.728,368,4.033,371,3.209,379,2.803,403,4.609,432,1.698,461,1.055,529,4.155,575,2.765,627,1.416,701,3.99,768,3.167,773,5.437,798,2.899,803,2.863,894,6.209,905,2.932,907,5.862,1037,3.515,1125,2.736,1129,4.051,1414,2.58,1467,1.473,1639,5.437,1646,3.939,1772,5.515,1920,2.937,1948,4.221,1959,2.514,2130,2.015,2147,3.613,2356,1.895,2357,3.208,2450,2.628,2800,5.59,3090,5.033,3481,4.679,3489,3.223,3490,8.807,3491,6.468,3492,2.736,5451,3.43,5880,7.454,6431,3.613,7027,2.863,7044,2.937,7325,7.843,7799,5.967,7809,7.843,8252,3.515,8310,3.223,10142,4.92,11351,3.613,11584,5.689,11585,2.628,11586,2.829,11587,3.864,11588,3.864,11589,3.613,11590,5.898,11591,6.349,11592,3.613,11593,3.613,11594,5.898,11595,3.864,11596,3.864,11597,8.315,11598,3.864,11599,3.864,11600,6.899,11601,7.843,11602,3.864,11603,3.515,11604,3.613,11605,3.864,11606,3.864,11607,3.864,11608,8.621,11609,3.354,11610,3.864,11611,3.864,11612,7.153,11613,3.02,11614,5.765,11615,3.286,11616,4.833,11617,3.43,11618,3.864,11619,3.864,11620,3.864,11621,8.005,11622,3.864,11623,3.864,11624,3.864,11625,8.005,11626,3.864,11627,3.864,11628,3.864,11629,8.005,11630,8.005,11631,3.613,11632,3.864,11633,3.864,11634,3.864,11635,3.354,11636,3.727,11637,5.119,11638,3.864,11639,3.864,11640,3.864,11641,3.864,11642,3.864,11643,5.015,11644,3.613,11645,3.613,11646,3.864,11647,3.864,11648,3.864,11649,3.864,11650,3.864,11651,3.864,11652,3.864,11653,3.864,11654,3.864,11655,3.864,11656,3.864,11657,3.727]],["title/interfaces/INameMatch.html",[334,0.731,12055,5.493]],["body/interfaces/INameMatch.html",[2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,31,0.724,32,0.155,33,0.553,47,0.976,95,0.119,101,0.021,103,0.001,104,0.001,165,0.895,334,1.228,336,2.221,347,1.877,472,6.262,496,3.918,577,6.449,851,5.905,852,5.905,1031,2.908,1602,7.984,6523,5.189,7810,7.006,10658,6.483,10659,6.368,10677,7.984,10678,6.607,10679,5.624,12011,8.948,12051,7.495,12052,8.577,12053,9.57,12054,8.577,12055,9.231]],["title/interfaces/INewsProperties.html",[334,0.731,6852,5.324]],["body/interfaces/INewsProperties.html",[0,0.327,3,0.011,4,0.026,5,0.006,7,0.165,9,3.348,26,2.587,30,0.001,31,0.398,32,0.173,33,0.565,34,0.794,47,0.94,83,2.942,95,0.15,96,2.353,101,0.017,103,0,104,0,165,0.81,188,2.624,192,3.48,208,1.744,227,0.484,234,1.397,240,3.595,334,0.501,336,1.117,369,2.419,370,3.59,380,2.199,398,1.375,399,2.819,400,2.06,404,1.733,405,2.562,406,1.518,461,2.737,571,5.405,574,3.777,595,1.563,617,4.769,627,1.432,672,4.408,731,3.399,769,5.701,843,2.06,844,5.32,854,5.192,1031,2.226,1187,4.102,1188,4.531,1189,4.053,1190,4.288,1191,4.688,1397,3.649,1415,4.356,1843,3.368,1849,2.342,1865,3.236,1941,2.971,1959,2.543,2303,4.418,2577,4.855,2632,3.962,2646,2.739,2702,5.736,2747,2.409,3427,3.203,3429,2.971,3430,3.261,3432,3.324,3433,3.261,3434,3.47,3448,2.862,3584,3.15,3609,2.971,4205,1.573,4297,3.556,4298,3.393,4989,3.94,5057,3.47,5072,3.393,5618,7.923,6216,2.587,6434,3.261,6521,2.862,6523,2.61,6544,2.797,6757,2.896,6844,3.47,6845,3.77,6847,4.306,6848,3.77,6849,7.691,6850,5.55,6851,3.77,6852,8.873,6853,6.874,6854,5.891,6855,7.148,6856,7.691,6857,6.462,6858,7.394,6859,3.77,6860,5.059,6861,3.77,6862,3.556,6863,3.556,6864,4.584,6865,3.77,6866,3.556,6867,3.556,6868,3.77,6869,3.47,6870,3.77,6871,2.767,6872,2.862,6873,3.556,6874,3.77,6875,3.77,6876,6.736,6877,3.77,6878,6.949,6879,3.77,6880,3.77,6881,5.413,6882,3.556,6883,6.01,6884,3.655,6885,4.65,6886,3.556,6887,3.393,6888,3.556,6889,3.77]],["title/interfaces/INewsScope.html",[334,0.731,11938,5.493]],["body/interfaces/INewsScope.html",[3,0.019,4,0.019,5,0.01,7,0.123,26,2.468,30,0.001,32,0.185,33,0.632,34,1.381,47,0.749,83,2.484,95,0.158,101,0.021,103,0.001,104,0.001,138,4.588,165,0.823,188,4.301,192,2.42,334,1.403,336,1.943,347,2.355,379,1.84,380,1.725,696,4.221,844,4.784,1031,2.544,1397,2.719,2303,3.291,2385,4.978,2702,5.745,3642,9.187,4533,5.038,4748,4.501,6847,6.366,6849,6.036,6850,7.513,6853,5.394,6857,6.228,6858,7.44,7035,8.601,10031,5.101,10684,9.945,11930,6.559,11931,7.506,11932,7.506,11933,7.506,11934,7.506,11935,7.506,11936,5.394,11937,6.8,11938,8.485]],["title/interfaces/IPagination.html",[334,0.731,8961,5.181]],["body/interfaces/IPagination.html",[3,0.023,4,0.023,5,0.012,7,0.145,30,0.001,32,0.171,33,0.632,55,2.934,56,6.27,70,6.472,101,0.022,103,0.001,104,0.001,165,0.913,334,1.253,336,2.294,696,4.985,1031,3.004,2144,5.411,3654,9.764,4431,6.024,6612,5.746,6902,5.811,8961,9.572,9149,9.129,10375,9.418,11990,8.863,11991,8.863]],["title/interfaces/IParentInfo.html",[334,0.731,10047,5.324]],["body/interfaces/IParentInfo.html",[0,0.252,3,0.009,4,0.009,5,0.007,7,0.157,26,2.675,30,0.001,31,0.553,32,0.115,34,1.005,39,0.992,47,0.86,49,3.641,55,1.272,83,3.021,95,0.138,96,1.616,97,1.594,99,0.615,101,0.017,103,0,104,0,116,3.963,145,2.627,148,2.602,165,0.579,187,0.533,188,1.361,192,1.76,204,2.508,217,1.569,227,1.362,234,1.892,240,3.824,247,1.444,305,1.05,334,0.794,336,0.882,347,2.098,359,2.059,369,1.876,370,2.435,371,1.016,380,1.966,398,1.086,399,2.344,402,1.528,404,0.664,405,1.574,406,1.199,461,0.843,564,2.71,574,1.618,576,3.334,591,1.602,592,1.67,701,2.614,770,2.185,775,4.532,905,1.535,938,2.679,946,2.412,1015,4.729,1031,3.25,1180,1.586,1185,2.624,1255,3.987,1350,4.206,1487,4.729,1750,2.62,1852,2.494,1945,2.529,2037,2.162,2038,4.127,2095,3.355,2268,2.099,2440,2.099,2574,3.048,2632,3.894,2643,2.141,2649,1.643,2659,1.726,2849,1.594,3090,1.594,3143,1.93,3339,1.849,3353,2.529,3364,2.08,3610,5.576,3720,2.08,3814,2.74,4205,3.845,4215,2.808,4217,2.316,4271,3.219,4281,1.61,4282,2.185,4748,2.043,5043,2.08,5055,2.12,6170,1.707,6188,4.431,6189,5.382,6190,4.206,6191,5.534,6198,2.575,6206,2.624,6208,2.448,6210,5.373,6216,4.098,6217,5.612,6218,3.866,6511,2.234,6739,2.886,6740,4.391,6854,1.992,9807,2.74,9872,2.808,9875,4.206,9879,2.679,9913,2.575,9923,2.808,9927,2.808,9953,4.5,9956,2.679,9957,2.679,9962,2.808,9963,2.808,10003,2.977,10004,2.886,10005,4.625,10006,2.977,10007,4.625,10009,6.83,10021,6.285,10024,2.977,10025,2.808,10026,4.625,10027,2.74,10028,4.294,10029,4.294,10030,4.294,10031,2.316,10032,4.771,10033,4.771,10034,4.771,10035,4.771,10036,4.771,10037,4.771,10038,4.625,10039,5.707,10040,4.771,10041,2.808,10042,4.391,10043,2.74,10044,4.5,10045,2.808,10046,4.5,10047,6.621,10048,2.624,10049,2.886,10050,2.679,10051,2.679,10052,2.977,10053,2.977,10054,2.808,10055,2.74,10056,2.808,10057,2.977,10058,2.977,10059,2.977,10060,2.977,10061,2.977,10062,2.977,10063,2.977,10064,2.977,10065,2.977,10066,2.977,10067,7.977,10068,2.977,10069,2.977,10070,4.771,10071,2.977,10072,2.977,10073,4.771,10074,4.771,10075,4.771,10076,2.977,10077,2.977,10078,2.977,10079,2.977,10080,2.977,10081,2.977,10082,2.977,10083,4.771,10084,5.971,10085,2.886,10086,2.977,10087,4.771,10088,2.886,10089,2.977,10090,4.771,10091,2.977,10092,5.971,10093,5.971,10094,2.886,10095,5.971,10096,2.977,10097,2.977,10098,2.977,10099,2.977,10100,2.977,10101,2.977,10102,2.977,10103,2.886,10104,2.977,10105,2.977,10106,2.977,10107,2.977,10108,2.977,10109,2.977,10110,2.977,10111,2.977,10112,2.977]],["title/interfaces/IRelatedResourceProperties.html",[334,0.731,12102,5.493]],["body/interfaces/IRelatedResourceProperties.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,30,0.001,32,0.137,33,0.58,47,1.021,95,0.129,96,2.079,101,0.02,103,0.001,104,0.001,150,3.483,165,0.788,240,4.34,334,1.211,336,1.818,379,2.279,380,2.137,398,2.239,399,3.99,400,3.353,404,1.369,405,2.025,406,2.471,460,4.37,1397,3.368,1843,3.602,2747,3.922,3580,4.095,3609,4.837,6196,4.107,6541,5.129,6542,4.973,7136,4.774,11865,4.837,11868,4.973,11876,6.682,12095,7.876,12096,6.364,12097,7.477,12098,8.124,12099,8.124,12100,8.124,12101,8.124,12102,9.693,12103,9.107,12104,6.364,12105,5.524,12106,10.049,12107,10.049,12108,6.138,12109,6.364,12110,6.364,12111,6.364,12112,6.364,12113,6.364,12114,6.364,12115,6.364,12116,6.364,12117,6.364,12118,6.364,12119,6.364,12120,6.364,12121,6.364]],["title/interfaces/IRepoLoader.html",[334,0.731,12122,5.947]],["body/interfaces/IRepoLoader.html",[0,0.216,3,0.015,4,0.015,5,0.008,7,0.096,26,1.887,30,0.001,32,0.151,33,0.43,36,1.362,49,2.499,95,0.16,99,1.06,101,0.011,103,0.001,104,0.001,105,1.191,111,2.702,112,1.4,127,0.796,165,0.697,187,0.919,200,1.979,216,2.451,217,1.159,221,2.06,227,0.923,234,1.445,305,1.81,334,0.682,336,1.52,347,2.079,359,4.088,369,1.976,441,6.675,450,2.609,1554,7.18,1787,5.171,1872,5.171,1873,3.942,1929,8.721,1930,6.75,1931,7.289,1932,5.131,1933,8.279,1934,8.485,1935,7.781,1936,7.644,1957,4.84,1973,7.318,2531,7.48,3115,7.471,3228,4.044,3364,5.024,4659,7.79,5343,5.32,5723,8.996,5800,4.22,6074,3.942,12122,9.741,12123,5.872,12124,10.295,12125,5.131,12126,5.872,12127,5.872,12128,5.872,12129,5.872,12130,5.872,12131,5.872,12132,5.872,12133,5.872,12134,5.872,12135,5.872,12136,5.872,12137,5.872,12138,5.872,12139,5.872,12140,5.872,12141,5.872,12142,5.872,12143,5.872,12144,5.872,12145,5.872,12146,5.872,12147,5.872,12148,5.872,12149,5.872,12150,5.872,12151,5.872,12152,5.872,12153,5.872,12154,5.872,12155,5.872,12156,5.872,12157,8.229]],["title/interfaces/IRetryOptions.html",[334,0.731,11597,5.493]],["body/interfaces/IRetryOptions.html",[0,0.159,3,0.011,4,0.011,5,0.006,7,0.07,10,1.882,30,0.001,32,0.096,33,0.465,36,2.429,47,0.506,52,3.365,53,3.389,55,2.576,70,4.257,72,3.216,78,8.679,95,0.123,101,0.008,103,0,104,0,111,1.927,112,2.689,127,0.584,145,1.797,165,0.556,204,1.582,216,1.59,217,1.346,221,2.768,227,0.891,234,1.153,247,2.781,264,3.612,305,1.328,319,3.091,334,0.923,336,1.116,346,2.967,347,0.943,368,4.052,371,3.219,379,2.81,403,4.646,432,1.715,461,1.066,529,2.026,575,2.794,627,1.43,701,4.005,768,3.2,773,5.472,798,2.929,803,2.893,894,6.249,905,2.956,907,5.9,1037,3.552,1125,2.764,1129,4.083,1414,2.607,1467,1.488,1639,5.472,1646,3.97,1772,5.559,1920,2.967,1948,4.255,1959,2.541,2130,2.036,2147,3.651,2356,1.915,2357,3.233,2450,2.656,2800,5.626,3090,5.049,3481,4.716,3489,3.257,3490,8.825,3491,6.498,3492,2.764,5451,3.466,5880,7.469,6431,3.651,7027,2.893,7044,2.967,7325,7.879,7799,6.006,7809,7.879,8252,3.552,8310,3.257,10142,4.959,11351,3.651,11584,5.734,11585,2.656,11586,2.858,11587,3.904,11588,3.904,11589,3.651,11590,5.945,11591,6.39,11592,3.651,11593,3.651,11594,5.945,11595,3.904,11596,3.904,11597,8.8,11598,8.048,11599,8.048,11600,5.734,11601,5.408,11602,3.904,11603,3.552,11604,3.651,11605,3.904,11606,3.904,11607,3.904,11608,8.661,11609,3.389,11610,3.904,11611,3.904,11612,7.199,11613,3.051,11614,5.802,11615,3.32,11616,4.872,11617,3.466,11618,3.904,11619,3.904,11620,3.904,11621,8.048,11622,3.904,11623,3.904,11624,3.904,11625,8.048,11626,3.904,11627,3.904,11628,3.904,11629,8.048,11630,8.048,11631,3.651,11632,3.904,11633,3.904,11634,3.904,11635,3.389,11636,3.766,11637,5.16,11638,3.904,11639,3.904,11640,3.904,11641,3.904,11642,3.904,11643,5.055,11644,3.651,11645,3.651,11646,3.904,11647,3.904,11648,3.904,11649,3.904,11650,3.904,11651,3.904,11652,3.904,11653,3.904,11654,3.904,11655,3.904,11656,3.904,11657,3.766]],["title/interfaces/IRoleProperties.html",[334,0.731,12158,5.947]],["body/interfaces/IRoleProperties.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.12,30,0.001,31,0.71,32,0.157,33,0.591,47,0.739,95,0.148,96,2.177,101,0.017,103,0.001,104,0.001,116,2.479,165,0.812,217,1.501,227,0.825,234,1.872,240,3.658,305,2.267,334,1.114,336,1.905,380,2.45,394,5.907,398,2.345,399,4.114,400,3.512,402,3.299,404,1.434,405,2.121,406,2.589,496,5.35,843,5.591,1019,4.623,1843,3.773,1849,6.732,2095,3.158,2636,4.337,2640,5.65,3110,6.475,4052,4.67,4281,3.477,4571,6.904,7150,6.429,9934,7.708,9964,8.119,12158,10.087,12159,7.357,12160,6.665,12161,6.429,12162,6.665,12163,6.429,12164,7.357,12165,6.665,12166,7.357,12167,9.585,12168,7.357,12169,8.683,12170,6.429]],["title/interfaces/ISchoolExternalToolProperties.html",[334,0.731,12171,5.694]],["body/interfaces/ISchoolExternalToolProperties.html",[0,0.275,3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,32,0.167,33,0.507,55,2.648,95,0.164,96,2.212,101,0.017,103,0.001,104,0.001,165,0.821,192,3.795,200,3.62,209,4.208,240,3.323,334,0.869,336,1.935,369,2.325,380,2.226,398,2.382,399,4.156,402,3.352,404,1.457,405,2.155,406,2.63,844,5.942,1858,4.236,4271,5.709,4272,4.901,4989,5.322,5352,7.472,5721,5.759,5722,6.011,5770,6.532,5776,9.94,5778,5.878,5781,6.772,5782,5.218,6543,5.018,6544,4.847,7252,5.018,8680,9.068,11044,5.65,12030,6.532,12171,9.732,12172,7.476,12173,11.138,12174,7.476,12175,7.476,12176,7.476,12177,7.476,12178,7.476]],["title/interfaces/ISchoolProperties.html",[334,0.731,12179,5.324]],["body/interfaces/ISchoolProperties.html",[0,0.307,3,0.012,4,0.012,5,0.006,7,0.136,30,0.001,31,0.6,32,0.174,33,0.655,47,0.962,83,3.06,95,0.144,96,1.381,101,0.018,102,2.533,103,0,104,0,145,1.278,165,0.706,167,1.857,234,0.82,240,4.059,334,0.542,336,1.208,347,2.271,355,2.028,359,1.76,369,2.921,370,4.301,371,2.078,380,1.601,398,1.487,400,2.227,402,2.092,404,0.91,405,1.345,406,1.642,483,2.407,844,2.299,854,5.635,1031,1.582,1167,5.498,1183,3.526,1843,2.392,1849,2.533,2095,2.003,2395,5.087,2574,4.655,2632,5.359,2636,2.751,2640,4.107,2641,5.902,3105,4.797,3106,4.254,4271,4.107,4281,2.205,4323,7.006,4338,3.846,4339,5.902,4491,6.968,4989,4.131,6464,7.706,6472,7.111,6486,3.257,6537,4.621,6556,5.742,6557,3.752,6871,2.993,6872,4.621,8452,6.726,8456,3.752,8457,6.088,8469,5.785,8470,3.752,9787,7.349,10031,3.171,10293,6.508,10752,7.147,11571,5.902,12179,7.063,12180,4.227,12181,8.155,12182,7.781,12183,7.346,12184,7.622,12185,8.649,12186,4.077,12187,4.077,12188,4.227,12189,4.077,12190,4.227,12191,4.227,12192,6.312,12193,4.227,12194,4.227,12195,4.227,12196,4.227,12197,4.227,12198,4.227,12199,4.227,12200,4.227,12201,7.286,12202,4.227,12203,4.227,12204,7.286,12205,4.227,12206,4.227,12207,4.227,12208,3.526,12209,5.902,12210,3.752,12211,4.077,12212,4.227,12213,6.312,12214,3.846,12215,4.227,12216,4.227,12217,6.088,12218,4.077,12219,3.594,12220,4.227]],["title/interfaces/ISchoolYearProperties.html",[334,0.731,12221,5.947]],["body/interfaces/ISchoolYearProperties.html",[0,0.307,3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.737,32,0.166,47,0.912,83,4.207,95,0.144,96,2.464,101,0.019,103,0.001,104,0.001,165,0.879,214,2.84,240,4.057,334,0.968,336,2.156,380,2.384,398,2.654,400,3.975,402,3.734,404,1.623,405,2.401,406,2.93,2095,3.574,2395,7.573,4281,3.935,6475,9.37,6552,7.277,6553,6.864,10752,5.734,12221,11.187,12222,8.328,12223,11.019,12224,7.88,12225,8.328,12226,8.328]],["title/interfaces/IScopeInfo.html",[334,0.731,12227,5.493]],["body/interfaces/IScopeInfo.html",[3,0.023,4,0.023,5,0.012,7,0.147,26,2.782,30,0.001,32,0.178,47,1.001,95,0.125,99,1.619,101,0.016,103,0.001,104,0.001,165,0.92,334,1.042,336,2.322,1397,4.394,2049,5.008,2072,8.468,9571,10.601,12227,9.486,12228,8.97,12229,9.703,12230,13.123]],["title/interfaces/IServerConfig.html",[334,0.731,804,5.324]],["body/interfaces/IServerConfig.html",[3,0.018,4,0.018,5,0.009,7,0.117,30,0.001,32,0.181,47,0.951,52,4.834,55,2.454,95,0.169,101,0.019,103,0.001,104,0.001,154,4.671,165,0.799,217,1.327,334,0.834,336,1.857,347,2.542,404,1.838,802,5.641,803,4.815,804,8.92,1031,2.432,1125,6.047,1358,4.939,1564,5.912,1764,6.787,2130,3.39,2131,3.793,2132,3.656,2133,4.939,2141,7.173,3579,3.817,3580,3.159,4593,3.921,4993,4.815,10416,5.421,10629,9.539,11576,9.963,11578,9.427,11614,6.883,11635,7.413,11851,9.963,11853,7.173,11926,9.539,11971,6.268,11972,7.173,11973,6.268,11976,6.498,11977,7.173,11999,9.539,12002,7.173,12003,7.173,12004,7.173,12231,7.76,12232,9.201,12233,12.567,12234,12.567,12235,7.76,12236,10.198,12237,7.76,12238,7.173,12239,7.76,12240,7.76,12241,7.76,12242,7.76,12243,7.173,12244,7.76,12245,6.498,12246,7.76,12247,7.76,12248,5.326]],["title/interfaces/IShareTokenProperties.html",[334,0.731,12249,5.694]],["body/interfaces/IShareTokenProperties.html",[0,0.239,3,0.017,4,0.017,5,0.008,7,0.164,26,2.805,30,0.001,32,0.17,33,0.606,34,1.196,49,5.205,83,3.557,95,0.156,96,2.611,97,3.04,101,0.016,103,0.001,104,0.001,145,2.417,165,0.748,199,2.656,227,0.99,234,1.55,240,3.857,247,2.754,334,0.755,336,1.682,351,6.101,369,2.405,370,3.571,380,2.028,385,8.206,398,2.071,399,3.787,402,2.913,404,1.267,405,1.873,406,2.286,411,5.355,412,5.886,421,5.504,422,5.886,701,2.485,1031,3.397,2632,4.396,3339,3.527,3366,5.678,3610,5.943,4272,4.26,4773,7.287,4779,5.886,5760,7.639,5788,5.886,5789,5.678,5790,5.886,6208,4.67,6217,5.981,6474,4.824,9807,5.225,9875,5.005,9880,5.886,9956,5.109,9957,5.109,10054,5.355,10056,5.355,12249,9.078,12250,6.497,12251,6.497,12252,9.821,12253,8.344,12254,9.52,12255,6.497,12256,4.67,12257,4.6,12258,6.497,12259,6.497]],["title/interfaces/IStorageProviderProperties.html",[334,0.731,12260,5.947]],["body/interfaces/IStorageProviderProperties.html",[0,0.289,3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,32,0.176,33,0.522,47,1.013,95,0.153,96,2.319,101,0.018,103,0.001,104,0.001,165,0.846,240,4.099,334,0.911,336,2.029,369,1.881,370,2.793,380,2.295,398,2.498,399,4.285,400,3.741,402,3.514,404,1.528,405,2.259,406,2.757,2632,3.905,6269,9.028,6271,9.028,6272,9.229,7948,6.302,11675,7.415,12260,10.394,12261,7.837,12262,11.945,12263,9.044,12264,7.837,12265,7.837,12266,7.837,12267,7.837,12268,7.837,12269,7.837,12270,7.837,12271,7.837,12272,7.837]],["title/interfaces/ISubmissionProperties.html",[334,0.731,12273,5.694]],["body/interfaces/ISubmissionProperties.html",[0,0.166,3,0.012,4,0.012,5,0.006,7,0.159,26,2.236,30,0.001,32,0.175,33,0.614,34,0.829,47,0.864,55,2.118,62,2.861,72,2.209,95,0.152,96,1.334,101,0.012,103,0,104,0,111,1.472,116,3.452,145,2.237,165,0.77,187,0.705,192,3.143,208,1.822,217,1.703,227,1.228,234,1.434,240,3.516,305,1.389,334,0.524,336,1.167,347,2.598,369,2.182,370,3.239,371,2.025,380,1.561,394,4.184,398,1.437,399,2.914,400,2.152,402,2.021,404,0.879,405,1.299,406,1.586,461,2.867,738,2.535,844,5.049,957,2.703,1107,3.407,1129,2.805,1142,2.258,1353,3.545,1843,2.311,1942,3.347,1944,3.347,1950,3.472,1959,2.657,2632,4.857,2636,2.657,2640,2.657,2649,5.663,2650,3.026,2849,3.176,3106,6.492,3429,3.104,3430,3.407,3720,2.752,3775,7.119,3780,7.119,3788,6.151,3790,6.151,4205,1.644,4989,3.364,6216,4.071,6518,7.241,6519,3.24,6521,2.99,6523,2.727,6539,3.472,6543,3.026,6544,2.923,6864,3.146,7044,3.104,8894,8.036,11882,3.407,11883,3.407,11888,5.131,11889,3.407,12105,7.667,12273,7.399,12274,4.508,12275,9.75,12276,9.633,12277,4.265,12278,4.508,12279,4.508,12280,4.508,12281,4.508,12282,4.508,12283,4.508,12284,3.939,12285,4.508,12286,4.508,12287,4.508,12288,4.084,12289,4.508,12290,4.508,12291,4.508,12292,4.508,12293,4.508,12294,4.508,12295,9.75,12296,4.508,12297,4.508,12298,4.508,12299,4.508,12300,4.508,12301,4.508,12302,9.089,12303,4.508,12304,6.568,12305,3.939,12306,10.247,12307,6.789,12308,4.084,12309,6.789,12310,4.265,12311,3.545,12312,3.818,12313,4.508,12314,4.508,12315,4.508,12316,4.508,12317,6.789,12318,6.789,12319,4.508,12320,4.508,12321,4.508,12322,4.508,12323,6.568,12324,3.939,12325,4.084,12326,6.789]],["title/interfaces/ISystemProperties.html",[334,0.731,12327,5.181]],["body/interfaces/ISystemProperties.html",[0,0.317,3,0.01,4,0.01,5,0.005,7,0.066,26,1.439,30,0.001,32,0.173,33,0.626,47,1.023,83,2.536,95,0.12,96,1.203,101,0.017,103,0,104,0,150,3.686,165,0.532,208,1.643,216,0.813,240,4.464,277,1.775,334,0.472,336,1.052,347,0.889,359,1.533,369,2.978,370,4.42,371,1.213,379,0.996,380,1.761,398,1.296,399,2.693,400,1.94,402,1.823,404,0.792,405,1.172,406,1.43,496,1.857,722,1.961,775,2.696,783,2.665,1031,2.598,1141,2.696,1498,2.665,1581,3.131,1613,2.729,2072,2.837,2097,3.269,2574,3.503,2578,1.961,4271,3.699,4309,4.833,4333,2.636,4588,3.503,5530,3.383,5698,5.125,5717,2.799,5718,3.018,6196,3.668,7136,2.763,7222,2.968,7278,4.114,8469,2.377,8805,2.968,9787,2.878,10293,2.459,11429,7.887,11510,3.269,11511,3.269,11512,3.269,11513,3.35,11557,3.018,11560,2.921,11562,3.018,11565,3.018,11568,2.696,11572,2.968,11613,2.878,12035,3.35,12219,3.131,12327,6.316,12328,3.552,12329,6.692,12330,8.886,12331,8.54,12332,6.329,12333,7.037,12334,6.592,12335,2.921,12336,2.921,12337,3.552,12338,4.658,12339,5.046,12340,3.443,12341,5.046,12342,3.35,12343,3.35,12344,3.35,12345,3.35,12346,3.443,12347,3.35,12348,3.35,12349,3.35,12350,3.443,12351,5.046,12352,3.443,12353,3.35,12354,3.443,12355,3.35,12356,3.35,12357,3.35,12358,3.443,12359,4.658,12360,3.552,12361,3.552,12362,3.552,12363,3.552,12364,3.552,12365,3.552,12366,3.552,12367,3.552,12368,3.552,12369,3.552,12370,3.552,12371,3.552,12372,3.443,12373,3.552,12374,3.552,12375,3.552,12376,3.552,12377,3.552,12378,3.552,12379,3.552,12380,3.552,12381,3.552,12382,3.552,12383,3.552,12384,3.552,12385,3.552,12386,3.552,12387,3.552,12388,3.552,12389,3.552,12390,3.269,12391,3.552,12392,3.552,12393,3.552,12394,3.552,12395,3.552,12396,3.552,12397,3.552,12398,3.552,12399,3.552,12400,3.552,12401,3.552,12402,3.552,12403,3.552,12404,3.552,12405,3.35,12406,3.552,12407,3.269,12408,3.443,12409,3.35,12410,3.443,12411,3.35,12412,3.35,12413,3.443,12414,3.35,12415,3.443,12416,3.35,12417,3.197,12418,3.197,12419,3.197,12420,3.269,12421,3.35,12422,3.552,12423,3.35,12424,3.552,12425,3.552,12426,3.552,12427,3.552,12428,3.552,12429,3.35,12430,3.443,12431,3.35,12432,3.443]],["title/interfaces/ITargetGroupProperties.html",[334,0.731,12103,5.493]],["body/interfaces/ITargetGroupProperties.html",[0,0.254,3,0.018,4,0.018,5,0.009,7,0.113,30,0.001,32,0.152,33,0.617,47,1.023,95,0.128,96,2.044,101,0.02,103,0.001,104,0.001,150,3.444,165,0.779,240,4.328,334,1.201,336,1.788,379,2.254,380,2.113,398,2.201,399,3.946,400,3.297,404,1.346,405,1.991,406,2.43,460,6.856,1397,3.33,1843,3.542,2747,3.856,3580,4.049,3609,4.756,6196,4.038,6541,5.043,6542,4.89,7136,4.695,11865,4.756,11868,4.89,11876,6.608,12095,7.788,12096,6.257,12097,7.394,12098,8.034,12099,8.034,12100,8.034,12101,8.034,12102,9.031,12103,9.628,12104,9.982,12105,8.665,12106,6.257,12107,6.257,12108,6.036,12109,6.257,12110,6.257,12111,6.257,12112,6.257,12113,6.257,12114,6.257,12115,6.257,12116,6.257,12117,6.257,12118,6.257,12119,6.257,12120,6.257,12121,6.257]],["title/interfaces/ITask.html",[334,0.731,12433,5.324]],["body/interfaces/ITask.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,31,0.688,32,0.177,33,0.651,47,0.978,55,2.501,83,3.989,95,0.104,99,1.347,101,0.02,103,0.001,104,0.001,111,1.618,165,0.82,188,4.288,192,2.405,334,1.367,336,1.931,347,2.637,379,2.783,404,2.092,461,2.656,844,4.766,2633,5.019,2647,5.522,2659,3.781,2849,4.525,3259,6.339,3262,6.294,3720,4.555,3752,7.926,3771,5.362,3775,5.447,3776,5.638,3777,5.282,3778,5.282,3779,5.747,3780,5.447,5017,6.341,6854,4.362,7935,5.137,12433,9.965,12434,6.519,12435,8.929,12436,5.999,12437,5.999,12438,5.747,12439,5.999,12440,5.867]],["title/interfaces/ITaskCreate.html",[334,0.731,12437,5.055]],["body/interfaces/ITaskCreate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.161,33,0.605,47,0.986,55,2.557,83,3.299,95,0.109,99,1.412,101,0.021,103,0.001,104,0.001,111,1.696,165,0.845,188,4.385,192,2.521,334,1.387,336,2.025,347,2.67,379,1.917,404,2.253,461,2.716,844,4.912,2633,6.195,2647,5.692,2659,3.963,2849,4.664,3259,5.566,3262,4.335,3720,4.775,3752,5.459,3771,5.621,3775,5.71,3776,5.911,3777,5.537,3778,5.537,3779,6.025,3780,5.71,5017,7.827,6854,4.573,7935,5.385,12433,10.112,12434,6.834,12435,6.15,12436,6.289,12437,8.017,12438,6.025,12439,6.289,12440,6.15]],["title/interfaces/ITaskParent.html",[334,0.731,6522,4.272]],["body/interfaces/ITaskParent.html",[0,0.184,3,0.008,4,0.008,5,0.004,7,0.174,8,0.651,26,1.988,27,0.136,30,0.001,31,0.184,32,0.14,34,0.917,35,0.399,47,0.706,55,1.162,83,2.671,95,0.15,96,0.901,101,0.015,103,0,104,0,111,2.415,116,3.582,145,2.004,148,2.436,165,0.62,167,1.212,187,0.476,188,3.225,192,0.982,214,1.038,217,1.775,227,1.345,234,1.677,240,3.392,247,2.113,305,1.536,334,0.579,336,0.788,347,2.279,369,2.442,370,3.089,371,3.172,379,0.746,380,1.146,398,0.97,399,2.14,400,1.453,402,1.365,404,0.594,405,0.878,406,1.071,461,2.719,564,3.629,687,1.404,728,1.26,738,1.712,783,1.996,806,2.196,844,3.119,905,3.296,957,1.826,1019,1.913,1107,2.301,1345,1.307,1353,1.59,1583,2.156,1750,1.461,1843,1.561,1852,1.391,1865,2.456,1948,3.232,2037,1.933,2095,1.307,2487,2.097,2632,4.022,2633,3.797,2636,2.939,2640,1.795,2645,3.433,2646,1.933,2647,2.846,2648,2.301,2649,4.768,2659,1.543,2663,5.715,2849,3.777,3106,1.859,3259,2.783,3262,2.763,3339,4.706,3429,2.097,3451,4.784,3720,5.587,3721,2.758,3752,2.125,3771,5.801,3775,3.64,3776,6.101,3777,5.18,3778,6.137,3779,6.678,3780,3.64,3791,6.394,4052,1.933,4205,1.11,4217,2.069,4281,1.439,4882,2.069,4883,2.125,4989,2.47,5017,1.996,6469,4.549,6508,2.044,6511,3.269,6522,4.303,6523,1.842,6535,2.579,6539,2.345,6541,2.223,6542,2.156,6543,2.044,6544,1.974,6560,5.038,6757,2.044,6758,2.188,6831,2.579,6854,1.78,6864,2.125,6869,2.448,7935,5.038,8091,2.394,9603,2.097,11044,2.301,11894,2.261,11914,2.261,12048,2.661,12284,2.661,12304,5.884,12305,2.661,12323,5.884,12324,2.661,12435,2.394,12438,3.84,12439,2.448,12440,2.394,12441,2.881,12442,3.294,12443,2.881,12444,2.758,12445,2.881,12446,2.881,12447,2.881,12448,2.881,12449,2.881,12450,5.989,12451,5.531,12452,5.362,12453,2.881,12454,2.881,12455,2.758,12456,2.881,12457,2.881,12458,2.881,12459,2.758,12460,8.202,12461,2.881,12462,2.509,12463,2.661,12464,4.717,12465,6.923,12466,4.356,12467,6.923,12468,2.881,12469,2.881,12470,2.881,12471,4.717,12472,2.881,12473,2.881,12474,2.881,12475,2.881,12476,2.881,12477,2.881,12478,2.881,12479,2.881,12480,2.881,12481,2.881,12482,2.881,12483,2.881,12484,4.717,12485,2.881,12486,2.881,12487,2.509,12488,2.881,12489,2.881,12490,2.881,12491,2.881,12492,2.881,12493,2.881,12494,4.717,12495,2.881,12496,2.881,12497,4.717,12498,2.881,12499,4.717,12500,2.579,12501,2.758,12502,2.881,12503,6.923,12504,5.989,12505,4.516,12506,2.661,12507,5.989,12508,2.881,12509,5.989,12510,2.758,12511,4.717,12512,2.881,12513,2.881,12514,2.881,12515,5.989,12516,2.881,12517,4.717,12518,2.758,12519,2.881,12520,2.881,12521,6.923,12522,2.881,12523,2.881,12524,2.881,12525,2.881,12526,2.881,12527,2.881,12528,2.881,12529,4.717,12530,2.881,12531,2.881,12532,4.717,12533,2.881,12534,2.881,12535,2.881,12536,2.881,12537,2.758,12538,2.881,12539,6.923,12540,2.881,12541,2.881,12542,2.881,12543,2.881,12544,2.881,12545,2.881,12546,2.881,12547,2.881,12548,2.881,12549,2.881]],["title/interfaces/ITaskProperties.html",[334,0.731,12438,4.842]],["body/interfaces/ITaskProperties.html",[3,0.018,4,0.018,5,0.009,7,0.114,30,0.001,31,0.422,32,0.184,33,0.672,47,0.912,55,2.417,83,3.058,95,0.097,99,1.256,101,0.02,103,0.001,104,0.001,111,2.397,165,0.783,188,4.896,192,3.563,334,1.337,336,1.801,347,2.782,379,1.706,404,2.154,461,2.985,844,5.445,2633,4.795,2647,6.31,2659,5.601,2849,5.171,3259,5.159,3262,3.857,3720,6.747,3752,4.857,3771,5.001,3775,5.081,3776,5.259,3777,4.927,3778,4.927,3779,5.361,3780,5.081,5017,6.058,6854,6.461,7935,7.61,12433,9.744,12434,6.081,12435,5.472,12436,5.596,12437,5.596,12438,7.118,12439,8.887,12440,8.69]],["title/interfaces/ITaskStatus.html",[334,0.731,3771,4.517]],["body/interfaces/ITaskStatus.html",[3,0.019,4,0.019,5,0.01,7,0.122,30,0.001,31,0.453,32,0.18,47,0.93,55,2.93,83,3.205,95,0.104,99,1.35,101,0.021,103,0.001,104,0.001,111,1.621,165,0.821,188,4.292,192,2.41,334,1.368,336,1.935,347,2.811,379,1.833,404,2.094,461,2.658,844,4.772,2633,5.026,2647,5.529,2659,3.788,2849,4.531,3259,5.407,3262,4.144,3720,4.564,3752,5.218,3771,6.96,3775,8.297,3776,8.588,3777,8.045,3778,8.045,3779,8.754,3780,8.297,5017,6.349,6854,4.371,7935,5.147,12433,9.626,12434,6.532,12435,5.878,12436,6.011,12437,6.011,12438,5.759,12439,6.011,12440,5.878]],["title/interfaces/ITaskUpdate.html",[334,0.731,12436,5.055]],["body/interfaces/ITaskUpdate.html",[3,0.02,4,0.02,5,0.01,7,0.128,30,0.001,31,0.474,32,0.161,33,0.605,47,0.986,55,2.557,83,3.299,95,0.109,99,1.412,101,0.021,103,0.001,104,0.001,111,1.696,165,0.845,188,4.385,192,2.521,334,1.387,336,2.025,347,2.67,379,1.917,404,2.253,461,2.716,844,4.912,2633,6.195,2647,5.692,2659,3.963,2849,4.664,3259,5.566,3262,4.335,3720,4.775,3752,5.459,3771,5.621,3775,5.71,3776,5.911,3777,5.537,3778,5.537,3779,6.025,3780,5.71,5017,7.827,6854,4.573,7935,5.385,12433,10.112,12434,6.834,12435,6.15,12436,8.017,12437,6.289,12438,6.025,12439,6.289,12440,6.15]],["title/interfaces/ITeamProperties.html",[334,0.731,12550,5.324]],["body/interfaces/ITeamProperties.html",[0,0.329,3,0.017,4,0.017,5,0.009,7,0.108,30,0.001,31,0.685,32,0.131,33,0.467,39,1.926,47,0.835,62,4.197,72,3.241,95,0.157,96,2.643,101,0.02,103,0.001,104,0.001,111,1.434,144,3.008,165,0.757,192,2.879,227,1.134,234,1.161,240,3.064,334,1.038,336,1.712,369,1.587,380,2.053,398,2.108,399,3.833,400,3.157,402,2.965,404,1.289,405,2.574,406,2.327,415,5.911,461,2.997,496,5.322,728,4.183,844,5.741,1858,3.747,2095,2.838,2181,5.2,2574,5.645,2632,3.294,3584,4.828,4205,2.411,4271,5.264,4281,3.125,4282,6.485,4285,8.565,4989,5.602,6521,4.386,6523,4.001,6544,4.287,6847,4.336,6885,4.682,10050,5.2,10051,5.2,11314,5.2,11315,5.45,11936,4.752,12550,8.565,12551,5.991,12552,8.891,12553,9.331,12554,5.602,12555,7.803,12556,5.991,12557,5.991,12558,5.991,12559,5.991,12560,5.991,12561,5.602,12562,5.991,12563,5.991]],["title/interfaces/ITeamUserProperties.html",[334,0.731,12555,5.493]],["body/interfaces/ITeamUserProperties.html",[0,0.327,3,0.017,4,0.017,5,0.009,7,0.107,30,0.001,31,0.538,32,0.148,39,1.909,47,0.685,62,4.16,72,3.212,95,0.157,96,2.627,101,0.019,103,0.001,104,0.001,111,1.421,144,2.994,165,0.752,192,3.634,227,1.129,234,1.151,240,3.046,334,1.032,336,1.697,369,1.574,380,2.04,398,2.089,399,3.81,400,3.129,402,2.939,404,1.278,405,2.559,406,2.306,415,5.885,461,3.137,496,5.709,728,4.164,844,5.956,1858,3.714,2095,2.813,2181,5.154,2574,5.619,2632,3.265,3584,4.786,4205,2.39,4271,5.233,4281,3.097,4282,6.456,4285,8.526,4989,5.585,6521,4.347,6523,3.966,6544,4.25,6847,4.297,6885,4.641,10050,5.154,10051,5.154,11314,5.154,11315,5.402,11936,4.711,12550,7.519,12551,5.938,12552,6.98,12553,8.952,12554,5.552,12555,8.795,12556,5.938,12557,5.938,12558,5.938,12559,5.938,12560,5.938,12561,5.552,12562,5.938,12563,5.938]],["title/interfaces/IToolFeatures.html",[334,0.731,8517,5.181]],["body/interfaces/IToolFeatures.html",[0,0.3,3,0.021,4,0.021,5,0.011,7,0.133,30,0.001,32,0.178,47,0.905,55,2.733,95,0.113,101,0.02,103,0.001,104,0.001,108,5.118,165,0.867,217,1.147,319,2.634,334,0.947,336,2.109,347,2.845,627,2.704,2130,3.849,2131,4.307,2132,4.152,3859,4.928,8517,9.217,8519,8.431,8791,11.434,8824,11.434,11577,5.947,12564,12.085,12565,12.085,12566,12.085,12567,8.146,12568,7.38,12569,8.146,12570,8.146,12571,8.146,12572,8.146,12573,7.38]],["title/interfaces/IToolLaunchParams.html",[155,5.324,334,0.731]],["body/interfaces/IToolLaunchParams.html",[3,0.023,4,0.023,5,0.012,7,0.144,30,0.001,32,0.17,95,0.161,101,0.016,103,0.001,104,0.001,108,5.543,139,7.639,140,7.336,155,9.103,158,6.795,165,0.911,192,2.844,199,3.606,200,3.905,201,6.379,210,6.245,334,1.025,336,2.284,12574,8.821,12575,9.542]],["title/interfaces/IToolLaunchStrategy.html",[212,5.694,334,0.731]],["body/interfaces/IToolLaunchStrategy.html",[3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,26,2.72,27,0.465,29,0.884,30,0.001,31,0.632,32,0.153,33,0.546,35,1.366,36,2.419,39,2.448,95,0.158,99,1.517,101,0.015,103,0.001,104,0.001,108,7.127,122,9.449,123,9.449,155,10.047,160,9.538,170,7.613,171,9.449,175,8.737,185,4.768,208,3.396,209,3.004,210,8.398,211,7.613,212,9.449,334,0.977,336,2.175,12574,11.342,12576,9.09,12577,9.09,12578,11.283,12579,9.09]],["title/interfaces/IUserConfig.html",[334,0.731,12232,5.493]],["body/interfaces/IUserConfig.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,47,0.933,101,0.018,103,0.001,104,0.001,165,0.966,334,1.132,336,2.523,11577,7.114,12232,9.965,12238,12.466,12580,10.541]],["title/interfaces/IUserProperties.html",[334,0.731,12581,5.493]],["body/interfaces/IUserProperties.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.195,30,0.001,32,0.177,33,0.648,34,0.849,47,0.995,83,3.905,95,0.137,96,1.365,101,0.015,103,0,104,0,116,1.555,165,0.908,192,3.553,214,1.574,217,1.166,227,0.518,234,1.455,240,4.225,305,1.422,334,0.803,336,1.194,347,2.012,369,2.864,370,4.251,380,1.904,394,2.843,398,1.47,399,2.965,400,2.202,402,2.069,404,0.899,405,1.33,406,1.623,461,1.142,496,4.498,844,5.093,851,5.332,852,5.332,853,5.771,854,5.611,1019,2.899,1031,1.564,1180,4.281,1843,2.366,1849,4.496,1850,4.365,2632,4.126,2636,2.72,2640,4.073,3090,2.159,3110,5.942,4052,2.929,4198,7.443,4199,8.116,4205,1.682,4210,7.026,4293,3.908,4294,3.71,4989,3.423,6511,4.53,6521,3.06,6543,3.097,6544,2.991,6871,2.959,6872,3.06,7299,5.694,9538,3.316,9539,3.628,9540,3.316,9541,3.628,9542,3.803,9543,4.032,9876,8.116,9938,4.032,9942,4.18,11801,4.032,11802,4.032,11803,4.032,12040,4.18,12160,4.18,12161,4.032,12162,4.18,12163,4.032,12165,4.18,12169,6.259,12170,4.032,12183,7.311,12209,3.908,12210,3.71,12554,3.908,12581,7.237,12582,4.614,12583,8.342,12584,8.116,12585,7.919,12586,8.342,12587,6.909,12588,6.909,12589,6.909,12590,4.18,12591,4.18,12592,4.614,12593,4.18,12594,4.614,12595,4.18,12596,4.614,12597,4.18,12598,4.614,12599,4.18,12600,4.614,12601,4.614,12602,6.909]],["title/interfaces/IVideoConferenceSettings.html",[334,0.731,12603,5.947]],["body/interfaces/IVideoConferenceSettings.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.172,47,0.903,95,0.126,101,0.02,103,0.001,104,0.001,165,0.924,217,1.272,334,1.05,336,2.339,347,2.562,1308,7.973,2049,5.044,2065,8.071,2249,10.627,8012,5.466,11580,8.549,12603,10.317,12604,9.774,12605,11.506,12606,9.035,12607,9.774]],["title/classes/IdParams.html",[0,0.232,12608,5.947]],["body/classes/IdParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,34,2.286,47,0.837,95,0.151,101,0.016,103,0.001,104,0.001,165,0.92,361,6.51,364,1.767,368,4.601,369,2.606,370,3.869,371,3.238,374,3.097,376,2.22,379,2.199,467,3.081,470,4.912,479,7.213,3580,4.781,5442,6.69,12608,10.271,12609,9.703,12610,9.703]],["title/interfaces/IdToken.html",[334,0.731,348,4.45]],["body/interfaces/IdToken.html",[3,0.021,4,0.021,5,0.011,7,0.136,30,0.001,31,0.716,32,0.182,33,0.675,39,3.444,47,1.021,101,0.019,103,0.001,104,0.001,165,0.879,334,1.205,336,2.156,348,7.344,350,7.545,361,4.994,853,6.601,4205,4.311,5698,4.584,6473,7.429,11059,10.711,11060,8.328,11061,7.88,11062,11.187]],["title/classes/IdTokenCreationLoggableException.html",[0,0.232,12611,5.947]],["body/classes/IdTokenCreationLoggableException.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.671,30,0.001,31,0.48,32,0.148,33,0.414,34,1.457,35,1.037,39,3.382,47,0.945,59,2.669,95,0.14,101,0.014,103,0.001,104,0.001,111,1.718,127,1.073,163,2.637,187,1.239,209,2.832,214,3.428,215,2.735,216,2.01,217,1.115,227,0.888,351,6.303,361,6.62,404,1.959,406,2.787,415,4.631,511,4.329,1216,4.679,1353,5.765,1464,5.5,1467,2.735,1469,6.22,3502,9.337,5527,7.921,5530,5.953,7773,6.528,8288,6.209,8745,5.027,8746,5.253,12338,5.881,12611,9.509,12612,11.942,12613,8.568,12614,8.568,12615,8.568,12616,8.568,12617,7.176,12618,7.921]],["title/injectables/IdTokenService.html",[105,0.91,12619,5.694]],["body/injectables/IdTokenService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.009,27,0.441,29,0.838,30,0.001,31,0.681,32,0.145,33,0.517,34,0.989,35,1.185,36,2.294,39,2.25,47,0.961,95,0.163,99,0.97,101,0.01,103,0,104,0,105,1.118,107,1.401,111,2.579,112,2.602,127,1.047,137,7.275,145,2.871,158,4.085,187,0.84,201,2.957,209,2.762,216,1.979,217,1.583,221,2.732,227,1.11,234,0.944,305,1.656,334,0.624,348,3.804,351,4.194,361,6.284,450,2.387,461,1.912,738,4.345,853,2.999,1852,2.454,1936,8.347,1961,4.061,3502,4.32,4205,1.959,4568,5.083,4570,5.083,4592,4.551,4593,2.937,4737,7.064,4756,4.695,5442,3.311,5530,6.062,5698,2.957,6473,5.684,6847,7.154,7074,5.938,7182,5.839,7271,3.606,7745,4.428,8540,4.867,8920,5.628,9647,8.347,9736,4.551,11059,9.494,11061,5.083,11062,8.559,11936,6.502,12611,5.083,12619,6.999,12620,10.48,12621,5.373,12622,8.357,12623,8.357,12624,8.357,12625,5.812,12626,9.535,12627,5.812,12628,8.357,12629,5.812,12630,8.357,12631,5.812,12632,8.357,12633,5.812,12634,5.812,12635,5.812,12636,5.812,12637,4.695,12638,5.083,12639,8.357,12640,5.373,12641,5.373,12642,5.812,12643,5.812,12644,5.812,12645,5.812,12646,4.551,12647,8.357,12648,5.812,12649,5.812,12650,5.812,12651,5.812,12652,5.812,12653,7.726]],["title/modules/IdentityManagementModule.html",[425,1.812,817,5.324]],["body/modules/IdentityManagementModule.html",[0,0.273,3,0.019,4,0.019,5,0.01,30,0.001,95,0.174,101,0.013,103,0.001,104,0.001,187,1.158,425,3.082,427,2.892,428,3.111,429,3.204,430,3.19,431,3.176,432,3.83,433,4.371,442,4.165,443,3.137,444,3.062,449,4.13,773,5.096,788,10.849,803,6.459,817,10.868,836,6.046,1155,4.65,2800,8.015,3917,7.025,7862,7.401,7863,8.717,8255,9.458,8374,7.93,11585,4.561,12000,6.269,12654,8.006,12655,8.006,12656,8.006,12657,10.189,12658,10.51,12659,10.517,12660,7.401,12661,8.717,12662,6.467,12663,7.003,12664,8.006,12665,8.717,12666,10.409,12667,8.717]],["title/classes/IdentityManagementOauthService.html",[0,0.232,12659,5.324]],["body/classes/IdentityManagementOauthService.html",[0,0.252,2,0.824,3,0.017,4,0.017,5,0.009,7,0.112,8,1.193,9,6.363,27,0.458,29,0.579,30,0.001,31,0.414,32,0.1,33,0.357,35,1.635,36,2.728,47,0.941,51,5.764,78,9.191,87,6.385,94,5.764,95,0.095,101,0.012,103,0.001,104,0.001,145,2.5,154,6.122,204,2.507,264,4.149,369,2.191,371,2.723,379,1.675,494,5.917,803,7.364,1129,6.825,1178,6.37,1588,6.898,1605,7.036,2299,5.969,2461,7.495,5442,7.615,7995,7.339,11352,8.635,11585,6.76,11615,8.451,12000,9.293,12659,7.731,12668,6.831,12669,10.97,12670,10.97,12671,9.127,12672,7.39,12673,7.39,12674,9.127,12675,7.39,12676,5.63,12677,7.39]],["title/classes/IdentityManagementService.html",[0,0.232,788,5.493]],["body/classes/IdentityManagementService.html",[0,0.126,2,0.414,3,0.009,4,0.009,5,0.004,7,0.056,8,0.717,9,6.437,27,0.481,29,0.931,30,0.001,31,0.686,32,0.164,33,0.575,34,2.167,35,1.574,36,2.805,39,2.667,47,0.984,51,4.122,55,1.279,56,1.779,59,1.849,70,1.837,85,6.972,87,6.142,94,6.797,95,0.048,98,2.199,99,0.619,101,0.01,103,0,104,0,144,3.27,145,1.88,163,1.827,167,2.185,234,1.378,264,5.309,347,0.75,379,2.59,403,7.072,461,2.615,484,5.193,485,5.193,493,4.524,500,5.824,511,3,524,6.215,549,7.416,693,3.263,701,3.501,728,3.787,750,2.996,788,4.796,803,5.266,883,2.519,1005,4.228,1184,6.591,1396,4.834,1588,4.148,1857,6.466,1858,3.11,1947,8.462,2412,3.779,2794,5.032,2800,5.554,2801,7.695,2925,5.086,4052,6.34,4517,5.193,4669,4.649,7864,3.244,11585,6.773,11726,5.193,11742,7.107,12000,9.31,12678,5.489,12679,5.489,12680,5.489,12681,5.489,12682,7.845,12683,6.863,12684,6.863,12685,5.489,12686,5.489,12687,5.489,12688,9.614,12689,3.709,12690,10.806,12691,5.937,12692,3.709,12693,5.489,12694,3.709,12695,8.486,12696,5.489,12697,5.489,12698,3.709,12699,5.489,12700,5.937,12701,3.709,12702,5.489,12703,7.845,12704,3.709,12705,3.709,12706,3.429,12707,9.989,12708,3.709,12709,8.582,12710,11.57,12711,3.429,12712,7.845,12713,3.709,12714,5.937,12715,3.709,12716,5.937,12717,3.709,12718,2.904]],["title/entities/ImportUser.html",[380,1.445,12017,4.842]],["body/entities/ImportUser.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,27,0.509,30,0.001,31,0.375,32,0.174,33,0.446,47,0.945,49,1.699,95,0.136,96,1.181,101,0.015,103,0,104,0,111,0.866,144,2.253,145,2.075,165,0.828,167,2.462,192,3.394,200,1.345,214,1.361,217,1.066,227,0.694,234,0.701,240,3.971,247,3.211,305,1.23,319,2.449,334,0.719,347,1.657,355,2.689,364,2.25,369,2.778,370,3.041,371,1.845,380,1.422,381,1.436,394,5.69,398,1.272,399,2.655,400,1.905,402,1.789,404,0.778,405,1.15,406,1.404,444,1.651,461,2.896,472,2.914,575,2.588,577,5.209,701,1.526,728,2.559,844,3.732,851,4.401,852,4.401,853,5.453,854,5.012,905,1.798,1031,2.892,1166,2.071,1804,6.053,1852,1.823,2257,2.617,2283,3.776,2462,7.26,2463,3.616,2630,5.148,2632,5.076,2634,7.032,2642,3.138,2710,3.776,2925,4.011,3104,4.181,3110,3.336,4205,2.255,4210,6.275,4293,3.381,4294,3.209,4309,4.765,4571,2.353,4771,3.289,4989,3.753,5987,3.074,6499,3.776,6511,4.056,6521,2.647,6523,2.415,6543,2.679,6751,4.516,6864,4.318,6871,2.56,6872,2.647,7483,3.016,7574,4.675,8469,4.429,8470,3.209,8471,3.381,9538,2.868,9539,3.138,9540,2.868,9541,3.138,9542,3.289,9543,3.487,9718,2.868,9719,2.914,10298,3.289,10658,6.449,10659,5.624,10677,4.675,10678,3.074,10679,2.617,10687,5.604,11310,3.616,11314,3.138,12005,5.604,12006,11.571,12007,7.032,12008,8.678,12009,6.23,12010,8.068,12011,7.228,12012,3.289,12013,3.776,12014,3.776,12015,3.991,12016,3.616,12017,4.765,12018,3.991,12019,3.991,12020,3.991,12021,3.991,12022,3.991,12023,3.991,12024,3.991,12025,3.991,12026,5.604,12027,3.991,12028,5.604,12029,3.616,12030,7.456,12031,3.991,12032,3.991,12033,3.991,12034,3.616,12035,3.289,12036,3.991,12037,3.991,12038,3.991,12039,3.991,12040,5.604,12041,3.616,12042,7.032,12043,6.861,12044,7.167,12045,3.991,12046,6.186,12047,3.991,12048,3.487,12049,5.604,12050,3.991,12719,4.317,12720,4.317,12721,4.317,12722,4.317,12723,4.317,12724,4.317,12725,4.317,12726,4.317,12727,6.692,12728,4.317,12729,4.317,12730,4.317,12731,4.317,12732,4.317]],["title/controllers/ImportUserController.html",[481,2.611,12733,5.947]],["body/controllers/ImportUserController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.814,10,1.759,27,0.471,29,0.895,30,0.001,31,0.64,32,0.155,33,0.553,35,1.383,36,2.771,56,4.451,59,1.358,70,4.594,95,0.151,99,0.728,100,1.46,101,0.007,103,0,104,0,111,0.874,112,2.978,185,4.122,187,0.63,215,1.391,216,1.247,217,1.707,221,2.645,227,1.04,234,1.095,264,3.899,277,4.281,347,1.667,364,2.081,376,0.997,447,1.807,461,0.997,469,1.914,481,1.674,483,2.079,491,6.672,513,6.876,529,5.208,543,4.195,552,2.813,555,2.266,556,2.319,561,2.337,701,3.28,1008,3.644,1016,4.206,1028,7.727,1345,1.73,1750,3.657,2908,6.943,2929,2.507,2930,2.337,4476,5.229,5880,3.916,6612,7.181,6902,4.997,9148,6.659,10655,7.77,10693,7.77,12017,3.104,12733,5.897,12734,11.728,12735,4.359,12736,4.359,12737,6.742,12738,8.244,12739,8.244,12740,8.244,12741,6.742,12742,8.244,12743,8.244,12744,8.244,12745,4.359,12746,6.742,12747,4.359,12748,4.359,12749,7.77,12750,4.359,12751,4.359,12752,6.742,12753,4.359,12754,4.359,12755,10.479,12756,6.742,12757,4.359,12758,4.359,12759,6.233,12760,4.359,12761,4.359,12762,8.115,12763,6.742,12764,4.359,12765,4.359,12766,8.577,12767,6.742,12768,4.359,12769,4.359,12770,8.115,12771,6.742,12772,4.359,12773,3.813,12774,4.359,12775,4.359,12776,3.651,12777,4.03,12778,3.813,12779,8.577,12780,3.813,12781,4.03,12782,3.651,12783,3.521,12784,5.646,12785,4.359,12786,4.359,12787,3.521,12788,3.813,12789,4.359,12790,4.359,12791,4.359,12792,4.359,12793,5.646,12794,4.359,12795,4.359,12796,4.359,12797,4.359,12798,8.244,12799,4.359,12800,8.244,12801,4.359,12802,4.359,12803,4.359,12804,4.359,12805,4.359,12806,4.359,12807,4.359,12808,4.03,12809,4.359,12810,4.359,12811,4.359,12812,4.359,12813,4.359,12814,4.359,12815,4.359]],["title/classes/ImportUserFactory.html",[0,0.232,12816,6.286]],["body/classes/ImportUserFactory.html",[0,0.159,2,0.522,3,0.011,4,0.011,5,0.006,7,0.071,8,0.86,27,0.531,29,1.017,30,0.001,31,0.695,32,0.179,33,0.6,34,1.466,35,1.45,47,0.615,55,2.444,59,3.228,95,0.14,99,0.782,101,0.008,103,0,104,0,127,0.587,138,3.112,144,3.215,148,1.441,165,0.558,185,4.825,192,1.396,216,1.317,217,0.927,227,0.739,319,3.494,359,2.484,366,2.619,371,1.292,379,1.954,380,2.202,381,2.37,404,1.284,461,2.739,538,3.21,596,3.886,627,2.186,660,7.194,661,4.587,662,5.437,665,4.02,666,5.437,667,5.677,668,4.02,669,4.02,670,4.02,671,3.949,672,4.417,673,4.865,674,6.235,675,5.745,676,7.019,677,2.668,682,2.643,683,4.02,684,2.668,685,5.084,686,5.249,687,4.106,688,4.936,689,3.984,690,2.643,691,3.789,692,4.077,693,2.574,694,2.531,695,2.643,696,5.008,697,2.668,698,4.779,699,2.643,700,7.105,701,4.134,702,6.599,703,2.668,704,4.269,705,2.643,706,2.668,707,2.643,708,2.668,709,2.643,710,2.981,711,2.777,712,2.643,713,6.05,714,2.668,715,2.643,716,4.02,717,3.76,718,4.02,719,2.668,720,2.552,721,2.531,722,2.088,723,2.643,724,2.643,725,2.643,726,2.668,727,2.668,728,1.791,729,2.643,730,2.668,731,3.406,732,2.643,733,2.668,735,2.72,736,2.777,737,2.807,775,2.872,851,2.233,852,2.233,853,2.417,854,2.35,1187,2.233,1188,2.207,1189,2.207,1190,2.335,1191,2.552,1192,3.214,1345,1.858,3104,2.122,3846,6.231,4210,2.943,4571,2.552,6736,3.668,6737,3.783,6746,3.668,9719,3.161,9913,3.272,10658,3.272,12005,3.922,12007,3.568,12008,5.427,12009,3.161,12010,7.781,12011,5.578,12017,3.335,12816,7.969,12817,7.124,12818,4.684,12819,7.124,12820,4.684,12821,6.585,12822,4.096,12823,4.684,12824,4.684,12825,4.684,12826,4.684,12827,4.684,12828,4.684,12829,4.096,12830,4.684]],["title/classes/ImportUserListResponse.html",[0,0.232,12782,5.694]],["body/classes/ImportUserListResponse.html",[0,0.338,2,0.948,3,0.014,4,0.014,5,0.007,7,0.09,27,0.472,29,0.466,30,0.001,31,0.476,32,0.178,33,0.553,34,1.012,47,0.816,55,2.912,56,5.708,59,2.647,70,5.891,94,2.89,95,0.153,101,0.014,103,0,104,0,127,0.745,145,1.506,163,3.521,165,0.666,167,2.189,192,1.773,200,3.563,208,2.223,347,1.203,355,2.391,364,1.97,369,2.2,371,1.641,374,1.899,375,3.237,376,1.361,379,2.838,404,1.531,405,1.585,461,2.865,467,3.344,469,2.612,470,4.524,475,2.908,496,2.512,538,2.681,577,3.358,596,3.299,717,3.14,731,2.35,851,4.052,852,4.052,1000,3.46,1007,7.509,1008,6.43,1009,4.841,1011,3.006,1013,4.541,1014,2.837,1015,3.327,1016,2.089,1017,4.156,1018,5.484,1019,4.936,1020,3.894,1021,3.164,1022,4.156,1023,4.156,1025,3.738,1026,3.298,1031,1.864,1187,2.837,1188,2.803,1189,2.803,1190,2.965,1191,3.242,1639,3.787,1865,2.71,1950,4.237,2045,4.156,2884,3.164,2885,3.164,3104,4.9,3105,3.787,3106,3.358,3110,2.965,4476,3.789,5022,3.787,5477,3.787,7810,3.648,9538,3.952,9539,4.325,9540,3.952,9541,4.325,10293,4.753,10658,4.156,10659,4.083,10678,4.237,10679,3.606,10691,4.422,11317,4.806,11714,3.692,12007,4.533,12009,4.015,12028,4.982,12029,4.982,12782,7.117,12783,10.116,12831,7.433,12832,5.949,12833,5.949,12834,7.764,12835,5.5,12836,7.554,12837,5.5,12838,5.5,12839,4.982,12840,4.982,12841,4.982,12842,4.982,12843,5.5,12844,5.5,12845,7.856,12846,5.5,12847,4.806,12848,5.5,12849,5.5,12850,4.659,12851,5.5]],["title/classes/ImportUserMapper.html",[0,0.232,12773,5.947]],["body/classes/ImportUserMapper.html",[0,0.221,2,0.724,3,0.015,4,0.015,5,0.008,7,0.098,8,1.092,27,0.429,29,0.815,30,0.001,31,0.583,32,0.141,33,0.503,35,1.259,95,0.161,99,1.084,100,3.765,101,0.011,103,0.001,104,0.001,145,2.634,167,3.827,187,0.939,217,1.539,227,1.166,234,1.468,305,1.851,307,4.082,309,5.201,319,1.941,369,2.007,461,2.068,496,2.743,529,2.823,558,3.116,627,3.991,851,3.098,852,3.098,975,5.012,982,3.238,1750,4.011,2643,5.252,3015,7.732,4476,5.014,5209,4.316,7064,5.682,9116,8.359,9145,8.359,9148,7.304,9149,8.806,9204,5.682,10655,9.418,10658,4.538,10659,4.458,12007,4.949,12009,4.384,12017,8.717,12051,9.084,12749,9.418,12773,7.909,12776,5.44,12778,7.909,12783,9.084,12808,6.005,12847,5.247,12852,11.246,12853,9.042,12854,9.042,12855,6.496,12856,6.496,12857,9.042,12858,6.496,12859,5.087,12860,6.005,12861,5.44,12862,5.682,12863,6.496,12864,6.496,12865,6.496,12866,6.496,12867,6.496,12868,6.496,12869,6.496,12870,6.496,12871,6.496,12872,6.496,12873,6.496,12874,6.496,12875,6.005,12876,9.042,12877,6.496,12878,6.496,12879,6.005,12880,6.496,12881,6.496,12882,6.005,12883,6.496,12884,6.496,12885,6.496,12886,6.496,12887,6.496,12888,6.496,12889,6.496,12890,6.496,12891,6.496,12892,6.496,12893,6.496,12894,6.496,12895,6.496,12896,6.496,12897,6.496,12898,6.496]],["title/classes/ImportUserMatchMapper.html",[0,0.232,12861,5.694]],["body/classes/ImportUserMatchMapper.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,27,0.449,29,0.854,30,0.001,31,0.611,32,0.148,33,0.527,35,1.32,95,0.14,99,1.436,101,0.014,103,0.001,104,0.001,227,1.346,305,2.451,307,5.407,309,6.27,319,2.572,529,3.74,577,7.326,627,4.069,982,4.289,4476,5.335,7810,5.276,10668,11.63,12010,10.712,12053,10.021,12861,9.13,12899,8.605,12900,10.901,12901,10.901,12902,10.901,12903,8.605,12904,10.901,12905,8.605,12906,10.466,12907,8.605,12908,7.955,12909,8.605,12910,7.955,12911,8.605,12912,7.955,12913,6.738,12914,8.605,12915,8.605,12916,8.605,12917,8.605]],["title/modules/ImportUserModule.html",[425,1.812,12918,5.493]],["body/modules/ImportUserModule.html",[0,0.257,3,0.018,4,0.018,5,0.009,30,0.001,52,3.575,94,3.663,95,0.17,101,0.013,103,0.001,104,0.001,187,1.091,191,4.181,192,2.248,200,2.349,425,3.188,427,2.724,428,2.931,429,3.018,430,3.005,431,2.992,432,4.133,433,3.782,437,9.113,438,5.995,441,7.67,442,4.004,443,2.955,444,2.884,447,4.148,449,3.971,450,3.098,461,1.725,823,9.303,836,4.381,1467,2.407,1554,8.941,1820,4.68,1878,6.917,1920,4.801,2280,4.296,2630,4.739,2794,4.472,3090,3.262,4476,3.363,5333,8.146,7801,5.906,10862,5.906,12733,9.824,12779,11.831,12780,6.596,12781,6.972,12918,11.504,12919,7.542,12920,7.542,12921,7.542,12922,11.193,12923,7.542,12924,7.542,12925,7.542,12926,7.542,12927,5.176]],["title/injectables/ImportUserRepo.html",[105,0.91,12922,5.947]],["body/injectables/ImportUserRepo.html",[0,0.172,3,0.012,4,0.012,5,0.006,7,0.076,8,0.91,10,3.039,12,3.449,18,3.804,26,2.119,27,0.504,29,0.936,30,0.001,31,0.67,32,0.163,33,0.578,34,1.533,35,1.447,36,2.743,40,3.635,49,1.983,56,2.418,58,3.253,59,2.345,94,3.657,95,0.144,96,2.06,97,2.18,98,2.989,99,0.841,101,0.008,103,0,104,0,105,1.007,107,1.215,111,1.807,112,2.972,144,1.386,167,4.4,187,0.729,192,2.979,217,1.591,221,2.692,227,1.109,234,1.463,277,3.039,305,1.436,319,1.507,369,1.119,380,1.071,381,2.505,398,1.485,404,1.357,461,2.796,496,2.128,529,3.917,596,3.049,692,4.719,701,4.227,807,4.66,844,5.298,877,6.824,883,3.194,884,3.548,885,4.554,908,3.091,909,3.128,910,3.091,911,3.128,913,3.091,914,3.128,915,2.795,919,3.841,964,3.46,1639,4.793,1947,3.947,2144,4.25,2394,5.928,3090,2.18,3110,3.753,3427,3.46,3846,6.586,5022,3.209,5880,4.373,5882,3.522,6612,3.021,6901,6.418,6902,7.049,6912,5.597,6930,6.586,6931,3.664,6932,3.664,12016,6.306,12017,7.992,12051,8.075,12875,4.66,12913,3.947,12922,6.586,12928,5.041,12929,7.53,12930,9.013,12931,9.013,12932,7.53,12933,7.53,12934,5.041,12935,5.041,12936,5.041,12937,5.041,12938,5.041,12939,5.041,12940,7.53,12941,5.041,12942,6.586,12943,5.041,12944,7.883,12945,5.041,12946,5.041,12947,5.041,12948,5.041,12949,5.041,12950,5.041,12951,5.041,12952,5.041,12953,5.041,12954,5.041,12955,5.041,12956,5.041,12957,5.041,12958,5.041,12959,5.041,12960,5.041,12961,5.041,12962,5.041,12963,5.041,12964,5.041,12965,7.53,12966,5.041,12967,7.53,12968,5.041,12969,5.041,12970,5.041,12971,5.041,12972,5.041,12973,5.041]],["title/classes/ImportUserResponse.html",[0,0.232,12783,5.493]],["body/classes/ImportUserResponse.html",[0,0.321,2,1.05,3,0.013,4,0.013,5,0.007,7,0.082,27,0.514,29,0.426,30,0.001,31,0.528,32,0.178,33,0.456,34,1.354,47,0.904,55,2.029,56,3.819,70,3.942,94,3.867,95,0.153,101,0.013,103,0,104,0,127,0.681,144,1.495,163,2.45,165,0.624,167,2,192,1.62,200,3.947,208,2.031,319,1.625,347,1.61,355,3.199,364,2.226,369,2.301,371,2.195,374,1.735,375,3.032,376,1.243,379,2.825,404,0.979,405,2.121,461,3.026,467,3.271,469,2.386,470,4.338,475,2.657,479,7.003,496,2.295,538,3.587,577,5.317,595,1.82,717,2.869,731,2.148,851,5.264,852,5.264,1000,3.241,1007,4.881,1008,2.938,1009,3.096,1013,4.314,1025,3.415,1026,3.013,1031,2.495,1187,2.592,1188,2.561,1189,2.561,1190,2.709,1191,2.962,1403,3.013,1639,5.068,1865,3.626,1950,3.871,2045,3.798,2884,4.234,2885,4.234,3104,5.398,3105,5.068,3106,4.493,3110,3.968,4476,5.649,5022,5.068,5477,5.068,7043,5.025,7810,4.881,9538,3.611,9539,3.951,9540,3.611,9541,3.951,10293,5.8,10658,6.581,10659,6.465,10678,5.669,10679,4.825,10691,5.918,11317,4.391,11714,4.94,12007,7.177,12009,6.358,12028,4.552,12029,4.552,12782,4.552,12783,9.87,12831,11.083,12834,8.644,12835,5.025,12836,8.41,12837,5.025,12838,5.025,12839,4.552,12840,4.552,12841,4.552,12842,4.552,12843,5.025,12844,5.025,12845,7.359,12846,5.025,12847,7.609,12848,7.359,12849,7.359,12850,4.256,12851,5.025,12974,5.436,12975,5.436,12976,5.436,12977,5.436,12978,5.436,12979,5.436,12980,5.436,12981,5.436,12982,5.436]],["title/classes/ImportUserScope.html",[0,0.232,12944,5.947]],["body/classes/ImportUserScope.html",[0,0.148,2,0.75,3,0.01,4,0.01,5,0.005,7,0.066,8,0.812,27,0.523,29,0.955,30,0.001,31,0.71,32,0.17,33,0.589,34,1.144,35,1.475,39,1.17,47,0.882,49,1.71,95,0.136,96,1.84,97,1.879,99,0.725,101,0.007,103,0,104,0,111,2.124,144,1.85,148,1.337,165,0.527,167,3.027,192,2.452,217,1.438,227,1.3,234,1.336,247,1.703,277,4.831,305,2.344,307,2.73,309,5.761,319,2.459,347,1.664,355,2.703,369,2.533,398,1.28,404,1.212,461,2.527,472,4.539,496,1.835,529,1.889,558,2.085,577,5.654,596,3.056,701,3.275,779,6.885,844,4.219,851,3.207,852,3.207,1174,6.733,1852,4.473,1854,6.153,1939,4.699,2384,5.551,2394,5.94,4205,1.464,4210,2.73,4309,4.789,4571,5.773,4661,3.549,5209,5.466,5406,4.173,5429,6.062,5991,4.539,5992,4.539,5993,4.539,5998,4.539,5999,4.539,6000,2.982,6001,2.933,6002,2.982,6003,2.982,6012,2.933,6013,4.539,6014,2.982,6015,2.933,6016,2.982,6017,2.933,6018,8.225,6901,4.789,7810,4.123,9718,4.468,9719,4.539,10658,5.748,10659,2.982,10677,3.036,10679,2.634,12007,3.311,12008,6.268,12009,5.553,12012,5.124,12017,3.094,12053,7.756,12859,3.403,12908,4.017,12910,4.017,12912,4.017,12913,5.266,12944,11.296,12983,4.345,12984,6.725,12985,6.725,12986,6.725,12987,6.725,12988,6.725,12989,6.725,12990,6.725,12991,6.725,12992,6.725,12993,6.725,12994,4.345,12995,6.725,12996,4.345,12997,6.725,12998,4.345,12999,6.725,13000,4.345,13001,6.217,13002,6.725,13003,4.345,13004,6.725,13005,4.345,13006,6.725,13007,4.345,13008,6.725,13009,4.345,13010,6.725,13011,4.345,13012,3.639,13013,4.017,13014,4.345,13015,4.017,13016,4.345,13017,4.345,13018,6.725,13019,4.345,13020,8.101,13021,8.562,13022,4.345,13023,6.725,13024,6.725,13025,6.725,13026,6.725,13027,4.345,13028,4.345,13029,4.345,13030,4.345,13031,4.345,13032,4.345,13033,4.345,13034,6.725,13035,4.345,13036,4.345,13037,5.432,13038,4.345,13039,4.345,13040,4.017]],["title/classes/ImportUserUrlParams.html",[0,0.232,12755,5.947]],["body/classes/ImportUserUrlParams.html",[0,0.393,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,27,0.389,30,0.001,32,0.128,34,1.963,47,0.823,95,0.148,101,0.016,103,0.001,104,0.001,165,0.904,200,3.595,359,4.024,364,1.718,368,4.522,369,2.561,370,3.802,371,3.183,374,3.01,376,2.157,379,2.137,461,2.973,467,3.028,472,7.79,769,6.843,1000,4.699,3795,5.533,4476,5.146,12017,8.219,12755,10.095,12831,10.095,12847,10.075,13041,9.431,13042,9.431]],["title/interfaces/InlineAttachment.html",[334,0.731,1488,5.055]],["body/interfaces/InlineAttachment.html",[3,0.021,4,0.021,5,0.011,7,0.134,30,0.001,31,0.496,32,0.12,47,1.017,77,5.634,101,0.015,103,0.001,104,0.001,165,0.869,334,1.456,336,2.118,404,2.359,1482,8.249,1483,6.743,1484,9.448,1485,9.973,1486,6.743,1487,4.95,1488,9.011,1489,6.434,1490,9.683,1491,6.434,1492,9.011,1493,6.743,1494,8.249,1495,8.454,1496,8.454,1497,8.249,1498,6.725,1499,6.579,1500,6.579,1501,6.743,1502,6.743]],["title/modules/InterceptorModule.html",[425,1.812,6427,5.694]],["body/modules/InterceptorModule.html",[0,0.294,3,0.02,4,0.02,5,0.01,30,0.001,95,0.162,101,0.014,103,0.001,104,0.001,163,3.364,187,1.25,217,1.125,227,0.896,234,1.403,379,1.958,425,2.913,427,3.122,432,3.18,558,4.146,704,6.239,728,4.18,789,8.247,801,5.019,836,6.349,837,6.154,839,4.121,1852,3.649,1959,4.709,2268,6.227,2471,7.154,3495,7.154,3937,8.913,6098,7.154,6427,9.154,6439,7.637,6440,10.487,6444,8.83,8370,6.584,8374,6.584,11372,6.154,11714,6.783,11928,7.237,13043,8.642,13044,8.83,13045,12.6,13046,9.154,13047,10.487,13048,7.989,13049,8.642]],["title/interfaces/IntrospectResponse.html",[334,0.731,13050,5.947]],["body/interfaces/IntrospectResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.189,33,0.694,47,1.025,51,5.85,55,2.901,101,0.013,103,0.001,104,0.001,165,0.793,277,4.861,334,0.824,336,1.836,337,5.359,347,2.291,359,3.949,1518,8.577,6161,8.577,6992,9.431,6994,9.431,7016,9.431,7017,9.431,11613,7.883,13050,8.852,13051,7.671,13052,11.134,13053,12.044,13054,12.044,13055,12.044,13056,12.044]],["title/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.232,13057,5.947]],["body/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.283,2,0.926,3,0.02,4,0.02,5,0.01,7,0.125,8,1.287,27,0.439,29,0.65,30,0.001,31,0.465,32,0.145,33,0.402,35,1.005,47,0.937,72,3.762,95,0.137,101,0.014,103,0.001,104,0.001,111,1.665,127,1.04,145,2.98,163,2.555,187,1.201,214,3.36,215,2.65,216,1.97,227,0.861,234,1.348,367,3.959,404,1.92,406,2.701,1216,3.253,1464,5.42,1465,6.073,1467,2.65,1469,6.148,1904,3.473,2049,6.073,2072,7.593,2074,10.793,2643,6.835,3144,6.502,3281,5.516,7773,6.326,8288,6.118,8289,6.36,8738,5.285,8745,4.872,8746,5.091,8754,6.954,8755,6.954,11944,8.748,13057,9.321,13058,11.768,13059,11.768,13060,8.303,13061,8.303,13062,6.502,13063,7.262,13064,8.303,13065,8.303]],["title/classes/IservMapper.html",[0,0.232,13066,5.947]],["body/classes/IservMapper.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.852,30,0.001,31,0.669,32,0.148,33,0.526,35,1.316,95,0.14,99,1.43,100,2.869,101,0.014,103,0.001,104,0.001,189,6.963,227,1.127,234,1.765,627,4.065,851,4.086,852,4.086,853,4.422,854,5.456,3110,4.271,4571,6.845,7074,6.79,8450,9.337,8452,5.384,9534,9.131,12009,8.478,13066,9.509,13067,11.942,13068,8.568,13069,10.05,13070,10.05,13071,10.872,13072,8.568,13073,6.921,13074,10.872,13075,8.568,13076,8.568,13077,7.921,13078,7.921,13079,8.568,13080,8.568,13081,8.568,13082,7.921]],["title/injectables/IservProvisioningStrategy.html",[105,0.91,13083,5.694]],["body/injectables/IservProvisioningStrategy.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.008,27,0.467,29,0.838,30,0.001,31,0.599,32,0.145,33,0.517,34,0.987,35,1.294,36,2.53,47,0.841,95,0.165,99,0.969,100,1.943,101,0.01,103,0,104,0,105,1.117,107,1.399,111,1.163,112,2.6,127,0.727,128,4.688,129,6.636,132,5.387,145,2.708,163,1.786,167,3.072,187,0.839,189,4.628,191,3.217,192,1.73,215,1.852,216,1.544,217,1.674,221,2.475,227,1.175,234,1.588,247,2.274,305,2.378,348,5.464,369,1.288,404,1.504,406,1.888,461,2.592,596,2.983,775,3.558,798,3.646,853,4.309,1570,4.314,1605,3.441,1630,4.219,1739,6.069,2139,5.387,2268,3.306,3104,2.629,4205,1.956,4571,5.329,4593,2.932,4661,3.063,4737,7.061,5987,4.133,7074,4.373,7080,5.635,8443,3.856,8450,6.206,9534,6.069,10921,8.374,11432,5.945,11714,5.181,12009,5.635,12034,4.86,12332,7.413,12334,6.4,12335,3.856,12336,3.856,13066,5.076,13083,6.992,13084,5.804,13085,8.349,13086,6.538,13087,5.804,13088,6.744,13089,8.243,13090,5.804,13091,8.349,13092,5.804,13093,6.744,13094,7.949,13095,5.804,13096,5.804,13097,5.076,13098,6.361,13099,5.076,13100,5.365,13101,5.804,13102,5.804,13103,5.365,13104,9.778,13105,5.076,13106,5.365,13107,8.349,13108,5.804,13109,5.365,13110,5.804,13111,5.804,13112,5.804,13113,5.804,13114,5.804,13115,5.804,13116,5.804,13117,5.804,13118,6.744,13119,5.804,13120,6.992,13121,5.804,13122,6.744,13123,5.076,13124,5.365,13125,5.804,13126,5.804,13127,5.804,13128,5.804,13129,5.804,13130,5.804,13131,5.076]],["title/injectables/JwtAuthGuard.html",[105,0.91,13132,5.947]],["body/injectables/JwtAuthGuard.html",[0,0.357,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.017,103,0.001,104,0.001,105,1.645,107,2.528,187,1.516,404,2.216,1562,7.795,13132,10.757,13133,10.486,13134,10.486,13135,12.299,13136,9.694]],["title/interfaces/JwtConstants.html",[334,0.731,1571,5.694]],["body/interfaces/JwtConstants.html",[3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,32,0.173,39,2.399,47,0.987,85,7.19,95,0.114,101,0.019,103,0.001,104,0.001,138,4.867,165,0.873,217,1.45,334,0.957,336,2.132,369,1.977,772,9.746,1568,6.977,1571,10.669,1609,6.788,1611,8.236,1613,5.528,1615,7.461,1618,7.618,1749,6.623,1852,3.762,1905,5.4,2449,6.115,2794,5.283,6161,6.344,6992,6.977,6994,6.977,7016,6.977,7017,6.977,13137,8.909,13138,13.115,13139,11.143,13140,8.909,13141,8.909,13142,7.197,13143,7.461,13144,7.461,13145,8.909,13146,8.909,13147,8.909,13148,7.792,13149,8.909,13150,8.909]],["title/classes/JwtExtractor.html",[0,0.232,13151,5.947]],["body/classes/JwtExtractor.html",[0,0.296,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,27,0.358,29,0.68,30,0.001,31,0.614,32,0.118,33,0.42,35,1.051,47,0.9,95,0.154,101,0.014,103,0.001,104,0.001,167,4.033,217,1.129,227,1.137,351,6.029,367,5.729,535,5.876,627,3.686,731,4.33,1187,5.227,1188,5.165,1189,5.165,1190,5.988,1191,6.547,1192,8.245,1193,7.398,1204,6.796,1605,5.146,6616,5.202,11456,9.179,11530,9.179,13151,9.587,13152,10.132,13153,8.679,13154,10.961,13155,10.961,13156,8.679,13157,12.014,13158,6.796,13159,8.679,13160,10.961]],["title/interfaces/JwtPayload.html",[334,0.731,1739,4.943]],["body/interfaces/JwtPayload.html",[3,0.019,4,0.019,5,0.01,7,0.124,30,0.001,32,0.178,39,2.854,47,1.012,48,3.881,55,2.824,85,5.314,101,0.018,103,0.001,104,0.001,165,0.83,334,1.139,336,1.971,347,2.144,355,3.309,404,1.91,461,1.884,575,4.936,722,3.672,956,5.39,1609,8.076,1613,6.578,1719,9.179,1739,7.706,1749,9.201,1852,5.226,1946,5.471,2449,7.275,3110,4.105,4205,2.776,5058,5.471,6161,8.814,6992,9.692,6994,9.692,7016,9.692,7017,9.692,7023,7.613,7024,7.613,7025,6.652,7026,6.897,7027,5.11,7028,7.613,7029,7.203,7030,9.271]],["title/injectables/JwtStrategy.html",[105,0.91,1550,5.947]],["body/injectables/JwtStrategy.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.213,27,0.414,29,0.787,30,0.001,31,0.563,32,0.137,33,0.486,35,0.918,36,2.154,85,4.894,95,0.173,101,0.013,103,0.001,104,0.001,105,1.344,107,1.828,112,2.482,127,0.95,187,1.097,204,2.573,206,3.859,215,2.421,216,1.402,217,1.307,221,1.755,227,0.786,231,6.244,234,1.231,305,2.161,334,0.815,371,2.091,404,1.81,406,2.467,461,1.735,491,3.731,496,3.202,513,5.076,685,4.003,784,4.099,1129,6.478,1369,4.133,1370,6.674,1550,8.786,1551,10.354,1562,5.638,1571,6.352,1572,6.634,1576,6.634,1605,7.11,1619,7.011,1739,8.716,1742,6.352,1749,7.467,1852,3.202,2004,5.205,2801,5.401,3837,5.939,4519,5.205,5427,6.126,6098,6.575,7062,5.638,9603,4.828,10868,6.634,11613,4.964,13151,6.634,13158,5.939,13161,7.584,13162,8.413,13163,7.584,13164,7.584,13165,10.045,13166,7.584,13167,6.352,13168,7.584,13169,7.584,13170,7.584,13171,7.584,13172,7.584,13173,7.584,13174,7.584,13175,7.584,13176,7.584,13177,7.584,13178,7.584,13179,7.584,13180,7.584,13181,7.584]],["title/classes/JwtTestFactory.html",[0,0.232,7007,5.947]],["body/classes/JwtTestFactory.html",[0,0.262,2,0.857,3,0.018,4,0.018,5,0.009,7,0.116,8,1.224,27,0.418,29,0.602,30,0.001,31,0.43,32,0.154,33,0.372,35,1.227,47,0.984,59,2.394,85,7.315,95,0.13,101,0.013,103,0.001,104,0.001,116,3.156,185,2.987,217,1.569,227,1.051,334,0.826,565,5.051,627,3.948,1568,6.018,1570,5.713,1593,6.436,1605,4.557,1609,5.856,1613,4.769,1738,7.366,1749,7.533,4508,7.721,6161,7.216,6990,10.542,6991,7.105,6992,7.935,6993,8.487,6994,7.935,6995,10.481,6996,10.492,6997,9.368,6998,7.105,6999,7.105,7000,7.105,7001,7.105,7002,8.863,7003,7.105,7004,9.368,7005,9.368,7006,7.105,7007,8.863,7008,10.542,7009,9.368,7010,9.368,7011,7.105,7012,7.105,7013,7.105,7014,7.105,7015,7.105,7016,6.018,7017,6.018,7018,6.722,7019,7.105,7020,7.105,7021,7.105,7022,7.105,13182,10.134,13183,7.686,13184,7.686]],["title/injectables/JwtValidationAdapter.html",[105,0.91,1551,5.493]],["body/injectables/JwtValidationAdapter.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.095,8,1.071,27,0.458,29,0.87,30,0.001,31,0.622,32,0.151,33,0.537,34,1.889,35,1.24,36,2.601,47,0.99,85,7.548,94,4.305,95,0.156,101,0.011,103,0.001,104,0.001,105,1.186,107,1.522,111,1.777,112,2.848,127,1.11,187,0.913,216,1.639,217,1.153,221,2.371,264,3.725,368,3.473,371,1.741,379,1.431,691,5.907,731,3.502,839,3.01,1129,5.098,1187,4.226,1188,4.176,1189,4.176,1190,4.418,1191,4.83,1192,6.083,1530,4.693,1551,7.159,1563,5.521,1605,7.539,1749,10.01,1770,5.148,1854,5.888,1905,3.826,2007,7.159,2471,7.269,3090,3.833,3812,6.94,3854,10.433,3858,5.521,3861,4.81,3863,5.521,3871,5.521,3872,9.161,3873,6.94,7030,7.752,10868,7.752,11774,5.642,12013,7.752,13152,10.815,13185,6.313,13186,8.863,13187,8.863,13188,8.863,13189,6.313,13190,6.313,13191,8.863,13192,8.863,13193,6.313,13194,8.863,13195,6.313,13196,8.863,13197,8.193,13198,8.863,13199,8.863,13200,6.313,13201,6.313,13202,6.313,13203,6.313,13204,6.313,13205,8.863,13206,6.313,13207,6.313,13208,6.313,13209,8.863,13210,8.863,13211,6.313,13212,6.313,13213,6.313]],["title/classes/KeycloakAdministration.html",[0,0.232,13214,6.286]],["body/classes/KeycloakAdministration.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.355,30,0.001,47,1,51,5.295,87,6.313,95,0.14,101,0.014,103,0.001,104,0.001,144,2.366,165,0.854,238,6.097,319,3.258,347,2.205,627,3.672,2130,3.759,2131,4.206,2132,4.055,2294,7.206,3859,4.813,5530,6.271,7995,8.104,11560,7.242,11577,5.808,11585,6.21,11586,6.684,12070,10.87,12072,9.13,12073,10.021,12245,9.13,12662,8.806,13214,10.078,13215,10.901,13216,10.901,13217,10.901,13218,10.901,13219,10.901,13220,10.901,13221,8.605,13222,6.738]],["title/modules/KeycloakAdministrationModule.html",[425,1.812,12657,5.324]],["body/modules/KeycloakAdministrationModule.html",[0,0.304,3,0.021,4,0.021,5,0.011,7,0.135,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,154,4.089,187,1.291,425,3.243,427,3.226,428,3.47,429,3.573,430,3.558,431,3.543,432,4.479,433,4.6,442,4.465,443,3.499,444,3.415,447,3.701,773,5.684,836,5.186,1307,6.358,2294,7.478,3580,4.543,10679,6.763,11585,5.087,11586,5.475,12073,9.344,12657,10.634,12662,7.213,13222,6.992,13223,8.929,13224,8.929,13225,8.929,13226,10.242,13227,8.929,13228,10.315,13229,6.638,13230,8.254,13231,8.254,13232,7.478,13233,7.478,13234,6.803,13235,8.929]],["title/injectables/KeycloakAdministrationService.html",[105,0.91,13226,4.943]],["body/injectables/KeycloakAdministrationService.html",[0,0.184,3,0.013,4,0.013,5,0.007,7,0.12,8,0.956,27,0.535,29,0.422,30,0.001,31,0.302,32,0.108,33,0.261,34,0.917,35,1.506,36,2.466,47,0.82,55,1.161,95,0.12,101,0.009,103,0,104,0,105,1.059,107,1.3,111,2.57,112,2.934,116,4.338,127,0.991,144,2.177,148,2.436,165,0.62,187,0.78,216,1.463,217,1.432,221,2.822,227,1.264,234,1.285,238,3.016,247,3.674,319,2.365,369,1.197,371,1.487,627,2.877,784,2.914,839,2.571,1369,2.938,1370,3.582,1761,7.316,1763,5.753,2130,2.355,2294,4.516,3580,3.222,5530,2.688,7278,3.268,10679,4.797,11585,7.462,11586,8.031,12070,8.651,12072,4.516,12073,4.516,13222,4.222,13226,5.753,13228,9.55,13229,4.008,13230,4.984,13231,4.984,13236,9.98,13237,5.392,13238,9.376,13239,9.376,13240,10.33,13241,10.33,13242,10.33,13243,10.33,13244,10.33,13245,10.33,13246,10.33,13247,10.33,13248,10.33,13249,4.984,13250,9.376,13251,7.914,13252,7.316,13253,5.392,13254,5.392,13255,5.392,13256,5.392,13257,5.392,13258,5.392,13259,5.392,13260,5.392,13261,5.392,13262,7.914,13263,5.392,13264,5.392,13265,5.392,13266,5.392,13267,5.392,13268,5.392,13269,5.392,13270,7.914,13271,5.392,13272,5.392,13273,5.392,13274,7.914,13275,6.393,13276,7.914,13277,9.376,13278,4.984,13279,4.984,13280,5.392,13281,5.392,13282,4.984,13283,4.716,13284,5.392,13285,5.392,13286,5.392,13287,9.376,13288,7.914,13289,5.392]],["title/classes/KeycloakConfiguration.html",[0,0.232,13232,5.694]],["body/classes/KeycloakConfiguration.html",[0,0.33,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,95,0.125,101,0.016,103,0.001,104,0.001,144,2.669,165,0.92,319,3.51,627,3.875,2130,4.239,2268,5.528,11577,6.549,11585,6.69,11586,7.2,12063,10.576,12066,10.856,12067,10.856,13222,7.598,13232,9.835,13290,10.271,13291,12.629,13292,11.743,13293,11.743,13294,9.703,13295,8.487]],["title/modules/KeycloakConfigurationModule.html",[425,1.812,13296,5.694]],["body/modules/KeycloakConfigurationModule.html",[0,0.229,3,0.016,4,0.016,5,0.008,30,0.001,95,0.177,101,0.011,103,0.001,104,0.001,154,3.074,187,0.971,425,2.82,427,2.425,428,2.609,429,2.686,430,2.674,431,2.663,432,3.894,433,4,437,8.806,438,5.793,442,3.701,443,2.63,444,2.567,447,3.834,449,3.67,773,5.888,836,3.899,1307,4.78,1467,2.142,1548,8.639,1564,5.114,1567,4.607,2130,2.932,2268,3.824,3489,4.69,3566,9.683,8255,8.989,8844,4.69,11585,3.824,11586,4.116,11591,9.192,11592,5.256,11593,5.256,11604,10.109,12068,8.09,12657,9.683,12662,5.422,12663,5.871,13222,5.256,13232,5.621,13233,8.863,13290,5.871,13295,5.871,13296,11.876,13297,6.712,13298,6.712,13299,6.712,13300,6.712,13301,11.308,13302,10.811,13303,10.356,13304,6.712,13305,9.256,13306,6.712,13307,6.712,13308,7.746,13309,6.205,13310,6.205,13311,6.205,13312,6.205,13313,6.712,13314,6.712,13315,5.621,13316,6.712]],["title/injectables/KeycloakConfigurationService.html",[105,0.91,13301,5.694]],["body/injectables/KeycloakConfigurationService.html",[0,0.09,3,0.006,4,0.006,5,0.003,7,0.04,8,0.544,10,1.817,27,0.461,29,0.77,30,0.001,31,0.587,32,0.134,33,0.476,34,1.828,35,1.354,36,2.399,47,0.862,59,0.826,74,2.142,95,0.141,101,0.004,103,0,104,0,105,0.602,107,0.639,111,2.595,112,2.841,116,3.063,127,0.564,154,3.852,187,0.384,200,0.826,206,3.516,216,1.278,217,1.716,221,3.102,227,0.803,235,4.368,247,1.039,264,1.892,355,1.066,369,1.867,371,2.134,379,0.601,394,1.511,403,1.736,461,1.341,500,3.089,524,2.589,575,1.589,576,4.368,731,3.728,773,3.733,789,5.869,801,1.54,804,2.077,805,2.142,883,2.488,905,2.442,1031,0.831,1187,4.5,1188,4.446,1189,4.446,1308,1.607,1318,2.32,1750,1.996,1798,4.747,1946,2.99,2255,1.888,2280,1.511,2385,1.626,2450,2.564,2925,2.698,2929,2.589,3104,2.039,4007,1.666,4564,2.142,4588,1.369,5530,2.244,5880,4.495,6161,3.205,6993,4.911,7034,2.077,7280,3.272,7283,1.971,7928,2.452,8511,2.452,8890,2.021,10677,1.853,10679,5.098,11459,6.481,11568,2.76,11585,6.481,11586,6.975,11774,2.865,11941,4.737,12072,8.525,12329,6.534,12331,4.828,12407,1.971,12710,5.421,13226,5.023,13229,6.253,13234,2.021,13236,2.021,13275,8.223,13278,2.452,13279,2.452,13282,2.452,13283,2.32,13301,3.77,13308,7.51,13309,2.452,13310,2.452,13317,9.95,13318,4.501,13319,6.911,13320,6.911,13321,6.911,13322,6.911,13323,4.501,13324,4.501,13325,4.501,13326,6.911,13327,4.501,13328,4.501,13329,4.501,13330,4.501,13331,2.221,13332,7.51,13333,2.652,13334,3.77,13335,4.501,13336,2.652,13337,9.436,13338,2.652,13339,2.652,13340,2.652,13341,2.652,13342,4.501,13343,8.414,13344,2.652,13345,4.501,13346,2.652,13347,8.968,13348,4.501,13349,2.652,13350,2.652,13351,5.864,13352,4.501,13353,2.652,13354,5.864,13355,4.501,13356,8.411,13357,6.388,13358,2.652,13359,4.501,13360,5.864,13361,4.501,13362,2.652,13363,4.501,13364,2.652,13365,2.652,13366,2.652,13367,2.652,13368,2.652,13369,4.501,13370,2.652,13371,2.652,13372,2.452,13373,2.652,13374,2.142,13375,2.652,13376,2.452,13377,4.501,13378,9.689,13379,2.32,13380,3.937,13381,6.044,13382,5.864,13383,4.737,13384,5.864,13385,8.904,13386,4.501,13387,4.501,13388,7.739,13389,4.501,13390,7.739,13391,2.652,13392,8.411,13393,2.652,13394,2.652,13395,2.652,13396,4.501,13397,4.501,13398,4.501,13399,4.501,13400,2.652,13401,4.501,13402,2.452,13403,2.32,13404,2.652,13405,2.652,13406,5.129,13407,5.129,13408,4.501,13409,4.501,13410,2.32,13411,2.652,13412,2.32,13413,2.452,13414,4.161,13415,2.452,13416,2.652,13417,2.652,13418,4.501,13419,4.501,13420,4.501,13421,3.429,13422,2.652,13423,2.652,13424,2.652,13425,2.652,13426,2.652,13427,2.652,13428,4.501,13429,2.652,13430,5.864,13431,5.864,13432,2.652,13433,5.864,13434,2.652,13435,5.864,13436,2.652,13437,2.652,13438,4.501,13439,2.652,13440,4.501,13441,4.501,13442,4.501,13443,6.911,13444,2.652,13445,2.652,13446,4.501,13447,2.652,13448,4.161,13449,2.652,13450,2.652,13451,5.864,13452,4.501,13453,5.864,13454,4.501,13455,2.652,13456,2.652,13457,4.501,13458,2.652,13459,4.501,13460,2.652,13461,2.652,13462,2.652,13463,2.652,13464,2.652,13465,2.652,13466,4.501,13467,4.501,13468,2.652,13469,2.652,13470,4.501,13471,2.652,13472,2.452,13473,2.652,13474,2.452,13475,4.501,13476,2.652,13477,2.652,13478,2.652,13479,2.652,13480,2.652,13481,2.652,13482,2.652,13483,2.652]],["title/injectables/KeycloakConfigurationUc.html",[105,0.91,11591,5.055]],["body/injectables/KeycloakConfigurationUc.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.101,8,1.117,27,0.51,29,0.829,30,0.001,31,0.593,32,0.144,33,0.512,35,1.448,36,2.843,55,2.664,59,3.296,70,3.324,95,0.154,101,0.011,103,0.001,104,0.001,105,1.237,107,1.618,111,2.286,112,3.032,116,4.206,127,1.159,187,0.971,216,2.109,221,2.64,227,1.24,347,2.141,773,4.273,1129,6.56,7799,7.968,8559,6.205,8576,6.205,10142,6.462,11585,7.218,11586,7.769,11589,5.256,11591,6.876,11601,8.689,11637,8.291,11643,6.587,13226,8.291,13233,8.863,13234,5.114,13236,5.114,13301,9.551,13302,10.611,13303,10.611,13311,6.205,13312,6.205,13315,5.621,13331,5.621,13334,7.746,13484,12.67,13485,10.583,13486,6.712,13487,6.712,13488,8.551,13489,6.712,13490,6.712,13491,9.25,13492,6.712,13493,6.712,13494,6.712,13495,6.712,13496,6.712,13497,6.712,13498,6.712,13499,6.712,13500,6.712,13501,6.712]],["title/classes/KeycloakConsole.html",[0,0.232,11604,5.324]],["body/classes/KeycloakConsole.html",[0,0.118,2,0.386,3,0.008,4,0.008,5,0.004,7,0.052,8,0.678,10,1.395,27,0.449,29,0.825,30,0.001,31,0.566,32,0.137,33,0.489,35,1.223,36,2.543,47,0.581,52,3.356,53,4.079,55,2.512,70,3.506,72,3.691,78,8.727,95,0.105,101,0.006,103,0,104,0,111,2.11,112,2.85,127,0.703,144,1.543,145,2.429,148,1.064,165,0.439,204,1.173,216,1.309,217,1.166,221,2.518,227,0.734,234,0.911,247,2.198,264,2.976,305,0.985,319,3.252,334,0.761,346,2.201,347,0.699,364,1.632,368,3.959,371,3.083,379,2.848,403,4.634,432,2.065,461,1.283,529,1.503,575,2.072,627,2.173,687,1.474,692,1.292,701,4.309,768,3.851,773,5.702,798,2.172,803,2.146,894,5.147,905,3.392,907,6.584,1037,2.634,1125,3.327,1129,5.517,1414,1.934,1467,1.104,1639,6.106,1646,4.557,1772,4.394,1920,2.201,1948,4.883,1959,3.058,2130,2.451,2147,4.394,2356,2.908,2357,3.711,2450,3.196,2800,5.332,3090,5.044,3481,5.413,3486,7.235,3489,2.416,3490,8.546,3491,6.027,3492,2.05,5451,4.171,5880,7.233,6431,4.394,7027,2.146,7044,2.201,7325,7.699,7799,7.06,7809,7.699,8252,2.634,8310,2.416,10142,6.258,11351,2.708,11584,4.532,11585,6.369,11586,6.855,11587,9.363,11588,2.896,11589,2.708,11590,5.93,11591,7.512,11592,2.708,11593,2.708,11594,4.699,11595,2.896,11596,2.896,11597,8.789,11598,2.896,11599,2.896,11600,4.532,11601,4.275,11602,2.896,11603,2.634,11604,4.394,11605,2.896,11606,5.93,11607,4.699,11608,9.363,11609,4.079,11610,4.699,11611,4.699,11612,9.112,11613,3.672,11614,6.475,11615,3.995,11616,5.592,11617,4.171,11618,2.896,11619,2.896,11620,4.699,11621,6.823,11622,2.896,11623,2.896,11624,4.699,11625,6.823,11626,2.896,11627,2.896,11628,2.896,11629,6.823,11630,6.823,11631,4.394,11632,4.699,11633,2.896,11634,2.896,11635,4.079,11636,4.532,11637,6.511,11638,4.699,11639,2.896,11640,2.896,11641,2.896,11642,4.699,11643,6.379,11644,2.708,11645,2.708,11646,4.699,11647,2.896,11648,2.896,11649,2.896,11650,2.896,11651,2.896,11652,2.896,11653,4.699,11654,2.896,11655,2.896,11656,2.896,11657,4.532,13502,5.611,13503,3.458,13504,3.458,13505,3.458,13506,3.458,13507,3.458,13508,3.458,13509,3.458,13510,3.458,13511,3.458,13512,3.458,13513,3.458,13514,3.458]],["title/injectables/KeycloakIdentityManagementOauthService.html",[105,0.91,12665,5.694]],["body/injectables/KeycloakIdentityManagementOauthService.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.984,27,0.481,29,0.638,30,0.001,31,0.456,32,0.143,33,0.394,35,1.274,36,2.501,47,0.922,51,3.957,87,5.61,95,0.161,101,0.009,103,0,104,0,105,1.09,107,1.352,111,2.412,112,2.769,127,1.02,145,2.665,148,2.507,150,1.942,163,2.507,165,0.638,187,0.811,216,1.946,217,1.566,221,2.22,227,1.209,234,0.911,235,3.166,277,2.264,369,1.245,404,1.468,406,1.824,596,2.926,773,3.571,784,3.032,789,7.875,801,3.258,803,6.937,839,2.675,853,2.895,1016,2.86,1142,2.598,1154,8.407,1155,3.258,1156,6.207,1157,3.671,1270,3.326,1318,4.906,1369,3.057,1370,3.727,1518,3.995,1519,4.531,1520,4.906,1613,3.481,2303,2.274,2800,7.317,2929,3.226,4588,2.895,5442,3.196,5530,4.781,7278,4.937,7280,4.078,8259,4.17,8805,3.786,8844,3.919,9285,7.652,9314,4.531,11489,8.39,11507,6.822,11557,3.85,11560,3.727,11561,4.698,11562,3.85,11565,3.85,11568,4.995,11572,6.474,11585,5.996,12659,9.132,12661,4.698,12665,6.822,12668,5.186,12669,9.731,12670,9.731,12671,7.531,12674,7.531,12676,8.02,13226,7.652,13234,4.274,13236,4.274,13374,4.531,13414,7.531,13415,5.186,13515,9.207,13516,9.592,13517,10.526,13518,5.61,13519,8.146,13520,8.146,13521,5.61,13522,5.61,13523,5.61,13524,5.61,13525,11.662,13526,5.61,13527,5.61,13528,5.61,13529,5.61,13530,5.61,13531,5.61,13532,5.61,13533,5.61,13534,5.61,13535,5.61,13536,5.61,13537,5.61,13538,5.61,13539,5.61,13540,5.61,13541,5.61,13542,5.61,13543,5.61,13544,5.186,13545,5.186,13546,4.906,13547,5.186,13548,5.61,13549,5.61]],["title/injectables/KeycloakIdentityManagementService.html",[105,0.91,12667,5.694]],["body/injectables/KeycloakIdentityManagementService.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.665,27,0.493,29,0.95,30,0.001,31,0.66,32,0.167,33,0.57,34,2.177,35,1.427,36,2.762,39,2.906,47,0.983,51,4.61,59,1.715,87,5.7,94,3.904,95,0.122,98,2.004,99,0.564,101,0.006,103,0,104,0,105,0.737,107,0.815,111,1.903,112,2.971,116,1.715,127,0.423,144,2.61,145,0.856,167,2.026,187,0.489,215,1.079,216,0.625,217,1.596,221,3.044,227,1.241,234,1.694,247,2.158,305,2.973,369,1.222,371,1.519,403,5.261,404,0.992,406,1.099,461,2.171,484,4.817,485,4.817,510,2.457,511,4.472,521,4.449,558,1.621,575,2.025,596,3.465,643,3.922,701,2.464,738,1.757,750,8.085,756,2.956,758,3.124,759,2.956,760,2.956,773,2.151,784,1.826,788,9.665,851,3.324,852,3.324,853,3.597,905,2.293,1008,2.976,1308,3.338,1345,1.341,1369,1.842,1370,3.659,2257,3.338,2800,5.793,3146,2.245,3147,2.18,3526,2.73,3906,2.73,7863,2.83,7864,2.956,10679,2.048,11585,4.579,12646,2.646,12667,4.612,12678,5.091,12679,5.091,12680,5.091,12681,5.091,12682,7.43,12683,6.443,12684,6.443,12685,5.091,12686,5.091,12687,5.091,12688,7.43,12693,5.091,12696,5.091,12697,5.091,12699,5.091,12702,5.091,12703,7.43,12706,3.124,12707,9.252,12709,8.774,12711,3.124,12712,8.182,12718,2.646,13226,5.843,13229,2.512,13234,2.575,13236,2.575,13249,3.124,13252,5.091,13275,6.493,13515,7.03,13550,5.507,13551,5.507,13552,3.379,13553,3.379,13554,5.507,13555,3.379,13556,5.507,13557,7.742,13558,3.379,13559,5.507,13560,3.379,13561,3.379,13562,3.379,13563,5.507,13564,3.379,13565,3.379,13566,3.379,13567,3.379,13568,3.379,13569,5.507,13570,3.379,13571,5.507,13572,3.379,13573,2.956,13574,10.435,13575,3.379,13576,5.507,13577,5.507,13578,5.507,13579,2.956,13580,2.956,13581,2.956,13582,3.379,13583,5.507,13584,5.507,13585,3.379,13586,3.379,13587,3.379,13588,5.507,13589,3.379,13590,6.97,13591,3.379,13592,6.97,13593,5.507,13594,5.507,13595,3.379,13596,8.038,13597,5.507,13598,5.507,13599,3.379,13600,3.379,13601,2.956,13602,3.379,13603,3.379,13604,3.379,13605,3.379,13606,3.379,13607,3.379,13608,3.379,13609,3.379,13610,3.379,13611,5.507,13612,5.507,13613,6.97,13614,6.97,13615,3.379,13616,2.956,13617,5.091,13618,3.124,13619,3.379,13620,3.379,13621,3.379,13622,3.379,13623,3.379,13624,3.379,13625,3.379,13626,3.379,13627,3.379,13628,3.379]],["title/controllers/KeycloakManagementController.html",[481,2.611,13305,5.947]],["body/controllers/KeycloakManagementController.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.331,30,0.001,35,1.263,36,2.238,55,2.248,72,4.728,78,7.821,95,0.149,101,0.013,103,0.001,104,0.001,111,1.611,112,2.554,187,1.162,215,2.566,216,1.93,221,2.682,227,1.082,234,1.305,305,2.29,364,1.464,432,3.84,447,3.332,481,3.086,483,3.833,784,4.344,905,3.347,1125,6.187,1369,4.38,1370,5.34,1467,2.566,2299,6.493,2356,3.302,2357,4.753,2800,6.83,2929,4.623,3090,5.304,6154,6.933,10677,7.291,11585,5.945,11586,6.398,11591,7.758,11592,6.294,11593,6.294,11631,9.604,13305,9.127,13629,10.436,13630,7.431,13631,8.038,13632,12.264,13633,10.436,13634,8.038,13635,10.436,13636,10.436,13637,8.43,13638,8.43,13639,10.436,13640,9.647,13641,10.436,13642,11.587,13643,8.038,13644,8.038,13645,8.038,13646,8.038,13647,8.038,13648,8.038,13649,8.038,13650,8.038]],["title/injectables/KeycloakMigrationService.html",[105,0.91,13303,5.694]],["body/injectables/KeycloakMigrationService.html",[0,0.196,3,0.014,4,0.014,5,0.007,7,0.087,8,1.001,27,0.401,29,0.762,30,0.001,31,0.545,32,0.145,33,0.47,34,1.41,35,1.003,36,2.282,51,4.723,55,1.785,66,7.282,70,4.815,87,2.883,94,5.17,95,0.151,101,0.01,103,0,104,0,105,1.109,107,1.385,111,2.357,112,2.591,127,1.038,144,2.28,187,0.831,216,1.798,217,1.615,221,2.872,227,1.008,234,0.933,247,4.422,305,1.637,319,1.717,369,1.839,371,2.286,403,6.967,639,7.068,643,6.924,648,4.812,651,9.84,731,3.275,773,3.657,784,3.105,798,3.61,818,9.235,894,4.177,905,4.049,907,3.943,983,4.812,1018,5.348,1021,4.409,1068,4.812,1083,4.641,1187,3.952,1188,3.906,1189,3.906,1308,3.482,1369,3.131,1370,5.507,1467,1.834,1568,4.499,1732,4.271,2246,4.641,2356,3.994,2357,4.848,2925,3.444,3906,4.641,7995,4.271,8312,4.271,10679,3.482,10709,4.378,11459,6.941,11585,6.064,11586,6.526,11601,8.598,11643,5.902,12718,4.499,13226,7.738,13229,4.271,13234,4.378,13236,4.378,13275,4.641,13303,6.941,13317,9.31,13331,4.812,13334,6.941,13385,5.025,13557,7.25,13573,5.025,13579,5.025,13580,5.025,13581,5.025,13601,5.025,13616,5.025,13651,4.812,13652,7.662,13653,5.746,13654,7.662,13655,5.746,13656,8.289,13657,5.746,13658,4.812,13659,5.746,13660,9.723,13661,5.746,13662,5.746,13663,8.289,13664,5.311,13665,5.746,13666,5.746,13667,5.746,13668,7.662,13669,5.311,13670,7.662,13671,5.311,13672,5.311,13673,5.311,13674,7.662,13675,7.662,13676,9.723,13677,5.746,13678,5.311,13679,5.746,13680,5.746,13681,5.746]],["title/modules/KeycloakModule.html",[425,1.812,12658,5.493]],["body/modules/KeycloakModule.html",[0,0.278,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.181,425,3.111,427,2.951,428,3.174,429,3.269,430,3.255,431,3.241,432,4.297,433,4.413,438,6.128,442,4.219,443,3.201,444,3.124,449,4.184,773,5.2,803,5.069,1155,4.745,1467,2.607,2800,6.901,3917,7.117,7863,6.841,8255,9.509,8844,5.707,11585,4.653,12657,10.244,12658,11.426,12661,6.841,12662,6.598,12663,7.145,12665,11.656,12667,11.656,13233,8.831,13682,8.169,13683,8.169,13684,8.169,13685,8.169,13686,8.169]],["title/classes/KeycloakSeedService.html",[0,0.232,13302,5.694]],["body/classes/KeycloakSeedService.html",[0,0.161,2,0.527,3,0.011,4,0.011,5,0.006,7,0.071,8,0.867,10,1.908,27,0.452,29,0.679,30,0.001,31,0.486,32,0.132,33,0.419,34,1.22,35,1.26,36,2.625,51,4.211,55,1.545,87,2.372,94,4.211,95,0.151,101,0.008,103,0,104,0,111,2.529,112,2.867,116,2.7,127,0.899,144,1.973,163,2.208,187,0.684,216,1.603,217,1.642,221,3.056,227,1.18,247,4.077,319,1.413,369,2.148,371,1.304,394,2.693,403,4.696,461,2.506,511,2.389,643,5.109,648,3.959,731,4.111,738,2.458,773,3.009,839,2.254,851,2.254,852,2.254,853,2.44,874,5.109,894,5.215,905,3.61,907,3.245,1068,3.959,1083,3.819,1124,9.619,1130,4.37,1187,4.962,1188,4.903,1189,4.903,1308,2.865,1467,1.509,1568,3.702,2130,2.065,2146,3.191,2246,3.819,2257,2.865,2268,2.693,2356,3.561,2357,4.409,3090,4.923,3146,3.141,3147,3.05,3526,3.819,3906,3.819,6573,3.819,7799,6.762,7995,3.514,10142,5.012,10277,6.632,10310,6.632,10311,6.632,10326,4.37,10679,2.865,11459,8.106,11585,6.484,11586,6.979,11589,5.618,12057,9.101,12061,9.101,12063,8.106,12068,4.135,12646,3.702,12718,3.702,13222,3.702,13226,7.036,13229,3.514,13234,3.602,13236,3.602,13275,7.003,13295,4.135,13302,6.008,13317,9.955,13331,3.959,13334,6.008,13385,7.583,13406,4.135,13407,4.135,13488,6.632,13557,6.275,13573,4.135,13579,4.135,13580,4.135,13581,4.135,13601,6.275,13616,4.135,13618,4.37,13652,6.632,13654,6.632,13664,4.37,13668,6.632,13669,4.37,13670,6.632,13671,4.37,13672,4.37,13673,4.37,13674,6.632,13675,6.632,13678,4.37,13687,4.728,13688,9.679,13689,9.679,13690,8.67,13691,4.728,13692,4.728,13693,4.728,13694,4.728,13695,4.728,13696,4.728,13697,4.728,13698,7.174,13699,4.728,13700,4.728,13701,4.728,13702,8.67,13703,4.728,13704,4.728,13705,4.728,13706,4.728,13707,4.728,13708,9.679,13709,4.728,13710,4.728,13711,4.37,13712,4.728,13713,4.728,13714,4.728,13715,4.728,13716,4.728,13717,4.728,13718,4.728,13719,7.174,13720,4.728]],["title/classes/LdapAlreadyPersistedException.html",[0,0.232,13721,5.493]],["body/classes/LdapAlreadyPersistedException.html",[0,0.408,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.414,29,0.593,30,0.001,31,0.424,32,0.103,33,0.366,35,0.916,47,0.889,52,5.334,55,1.631,59,2.358,95,0.129,101,0.02,103,0.001,104,0.001,127,0.948,187,1.095,192,3.354,214,3.778,227,1.167,383,4.955,404,2.246,461,2.574,795,6.151,1127,4.819,1216,4.409,1464,5.741,1465,6.434,1467,2.416,1469,6.344,2643,5.827,4476,5.017,8288,6.481,8289,6.738,8369,6.081,8389,10.349,12927,5.195,13721,8.104,13722,9.424,13723,5.627,13724,10.07,13725,10.034,13726,7.57,13727,10.034,13728,7.57,13729,6.34,13730,6.34,13731,6.115,13732,8.402,13733,5.503,13734,6.115]],["title/classes/LdapAuthorizationBodyParams.html",[0,0.232,13735,5.694]],["body/classes/LdapAuthorizationBodyParams.html",[0,0.382,2,1.002,3,0.021,4,0.021,5,0.011,7,0.136,27,0.527,30,0.001,32,0.174,47,0.98,48,5.752,51,5.93,87,6.126,95,0.144,101,0.015,103,0.001,104,0.001,165,0.878,364,2.328,374,2.869,376,2.056,467,3.45,470,5.107,1000,4.97,1001,7.317,4205,4.114,5806,8.145,7328,9.051,13735,9.383,13736,13.15,13737,7.862,13738,8.309,13739,8.989,13740,8.989,13741,8.989]],["title/classes/LdapConfig.html",[0,0.232,12330,4.943]],["body/classes/LdapConfig.html",[0,0.302,2,0.448,3,0.009,4,0.009,5,0.005,7,0.061,26,1.658,27,0.508,29,0.315,30,0.001,31,0.225,32,0.173,33,0.643,47,1.015,83,3.137,95,0.114,96,1.099,101,0.016,103,0,104,0,127,0.503,138,1.754,150,3.342,165,0.495,208,1.5,216,1.447,240,4.438,277,1.621,334,0.431,347,1.279,359,1.4,364,2.211,369,3.05,370,4.363,371,1.107,379,0.91,380,1.662,386,6.8,398,1.183,399,2.509,400,1.772,402,1.665,404,0.724,405,1.07,406,1.306,496,1.696,722,1.791,775,2.462,783,2.434,1031,2.451,1141,2.462,1498,2.434,1581,2.86,1613,2.492,2072,2.591,2097,2.985,2574,3.264,2578,1.791,4271,3.446,4309,4.503,4333,2.407,4588,4.58,5530,3.152,5698,3.218,5717,2.556,5718,2.756,6196,3.418,7136,2.523,7222,2.711,7278,3.833,8469,2.171,8805,2.711,9787,5.12,10293,2.246,11429,6.615,11510,2.985,11511,2.985,11512,2.985,11513,3.06,11557,2.756,11560,2.668,11562,2.756,11565,2.756,11568,2.462,11572,2.711,11613,5.12,12035,3.06,12219,2.86,12327,4.818,12328,3.244,12329,4.201,12330,8.08,12331,7.163,12332,3.974,12333,4.418,12334,5.12,12335,2.668,12336,2.668,12337,3.244,12338,4.34,12339,4.701,12340,3.145,12341,4.701,12342,3.06,12343,3.06,12344,3.06,12345,3.06,12346,3.145,12347,3.06,12348,3.06,12349,3.06,12350,3.145,12351,4.701,12352,3.145,12353,3.06,12354,3.145,12355,3.06,12356,3.06,12357,3.06,12358,3.145,12359,4.34,12360,5.108,12361,3.244,12362,3.244,12363,3.244,12364,3.244,12365,3.244,12366,3.244,12367,3.244,12368,3.244,12369,3.244,12370,3.244,12371,3.244,12372,3.145,12373,3.244,12374,3.244,12375,3.244,12376,3.244,12377,3.244,12378,3.244,12379,3.244,12380,3.244,12381,3.244,12382,6.319,12383,6.319,12384,6.319,12385,6.319,12386,6.319,12387,6.319,12388,6.319,12389,6.319,12390,2.985,12391,3.244,12392,3.244,12393,3.244,12394,3.244,12395,3.244,12396,3.244,12397,3.244,12398,3.244,12399,3.244,12400,3.244,12401,3.244,12402,3.244,12403,3.244,12404,3.244,12405,3.06,12406,3.244,12407,2.985,12408,3.145,12409,3.06,12410,3.145,12411,3.06,12412,3.06,12413,3.145,12414,3.06,12415,3.145,12416,3.06,12417,2.919,12418,2.919,12419,2.919,12420,2.985,12421,3.06,12422,3.244,12423,3.06,12424,3.244,12425,3.244,12426,3.244,12427,3.244,12428,3.244,12429,3.06,12430,3.145,12431,3.06,12432,3.145,13742,4.016,13743,4.016,13744,4.016,13745,4.016,13746,4.016,13747,4.016,13748,4.016,13749,4.016,13750,4.016,13751,4.016,13752,4.016,13753,4.016,13754,4.016]],["title/classes/LdapConnectionError.html",[0,0.232,13755,5.947]],["body/classes/LdapConnectionError.html",[0,0.266,2,0.87,3,0.018,4,0.018,5,0.009,7,0.118,8,1.236,27,0.543,29,0.611,30,0.001,31,0.437,32,0.185,33,0.552,35,0.945,47,0.815,55,1.681,59,2.431,95,0.131,101,0.013,103,0.001,104,0.001,127,0.978,165,0.802,187,1.129,204,4.114,216,2.521,364,2.293,404,1.845,406,2.538,558,3.744,564,2.861,596,3.941,798,6.432,1013,5.554,1016,2.74,1142,5.291,1180,5.219,1216,4.476,1395,8.284,1396,7.173,1397,4.06,1398,7.271,1402,5.036,1403,4.327,1404,5.036,1405,5.036,1406,5.036,1407,5.036,1408,5.036,1409,4.678,1410,4.405,1416,4.904,11616,7.026,12927,7.026,13755,8.953,13756,10.237,13757,7.805,13758,8.573,13759,7.805,13760,7.805,13761,7.805]],["title/injectables/LdapService.html",[105,0.91,1552,5.694]],["body/injectables/LdapService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.103,8,1.126,27,0.439,29,0.834,30,0.001,31,0.596,32,0.145,33,0.515,35,1.129,36,2.458,47,0.965,51,6.174,87,6.496,95,0.159,99,1.133,101,0.011,103,0.001,104,0.001,105,1.247,107,1.637,111,2.135,112,2.347,127,0.851,150,2.352,154,3.111,187,0.982,204,2.304,215,2.168,216,1.256,217,1.386,221,1.572,227,0.967,234,1.729,305,2.656,461,1.554,511,3.432,556,4.96,894,4.937,1354,4.836,1355,5.318,1370,7.615,1371,5.94,1467,2.168,1552,7.809,2004,6.4,2356,3.83,2357,5.221,2969,4.584,3104,5.192,3541,5.486,3580,4.335,3881,5.94,3883,5.94,7939,8.156,8469,6.87,11616,4.661,12330,6.778,12372,5.318,12927,4.661,13421,7.104,13755,8.156,13762,6.792,13763,9.325,13764,6.792,13765,9.325,13766,6.792,13767,9.325,13768,6.792,13769,6.278,13770,6.792,13771,6.792,13772,6.792,13773,6.792,13774,6.792,13775,6.792,13776,6.792,13777,6.792,13778,4.836,13779,6.792,13780,6.792,13781,6.792,13782,6.792,13783,6.792,13784,6.792,13785,8.62,13786,6.792,13787,6.792,13788,6.792,13789,6.792,13790,6.278,13791,5.688,13792,6.792,13793,6.792]],["title/injectables/LdapStrategy.html",[105,0.91,1553,5.947]],["body/injectables/LdapStrategy.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.81,27,0.436,29,0.864,30,0.001,31,0.655,32,0.165,33,0.511,34,0.736,35,1.21,36,2.268,39,1.165,47,0.903,48,5.634,51,5.137,66,6.823,72,1.96,87,5.872,94,5.684,95,0.161,99,0.722,101,0.007,103,0,104,0,105,0.897,107,1.043,111,2.626,112,2.579,127,0.84,138,4.036,144,2.541,145,2.34,167,3.4,187,0.626,189,5.542,192,3.151,204,3.135,206,2.201,216,1.955,217,1.556,221,2.708,227,0.958,234,1.5,305,2.632,334,0.465,355,2.694,367,3.196,368,2.626,403,4.387,404,1.208,406,1.407,441,6.611,450,1.777,461,2.287,475,2.115,491,3.298,511,2.186,513,3.387,543,3.41,574,1.899,692,3.951,731,1.709,784,3.623,806,1.761,823,7.687,1129,2.488,1345,1.717,1369,3.653,1370,4.453,1431,2.465,1438,5.294,1467,1.381,1549,8.2,1552,9.237,1553,5.863,1554,6.456,1562,3.216,1573,3.623,1574,4,1581,3.081,1709,6.196,1721,6.196,1732,3.216,1852,1.827,2004,5.631,2018,3.388,2144,2.442,2356,4.531,2504,3.296,3104,5.164,3602,3.388,3649,3.023,4142,4,4205,3.114,4210,6.644,4519,2.969,4661,3.538,6098,4.387,6586,2.92,7062,3.216,8050,4.872,8275,5.414,8303,3.296,8469,5.403,10340,3.388,12043,3.216,12125,6.628,12183,2.969,12927,6.342,13158,3.388,13162,5.613,13167,3.623,13735,6.871,13778,3.081,13794,4.327,13795,7.585,13796,6.703,13797,6.703,13798,3.784,13799,4.327,13800,4.327,13801,4.327,13802,6.703,13803,4.327,13804,6.703,13805,4.327,13806,4.327,13807,6.196,13808,4.327,13809,4.327,13810,4,13811,4.327,13812,4.327,13813,4,13814,3.623,13815,4,13816,4.327,13817,3.784,13818,4.327,13819,4.327,13820,4,13821,4.327,13822,4.327,13823,4,13824,6.196,13825,4,13826,4,13827,4.327,13828,4,13829,7.585,13830,4.327,13831,3.784,13832,4.327,13833,4.327,13834,4,13835,6.703,13836,3.784,13837,4.327,13838,3.216,13839,4.327,13840,6.703,13841,4.327,13842,4.327,13843,4.327]],["title/classes/LdapUserMigrationException.html",[0,0.232,13724,5.493]],["body/classes/LdapUserMigrationException.html",[0,0.421,2,0.913,3,0.019,4,0.019,5,0.01,30,0.001,47,0.833,52,5.54,55,1.763,95,0.136,101,0.021,103,0.001,104,0.001,187,1.184,192,3.483,214,3.685,227,1.212,383,5.357,404,2.303,461,1.872,795,6.474,1127,5.21,1216,4.58,1464,5.687,1465,6.373,1467,2.613,1469,5.788,2643,6.789,4476,3.649,8288,6.42,8289,6.674,8369,6.399,8389,9.975,12927,5.618,13721,6.612,13722,6.855,13723,6.085,13724,10.325,13725,9.789,13727,9.789,13729,6.855,13730,6.855,13731,6.612,13732,8.842,13733,5.95,13734,6.612]],["title/modules/LearnroomApiModule.html",[425,1.812,13844,5.493]],["body/modules/LearnroomApiModule.html",[0,0.213,3,0.015,4,0.015,5,0.008,30,0.001,95,0.171,101,0.01,103,0.001,104,0.001,187,0.906,425,2.718,427,2.263,428,2.434,429,2.506,430,2.496,431,2.485,432,3.753,433,2.367,441,7.252,442,3.527,443,2.454,444,2.395,446,3.936,447,3.654,449,4.046,450,2.573,574,2.75,836,3.638,1878,6.539,1923,8.994,1930,7.333,1931,7.919,1959,3.413,2627,2.632,2725,2.838,2727,3.005,2970,8.994,3009,3.796,3010,3.503,3709,4.161,5057,4.656,6338,8.795,6603,8.921,6617,10.133,6619,10.133,6695,10.133,7361,8.921,7378,10.133,7640,9.475,7725,6.902,7745,4.772,8057,9.475,8148,9.774,8374,4.772,9621,4.228,10424,5.06,10425,5.06,13844,11.631,13845,6.264,13846,6.264,13847,6.264,13848,8.616,13849,8.994,13850,10.133,13851,10.133,13852,10.133,13853,6.264,13854,8.921,13855,5.479,13856,6.264,13857,6.264,13858,6.264,13859,6.264,13860,5.79,13861,6.264,13862,5.79]],["title/modules/LearnroomModule.html",[425,1.812,13848,4.842]],["body/modules/LearnroomModule.html",[0,0.224,3,0.016,4,0.016,5,0.008,30,0.001,95,0.165,101,0.011,103,0.001,104,0.001,130,9.083,187,0.952,425,2.791,427,2.377,428,2.557,429,2.633,430,2.622,431,2.611,432,3.854,433,3.958,438,5.758,441,7.366,442,3.651,443,2.578,444,2.517,449,3.62,450,2.703,766,2.753,836,3.822,1467,2.1,1930,7.449,1931,8.044,1956,9.364,1957,5.014,2958,10.293,2970,9.136,3009,3.989,3010,3.681,4886,10.293,4991,11.27,6338,8.934,6640,10.871,6647,10.871,7640,9.624,7725,7.145,8374,5.014,13848,10.266,13849,9.136,13855,5.756,13862,6.084,13863,6.581,13864,6.581,13865,6.581,13866,6.581,13867,9.136,13868,6.581,13869,6.084]],["title/injectables/LegacyLogger.html",[105,0.91,2357,3.097]],["body/injectables/LegacyLogger.html",[0,0.309,3,0.012,4,0.012,5,0.006,7,0.077,8,1.213,27,0.514,29,0.96,30,0.001,31,0.709,32,0.167,33,0.592,35,1.451,47,0.979,59,3.633,72,2.304,95,0.145,101,0.008,102,2.552,103,0,104,0,105,1.014,107,1.226,111,2.5,127,0.637,144,1.399,145,2.294,148,3.895,163,3.09,165,0.594,187,0.735,199,5.281,204,2.572,214,2.856,216,0.94,217,0.986,227,0.786,234,0.826,277,3.059,319,2.265,336,1.217,574,3.327,675,2.819,685,2.684,766,3.17,777,5.935,839,2.425,1216,4.886,1345,4.628,1421,5.509,1431,2.897,1750,2.256,2075,2.795,2356,5.032,2357,3.452,2412,3.237,2969,3.432,3281,3.379,3835,3.237,4514,5.509,5183,3.195,5460,4.961,7803,3.281,8310,8.375,8331,8.782,8341,4.448,8342,5.935,8345,4.448,9622,7.318,10340,3.982,10820,6.122,11774,4.824,12076,9.392,12079,4.448,12080,6.629,12081,7.006,12083,7.006,12084,9.282,12086,7.006,12087,8.782,12089,7.006,12091,7.006,13870,12.657,13871,5.086,13872,7.579,13873,9.282,13874,9.282,13875,7.579,13876,7.579,13877,5.086,13878,5.086,13879,5.086,13880,5.086,13881,5.086,13882,7.006,13883,5.086,13884,7.579,13885,5.086,13886,5.086,13887,7.579,13888,7.579,13889,6.629,13890,5.935,13891,7.579,13892,5.086,13893,5.086,13894,4.701,13895,4.108,13896,5.086,13897,4.108,13898,4.701,13899,4.108,13900,5.086,13901,5.086,13902,5.086,13903,5.086,13904,5.086,13905,6.629,13906,5.086,13907,4.701,13908,4.701]],["title/modules/LegacySchoolApiModule.html",[425,1.812,13909,5.493]],["body/modules/LegacySchoolApiModule.html",[0,0.274,3,0.019,4,0.019,5,0.01,30,0.001,52,3.818,95,0.173,101,0.013,102,6.159,103,0.001,104,0.001,187,1.165,189,5.792,192,2.4,355,3.237,425,3.091,427,2.91,428,3.13,429,3.223,430,3.209,431,3.196,432,4.268,433,3.044,438,6.105,442,4.181,443,3.156,444,3.08,446,5.061,447,4.331,449,4.146,1141,4.938,1467,2.571,1878,7.044,2725,3.649,2727,3.864,4593,4.07,5333,8.296,9777,5.272,13909,11.409,13910,8.054,13911,8.054,13912,8.054,13913,9.929,13914,10.914,13915,10.914,13916,6.745,13917,7.441,13918,10.145,13919,8.054,13920,8.054,13921,8.054,13922,7.446]],["title/controllers/LegacySchoolController.html",[481,2.611,13918,5.947]],["body/controllers/LegacySchoolController.html",[0,0.227,3,0.016,4,0.016,5,0.008,7,0.101,8,1.111,27,0.379,29,0.72,30,0.001,31,0.515,32,0.168,33,0.445,35,1.113,36,2.437,95,0.162,100,2.229,101,0.011,102,5.703,103,0.001,104,0.001,111,1.335,112,2.718,187,0.963,189,5.098,192,3.14,215,2.125,216,1.701,217,1.479,221,2.129,227,0.954,234,1.493,264,4.428,364,1.675,376,1.523,379,2.388,447,2.759,481,2.556,483,3.174,491,6.219,494,5.512,511,5.742,513,6.608,543,4.679,555,3.461,556,3.541,561,5.649,728,3.517,1750,5.041,2727,3.194,2930,3.569,3743,5.396,4007,4.183,9777,6.896,13914,7.702,13915,8.824,13917,6.549,13918,8.044,13922,6.154,13923,10.537,13924,6.154,13925,9.741,13926,9.216,13927,6.657,13928,11.695,13929,6.657,13930,11.365,13931,6.657,13932,9.197,13933,6.657,13934,6.657,13935,11.057,13936,6.657,13937,6.657,13938,6.657,13939,7.429,13940,8.044,13941,6.685,13942,7.659,13943,8.511,13944,5.575,13945,5.823,13946,9.635,13947,6.657,13948,6.657,13949,6.657,13950,6.657,13951,6.549,13952,6.657,13953,6.657,13954,6.657,13955,6.657,13956,6.657,13957,9.197,13958,6.657,13959,6.657]],["title/classes/LegacySchoolDo.html",[0,0.232,189,3.769]],["body/classes/LegacySchoolDo.html",[0,0.222,2,0.727,3,0.015,4,0.015,5,0.008,7,0.098,26,2.509,27,0.558,29,0.51,30,0.001,31,0.631,32,0.184,33,0.678,34,1.542,47,0.928,83,2.773,95,0.134,101,0.011,102,5.651,103,0.001,104,0.001,127,0.816,165,0.71,185,2.533,189,6.561,347,1.833,404,2.029,406,2.12,596,1.988,618,2.665,854,5.228,883,3.844,1844,3.906,1852,3.826,1872,7.117,1904,3.791,1961,6.331,2095,2.586,2545,3.466,3813,6.22,4323,7.747,4338,4.965,5708,4.737,6464,7.151,6472,6.922,6557,4.845,6871,3.864,7180,4.965,8452,6.546,8456,4.845,9206,5.7,9785,7.589,9786,6.905,9787,7.747,10293,5.827,10752,6.632,12181,7.938,12182,7.574,12183,7.151,12184,7.419,12208,7.279,12210,4.845,12211,5.264,12214,4.965,12219,4.641,13960,13.536,13961,6.517,13962,7.926,13963,9.062,13964,6.517,13965,6.517,13966,6.517,13967,6.517,13968,6.517,13969,6.517,13970,6.517,13971,6.517,13972,6.517,13973,6.517,13974,6.024,13975,6.517,13976,6.517,13977,6.517,13978,6.517,13979,6.517,13980,6.517,13981,6.517,13982,6.517,13983,6.517,13984,5.103,13985,6.517,13986,6.517]],["title/classes/LegacySchoolFactory.html",[0,0.232,13987,6.286]],["body/classes/LegacySchoolFactory.html",[0,0.17,2,0.558,3,0.012,4,0.012,5,0.006,7,0.076,8,0.904,27,0.532,29,1.021,30,0.001,31,0.706,32,0.18,33,0.601,34,1.274,35,1.477,47,0.534,55,2.499,59,3.322,95,0.128,99,0.835,101,0.008,103,0,104,0,127,0.627,138,3.271,144,3.281,148,1.54,165,0.586,185,4.827,189,2.774,216,1.385,217,0.651,227,0.519,234,1.617,319,3.565,359,2.611,366,2.798,369,1.11,379,2.033,380,1.907,381,2.491,404,1.349,538,3.374,596,3.939,627,2.298,660,7.096,661,4.703,662,5.621,665,4.226,666,5.621,667,5.655,668,4.226,669,4.226,670,4.226,671,4.151,672,4.597,673,5.064,674,6.556,675,5.912,676,7.045,677,2.85,682,2.824,683,4.226,684,2.85,685,5.257,686,5.428,687,4.245,688,5.104,689,4.188,690,2.824,691,2.661,692,4.181,693,2.75,694,2.704,695,2.824,696,5.178,697,2.85,698,4.974,699,2.824,700,7.01,701,4.218,702,6.733,703,2.85,704,3.708,705,2.824,706,2.85,707,2.824,708,2.85,709,2.824,712,2.824,713,6.204,714,2.85,715,2.824,716,4.226,717,3.952,718,4.226,719,2.85,720,2.727,721,2.704,722,2.231,723,2.824,724,2.824,725,2.824,726,2.85,727,2.85,728,1.913,729,2.824,730,2.85,731,2.958,732,2.824,733,2.85,736,2.967,854,2.511,905,4.147,4313,6.389,4315,3.637,4323,3.275,6472,3.324,8452,3.144,9787,3.275,10293,2.798,12181,3.812,12182,3.637,12183,3.434,12189,4.042,12390,3.719,13987,6.922,13988,5.004,13989,5.004,13990,5.004,13991,5.004,13992,5.004,13993,5.004,13994,5.004,13995,5.004,13996,5.004,13997,9.96,13998,3.812,13999,3.812,14000,3.812,14001,5.004,14002,5.004,14003,5.004,14004,5.004]],["title/modules/LegacySchoolModule.html",[425,1.812,5333,4.328]],["body/modules/LegacySchoolModule.html",[0,0.261,3,0.018,4,0.018,5,0.009,30,0.001,95,0.161,101,0.013,102,6.044,103,0.001,104,0.001,129,8.558,187,1.109,189,5.611,425,3.018,427,2.771,428,2.981,429,3.069,430,3.056,431,3.043,432,4.168,433,4.281,438,6.024,442,4.05,443,3.006,444,2.934,449,4.015,450,3.151,766,3.209,1467,2.448,1554,8.984,2531,4.146,5333,9.094,9770,10.769,9776,11.55,9777,5.021,11197,11.141,13916,6.424,13917,7.207,14005,7.671,14006,7.671,14007,7.671,14008,7.671,14009,10.769,14010,10.769,14011,7.671]],["title/injectables/LegacySchoolRepo.html",[105,0.91,1554,4.751]],["body/injectables/LegacySchoolRepo.html",[0,0.146,3,0.01,4,0.01,5,0.005,7,0.065,8,0.806,10,2.692,12,3.055,18,3.37,26,2.53,27,0.536,29,1.01,30,0.001,31,0.733,32,0.175,33,0.623,34,1.566,35,1.547,36,2.606,40,2.075,47,0.833,48,4.697,95,0.135,96,1.825,97,1.859,99,0.717,101,0.007,102,4.621,103,0,104,0,105,0.892,107,1.036,111,2.28,112,2.883,127,0.538,145,1.089,148,1.323,165,0.337,167,3.668,187,0.622,189,6.737,192,1.988,216,1.233,217,1.198,221,1.544,227,1.094,234,1.327,305,1.225,359,2.325,380,1.957,398,1.267,404,1.202,511,2.172,595,1.439,596,3.814,661,3.434,844,5.181,854,4.621,878,4.66,884,3.143,885,5.036,905,1.79,915,2.383,1353,2.075,1467,1.372,1554,4.66,1790,3.45,2051,2.449,2343,8.846,2345,4.749,2346,4.749,2347,4.749,2348,4.749,2349,4.66,2350,4.66,2351,4.749,2352,4.66,2353,4.749,2354,3.125,2355,5.296,2356,3.783,2357,4.194,2359,4.848,2360,3.061,2362,5.296,2363,3.061,2365,3.061,2367,2.814,2368,4.66,2369,3.061,2371,3.061,2373,4.749,2377,4.749,2379,4.501,2380,4.66,2382,3.061,2384,2.577,2385,2.636,2386,3.061,2388,3.061,2390,3.003,2391,3.061,2397,2.901,4323,4.365,4369,2.774,4370,3.366,4491,2.668,5862,3.125,5863,3.125,5864,3.125,5865,3.125,5866,3.125,5867,3.125,5868,3.125,5869,3.125,5870,3.125,5878,3.275,5880,3.874,6472,4.431,8452,6.627,8469,3.605,9007,3.275,9091,3.76,9787,4.365,10031,4.191,10293,4.57,11028,3.6,12179,8.259,12181,5.081,12182,4.848,12183,4.577,12185,3.196,12208,3.003,13073,7.439,13778,3.061,13917,4.749,14012,9.968,14013,4.299,14014,5.833,14015,6.67,14016,4.299,14017,4.299,14018,5.833,14019,4.299,14020,6.67,14021,4.299,14022,4.299,14023,4.299,14024,4.299,14025,3.974,14026,4.299,14027,4.299,14028,4.299,14029,4.299,14030,4.299,14031,4.299,14032,4.299,14033,3.974,14034,4.299,14035,4.299,14036,3.974,14037,4.299,14038,4.299,14039,4.299,14040,4.299,14041,4.299,14042,4.299,14043,3.974,14044,4.299,14045,4.299,14046,4.299,14047,3.974,14048,4.299,14049,4.299,14050,4.299,14051,4.299,14052,3.974,14053,6.67,14054,4.299,14055,4.299]],["title/injectables/LegacySchoolRule.html",[105,0.91,1892,5.694]],["body/injectables/LegacySchoolRule.html",[0,0.258,3,0.018,4,0.018,5,0.009,7,0.115,8,1.213,27,0.464,29,0.882,30,0.001,31,0.631,32,0.163,33,0.545,35,1.216,95,0.165,99,1.266,101,0.013,102,6.017,103,0.001,104,0.001,105,1.344,107,1.828,116,3.992,127,0.95,187,1.097,189,7.249,199,4.257,214,2.391,215,2.421,216,1.402,217,1.307,227,1.042,347,2.425,359,4.349,380,2.393,461,3.073,806,3.088,1787,6.965,1795,6.481,1823,7.954,1844,4.546,1861,7.267,1872,6.965,1873,4.706,1892,8.413,2002,6.482,2006,6.233,2013,5.039,3385,6.674,3386,5.119,3389,6.575,3392,5.119,3393,6.78,3394,5.638,4369,4.894,5987,5.401,13917,7.153,14056,11.991,14057,7.584,14058,7.584,14059,7.584,14060,7.584]],["title/injectables/LegacySchoolService.html",[105,0.91,129,4.219]],["body/injectables/LegacySchoolService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.008,18,4.218,26,2.577,27,0.501,29,0.952,30,0.001,31,0.681,32,0.165,33,0.588,34,0.987,35,1.428,36,2.821,47,0.938,48,5.039,95,0.137,99,0.969,101,0.01,102,5.366,103,0,104,0,105,1.117,107,1.399,111,1.674,112,3.016,127,1.046,129,5.181,144,1.596,167,3.072,187,0.839,189,7.294,192,2.488,216,1.544,217,1.535,221,2.879,227,1.175,319,1.735,371,2.696,380,1.233,450,2.384,713,3.217,854,2.912,1415,3.558,1554,7.471,4205,2.814,6098,6.999,6712,7.844,9777,8.142,12125,6.744,12184,8.859,13073,9.53,13617,7.718,13813,7.718,13917,5.945,14009,10.181,14033,5.365,14061,12.441,14062,5.804,14063,8.349,14064,8.349,14065,8.349,14066,8.349,14067,8.349,14068,5.365,14069,5.804,14070,8.349,14071,5.804,14072,8.349,14073,5.804,14074,8.349,14075,5.804,14076,5.804,14077,8.349,14078,5.804,14079,8.349,14080,5.804,14081,8.349,14082,5.804,14083,5.804,14084,8.349,14085,5.804,14086,5.804,14087,8.349,14088,5.804,14089,5.804,14090,5.804,14091,5.804]],["title/injectables/LegacySchoolUc.html",[105,0.91,13914,5.694]],["body/injectables/LegacySchoolUc.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.95,27,0.424,29,0.806,30,0.001,31,0.576,32,0.14,33,0.498,35,1.13,36,2.207,39,3.088,47,0.923,52,2.535,95,0.147,99,0.893,101,0.009,102,5.164,103,0,104,0,105,1.052,107,1.289,111,2.439,112,2.527,127,0.986,128,4.321,129,6.386,132,5.077,145,2.777,148,2.421,167,2.895,187,0.774,189,6.743,192,3.625,199,2.974,216,2.028,217,1.616,221,2.873,227,0.816,234,1.277,284,4.252,323,6.355,347,2.511,355,2.149,461,2.623,766,2.237,843,2.36,1801,3.206,1852,2.258,1884,5.562,2725,2.423,4205,3.696,4482,8.442,4483,8.813,4484,9.577,4489,6.64,4491,6.805,4495,4.189,4498,4.189,4501,5.849,4502,4.678,4504,6.882,4505,4.945,4506,4.945,4507,4.945,4593,2.703,4654,8.163,7745,4.075,9777,7.177,11224,6.161,13914,6.589,13917,5.603,13925,7.273,13926,8.163,13943,8.858,13945,4.678,13951,7.328,13998,8.737,13999,8.737,14000,8.737,14092,10.966,14093,5.349,14094,7.868,14095,5.349,14096,7.868,14097,5.349,14098,7.308,14099,7.868,14100,5.349,14101,4.945,14102,5.349,14103,4.945,14104,4.678,14105,5.349,14106,4.945,14107,3.976,14108,7.868,14109,7.868,14110,7.273,14111,5.349,14112,5.349,14113,5.349,14114,7.868,14115,10.291,14116,4.945,14117,5.349,14118,5.349,14119,6.589,14120,5.349,14121,6.589,14122,4.48,14123,4.945,14124,5.349,14125,5.349]],["title/modules/LessonApiModule.html",[425,1.812,14126,5.493]],["body/modules/LessonApiModule.html",[0,0.309,3,0.021,4,0.021,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.312,425,3.266,427,3.276,428,3.525,429,3.629,430,3.614,431,3.598,432,4.51,433,3.428,442,4.508,443,3.554,444,3.468,446,5.699,447,4.67,449,4.47,481,3.482,1878,7.263,2725,4.109,2727,4.351,13849,9.989,14126,11.29,14127,9.07,14128,9.07,14129,9.07,14130,11.254,14131,9.07,14132,10.721,14133,9.07]],["title/entities/LessonBoardElement.html",[380,1.445,2658,5.493]],["body/entities/LessonBoardElement.html",[0,0.323,3,0.022,4,0.022,5,0.011,7,0.143,27,0.392,30,0.001,32,0.129,95,0.161,96,2.598,101,0.016,103,0.001,104,0.001,165,0.908,364,1.73,380,2.463,381,3.159,398,2.798,404,1.711,405,2.531,617,5.265,2577,5.36,2628,9.077,2647,6.876,2648,6.635,2651,8.254,2653,7.954,2658,9.363,2702,5.87,3001,7.236,3041,9.707,4989,4.35,4990,8.307,12455,9.707,14134,11.591,14135,8.78,14136,9.497]],["title/controllers/LessonController.html",[481,2.611,14132,5.947]],["body/controllers/LessonController.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.134,8,1.34,10,4.892,27,0.365,29,0.693,30,0.001,31,0.496,32,0.12,33,0.428,35,1.071,36,2.379,95,0.168,100,2.963,101,0.015,103,0.001,104,0.001,112,2.672,187,1.28,215,2.825,216,1.637,217,1.152,221,2.048,227,0.918,264,3.719,364,1.612,376,2.024,447,3.668,481,3.398,483,4.22,491,6.252,513,6.614,555,4.601,556,4.708,561,4.745,1750,4.922,2727,4.246,2908,7.263,2930,4.745,5043,4.995,14130,10.152,14132,9.706,14137,8.851,14138,7.412,14139,9.952,14140,11.097,14141,8.851,14142,8.851,14143,8.851,14144,7.412,14145,8.851,14146,8.182]],["title/classes/LessonCopyApiParams.html",[0,0.232,6391,5.694]],["body/classes/LessonCopyApiParams.html",[0,0.389,2,1.032,3,0.022,4,0.022,5,0.011,7,0.14,27,0.382,30,0.001,32,0.126,33,0.552,34,1.941,47,0.814,95,0.147,100,3.821,101,0.015,103,0.001,104,0.001,165,0.894,188,4.215,364,1.686,374,2.955,375,4.347,376,2.118,379,2.803,471,4.625,475,4.525,1000,4.646,1582,8.935,2524,6.695,2633,5.935,2649,5.088,2659,5.346,2884,6.069,2885,6.069,3339,5.726,6157,9.98,6391,9.556,7034,8.935,10685,8.097,14147,11.411,14148,8.558,14149,8.558]],["title/injectables/LessonCopyUC.html",[105,0.91,13850,5.694]],["body/injectables/LessonCopyUC.html",[0,0.195,3,0.014,4,0.014,5,0.007,7,0.087,8,0.999,26,2.567,27,0.465,29,0.833,30,0.001,31,0.595,32,0.144,33,0.514,35,1.287,36,1.774,39,1.543,95,0.162,99,0.956,101,0.01,103,0,104,0,105,1.106,107,1.381,111,2.711,112,2.139,127,1.036,148,3.469,187,0.829,188,3.926,204,1.944,216,2.085,217,1.644,221,2.46,227,0.594,234,1.343,235,4.668,284,3.096,305,2.356,307,3.6,347,1.159,450,2.353,461,3.002,843,2.528,1216,2.245,1308,5.884,1353,2.766,1801,3.434,1856,4.628,1884,5.745,1930,7.34,1931,7.926,2130,2.503,2131,2.801,2132,2.7,2133,3.647,2524,3.362,2647,5.95,2659,2.684,2725,2.595,2783,3.434,2964,6.927,2972,10.142,2974,8.803,2980,9.483,2987,10.859,2992,6.264,3009,3.472,3010,3.204,3013,4.628,3055,5.011,3056,5.011,3057,5.296,3586,6.477,4614,4.365,4661,3.024,5017,5.884,6355,6.927,6393,9.827,6659,6.682,6697,5.011,6698,8.902,6704,5.011,6710,5.011,6711,5.011,6712,3.697,13850,6.927,13855,5.011,14150,11.747,14151,8.272,14152,8.272,14153,5.729,14154,5.729,14155,8.272,14156,5.729,14157,5.729,14158,8.272,14159,5.729,14160,7.647,14161,8.974,14162,5.296,14163,5.729,14164,5.296,14165,5.011,14166,5.729,14167,6.477,14168,5.296,14169,5.729,14170,5.729,14171,5.729,14172,5.729,14173,5.729,14174,5.729,14175,5.729,14176,5.729,14177,8.272,14178,5.729,14179,5.729,14180,5.729,14181,5.729,14182,5.729,14183,8.272,14184,4.798,14185,5.729]],["title/entities/LessonEntity.html",[380,1.445,2647,3.589]],["body/entities/LessonEntity.html",[0,0.142,3,0.01,4,0.01,5,0.005,7,0.137,26,2.083,27,0.464,30,0.001,31,0.507,32,0.153,33,0.315,47,0.94,55,2.244,95,0.152,96,1.141,101,0.02,103,0,104,0,111,1.306,116,1.299,144,2.204,145,2.029,150,3.137,165,0.51,187,0.603,188,4.159,208,1.558,214,1.315,217,1.594,227,1.27,234,1.691,240,3.571,247,1.634,305,1.856,319,2.395,334,1.21,347,1.317,364,2.051,369,2.181,370,2.146,371,2.21,379,1.816,380,1.384,381,1.387,398,1.228,399,2.584,400,1.84,402,1.728,404,0.751,405,1.111,406,1.356,461,0.954,535,3.492,687,1.777,769,3.862,806,1.698,1031,1.307,1167,2.292,1345,1.654,1353,2.013,1397,3.033,1843,1.976,1865,2.967,2095,1.654,2303,4.222,2627,1.752,2632,4.797,2633,3.125,2636,4.937,2640,2.272,2645,4.146,2646,2.447,2647,4.781,2649,3.573,2650,4.042,2659,3.051,2663,4.263,2767,4.781,2848,3.869,3339,4.022,3452,6.174,3471,5.707,3580,1.698,3607,2.913,3608,2.913,4052,3.822,4217,2.62,4281,1.821,4878,2.557,4882,2.62,4883,2.691,4989,1.91,5015,6.744,5026,2.969,5043,2.353,5050,4.146,5055,6.935,5068,2.969,5074,2.969,5079,2.969,5630,7.148,6365,5.325,6368,5.707,6486,4.203,6508,2.587,6518,6.606,6519,2.77,6520,4.263,6522,4.092,6560,4.146,6561,4.327,6586,4.396,6748,3.647,6757,2.587,6758,2.77,8418,4.638,10761,6.114,11863,4.638,11864,3.031,11865,5.102,11866,3.031,11867,4.55,11868,7.122,11869,4.638,11870,2.969,11871,4.638,11872,4.638,11873,4.638,11874,3.031,11875,4.638,11876,2.77,11877,4.638,11878,4.638,11879,3.031,11880,3.031,11881,3.031,11882,4.55,11883,4.55,11884,4.735,11885,4.735,11886,4.735,11887,4.735,11888,5.599,11889,2.913,11890,4.735,11891,3.031,11892,3.031,11893,3.031,11894,2.862,11895,3.031,11896,3.031,11897,4.735,11898,3.031,11899,3.031,11900,6.585,11901,5.826,11902,2.969,11903,3.031,11904,3.031,11905,3.031,11906,3.031,11907,3.031,11908,3.031,11909,3.031,11910,3.031,11911,3.031,11912,3.031,11913,3.031,11914,2.862,11915,3.031,11916,3.031,14186,4.17,14187,4.17,14188,4.17,14189,4.17,14190,4.17,14191,4.17,14192,4.17,14193,4.17,14194,4.17]],["title/classes/LessonFactory.html",[0,0.232,14195,6.286]],["body/classes/LessonFactory.html",[0,0.168,2,0.55,3,0.012,4,0.012,5,0.006,7,0.074,8,0.894,27,0.531,29,1.018,30,0.001,31,0.704,32,0.18,33,0.598,34,1.513,35,1.471,47,0.528,55,2.487,59,3.301,95,0.114,99,0.823,101,0.008,103,0,104,0,127,0.618,138,3.235,144,3.266,148,1.517,165,0.58,185,4.884,188,4.264,216,1.369,217,1.157,227,0.511,319,3.55,359,2.582,366,2.757,371,1.359,379,2.015,380,2.252,381,2.463,404,1.334,538,3.337,596,3.927,627,2.272,660,7.258,661,4.677,662,5.58,665,4.179,666,5.58,667,5.759,668,4.179,669,4.179,670,4.179,671,4.105,672,4.557,673,5.019,674,6.527,675,5.874,676,7.085,677,2.808,682,2.782,683,4.179,684,2.808,685,5.218,686,5.388,687,4.214,688,5.066,689,4.142,690,2.782,691,2.622,692,4.158,693,2.709,694,2.665,695,2.782,696,5.14,697,2.808,698,4.93,699,2.782,700,6.984,701,4.199,702,6.703,703,2.808,704,4.404,705,2.782,706,2.808,707,2.782,708,2.808,709,2.782,710,3.138,711,2.923,712,2.782,713,6.17,714,2.808,715,2.782,716,4.179,717,3.908,718,4.179,719,2.808,720,2.687,721,2.665,722,2.198,723,2.782,724,2.782,725,2.782,726,2.808,727,2.808,728,1.885,729,2.782,730,2.808,731,2.926,732,2.782,733,2.808,736,2.923,2647,3.908,2659,2.31,3452,4.653,5015,5.082,6723,4.129,6771,4.557,6773,4.557,10761,4.998,11867,3.444,11868,3.227,14195,8.221,14196,4.93,14197,4.93,14198,7.405,14199,4.93,14200,4.93,14201,4.93,14202,4.93]],["title/modules/LessonModule.html",[425,1.812,13849,5.055]],["body/modules/LessonModule.html",[0,0.256,3,0.018,4,0.018,5,0.009,30,0.001,95,0.17,101,0.013,103,0.001,104,0.001,187,1.089,425,2.99,427,2.719,428,2.925,429,3.012,430,2.999,431,2.987,432,4.129,433,4.241,438,5.992,442,3.999,443,2.949,444,2.879,449,3.966,450,3.092,766,3.149,1358,4.792,1467,2.403,1902,6.584,1931,8.372,2972,11.517,3009,4.562,3010,4.21,3567,9.508,3579,3.703,3580,3.065,5002,10.769,6338,9.298,8400,11.188,8404,9.298,13849,10.655,13867,9.508,13869,6.959,14203,7.528,14204,7.528,14205,7.528,14206,7.528,14207,11.188,14208,7.528]],["title/injectables/LessonRepo.html",[105,0.91,1931,4.45]],["body/injectables/LessonRepo.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.017,10,3.398,12,3.856,13,6.12,18,4.254,26,2.734,27,0.515,29,0.956,30,0.001,31,0.683,32,0.173,33,0.59,34,0.999,35,1.477,36,2.765,39,2.267,40,4.064,42,6.12,59,1.829,95,0.146,96,1.606,98,3.481,99,0.98,101,0.01,103,0,104,0,105,1.126,107,1.415,112,2.991,116,3.065,138,3.677,145,1.487,187,0.849,188,3.109,217,1.588,221,2.634,227,1.18,234,0.953,277,3.398,347,1.188,380,1.248,381,2.8,398,1.73,404,1.517,461,1.343,577,3.314,596,3.279,692,4.876,877,7.158,883,3.571,884,3.967,885,4.973,908,3.6,909,3.643,910,3.6,911,3.643,913,3.6,914,3.643,915,3.255,964,4.03,1931,5.51,2144,4.751,2647,6.007,2659,5.036,2767,3.099,3452,3.689,3675,4.03,4431,3.689,4435,3.963,5043,6.068,5055,4.842,5880,4.89,5882,4.102,6778,4.473,6782,4.473,6901,7.009,10374,7.782,10379,7.363,10380,5.427,10761,3.963,11868,5.51,14209,5.871,14210,8.419,14211,8.419,14212,8.419,14213,5.871,14214,8.419,14215,5.871,14216,5.871,14217,5.871,14218,5.871,14219,7.363,14220,5.871,14221,5.871,14222,5.871,14223,5.871,14224,5.871,14225,5.871,14226,5.871,14227,5.871,14228,5.871,14229,5.871,14230,5.871,14231,5.871,14232,5.871]],["title/injectables/LessonRule.html",[105,0.91,1893,5.493]],["body/injectables/LessonRule.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.073,8,0.885,27,0.488,29,0.926,30,0.001,31,0.662,32,0.164,33,0.572,35,1.391,95,0.142,101,0.008,103,0,104,0,105,0.98,107,1.171,111,2.675,116,3.448,127,0.917,187,0.703,188,4.088,199,3.709,214,1.532,216,1.63,217,1.539,227,1.191,234,0.789,305,1.384,347,2.644,371,2.431,380,2.95,461,3.176,806,1.978,1642,3.46,1750,5.555,1795,5.304,1798,7.776,1799,5.948,1804,2.945,1805,3.228,1813,6.278,1814,5.027,1823,6.869,1844,2.912,1861,4.439,1888,9.28,1889,8.54,1893,5.916,2002,4.726,2006,4.545,2013,3.228,2647,7,3105,4.662,3106,2.742,3228,3.093,3385,4.866,3386,3.279,3389,4.794,3392,3.279,3393,4.943,6161,3.46,6518,5.759,6790,4.25,6792,4.069,6793,6.406,14233,4.859,14234,7.324,14235,7.324,14236,7.324,14237,7.324,14238,7.324,14239,4.859,14240,7.324,14241,4.859,14242,7.324,14243,4.859,14244,4.859,14245,4.859,14246,7.324,14247,4.859,14248,7.324,14249,4.859,14250,6.771,14251,4.859,14252,4.859,14253,9.073,14254,4.859,14255,4.859,14256,4.492,14257,7.324,14258,7.324,14259,4.859,14260,9.815,14261,8.149,14262,7.324,14263,7.324,14264,4.859,14265,4.859,14266,4.492,14267,4.859]],["title/classes/LessonScope.html",[0,0.232,14219,5.947]],["body/classes/LessonScope.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,8,1.221,26,2.552,27,0.54,29,0.943,30,0.001,31,0.674,32,0.178,33,0.582,35,1.457,95,0.13,99,1.278,101,0.013,103,0.001,104,0.001,111,2.577,144,2.106,148,2.356,165,0.792,188,2.828,227,1.048,277,5.485,319,2.288,347,2.6,404,1.821,529,3.328,596,3.817,2394,6.71,2647,4.041,3452,4.811,5991,6.822,5992,6.822,5993,6.822,5998,6.822,5999,6.822,6000,5.255,6001,5.168,6002,5.255,6003,5.255,6012,5.168,6013,6.822,6014,5.255,6015,5.168,6016,5.255,6017,5.168,6018,6.822,6778,7.701,7135,6.058,9255,9.344,9259,9.344,10208,6.185,14219,11.241,14268,11.316,14269,9.344,14270,9.344,14271,7.078,14272,7.078,14273,6.697]],["title/injectables/LessonService.html",[105,0.91,5002,5.324]],["body/injectables/LessonService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.102,8,1.125,12,4.266,26,2.888,27,0.511,29,0.972,30,0.001,31,0.695,32,0.169,33,0.6,35,1.453,36,2.849,39,2.865,95,0.147,98,4.02,99,1.132,101,0.011,103,0.001,104,0.001,105,1.246,107,1.634,111,1.867,112,3.036,127,1.167,187,0.981,216,1.722,217,1.385,221,2.779,227,1.286,450,2.785,721,3.664,1358,4.316,1931,8.118,2647,6.336,2659,4.363,3579,3.336,3580,2.76,5002,7.293,5015,6.392,5017,4.109,5043,6.004,6298,9.047,6775,8.61,6776,8.61,6778,5.166,14165,5.93,14274,6.78,14275,9.314,14276,9.314,14277,9.314,14278,6.78,14279,6.78,14280,9.314,14281,6.78,14282,9.314,14283,6.78,14284,9.314,14285,6.78,14286,6.78,14287,9.314,14288,6.78,14289,6.78,14290,6.78,14291,6.78,14292,9.314,14293,6.78,14294,6.78,14295,6.78,14296,9.314,14297,6.78,14298,6.78]],["title/injectables/LessonUC.html",[105,0.91,14130,5.694]],["body/injectables/LessonUC.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,10,4.347,26,2.843,27,0.444,29,0.844,30,0.001,31,0.603,32,0.146,33,0.521,35,1.022,39,2.273,95,0.16,99,1.409,101,0.014,103,0.001,104,0.001,105,1.441,107,2.035,111,2.159,112,2.614,127,1.349,187,1.221,216,1.992,217,1.099,221,2.493,227,0.875,284,4.563,368,3.308,369,1.874,461,1.931,766,3.532,843,3.725,1129,4.856,1345,3.35,1801,5.06,1884,7.132,1982,5.06,2659,5.046,2725,3.825,3106,4.765,4151,6.82,4184,5.698,5002,10.502,5017,7.188,5043,4.765,6518,4.954,14130,9.02,14299,8.443,14300,8.443,14301,9.42,14302,8.443,14303,8.443,14304,8.443,14305,6.82,14306,8.443,14307,8.443,14308,8.443]],["title/classes/LessonUrlParams.html",[0,0.232,14139,5.324]],["body/classes/LessonUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2659,5.534,3795,5.749,5017,7.686,14139,9.25,14309,9.798,14310,9.798]],["title/classes/LessonUrlParams-1.html",[0,0.193,905,2.354,14139,4.427]],["body/classes/LessonUrlParams-1.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2659,5.534,3795,5.749,5017,7.686,14139,9.25,14311,9.798,14312,9.798]],["title/classes/LinkContentBody.html",[0,0.232,5645,4.517]],["body/classes/LinkContentBody.html",[0,0.457,2,0.662,3,0.014,4,0.014,5,0.007,7,0.09,9,2.799,27,0.245,30,0.001,31,0.64,32,0.186,47,0.848,83,1.817,95,0.139,99,0.991,101,0.022,103,0,104,0,144,3.144,150,3.43,163,1.828,165,0.665,240,1.884,364,1.082,369,1.318,374,1.896,375,3.773,376,1.359,379,1.924,404,2.06,467,3.601,470,4.782,471,4.016,524,3.417,999,5.404,1000,3.456,1031,1.861,1044,2.85,1770,3.45,2303,4.634,2553,4.223,2584,4.15,2848,2.868,2849,2.569,2889,2.942,3251,3.522,3253,3.522,3259,5.113,3262,3.044,3267,3.322,4009,3.781,4037,3.781,4038,7.095,4096,5.795,5562,6.392,5564,6.392,5566,6.392,5568,6.392,5570,6.392,5604,3.888,5643,6.581,5644,6.581,5645,7.181,5646,6.581,5647,6.581,5835,3.732,5836,6.846,6979,3.947,7039,3.781,8169,8.262,8170,5.826,8171,4.077,8174,6.581,8175,6.581,8176,4.077,8177,6.581,8178,3.642,8179,4.009,8180,6.581,8181,6.581,8182,3.947,8183,3.947,8184,3.947,8185,3.947,8186,4.077,8187,4.077,8188,4.077,8189,4.077,8190,4.077,14313,5.94]],["title/classes/LinkElement.html",[0,0.232,2832,4.45]],["body/classes/LinkElement.html",[0,0.19,2,0.622,3,0.013,4,0.013,5,0.007,7,0.084,8,0.98,27,0.555,29,0.983,30,0.001,31,0.703,32,0.176,33,0.607,35,1.563,36,1.74,47,0.979,55,1.748,59,1.738,95,0.104,101,0.016,103,0,104,0,112,2.107,116,2.527,144,3.385,148,3.788,150,3.635,165,0.635,208,2.084,221,1.291,227,1.207,334,0.599,347,1.934,363,5.164,371,1.538,379,2.379,404,1.723,595,2.717,596,3.754,661,3.41,687,2.378,692,3.031,728,4.015,806,2.271,884,3.823,1335,4.672,1345,2.213,1397,3.515,1790,3.426,1793,6.17,1865,3.696,2557,5.689,2627,2.344,2749,7.605,2752,5.778,2753,5.778,2754,5.778,2755,6.975,2756,5.778,2758,3.706,2759,4.975,2760,6.16,2762,5.668,2763,4.975,2764,6.038,2766,3.897,2767,4.282,2769,6.008,2770,3.897,2774,3.897,2776,3.706,2804,4.917,2832,6.871,3256,7.476,3945,4.055,3946,4.055,3947,4.055,3948,4.672,3956,3.505,3957,5.568,5186,7.096,5188,6.795,8634,3.973,8639,4.879,8641,4.879,9836,5.157,9838,5.157,14314,11.6,14315,5.579,14316,5.579,14317,5.579,14318,5.579,14319,5.579,14320,5.579,14321,5.579,14322,5.579,14323,5.579,14324,5.579,14325,5.579,14326,5.579,14327,5.579,14328,5.157,14329,5.157,14330,5.157,14331,7.5,14332,5.157,14333,5.157,14334,5.157,14335,4.879,14336,5.157]],["title/classes/LinkElementContent.html",[0,0.232,14337,5.694]],["body/classes/LinkElementContent.html",[0,0.343,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,27,0.515,29,0.596,30,0.001,31,0.426,32,0.181,33,0.604,34,1.92,47,0.959,95,0.145,99,1.271,101,0.017,103,0.001,104,0.001,127,1.413,150,4.324,165,0.789,364,2.187,375,4.757,376,1.741,379,2.83,467,3.528,475,3.721,618,3.113,966,3.873,1031,2.386,1397,4.182,2303,4.574,2578,3.394,2747,3.929,2884,4.049,2885,4.049,2889,3.77,3256,8.894,3436,5.319,3443,7.038,3448,4.668,3694,6.691,3698,5.849,3702,5.058,3704,5.058,3978,7.673,4096,6.05,5564,4.912,6196,4.115,6542,4.983,8650,6.15,8666,7.038,8668,7.038,14337,10.746,14338,11.862,14339,7.613,14340,6.376]],["title/classes/LinkElementContentBody.html",[0,0.232,8175,4.517]],["body/classes/LinkElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.905,5566,6.314,5568,6.314,5570,6.314,5604,3.804,5643,6.502,5644,6.502,5645,7.109,5646,6.502,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,7.109,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,6.502,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,14341,5.812,14342,5.812]],["title/entities/LinkElementNode.html",[380,1.445,3183,5.324]],["body/entities/LinkElementNode.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,27,0.482,30,0.001,32,0.159,33,0.511,47,0.972,95,0.159,96,2.239,101,0.018,103,0.001,104,0.001,150,4.276,165,0.827,208,3.058,217,1.065,227,0.849,240,4.224,334,0.879,364,2.129,380,2.244,381,2.723,398,2.412,404,1.903,405,2.181,617,4.537,1397,4.135,1790,4.935,2553,5.264,2557,5.161,2577,4.62,2578,3.649,2747,4.224,3143,5.53,3155,6.328,3183,8.268,3222,5.019,3244,9.235,3256,8.794,3598,6.474,3609,5.21,3619,5.079,4059,5.21,4061,5.21,6196,4.424,7136,5.143,9856,7.567,9857,7.159,14340,6.855,14343,11.416,14344,8.185,14345,9.235,14346,7.567,14347,7.567]],["title/interfaces/LinkElementNodeProps.html",[334,0.731,14345,5.947]],["body/interfaces/LinkElementNodeProps.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.161,33,0.519,47,0.997,95,0.16,96,2.3,101,0.018,103,0.001,104,0.001,150,4.463,165,0.841,208,3.141,217,1.094,227,0.872,240,3.957,334,0.903,336,2.012,380,2.282,398,2.477,404,2.133,405,2.24,617,4.661,1397,4.315,1790,4.998,2553,3.584,2557,5.251,2577,4.745,2578,3.748,2747,4.339,3143,5.626,3155,6.438,3183,6.583,3222,5.155,3244,9.395,3256,9.178,3598,7.258,3609,5.352,3619,5.217,4059,5.352,4061,5.352,6196,4.544,7136,5.282,14340,7.041,14343,7.772,14345,10.353,14346,7.772,14347,7.772]],["title/interfaces/LinkElementProps.html",[334,0.731,14335,5.947]],["body/interfaces/LinkElementProps.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,30,0.001,32,0.169,33,0.578,36,1.611,47,1.011,95,0.128,101,0.019,103,0.001,104,0.001,112,1.656,144,3.285,148,2.312,150,4.306,165,0.782,208,2.807,221,1.739,227,1.326,334,0.807,336,1.798,347,1.52,371,2.072,379,2.818,404,2.02,687,3.203,728,4.568,806,3.059,1345,2.981,1397,4.164,1865,4.547,2627,3.158,2749,6.051,2755,4.992,2759,4.607,2760,5.858,2763,4.607,2764,5.742,2804,6.795,2832,7.338,3256,8.855,3956,4.721,3957,6.852,5186,8.732,5188,8.36,8634,5.351,14314,6.946,14328,6.946,14329,6.946,14330,6.946,14331,9.229,14332,6.946,14333,6.946,14334,6.946,14335,8.732,14336,6.946]],["title/classes/LinkElementResponse.html",[0,0.232,3978,5.181]],["body/classes/LinkElementResponse.html",[0,0.342,2,0.847,3,0.018,4,0.018,5,0.009,7,0.115,27,0.515,29,0.595,30,0.001,31,0.426,32,0.184,33,0.367,34,2.123,47,0.915,95,0.145,99,1.268,101,0.017,103,0.001,104,0.001,127,1.412,150,3.904,165,0.788,364,2.186,375,4.294,376,1.738,379,2.555,467,3.526,475,3.714,618,3.107,966,3.866,1031,2.381,1397,3.775,2303,5.059,2578,3.388,2747,3.922,2883,4.973,2884,5.35,2885,5.35,2888,4.605,2889,4.98,3256,8.028,3436,5.309,3448,4.659,3694,7.401,3698,6.548,3702,5.048,3704,5.048,3978,9.51,4096,6.692,5564,6.49,6196,4.107,6542,4.973,8670,7.024,14337,10.049,14338,11.856,14340,6.364,14348,7.599,14349,7.599,14350,7.599,14351,7.599]],["title/classes/LinkElementResponseMapper.html",[0,0.232,5584,5.947]],["body/classes/LinkElementResponseMapper.html",[0,0.261,2,0.855,3,0.018,4,0.018,5,0.009,7,0.116,8,1.223,27,0.497,29,0.793,30,0.001,31,0.567,32,0.164,33,0.489,34,1.305,35,1.371,95,0.145,99,1.28,100,2.568,101,0.013,103,0.001,104,0.001,111,2.271,116,2.389,150,2.656,165,0.793,214,3.191,217,0.998,227,1.175,234,1.956,347,2.047,379,1.738,591,3.334,627,3.946,806,3.123,974,4.548,975,5.611,978,6.196,980,5.844,1397,2.568,1750,4.489,2051,4.37,2303,3.109,2547,8.42,2550,7.925,2551,7.925,2553,5.673,2554,7.711,2832,8.711,3256,5.463,3694,4.548,3698,5.879,3715,5.463,3978,9.176,4096,4.113,5183,7.117,5564,4.95,5581,6.007,5584,11.469,8672,9.176,8674,6.196,8676,6.196,8677,6.196,8678,6.196,14337,8.476,14352,12.52,14353,6.709,14354,11.327,14355,7.671,14356,7.671,14357,7.671,14358,7.671]],["title/classes/ListOauthClientsParams.html",[0,0.232,14359,5.947]],["body/classes/ListOauthClientsParams.html",[0,0.331,2,0.803,3,0.017,4,0.017,5,0.009,7,0.109,27,0.484,30,0.001,31,0.544,32,0.16,33,0.635,47,0.838,55,2.53,56,5.266,58,7.911,95,0.125,101,0.012,103,0.001,104,0.001,165,0.76,247,4.602,361,6.797,364,2.139,368,5.142,370,4.324,371,3.845,374,2.3,376,1.648,379,2.662,467,3.217,470,4.592,471,4.97,694,5.246,1018,6.263,1021,5.163,1036,9.837,1037,8.949,3469,7.817,3470,5.13,3475,7.056,3526,5.82,5442,6.985,5454,7.601,5526,8.596,7810,7.202,7990,10.992,8362,9.198,9888,9.115,14359,8.49,14360,12.261,14361,7.205,14362,7.205,14363,7.205,14364,9.706,14365,9.706,14366,7.205,14367,7.205,14368,9.706,14369,7.205,14370,7.205,14371,7.205]],["title/classes/LocalAuthorizationBodyParams.html",[0,0.232,14372,5.947]],["body/classes/LocalAuthorizationBodyParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.483,30,0.001,32,0.159,47,0.934,51,6.121,87,6.324,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,2.133,374,3.082,376,2.209,467,3.306,470,5.272,1001,7.553,7328,9.459,13737,8.446,14372,10.242,14373,12.602,14374,8.927,14375,8.927]],["title/injectables/LocalStrategy.html",[105,0.91,1555,5.947]],["body/injectables/LocalStrategy.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.088,8,1.014,27,0.442,29,0.84,30,0.001,31,0.601,32,0.154,33,0.519,35,1.188,36,2.301,39,1.574,47,0.984,51,5.918,59,3.342,66,6.923,87,6.67,94,5.745,95,0.169,101,0.01,103,0,104,0,105,1.123,107,1.409,111,2.582,112,2.607,127,1.051,138,2.554,187,0.845,206,2.974,216,1.984,217,1.539,221,2.737,227,0.87,234,1.92,305,1.665,334,0.628,369,1.297,404,1.512,406,1.901,441,7.302,450,2.401,461,1.92,491,2.876,513,4.24,639,4.249,789,7.974,801,3.395,802,4.249,803,3.627,983,4.896,1068,4.896,1069,5.113,1549,8.792,1555,7.34,1562,4.345,1573,4.896,1605,3.466,1639,3.721,1732,4.345,2004,8.117,4519,4.012,6098,5.493,7062,4.345,11342,5.113,11350,4.454,11999,4.896,12659,8.402,13158,4.578,13162,7.028,13167,4.896,13795,9.076,13820,5.404,13823,5.404,13825,5.404,13826,5.404,13828,5.404,14376,5.846,14377,8.392,14378,5.846,14379,9.076,14380,5.846,14381,5.846,14382,10.729,14383,5.846,14384,8.392,14385,8.392,14386,5.846,14387,8.392,14388,5.846,14389,5.846,14390,5.846,14391,5.846,14392,5.846,14393,5.846,14394,5.846,14395,8.392,14396,5.846,14397,5.846,14398,5.846,14399,5.846,14400,5.846,14401,5.113,14402,5.846,14403,5.846,14404,5.846,14405,5.846]],["title/interfaces/Loggable.html",[334,0.731,1464,3.132]],["body/interfaces/Loggable.html",[3,0.024,4,0.024,5,0.012,7,0.153,8,1.457,27,0.418,30,0.001,35,1.228,95,0.13,101,0.017,103,0.001,104,0.001,208,3.789,334,1.09,336,2.427,1464,5.554,1465,6.643,1469,6.595,8288,6.691,8289,6.956,14406,10.143,14407,10.143]],["title/injectables/Logger.html",[105,0.91,2356,2.793]],["body/injectables/Logger.html",[0,0.233,3,0.025,4,0.016,5,0.008,7,0.103,8,1.133,27,0.525,29,0.975,30,0.001,31,0.727,32,0.173,33,0.602,35,1.458,47,0.82,95,0.155,101,0.011,103,0.001,104,0.001,105,1.255,107,1.651,111,2.306,116,4.296,127,0.858,144,1.884,148,4.05,165,0.735,187,0.991,199,4.042,216,1.267,217,1.497,277,3.785,319,2.047,336,1.639,839,3.266,1216,4.507,1464,6.407,2356,4.949,2969,4.623,5460,6.138,7803,4.42,8331,10.061,8341,5.991,8342,7.344,8343,5.533,8344,6.332,8345,5.991,8346,10.633,13873,8.67,13882,8.67,13894,6.332,13905,10.538,14408,6.849,14409,8.203,14410,9.379,14411,9.379,14412,9.379,14413,6.849,14414,9.379,14415,6.849,14416,9.379,14417,6.849,14418,6.849,14419,9.379,14420,6.849,14421,6.849,14422,6.849,14423,6.849,14424,6.332]],["title/modules/LoggerModule.html",[425,1.812,438,3.185]],["body/modules/LoggerModule.html",[0,0.262,3,0.018,4,0.018,5,0.009,30,0.001,95,0.171,101,0.013,103,0.001,104,0.001,187,1.111,204,2.608,227,0.797,234,1.248,336,1.839,369,2.249,371,2.119,425,3.021,427,2.776,428,2.987,429,3.075,430,3.062,431,3.049,432,4.172,433,4.285,438,6.499,442,4.055,443,3.011,444,2.939,449,3.049,565,5.051,789,7.889,801,4.464,837,5.473,839,3.665,1141,4.712,2356,5.726,2357,6.284,3588,5.713,7803,4.959,8325,11.553,8342,8.878,11929,6.436,14425,7.686,14426,7.686,14427,7.686,14428,7.686,14429,7.105,14430,7.686,14431,7.686,14432,7.686,14433,6.436,14434,7.686,14435,7.686,14436,7.686,14437,7.686,14438,7.686,14439,7.686,14440,7.686,14441,7.686,14442,7.686,14443,7.686,14444,7.686,14445,7.686,14446,7.686,14447,7.686,14448,7.686]],["title/classes/LoggingUtils.html",[0,0.232,8343,5.493]],["body/classes/LoggingUtils.html",[0,0.276,2,0.904,3,0.019,4,0.019,5,0.01,7,0.122,8,1.267,27,0.48,29,0.911,30,0.001,31,0.651,32,0.143,33,0.562,35,1.408,47,0.909,59,2.524,95,0.149,101,0.014,103,0.001,104,0.001,111,2.332,145,2.945,199,4.649,208,3.027,217,1.601,227,1.206,336,1.939,359,4.056,627,4.175,1216,4.558,1345,3.215,1464,6.118,1469,4.012,8343,8.473,10820,8.473,13874,11.372,13907,7.491,13908,7.491,14449,8.103,14450,10.49,14451,10.49,14452,10.49,14453,10.49,14454,8.103,14455,11.632,14456,10.49,14457,8.103,14458,10.49,14459,8.103,14460,8.103,14461,8.103,14462,10.49]],["title/controllers/LoginController.html",[481,2.611,1510,5.947]],["body/controllers/LoginController.html",[0,0.165,3,0.011,4,0.011,5,0.006,7,0.073,8,0.882,27,0.362,29,0.688,30,0.001,31,0.492,32,0.185,33,0.425,35,1.064,36,2.369,95,0.158,100,1.619,101,0.008,103,0,104,0,112,2.663,163,3.4,187,0.699,215,1.543,216,0.894,217,1.438,221,2.034,227,0.911,334,0.519,355,5.095,364,1.601,367,5.269,376,1.106,379,3.021,447,2.004,461,2.9,481,1.857,483,2.306,491,5.643,498,7.583,502,6.856,503,7.032,504,8.298,505,8.126,506,7.231,507,9.606,513,3.687,522,7.667,543,4.981,553,5.934,554,7.738,555,2.514,558,2.32,563,5.268,564,4.43,565,4.381,731,3.473,845,8.784,1187,4.191,1188,4.142,1189,4.142,1190,4.381,1191,4.79,1410,2.729,1508,7.361,1510,6.383,1513,4.47,1562,3.594,1743,8.982,1744,3.378,1920,3.078,2614,6.389,2615,6.259,2928,3.515,2929,2.781,3090,4.779,3709,3.212,4466,6.418,5442,4.157,6154,6.505,6833,6.942,7077,7.278,7483,3.378,7995,8.213,8313,4.049,10609,5.425,12927,3.319,13136,4.47,13735,8.199,13791,7.361,14372,8.563,14463,4.835,14464,7.298,14465,7.298,14466,8.79,14467,4.835,14468,4.835,14469,10.214,14470,4.835,14471,8.605,14472,8.79,14473,4.835,14474,4.835,14475,4.835,14476,4.835,14477,4.835,14478,4.835,14479,8.199,14480,4.835,14481,4.835,14482,4.835,14483,4.835,14484,6.112,14485,4.229,14486,4.835,14487,4.835,14488,4.835,14489,4.835,14490,8.79,14491,4.835,14492,4.835,14493,8.79,14494,7.298,14495,4.835,14496,4.835,14497,4.835,14498,4.835,14499,4.835,14500,4.835,14501,4.835,14502,4.835]],["title/classes/LoginDto.html",[0,0.232,1743,5.324]],["body/classes/LoginDto.html",[0,0.343,2,1.123,3,0.024,4,0.024,5,0.012,7,0.152,27,0.495,29,0.789,30,0.001,31,0.564,32,0.163,33,0.487,47,0.856,101,0.017,103,0.001,104,0.001,127,1.261,165,0.94,405,3.199,595,3.371,1625,8.524,1743,10.63,14503,10.067,14504,12.006,14505,8.431,14506,8.431]],["title/classes/LoginRequestBody.html",[0,0.232,14507,5.493]],["body/classes/LoginRequestBody.html",[0,0.299,2,0.695,3,0.015,4,0.015,5,0.008,7,0.094,27,0.512,30,0.001,32,0.169,33,0.654,47,0.788,55,2.191,95,0.131,101,0.01,103,0.001,104,0.001,116,1.942,165,0.688,204,4.212,247,3.442,277,3.546,339,8.211,340,5.036,344,9.721,345,7.966,347,1.777,361,5.64,364,2.261,368,5.049,369,1.95,370,4.245,371,3.808,373,4.71,374,1.99,376,1.426,379,2.305,404,1.583,461,2.01,467,2.669,471,4.124,502,3.869,506,4.081,564,2.286,565,4.379,596,3.552,728,4.224,1035,6.138,1142,2.887,1342,3.917,1421,4.532,1433,3.823,1820,7.497,1909,6.88,2075,3.426,2257,7.322,2468,5.266,3580,3.577,4588,4.534,4669,6.88,5406,3.869,5432,10.239,5433,7.358,5434,7.358,5435,6.88,5438,4.081,5440,5.221,5441,7.684,5442,5.795,5443,7.684,5444,8.122,5445,7.684,5447,5.763,5448,8.122,5449,6.386,5450,10.211,5451,6.531,5452,8.122,5454,8.649,5455,4.75,5456,5.453,5457,5.453,5458,5.453,5459,5.763,5460,4.081,5461,6.694,5462,6.138,5463,4.75,5464,5.036,5465,4.75,5466,5.221,5467,5.036,5468,5.763,5469,5.221,5470,5.763,5471,4.75,5472,5.763,5473,5.453,5474,5.221,5475,5.453,5476,5.763,5478,7.097,5479,5.763,14507,7.097,14508,10.173,14509,6.235,14510,6.235]],["title/classes/LoginResponse.html",[0,0.232,14471,4.842]],["body/classes/LoginResponse.html",[0,0.335,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.488,29,0.771,30,0.001,31,0.551,32,0.161,33,0.476,47,0.845,95,0.126,101,0.016,103,0.001,104,0.001,127,1.233,165,0.928,364,1.793,376,2.252,405,3.157,467,3.334,595,3.296,1625,8.443,14471,9.609,14505,8.245,14506,8.245,14511,9.845,14512,11.847]],["title/classes/LoginResponse-1.html",[0,0.193,905,2.354,14471,4.026]],["body/classes/LoginResponse-1.html",[0,0.281,2,0.637,3,0.014,4,0.014,5,0.007,7,0.086,27,0.535,29,0.447,30,0.001,31,0.32,32,0.176,33,0.64,34,1.996,47,0.951,70,5.576,72,3.74,77,6.169,95,0.136,101,0.01,103,0,104,0,127,0.716,137,7.892,145,3.137,150,2.858,165,0.647,290,4.843,339,6.136,346,5.254,347,1.67,349,5.571,355,4.716,361,7.272,364,2.334,367,5.907,368,3.234,369,2.151,370,2.719,371,2.927,374,1.823,376,1.307,379,2.742,461,2.684,467,3.442,470,3.453,471,4.905,522,6.464,1013,4.439,1518,6.902,1820,5.122,2241,5.571,2257,6.434,2450,3.255,3303,5.878,3433,3.991,3580,5.139,4051,4.615,4194,6.902,5477,5.254,5484,8.117,5485,8.117,5486,8.117,5487,7.829,5490,8.477,5492,4.997,5498,8.117,5499,7.631,5507,8.117,5511,5.571,5515,7.631,5516,7.631,5519,4.997,5520,5.281,5521,5.281,5522,5.281,5531,7.631,11944,6.136,13383,6.668,14471,8.616,14513,5.713,14514,8.96,14515,8.255,14516,5.713,14517,5.713,14518,5.713,14519,7.22,14520,5.713,14521,5.713,14522,8.255,14523,5.713,14524,5.713,14525,5.713,14526,8.255,14527,8.255,14528,8.255,14529,5.713,14530,5.713,14531,5.713]],["title/classes/LoginResponseMapper.html",[0,0.232,14485,5.947]],["body/classes/LoginResponseMapper.html",[0,0.296,2,0.968,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,27,0.452,29,0.859,30,0.001,31,0.614,32,0.149,33,0.53,35,1.327,47,0.857,59,2.703,95,0.141,100,2.906,101,0.014,103,0.001,104,0.001,217,1.426,227,1.137,234,1.78,627,4.078,974,5.146,1016,4.431,1625,7.282,1743,10.789,1744,6.064,7075,10.194,14471,9.267,14484,10.898,14485,9.587,14532,12.014,14533,10.961,14534,10.961,14535,10.961,14536,7.268,14537,10.961,14538,8.679,14539,10.961]],["title/injectables/LoginUc.html",[105,0.91,1508,5.694]],["body/injectables/LoginUc.html",[0,0.294,3,0.02,4,0.02,5,0.01,7,0.13,8,1.319,27,0.45,29,0.855,30,0.001,31,0.611,32,0.148,33,0.528,35,1.044,36,2.341,95,0.17,100,2.887,101,0.014,103,0.001,104,0.001,105,1.46,107,2.079,112,2.64,127,1.08,187,1.247,206,4.387,215,2.752,216,1.595,217,1.559,221,1.996,227,0.894,231,4.78,234,1.4,334,0.926,491,6.194,1508,9.142,1549,9.359,1573,7.222,1625,5.729,1719,9.379,1742,7.222,1743,10.39,4654,9.548,7062,6.41,14540,8.623,14541,10.916,14542,8.623,14543,8.623,14544,10.916,14545,8.623,14546,7.972,14547,8.623,14548,8.623,14549,8.623,14550,8.623]],["title/injectables/Lti11EncryptionService.html",[105,0.91,14551,5.947]],["body/injectables/Lti11EncryptionService.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,27,0.348,29,0.661,30,0.001,31,0.473,32,0.115,33,0.408,35,1.022,47,0.992,95,0.152,101,0.014,103,0.001,104,0.001,105,1.441,107,2.035,108,6.256,116,3.694,150,4.326,163,2.598,187,1.221,217,1.544,227,0.875,231,6.925,234,1.371,235,4.765,1180,5.105,1618,7.256,1738,6.137,1820,8.188,2035,5.821,2265,7.804,2929,4.856,5442,7.117,6528,6.012,14551,9.42,14552,10.77,14553,8.443,14554,9.956,14555,10.77,14556,8.443,14557,7.07,14558,10.77,14559,7.804,14560,8.443,14561,7.829,14562,8.443,14563,8.443,14564,8.443,14565,8.443,14566,8.443,14567,8.443,14568,8.443,14569,8.443]],["title/classes/Lti11ToolConfig.html",[0,0.232,7269,4.943]],["body/classes/Lti11ToolConfig.html",[0,0.26,2,0.851,3,0.018,4,0.018,5,0.009,7,0.115,27,0.555,29,0.597,30,0.001,31,0.427,32,0.187,33,0.546,47,0.959,95,0.129,101,0.013,103,0.001,104,0.001,127,0.955,165,0.79,198,3.705,200,2.376,209,4.445,238,6.317,404,1.817,405,2.687,406,2.481,595,2.554,596,3.076,1618,6.561,2035,6.105,2559,6.022,2561,6.388,2562,9.29,2564,6.671,2565,5.589,2566,6.671,2567,6.671,2569,5.432,7112,7.393,7118,7.288,7120,7.288,7122,7.288,7137,5.544,7138,6.161,7139,5.973,7140,6.388,7143,5.811,7144,6.161,7147,5.811,7148,6.161,7151,5.811,7152,6.161,7266,8.211,7269,9.084,7293,5.235,7298,8.043,14570,13.293,14571,9.321,14572,7.051,14573,7.051,14574,7.051,14575,7.051,14576,7.051,14577,6.671,14578,6.671]],["title/classes/Lti11ToolConfigCreateParams.html",[0,0.232,8617,5.694]],["body/classes/Lti11ToolConfigCreateParams.html",[0,0.333,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.543,30,0.001,32,0.185,33,0.473,47,0.961,95,0.152,101,0.012,103,0.001,104,0.001,154,5.931,165,0.767,198,3.544,200,2.272,209,4.35,238,6.179,364,2.397,374,2.329,375,3.729,376,1.669,404,1.764,467,3.453,470,5.151,471,3.968,596,2.986,1044,3.5,1618,6.417,2035,5.971,2559,5.866,2565,6.124,2583,8.951,2584,7.718,2585,5.893,2586,5.893,2587,5.893,2588,5.893,2589,5.893,5825,5.304,7112,7.23,7118,7.128,7120,7.128,7122,7.128,7266,8.031,7298,7.867,8616,5.893,8617,8.198,8624,6.381,14579,11.971,14580,6.745,14581,7.296,14582,6.745,14583,6.745,14584,6.745,14585,7.296,14586,7.296,14587,6.745,14588,9.049,14589,6.745,14590,6.745]],["title/classes/Lti11ToolConfigEntity.html",[0,0.232,8684,5.493]],["body/classes/Lti11ToolConfigEntity.html",[0,0.249,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.534,29,0.574,30,0.001,31,0.41,32,0.176,33,0.535,47,0.939,95,0.152,96,2.003,101,0.012,103,0.001,104,0.001,127,0.917,165,0.769,198,3.557,200,2.281,209,4.409,240,4.179,364,2.311,369,2.178,370,2.412,386,4.171,398,2.157,404,1.319,405,2.615,595,2.452,617,4.059,1031,3.863,1618,6.428,2035,5.982,2559,5.968,2565,4.059,2572,6.132,2574,5.064,2575,7.927,2576,6.405,2577,4.133,2578,3.265,7112,7.244,7118,7.141,7120,7.141,7122,7.141,7137,5.323,7138,5.915,7139,5.734,7140,6.132,7143,5.579,7144,5.915,7147,5.579,7148,5.915,7151,5.579,7152,5.915,7179,6.405,7266,8.045,7293,6.735,7298,7.881,8684,9.959,14577,6.405,14578,6.405,14591,13.173,14592,9.813,14593,7.322,14594,7.322,14595,7.322,14596,7.322,14597,7.322]],["title/classes/Lti11ToolConfigResponse.html",[0,0.232,9212,5.694]],["body/classes/Lti11ToolConfigResponse.html",[0,0.248,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.543,29,0.571,30,0.001,31,0.409,32,0.185,33,0.534,47,0.939,95,0.142,101,0.012,103,0.001,104,0.001,127,0.914,165,0.767,198,3.544,200,2.272,209,4.35,238,6.179,364,2.359,375,4.208,376,1.669,404,1.764,405,2.608,406,2.373,467,3.613,595,2.443,596,2.986,2035,5.971,2559,5.866,2565,6.124,2569,5.195,2578,3.253,2579,5.195,2592,5.893,2593,9.947,2595,6.381,2596,6.381,2597,5.893,7112,7.23,7118,7.128,7120,7.128,7122,7.128,7137,5.304,7138,5.893,7143,5.559,7144,5.893,7147,5.559,7148,5.893,7151,5.559,7152,5.893,7266,8.031,7293,5.007,7298,7.867,9212,10.312,14577,6.381,14578,6.381,14598,12.95,14599,9.049,14600,6.745,14601,6.745,14602,6.745,14603,6.381]],["title/classes/Lti11ToolConfigUpdateParams.html",[0,0.232,9135,5.694]],["body/classes/Lti11ToolConfigUpdateParams.html",[0,0.332,2,0.809,3,0.017,4,0.017,5,0.009,7,0.11,27,0.542,30,0.001,32,0.185,33,0.57,47,0.96,95,0.151,101,0.012,103,0.001,104,0.001,154,5.923,165,0.764,198,3.525,200,2.26,209,4.345,238,6.162,364,2.394,374,2.316,375,4.197,376,1.66,404,1.758,467,3.393,470,5.141,471,4.466,596,2.975,1044,3.481,1618,6.399,2035,5.954,2559,5.858,2565,6.107,2583,8.935,2584,6.814,2585,5.862,2586,5.862,2587,5.862,2588,5.862,2589,5.862,5825,7.09,7112,7.211,7118,7.109,7120,7.109,7122,7.109,7266,8.009,7298,7.845,9135,8.168,9420,6.077,9422,6.347,9424,6.347,14579,11.955,14580,6.708,14582,6.708,14584,6.708,14588,9.016,14589,6.708,14590,6.708,14604,7.256,14605,7.256,14606,7.256,14607,6.708]],["title/classes/LtiRoleMapper.html",[0,0.232,14608,6.286]],["body/classes/LtiRoleMapper.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,8,1.34,27,0.365,29,0.693,30,0.001,31,0.496,32,0.12,33,0.428,35,1.071,95,0.142,99,1.477,101,0.015,103,0.001,104,0.001,108,6.445,116,2.757,145,3.069,198,4.299,217,1.578,227,0.918,627,3.72,696,4.601,4571,7.133,9718,5.88,9719,5.974,12009,5.974,12012,6.743,14608,10.258,14609,11.097,14610,8.851,14611,11.097,14612,11.097,14613,8.851,14614,13.923,14615,8.182,14616,8.851,14617,11.097,14618,8.851,14619,11.097,14620,8.851,14621,8.851,14622,8.851,14623,8.851,14624,11.097,14625,8.851]],["title/entities/LtiTool.html",[380,1.445,7116,5.055]],["body/entities/LtiTool.html",[0,0.14,3,0.01,4,0.01,5,0.005,7,0.062,26,1.369,27,0.542,30,0.001,31,0.547,32,0.18,33,0.643,47,0.956,49,3.13,95,0.116,96,1.766,97,1.783,101,0.016,103,0,104,0,116,2.011,144,1.134,145,2.28,150,2.755,165,0.506,216,0.762,227,0.428,234,0.669,236,4.669,240,4.196,319,3.525,334,0.443,347,2.386,364,2.396,369,3.009,370,4.358,371,3.727,380,1.372,381,1.371,386,7.4,394,3.678,398,1.215,399,2.561,400,1.819,402,1.709,404,0.743,405,1.099,406,1.341,540,4.693,701,1.458,853,2.128,1019,4.621,1031,3.063,1498,2.499,1602,6.29,1618,4.621,1858,2.159,2035,4.866,2095,1.636,2362,2.371,2545,2.193,2632,2.973,3110,3.966,4281,1.801,6196,2.228,6499,3.606,6527,3.33,6540,3.33,7101,6.959,7102,3.811,7103,5.407,7104,7.272,7105,5.968,7106,5.968,7107,3.811,7108,3.811,7109,5.968,7110,3.811,7111,3.811,7112,6.397,7113,5.968,7114,5.968,7115,3.811,7116,4.799,7117,6.23,7118,5.134,7119,6.23,7120,5.134,7121,5.407,7122,5.134,7123,6.23,7124,6.23,7125,5.915,7126,5.968,7127,7.355,7128,3.33,7129,3.228,7130,3.811,7131,5.666,7132,6.23,7133,5.065,7134,5.915,7135,4.769,7136,2.59,7137,2.997,7138,3.33,7139,3.228,7140,3.453,7141,3.453,7142,3.811,7143,3.141,7144,3.33,7145,3.453,7146,3.811,7147,3.141,7148,3.33,7149,3.228,7150,3.33,7151,3.141,7152,3.33,7153,3.453,7154,3.811,7155,3.453,7156,3.811,7157,3.453,7158,3.811,7159,3.811,7160,3.811,7161,3.811,7162,3.453,7163,3.811,7164,3.453,7165,3.811,7166,3.141,7167,3.33,7168,2.88,7169,3.065,7170,3.453,7171,3.811,7172,3.065,7173,3.33,14626,4.123,14627,4.123,14628,4.123,14629,4.123,14630,4.123,14631,4.123,14632,4.123,14633,4.123,14634,4.123,14635,4.123,14636,4.123,14637,4.123,14638,4.123,14639,4.123,14640,4.123,14641,4.123,14642,4.123,14643,4.123,14644,4.123,14645,4.123,14646,4.123,14647,4.123,14648,4.123]],["title/classes/LtiToolDO.html",[0,0.232,7182,4.751]],["body/classes/LtiToolDO.html",[0,0.282,2,0.641,3,0.014,4,0.014,5,0.007,7,0.087,26,2.061,27,0.572,29,0.45,30,0.001,31,0.596,32,0.189,33,0.673,34,1.41,47,1.001,95,0.125,101,0.014,103,0,104,0,127,0.72,144,2.674,150,3.367,165,0.649,236,5.705,347,2.596,404,1.494,596,1.753,1618,5.648,1790,2.426,1872,6.183,2035,6.1,2095,2.28,2545,3.056,3110,4.847,4385,5.025,5708,4.177,6196,3.105,7104,7.854,7112,6.364,7117,7.614,7118,6.274,7119,7.614,7120,6.274,7122,6.274,7123,7.614,7124,7.614,7125,7.228,7129,7.614,7131,6.924,7132,7.614,7133,6.189,7134,7.228,7135,5.828,7137,6.025,7139,4.499,7141,4.812,7143,4.378,7145,4.812,7147,4.378,7149,4.499,7151,4.378,7153,4.812,7155,4.812,7157,4.812,7162,4.812,7164,4.812,7166,4.378,7168,4.014,7170,4.812,7172,4.271,7174,8.143,7175,5.311,7176,5.311,7179,5.025,7180,4.378,7181,4.499,7182,7.885,7183,6.491,7184,4.499,7185,5.311,7186,5.311,7187,5.311,7188,5.311,7189,5.311,7190,5.311,7191,5.311,7192,5.025,7193,5.311,7194,5.311,7195,5.311,7196,5.311,7197,5.311,7198,5.311,7199,5.311,7200,5.311,7201,5.311,7202,5.311,7203,5.311,7204,5.311,14649,8.289,14650,5.746,14651,5.746,14652,5.746,14653,5.746,14654,5.746,14655,5.746,14656,5.746,14657,5.746,14658,5.746,14659,5.746,14660,5.746,14661,5.746,14662,5.746,14663,5.746,14664,5.746,14665,5.746,14666,5.746,14667,5.746,14668,5.746]],["title/classes/LtiToolFactory.html",[0,0.232,14669,6.286]],["body/classes/LtiToolFactory.html",[0,0.157,2,0.513,3,0.011,4,0.011,5,0.006,7,0.07,8,0.849,27,0.534,29,1.022,30,0.001,31,0.725,32,0.18,33,0.606,34,1.451,35,1.443,47,0.829,55,2.429,59,3.203,95,0.123,99,0.768,101,0.008,103,0,104,0,127,0.577,138,3.071,144,3.277,148,1.417,150,2.434,165,0.551,185,4.873,216,1.3,217,1.11,227,0.884,234,0.747,236,2.701,319,3.475,359,2.451,366,2.575,369,1.56,371,2.352,379,1.933,380,2.185,381,2.339,404,1.267,538,3.168,596,3.872,627,2.157,660,7.173,661,4.556,662,5.388,665,3.968,666,5.388,667,5.649,668,3.968,669,3.968,670,3.968,671,3.897,672,4.37,673,4.814,674,6.391,675,5.701,676,6.997,677,2.622,682,2.598,683,3.968,684,2.622,685,5.039,686,5.203,687,4.069,688,4.892,689,3.932,690,2.598,691,2.448,692,4.05,693,2.53,694,2.488,695,2.598,696,4.963,697,2.622,698,4.728,699,2.598,700,7.164,701,4.111,702,6.563,703,2.622,704,4.223,705,2.598,706,2.622,707,2.598,708,2.622,709,2.598,710,2.93,711,2.729,712,2.598,713,6.01,714,2.622,715,2.598,716,3.968,717,3.71,718,3.968,719,2.622,720,2.509,721,2.488,722,2.052,723,2.598,724,2.598,725,2.598,726,2.622,727,2.622,728,1.76,729,2.598,730,2.622,731,2.778,732,2.598,733,2.622,735,2.674,737,4.214,1618,4.083,2035,3.8,3110,2.295,4306,3.855,5530,2.295,7103,3.855,7104,3.718,7112,3.013,7116,5.226,7117,5.505,7118,4.536,7119,5.505,7120,4.536,7122,2.97,7123,3.605,7124,3.605,7125,3.422,7129,5.505,7131,6.074,7132,5.505,7133,2.93,7134,5.226,7135,2.759,7174,3.855,8704,6.499,8709,6.499,11504,3.507,14669,7.885,14670,4.603,14671,7.03,14672,4.603,14673,7.03,14674,4.603,14675,4.603,14676,4.603,14677,4.603,14678,4.603,14679,4.603]],["title/modules/LtiToolModule.html",[425,1.812,14680,5.694]],["body/modules/LtiToolModule.html",[0,0.309,3,0.021,4,0.021,5,0.011,30,0.001,95,0.165,101,0.015,103,0.001,104,0.001,187,1.312,425,3.266,427,3.276,428,3.525,429,3.629,430,3.614,431,3.598,432,4.51,433,4.632,442,4.508,443,3.554,444,3.468,450,3.726,766,3.794,1467,2.895,2357,6.121,4584,9.768,5338,7.326,14680,11.769,14681,9.07,14682,9.07,14683,9.07,14684,11.823,14685,8.384,14686,9.07]],["title/injectables/LtiToolRepo.html",[105,0.91,4584,4.943]],["body/injectables/LtiToolRepo.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.806,10,2.694,12,3.057,18,3.373,26,2.412,27,0.536,29,1.01,30,0.001,31,0.746,32,0.175,33,0.623,34,1.567,35,1.561,36,2.682,40,2.077,47,0.833,95,0.128,96,1.177,99,0.718,101,0.007,103,0,104,0,105,0.893,107,1.037,111,2.281,112,2.934,148,1.324,150,2.311,165,0.337,167,2.456,187,0.622,217,1.298,221,1.893,227,1.18,234,1.328,236,3.917,247,1.686,305,1.226,347,1.654,359,2.327,380,2.339,381,1.431,398,1.268,404,1.203,511,2.174,595,1.441,596,3.815,661,4.782,878,4.664,884,3.145,885,5.039,915,2.386,1618,3.877,1790,4.211,2035,3.608,2051,2.452,2343,8.848,2345,4.753,2346,4.753,2347,4.753,2348,4.753,2349,4.664,2350,4.664,2351,4.753,2352,4.664,2353,4.753,2360,3.065,2362,5.299,2363,3.065,2365,3.065,2367,2.817,2368,4.664,2369,3.065,2371,3.065,2373,4.753,2377,4.753,2379,4.505,2380,4.664,2382,3.065,2384,2.579,2385,2.639,2386,3.065,2388,3.065,2390,3.007,2391,3.065,2408,3.007,2409,6.079,2431,5.59,3110,3.327,4369,2.777,4370,3.37,4584,4.852,5862,3.128,5863,3.128,5864,3.128,5865,3.128,5866,3.128,5867,3.128,5868,3.128,5869,3.128,5870,3.128,7103,8.837,7112,2.817,7116,8.685,7117,5.227,7118,4.307,7119,5.227,7120,4.307,7121,3.604,7122,4.307,7123,5.227,7124,5.227,7125,7.844,7129,5.227,7131,7.514,7132,5.227,7133,4.249,7134,4.962,7135,4.001,7182,8.162,8994,5.59,9002,5.59,9007,3.279,9068,3.764,9072,3.978,9073,3.978,9091,3.764,9092,3.978,9096,3.978,9097,3.978,10403,3.978,11504,3.279,14687,4.303,14688,6.171,14689,6.675,14690,3.978,14691,6.675,14692,4.303,14693,4.303,14694,6.675,14695,4.303,14696,4.303,14697,4.303,14698,4.303,14699,4.303,14700,3.604,14701,4.303,14702,4.303,14703,4.303,14704,4.303,14705,4.303,14706,4.303,14707,4.303,14708,4.303,14709,4.303,14710,4.303,14711,4.303,14712,3.978,14713,4.303,14714,4.303,14715,4.303,14716,4.303,14717,4.303,14718,4.303,14719,4.303,14720,4.303,14721,4.303,14722,4.303,14723,4.303,14724,4.303,14725,4.303,14726,4.303,14727,4.303,14728,4.303,14729,4.303,14730,4.303,14731,4.303,14732,4.303,14733,4.303,14734,4.303,14735,4.303,14736,4.303,14737,4.303]],["title/injectables/LtiToolService.html",[105,0.91,14684,5.694]],["body/injectables/LtiToolService.html",[0,0.303,3,0.021,4,0.021,5,0.011,7,0.135,8,1.346,27,0.459,29,0.873,30,0.001,31,0.624,32,0.151,33,0.539,35,1.078,36,2.607,47,0.867,95,0.156,101,0.015,103,0.001,104,0.001,105,1.491,107,2.148,112,2.68,116,3.787,127,1.116,187,1.288,215,2.844,216,1.647,217,1.159,227,0.924,347,2.459,450,3.66,4584,9.725,5345,7.197,5530,4.441,7116,8.283,7125,9.47,7182,6.224,11504,6.788,14684,9.332,14685,11.24,14688,10.301,14738,12.159,14739,8.909,14740,8.909,14741,11.143,14742,8.909,14743,8.909]],["title/interfaces/Mail.html",[334,0.731,1498,4.121]],["body/interfaces/Mail.html",[3,0.019,4,0.019,5,0.01,7,0.123,30,0.001,31,0.457,32,0.178,33,0.652,47,1.025,77,5.189,101,0.014,103,0.001,104,0.001,165,0.825,334,1.429,336,1.951,404,2.222,1482,7.828,1483,6.211,1484,8.672,1485,8.023,1486,6.211,1487,4.559,1488,7.828,1489,5.926,1490,6.211,1491,5.926,1492,8.672,1493,6.211,1494,9.166,1495,8.023,1496,8.023,1497,9.166,1498,7.924,1499,9.166,1500,9.166,1501,9.394,1502,9.394]],["title/interfaces/MailAttachment.html",[334,0.731,1484,5.055]],["body/interfaces/MailAttachment.html",[3,0.021,4,0.021,5,0.01,7,0.131,30,0.001,31,0.707,32,0.163,47,1.024,77,5.524,101,0.014,103,0.001,104,0.001,165,0.859,334,1.45,336,2.077,404,2.274,1482,8.148,1483,6.612,1484,9.381,1485,8.351,1486,9.615,1487,7.058,1488,8.148,1489,6.309,1490,6.612,1491,6.309,1492,8.931,1493,6.612,1494,8.148,1495,8.351,1496,8.351,1497,8.148,1498,6.643,1499,6.452,1500,6.452,1501,6.612,1502,6.612]],["title/interfaces/MailContent.html",[334,0.731,1492,5.055]],["body/interfaces/MailContent.html",[3,0.021,4,0.021,5,0.01,7,0.131,30,0.001,31,0.487,32,0.149,33,0.531,47,1.015,77,8.039,101,0.015,103,0.001,104,0.001,165,0.86,334,1.451,336,2.081,404,2.276,1482,9.389,1483,6.627,1484,8.939,1485,8.362,1486,6.627,1487,4.864,1488,9.389,1489,6.323,1490,6.627,1491,6.323,1492,9.389,1493,9.622,1494,8.159,1495,8.362,1496,8.362,1497,8.159,1498,6.652,1499,6.466,1500,6.466,1501,6.627,1502,6.627]],["title/modules/MailModule.html",[425,1.812,14744,5.324]],["body/modules/MailModule.html",[0,0.316,3,0.022,4,0.022,5,0.011,8,1.121,27,0.383,29,0.727,30,0.001,31,0.52,32,0.126,33,0.449,35,1.123,47,0.815,95,0.147,101,0.015,103,0.001,104,0.001,187,1.342,227,0.962,334,0.997,425,3.3,427,3.352,432,3.414,433,3.507,627,3.506,701,3.281,836,5.389,1297,6.745,1298,7.843,1301,8.227,1307,6.607,1312,7.091,1313,8.115,1314,7.373,1315,8.115,14744,9.697,14745,8.577,14746,11.303,14747,9.279,14748,10.003,14749,8.577,14750,8.577]],["title/interfaces/MailModuleOptions.html",[334,0.731,14746,5.947]],["body/interfaces/MailModuleOptions.html",[0,0.316,3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.155,47,0.964,95,0.147,101,0.015,103,0.001,104,0.001,165,0.895,187,1.342,227,0.962,334,0.997,336,2.221,425,3.3,432,3.414,433,3.507,627,2.847,836,5.389,1298,6.368,1301,7.592,1307,6.607,1312,8.235,1313,8.115,1314,8.563,1315,8.115,14744,8.948,14745,8.577,14746,10.831,14748,10.003,14749,8.577,14750,8.577]],["title/injectables/MailService.html",[105,0.91,14748,5.493]],["body/injectables/MailService.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,8,1.329,27,0.454,29,0.862,30,0.001,31,0.616,32,0.15,33,0.532,35,1.057,36,2.36,47,0.785,95,0.155,101,0.015,103,0.001,104,0.001,105,1.472,107,2.106,111,2.206,112,2.656,116,3.753,127,1.379,163,3.387,187,1.263,216,2.035,221,2.022,334,0.938,369,1.939,701,4.26,839,4.165,1312,5.421,1314,5.636,1336,9.626,1337,7.056,1338,9.896,1351,6.103,1352,5.636,1380,7.64,1383,7.64,1498,7.667,1667,9.217,14748,8.89,14751,8.075,14752,11.064,14753,8.735,14754,8.735,14755,8.075,14756,8.075,14757,8.075]],["title/interfaces/MailServiceOptions.html",[334,0.731,14752,5.947]],["body/interfaces/MailServiceOptions.html",[0,0.312,3,0.022,4,0.022,5,0.011,7,0.139,30,0.001,32,0.154,36,1.967,47,0.961,95,0.158,101,0.015,103,0.001,104,0.001,105,1.518,111,2.275,112,2.022,116,2.857,127,1.149,163,2.823,165,0.889,187,1.327,216,2.098,221,2.123,334,0.985,336,2.195,369,2.036,701,3.243,839,4.374,1312,7.987,1314,8.305,1338,9.158,1351,6.409,1352,5.919,1380,8.023,1383,8.023,1498,6.877,1667,7.682,14748,7.41,14751,8.48,14752,10.775,14755,8.48,14756,8.48,14757,8.48]],["title/modules/ManagementModule.html",[425,1.812,14758,5.324]],["body/modules/ManagementModule.html",[0,0.225,3,0.016,4,0.016,5,0.008,30,0.001,95,0.178,101,0.011,103,0.001,104,0.001,187,0.955,217,1.474,347,1.335,425,2.795,427,2.385,428,2.566,429,2.642,430,2.631,431,2.619,432,4.376,433,2.495,438,5.763,442,3.659,443,2.587,444,2.525,447,4.348,449,4.493,801,3.835,802,4.799,1467,2.107,1507,7.524,1736,5.775,1878,6.121,2130,2.884,2131,3.227,2132,3.111,3104,2.991,3476,7.998,3481,8.173,3482,10.303,3489,4.613,3491,4.148,3493,6.103,3494,7.161,3804,10.303,3859,3.693,6422,7.524,7787,7.658,7792,9.634,7807,5.529,7826,9.176,7856,7.658,7860,9.938,8255,6.647,8844,4.613,9621,4.456,10344,7.658,10418,8.868,10576,7.912,10582,4.799,10592,4.799,10593,4.613,10649,4.799,11586,4.048,11669,6.103,11670,6.103,12245,5.529,12248,4.531,13290,5.775,13296,7.658,14758,11.109,14759,6.602,14760,6.602,14761,6.602,14762,6.602,14763,6.602,14764,6.602,14765,9.145,14766,6.602,14767,6.602,14768,6.602,14769,10.491,14770,5.529,14771,6.602]],["title/modules/ManagementServerModule.html",[425,1.812,14772,5.694]],["body/modules/ManagementServerModule.html",[0,0.346,3,0.018,4,0.018,5,0.009,30,0.001,32,0.105,47,0.549,87,3.864,95,0.171,96,2.776,99,1.285,101,0.019,103,0.001,104,0.001,187,1.114,217,1.002,227,0.798,234,1.25,381,2.561,398,2.269,425,3.43,427,2.782,428,2.992,429,3.081,430,3.068,431,3.055,432,2.834,433,2.91,442,4.06,443,3.017,444,2.945,449,4.786,461,1.761,511,3.891,627,2.363,701,2.723,731,3.042,778,5.197,885,5.127,953,5.04,1187,3.672,1188,3.628,1189,3.628,1190,3.838,1267,5.116,1268,4.721,1298,5.285,1301,6.741,1852,3.251,2075,4.232,2644,4.128,4865,5.285,5511,5.197,10577,7.543,10578,7.543,10579,5.597,10580,7.73,10581,5.483,10583,7.543,10589,7.376,10590,7.376,10591,7.376,10593,5.38,10604,9.19,10605,5.724,10606,5.724,10607,5.597,10645,5.38,10647,7.543,10649,5.597,10650,6.22,10651,5.597,10652,6.22,10654,7.543,11784,5.724,14758,10.43,14772,10.78,14773,7.7,14774,7.7,14775,7.118,14776,7.118,14777,6.735,14778,6.735,14779,6.449]],["title/modules/ManagementServerTestModule.html",[425,1.812,14779,5.694]],["body/modules/ManagementServerTestModule.html",[0,0.335,3,0.017,4,0.017,5,0.009,8,0.886,27,0.302,29,0.575,30,0.001,31,0.411,32,0.134,33,0.355,35,0.888,47,0.523,59,2.285,87,3.681,95,0.169,96,2.688,99,1.224,101,0.018,103,0.001,104,0.001,187,1.061,217,0.955,227,0.761,234,1.191,381,2.44,398,2.161,425,3.383,427,2.65,428,2.851,429,2.935,430,2.923,431,2.91,432,2.699,433,2.772,442,3.931,443,2.874,444,2.805,449,4.694,461,1.678,511,3.706,627,3.015,701,3.474,731,2.898,778,4.951,885,4.964,953,4.801,1187,3.498,1188,3.457,1189,3.457,1190,3.657,1267,4.874,1268,4.498,1297,5.332,1298,6.743,1301,7.36,1852,3.097,2075,4.032,2644,3.933,4865,5.035,5511,4.951,10577,7.303,10578,7.303,10579,5.332,10580,7.485,10581,5.224,10583,7.303,10589,7.142,10590,7.142,10591,7.142,10593,5.125,10604,9.015,10605,5.453,10606,5.453,10607,5.332,10645,8.619,10647,8.796,10649,5.332,10650,5.926,10651,5.332,10652,5.926,10654,7.303,11784,5.453,14758,10.32,14772,6.143,14775,9.082,14776,6.781,14777,6.416,14778,6.416,14779,11.036,14780,7.336,14781,7.336,14782,7.336]],["title/entities/Material.html",[380,1.445,11865,4.328]],["body/entities/Material.html",[0,0.221,3,0.015,4,0.015,5,0.008,7,0.098,27,0.543,30,0.001,32,0.179,33,0.544,47,1.015,95,0.116,96,1.777,101,0.019,103,0.001,104,0.001,150,3.894,165,0.708,240,4.444,334,1.117,364,2.399,379,2.548,380,1.921,381,2.161,398,1.914,399,3.587,400,2.866,404,1.171,405,1.731,406,2.113,460,3.736,1397,3.765,1843,3.079,2747,3.353,3580,4.579,3609,4.135,6196,3.511,6541,4.384,6542,4.252,7136,4.082,11865,5.756,11868,4.252,11876,7.471,12095,7.08,12096,5.44,12097,8.36,12098,9.084,12099,9.084,12100,9.084,12101,9.084,12102,9.084,12103,9.084,12104,5.44,12105,4.722,12106,5.44,12107,5.44,12108,5.247,12109,5.44,12110,5.44,12111,5.44,12112,5.44,12113,5.44,12114,5.44,12115,5.44,12116,5.44,12117,5.44,12118,5.44,12119,5.44,12120,5.44,12121,5.44,14783,6.496,14784,6.496,14785,6.496,14786,6.496,14787,6.496,14788,6.496,14789,6.496,14790,6.496,14791,6.496,14792,6.496]],["title/classes/MaterialFactory.html",[0,0.232,14793,6.286]],["body/classes/MaterialFactory.html",[0,0.173,2,0.566,3,0.012,4,0.012,5,0.006,7,0.077,8,0.915,27,0.534,29,1.024,30,0.001,31,0.698,32,0.18,33,0.603,34,1.54,35,1.483,47,0.54,55,2.511,59,3.343,95,0.097,101,0.008,103,0,104,0,127,0.636,138,3.308,144,3.296,148,1.563,150,2.622,165,0.593,185,4.845,216,1.4,217,0.661,227,0.527,319,3.581,359,2.64,366,2.841,379,2.432,380,2.281,381,2.519,404,1.364,538,3.412,596,3.95,627,2.323,660,7.294,661,4.73,662,5.663,665,4.274,666,5.663,667,5.805,668,4.274,669,4.274,670,4.274,671,4.198,672,4.639,673,5.109,674,6.586,675,5.95,676,7.122,677,2.893,682,2.867,683,4.274,684,2.893,685,5.296,686,5.468,687,4.277,688,5.142,689,4.235,690,2.867,691,2.702,692,4.204,693,2.791,694,2.745,695,2.867,696,5.217,697,2.893,698,5.019,699,2.867,700,7.036,701,4.237,702,6.763,703,2.893,704,4.483,705,2.867,706,2.893,707,2.867,708,2.893,709,2.867,710,3.233,711,3.012,712,2.867,713,6.239,714,2.893,715,2.867,716,4.274,717,3.996,718,4.274,719,2.893,720,2.768,721,2.745,722,2.265,723,2.867,724,2.867,725,2.867,726,2.893,727,2.893,728,1.942,729,2.867,730,2.893,731,2.992,732,2.867,733,2.893,736,3.012,1125,5.368,1397,1.701,3580,3.083,11865,6.832,11876,3.374,12095,3.977,12097,3.776,12098,4.103,12099,4.103,12100,4.103,12101,4.103,14793,8.369,14794,5.079,14795,4.695,14796,5.079]],["title/injectables/MaterialsRepo.html",[105,0.91,14797,6.286]],["body/injectables/MaterialsRepo.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.123,8,1.272,10,4.25,12,4.823,18,5.321,26,2.233,27,0.526,29,0.966,30,0.001,31,0.691,32,0.168,33,0.596,34,1.387,35,1.493,36,2.501,40,3.935,49,4.143,95,0.15,101,0.014,103,0.001,104,0.001,105,1.409,107,1.965,112,2.882,187,1.179,227,0.845,380,1.732,381,3.503,404,1.898,596,3.761,692,5.168,877,7.806,883,4.468,884,4.962,885,5.894,908,4.998,909,5.059,910,4.998,911,5.059,912,5.805,913,4.998,914,5.059,915,4.519,3675,5.595,11865,6.703,14795,7.536,14797,9.735,14798,8.152,14799,8.152]],["title/interfaces/Meta.html",[334,0.731,11329,5.055]],["body/interfaces/Meta.html",[3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,32,0.176,34,1.464,47,1.008,55,2.796,101,0.022,103,0.001,104,0.001,163,2.648,165,0.854,334,1.447,336,2.059,347,1.74,564,4.612,692,3.215,1178,5.552,1182,8.491,1216,4.929,3090,3.722,4511,5.808,6473,4.998,11324,6.397,11325,6.556,11326,6.397,11327,6.397,11328,6.556,11329,9.352,11330,9.585,11331,9.585,11332,6.397,11333,6.556,11334,6.255,11335,6.397,11336,6.556,11337,6.397]],["title/classes/MetadataTypeMapper.html",[0,0.232,14800,6.286]],["body/classes/MetadataTypeMapper.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.383,29,0.727,30,0.001,31,0.52,32,0.155,33,0.449,35,1.123,95,0.159,99,1.548,101,0.015,103,0.001,104,0.001,187,1.342,208,3.466,217,1.487,227,0.962,234,1.855,305,2.643,627,3.8,3228,7.274,3364,6.449,6517,10.003,6595,7.495,6614,8.358,10562,7.77,12253,8.869,12256,6.164,12257,6.073,14800,10.563,14801,11.427,14802,8.115,14803,11.427,14804,11.427,14805,8.115,14806,8.577]],["title/classes/MigrationAlreadyActivatedException.html",[0,0.232,13734,5.493]],["body/classes/MigrationAlreadyActivatedException.html",[0,0.408,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.414,29,0.593,30,0.001,31,0.424,32,0.103,33,0.366,35,0.916,47,0.889,52,5.334,55,1.631,59,2.358,95,0.129,101,0.02,103,0.001,104,0.001,127,0.948,187,1.095,192,3.354,214,3.778,227,1.167,383,4.955,404,2.246,461,2.574,795,6.151,1127,4.819,1216,4.409,1464,5.741,1465,6.434,1467,2.416,1469,6.344,2643,5.827,4476,5.017,8288,6.481,8289,6.738,8369,6.081,8389,10.349,12927,5.195,13721,6.115,13722,9.424,13723,5.627,13724,10.07,13725,10.034,13727,10.034,13729,6.34,13730,6.34,13731,6.115,13732,8.402,13733,5.503,13734,8.104,14807,7.57,14808,7.57]],["title/classes/MigrationBody.html",[0,0.232,13935,5.947]],["body/classes/MigrationBody.html",[0,0.359,2,0.911,3,0.019,4,0.019,5,0.01,7,0.123,27,0.481,30,0.001,32,0.159,33,0.633,52,6.201,95,0.135,101,0.014,103,0.001,104,0.001,165,0.826,192,3.898,347,2.646,364,2.127,368,5.126,369,2.903,370,4.309,371,3.607,373,6.615,374,2.607,376,1.869,379,2.646,467,3.237,471,5.002,728,5.003,2537,6.901,5440,9.779,7935,6.712,9777,8.076,11843,7.839,13935,9.223,13998,8.897,13999,8.897,14000,8.897,14809,8.169,14810,8.169,14811,8.169,14812,8.169]],["title/injectables/MigrationCheckService.html",[105,0.91,14813,5.694]],["body/injectables/MigrationCheckService.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.113,8,1.206,26,2.533,27,0.412,29,0.782,30,0.001,31,0.559,32,0.136,33,0.483,35,0.91,36,2.141,47,0.912,48,5.629,95,0.16,99,1.254,101,0.013,103,0.001,104,0.001,105,1.335,107,1.811,111,2.248,112,2.471,127,1.25,129,7.413,132,7.234,167,4.125,187,1.087,189,5.534,191,4.165,192,3.341,216,2.073,217,1.555,221,2.595,227,1.163,347,1.52,355,4.505,371,2.072,450,3.086,461,1.719,4476,4.999,4489,6.441,4491,6.957,4501,7.421,4593,3.796,4737,7.426,7074,5.229,8443,4.992,8452,7.044,9646,6.069,14122,6.292,14813,8.36,14814,11.211,14815,7.514,14816,9.229,14817,10.216,14818,7.514,14819,9.983,14820,7.514,14821,6.572,14822,8.064,14823,6.946,14824,6.572,14825,7.514,14826,9.983,14827,6.946]],["title/classes/MigrationDto.html",[0,0.232,13951,4.842]],["body/classes/MigrationDto.html",[0,0.338,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,27,0.491,29,0.777,30,0.001,31,0.555,32,0.162,33,0.48,47,0.849,101,0.017,103,0.001,104,0.001,127,1.242,165,0.932,355,5.123,2170,8.226,2186,8.306,4476,5.684,13951,9.628,14828,9.918,14829,11.9,14830,11.9,14831,9.169,14832,9.918]],["title/injectables/MigrationMapper.html",[105,0.91,13915,5.694]],["body/injectables/MigrationMapper.html",[0,0.316,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.383,29,0.727,30,0.001,31,0.52,32,0.126,33,0.449,35,1.123,95,0.159,100,3.107,101,0.015,103,0.001,104,0.001,105,1.529,107,2.237,116,3.857,187,1.342,217,1.208,227,0.962,234,1.506,982,4.625,1016,4.012,9777,7.479,13915,9.57,13943,10.439,13944,7.77,13945,8.115,13946,10.72,13998,7.069,13999,7.069,14000,7.069,14119,7.77,14121,7.77,14833,9.279,14834,9.995,14835,9.995,14836,9.279,14837,9.279,14838,9.279,14839,9.279,14840,9.279,14841,9.279]],["title/classes/MigrationMayBeCompleted.html",[0,0.232,14842,6.286]],["body/classes/MigrationMayBeCompleted.html",[0,0.31,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,27,0.465,29,0.712,30,0.001,31,0.509,32,0.124,33,0.44,35,1.1,52,4.309,59,2.831,95,0.117,101,0.015,103,0.001,104,0.001,127,1.139,163,2.798,192,2.709,214,3.557,215,2.901,216,1.681,227,0.943,347,2.482,795,5.573,1216,3.562,1464,5.651,1465,6.332,1467,2.901,1469,6.353,3264,5.509,4476,5.471,8288,6.379,8289,6.631,12182,8.919,12214,6.926,14842,10.43,14843,11.342,14844,8.403,14845,8.403,14846,8.403,14847,8.403,14848,8.403,14849,7.343]],["title/classes/MigrationMayNotBeCompleted.html",[0,0.232,14850,6.286]],["body/classes/MigrationMayNotBeCompleted.html",[0,0.31,2,1.016,3,0.022,4,0.022,5,0.011,7,0.138,8,1.365,27,0.466,29,0.714,30,0.001,31,0.51,32,0.124,33,0.441,35,1.103,52,4.319,59,2.838,95,0.117,101,0.015,103,0.001,104,0.001,127,1.141,163,2.804,192,2.715,214,3.562,215,2.908,216,1.685,227,0.945,347,2.484,1216,3.57,1464,5.656,1465,6.339,1467,2.908,1469,6.358,4476,5.476,8288,6.385,8289,6.638,12182,8.928,12214,6.941,14843,11.354,14844,8.422,14845,8.422,14846,8.422,14847,8.422,14848,8.422,14849,7.359,14850,10.445,14851,7.359]],["title/classes/MigrationResponse.html",[0,0.232,13946,5.493]],["body/classes/MigrationResponse.html",[0,0.25,2,0.818,3,0.017,4,0.017,5,0.009,7,0.111,27,0.524,29,0.575,30,0.001,31,0.411,32,0.188,33,0.645,52,6.392,83,4.363,95,0.094,101,0.012,103,0.001,104,0.001,127,0.919,165,0.77,185,2.851,347,1.987,364,2.247,375,4.699,376,1.678,379,2.796,467,2.578,1013,3.36,1403,6.559,2537,6.43,6251,6.527,7935,7.532,9777,8.487,10862,7.693,11843,7.303,13946,9.965,13962,8.593,13998,8.44,13999,8.44,14000,8.44,14119,9.277,14121,9.277,14852,7.336,14853,9.825,14854,9.082,14855,8.593,14856,7.336,14857,7.336,14858,7.336,14859,7.336,14860,6.781,14861,6.781,14862,6.781,14863,6.781,14864,6.781,14865,6.781,14866,6.781,14867,6.781,14868,6.781,14869,6.781]],["title/classes/MissingSchoolNumberException.html",[0,0.232,13731,5.493]],["body/classes/MissingSchoolNumberException.html",[0,0.408,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.414,29,0.593,30,0.001,31,0.424,32,0.103,33,0.366,35,0.916,47,0.889,52,5.334,55,1.631,59,2.358,95,0.129,101,0.02,103,0.001,104,0.001,127,0.948,187,1.095,192,3.354,214,3.778,227,1.167,383,4.955,404,2.246,461,2.574,795,6.151,1127,4.819,1216,4.409,1464,5.741,1465,6.434,1467,2.416,1469,6.344,2643,5.827,4476,5.017,8288,6.481,8289,6.738,8369,6.081,8389,10.349,12927,5.195,13721,6.115,13722,9.424,13723,5.627,13724,10.07,13725,10.034,13727,10.034,13729,6.34,13730,6.34,13731,8.104,13732,8.402,13733,5.503,13734,6.115,14870,7.57,14871,7.57]],["title/classes/MissingToolParameterValueLoggableException.html",[0,0.232,202,5.947]],["body/classes/MissingToolParameterValueLoggableException.html",[0,0.22,2,0.72,3,0.015,4,0.015,5,0.008,7,0.097,8,1.087,27,0.527,29,0.878,30,0.001,31,0.361,32,0.181,33,0.501,35,1.09,47,0.894,55,1.39,95,0.151,101,0.011,103,0.001,104,0.001,108,6.021,111,1.805,127,1.128,136,7.139,140,6.447,144,1.775,163,1.986,165,0.705,187,0.933,194,4.224,199,2.439,200,2.804,201,3.284,202,7.873,204,3.805,209,3.898,210,4.224,214,2.838,216,2.48,217,0.84,227,0.669,286,9.582,290,6.921,298,7.049,364,2.148,404,1.622,406,2.099,558,3.096,564,2.366,596,3.726,1013,5.136,1016,2.266,1127,4.108,1142,4.801,1180,2.778,1216,4.394,1395,7.964,1396,5.905,1397,3.755,1398,6.598,1402,4.165,1403,3.578,1404,4.165,1405,4.165,1406,4.165,1407,4.165,1408,4.165,1409,3.868,1410,3.643,1416,4.055,1464,4.774,1465,5.349,1467,2.06,1469,5.553,2578,2.878,3267,3.61,3714,5.214,3849,4.918,8288,5.389,8289,5.602,8738,4.108,8745,3.787,8746,3.957,8900,5.645,10697,5.967,14872,10.365,14873,10.365,14874,6.454,14875,6.454,14876,6.454,14877,6.454,14878,5.405,14879,6.454,14880,9.002,14881,6.454,14882,6.454,14883,6.454]],["title/modules/MongoMemoryDatabaseModule.html",[425,1.812,10645,4.751]],["body/modules/MongoMemoryDatabaseModule.html",[0,0.255,3,0.018,4,0.018,5,0.009,8,0.904,27,0.411,29,0.586,30,0.001,31,0.419,32,0.135,33,0.362,35,1.205,36,2.135,59,2.332,95,0.164,96,2.724,99,1.249,101,0.012,103,0.001,104,0.001,111,1.501,112,2.195,187,1.083,208,2.797,214,2.36,217,1.616,221,1.733,227,1.16,369,1.661,381,2.49,398,2.205,425,2.982,427,2.704,433,2.829,449,2.97,627,3.056,701,4.391,731,2.957,778,5.052,837,5.331,839,3.57,845,5.441,846,5.331,953,4.899,1187,3.57,1188,3.527,1189,3.527,1190,3.731,1267,4.973,1268,4.59,1297,5.441,1298,6.835,1301,7.925,4865,6.835,6833,4.703,6885,4.899,7804,7.587,10579,8.671,10581,5.331,10583,7.403,10645,7.818,10647,8.867,10651,9.283,14884,11.191,14885,11.191,14886,7.486,14887,7.486,14888,10.863,14889,7.486,14890,9.958,14891,7.486,14892,7.486,14893,7.486,14894,9.958,14895,7.486,14896,6.047,14897,7.486,14898,6.92,14899,7.486,14900,7.486,14901,9.958,14902,7.486]],["title/classes/MongoPatterns.html",[0,0.232,13012,5.694]],["body/classes/MongoPatterns.html",[0,0.32,2,1.049,3,0.022,4,0.022,5,0.011,7,0.142,27,0.388,30,0.001,72,5.221,101,0.016,103,0.001,104,0.001,144,2.588,165,0.903,319,2.812,571,7.241,574,5.06,627,3.823,777,9.025,1948,6.908,1959,6.281,4198,8.052,5429,8.499,8244,9.31,10297,10.654,11350,8.781,13012,9.652,14903,9.409,14904,12.459,14905,11.525,14906,11.525,14907,9.409,14908,11.525,14909,9.652,14910,11.525,14911,11.525,14912,10.654]],["title/classes/MoveCardBodyParams.html",[0,0.232,3997,5.947]],["body/classes/MoveCardBodyParams.html",[0,0.39,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.472,30,0.001,32,0.156,47,0.816,55,2.465,95,0.147,101,0.016,103,0.001,104,0.001,165,0.896,364,2.084,368,4.484,369,2.87,370,4.261,371,3.567,374,2.968,376,2.127,467,3.252,1000,4.659,3469,8.149,3470,6.623,3475,6.76,3997,10.009,4045,9.706,6978,8.597,14913,11.459,14914,12.396,14915,8.597,14916,9.3,14917,8.134,14918,9.3]],["title/classes/MoveColumnBodyParams.html",[0,0.232,4926,5.947]],["body/classes/MoveColumnBodyParams.html",[0,0.385,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.467,30,0.001,32,0.154,34,1.925,47,0.807,55,2.437,95,0.145,101,0.015,103,0.001,104,0.001,165,0.886,364,2.061,368,4.817,369,2.852,370,4.233,371,3.544,374,2.915,376,2.089,379,2.069,467,3.226,1000,4.607,2627,4.755,2702,5.098,3469,8.057,3470,6.503,3475,6.638,3795,5.358,4045,9.627,4926,9.896,14913,11.366,14917,7.987,14919,9.131,14920,12.295,14921,9.131,14922,9.131]],["title/classes/MoveContentElementBody.html",[0,0.232,8204,5.947]],["body/classes/MoveContentElementBody.html",[0,0.388,2,1.03,3,0.022,4,0.022,5,0.011,7,0.14,27,0.47,30,0.001,32,0.155,47,0.813,55,2.454,95,0.146,101,0.015,103,0.001,104,0.001,165,0.893,364,2.075,368,4.465,369,2.863,370,4.25,371,3.558,374,2.948,376,2.113,467,3.242,1000,4.639,2303,5.009,3469,8.114,3470,6.577,3475,6.714,4045,9.677,6983,7.735,8204,9.966,14915,8.538,14917,8.078,14923,12.358,14924,12.358,14925,9.236,14926,9.236]],["title/classes/MoveElementParams.html",[0,0.232,7368,5.694]],["body/classes/MoveElementParams.html",[0,0.416,2,1.002,3,0.021,4,0.021,5,0.011,7,0.136,27,0.462,30,0.001,32,0.152,55,2.63,72,4.072,95,0.144,100,3.01,101,0.019,103,0.001,104,0.001,165,0.878,364,2.041,374,2.869,375,4.268,376,2.056,379,2.037,467,3.45,471,4.542,1166,4.312,1271,5.722,2385,5.511,2553,3.831,2767,5.914,3469,9.101,3470,6.401,3475,8.874,3833,6.169,5496,7.528,5836,6.828,6983,7.528,7363,5.648,7368,9.383,7372,6.401,7489,7.261,8655,8.774,14927,11.285,14928,11.501,14929,8.989,14930,8.989]],["title/classes/MoveElementPositionParams.html",[0,0.232,14928,5.947]],["body/classes/MoveElementPositionParams.html",[0,0.404,2,0.943,3,0.02,4,0.02,5,0.01,7,0.128,27,0.49,30,0.001,32,0.161,33,0.522,55,2.844,72,4.886,95,0.138,100,3.611,101,0.018,103,0.001,104,0.001,165,0.845,364,2.162,374,2.7,375,4.108,376,1.935,379,2.444,467,3.388,471,4.372,1166,5.174,1271,7.557,2385,6.612,2553,4.597,2767,6.598,3466,9.97,3469,8.903,3470,6.025,3475,8.63,3833,7.402,5496,9.032,5836,6.64,6983,7.085,7363,6.776,7368,7.085,7372,8.454,7489,9.59,14927,11.557,14928,10.935,14931,8.46,14932,8.46,14933,8.46,14934,8.46]],["title/entities/News.html",[380,1.445,6858,3.873]],["body/entities/News.html",[0,0.314,3,0.01,4,0.024,5,0.005,7,0.16,9,3.153,26,1.957,27,0.509,30,0.001,31,0.517,32,0.174,33,0.551,34,1.138,47,0.903,83,2.507,95,0.146,96,2.242,101,0.017,103,0,104,0,144,1.187,165,0.782,188,2.472,192,3.285,208,1.613,227,0.448,234,1.33,240,3.71,319,1.29,334,0.464,364,2.177,369,2.652,370,3.631,380,2.122,381,1.436,386,4.668,396,3.381,398,1.272,399,2.655,400,1.905,404,1.663,405,2.459,406,1.404,461,2.521,571,5.148,574,3.597,595,1.446,617,4.542,627,1.325,672,4.199,731,3.237,769,4.858,843,2.953,844,5.02,854,4.632,1031,2.568,1187,3.907,1188,4.349,1189,3.861,1190,4.084,1191,4.465,1397,3.538,1415,4.103,1843,4.375,1849,4.112,1865,3.732,1941,4.26,1959,2.353,2303,4.283,2577,4.625,2632,4.866,2646,2.533,2702,5.64,2747,2.228,3427,4.593,3429,4.26,3430,4.675,3432,3.074,3433,3.016,3434,3.209,3448,2.647,3584,2.914,3609,2.748,4205,2.255,4297,3.289,4298,3.138,4989,3.753,5057,3.209,5072,4.864,5618,7.26,6216,3.71,6434,3.016,6521,2.647,6523,2.415,6544,2.588,6751,2.914,6757,2.679,6844,3.209,6845,3.487,6847,4.056,6848,3.487,6849,6.861,6850,5.956,6851,3.487,6852,8.274,6853,6.132,6854,5.398,6855,6.091,6856,6.861,6857,6.753,6858,7.549,6859,5.405,6860,6.573,6861,5.405,6862,5.098,6863,5.098,6864,5.956,6865,5.405,6866,3.289,6867,3.289,6868,3.487,6869,3.209,6870,3.487,6871,2.56,6872,2.647,6873,3.289,6874,3.487,6875,3.487,6876,6.416,6877,3.487,6878,6.619,6879,3.487,6880,3.487,6881,5.098,6882,3.289,6883,5.725,6884,3.381,6885,4.38,6886,3.289,6887,3.138,6888,3.289,6889,3.487,14935,4.317,14936,4.317,14937,4.317,14938,4.317,14939,4.317,14940,4.317,14941,4.317,14942,4.317,14943,4.317,14944,4.317,14945,4.317,14946,4.317]],["title/controllers/NewsController.html",[481,2.611,14947,5.947]],["body/controllers/NewsController.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.923,10,4.355,27,0.445,29,0.845,30,0.001,31,0.604,32,0.147,33,0.522,34,1.3,35,1.306,36,2.682,95,0.15,100,3.92,101,0.009,103,0,104,0,112,2.91,137,5.682,165,0.599,185,4.394,187,0.744,192,3.009,215,1.642,216,0.951,217,1.628,221,2.497,227,1.119,234,0.835,264,3.212,277,4.355,364,1.965,376,1.177,380,1.624,447,2.132,461,2.751,469,2.258,481,1.975,483,2.453,491,6.542,494,4.581,513,6.799,529,3.965,543,4.641,552,3.319,555,2.674,556,2.736,561,2.758,843,3.373,883,4.284,1016,2.684,1028,7.055,1184,4.237,1804,6.12,2908,7.4,2925,6.467,2929,5.246,2930,2.758,3429,4.866,3743,6.331,4533,4.743,5022,4.866,5427,6.175,5880,4.44,6612,6.052,6858,7.666,6898,7.066,7031,8.156,7088,3.919,10682,8.156,12793,4.308,14138,4.308,14144,4.308,14947,6.686,14948,5.144,14949,7.143,14950,5.144,14951,5.144,14952,10.938,14953,7.644,14954,5.144,14955,4.755,14956,5.144,14957,7.066,14958,5.144,14959,7.644,14960,5.144,14961,7.644,14962,5.144,14963,8.456,14964,7.644,14965,5.144,14966,4.155,14967,4.499,14968,7.368,14969,4.755,14970,4.155,14971,4.155,14972,4.755,14973,5.144,14974,4.755,14975,4.755,14976,4.755,14977,8.832,14978,4.499,14979,4.755,14980,4.755,14981,4.755,14982,4.755,14983,5.144,14984,5.144,14985,5.144,14986,5.144,14987,5.144,14988,7.644,14989,5.144]],["title/classes/NewsCrudOperationLoggable.html",[0,0.232,14990,5.947]],["body/classes/NewsCrudOperationLoggable.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,26,2.667,27,0.449,29,0.674,30,0.001,31,0.482,32,0.117,33,0.416,35,1.042,39,3.387,95,0.162,99,1.436,101,0.014,103,0.001,104,0.001,111,2.399,127,1.365,163,2.648,214,3.437,216,2.213,227,0.892,415,4.651,1216,3.371,1464,5.511,1465,6.176,1467,2.746,1469,6.229,2451,10.162,6858,7.837,10709,9.585,14966,6.951,14967,7.526,14990,9.535,14991,11.966,14992,8.605,14993,8.605,14994,11.63,14995,8.605,14996,8.605,14997,7.955,14998,7.955,14999,8.605,15000,8.605]],["title/classes/NewsListResponse.html",[0,0.232,14970,5.493]],["body/classes/NewsListResponse.html",[0,0.265,2,0.587,3,0.012,4,0.027,5,0.006,7,0.08,27,0.449,29,0.412,30,0.001,31,0.518,32,0.175,33,0.527,34,1.94,47,0.863,55,2.856,56,5.471,59,2.422,70,5.647,83,2.829,95,0.146,99,0.879,101,0.013,103,0,104,0,127,0.974,145,1.333,163,3.353,165,0.609,188,1.945,192,3.398,217,1.203,359,1.836,364,1.86,375,3.89,376,1.204,379,3.025,380,2.71,404,1.401,461,2.336,467,3.452,469,2.312,475,3.801,524,3.028,538,2.372,591,4.019,592,4.189,596,3.115,618,2.153,620,3.397,622,3.397,769,3.122,1007,7.233,1008,6.163,1009,4.43,1011,2.66,1013,4.235,1014,2.511,1015,2.945,1016,1.848,1017,3.678,1018,5.018,1019,4.517,1020,3.446,1021,2.8,1022,3.678,1023,3.678,1025,3.308,1026,2.919,1031,2.437,1184,2.919,1397,3.419,1695,3.351,1770,3.058,1849,5.125,1865,3.542,2303,4.14,2412,3.351,2702,5.315,2747,2.717,2884,4.136,2885,4.136,2889,2.607,2925,3.156,3448,3.228,3502,3.914,4298,3.827,4353,7.744,4533,3.267,4618,3.614,5618,6.722,6543,3.267,6850,5.018,6853,6.143,6854,4.998,6855,3.914,6856,6.874,6857,5.483,6858,7.266,6867,4.011,6873,4.011,6883,3.678,7035,6.46,7039,3.351,7040,4.409,7041,4.011,7044,4.95,7047,3.827,9934,3.914,12466,4.253,14970,6.282,14971,9.781,15001,4.867,15002,5.265,15003,5.265,15004,6.282,15005,6.282,15006,7.47,15007,7.189,15008,7.189,15009,4.605,15010,7.189,15011,4.867,15012,4.867,15013,4.123,15014,4.867,15015,4.605,15016,6.802]],["title/classes/NewsMapper.html",[0,0.232,14966,5.493]],["body/classes/NewsMapper.html",[0,0.208,2,0.683,3,0.014,4,0.021,5,0.007,7,0.092,8,1.048,27,0.477,29,0.906,30,0.001,31,0.648,32,0.157,33,0.559,34,1.475,35,1.4,95,0.154,99,1.022,100,4.224,101,0.01,103,0,104,0,163,2.669,185,3.37,192,3.001,217,1.642,227,1.199,234,0.994,461,1.4,529,3.769,591,2.66,592,2.773,627,4.166,975,4.807,982,3.051,1397,3.372,1466,8.809,1467,1.954,1849,3.072,2303,4.083,2702,4.936,6850,6.499,6853,6.691,6854,4.687,6856,4.55,6857,6.496,6858,7.412,7031,8.85,7035,7.654,7394,8.017,10682,8.85,10684,4.944,11930,8.136,11937,8.435,11938,8.85,14963,9.175,14966,7.005,14971,8.85,15017,6.121,15018,8.672,15019,8.672,15020,8.672,15021,8.672,15022,8.672,15023,6.121,15024,8.672,15025,6.121,15026,8.672,15027,6.121,15028,8.672,15029,6.121,15030,8.672,15031,6.121,15032,5.354,15033,10.072,15034,5.354,15035,5.354,15036,6.121,15037,6.121,15038,6.121,15039,8.672,15040,6.121,15041,6.121,15042,5.658,15043,6.121,15044,6.121,15045,8.017,15046,8.017,15047,6.121,15048,6.121,15049,5.658,15050,6.121,15051,6.121,15052,6.121,15053,8.672,15054,6.121,15055,6.121,15056,6.121,15057,6.121,15058,8.672,15059,8.672,15060,6.121,15061,6.121,15062,6.121]],["title/modules/NewsModule.html",[425,1.812,15063,5.493]],["body/modules/NewsModule.html",[0,0.289,3,0.02,4,0.02,5,0.01,30,0.001,95,0.172,101,0.014,103,0.001,104,0.001,187,1.226,425,3.167,427,3.063,428,3.295,429,3.392,430,3.378,431,3.364,432,4.373,433,4.491,438,6.189,442,4.321,443,3.322,444,3.242,447,4.476,449,4.285,450,3.482,1467,2.706,1878,7.14,2725,3.841,14947,10.394,14968,11.302,14969,7.837,15063,11.353,15064,8.478,15065,8.478,15066,8.478,15067,8.478,15068,10.671,15069,8.478,15070,10.394,15071,8.478,15072,8.478,15073,8.478]],["title/injectables/NewsRepo.html",[105,0.91,15068,5.493]],["body/injectables/NewsRepo.html",[0,0.159,3,0.011,4,0.011,5,0.006,7,0.071,8,0.858,10,2.867,12,3.254,18,3.59,26,2.536,27,0.503,29,0.915,30,0.001,31,0.654,32,0.163,33,0.565,34,1.463,35,1.414,36,2.66,40,2.253,49,2.795,59,2.679,95,0.14,96,1.277,98,2.767,99,0.779,101,0.008,103,0,104,0,105,0.95,107,1.125,111,1.725,112,2.922,144,1.284,165,0.556,187,0.675,192,3.248,208,1.744,217,1.614,221,2.769,227,1.073,234,1.154,264,4.348,277,3.472,319,1.395,379,1.058,380,0.992,381,2.363,398,1.375,404,1.28,529,3.088,538,3.876,596,2.933,692,4.634,701,4.547,795,5.895,806,3.502,877,6.649,883,3.014,884,3.348,885,4.346,908,2.862,909,2.896,910,2.862,911,2.896,912,3.324,913,2.862,914,2.896,915,2.587,919,3.556,964,3.203,1041,5.378,2144,4.01,2394,5.701,2702,5.391,3429,6.121,3432,6.847,3811,5.739,4140,3.055,4659,3.101,4661,5.075,5406,2.896,5618,5.165,5880,4.127,6153,4.876,6216,6.042,6612,4.258,6844,6.395,6854,3.84,6858,7.453,6882,6.554,6888,6.554,6902,7.396,6912,5.281,7810,2.862,8050,5.165,9573,8.665,10162,6.568,10176,6.568,10686,3.77,12942,8.41,15068,5.739,15074,4.667,15075,8.602,15076,7.105,15077,8.602,15078,7.105,15079,7.105,15080,9.153,15081,4.667,15082,4.667,15083,4.667,15084,7.105,15085,4.667,15086,9.615,15087,4.667,15088,4.667,15089,4.667,15090,7.524,15091,7.105,15092,4.667,15093,9.615,15094,7.105,15095,4.667,15096,4.667,15097,7.105,15098,4.667,15099,4.667,15100,7.105,15101,7.105,15102,4.667,15103,4.667,15104,4.667,15105,8.602,15106,4.667,15107,4.667,15108,4.667]],["title/classes/NewsResponse.html",[0,0.232,14971,5.493]],["body/classes/NewsResponse.html",[0,0.232,2,0.492,3,0.01,4,0.028,5,0.005,7,0.067,27,0.534,29,0.346,30,0.001,31,0.565,32,0.182,33,0.537,34,2.081,47,0.924,55,1.789,56,3.265,70,3.37,83,3.261,95,0.137,99,0.736,101,0.011,103,0,104,0,127,0.852,163,2.094,165,0.533,188,2.513,192,3.582,217,1.081,359,2.372,364,2.339,375,3.556,376,1.009,379,3.013,380,2.852,404,0.795,461,2.541,467,3.336,469,1.937,475,4.06,524,3.914,538,3.066,591,4.385,592,4.57,618,1.804,620,2.847,622,2.847,769,2.616,966,2.245,1007,4.172,1008,2.384,1009,2.513,1013,5.505,1025,2.772,1026,2.446,1031,2.603,1184,3.772,1397,3.719,1403,3.772,1695,2.808,1770,3.952,1849,5.574,1865,4.253,2303,4.503,2412,4.331,2702,5.595,2747,2.277,2883,2.887,2884,4.966,2885,4.966,2888,2.674,2889,3.37,2925,4.078,3448,2.705,3502,5.058,4298,3.207,4353,6.956,4533,4.223,4618,4.67,5618,7.333,6159,4.078,6543,2.738,6850,5.36,6853,6.702,6854,5.452,6855,3.28,6856,7.499,6857,5.981,6858,7.647,6867,3.361,6873,3.361,6883,3.082,7035,7.048,7039,4.331,7040,5.699,7041,5.184,7044,5.943,7047,4.946,9934,3.28,12466,3.564,14970,3.564,14971,9.266,15001,4.078,15004,6.71,15005,6.71,15006,8.149,15007,7.679,15008,7.679,15009,3.859,15010,7.679,15011,4.078,15012,4.078,15013,3.455,15014,4.078,15015,5.952,15016,8.166,15109,4.412,15110,4.412,15111,4.412,15112,4.412,15113,4.412,15114,4.412,15115,4.412,15116,4.412,15117,4.412,15118,4.412,15119,4.412,15120,4.412,15121,4.412,15122,4.412,15123,4.412,15124,4.412]],["title/classes/NewsScope.html",[0,0.232,15090,5.947]],["body/classes/NewsScope.html",[0,0.216,2,0.706,3,0.015,4,0.015,5,0.008,7,0.096,8,1.073,26,2.358,27,0.533,29,0.871,30,0.001,31,0.623,32,0.169,33,0.538,35,1.47,83,2.718,95,0.15,96,1.732,99,1.057,101,0.011,103,0.001,104,0.001,111,2.434,144,1.742,145,1.604,148,1.949,165,0.696,217,1.335,227,1.215,234,1.442,247,2.481,277,5.289,319,1.893,347,2.075,398,1.866,404,1.601,529,4.834,596,3.573,905,2.637,1750,2.809,1857,4.825,1944,7.633,2394,6.944,2702,2.853,3635,5.854,3637,5.115,5991,5.995,5992,5.995,5993,5.995,5998,5.995,5999,5.995,6000,4.346,6001,4.274,6002,4.346,6003,4.346,6012,4.274,6013,5.995,6014,4.346,6015,4.274,6016,4.346,6017,4.274,6018,7.506,6216,5.687,6853,5.901,6854,3.423,6857,3.755,6858,5.06,7810,3.883,9573,5.303,9578,5.854,9589,4.825,10208,5.115,10217,5.539,10224,5.539,13037,7.175,13040,8.211,15080,8.984,15090,11.461,15125,10.827,15126,8.883,15127,11.122,15128,8.883,15129,11.122,15130,8.883,15131,6.333,15132,8.883,15133,6.333,15134,5.854,15135,6.333,15136,6.333,15137,6.333,15138,6.333,15139,6.333,15140,6.333,15141,6.333]],["title/interfaces/NewsTargetFilter.html",[334,0.731,15080,5.493]],["body/interfaces/NewsTargetFilter.html",[3,0.024,4,0.024,5,0.012,7,0.153,26,2.821,30,0.001,32,0.164,95,0.13,99,1.688,101,0.017,103,0.001,104,0.001,165,0.943,334,1.087,336,2.421,2702,4.559,6850,8.587,6857,7.89,9577,11.639,15080,9.727,15125,9.353,15142,10.117]],["title/injectables/NewsUc.html",[105,0.91,14968,5.493]],["body/injectables/NewsUc.html",[0,0.112,3,0.008,4,0.008,5,0.004,7,0.05,8,0.652,10,2.179,25,4.723,26,2.88,27,0.454,29,0.862,30,0.001,31,0.617,32,0.153,33,0.532,34,1.685,35,1.439,36,2.55,39,3.544,47,0.489,59,1.682,83,2.424,95,0.127,98,1.956,99,0.551,101,0.006,103,0,104,0,105,0.722,107,0.795,111,2.416,112,2.859,116,3.754,127,0.676,144,1.885,145,1.736,167,2.523,185,4.158,187,0.477,192,0.983,217,1.62,221,2.969,227,1.142,234,0.877,247,1.293,264,4.997,277,4.172,284,2.919,319,2.612,347,1.387,379,0.748,450,1.355,461,1.235,575,4.109,595,1.808,627,2.104,701,3.503,728,2.622,731,1.303,843,3.025,883,2.291,1184,1.829,1187,1.573,1188,1.555,1189,1.555,1345,1.309,1467,1.053,1799,3.273,1849,5.877,1884,3.705,1885,6.635,1941,3.437,2035,1.783,2356,4.069,2451,2.665,2702,3.938,2725,1.495,2736,5.186,2925,3.237,3090,2.336,3282,2.073,4205,2.946,4431,2.073,4514,3.925,6612,1.977,6850,5.112,6853,6.868,6854,1.783,6857,6.528,6858,7.61,6902,4.802,6974,2.583,7035,6.921,7047,2.398,8807,5.368,9547,4.992,9554,4.992,9573,8.296,9577,4.723,10684,7.06,11930,6.4,11937,6.635,11938,8.002,12500,2.583,12788,4.723,13406,2.886,13407,2.886,14968,4.362,14978,4.723,14990,2.886,14994,3.05,14997,3.05,15009,2.886,15042,3.05,15045,7.324,15046,7.324,15049,4.992,15068,7.581,15080,4.362,15143,3.299,15144,6.855,15145,5.4,15146,5.4,15147,5.4,15148,6.855,15149,3.299,15150,3.299,15151,4.992,15152,3.299,15153,3.299,15154,3.299,15155,3.299,15156,5.4,15157,5.996,15158,5.996,15159,5.4,15160,3.299,15161,5.4,15162,3.299,15163,9.384,15164,3.299,15165,5.4,15166,3.299,15167,4.992,15168,3.299,15169,5.538,15170,3.299,15171,5.4,15172,3.299,15173,3.299,15174,3.299,15175,5.4,15176,6.855,15177,3.299,15178,3.299,15179,7.923,15180,3.299,15181,5.4,15182,3.299,15183,5.4,15184,3.299,15185,3.299,15186,3.299,15187,3.299,15188,5.4,15189,3.299,15190,3.299,15191,3.299,15192,5.4,15193,6.855,15194,3.299,15195,3.299,15196,3.299,15197,3.299,15198,3.299,15199,3.299,15200,3.299,15201,3.299,15202,3.299,15203,3.299,15204,5.4,15205,3.299,15206,3.299,15207,3.299,15208,5.4,15209,3.299,15210,3.299,15211,3.299,15212,3.299,15213,3.299]],["title/classes/NewsUrlParams.html",[0,0.232,14952,5.947]],["body/classes/NewsUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,3795,5.749,6858,6.729,14952,10.332,15214,9.798,15215,12.682,15216,9.798]],["title/injectables/NexboardService.html",[105,0.91,14207,5.947]],["body/injectables/NexboardService.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,26,2.582,27,0.425,29,0.808,30,0.001,31,0.578,32,0.156,33,0.499,34,1.343,35,0.956,36,2.212,39,3.093,47,0.955,94,3.836,95,0.156,101,0.017,103,0.001,104,0.001,105,1.38,107,1.903,111,1.583,112,2.532,127,0.989,150,2.734,163,2.43,187,1.142,204,3.5,215,2.52,216,1.46,217,1.495,221,1.828,227,1.07,234,1.282,371,2.178,379,2.76,766,3.303,784,4.268,883,3.35,1369,4.303,1397,4.078,1467,2.52,2356,4.719,2357,5.548,2545,4.2,2627,3.319,8403,6.907,8404,9.423,8408,7.3,8409,6.907,8415,7.3,8417,7.3,11871,7.346,14207,9.022,15217,7.896,15218,11.488,15219,7.896,15220,7.896,15221,7.896,15222,10.315,15223,7.896,15224,7.896,15225,7.896,15226,7.896]],["title/interfaces/NextcloudGroups.html",[334,0.731,11326,5.055]],["body/interfaces/NextcloudGroups.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.984,55,2.651,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,1.851,564,3.355,692,3.419,1178,5.905,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,7.47,11324,6.803,11325,6.973,11326,8.423,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,6.803,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,6.803]],["title/injectables/NextcloudStrategy.html",[105,0.91,4586,5.947]],["body/injectables/NextcloudStrategy.html",[0,0.104,3,0.007,4,0.007,5,0.004,7,0.046,8,0.611,27,0.442,29,0.784,30,0.001,31,0.641,32,0.136,33,0.484,34,1.767,35,1.258,36,2.566,39,1.362,47,0.923,55,1.804,62,2.968,72,1.38,95,0.147,99,0.509,100,2.527,101,0.005,103,0,104,0,105,0.677,107,0.735,111,2.253,112,2.766,127,0.634,158,3.169,165,0.396,167,1.121,187,0.441,192,1.507,200,0.949,201,1.55,209,2.495,214,1.595,216,1.67,217,1.607,221,2.945,227,0.992,234,0.495,247,1.194,264,4.367,284,2.734,305,0.868,379,2.046,461,1.915,493,3.853,496,1.287,500,3.471,520,3.36,524,1.753,627,2.771,661,4.722,686,2.756,728,1.165,768,5.18,784,1.647,905,1.269,956,1.994,1127,1.94,1129,1.753,1166,5.494,1248,3.853,1369,2.756,1438,1.966,1467,0.973,1588,2.129,1647,3.677,1849,1.529,1852,1.287,1920,1.94,1946,2.024,1961,2.129,2255,3.602,2280,5.144,2356,2.078,2357,3.438,2362,1.753,2385,3.101,2412,3.219,2439,1.788,2471,3.31,2538,3.602,2614,3.677,2794,1.807,2925,1.826,2969,2.057,3090,3.265,3405,2.091,3502,4.82,3579,3.19,3580,2.64,3584,2.057,3889,6.872,3895,4.676,4511,7.419,4516,4.236,4519,3.471,4521,4.086,4522,4.086,4524,4.086,4525,4.086,4527,5.238,4530,4.086,4531,7.399,4533,7.988,4534,4.086,4538,4.086,4544,2.265,4546,2.386,4566,8.393,4567,2.461,4568,2.665,4569,8.368,4570,7.323,4584,6.955,4585,6.978,4586,4.424,4591,2.817,4592,2.386,4593,1.54,4737,5.557,5164,2.552,5442,1.736,5698,2.573,6064,1.94,6074,1.891,6100,5.866,6854,2.734,7034,2.386,7044,4.805,7074,2.649,7182,4.53,7271,3.138,7464,8.588,7801,3.961,7821,2.091,7927,2.386,8920,4.816,9058,1.966,9603,3.219,9647,6.566,10293,1.704,11504,2.322,11526,8.972,11571,9.899,11664,4.676,11774,3.219,11936,3.36,12552,6.564,14878,2.552,15227,3.047,15228,7.548,15229,7.548,15230,5.058,15231,5.058,15232,5.058,15233,3.047,15234,3.047,15235,7.563,15236,9.03,15237,3.047,15238,3.853,15239,3.047,15240,3.047,15241,5.058,15242,3.047,15243,8.373,15244,7.548,15245,5.058,15246,3.047,15247,3.047,15248,5.43,15249,3.047,15250,4.424,15251,5.058,15252,7.728,15253,3.047,15254,4.236,15255,4.676,15256,4.676,15257,5.058,15258,3.047,15259,3.047,15260,3.047,15261,3.047,15262,10.014,15263,7.548,15264,3.047,15265,2.817,15266,3.047,15267,3.047,15268,3.047,15269,5.058,15270,3.047,15271,5.058,15272,6.484,15273,7.548,15274,5.058,15275,3.047,15276,2.665,15277,2.461,15278,3.047,15279,5.058,15280,3.047,15281,3.047,15282,3.047,15283,3.047,15284,3.047,15285,3.047,15286,3.047,15287,5.058,15288,3.047,15289,5.058,15290,3.047,15291,3.047,15292,3.047,15293,2.817,15294,3.047,15295,3.047,15296,3.047,15297,3.047,15298,3.047,15299,3.047,15300,3.047,15301,3.047,15302,3.047,15303,3.047,15304,3.047,15305,3.047,15306,3.047,15307,3.047,15308,3.047,15309,3.047,15310,3.047,15311,3.047,15312,5.058,15313,5.058,15314,3.047,15315,3.047,15316,3.047,15317,3.047,15318,3.047,15319,3.047,15320,3.047,15321,3.047,15322,3.047]],["title/classes/NotFoundLoggableException.html",[0,0.232,9674,4.751]],["body/classes/NotFoundLoggableException.html",[0,0.291,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,8,1.31,27,0.447,29,0.668,30,0.001,31,0.478,32,0.147,33,0.413,35,1.033,47,0.98,95,0.153,101,0.014,103,0.001,104,0.001,111,2.389,127,1.358,163,2.626,187,1.234,214,3.418,216,2.204,217,1.11,227,0.885,404,1.954,406,2.775,1216,4.248,1464,5.489,1469,6.21,2644,6.39,8288,6.52,8738,5.431,8740,6.076,8745,5.006,8746,5.231,9674,7.575,10699,7.145,10700,7.145,15323,11.919,15324,11.919,15325,11.018,15326,8.532,15327,11.919,15328,11.919,15329,11.919,15330,8.532,15331,8.532,15332,8.532,15333,8.532,15334,8.532]],["title/injectables/OAuth2ToolLaunchStrategy.html",[105,0.91,15335,5.694]],["body/injectables/OAuth2ToolLaunchStrategy.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.881,9,2.276,26,2.341,27,0.529,29,1.004,30,0.001,31,0.718,32,0.178,33,0.62,35,1.552,36,2.458,39,2.365,47,0.878,95,0.135,99,0.806,101,0.008,103,0,104,0,105,0.975,106,11.021,107,1.164,108,2.805,110,4.224,111,2.638,112,2.713,113,6.377,114,6.377,115,6.377,116,3.993,117,7.682,118,6.377,119,6.377,120,6.377,121,6.377,122,6.106,123,6.106,124,6.377,125,6.377,126,6.377,133,4.224,134,10.439,135,6.377,136,7.298,137,5.42,138,3.185,139,6.966,140,6.689,142,4.224,143,6.377,144,2.005,145,2.478,146,6.715,148,2.244,149,4.224,150,3.388,151,6.377,153,4.224,155,9.243,157,4.224,158,4.293,160,8.21,161,4.224,163,3.399,164,6.377,165,0.766,167,3.232,168,4.224,170,4.045,171,4.045,173,4.224,175,3.439,176,6.377,178,7.095,179,4.224,180,6.377,181,6.314,183,4.224,184,6.377,185,2.833,187,0.698,208,1.804,209,2.41,210,3.161,211,4.045,227,0.911,404,1.314,596,3.911,731,3.866,1187,4.666,1188,4.611,1189,4.611,1190,4.877,1191,5.332,2139,5.667,2600,4.465,2603,4.465,2604,4.465,2605,4.465,2606,4.465,2607,4.465,2608,4.465,2609,4.465,2610,4.465,2611,4.465,2612,4.465,2613,4.465,2614,7.113,2615,6.968,2616,3.782,2626,4.224,15335,6.106,15336,4.83,15337,4.83,15338,4.83]],["title/classes/OAuthMigrationError.html",[0,0.232,15339,5.493]],["body/classes/OAuthMigrationError.html",[0,0.248,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.534,29,0.571,30,0.001,31,0.409,32,0.176,33,0.595,47,1.016,52,4.64,59,3.677,95,0.094,101,0.012,103,0.001,104,0.001,127,1.226,144,2.692,165,0.767,204,3.321,216,2.6,319,2.926,355,4.744,404,1.764,596,3.601,1216,4.967,1817,5.713,3849,5.559,4476,5.264,5442,5.576,6833,6.151,11432,9.222,13097,6.381,13723,5.424,15339,7.907,15340,10.914,15341,9.662,15342,9.662,15343,10.845,15344,12.95,15345,12.95,15346,9.789,15347,9.789,15348,7.296,15349,7.296,15350,7.296,15351,7.296,15352,7.296,15353,6.745,15354,6.745,15355,6.745,15356,6.745,15357,7.296,15358,7.296]],["title/classes/OAuthProcessDto.html",[0,0.232,15359,5.694]],["body/classes/OAuthProcessDto.html",[0,0.328,2,1.074,3,0.023,4,0.023,5,0.012,7,0.146,27,0.519,29,0.755,30,0.001,31,0.54,32,0.171,33,0.609,47,0.934,101,0.016,103,0.001,104,0.001,127,1.207,165,0.916,1016,3.382,1605,7.464,2170,8.123,2186,8.068,5931,9.445,15359,11.232,15360,12.102,15361,9.634,15362,11.692,15363,9.634,15364,9.634,15365,9.634,15366,9.634]],["title/classes/OAuthRejectableBody.html",[0,0.232,5432,5.493]],["body/classes/OAuthRejectableBody.html",[0,0.31,2,0.731,3,0.016,4,0.016,5,0.008,7,0.099,27,0.489,30,0.001,32,0.161,33,0.638,47,0.915,55,1.961,95,0.117,101,0.011,103,0.001,104,0.001,116,2.835,165,0.713,204,4.597,361,6.806,364,2.161,368,5.171,370,4.348,371,3.856,374,2.094,376,1.5,379,2.853,467,3.221,470,4.963,471,4.977,502,5.649,506,5.958,564,3.337,565,5.629,1035,7.89,1142,4.216,1342,5.72,1421,6.617,1433,5.582,1909,8.187,2075,5.003,2468,6.769,3469,6.483,5406,5.649,5432,7.353,5433,8.756,5434,8.756,5435,8.187,5438,5.958,5454,8.843,5455,6.936,5456,7.962,5457,7.962,5458,7.962,5460,5.958,5461,8.604,5462,7.89,5463,6.936,5464,7.353,5465,6.936,5466,7.624,5467,7.353,5469,7.624,5471,6.936,5473,5.737,5474,7.624,5475,7.962,15367,11.35,15368,6.559,15369,6.559,15370,6.559,15371,6.559,15372,6.559,15373,6.559]],["title/classes/OAuthSSOError.html",[0,0.232,11432,4.842]],["body/classes/OAuthSSOError.html",[0,0.277,2,0.907,3,0.019,4,0.019,5,0.01,7,0.123,27,0.526,29,0.637,30,0.001,31,0.456,32,0.173,33,0.393,47,1.001,59,3.276,95,0.135,101,0.014,103,0.001,104,0.001,127,1.019,144,2.892,165,0.824,187,1.177,204,3.954,216,2.572,319,3.143,404,1.895,1216,4.999,1353,5.626,1817,8.236,3849,6.198,5442,5.991,6833,6.608,11432,7.489,15341,10.194,15342,10.194,15343,11.136,15353,7.521,15354,7.521,15355,7.521,15356,7.521,15374,13.067,15375,8.136,15376,10.517,15377,9.722,15378,9.76,15379,8.136,15380,8.136,15381,8.136,15382,7.521,15383,8.136]],["title/injectables/OAuthService.html",[105,0.91,11415,5.181]],["body/injectables/OAuthService.html",[0,0.103,3,0.007,4,0.007,5,0.004,7,0.046,8,0.608,26,1.595,27,0.452,29,0.86,30,0.001,31,0.615,32,0.149,33,0.531,35,1.294,36,2.493,47,1.009,48,5.758,52,4.269,59,2.6,95,0.158,99,0.506,100,1.015,101,0.005,103,0,104,0,105,0.674,107,0.731,111,2.365,112,2.763,127,0.631,129,4.669,132,4.168,145,1.636,150,2.605,163,0.933,167,2.377,187,0.438,189,2.792,191,1.68,192,2.242,204,1.028,216,1.918,217,1.698,221,2.766,227,1.163,231,2.792,234,1.622,305,2.143,334,0.326,347,1.93,348,6.787,355,1.218,359,1.057,369,1.118,460,4.327,461,2.06,529,1.317,576,1.711,839,1.445,1142,3.867,1350,3.586,1464,1.396,1467,0.967,1514,6.744,1567,2.08,1570,2.253,1589,2.802,1593,2.538,1605,1.797,1609,2.309,1613,1.881,1625,4.998,1695,1.929,1739,3.661,1755,5.972,1820,3.125,1852,2.126,2130,1.324,2131,1.482,2132,1.428,2133,1.929,2170,6.9,2356,2.653,2357,3.427,2475,2.08,3104,3.408,3405,3.456,3580,2.05,4492,2.253,4593,2.544,4737,5.232,4865,3.456,4866,2.373,5438,3.296,5442,2.869,6098,1.984,6712,1.956,7002,4.404,7074,3.941,8259,2.253,8443,4.998,8452,6.719,8844,2.118,9285,5.469,9314,2.448,9646,2.448,10031,1.904,11156,6.069,11196,6.797,11217,4.228,11265,4.217,11415,3.837,11429,8.382,11432,3.586,11435,4.696,11439,2.651,11442,4.655,11489,5.65,11510,2.253,11511,2.253,11512,4.802,11568,7.234,11828,2.253,12184,2.158,12311,3.661,12342,3.837,12344,2.309,12356,2.309,12573,2.538,13062,3.943,13089,3.518,13100,2.802,13105,2.651,13374,2.448,14104,4.404,14305,2.448,14813,7.993,14816,4.655,14821,2.651,14824,4.404,14878,2.538,15277,2.448,15343,6.992,15382,2.802,15384,3.031,15385,6.46,15386,6.46,15387,6.46,15388,4.655,15389,5.036,15390,5.036,15391,5.036,15392,6.46,15393,5.036,15394,7.993,15395,7.474,15396,7.474,15397,3.031,15398,3.031,15399,7.524,15400,3.031,15401,3.031,15402,3.031,15403,3.031,15404,3.031,15405,5.036,15406,3.031,15407,5.036,15408,8.638,15409,3.031,15410,5.036,15411,3.031,15412,5.036,15413,3.031,15414,3.031,15415,3.031,15416,5.036,15417,3.031,15418,5.036,15419,3.031,15420,2.373,15421,2.651,15422,2.651,15423,2.651,15424,3.031,15425,2.802,15426,4.068,15427,2.802,15428,3.031,15429,3.031,15430,3.031,15431,3.031,15432,3.031,15433,2.802,15434,2.448,15435,3.031,15436,7.524,15437,3.031,15438,3.031,15439,4.655,15440,3.031,15441,4.655,15442,3.031,15443,3.031,15444,3.031,15445,2.802,15446,4.404,15447,3.031,15448,3.031,15449,3.031,15450,2.802,15451,3.031,15452,4.217,15453,3.031,15454,3.031,15455,3.031,15456,3.031,15457,2.802,15458,3.031,15459,3.031,15460,3.031,15461,3.031,15462,3.031,15463,3.031,15464,3.031,15465,5.036,15466,3.031,15467,3.031,15468,2.802,15469,3.031,15470,3.031,15471,3.031,15472,3.031,15473,3.031,15474,3.031,15475,3.031,15476,3.031,15477,4.655,15478,2.802,15479,3.031,15480,3.031,15481,3.031,15482,4.655,15483,3.031,15484,5.036,15485,3.031]],["title/classes/OAuthTokenDto.html",[0,0.232,11435,4.943]],["body/classes/OAuthTokenDto.html",[0,0.32,2,1.047,3,0.022,4,0.022,5,0.011,7,0.142,27,0.535,29,0.735,30,0.001,31,0.526,32,0.176,33,0.454,47,0.966,101,0.016,103,0.001,104,0.001,127,1.176,165,0.901,348,8.146,405,3.067,595,3.143,1625,8.269,11435,9.679,14505,7.861,14506,7.861,15486,13.315,15487,9.387,15488,11.506,15489,11.509,15490,9.387,15491,9.387,15492,8.677,15493,8.677,15494,9.387,15495,9.387]],["title/classes/Oauth2AuthorizationBodyParams.html",[0,0.232,14479,5.694]],["body/classes/Oauth2AuthorizationBodyParams.html",[0,0.39,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.511,30,0.001,32,0.168,47,0.964,48,5.841,95,0.147,101,0.016,103,0.001,104,0.001,165,0.896,364,2.258,374,2.968,376,2.127,467,3.393,470,5.185,1000,4.659,1001,7.429,1142,5.741,5806,6.76,7328,9.244,11568,7.6,13737,8.134,13738,8.597,14374,8.597,14375,8.597,14479,9.583,15496,12.934]],["title/classes/Oauth2MigrationParams.html",[0,0.232,15497,5.947]],["body/classes/Oauth2MigrationParams.html",[0,0.385,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.507,30,0.001,32,0.167,47,0.96,48,5.793,95,0.145,101,0.015,103,0.001,104,0.001,165,0.886,355,5.164,364,2.239,374,2.915,376,2.089,467,3.372,470,5.143,1000,4.607,1001,7.369,1142,5.694,4476,5.73,5806,6.638,7328,9.14,11568,7.538,15497,9.896,15498,12.851,15499,9.131,15500,9.131,15501,9.131,15502,9.131]],["title/injectables/Oauth2Strategy.html",[105,0.91,1556,5.947]],["body/injectables/Oauth2Strategy.html",[0,0.241,3,0.017,4,0.017,5,0.009,7,0.107,8,1.16,27,0.396,29,0.752,30,0.001,31,0.538,32,0.159,33,0.464,35,0.858,36,2.059,47,0.506,48,5.131,66,6.196,94,5.289,95,0.175,101,0.012,103,0.001,104,0.001,105,1.285,107,1.709,111,1.421,112,2.4,127,0.888,138,4.195,167,2.609,187,1.025,206,3.608,215,2.263,216,1.776,217,1.587,221,2.52,227,0.735,234,1.559,305,2.736,334,0.762,349,4.786,367,3.381,404,1.73,406,2.306,461,2.669,491,3.488,511,3.583,513,4.852,543,3.608,639,5.154,738,3.686,818,9.794,1142,4.447,1431,4.039,1556,8.399,1562,5.271,1732,5.271,2004,4.866,2170,4.575,4519,4.866,5438,6.285,6098,6.285,7062,5.271,7074,5.03,7077,7.138,7081,5.728,11414,6.202,11415,9.578,11435,6.98,11568,5.887,13158,5.552,13162,8.042,13167,5.938,13658,5.938,13807,8.877,13810,6.555,13824,6.555,14479,8.042,15452,5.938,15503,7.09,15504,7.09,15505,7.09,15506,6.555,15507,8.399,15508,7.09,15509,6.555,15510,6.555,15511,6.555,15512,8.399,15513,6.202,15514,7.09,15515,7.09,15516,7.09]],["title/classes/Oauth2ToolConfig.html",[0,0.232,7270,4.667]],["body/classes/Oauth2ToolConfig.html",[0,0.249,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,27,0.556,29,0.574,30,0.001,31,0.41,32,0.187,33,0.657,47,0.97,95,0.126,101,0.012,103,0.001,104,0.001,127,0.917,165,0.769,198,3.557,200,2.281,209,4.455,238,6.19,277,4.467,347,1.985,404,1.768,405,2.615,406,2.382,595,2.452,596,2.993,2559,6.044,2561,6.132,2562,9.165,2564,6.405,2565,5.44,2566,6.405,2567,6.405,2569,5.214,5530,5.517,7133,7.045,7166,5.579,7167,5.915,7222,4.942,7223,5.915,7267,9.434,7270,8.461,7278,6.708,7281,8.432,7283,8.227,7289,4.942,12338,5.025,12339,5.443,14571,6.769,14572,6.769,14573,6.769,14574,6.769,14575,6.769,14576,6.769,15517,13.342,15518,9.813,15519,6.405,15520,7.322,15521,6.769,15522,6.769,15523,6.769,15524,6.769,15525,6.769,15526,6.769]],["title/classes/Oauth2ToolConfigCreateParams.html",[0,0.232,8618,5.694]],["body/classes/Oauth2ToolConfigCreateParams.html",[0,0.325,2,0.784,3,0.017,4,0.017,5,0.008,7,0.106,27,0.546,30,0.001,32,0.185,33,0.562,47,0.97,95,0.149,101,0.012,103,0.001,104,0.001,154,5.977,165,0.748,198,3.414,200,2.189,209,4.372,238,6.062,277,4.375,347,1.931,364,2.41,373,5.117,374,2.243,375,4.129,376,1.608,404,1.72,467,3.424,470,5.245,471,4.394,596,2.912,1044,3.372,2559,5.912,2565,6.009,2583,8.838,2584,7.573,2585,5.678,2586,5.678,2587,5.678,2588,5.678,2589,5.678,5477,6.076,5530,5.403,5825,6.939,7133,6.9,7267,9.321,7278,6.569,7281,8.258,7283,8.058,7330,5.355,8616,5.678,8618,7.994,8624,6.148,14583,6.497,14587,6.497,15527,12.064,15528,6.497,15529,7.029,15530,7.029,15531,6.497,15532,6.497,15533,7.029,15534,6.497]],["title/classes/Oauth2ToolConfigEntity.html",[0,0.232,8683,5.493]],["body/classes/Oauth2ToolConfigEntity.html",[0,0.297,2,0.974,3,0.021,4,0.021,5,0.011,7,0.132,27,0.497,29,0.684,30,0.001,31,0.489,32,0.164,33,0.422,47,0.785,95,0.155,96,2.39,101,0.015,103,0.001,104,0.001,127,1.094,165,0.862,198,4.243,200,2.721,209,4.309,240,4.136,347,2.226,364,2.005,398,2.574,404,1.574,405,2.933,595,2.925,617,4.842,2559,5.73,2565,4.842,2572,7.316,2574,5.68,2575,8.89,2576,7.64,2577,4.93,2578,3.895,5530,6.006,7133,7.67,7166,6.655,7167,7.056,7289,7.428,8683,10.533,12338,5.995,15519,7.64,15535,12.649,15536,11.006,15537,8.735]],["title/classes/Oauth2ToolConfigFactory.html",[0,0.232,7276,5.694]],["body/classes/Oauth2ToolConfigFactory.html",[0,0.259,2,0.43,3,0.009,4,0.009,5,0.005,7,0.058,8,0.74,27,0.509,29,0.988,30,0.001,31,0.692,32,0.178,33,0.571,34,1.042,35,1.367,47,0.437,55,2.361,59,3.139,95,0.122,101,0.016,103,0,104,0,127,0.483,136,3.9,138,2.676,144,3.014,146,2.648,148,1.187,150,1.336,154,3.49,158,1.886,165,0.48,185,5.024,195,2.604,196,2.748,200,1.202,201,1.963,209,1.275,216,1.133,217,1.587,227,1.224,236,2.264,238,4.262,277,3.821,278,2.94,279,4.454,281,2.868,290,2.264,319,3.276,326,2.868,331,2.456,359,2.136,366,2.158,371,2.393,379,1.727,380,1.619,381,2.038,404,1.564,461,0.883,471,1.564,538,2.761,596,3.719,627,1.88,660,6.701,661,4.235,662,4.898,665,3.458,666,4.898,667,5.195,668,3.458,669,3.458,670,3.458,671,3.396,672,3.905,673,4.301,674,6.358,675,5.248,676,6.676,677,2.198,682,2.178,683,3.458,684,2.198,685,4.58,686,4.729,687,3.699,688,4.447,689,3.427,690,2.178,691,2.052,692,3.765,693,2.12,694,2.085,695,2.178,696,4.512,697,2.198,698,4.224,699,2.178,700,7.466,701,3.875,702,6.186,703,2.198,704,3.034,705,2.178,706,2.198,707,2.178,708,2.198,709,2.178,712,2.178,713,5.586,714,2.198,715,2.178,716,3.458,717,3.234,718,3.458,719,2.198,720,2.103,721,2.085,722,1.72,723,2.178,724,2.178,725,2.178,726,2.198,727,2.198,728,1.475,729,2.178,730,2.198,731,2.421,732,2.178,733,2.198,735,2.241,736,2.288,737,5.201,905,1.607,1431,2.198,1618,3.559,2035,3.311,2558,2.805,2565,2.139,2568,2.696,4313,6.741,4315,2.805,5007,2.085,5530,3.054,5698,1.963,5736,2.178,5793,3.117,5798,3.021,5799,2.604,7112,2.525,7118,2.49,7120,2.49,7122,2.49,7133,2.456,7135,2.313,7261,5.131,7262,5.359,7264,3.375,7266,2.805,7267,4.555,7268,3.021,7269,2.805,7270,2.648,7271,2.394,7272,3.375,7273,3.375,7274,3.375,7275,6.665,7276,6.382,7277,5.359,7278,3.713,7279,3.117,7280,2.805,7281,2.94,7282,3.375,7283,2.868,7284,3.375,7285,3.375,7286,3.231,7287,5.359,7288,3.375,7289,2.604,7290,3.375,7291,3.375,7292,3.375,7293,2.648,7294,3.375,7295,3.375,7296,3.231,7297,3.375,7298,2.748,7299,4.668,7300,5.359,7301,6.665,7302,5.359,7303,5.359,7304,3.375,7305,3.231,7306,3.021,7307,5.131,7308,3.375,7309,3.375,7310,3.375,7311,3.375,7312,3.375,7313,5.359,7314,3.375,7315,3.231,7316,2.525,7317,3.231,7318,3.375,7319,3.375,7320,3.375,7321,3.375,15538,6.127,15539,3.858]],["title/classes/Oauth2ToolConfigResponse.html",[0,0.232,9211,5.694]],["body/classes/Oauth2ToolConfigResponse.html",[0,0.238,2,0.78,3,0.017,4,0.017,5,0.008,7,0.106,27,0.545,29,0.548,30,0.001,31,0.392,32,0.185,33,0.639,47,0.953,95,0.139,101,0.012,103,0.001,104,0.001,127,0.876,165,0.745,198,3.396,200,2.178,209,4.368,238,6.046,277,4.363,347,1.924,364,2.374,375,5.034,376,1.599,404,1.714,405,2.534,406,2.274,467,3.467,595,2.341,596,2.901,2559,5.905,2565,5.993,2569,4.979,2578,3.117,2579,4.979,2592,5.648,2593,9.803,2595,6.116,2596,6.116,2597,5.648,5530,5.388,7133,6.881,7166,5.327,7167,5.648,7222,4.719,7223,5.648,7267,9.307,7281,8.236,7283,8.036,7289,4.719,9211,10.163,12338,4.799,14599,6.464,14600,6.464,14601,6.464,14602,6.464,14603,6.116,15519,6.116,15521,6.464,15522,6.464,15523,6.464,15524,6.464,15525,6.464,15526,6.464,15540,13.035,15541,9.512]],["title/classes/Oauth2ToolConfigUpdateParams.html",[0,0.232,9142,5.694]],["body/classes/Oauth2ToolConfigUpdateParams.html",[0,0.324,2,0.78,3,0.017,4,0.017,5,0.008,7,0.106,27,0.545,30,0.001,32,0.185,33,0.605,47,0.969,95,0.149,101,0.012,103,0.001,104,0.001,154,5.97,165,0.745,198,3.396,200,2.178,209,4.368,238,6.046,277,4.363,347,1.924,364,2.407,373,5.099,374,2.232,375,4.419,376,1.599,404,1.714,467,3.36,470,5.237,471,4.703,596,2.901,1044,3.354,2559,5.905,2565,5.993,2583,8.822,2584,6.645,2585,5.648,2586,5.648,2587,5.648,2588,5.648,2589,5.648,5477,6.055,5530,5.388,5825,7.858,7133,6.881,7267,9.307,7278,6.552,7281,8.236,7283,8.036,7330,5.327,9142,7.966,9420,5.856,9422,6.116,9424,6.116,9428,6.464,14607,6.464,15527,12.049,15528,6.464,15532,6.464,15534,6.464,15542,6.992,15543,6.992,15544,6.992]],["title/injectables/OauthAdapterService.html",[105,0.91,15394,5.694]],["body/injectables/OauthAdapterService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.137,27,0.475,29,0.903,30,0.001,31,0.646,32,0.164,33,0.557,35,1.298,36,2.735,47,0.91,95,0.167,100,2.305,101,0.011,103,0.001,104,0.001,105,1.259,107,1.66,111,2.15,112,2.746,116,3.34,127,0.862,204,2.336,215,2.197,216,1.273,217,1.571,221,2.178,227,1.112,231,5.945,234,1.118,305,1.961,351,3.455,369,1.528,784,3.721,798,4.326,1154,8.706,1155,3.999,1156,5.245,1157,4.506,1270,4.082,1369,3.752,1464,3.171,1514,9.312,2022,6.702,2033,4.81,2035,3.721,2292,9.494,2303,2.791,2327,6.021,3580,2.803,3872,5.391,3923,6.364,7008,8.232,11432,4.903,11439,6.021,11507,5.766,11572,6.352,13544,6.364,13545,6.364,13546,6.021,13547,6.364,15394,7.882,15426,5.561,15450,8.7,15545,12.07,15546,6.884,15547,10.724,15548,10.724,15549,6.884,15550,9.412,15551,6.884,15552,9.412,15553,6.884,15554,6.884,15555,6.884,15556,6.884,15557,6.884,15558,9.412,15559,6.021,15560,6.364,15561,6.884,15562,6.884,15563,6.884,15564,6.884,15565,9.412,15566,6.884,15567,6.884,15568,6.884,15569,9.412,15570,6.884,15571,6.884,15572,6.884,15573,6.884]],["title/modules/OauthApiModule.html",[425,1.812,15574,5.493]],["body/modules/OauthApiModule.html",[0,0.249,3,0.017,4,0.017,5,0.009,30,0.001,52,3.471,95,0.176,101,0.012,103,0.001,104,0.001,187,1.059,191,4.059,192,2.182,355,2.943,425,2.949,427,2.645,428,2.846,429,2.93,430,2.917,431,2.905,432,4.073,433,2.767,438,5.945,442,3.926,443,2.869,444,2.8,446,4.601,447,4.067,449,3.893,1467,2.337,1507,8.431,1546,9.937,1548,8.866,1567,5.025,1878,6.859,2725,3.317,2727,3.513,3568,7.973,4593,4.958,5333,8.078,10423,5.734,11405,10.628,13913,9.669,15420,5.734,15574,11.554,15575,7.322,15576,7.322,15577,7.322,15578,9.937,15579,10.628,15580,7.322,15581,9.68,15582,6.769,15583,7.322,15584,7.322]],["title/classes/OauthClientBody.html",[0,0.232,15585,5.947]],["body/classes/OauthClientBody.html",[0,0.243,2,0.525,3,0.011,4,0.011,5,0.006,7,0.071,27,0.504,30,0.001,31,0.4,32,0.166,33,0.649,34,1.216,47,0.947,95,0.124,101,0.008,103,0,104,0,116,2.227,165,0.56,208,4.085,235,4.035,277,4.586,290,4.195,349,4.825,351,3.587,361,6.89,364,2.227,368,5.258,369,1.919,370,4.421,371,3.89,374,1.502,376,1.076,379,2.771,467,3.261,470,5.016,471,5.038,535,3.833,538,4.351,574,3.139,701,2.528,745,6.609,783,4.333,1016,2.51,1044,2.257,1161,4.906,1272,3.585,1516,5.775,1518,6.156,1519,6.983,1530,3.498,1581,6.876,1602,4.995,1618,4.152,1642,5.091,1920,4.551,2075,3.929,2145,4.492,2170,4.613,2450,4.925,2464,5.775,2465,5.987,3580,5.406,3961,4.436,4051,6.983,5406,4.436,5438,8.248,5442,4.072,5454,8.131,5477,6.146,5492,7.561,5510,6.253,5511,6.517,5526,6.77,7134,6.427,9371,7.992,9373,7.561,9376,9.599,9377,6.609,11334,5.197,11944,5.314,13062,5.598,15367,11.49,15585,6.253,15586,4.705,15587,7.992,15588,7.992,15589,4.705,15590,4.705,15591,4.705,15592,7.149,15593,7.149,15594,4.705,15595,4.705,15596,4.705,15597,4.705,15598,5.987,15599,5.775,15600,6.609,15601,5.987,15602,7.149,15603,7.149,15604,7.149,15605,7.149,15606,4.705,15607,8.645,15608,4.705,15609,7.149,15610,7.149,15611,4.705,15612,8.645,15613,4.705,15614,6.609,15615,7.149,15616,7.149,15617,4.705,15618,4.705,15619,4.705,15620,4.705,15621,4.705,15622,4.705]],["title/classes/OauthConfig.html",[0,0.232,11429,4.387]],["body/classes/OauthConfig.html",[0,0.305,2,0.456,3,0.01,4,0.01,5,0.005,7,0.062,26,1.36,27,0.516,29,0.32,30,0.001,31,0.229,32,0.174,33,0.471,47,1.021,83,2.421,95,0.115,96,1.119,101,0.016,103,0,104,0,127,0.512,150,2.741,165,0.502,208,1.528,216,0.756,240,4.494,277,3.194,334,0.439,347,0.827,359,1.426,364,2.252,369,2.973,370,4.374,371,1.128,379,0.927,380,1.682,386,3.654,398,1.205,399,2.545,400,1.805,402,1.695,404,0.737,405,1.09,406,1.33,496,1.727,722,1.823,775,2.507,783,2.478,1031,2.48,1141,2.507,1498,2.478,1581,2.912,1613,4.911,2072,2.639,2097,3.04,2574,3.311,2578,1.823,4271,3.496,4309,4.568,4333,2.451,4588,4.626,5530,4.468,5698,3.264,5717,2.603,5718,2.807,6196,3.467,7136,2.569,7222,2.76,7278,5.432,8469,2.21,8805,5.342,9787,2.676,10293,2.287,11429,7.593,11510,3.04,11511,3.04,11512,3.04,11513,3.116,11557,5.432,11560,5.258,11562,5.432,11565,5.432,11568,4.853,11572,5.342,11613,2.676,12035,3.116,12219,2.912,12327,4.887,12328,3.303,12329,4.262,12330,7.51,12331,7.218,12332,4.03,12333,4.482,12334,5.18,12335,2.717,12336,2.717,12337,5.182,12338,4.403,12339,4.769,12340,3.202,12341,4.769,12342,3.116,12343,3.116,12344,3.116,12345,3.116,12346,3.202,12347,3.116,12348,3.116,12349,3.116,12350,3.202,12351,4.769,12352,3.202,12353,3.116,12354,3.202,12355,3.116,12356,3.116,12357,3.116,12358,3.202,12359,6.151,12360,3.303,12361,3.303,12362,3.303,12363,3.303,12364,3.303,12365,3.303,12366,3.303,12367,3.303,12368,3.303,12369,3.303,12370,3.303,12371,3.303,12372,3.202,12373,3.303,12374,3.303,12375,3.303,12376,3.303,12377,3.303,12378,3.303,12379,3.303,12380,3.303,12381,3.303,12382,3.303,12383,3.303,12384,3.303,12385,3.303,12386,3.303,12387,3.303,12388,3.303,12389,3.303,12390,3.04,12391,3.303,12392,3.303,12393,3.303,12394,3.303,12395,3.303,12396,3.303,12397,3.303,12398,3.303,12399,3.303,12400,3.303,12401,3.303,12402,3.303,12403,3.303,12404,3.303,12405,3.116,12406,3.303,12407,3.04,12408,3.202,12409,3.116,12410,3.202,12411,3.116,12412,3.116,12413,3.202,12414,3.116,12415,3.202,12416,3.116,12417,2.973,12418,2.973,12419,2.973,12420,3.04,12421,3.116,12422,3.303,12423,3.116,12424,3.303,12425,3.303,12426,3.303,12427,3.303,12428,3.303,12429,3.116,12430,3.202,12431,3.116,12432,3.202,15623,4.089,15624,4.089,15625,4.089,15626,4.089,15627,4.089,15628,4.089,15629,4.089,15630,4.089,15631,4.089,15632,4.089,15633,4.089,15634,4.089,15635,4.089,15636,4.089]],["title/classes/OauthConfigDto.html",[0,0.232,12676,5.181]],["body/classes/OauthConfigDto.html",[0,0.235,2,0.769,3,0.016,4,0.016,5,0.008,7,0.104,27,0.566,29,0.54,30,0.001,31,0.386,32,0.187,33,0.584,47,1.015,72,4.269,101,0.012,103,0.001,104,0.001,127,0.864,165,0.738,277,4.332,355,3.786,461,2.155,728,3.603,1613,6.66,2145,5.92,2170,6.08,2800,6.167,4588,6.233,5530,5.35,7222,4.655,7278,6.505,8805,7.244,11557,7.367,11560,7.131,11562,7.367,11565,7.367,11568,6.581,11572,7.244,11944,7.005,12338,4.733,12339,5.127,12341,5.127,12343,5.254,12345,5.254,12347,5.254,12348,5.254,12349,5.254,12351,5.127,12353,5.254,12355,5.254,12357,5.254,12359,7.367,12676,9.499,15637,13.806,15638,6.375,15639,9.423,15640,9.423,15641,6.375,15642,6.896,15643,6.896,15644,6.896,15645,6.896,15646,6.896,15647,6.896,15648,6.375,15649,6.896,15650,6.375,15651,6.375,15652,6.896,15653,6.375,15654,6.896,15655,6.375,15656,6.375,15657,6.375,15658,6.375,15659,6.375,15660,6.375,15661,6.375,15662,6.375,15663,6.375,15664,6.375,15665,6.375]],["title/classes/OauthConfigResponse.html",[0,0.232,15666,5.694]],["body/classes/OauthConfigResponse.html",[0,0.172,2,0.564,3,0.012,4,0.012,5,0.006,7,0.076,27,0.534,29,0.396,30,0.001,31,0.283,32,0.183,33,0.563,34,1.284,47,1.006,95,0.065,101,0.008,103,0,104,0,127,0.634,138,3.298,165,0.591,277,4.536,351,3.789,364,2.332,368,5.391,369,3.033,370,4.532,371,3.816,376,1.157,379,2.901,467,3.395,1013,5.863,1016,2.651,1161,5.182,1272,5.753,1516,6.099,1613,6.974,2145,7.521,2170,4.872,2592,4.087,3580,3.074,4588,5.8,5471,5.753,5530,4.992,7222,3.415,8805,6.76,11557,6.874,11560,6.654,11562,6.874,11565,6.874,11568,6.141,11572,6.76,11941,6.099,11944,5.613,12338,3.473,12341,3.762,12343,3.855,12345,3.855,12347,3.855,12348,3.855,12349,3.855,12351,3.762,12353,3.855,12355,3.855,12357,3.855,12359,6.874,14603,4.426,15559,6.604,15666,7.565,15667,13.062,15668,7.551,15669,7.551,15670,5.06,15671,5.06,15672,5.06,15673,6.98,15674,5.06,15675,5.06,15676,5.06,15677,5.06,15678,5.06,15679,5.06,15680,5.06,15681,5.06,15682,5.06,15683,5.06,15684,5.06,15685,5.06,15686,5.06,15687,5.06,15688,5.06,15689,5.06,15690,5.06,15691,5.06,15692,5.06]],["title/interfaces/OauthCurrentUser.html",[334,0.731,7077,5.055]],["body/interfaces/OauthCurrentUser.html",[3,0.02,4,0.02,5,0.01,7,0.125,26,2.897,30,0.001,32,0.113,33,0.515,34,1.81,39,2.231,47,0.838,48,3.905,72,4.821,85,5.347,94,4.025,95,0.106,99,1.383,101,0.018,103,0.001,104,0.001,165,0.834,200,3.864,334,1.143,336,1.983,347,2.153,348,6.965,355,4.724,369,2.609,404,1.918,461,2.935,491,5.784,496,3.499,522,6.489,575,4.966,728,4.07,770,4.913,1193,5.593,2449,5.687,2468,4.966,3090,5.085,3104,3.754,3110,4.13,3281,5.505,4205,3.587,5058,5.505,5406,6.604,5438,6.965,5442,4.72,7025,6.693,7026,6.939,7027,6.604,7075,10.021,7077,7.911,7098,7.248,11939,7.66,11940,7.66,11941,8.597,11942,9.838,11943,9.838,11944,7.911]],["title/classes/OauthDataDto.html",[0,0.232,13089,4.751]],["body/classes/OauthDataDto.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.535,29,0.671,30,0.001,31,0.48,32,0.176,33,0.627,95,0.161,101,0.014,103,0.001,104,0.001,127,1.073,165,0.852,200,3.72,405,2.897,595,2.869,3104,5.41,8419,9.099,8433,7.921,8450,8.878,8471,6.709,8472,7.176,9534,8.681,11156,6.228,13089,9.057,13118,9.647,13120,10.001,15693,12.245,15694,8.568,15695,10.445,15696,10.872,15697,8.568,15698,8.568,15699,9.352,15700,8.568,15701,8.568,15702,7.921,15703,8.568,15704,8.568,15705,8.568,15706,8.568,15707,8.568,15708,8.568,15709,8.568]],["title/classes/OauthDataStrategyInputDto.html",[0,0.232,13094,5.055]],["body/classes/OauthDataStrategyInputDto.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,27,0.528,29,0.709,30,0.001,31,0.507,32,0.174,33,0.438,47,0.913,95,0.116,101,0.015,103,0.001,104,0.001,127,1.134,163,4.055,165,0.881,348,8.014,405,2.998,595,3.03,1625,8.135,3104,5.547,4519,9.042,8471,7.086,8472,7.579,11156,6.578,13094,9.794,14505,7.579,14506,7.579,15492,8.365,15493,8.365,15693,12.18,15699,9.588,15702,8.365,15710,9.049,15711,11.252,15712,9.049,15713,9.049]],["title/classes/OauthLoginResponse.html",[0,0.232,14484,5.694]],["body/classes/OauthLoginResponse.html",[0,0.299,2,0.98,3,0.021,4,0.021,5,0.011,7,0.133,27,0.498,29,0.689,30,0.001,31,0.492,32,0.164,33,0.584,34,1.88,47,0.862,95,0.142,101,0.015,103,0.001,104,0.001,127,1.101,165,0.866,200,3.949,277,4.46,351,5.546,364,2.013,375,4.209,376,2.011,379,1.992,404,1.991,405,2.945,467,2.307,595,2.944,596,2.682,617,4.874,728,4.226,1403,4.874,1625,7.342,2461,6.698,3104,5.006,5442,6.295,7075,9.763,7280,8.033,14471,9.029,14484,10.941,15714,12.086,15715,8.793,15716,11.051,15717,8.793,15718,8.793,15719,8.793,15720,8.793]],["title/classes/OauthLoginStateDto.html",[0,0.232,15721,5.493]],["body/classes/OauthLoginStateDto.html",[0,0.292,2,0.957,3,0.02,4,0.02,5,0.01,7,0.13,26,2.534,27,0.546,29,0.673,30,0.001,31,0.481,32,0.18,33,0.578,47,0.945,48,5.633,95,0.11,99,1.433,101,0.014,103,0.001,104,0.001,127,1.076,165,0.853,347,2.202,355,5.41,405,2.901,417,6.242,418,6.724,460,6.875,595,2.875,4491,7.418,4588,6.17,8025,6.383,12217,6.936,12218,6.936,12351,6.383,15408,9.656,15721,10.478,15722,13.463,15723,8.586,15724,10.887,15725,8.586,15726,8.586,15727,8.586,15728,8.586,15729,8.586,15730,8.586,15731,8.586,15732,8.586]],["title/classes/OauthLoginStateMapper.html",[0,0.232,15733,5.947]],["body/classes/OauthLoginStateMapper.html",[0,0.326,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,8,1.408,27,0.395,29,0.751,30,0.001,31,0.537,32,0.13,33,0.464,35,1.161,95,0.15,100,3.904,101,0.016,103,0.001,104,0.001,217,1.248,227,0.994,234,1.557,346,6.103,355,5.048,627,3.855,13944,8.029,15721,10.558,15733,10.197,15734,11.659,15735,9.588,15736,11.659,15737,11.659,15738,11.432,15739,9.588,15740,8.386,15741,8.386,15742,9.588]],["title/classes/OauthMigrationDto.html",[0,0.232,13943,5.493]],["body/classes/OauthMigrationDto.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.546,29,0.671,30,0.001,31,0.48,32,0.18,33,0.665,83,4.166,101,0.014,103,0.001,104,0.001,127,1.073,165,0.852,185,3.33,347,2.199,9777,8.807,13943,10.472,13962,9.509,13998,9.099,13999,9.099,14000,9.099,14119,10.001,14121,10.001,14860,7.921,14861,7.921,14862,7.921,14863,7.921,14864,7.921,14865,7.921,14866,7.921,14867,7.921,14868,7.921,14869,7.921,15743,13.456,15744,8.568,15745,10.872,15746,8.568,15747,8.568,15748,8.568,15749,8.568]],["title/modules/OauthModule.html",[425,1.812,1546,5.324]],["body/modules/OauthModule.html",[0,0.23,3,0.016,4,0.016,5,0.008,30,0.001,52,3.208,95,0.177,101,0.011,103,0.001,104,0.001,187,0.979,191,3.752,192,2.017,355,2.72,425,2.832,427,2.445,428,2.63,429,2.708,430,2.697,431,2.686,432,3.911,433,4.017,438,5.808,442,3.722,443,2.652,444,2.589,449,3.691,450,2.78,1155,3.932,1467,2.16,1545,10.014,1546,11.225,1548,8.661,1563,5.92,1567,4.646,1878,6.7,2725,3.066,3568,7.789,3917,6.279,4584,9.012,4593,4.7,5333,7.891,8255,9.012,8844,4.729,11415,10.302,11416,11.324,11436,6.257,11437,5.92,13913,9.445,15394,10.382,15420,5.3,15427,6.257,15578,9.708,15750,6.769,15751,6.769,15752,6.769,15753,6.769,15754,6.769,15755,5.92]],["title/modules/OauthProviderApiModule.html",[425,1.812,15756,5.493]],["body/modules/OauthProviderApiModule.html",[0,0.247,3,0.017,4,0.017,5,0.009,30,0.001,95,0.173,101,0.012,103,0.001,104,0.001,187,1.048,361,4.015,425,2.933,427,2.617,428,2.815,429,2.898,430,2.886,431,2.874,432,4.05,433,2.738,438,5.926,442,3.898,443,2.838,444,2.77,446,4.551,447,4.038,449,3.865,1467,2.312,1878,6.837,2725,3.281,2727,3.475,3568,7.948,3709,4.812,4583,9.404,4588,5.681,4592,5.672,4593,3.66,5442,4.126,8835,9.906,8843,4.812,15582,6.696,15756,11.577,15757,7.243,15758,7.243,15759,7.243,15760,10.594,15761,10.594,15762,10.594,15763,10.594,15764,10.594,15765,10.594,15766,10.594,15767,6.066,15768,9.627,15769,7.243,15770,6.335,15771,7.243]],["title/injectables/OauthProviderClientCrudUc.html",[105,0.91,15761,5.694]],["body/injectables/OauthProviderClientCrudUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.922,27,0.483,29,0.885,30,0.001,31,0.633,32,0.159,33,0.547,34,2.09,35,1.305,36,2.681,47,0.941,55,2.434,56,4.841,58,6.511,59,3.143,95,0.145,101,0.009,103,0,104,0,105,1.022,107,1.238,111,2.162,112,2.91,127,0.957,144,1.413,163,3.7,165,0.598,187,0.743,216,1.994,217,1.651,221,2.843,227,1.118,277,3.082,319,1.535,351,3.832,353,6.169,361,6.665,461,2.902,491,6.541,513,5.913,843,2.267,1142,3.537,1884,6.325,2725,2.327,2930,2.754,3580,4.895,5526,7.902,7279,6.169,7280,5.551,8843,5.073,9283,8.216,9307,9.815,9311,3.658,9373,6.679,9419,9.031,9888,7.501,11561,6.395,15587,7.06,15588,7.06,15761,6.395,15772,9.712,15773,11.115,15774,5.137,15775,9.115,15776,6.679,15777,6.679,15778,6.679,15779,7.972,15780,7.972,15781,4.15,15782,5.137,15783,7.06,15784,5.137,15785,7.06,15786,5.137,15787,7.06,15788,5.137,15789,4.749,15790,5.137,15791,4.749,15792,5.137,15793,7.06,15794,5.137,15795,5.137,15796,5.137,15797,10.784,15798,7.637,15799,5.137,15800,5.137,15801,9.115,15802,9.115,15803,7.637,15804,5.137,15805,5.137,15806,5.137]],["title/injectables/OauthProviderConsentFlowUc.html",[105,0.91,15762,5.694]],["body/injectables/OauthProviderConsentFlowUc.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.95,27,0.473,29,0.898,30,0.001,31,0.642,32,0.156,33,0.555,35,1.327,36,2.707,39,2.513,47,0.978,95,0.152,101,0.009,103,0,104,0,105,1.052,107,1.289,111,2.566,112,2.736,127,0.986,145,2.904,148,2.421,187,0.774,216,1.455,217,1.427,221,2.382,227,1.067,234,0.868,305,1.524,335,8.618,339,3.976,348,7.177,349,6.299,350,4.48,351,2.684,353,4.321,360,8.313,361,6.572,491,5.832,513,5.2,529,4.056,543,6.655,552,3.451,1016,4.162,1518,7.328,2783,3.206,2930,2.868,3743,4.616,4194,8.841,4588,2.761,4663,3.671,5430,8.618,5480,8.313,5487,8.313,8843,5.227,9283,8.336,9311,3.809,12619,9.929,12620,4.945,15762,6.589,15772,9.577,15781,4.321,15807,10.96,15808,4.678,15809,8.627,15810,6.882,15811,8.627,15812,7.273,15813,7.868,15814,5.349,15815,4.945,15816,5.349,15817,7.273,15818,5.349,15819,5.349,15820,5.349,15821,7.273,15822,8.313,15823,5.349,15824,7.868,15825,8.355,15826,5.349,15827,5.849,15828,4.48,15829,4.945,15830,7.868,15831,5.349,15832,4.945,15833,5.349,15834,5.349,15835,5.349,15836,5.349,15837,8.058,15838,5.349,15839,5.349,15840,5.349,15841,5.349,15842,5.349,15843,5.349,15844,4.189,15845,5.349]],["title/controllers/OauthProviderController.html",[481,2.611,15768,5.947]],["body/controllers/OauthProviderController.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.663,10,1.358,27,0.485,29,0.906,30,0.001,31,0.648,32,0.157,33,0.56,35,1.425,36,2.881,47,0.24,95,0.156,100,1.127,101,0.006,103,0,104,0,111,1.899,112,2.942,127,0.422,185,5.084,187,0.487,216,1.752,217,1.675,221,2.565,227,1.221,264,4.378,346,2.142,360,8.07,361,6.625,364,2.145,376,0.77,447,1.395,481,1.292,483,1.605,491,6.52,513,6.721,529,4.931,543,6.507,552,2.171,555,1.75,556,1.79,561,6.082,1016,1.927,1335,6.714,2130,1.47,2131,1.645,2132,1.586,2133,2.142,2170,2.171,2929,1.936,2930,1.804,3580,3.264,3709,2.236,3743,3.22,4007,2.114,4192,10.716,4466,7.259,4588,2.833,5430,6.714,5438,2.203,5480,4.433,5498,7.933,5523,5.82,7990,2.818,8843,3.646,9307,7.042,9311,2.396,12608,9.693,12637,2.718,13974,6.425,14359,7.013,14471,4.949,14507,6.476,15585,8.738,15761,4.596,15762,4.596,15763,5.82,15764,4.596,15765,5.82,15766,5.82,15768,4.8,15770,2.943,15773,3.111,15776,6.079,15777,4.8,15778,6.079,15779,6.079,15780,6.079,15783,3.111,15785,3.111,15787,3.111,15789,3.111,15791,3.111,15807,3.111,15810,4.8,15811,6.425,15825,4.182,15827,5.96,15837,7.418,15846,11.952,15847,3.365,15848,5.074,15849,4.8,15850,4.8,15851,6.425,15852,4.8,15853,3.365,15854,3.365,15855,3.365,15856,3.365,15857,3.365,15858,3.365,15859,3.365,15860,3.365,15861,3.365,15862,3.365,15863,3.365,15864,5.488,15865,3.365,15866,3.365,15867,3.365,15868,5.488,15869,3.365,15870,3.365,15871,3.365,15872,3.365,15873,3.365,15874,3.365,15875,3.365,15876,3.365,15877,3.365,15878,3.365,15879,3.365,15880,3.365,15881,3.365,15882,7.013,15883,3.365,15884,3.365,15885,3.365,15886,3.365,15887,4.298,15888,5.442,15889,8.832,15890,3.111,15891,6.95,15892,3.365,15893,3.365,15894,3.365,15895,3.365,15896,3.365,15897,3.365,15898,3.365,15899,3.365,15900,3.365,15901,3.365,15902,3.365,15903,8.018,15904,3.365,15905,3.365,15906,3.365,15907,3.365,15908,3.365,15909,3.365,15910,3.365,15911,3.365,15912,3.365,15913,3.365,15914,3.365,15915,3.365,15916,3.365,15917,3.365,15918,3.365,15919,3.365,15920,3.365,15921,3.365,15922,3.365,15923,5.488,15924,5.488,15925,3.365,15926,3.365,15927,3.365,15928,3.365,15929,3.365,15930,3.365,15931,3.365,15932,3.365,15933,3.365,15934,3.365,15935,3.365,15936,3.365,15937,3.365,15938,2.818,15939,3.365,15940,3.365,15941,3.365,15942,3.365,15943,3.365,15944,3.365,15945,3.365,15946,3.365]],["title/injectables/OauthProviderLoginFlowService.html",[105,0.91,12626,5.493]],["body/injectables/OauthProviderLoginFlowService.html",[0,0.236,3,0.016,4,0.016,5,0.008,7,0.105,8,1.144,27,0.444,29,0.844,30,0.001,31,0.603,32,0.146,33,0.521,35,1.146,36,2.03,47,0.768,95,0.167,101,0.012,103,0.001,104,0.001,105,1.266,107,1.674,111,2.159,112,2.374,116,3.891,127,1.186,154,3.18,158,6.451,167,3.484,187,1.004,201,3.533,209,2.295,216,1.992,217,1.402,221,2.191,227,1.117,234,1.127,305,1.978,347,2.179,361,6.413,369,1.541,777,5.437,839,3.311,1852,2.932,1961,4.851,2644,3.723,4492,5.162,4661,3.665,5530,5.767,6074,5.875,6100,7.839,7116,8.6,7182,8.458,7271,5.875,8517,8.814,8519,8.814,8581,6.419,8582,6.419,8790,6.073,9337,6.073,9727,5.437,11504,5.29,12626,7.647,12637,9.345,14684,10.463,15947,11.569,15948,6.944,15949,9.467,15950,9.467,15951,6.944,15952,6.944,15953,9.467,15954,6.944,15955,9.467,15956,6.944,15957,6.419,15958,5.815,15959,6.944,15960,6.944,15961,6.944,15962,6.944,15963,6.944,15964,6.944,15965,9.467,15966,6.944]],["title/injectables/OauthProviderLoginFlowUc.html",[105,0.91,15763,5.694]],["body/injectables/OauthProviderLoginFlowUc.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,8,0.87,27,0.452,29,0.86,30,0.001,31,0.615,32,0.149,33,0.531,34,0.808,35,1.262,36,2.628,47,0.948,95,0.162,99,0.793,101,0.008,103,0,104,0,105,0.963,107,1.145,111,2.587,112,2.783,127,0.902,158,5.364,187,0.687,201,2.417,209,3.446,216,1.928,217,1.595,221,2.718,227,1.138,234,1.412,305,2.477,347,1.759,349,4.859,354,7.837,355,2.893,360,7.837,361,6.32,461,2.219,529,3.779,543,5.305,574,2.085,806,2.931,843,2.096,1016,1.668,1353,2.293,1884,6.162,2725,2.152,4194,9.098,4588,3.716,4593,2.4,4661,2.507,4671,7.038,4737,6.622,5432,7.837,5438,4.712,7074,3.771,7116,3.531,7131,3.382,7133,4.583,7182,7.667,7270,4.941,7271,2.947,8540,3.978,8843,4.783,8920,5.001,9058,4.646,9283,7.977,9311,3.382,9337,4.154,9419,3.978,9647,7.824,9716,3.719,9735,3.719,11504,3.619,12626,9.209,12637,9.486,12638,4.154,14471,6.192,14507,10.063,15425,4.391,15755,4.154,15763,6.03,15772,9.209,15781,3.837,15808,4.154,15822,7.837,15827,6.464,15828,3.978,15832,4.391,15837,9.195,15849,6.297,15851,8.038,15887,5.638,15967,8.038,15968,8.038,15969,7.2,15970,4.75,15971,4.75,15972,4.75,15973,6.656,15974,4.75,15975,4.75,15976,4.75,15977,4.391,15978,4.75,15979,7.2,15980,4.75,15981,4.154,15982,4.154,15983,4.75,15984,7.2,15985,4.75,15986,4.75,15987,7.2,15988,4.75,15989,4.75,15990,4.75,15991,4.75,15992,4.75,15993,4.75,15994,3.619,15995,4.75,15996,4.75,15997,4.75,15998,4.75,15999,4.75,16000,4.75,16001,4.75,16002,4.75]],["title/injectables/OauthProviderLogoutFlowUc.html",[105,0.91,15764,5.694]],["body/injectables/OauthProviderLogoutFlowUc.html",[0,0.309,3,0.021,4,0.021,5,0.011,7,0.137,8,1.361,27,0.465,29,0.883,30,0.001,31,0.631,32,0.153,33,0.545,35,1.098,36,2.628,47,0.874,95,0.157,101,0.015,103,0.001,104,0.001,105,1.507,107,2.186,127,1.136,187,1.312,215,2.895,216,1.677,217,1.18,227,0.94,361,6.795,4194,6.459,4588,4.681,8843,7.486,9283,9.768,9311,6.459,15764,9.436,15772,9.901,15781,7.326,15808,7.933,15827,6.742,15890,11.331,16003,11.267,16004,9.07,16005,11.267,16006,9.07,16007,11.267,16008,9.07]],["title/modules/OauthProviderModule.html",[425,1.812,15760,5.694]],["body/modules/OauthProviderModule.html",[0,0.248,3,0.017,4,0.017,5,0.009,30,0.001,95,0.174,101,0.012,103,0.001,104,0.001,187,1.051,209,2.403,361,4.03,425,2.938,427,2.626,428,2.825,429,2.909,430,2.896,431,2.884,432,4.058,433,4.168,438,5.933,442,3.907,443,2.848,444,2.78,449,3.874,450,2.986,1467,2.32,1936,8.691,1954,9.414,1955,6.088,3568,7.957,4583,9.414,4588,3.752,4592,5.693,4593,3.673,8835,9.916,8836,9.648,8843,4.83,8845,6.088,12619,11.455,12626,11.049,12637,5.872,12638,6.358,14680,10.605,15755,6.358,15760,11.972,15767,6.088,15829,6.72,15957,6.72,15958,6.088,16009,7.27,16010,7.27,16011,7.27,16012,7.27,16013,7.27,16014,7.27]],["title/classes/OauthProviderRequestMapper.html",[0,0.232,15981,5.947]],["body/classes/OauthProviderRequestMapper.html",[0,0.307,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,8,1.355,27,0.371,29,0.706,30,0.001,31,0.505,32,0.122,33,0.436,35,1.091,47,0.957,59,2.806,77,5.734,95,0.144,101,0.015,103,0.001,104,0.001,199,4.834,227,0.934,344,7.055,345,7.055,349,6.08,354,9.871,358,8.328,359,4.261,361,6.22,627,3.75,4588,5.791,4671,8.632,5910,7.277,8843,5.985,8920,7.356,9311,6.415,14507,10.837,15828,7.545,15981,9.814,15982,9.814,16015,12.22,16016,9.009,16017,9.009,16018,9.009,16019,9.009]],["title/injectables/OauthProviderResponseMapper.html",[105,0.91,15765,5.694]],["body/injectables/OauthProviderResponseMapper.html",[0,0.249,3,0.017,4,0.017,5,0.009,7,0.111,8,1.185,10,2.955,27,0.508,29,0.966,30,0.001,31,0.69,32,0.168,33,0.596,35,1.492,95,0.142,101,0.012,103,0.001,104,0.001,105,1.313,107,1.765,187,1.059,227,1.278,234,2.002,339,7.295,346,4.661,349,4.942,361,7.035,974,4.342,2170,6.332,4588,6.549,5480,9.551,5498,9.902,5523,9.902,8673,6.405,8843,4.865,9307,8.789,9311,5.214,9319,9.071,14353,6.405,14471,8.42,15765,8.218,15825,9.008,15827,8.789,15828,6.132,15837,9.259,15887,9.937,15888,9.259,15982,11.099,16020,9.813,16021,9.813,16022,9.813,16023,9.813,16024,9.813,16025,9.813,16026,7.322,16027,9.813,16028,9.813,16029,6.769,16030,9.813,16031,9.813,16032,7.322,16033,7.322,16034,7.322,16035,7.322,16036,7.322]],["title/classes/OauthProviderService.html",[0,0.232,9283,4.943]],["body/classes/OauthProviderService.html",[0,0.165,2,0.541,3,0.011,4,0.011,5,0.006,7,0.073,8,0.884,9,6.724,27,0.543,29,1.024,30,0.001,31,0.732,32,0.178,33,0.632,34,1.498,35,1.594,36,2.995,47,1.019,55,2.383,56,3.511,58,5.684,59,3.278,95,0.062,100,1.625,101,0.008,103,0,104,0,163,3.019,277,3.555,335,8.214,337,9.264,351,2.435,354,7.923,461,1.674,543,6.455,3580,3.586,4194,8.178,5526,6.898,9283,5.319,9307,8.537,9888,6.548,13050,4.245,15767,11.105,15776,6.4,15777,6.4,15778,6.4,15779,7.705,15780,6.4,15809,6.765,15810,6.4,15812,6.765,15815,6.765,15817,6.765,15821,6.765,15822,9.276,15825,3.697,15827,3.607,15848,6.765,15849,6.4,15850,6.4,15852,6.4,15887,3.8,15888,3.8,15967,6.765,15968,6.765,15973,6.765,15977,6.765,16037,4.853,16038,7.318,16039,9.809,16040,4.853,16041,7.318,16042,4.853,16043,7.318,16044,4.853,16045,7.318,16046,4.853,16047,7.318,16048,4.853,16049,4.853,16050,4.853,16051,7.318,16052,4.853,16053,7.318,16054,4.853,16055,4.853,16056,7.318,16057,4.853,16058,4.853,16059,4.853,16060,4.853,16061,4.853,16062,7.318,16063,4.853,16064,7.318,16065,4.853]],["title/modules/OauthProviderServiceModule.html",[425,1.812,8835,5.324]],["body/modules/OauthProviderServiceModule.html",[0,0.319,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.354,337,6.543,425,3.313,427,3.383,428,3.639,429,3.747,430,3.731,431,3.715,432,4.229,433,4.699,442,4.598,443,3.669,444,3.581,449,3.715,836,5.439,1155,5.439,3917,7.756,4588,4.833,8374,7.135,8835,10.419,8843,7.635,9283,10.07,15767,9.624,16066,9.365,16067,9.365,16068,9.365,16069,9.365,16070,11.492,16071,9.365]],["title/injectables/OauthProviderUc.html",[105,0.91,15766,5.694]],["body/injectables/OauthProviderUc.html",[0,0.284,3,0.02,4,0.02,5,0.01,7,0.126,8,1.291,26,2.835,27,0.486,29,0.924,30,0.001,31,0.66,32,0.16,33,0.57,35,1.293,36,2.904,39,2.877,47,0.841,95,0.16,99,1.391,101,0.014,103,0.001,104,0.001,105,1.429,107,2.01,127,1.044,187,1.206,215,2.661,216,1.542,217,1.391,227,1.108,361,6.893,4588,4.303,5530,6.198,8843,7.098,9283,9.561,9311,5.937,15766,8.948,15772,10.044,15781,6.735,15850,9.345,15852,9.345,15888,6.529,15938,8.948,16072,8.338,16073,8.338,16074,10.685,16075,8.338,16076,10.685,16077,8.338,16078,8.338,16079,8.338]],["title/controllers/OauthSSOController.html",[481,2.611,15581,5.947]],["body/controllers/OauthSSOController.html",[0,0.117,3,0.008,4,0.008,5,0.004,7,0.052,8,0.673,27,0.432,29,0.822,30,0.001,31,0.587,32,0.147,33,0.507,35,1.27,36,2.39,47,0.886,52,3.335,55,0.738,59,1.067,95,0.164,100,1.147,101,0.006,103,0,104,0,111,2.372,112,2.68,127,0.429,145,0.867,148,1.714,150,1.928,185,2.734,187,0.495,204,3.679,216,1.498,217,1.562,221,1.628,227,0.73,234,1.761,264,2.34,305,2.308,334,0.368,346,8.265,347,1.126,351,1.719,355,3.256,364,1.624,367,3.864,371,0.945,376,0.784,379,1.594,447,1.42,460,1.97,461,2.185,481,1.315,483,1.633,491,4.952,511,1.731,513,5.3,529,5.611,554,3.498,555,1.781,556,1.822,561,3.772,784,3.802,806,2.267,1016,4.363,1345,2.209,1353,3.396,1369,3.834,1467,1.093,1602,2.393,1605,5.968,1615,2.869,1633,2.869,1820,2.126,1907,8.728,2004,3.821,2130,1.496,2131,1.674,2132,1.614,2170,2.21,2356,1.407,2357,2.536,2537,3.644,2727,1.643,2930,1.836,3104,2.522,3144,2.682,3743,3.267,3859,1.916,4588,4.6,4593,2.813,4865,2.351,4866,2.682,5442,1.951,6614,8.713,6616,2.053,6741,2.682,6833,2.152,7090,3.166,7131,7.47,8002,3.166,9058,2.21,10190,3.166,10253,6.626,11405,4.663,11432,5.77,11433,3.166,11434,2.996,11435,2.49,12777,3.166,13941,4.048,13944,2.869,13951,3.965,15277,2.767,15339,6.545,15340,3.166,15359,5.892,15378,2.869,15388,6.503,15509,3.166,15579,5.892,15581,4.87,15721,7.715,15733,2.996,15738,11.061,15740,2.996,15741,2.996,15770,2.996,16080,10.844,16081,3.425,16082,5.568,16083,7.035,16084,6.503,16085,5.568,16086,7.035,16087,5.568,16088,7.035,16089,5.568,16090,3.425,16091,3.425,16092,6.345,16093,7.087,16094,5.568,16095,3.425,16096,3.425,16097,7.087,16098,3.425,16099,3.425,16100,3.425,16101,3.425,16102,5.568,16103,3.425,16104,3.425,16105,5.568,16106,3.425,16107,3.425,16108,3.425,16109,3.425,16110,5.568,16111,3.425,16112,3.425,16113,5.568,16114,3.425,16115,2.996,16116,5.568,16117,3.425,16118,3.425,16119,4.663,16120,3.425,16121,3.166,16122,3.425,16123,2.996,16124,3.425,16125,2.767,16126,3.425,16127,3.425,16128,3.425,16129,3.425,16130,3.425,16131,3.425,16132,7.035,16133,3.425,16134,5.568,16135,5.568,16136,5.568,16137,3.425,16138,3.425,16139,3.425,16140,3.425,16141,5.568,16142,3.425,16143,3.425,16144,5.568,16145,5.568,16146,3.425,16147,3.425,16148,3.166,16149,3.425,16150,9.551,16151,3.425,16152,5.568,16153,5.147,16154,3.166,16155,3.425,16156,3.425,16157,3.425,16158,3.425,16159,3.425,16160,5.568,16161,5.568,16162,3.425,16163,5.147,16164,5.147,16165,5.568,16166,5.568,16167,2.996,16168,3.425,16169,2.996,16170,3.425,16171,2.996,16172,2.996,16173,2.996,16174,3.425,16175,3.425,16176,3.425,16177,3.425,16178,3.425,16179,3.425,16180,5.568,16181,5.568,16182,3.425,16183,3.425,16184,5.568,16185,3.425,16186,3.425,16187,3.425,16188,3.425,16189,3.425,16190,3.425,16191,3.425,16192,3.425,16193,3.425,16194,3.425]],["title/interfaces/OauthTokenResponse.html",[334,0.731,15426,5.493]],["body/interfaces/OauthTokenResponse.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.174,47,1.007,101,0.017,103,0.001,104,0.001,165,0.94,334,1.082,336,2.409,352,11.62,353,10.732,15360,9.306,15426,9.698,15793,12.281,16195,9.306]],["title/injectables/OauthUc.html",[105,0.91,15579,5.694]],["body/injectables/OauthUc.html",[0,0.144,3,0.01,4,0.01,5,0.005,7,0.064,8,0.796,26,2.32,27,0.408,29,0.775,30,0.001,31,0.554,32,0.135,33,0.479,35,1.106,36,2.427,39,1.14,47,0.942,48,5.873,52,4.969,59,2.521,95,0.17,99,0.707,101,0.007,102,3.309,103,0,104,0,105,0.882,107,1.021,111,2.427,112,2.71,127,0.826,145,1.072,163,1.304,167,1.559,187,0.613,189,3.655,204,3.1,216,2.093,217,1.673,221,2.846,227,0.947,234,1.483,305,1.878,334,0.455,346,4.197,347,1.637,355,4.398,425,1.757,460,7.073,461,2.09,529,3.519,738,2.202,982,2.111,1016,2.315,1142,4.231,1467,1.352,1477,2.733,1549,8.136,1567,2.907,1605,5.417,1625,4.38,1907,7.154,1920,4.197,1959,3.593,2004,2.907,2170,5.223,2356,3.325,2357,4.161,3104,4.139,3144,3.317,4483,8.136,4491,5.023,4588,2.186,4593,4.616,4671,6.681,4737,6.357,5442,4.612,6154,4.38,6833,2.661,7074,3.453,7077,6.018,9058,2.733,11196,7.794,11217,4.315,11265,3.547,11414,3.705,11415,7.987,11435,5.884,11437,3.705,11506,5.522,11568,5.601,11643,5.765,11828,3.149,13089,4.606,13951,6.506,14103,3.915,14878,3.547,15359,5.522,15395,8.57,15396,8.57,15408,8.468,15420,3.317,15421,3.705,15433,3.915,15434,3.421,15452,5.522,15468,6.095,15510,3.915,15511,3.915,15512,5.767,15513,5.767,15579,5.522,15721,9.143,15738,7.991,15740,3.705,15741,3.705,16115,3.705,16125,3.421,16148,3.915,16153,6.095,16154,3.915,16163,3.915,16164,3.915,16196,4.236,16197,5.767,16198,6.593,16199,6.593,16200,8.095,16201,4.236,16202,6.593,16203,4.236,16204,3.915,16205,10.483,16206,4.236,16207,6.095,16208,6.593,16209,4.236,16210,4.236,16211,4.236,16212,3.915,16213,3.227,16214,4.236,16215,3.915,16216,4.236,16217,4.236,16218,4.236,16219,4.236,16220,4.236,16221,4.236,16222,6.593,16223,4.236,16224,4.236,16225,4.236,16226,3.705,16227,7.08,16228,3.915,16229,3.915,16230,3.915,16231,4.236,16232,3.915,16233,3.915,16234,4.236,16235,4.236]],["title/interfaces/OcsResponse.html",[334,0.731,11327,5.055]],["body/interfaces/OcsResponse.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.167,34,1.55,47,0.959,55,2.646,101,0.023,103,0.001,104,0.001,138,4.936,163,2.804,165,0.885,334,1.465,336,2.18,347,1.843,564,3.34,692,3.404,1178,5.879,1182,6.149,1216,3.57,3090,3.94,4511,6.149,6473,5.292,11324,6.773,11325,6.941,11326,6.773,11327,8.399,11328,9.783,11329,9.13,11330,6.941,11331,6.941,11332,6.773,11333,6.941,11334,6.623,11335,6.773,11336,6.941,11337,6.773]],["title/classes/OidcConfig.html",[0,0.232,12331,4.751]],["body/classes/OidcConfig.html",[0,0.315,2,0.483,3,0.01,4,0.01,5,0.005,7,0.065,26,1.423,27,0.483,29,0.34,30,0.001,31,0.243,32,0.166,33,0.21,47,1.021,83,2.514,95,0.119,96,1.186,101,0.017,103,0,104,0,127,0.543,150,2.845,165,0.526,208,1.62,216,0.802,240,4.499,277,1.75,334,0.466,347,0.877,359,1.512,364,2.078,369,2.972,370,4.411,371,1.196,379,0.983,380,1.746,398,1.277,399,2.664,400,1.913,402,1.797,404,0.781,405,1.155,406,1.41,496,1.831,722,1.933,775,2.658,783,2.628,1031,2.575,1141,2.658,1498,2.628,1581,3.088,1613,2.69,2072,5.301,2097,3.223,2574,3.465,2578,1.933,4271,3.659,4309,4.781,4333,2.599,4588,3.465,5530,4.611,5698,3.416,5717,2.76,5718,2.976,6196,3.629,7136,2.724,7222,2.926,7278,5.607,8469,2.343,8805,2.926,9787,2.838,10293,2.425,11429,6.829,11510,3.223,11511,3.223,11512,3.223,11513,3.303,11557,2.976,11560,2.881,11562,2.976,11565,2.976,11568,2.658,11572,2.926,11613,2.838,12035,3.303,12219,3.088,12327,5.115,12328,3.502,12329,4.461,12330,7.694,12331,8.358,12332,4.219,12333,4.691,12334,5.377,12335,2.881,12336,2.881,12337,3.502,12338,4.608,12339,4.991,12340,3.395,12341,4.991,12342,3.303,12343,3.303,12344,3.303,12345,3.303,12346,3.395,12347,3.303,12348,3.303,12349,3.303,12350,3.395,12351,4.991,12352,3.395,12353,3.303,12354,3.395,12355,3.303,12356,3.303,12357,3.303,12358,3.395,12359,6.349,12360,3.502,12361,3.502,12362,3.502,12363,3.502,12364,3.502,12365,3.502,12366,3.502,12367,3.502,12368,3.502,12369,3.502,12370,3.502,12371,3.502,12372,3.395,12373,3.502,12374,3.502,12375,3.502,12376,3.502,12377,3.502,12378,3.502,12379,3.502,12380,3.502,12381,3.502,12382,3.502,12383,3.502,12384,3.502,12385,3.502,12386,3.502,12387,3.502,12388,3.502,12389,3.502,12390,3.223,12391,3.502,12392,3.502,12393,3.502,12394,3.502,12395,3.502,12396,3.502,12397,3.502,12398,3.502,12399,3.502,12400,3.502,12401,3.502,12402,3.502,12403,3.502,12404,5.423,12405,3.303,12406,3.502,12407,3.223,12408,3.395,12409,3.303,12410,3.395,12411,3.303,12412,3.303,12413,3.395,12414,3.303,12415,3.395,12416,3.303,12417,5.973,12418,5.973,12419,5.973,12420,6.108,12421,3.303,12422,3.502,12423,3.303,12424,3.502,12425,3.502,12426,3.502,12427,3.502,12428,3.502,12429,3.303,12430,3.395,12431,3.303,12432,3.395,16236,4.336,16237,4.336,16238,4.336,16239,4.336,16240,4.336,16241,4.336,16242,4.336,16243,4.336,16244,4.336]],["title/classes/OidcConfigDto.html",[0,0.232,13343,5.324]],["body/classes/OidcConfigDto.html",[0,0.27,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,27,0.564,29,0.622,30,0.001,31,0.445,32,0.186,33,0.384,47,1.011,101,0.013,103,0.001,104,0.001,127,0.995,165,0.811,2072,7.434,2097,5.905,5530,5.743,7278,6.983,12338,5.452,12339,5.905,12341,5.905,12359,7.907,12408,6.22,12410,6.22,12413,6.22,12415,6.22,12417,8.375,12418,8.375,12419,8.375,12420,8.565,13343,10.167,15638,7.343,15641,7.343,15648,7.343,15650,7.343,15651,7.343,16245,13.778,16246,10.65,16247,10.355,16248,7.943,16249,7.943,16250,7.943,16251,7.943,16252,7.943,16253,7.943,16254,7.943,16255,7.943,16256,7.943,16257,7.943,16258,7.943,16259,7.943,16260,7.943,16261,7.943,16262,7.943,16263,7.943]],["title/classes/OidcContextResponse.html",[0,0.232,5507,5.694]],["body/classes/OidcContextResponse.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.535,30,0.001,32,0.176,33,0.678,47,0.971,95,0.14,101,0.014,103,0.001,104,0.001,165,0.852,187,1.239,359,3.791,361,7.343,364,2.361,376,1.96,467,3.634,5507,9.105,5519,11.586,9633,8.504,16264,8.568,16265,11.04,16266,11.04,16267,11.04,16268,11.04,16269,8.568,16270,8.568,16271,8.568,16272,8.568,16273,8.568,16274,8.568]],["title/classes/OidcIdentityProviderMapper.html",[0,0.232,13308,5.694]],["body/classes/OidcIdentityProviderMapper.html",[0,0.28,2,0.916,3,0.019,4,0.019,5,0.01,7,0.124,8,1.279,27,0.436,29,0.829,30,0.001,31,0.593,32,0.144,33,0.512,35,0.995,47,0.835,95,0.168,101,0.014,103,0.001,104,0.001,111,1.648,116,3.648,127,1.029,154,3.764,187,1.189,216,1.52,227,0.852,355,3.303,369,2.349,839,3.919,1308,4.981,2072,5.303,5530,4.097,5698,4.182,7278,4.981,8259,8.706,8844,5.742,9285,8.99,10679,4.981,11585,6.671,11586,7.18,12329,5.46,12331,5.742,12405,6.262,12407,7.87,12409,6.262,12411,6.262,12412,6.262,12414,6.262,12416,6.262,12417,5.974,12418,5.974,12419,5.974,13229,6.11,13308,8.866,13343,9.685,13357,10.826,13372,7.598,13374,6.639,13378,11.433,13383,6.639,13402,7.598,13472,7.598,15614,7.598,16275,11.711,16276,8.219,16277,10.586,16278,8.219,16279,8.219,16280,10.586,16281,8.219,16282,8.219,16283,8.219,16284,8.219,16285,8.219,16286,8.219,16287,8.219,16288,8.219,16289,8.219]],["title/injectables/OidcMockProvisioningStrategy.html",[105,0.91,16290,5.694]],["body/injectables/OidcMockProvisioningStrategy.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,27,0.463,29,0.783,30,0.001,31,0.56,32,0.136,33,0.483,35,1.358,36,2.563,47,0.537,95,0.164,100,2.52,101,0.013,103,0.001,104,0.001,105,1.337,107,1.815,112,2.473,163,2.317,167,2.77,187,1.089,217,1.46,227,1.164,234,1.822,305,2.145,348,6.542,369,1.671,404,1.801,596,3.423,854,3.778,1570,5.596,1605,4.463,1630,5.472,1739,7.266,2139,6.449,2268,4.288,3104,3.41,6993,8.371,8443,5.001,9534,8.157,10921,9.362,11432,5.361,11714,6.202,12034,6.304,12332,8.037,12334,7.345,12335,5.001,12336,5.001,13086,7.827,13088,8.074,13089,8.936,13093,8.074,13094,8.887,13097,6.584,13098,7.615,13099,6.584,13103,6.959,13105,6.584,13106,6.959,13118,8.074,13122,6.081,13123,6.584,13124,6.959,15434,6.081,16290,8.371,16291,7.528,16292,7.528,16293,7.528,16294,7.528,16295,6.584,16296,7.528,16297,6.959,16298,9.995,16299,7.528]],["title/injectables/OidcProvisioningService.html",[105,0.91,16300,5.493]],["body/injectables/OidcProvisioningService.html",[0,0.115,3,0.008,4,0.008,5,0.004,7,0.051,8,0.664,26,2.599,27,0.391,29,0.743,30,0.001,31,0.604,32,0.136,33,0.458,34,0.935,35,1.07,36,2.434,39,1.48,47,0.713,48,6.221,49,1.326,51,1.637,59,1.05,64,4.304,95,0.159,99,0.563,100,1.129,101,0.006,103,0,104,0,105,0.735,107,0.813,111,2.275,112,2.67,127,0.688,129,4.98,132,4.49,145,1.392,167,3.968,187,0.487,189,5.255,191,3.047,192,2.634,200,1.05,216,1.928,217,1.665,221,2.94,227,1.081,234,1.843,284,2.97,305,1.566,323,2.723,369,1.544,371,0.93,383,2.206,461,2.287,734,1.92,738,1.752,818,7.617,851,1.607,852,1.607,853,1.74,854,4.027,883,2.331,905,1.404,956,2.206,1166,5.555,1464,1.552,1467,1.076,1566,2.723,1732,2.506,1738,2.45,1852,1.423,1904,1.41,1961,2.355,2356,4.107,3049,2.45,3090,3.009,3110,3.468,3146,2.239,3147,2.175,3391,2.206,3813,2.313,4121,2.206,4205,3.195,4323,4.554,4541,5.607,4552,2.506,4572,2.4,4593,1.703,4652,7.432,4666,2.506,4737,5.506,4756,2.723,6464,3.772,6472,2.239,6528,2.4,6573,2.723,7074,5.237,7080,5.417,7083,2.723,8369,2.043,8419,8.648,8430,4.304,8432,2.823,8443,4.623,8450,5.966,8452,2.118,8458,4.696,8807,4.304,9058,3.546,9534,5.834,9646,2.723,9674,2.355,9675,2.45,9776,8.373,9785,2.823,9786,2.568,9787,4.554,10293,1.885,10752,3.498,10908,5.301,10910,8.607,10924,2.823,10925,2.823,11056,8.076,11197,8.076,12184,2.4,12646,2.64,13118,2.723,13120,2.823,13658,2.823,13814,4.603,13815,3.116,14557,2.823,14824,2.948,15441,6.432,15695,6.086,16300,4.439,16301,9.998,16302,3.371,16303,5.496,16304,5.496,16305,5.496,16306,5.496,16307,6.958,16308,3.371,16309,5.496,16310,3.371,16311,6.958,16312,5.496,16313,3.371,16314,5.496,16315,3.371,16316,5.496,16317,3.371,16318,3.371,16319,3.371,16320,3.371,16321,3.371,16322,2.948,16323,2.948,16324,8.171,16325,5.496,16326,5.496,16327,3.116,16328,5.496,16329,5.496,16330,3.116,16331,3.371,16332,3.371,16333,3.371,16334,3.371,16335,2.948,16336,5.496,16337,3.116,16338,8.026,16339,3.116,16340,3.371,16341,3.116,16342,3.371,16343,6.958,16344,5.496,16345,3.371,16346,5.496,16347,3.371,16348,5.496,16349,3.371,16350,3.116,16351,3.371,16352,3.371,16353,5.496,16354,5.081,16355,3.371,16356,3.371,16357,3.371,16358,3.371,16359,3.371,16360,8.026,16361,3.371,16362,6.958,16363,5.496,16364,5.496,16365,3.371,16366,3.371,16367,3.371,16368,3.371,16369,3.371,16370,3.371,16371,3.371,16372,3.371,16373,3.371,16374,3.371,16375,5.496,16376,3.371,16377,3.371,16378,3.371,16379,3.371,16380,3.371,16381,3.371,16382,5.496,16383,3.371,16384,5.496,16385,3.371,16386,3.371,16387,3.371,16388,3.371,16389,3.371,16390,3.371,16391,3.371,16392,3.371,16393,3.371,16394,5.496,16395,3.371,16396,3.371,16397,3.371,16398,3.371,16399,3.371,16400,3.371]],["title/injectables/OidcProvisioningStrategy.html",[105,0.91,16401,5.947]],["body/injectables/OidcProvisioningStrategy.html",[0,0.254,3,0.018,4,0.018,5,0.009,7,0.113,8,1.2,9,5.845,27,0.491,29,0.875,30,0.001,31,0.626,32,0.152,33,0.54,35,1.352,36,2.395,95,0.164,99,1.245,100,2.497,101,0.012,103,0.001,104,0.001,105,1.329,107,1.798,112,2.462,127,0.934,145,1.888,163,2.295,187,1.079,189,5.507,192,2.96,216,1.379,217,0.971,221,2.757,227,0.773,234,1.211,284,4.031,404,1.79,406,2.426,461,1.706,596,3.407,2130,3.258,2131,3.646,2132,3.514,2139,4.812,2268,4.249,2397,5.034,3859,4.171,7074,5.203,8443,4.955,10921,8.747,11714,6.164,12332,8.016,12334,4.881,13086,7.779,13088,8.024,13089,8.322,13093,6.024,13094,7.385,13098,7.568,13099,6.523,13131,6.523,15434,8.024,16226,6.523,16295,6.523,16300,10.305,16401,8.689,16402,7.458,16403,7.458,16404,7.458,16405,7.458,16406,7.458,16407,7.458,16408,6.523,16409,7.458,16410,11.011,16411,7.458,16412,7.458,16413,7.458,16414,6.894,16415,9.934,16416,7.458,16417,7.458,16418,7.458]],["title/injectables/OpenGraphProxyService.html",[105,0.91,3575,5.493]],["body/injectables/OpenGraphProxyService.html",[0,0.241,3,0.017,4,0.017,5,0.009,7,0.107,8,1.16,27,0.396,29,0.752,30,0.001,31,0.538,32,0.148,33,0.464,35,1.162,36,2.059,47,0.896,55,2.068,95,0.14,101,0.012,103,0.001,104,0.001,105,1.285,107,1.709,111,2.183,112,2.4,144,1.95,145,3.088,150,4.451,163,2.182,187,1.025,217,1.673,221,1.641,227,0.996,234,1.151,247,3.762,305,2.02,319,2.119,379,2.467,494,4.25,502,5.959,783,4.297,1397,3.646,1646,3.966,2461,4.297,2686,5.154,3575,7.757,5460,4.641,5609,7.138,5610,9.549,5663,8.877,6437,5.154,8887,5.154,16419,10.888,16420,7.09,16421,9.602,16422,9.602,16423,9.602,16424,7.09,16425,9.602,16426,12.855,16427,11.669,16428,7.09,16429,9.602,16430,9.602,16431,6.555,16432,7.09,16433,10.888,16434,7.09,16435,7.09,16436,6.202,16437,7.09,16438,7.09,16439,7.09,16440,7.09,16441,7.09,16442,7.09,16443,7.09,16444,7.09,16445,7.09,16446,7.09,16447,7.09,16448,9.602,16449,7.09,16450,9.602,16451,9.602,16452,9.602,16453,7.09]],["title/interfaces/Options.html",[334,0.731,701,2.404]],["body/interfaces/Options.html",[0,0.222,3,0.015,4,0.015,5,0.008,7,0.098,30,0.001,32,0.141,33,0.608,36,2.232,47,0.742,95,0.134,101,0.019,103,0.001,104,0.001,111,1.304,112,2.294,145,2.636,163,2.002,165,0.709,215,2.077,217,1.667,221,2.605,227,1.079,334,0.699,336,1.557,347,2.477,368,4.409,369,1.444,371,3.103,379,2.903,443,2.549,701,4.442,721,4.892,1843,5.805,1948,6.745,2139,7.902,2794,3.858,3264,3.943,3282,5.688,3478,5.691,3481,6.014,3484,5.256,3490,8.793,3491,7.071,3492,3.858,3494,5.095,3495,5.925,3578,3.358,5541,5.256,5543,5.691,7787,5.449,7788,6.015,7791,5.256,7792,8.152,7794,6.015,7795,9.838,7796,7.581,7798,6.015,7799,7.273,7801,8.152,7802,7.738,7803,4.198,7804,4.957,7806,5.691,7807,5.449,7808,10.935,7809,8.574,7810,6.9,7811,8.368,7812,5.691,7813,8.368,7814,8.368,7815,6.015,7816,6.015,7817,6.015,7818,9.425,7819,8.368,7820,9.623,7821,4.465,7822,7.917,7823,6.015,7824,6.015,7825,5.691]],["title/classes/Page.html",[0,0.232,1014,3.242]],["body/classes/Page.html",[0,0.328,2,1.074,3,0.023,4,0.023,5,0.012,7,0.146,27,0.519,29,0.755,30,0.001,31,0.54,32,0.171,33,0.466,55,2.889,101,0.016,103,0.001,104,0.001,127,1.207,163,4.128,165,0.916,692,5.011,1008,7.458,1009,6.661,1014,5.575,1026,5.34,16454,9.634,16455,11.692,16456,9.634,16457,8.906]],["title/classes/PageContentDto.html",[0,0.232,16458,5.324]],["body/classes/PageContentDto.html",[0,0.323,2,1.059,3,0.022,4,0.022,5,0.011,7,0.143,27,0.516,29,0.744,30,0.001,31,0.532,32,0.17,33,0.459,47,0.929,101,0.016,103,0.001,104,0.001,127,1.19,165,0.908,355,5.235,405,3.089,595,3.18,4476,5.809,16458,10.461,16459,13.028,16460,9.497,16461,10.478,16462,10.478,16463,11.591,16464,9.497,16465,8.78,16466,8.78,16467,8.78,16468,8.78]],["title/injectables/PageContentMapper.html",[105,0.91,16469,5.694]],["body/injectables/PageContentMapper.html",[0,0.32,3,0.022,4,0.022,5,0.011,7,0.142,8,1.39,27,0.387,29,0.735,30,0.001,31,0.526,32,0.128,33,0.454,35,1.136,95,0.16,100,3.143,101,0.016,103,0.001,104,0.001,105,1.54,107,2.263,187,1.357,217,1.222,227,0.973,234,1.524,355,4.625,982,4.679,1016,4.041,4476,5.131,14834,10.066,14835,10.066,16458,10.16,16461,7.861,16462,7.861,16469,9.638,16470,11.509,16471,9.387,16472,9.387,16473,11.151,16474,9.387,16475,8.677,16476,9.387,16477,9.387]],["title/classes/PageContentQueryParams.html",[0,0.232,16478,5.947]],["body/classes/PageContentQueryParams.html",[0,0.371,2,0.96,3,0.02,4,0.028,5,0.01,7,0.13,27,0.493,30,0.001,32,0.183,47,0.897,95,0.154,101,0.014,103,0.001,104,0.001,165,0.854,355,5.055,364,2.18,374,2.746,376,1.968,379,2.712,467,3.301,1000,4.872,1013,5.48,1014,5.198,1044,4.128,2702,4.912,3104,4.939,4476,5.609,7041,8.306,10027,6.397,16478,9.535,16479,12.58,16480,8.605,16481,10.466,16482,9.666,16483,9.666,16484,11.003,16485,8.605,16486,8.605,16487,10.901,16488,8.605,16489,8.605,16490,7.526,16491,8.605]],["title/classes/PageContentResponse.html",[0,0.232,16473,5.694]],["body/classes/PageContentResponse.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.501,29,0.696,30,0.001,31,0.498,32,0.165,33,0.43,47,0.908,95,0.114,101,0.015,103,0.001,104,0.001,127,1.113,150,4.408,165,0.872,355,5.115,364,2.027,376,2.033,379,2.522,405,2.965,467,3.187,595,2.976,1013,5.096,4476,5.676,16461,10.172,16462,10.172,16465,8.218,16466,8.218,16467,8.218,16468,8.218,16473,10.976,16492,12.729,16493,8.89,16494,11.127,16495,11.127,16496,11.767,16497,11.127,16498,8.89]],["title/classes/PaginationParams.html",[0,0.232,1028,4.751]],["body/classes/PaginationParams.html",[0,0.375,2,0.976,3,0.021,4,0.021,5,0.011,7,0.132,27,0.454,30,0.001,32,0.15,33,0.612,55,2.869,56,6.259,70,5.973,95,0.142,101,0.015,103,0.001,104,0.001,144,3.031,165,0.863,247,4.318,319,3.294,364,2.007,374,2.794,375,4.594,376,2.003,379,2.497,905,4.589,907,8.688,1014,5.255,1020,7.213,1028,7.7,1034,8.093,1035,7.7,1036,9.229,1037,8.397,1038,10.188,1040,8.093,1041,6.164,1042,9.229,3470,6.234,3475,6.364,3526,7.072,5478,9.743,16499,8.754,16500,8.754,16501,8.754,16502,8.754,16503,8.754]],["title/classes/PaginationResponse.html",[0,0.232,1007,4.169]],["body/classes/PaginationResponse.html",[0,0.263,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,9,5.688,27,0.517,29,0.604,30,0.001,31,0.432,32,0.186,33,0.607,55,3.068,56,6.299,59,3.164,70,6.502,95,0.099,101,0.013,103,0.001,104,0.001,127,0.966,163,3.496,165,0.796,364,2.199,376,1.765,379,2.736,467,3.291,692,3.795,1007,6.229,1008,7.097,1013,5.529,1014,5.756,1015,5.682,1016,3.567,1018,7.789,1019,7.481,1020,6.649,1021,5.404,4618,6.972,16457,7.132,16504,7.715,16505,10.159,16506,7.715,16507,7.715,16508,7.715,16509,7.715,16510,7.715,16511,7.715,16512,7.715]],["title/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.232,203,5.947]],["body/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,8,1.326,27,0.453,29,0.681,30,0.001,31,0.487,32,0.181,33,0.421,35,1.053,47,0.858,95,0.141,101,0.015,103,0.001,104,0.001,108,6.985,127,1.089,163,2.677,187,1.258,200,2.709,203,9.6,209,2.874,214,3.46,215,2.776,216,1.608,227,0.902,290,5.103,404,1.978,406,2.829,1216,3.408,1464,5.538,1465,6.206,1467,2.776,1469,6.254,3228,7.655,8288,6.252,8289,6.499,8738,5.536,8745,5.103,8746,5.333,8754,7.284,8755,7.284,13144,7.284,16513,12.026,16514,12.026,16515,8.698,16516,12.026,16517,8.698,16518,8.698,16519,8.698]],["title/classes/PatchGroupParams.html",[0,0.232,7373,5.947]],["body/classes/PatchGroupParams.html",[0,0.391,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.385,30,0.001,31,0.643,32,0.127,47,0.818,95,0.16,100,3.842,101,0.016,103,0.001,104,0.001,165,0.899,364,1.702,374,2.982,376,2.137,379,2.601,467,3.011,469,4.102,470,4.8,1166,6.215,1397,4.452,2553,5.522,6828,8.891,7049,7.547,7051,8.743,7373,10.037,16520,10.037,16521,9.343,16522,10.037,16523,9.343]],["title/classes/PatchMyAccountParams.html",[0,0.232,547,5.947]],["body/classes/PatchMyAccountParams.html",[0,0.32,2,0.765,3,0.016,4,0.016,5,0.008,7,0.104,27,0.497,30,0.001,31,0.645,32,0.164,33,0.628,47,0.95,87,6.05,95,0.148,101,0.011,103,0.001,104,0.001,165,0.735,234,2.107,364,2.196,368,5.217,369,2.955,370,4.387,371,3.672,374,2.19,376,1.569,379,2.732,461,3.046,467,3.266,468,7.585,469,3.012,470,5.043,471,4.887,472,4.631,473,8.68,474,5.746,475,3.354,476,5.746,479,5.1,547,8.213,575,5.628,851,5.105,852,5.105,853,6.222,1798,5.299,2925,5.628,4618,9.139,5454,7.353,6986,8.213,16524,11.508,16525,6.861,16526,10.705,16527,10.705,16528,6.861,16529,7.864,16530,6.861,16531,6.861,16532,6.861,16533,6.861,16534,6.861,16535,8.213,16536,6.861]],["title/classes/PatchMyPasswordParams.html",[0,0.232,518,5.947]],["body/classes/PatchMyPasswordParams.html",[0,0.37,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.448,30,0.001,32,0.148,47,0.896,87,6.951,95,0.161,101,0.014,103,0.001,104,0.001,165,0.852,234,2.039,364,1.98,368,4.921,369,2.787,370,4.138,371,3.464,374,2.735,376,1.96,379,2.464,461,2.873,467,3.133,468,9.647,469,3.762,470,4.996,472,5.783,474,7.176,475,4.188,476,9.105,518,9.509,577,6.136,12043,8.082,16524,11.04,16537,8.568,16538,11.942,16539,10.872,16540,10.872,16541,8.568,16542,8.568]],["title/classes/PatchOrderParams.html",[0,0.232,16543,5.947]],["body/classes/PatchOrderParams.html",[0,0.39,2,1.037,3,0.022,4,0.022,5,0.011,7,0.14,27,0.383,30,0.001,32,0.126,47,0.816,95,0.147,100,3.831,101,0.016,103,0.001,104,0.001,165,0.896,234,1.858,364,1.694,369,2.064,374,2.968,376,2.127,379,2.593,467,3.002,770,6.785,1000,4.659,1041,7.427,1858,5.994,2144,7.3,2450,5.298,2627,4.809,3833,7.854,4051,7.512,5477,7.284,16520,10.009,16522,10.009,16543,10.009,16544,9.3,16545,9.3,16546,10.578,16547,9.3]],["title/classes/PatchVisibilityParams.html",[0,0.232,16548,5.947]],["body/classes/PatchVisibilityParams.html",[0,0.394,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.391,30,0.001,32,0.129,95,0.149,100,3.876,101,0.016,103,0.001,104,0.001,165,0.907,347,2.341,364,1.726,369,2.569,371,3.192,373,6.205,374,3.024,376,2.167,379,2.623,467,3.037,2553,5.549,2627,4.864,4076,11.677,4882,7.273,4883,7.469,7058,8.287,16520,10.124,16522,10.124,16548,10.124,16549,9.475,16550,9.475]],["title/injectables/PermissionService.html",[105,0.91,440,5.694]],["body/injectables/PermissionService.html",[0,0.234,3,0.016,4,0.016,5,0.008,7,0.104,8,1.293,27,0.441,29,0.838,30,0.001,31,0.6,32,0.146,33,0.518,35,1.393,47,0.925,95,0.137,101,0.011,102,4.712,103,0.001,104,0.001,105,1.256,107,1.654,111,2.146,187,0.992,217,1.498,227,1.194,234,1.525,235,5.299,247,4.194,264,2.883,305,1.955,347,1.899,371,1.892,440,8.965,461,3.14,496,5.256,569,6.444,571,5.9,574,4.122,766,2.87,1019,3.985,1799,6.488,1845,6.343,1847,6.343,1848,6.343,1849,6.396,1852,2.897,1854,6.238,1859,6.343,1860,6.343,1884,5.075,1959,3.739,2439,5.51,3110,5.738,4052,6.281,4659,6.238,5462,6.56,7795,7.353,9342,7.353,9606,8.68,10317,8.68,12161,7.585,12163,5.542,12170,5.542,16551,6.861,16552,9.39,16553,9.39,16554,9.39,16555,6.861,16556,9.39,16557,6.861,16558,9.39,16559,9.39,16560,8.68,16561,9.39,16562,6.861,16563,6.861,16564,6.861,16565,6.861,16566,6.861,16567,6.861,16568,9.39,16569,6.861,16570,9.39,16571,6.861,16572,6.861]],["title/interfaces/PlainTextMailContent.html",[334,0.731,1494,5.055]],["body/interfaces/PlainTextMailContent.html",[3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,31,0.489,32,0.15,33,0.532,47,1.021,77,5.56,101,0.015,103,0.001,104,0.001,165,0.862,334,1.452,336,2.091,404,2.35,1482,8.181,1483,6.655,1484,8.957,1485,8.385,1486,6.655,1487,4.886,1488,8.181,1489,6.35,1490,6.655,1491,6.35,1492,9.403,1493,6.655,1494,8.957,1495,9.934,1496,9.934,1497,8.181,1498,6.67,1499,6.494,1500,6.494,1501,6.655,1502,6.655]],["title/classes/PreviewActionsLoggable.html",[0,0.232,16573,5.493]],["body/classes/PreviewActionsLoggable.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,8,1.346,27,0.459,29,0.698,30,0.001,31,0.499,32,0.121,33,0.431,35,1.078,47,0.867,95,0.143,101,0.015,103,0.001,104,0.001,111,1.786,127,1.116,163,2.742,214,3.513,215,2.844,216,2.06,217,1.159,227,0.924,231,6.74,334,0.957,565,4.441,1216,4.764,1464,5.6,1465,6.275,1467,2.844,1469,6.308,1817,6.977,3849,6.788,6248,5.671,10776,8.283,10777,8.1,16573,9.001,16574,8.345,16575,12.159,16576,8.909,16577,9.261,16578,8.909,16579,8.909,16580,6.623,16581,7.197,16582,8.909,16583,8.909]],["title/classes/PreviewBuilder.html",[0,0.232,16584,5.947]],["body/classes/PreviewBuilder.html",[0,0.253,2,0.829,3,0.018,4,0.018,5,0.009,7,0.112,8,1.197,27,0.409,29,0.776,30,0.001,31,0.555,32,0.135,33,0.479,34,1.897,35,1.2,47,0.795,95,0.159,101,0.012,103,0.001,104,0.001,116,3.086,145,2.823,185,3.851,217,1.72,227,1.028,231,5.493,334,0.798,380,1.579,565,5.928,627,3.91,717,3.922,982,3.704,1487,5.542,3010,4.156,4205,2.504,6170,5.164,6188,7.921,6244,8.604,6248,4.73,10586,6.223,10730,9.061,10774,10.676,10775,9.752,10776,8.841,10777,8.645,16577,8.105,16580,5.524,16584,8.667,16585,7.43,16586,11.149,16587,9.909,16588,7.43,16589,7.43,16590,9.909,16591,7.43,16592,7.43,16593,7.43,16594,7.43,16595,7.43,16596,7.43,16597,7.43,16598,7.43,16599,7.43,16600,7.43]],["title/interfaces/PreviewConfig.html",[334,0.731,16601,5.694]],["body/interfaces/PreviewConfig.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.161,47,0.704,55,2.126,95,0.127,101,0.02,103,0.001,104,0.001,165,0.929,334,1.275,336,2.362,3580,4.018,6267,8.401,9797,6.557,11577,6.661,11971,7.972,11973,7.972,12248,9.058,14561,7.174,16574,6.774,16601,9.936,16602,9.124,16603,11.053,16604,11.053]],["title/interfaces/PreviewFileOptions.html",[334,0.731,16577,4.943]],["body/interfaces/PreviewFileOptions.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,32,0.171,47,0.993,55,2.075,101,0.021,103,0.001,104,0.001,165,0.916,334,1.352,336,2.305,347,1.949,564,3.532,565,4.802,6248,6.132,10776,9.732,10777,9.75,16574,6.612,16577,8.499,16580,10.351,16605,8.426,16606,7.544]],["title/interfaces/PreviewFileParams.html",[334,0.731,10774,5.493]],["body/interfaces/PreviewFileParams.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,31,0.479,32,0.185,33,0.525,47,1.021,55,1.842,95,0.153,101,0.018,103,0.001,104,0.001,163,2.631,165,0.85,334,1.166,336,2.046,380,1.817,565,6.256,982,4.262,1342,6.822,1344,5.596,6170,3.96,6188,8.159,6244,8.665,6274,6.356,6275,6.089,6276,6.356,6277,6.356,10236,6.514,10730,9.562,10773,7.904,10774,8.77,10775,10.978,10776,9.33,10777,9.123]],["title/modules/PreviewGeneratorAMQPModule.html",[425,1.812,16607,5.947]],["body/modules/PreviewGeneratorAMQPModule.html",[0,0.326,3,0.023,4,0.023,5,0.012,30,0.001,95,0.161,101,0.016,103,0.001,104,0.001,187,1.383,425,3.344,427,3.455,428,3.717,429,3.827,430,3.811,431,3.795,432,3.52,433,3.615,442,4.658,443,3.748,444,3.658,449,4.619,717,5.048,1359,7.287,3578,4.936,6170,4.43,6249,6.088,6267,7.41,10415,8.842,10586,8.01,10594,8.366,11970,10.762,12248,6.565,16603,8.01,16607,11.906,16608,9.565,16609,9.565,16610,11.21,16611,9.565]],["title/classes/PreviewGeneratorBuilder.html",[0,0.232,16612,5.947]],["body/classes/PreviewGeneratorBuilder.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.016,7,0.138,8,1.369,27,0.377,29,0.717,30,0.001,31,0.513,32,0.124,33,0.443,35,1.108,95,0.158,101,0.015,103,0.001,104,0.001,116,2.851,163,2.817,217,1.475,227,0.949,334,0.983,565,5.648,627,3.776,1344,5.99,1487,5.119,3580,3.726,5551,10.474,6249,7.212,6632,10.771,9797,6.08,16574,7.776,16580,10.253,16612,9.91,16613,9.153,16614,9.152,16615,11.331,16616,9.152]],["title/injectables/PreviewGeneratorConsumer.html",[105,0.91,16617,5.947]],["body/injectables/PreviewGeneratorConsumer.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.43,29,0.817,30,0.001,31,0.584,32,0.142,33,0.505,35,0.973,95,0.17,101,0.013,103,0.001,104,0.001,105,1.396,107,1.938,111,1.611,112,2.554,116,3.609,127,1.007,145,2.642,187,1.162,215,2.566,216,1.486,217,1.046,221,1.86,227,0.834,231,6.424,334,0.864,364,1.464,1016,3.664,1216,3.15,1312,4.988,1314,6.733,1345,3.189,1351,5.616,1352,5.187,1467,2.566,2356,5.447,6249,5.117,10500,7.431,10502,9.127,10509,7.431,10510,9.647,10517,7.031,16573,6.493,16574,7.953,16577,8.915,16613,9.36,16617,9.127,16618,8.038,16619,9.127,16620,8.038,16621,10.908,16622,8.038,16623,8.038,16624,9.704,16625,8.038,16626,7.431,16627,7.031,16628,7.031,16629,7.031,16630,8.038,16631,10.436,16632,8.038,16633,6.732,16634,8.038,16635,8.038]],["title/modules/PreviewGeneratorConsumerModule.html",[425,1.812,16610,5.694]],["body/modules/PreviewGeneratorConsumerModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,8,0.981,27,0.335,29,0.636,30,0.001,31,0.455,32,0.11,33,0.393,35,0.983,95,0.175,101,0.014,103,0.001,104,0.001,154,5.333,187,1.174,217,1.367,227,0.842,234,1.318,425,3.102,427,2.933,432,3.865,438,4.921,449,3.221,627,3.223,717,5.544,801,4.716,836,4.716,837,5.782,839,3.872,1301,7.735,1467,2.592,2356,5.237,3580,3.306,6249,6.686,8358,5.394,9797,5.394,10025,6.186,10575,7.48,10582,5.902,10588,6.036,10592,5.902,10593,5.673,10765,6.559,10766,7.808,12248,7.209,14561,5.902,16574,7.209,16601,10.31,16603,6.8,16610,9.751,16613,8.485,16617,9.187,16621,8.796,16629,7.101,16636,8.119,16637,7.101,16638,10.504,16639,8.119,16640,8.119,16641,8.119,16642,8.119,16643,8.119,16644,8.119]],["title/modules/PreviewGeneratorProducerModule.html",[425,1.812,10585,5.694]],["body/modules/PreviewGeneratorProducerModule.html",[0,0.306,3,0.021,4,0.021,5,0.011,30,0.001,95,0.164,101,0.015,103,0.001,104,0.001,187,1.3,425,3.253,427,3.247,428,3.493,429,3.597,430,3.581,431,3.566,432,4.492,433,4.614,438,6.281,442,4.483,443,3.522,444,3.437,449,4.445,717,4.744,1352,5.8,1467,2.869,10575,9.548,10585,11.754,16574,6.169,16613,7.261,16645,8.989,16646,8.989,16647,8.989,16648,8.989,16649,11.809,16650,8.989,16651,8.989]],["title/injectables/PreviewGeneratorService.html",[105,0.91,16621,5.694]],["body/injectables/PreviewGeneratorService.html",[0,0.217,3,0.015,4,0.015,5,0.014,7,0.096,8,1.079,27,0.484,29,0.874,30,0.001,31,0.625,32,0.152,33,0.54,35,1.247,36,2.393,47,0.735,95,0.164,101,0.011,103,0.001,104,0.001,105,1.195,107,1.539,111,2.631,112,2.683,116,3.209,127,0.799,144,1.755,145,1.616,165,0.7,185,4.337,187,0.923,215,2.037,216,1.18,217,1.659,221,2.385,227,1.068,319,1.908,334,0.686,369,1.416,564,2.34,565,3.182,1344,4.177,1467,2.037,1750,3.962,2356,5.133,3303,6.36,3580,2.599,6244,7.104,6248,5.685,6249,6.558,6273,8.113,6632,8.629,9797,4.24,10055,6.64,10765,7.215,10766,8.296,10776,4.745,10777,6.493,16573,5.156,16574,8.354,16577,8.113,16580,9.049,16606,4.998,16612,5.583,16613,9.833,16619,7.812,16621,7.48,16627,5.583,16628,5.583,16633,7.48,16652,5.9,16653,11.746,16654,8.932,16655,8.932,16656,5.9,16657,8.932,16658,8.932,16659,6.383,16660,6.383,16661,8.257,16662,6.383,16663,8.932,16664,6.383,16665,10.303,16666,5.9,16667,6.383,16668,6.383,16669,6.383,16670,6.383,16671,6.383,16672,6.383,16673,6.383,16674,6.383,16675,6.383,16676,6.383,16677,6.383,16678,6.383,16679,6.383]],["title/interfaces/PreviewModuleConfig.html",[334,0.731,16604,5.694]],["body/interfaces/PreviewModuleConfig.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.161,47,0.907,55,2.74,95,0.127,101,0.02,103,0.001,104,0.001,165,0.929,334,1.275,336,2.362,3580,4.018,6267,7.552,9797,6.557,11577,6.661,11971,10.661,11973,10.661,12248,6.774,14561,7.174,16574,6.774,16601,8.265,16602,9.124,16603,8.265,16604,10.654]],["title/interfaces/PreviewOptions.html",[334,0.731,16580,5.055]],["body/interfaces/PreviewOptions.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.16,33,0.57,47,0.975,55,2.726,101,0.021,103,0.001,104,0.001,165,0.923,334,1.36,336,2.333,347,1.972,564,3.574,565,6.552,6248,8.367,10776,7.248,10777,8.562,16574,6.692,16577,7.088,16580,9.771,16605,8.528,16606,7.635]],["title/classes/PreviewParams.html",[0,0.232,6244,4.328]],["body/classes/PreviewParams.html",[0,0.453,2,0.687,3,0.015,4,0.021,5,0.011,7,0.093,26,2.551,27,0.417,30,0.001,32,0.168,33,0.582,39,1.658,47,0.949,95,0.159,99,1.028,101,0.022,103,0,104,0,150,2.132,165,0.682,204,2.089,214,1.942,334,0.662,347,2.044,364,1.841,369,1.933,373,4.669,374,1.966,375,4.184,376,1.409,377,5.786,379,1.396,380,1.309,467,3.617,469,2.704,470,5.034,471,4.453,565,3.07,1000,4.899,1001,6.584,1031,3.167,1044,2.954,1180,2.65,1270,3.651,1330,5.544,1331,4.031,1332,4.031,2702,4.553,2889,5.74,3610,3.01,4205,2.076,5836,6.483,6170,5.088,6183,7.19,6189,5.986,6217,3.03,6220,4.227,6221,4.303,6222,4.303,6225,7.701,6228,4.303,6229,7.994,6230,8.407,6231,8.407,6232,4.303,6233,4.227,6234,6.82,6235,4.227,6236,4.303,6237,4.156,6238,5.878,6239,4.091,6240,4.156,6241,4.227,6242,4.156,6243,4.156,6244,5.544,6245,4.303,6246,7.06,6247,4.303,6248,6.432,6249,5.544,6250,5.7,6251,5.786,6252,7.06,10669,8.051,10690,5.693,16680,6.158,16681,6.158,16682,6.158,16683,6.158,16684,6.158]],["title/injectables/PreviewProducer.html",[105,0.91,16649,5.694]],["body/injectables/PreviewProducer.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.128,27,0.496,29,0.996,30,0.001,31,0.673,32,0.173,33,0.581,35,1.388,36,2.002,47,0.885,55,1.465,95,0.166,101,0.011,103,0.001,104,0.001,105,1.249,107,1.64,111,1.364,112,2.649,127,1.169,148,2.094,154,3.116,187,0.984,216,1.971,217,1.215,221,1.575,227,0.705,231,7.284,334,0.731,367,4.452,404,1.682,596,3.251,661,5.443,692,3.488,711,5.535,789,8.323,801,3.952,1016,3.742,1312,4.222,1314,4.39,1337,5.495,1338,9.23,1345,3.704,1351,4.753,1352,4.39,1467,2.171,2356,5.223,3901,7.541,3937,7.923,8358,4.52,10025,5.183,10512,6.94,10613,10.398,10614,8.165,10615,8.165,10623,5.95,10624,6.289,10625,5.95,10626,6.289,10627,5.95,10628,6.289,10630,6.289,13048,6.289,14561,4.945,16573,5.495,16574,7.315,16577,8.338,16604,5.697,16606,5.327,16624,7.818,16626,6.289,16627,5.95,16628,5.95,16633,7.818,16649,7.818,16685,6.803,16686,6.803,16687,9.335,16688,6.803,16689,6.803,16690,6.803,16691,6.803,16692,6.803]],["title/interfaces/PreviewResponseMessage.html",[334,0.731,16606,5.324]],["body/interfaces/PreviewResponseMessage.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,32,0.161,47,0.976,55,2.11,101,0.021,103,0.001,104,0.001,165,0.925,334,1.362,336,2.345,347,2.565,564,4.827,565,4.884,6248,6.237,10776,7.283,10777,9.795,16574,6.724,16577,7.122,16580,9.427,16605,8.569,16606,9.25]],["title/injectables/PreviewService.html",[105,0.91,10497,5.694]],["body/injectables/PreviewService.html",[0,0.178,3,0.012,4,0.012,5,0.014,7,0.079,8,0.935,27,0.485,29,0.922,30,0.001,31,0.691,32,0.16,33,0.569,35,1.377,36,2.692,47,0.657,59,1.629,95,0.164,101,0.009,103,0,104,0,105,1.035,107,1.261,111,2.655,112,2.919,116,3.543,127,0.969,148,2.382,185,3.956,187,0.756,204,3.454,206,2.661,216,1.431,217,1.606,221,2.797,227,0.955,231,2.9,234,0.849,305,2.205,334,0.562,380,1.111,711,3.102,717,2.761,784,2.827,806,2.13,839,2.494,982,2.607,1016,3.574,1185,3.725,1369,2.851,1467,1.67,2356,3.784,2357,4.637,2401,3.802,2406,4.096,2644,4.149,3010,2.926,3578,2.7,3580,2.13,6170,5.598,6188,7.876,6190,3.725,6194,6.252,6207,4.225,6213,4.225,6244,7.857,6249,3.33,9058,5.944,9797,3.475,10048,3.725,10103,4.096,10139,4.575,10233,4.575,10236,5.897,10303,3.985,10497,6.481,10586,4.381,10594,4.575,10730,8.668,10765,6.252,10766,7.568,10774,10.288,10777,3.802,11969,4.836,16584,4.575,16619,6.769,16649,9.858,16656,4.836,16661,7.154,16693,5.231,16694,7.739,16695,7.739,16696,9.212,16697,7.739,16698,7.739,16699,5.231,16700,7.739,16701,5.231,16702,7.739,16703,5.231,16704,5.231,16705,5.231,16706,5.231,16707,7.739,16708,5.231,16709,7.739,16710,5.231,16711,5.231,16712,5.231,16713,5.231,16714,5.231,16715,5.231,16716,5.231,16717,5.231,16718,5.231,16719,4.836,16720,5.231,16721,5.231,16722,5.231,16723,5.231,16724,7.739,16725,7.739,16726,5.231,16727,5.231,16728,5.231,16729,5.231,16730,5.231,16731,5.231]],["title/classes/PrometheusMetricsConfig.html",[0,0.232,16732,5.947]],["body/classes/PrometheusMetricsConfig.html",[0,0.23,2,0.755,3,0.016,4,0.016,5,0.008,7,0.102,8,1.124,27,0.565,30,0.001,32,0.169,35,0.819,47,0.816,55,2.465,95,0.087,101,0.011,103,0.001,104,0.001,111,2.813,116,2.898,127,1.331,145,1.714,148,2.083,165,0.729,216,2.547,227,1.286,234,1.51,347,2.735,627,3.897,884,4.384,1323,7.426,2130,2.957,2131,3.309,2132,3.19,2133,4.309,5183,6.679,8672,5.157,9570,8.324,16732,10.011,16733,6.769,16734,10.63,16735,10.63,16736,10.63,16737,10.63,16738,10.63,16739,10.63,16740,10.011,16741,10.63,16742,9.826,16743,9.826,16744,6.769,16745,6.769,16746,6.769,16747,6.769,16748,6.769,16749,6.769,16750,6.769,16751,6.769,16752,6.769,16753,6.769,16754,6.769,16755,6.769,16756,6.769,16757,6.769,16758,6.769,16759,6.769,16760,6.769,16761,6.769,16762,6.769,16763,9.303,16764,9.303,16765,9.303,16766,9.303,16767,9.303,16768,6.769,16769,6.769,16770,6.769,16771,6.769,16772,6.769,16773,11.446]],["title/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.232,16774,6.286]],["body/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.227,2,0.745,3,0.016,4,0.016,5,0.008,7,0.101,8,1.113,27,0.38,29,0.523,30,0.001,31,0.374,32,0.091,33,0.323,35,0.808,95,0.146,101,0.019,103,0.001,104,0.001,127,0.837,163,2.056,214,2.906,215,2.132,216,1.235,217,1.607,227,1.095,234,2.005,319,1.996,460,6.071,549,4.584,1016,2.345,1021,3.553,1031,2.093,1216,2.617,1323,4.666,1414,3.735,1431,3.805,1461,5.842,1463,5.842,1464,5.241,1465,5.448,1467,2.132,1468,7.72,1469,5.636,1647,8.975,1770,3.879,2075,3.671,2356,4.905,2412,4.251,6616,6.326,6712,5.948,6886,5.089,8025,4.965,9570,8.912,11774,6.719,14107,4.965,15446,9.954,16732,5.842,16742,9.758,16743,9.758,16774,10.521,16775,10.555,16776,6.679,16777,6.679,16778,11.381,16779,6.679,16780,6.679,16781,5.842,16782,6.679,16783,6.679,16784,6.679,16785,12.347,16786,13.588,16787,6.679,16788,6.679,16789,6.679,16790,5.23,16791,6.679,16792,6.679,16793,9.218,16794,6.679,16795,6.679,16796,5.395,16797,6.679,16798,9.218,16799,11.941,16800,6.679,16801,6.679,16802,6.679,16803,6.679,16804,6.679,16805,6.679,16806,6.679,16807,6.679,16808,9.218,16809,6.679,16810,6.679,16811,6.679,16812,6.679,16813,6.679]],["title/classes/PropertyData.html",[0,0.232,134,5.324]],["body/classes/PropertyData.html",[0,0.31,2,1.016,3,0.022,4,0.022,5,0.011,7,0.138,27,0.529,29,0.714,30,0.001,31,0.719,32,0.175,33,0.594,47,0.916,95,0.117,101,0.015,103,0.001,104,0.001,108,7.668,127,1.141,134,10.337,144,3.378,165,0.885,207,10.286,240,2.89,331,8.174,405,3.011,595,3.05,2095,3.615,4281,3.98,7181,7.134,7220,7.63,7221,7.63,7247,7.63,16814,13.201,16815,8.422,16816,11.299,16817,9.111,16818,9.111]],["title/interfaces/ProviderConsentResponse.html",[334,0.731,15825,5.181]],["body/interfaces/ProviderConsentResponse.html",[3,0.018,4,0.018,5,0.009,7,0.116,30,0.001,32,0.188,33,0.692,47,1.025,70,5.96,77,7.661,95,0.13,101,0.013,103,0.001,104,0.001,165,0.792,199,4.549,334,0.823,336,1.832,337,5.349,347,2.289,356,10.527,357,10.527,359,3.945,1529,6.412,3580,4.9,4194,8.571,5482,11.126,5483,11.126,5484,10.079,5485,10.079,5486,10.079,5487,9.722,9307,8.947,15825,7.701,16819,7.656,16820,10.079,16821,7.078,16822,7.078,16823,6.697]],["title/interfaces/ProviderConsentSessionResponse.html",[334,0.731,15888,5.324]],["body/interfaces/ProviderConsentSessionResponse.html",[3,0.021,4,0.021,5,0.011,7,0.132,30,0.001,32,0.187,33,0.679,47,0.997,55,2.595,95,0.112,101,0.015,103,0.001,104,0.001,138,4.808,165,0.862,334,0.938,336,2.091,337,6.103,341,11.693,342,11.064,343,11.693,344,9.905,345,9.905,346,8.052,347,2.437,352,7.64,353,7.056,5525,8.075,15825,9.637,15888,8.618,16824,8.735,16825,12.649,16826,8.735]],["title/interfaces/ProviderLoginResponse.html",[334,0.731,15887,5.324]],["body/interfaces/ProviderLoginResponse.html",[3,0.02,4,0.02,5,0.01,7,0.129,30,0.001,32,0.187,33,0.607,47,1.019,70,6.22,77,7.995,95,0.14,101,0.014,103,0.001,104,0.001,165,0.852,334,0.921,336,2.051,337,5.986,347,2.415,1529,7.176,3580,5.114,4194,8.945,5484,10.519,5485,10.519,5486,10.519,5487,10.146,9307,9.337,14514,11.611,15887,8.513,16820,10.519,16821,7.921,16822,7.921,16823,7.494,16827,8.568]],["title/interfaces/ProviderOidcContext.html",[334,0.731,16820,5.694]],["body/interfaces/ProviderOidcContext.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.181,33,0.679,47,1.011,101,0.016,103,0.001,104,0.001,165,0.901,334,1.008,336,2.246,337,6.558,359,4.339,1797,8.677,9633,9.24,16265,11.995,16266,11.995,16267,11.995,16268,11.995,16820,9.638,16828,9.387]],["title/interfaces/ProviderRedirectResponse.html",[334,0.731,15827,5.055]],["body/interfaces/ProviderRedirectResponse.html",[3,0.025,4,0.025,5,0.013,7,0.159,30,0.001,32,0.143,47,0.933,101,0.018,103,0.001,104,0.001,165,0.966,334,1.132,336,2.523,337,7.364,15827,9.171,16829,10.541,16830,12.466]],["title/classes/ProvisioningDto.html",[0,0.232,13098,5.181]],["body/classes/ProvisioningDto.html",[0,0.343,2,1.123,3,0.024,4,0.024,5,0.012,7,0.152,27,0.495,29,0.789,30,0.001,31,0.564,32,0.163,33,0.487,47,0.856,101,0.017,103,0.001,104,0.001,127,1.261,165,0.94,8443,8.524,8446,8.805,13098,10.495,16831,10.067,16832,12.006,16833,12.006,16834,10.067]],["title/modules/ProvisioningModule.html",[425,1.812,15578,5.324]],["body/modules/ProvisioningModule.html",[0,0.236,3,0.016,4,0.016,5,0.008,30,0.001,95,0.176,101,0.012,103,0.001,104,0.001,187,1.004,191,3.849,192,2.069,425,2.87,427,2.508,428,2.698,429,2.778,430,2.767,431,2.755,432,3.964,433,4.071,437,8.897,438,5.853,442,3.788,443,2.721,444,2.655,449,3.756,1155,4.033,1467,2.216,1547,9.287,1548,8.729,1566,5.609,3568,7.85,3709,4.613,3917,6.39,4519,4.766,4593,3.508,5333,7.953,8432,5.815,10939,10.092,13083,10.463,15395,10.633,15578,11.231,16290,10.463,16300,10.092,16408,6.073,16835,6.944,16836,6.944,16837,6.944,16838,6.944,16839,10.463,16840,10.463,16841,6.944,16842,6.944,16843,6.944,16844,6.944,16845,6.944,16846,6.944]],["title/injectables/ProvisioningService.html",[105,0.91,15395,5.324]],["body/injectables/ProvisioningService.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.012,27,0.514,29,0.925,30,0.001,31,0.662,32,0.165,33,0.571,35,1.374,36,2.61,47,0.939,48,3.946,95,0.156,100,1.952,101,0.01,103,0,104,0,105,1.12,107,1.405,111,2.581,112,2.795,127,1.049,144,1.603,145,1.476,148,1.794,163,2.577,165,0.656,187,0.843,216,1.981,217,1.651,221,2.269,227,1.111,234,1.74,305,1.661,319,1.742,348,7.013,661,4.119,1353,2.814,1567,4,1625,7.119,2268,3.32,3104,4.441,3364,6.047,4519,8.705,11196,8.414,11217,6.415,11265,4.881,11660,8.573,12332,7.97,12334,7.013,12335,3.872,12336,3.872,13083,8.973,13086,6.558,13089,7.929,13094,7.287,13098,7.468,13122,4.708,15395,6.558,15699,7.676,16213,4.441,16290,8.973,16839,8.973,16847,5.829,16848,8.375,16849,8.375,16850,8.375,16851,8.375,16852,5.388,16853,9.802,16854,9.802,16855,9.802,16856,5.829,16857,8.375,16858,5.829,16859,8.375,16860,5.829,16861,8.375,16862,5.829,16863,5.829,16864,8.375,16865,5.829,16866,8.375,16867,5.829,16868,5.829,16869,5.098,16870,5.829,16871,5.829,16872,5.829,16873,5.829,16874,5.829,16875,5.829,16876,5.829,16877,5.829,16878,5.829,16879,8.375,16880,5.829,16881,5.829,16882,5.829,16883,5.829,16884,5.829]],["title/classes/ProvisioningStrategy.html",[0,0.232,12332,4.272]],["body/classes/ProvisioningStrategy.html",[0,0.31,2,1.014,3,0.021,4,0.021,5,0.011,7,0.137,8,1.363,9,6.588,27,0.506,29,0.884,30,0.001,31,0.632,32,0.153,33,0.546,35,1.485,36,2.751,95,0.145,100,3.044,101,0.015,103,0.001,104,0.001,163,2.798,2268,5.178,10921,10.047,11714,7.001,12332,7.089,12334,8.03,12335,6.039,12336,6.039,13086,8.835,13088,9.114,13089,8.964,13093,9.114,13094,9.538,13098,6.926,16885,9.09,16886,9.09,16887,9.09,16888,9.09]],["title/classes/ProvisioningSystemDto.html",[0,0.232,15699,5.324]],["body/classes/ProvisioningSystemDto.html",[0,0.31,2,1.016,3,0.022,4,0.022,5,0.011,7,0.138,26,2.604,27,0.529,29,0.714,30,0.001,31,0.51,32,0.175,33,0.594,47,0.806,48,5.788,95,0.145,99,1.52,101,0.015,103,0.001,104,0.001,127,1.141,165,0.885,405,3.011,417,6.623,418,7.134,595,3.05,12332,7.717,12333,8.581,12334,8.039,12335,6.053,12336,6.053,12429,6.941,12430,7.134,12431,6.941,12432,7.134,15699,10.337,16889,13.201,16890,9.111,16891,11.299,16892,9.111,16893,9.111]],["title/classes/ProvisioningSystemInputMapper.html",[0,0.232,16869,5.947]],["body/classes/ProvisioningSystemInputMapper.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,8,1.388,27,0.386,29,0.734,30,0.001,31,0.525,32,0.127,33,0.453,35,1.134,48,4.413,95,0.16,100,3.848,101,0.016,103,0.001,104,0.001,145,2.371,227,0.971,234,1.521,627,3.815,3104,5.206,6410,7.843,11217,8.485,12332,5.884,12333,6.543,12334,6.129,12335,6.222,12336,6.222,15699,8.999,16213,7.135,16869,10.052,16894,11.492,16895,9.365,16896,11.492,16897,11.492,16898,9.365,16899,9.365,16900,9.365,16901,9.365]],["title/classes/Pseudonym.html",[0,0.232,8920,3.911]],["body/classes/Pseudonym.html",[0,0.282,2,0.922,3,0.02,4,0.02,5,0.01,7,0.125,8,1.284,26,2.719,27,0.55,30,0.001,32,0.112,35,1.001,39,3.338,47,0.758,83,3.793,95,0.136,101,0.018,103,0.001,104,0.001,116,3.31,165,0.832,227,1.33,334,0.888,359,2.883,404,2.116,591,5.388,592,5.616,595,3.559,596,3.242,661,4.467,692,3.971,884,5.008,1787,6.173,1790,5.414,1793,7.578,1904,3.459,2545,4.398,2758,5.494,2776,5.494,2779,7.233,2781,7.233,2785,6.475,2786,6.475,7405,6.68,8776,6.755,8920,7.548,16902,7.644,16903,7.644,16904,8.269,16905,8.269,16906,8.269,16907,8.269,16908,8.269,16909,8.269,16910,7.233,16911,7.644,16912,7.644,16913,6.68]],["title/modules/PseudonymApiModule.html",[425,1.812,16914,5.493]],["body/modules/PseudonymApiModule.html",[0,0.299,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.272,191,4.874,192,2.62,425,3.22,427,3.176,428,3.417,429,3.518,430,3.503,431,3.488,432,4.447,433,3.323,442,4.422,443,3.445,444,3.362,446,5.525,447,4.58,449,4.384,1878,7.207,2725,3.983,2727,4.218,4583,9.912,5333,8.488,16914,11.358,16915,8.793,16916,8.793,16917,8.793,16918,11.167,16919,8.793,16920,10.571,16921,8.793,16922,8.793]],["title/controllers/PseudonymController.html",[481,2.611,16920,5.947]],["body/controllers/PseudonymController.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.326,29,0.619,30,0.001,31,0.442,32,0.156,33,0.382,35,1.391,36,2.212,95,0.172,99,1.318,100,2.644,101,0.013,103,0.001,104,0.001,112,2.532,185,4.465,187,1.142,209,3.409,215,2.52,216,1.46,217,1.342,221,1.828,227,0.819,264,4.335,364,1.438,376,1.806,379,1.789,447,3.273,461,2.36,481,3.032,483,3.765,491,5.992,511,5.212,513,6.386,553,6.252,555,4.105,556,4.2,561,4.233,563,4.733,1433,6.325,2727,3.788,2930,4.233,7044,6.566,8920,7.594,8926,5.246,13939,8.332,13942,7.498,16903,10.62,16918,9.621,16920,9.022,16923,7.896,16924,7.896,16925,10.654,16926,7.896,16927,7.896,16928,7.896,16929,7.668,16930,6.907,16931,7.896,16932,10.584,16933,7.896,16934,7.896,16935,7.896,16936,7.896,16937,7.896,16938,7.896,16939,7.896]],["title/entities/PseudonymEntity.html",[380,1.445,16940,5.694]],["body/entities/PseudonymEntity.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.126,26,2.268,27,0.487,30,0.001,32,0.16,34,1.421,39,3.464,47,0.842,49,5.264,95,0.16,96,2.927,97,3.614,99,1.394,101,0.018,103,0.001,104,0.001,165,0.924,167,3.074,240,4.175,334,0.898,364,2.15,380,2.273,381,2.779,394,6.723,398,2.462,399,4.245,402,3.463,404,1.506,405,2.226,406,2.717,415,4.516,416,5.318,618,3.417,619,5.931,4272,5.064,8776,7.01,8920,7.157,8921,7.308,8926,5.551,8927,6.749,8928,6.997,8929,6.073,8930,6.542,16940,8.96,16941,7.724,16942,8.355,16943,8.355,16944,8.355,16945,8.96]],["title/interfaces/PseudonymEntityProps.html",[334,0.731,16945,5.694]],["body/interfaces/PseudonymEntityProps.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.126,26,2.638,30,0.001,32,0.169,33,0.517,34,2.117,39,3.543,47,0.887,49,5.384,95,0.16,96,2.927,97,3.614,99,1.394,101,0.018,103,0.001,104,0.001,165,0.924,167,3.074,240,3.948,334,0.898,336,1.999,380,2.273,394,6.723,398,2.462,399,4.245,402,3.463,404,1.506,405,2.226,406,2.717,415,4.516,416,5.318,618,3.417,619,5.931,4272,5.064,8776,7.172,8920,7.399,8926,5.551,8927,6.749,8928,6.997,8929,6.073,8930,6.542,16940,6.997,16941,7.724,16945,9.884]],["title/classes/PseudonymMapper.html",[0,0.232,16930,5.947]],["body/classes/PseudonymMapper.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,34,1.627,35,1.158,39,2.575,95,0.149,99,1.596,101,0.016,103,0.001,104,0.001,217,1.245,227,0.992,234,1.553,627,3.851,975,6.454,982,4.768,1016,4.087,8776,5.212,8920,7.699,16930,10.182,16932,11.21,16946,9.565,16947,11.642,16948,9.565,16949,9.565,16950,9.565,16951,9.565]],["title/modules/PseudonymModule.html",[425,1.812,4583,5.055]],["body/modules/PseudonymModule.html",[0,0.267,3,0.019,4,0.019,5,0.009,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,187,1.133,425,3.05,427,2.83,428,3.045,429,3.135,430,3.122,431,3.109,432,4.211,433,4.325,442,4.106,443,3.07,444,2.996,449,4.072,766,3.277,1467,2.501,1878,5.547,1953,7.996,1954,7.629,1955,6.562,2357,5.892,2531,4.235,2725,3.549,3568,8.127,4583,10.579,4593,3.959,8931,10.832,9627,10.541,9647,9.495,13848,9.211,16952,7.835,16953,7.835,16954,7.835,16955,7.835,16956,10.832,16957,7.835,16958,6.562]],["title/classes/PseudonymParams.html",[0,0.232,16925,5.947]],["body/classes/PseudonymParams.html",[0,0.405,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,27,0.408,30,0.001,32,0.134,47,0.847,95,0.153,101,0.017,103,0.001,104,0.001,165,0.931,364,1.802,368,4.656,369,2.637,370,3.259,371,3.277,374,3.158,376,2.263,467,3.117,470,4.97,4429,8.654,8920,7.325,11052,9.146,16925,10.393,16959,11.882,16960,9.894]],["title/interfaces/PseudonymProps.html",[334,0.731,16910,5.947]],["body/interfaces/PseudonymProps.html",[0,0.292,3,0.02,4,0.02,5,0.01,7,0.129,26,2.914,30,0.001,32,0.176,39,3.491,47,0.896,83,4.166,95,0.14,101,0.018,103,0.001,104,0.001,165,0.852,227,1.344,334,0.921,336,2.051,359,2.987,404,2.152,591,5.634,592,5.873,1787,6.937,1790,4.59,1904,3.584,2545,4.557,2785,6.709,2786,6.709,8776,7.064,8920,7.619,16902,7.921,16910,9.509,16911,7.921,16912,7.921,16913,6.921]],["title/classes/PseudonymResponse.html",[0,0.232,16932,5.694]],["body/classes/PseudonymResponse.html",[0,0.311,2,1.018,3,0.022,4,0.022,5,0.011,7,0.138,27,0.53,29,0.715,30,0.001,31,0.511,32,0.175,33,0.442,34,2.091,39,3.31,47,0.96,95,0.117,101,0.015,103,0.001,104,0.001,127,1.144,165,0.886,364,2.239,376,2.089,415,4.935,467,3.58,618,3.734,1016,3.206,5931,9.14,5941,6.957,8776,6.7,8929,6.638,16932,11.063,16961,9.131,16962,11.315,16963,9.131,16964,9.131,16965,8.441,16966,9.131]],["title/classes/PseudonymScope.html",[0,0.232,8962,5.947]],["body/classes/PseudonymScope.html",[0,0.242,2,0.793,3,0.017,4,0.017,5,0.009,7,0.107,8,1.163,27,0.54,29,0.956,30,0.001,31,0.684,32,0.178,33,0.59,35,1.165,39,2.937,47,0.946,49,2.8,95,0.14,101,0.012,103,0.001,104,0.001,111,2.523,144,1.957,145,3.359,148,2.19,165,0.754,200,2.216,209,2.352,227,1.131,234,1.563,277,5.353,319,2.127,347,2.206,404,1.734,450,2.923,529,3.093,596,3.724,734,4.053,921,5.289,2394,6.467,5991,6.496,5992,6.496,5993,6.496,5998,6.496,5999,6.496,6000,4.883,6001,4.802,6002,4.883,6003,4.883,6012,4.802,6013,6.496,6014,4.883,6015,4.802,6016,4.883,6017,4.802,6018,7.362,8776,5.944,8917,5.067,8920,6.274,8962,8.419,8965,6.224,16967,7.115,16968,9.625,16969,8.898,16970,9.625,16971,9.625,16972,7.115,16973,8.898,16974,7.115,16975,9.625,16976,7.115,16977,7.115]],["title/interfaces/PseudonymSearchQuery.html",[334,0.731,8953,5.694]],["body/interfaces/PseudonymSearchQuery.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.173,33,0.663,39,3.557,47,1.004,101,0.017,103,0.001,104,0.001,165,0.931,334,1.063,336,2.368,1005,7.045,8776,7.198,8920,7.597,8953,9.951,9272,8.654,16978,9.894]],["title/injectables/PseudonymService.html",[105,0.91,9647,4.667]],["body/injectables/PseudonymService.html",[0,0.138,3,0.01,4,0.01,5,0.005,7,0.061,8,0.768,11,5.325,13,4.622,27,0.508,29,0.966,30,0.001,31,0.691,32,0.168,33,0.596,34,1.647,35,1.472,36,2.88,37,5.325,39,3.086,42,4.622,47,0.961,49,1.591,83,1.945,95,0.143,96,1.106,97,1.749,99,0.675,101,0.007,103,0,104,0,105,0.851,107,0.975,111,2.576,112,3.009,116,3.787,127,0.797,145,1.61,158,5.846,167,2.34,187,0.585,201,2.058,209,3.877,216,1.176,217,1.556,221,2.38,227,1.279,234,1.809,284,3.437,305,2.538,461,1.455,529,1.758,591,1.758,592,1.832,701,3.15,738,4.085,775,2.48,806,1.647,1014,3.032,1127,5.671,1353,1.952,1750,3.951,1904,1.692,2130,1.767,2131,1.977,2132,1.906,2531,2.186,3859,2.262,4121,2.647,4419,8.235,6902,5.399,7074,5.634,7182,8.195,7271,2.51,8540,8.111,8776,2.204,8920,6.993,8926,5.918,8931,9.824,8935,5.562,8938,5.878,8939,5.325,8945,5.562,8952,5.878,8953,7.461,8955,4.845,9647,4.364,9913,2.826,12653,5.878,12821,5.878,15293,5.878,16956,9.008,16979,4.044,16980,6.359,16981,6.359,16982,6.359,16983,6.359,16984,6.359,16985,6.359,16986,6.359,16987,4.044,16988,4.044,16989,6.359,16990,4.044,16991,6.359,16992,4.044,16993,4.044,16994,4.044,16995,4.044,16996,6.359,16997,4.044,16998,6.359,16999,4.044,17000,4.044,17001,4.044,17002,6.359,17003,4.044,17004,6.359,17005,4.044,17006,6.359,17007,4.044,17008,10.283,17009,4.044,17010,8.908,17011,4.044,17012,4.044,17013,6.359,17014,2.88,17015,4.044,17016,4.044,17017,4.044,17018,6.359,17019,6.359,17020,4.044,17021,4.044,17022,4.044,17023,8.908,17024,4.044,17025,4.044,17026,4.044,17027,4.044,17028,4.044,17029,4.044,17030,4.044]],["title/injectables/PseudonymUc.html",[105,0.91,16918,5.694]],["body/injectables/PseudonymUc.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.117,8,1.23,26,2.563,27,0.42,29,0.798,30,0.001,31,0.57,32,0.138,33,0.493,35,0.937,36,2.184,39,2.085,47,0.862,95,0.166,99,1.293,101,0.013,103,0.001,104,0.001,105,1.362,107,1.867,111,2.281,112,2.508,127,1.276,129,7.502,132,7.343,167,3.748,187,1.12,189,5.646,191,4.293,192,2.308,216,2.104,217,1.634,221,2.798,227,0.803,234,1.257,305,2.206,461,2.765,766,3.24,1801,4.642,1884,7.103,1982,4.642,2725,3.508,4184,5.227,8369,4.694,8920,7.559,8939,8.53,9647,8.849,9674,5.411,9675,5.63,9720,6.065,9721,6.065,16918,8.53,17031,7.745,17032,7.745,17033,7.745,17034,10.185,17035,7.745,17036,11.38,17037,7.745,17038,7.745,17039,7.745,17040,7.745,17041,10.185,17042,7.745,17043,6.486]],["title/injectables/PseudonymsRepo.html",[105,0.91,16956,5.694]],["body/injectables/PseudonymsRepo.html",[0,0.185,3,0.013,4,0.013,5,0.007,7,0.082,8,0.96,13,5.776,26,2.888,27,0.503,29,0.956,30,0.001,31,0.684,32,0.166,33,0.59,34,1.352,35,1.441,36,2.812,39,3.41,42,5.776,49,2.133,95,0.133,96,1.483,97,2.345,99,0.905,101,0.009,103,0,104,0,105,1.063,107,1.307,112,2.936,127,0.679,145,1.373,167,2.924,187,0.784,215,1.73,216,1.002,217,1.648,221,2.397,227,1.266,234,2.056,380,2.594,381,1.803,591,2.356,592,2.456,661,4.842,921,7.699,1790,4.656,2355,5.957,2379,3.659,2403,4.245,2408,3.787,2422,4.54,2794,4.711,3314,3.787,3319,4.816,3381,4.379,4369,3.498,4383,4.54,4384,4.54,8776,6.901,8920,7.712,8926,5.279,8934,7.345,8935,6.949,8936,7.345,8937,7.345,8940,6.949,8941,7.345,8943,7.345,8945,6.949,8948,7.345,8950,7.345,8957,7.345,8959,7.345,8965,6.949,8966,9.574,8969,4.741,8970,5.011,8972,5.011,8974,4.741,8975,5.011,8976,6.949,8979,5.011,8980,5.011,8981,5.011,8982,5.011,8983,5.011,8984,5.011,16940,10.433,16945,8.674,16956,6.654,17044,5.421,17045,5.421,17046,5.421,17047,5.421,17048,5.421,17049,5.421,17050,5.421,17051,5.421,17052,5.421,17053,5.421,17054,5.421,17055,5.421,17056,5.421,17057,5.421,17058,5.421,17059,5.421]],["title/classes/PublicSystemListResponse.html",[0,0.232,17060,5.694]],["body/classes/PublicSystemListResponse.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,27,0.477,29,0.74,30,0.001,31,0.529,32,0.17,33,0.457,95,0.148,101,0.016,103,0.001,104,0.001,116,2.944,127,1.184,145,2.394,163,3.842,165,0.905,364,1.722,376,2.162,467,3.032,1006,6.604,1011,4.776,1016,3.319,1026,5.24,3104,5.892,5732,9.051,17060,9.68,17061,11.542,17062,11.558,17063,11.103,17064,10.685]],["title/classes/PublicSystemResponse.html",[0,0.232,17063,5.493]],["body/classes/PublicSystemResponse.html",[0,0.235,2,0.77,3,0.016,4,0.016,5,0.008,7,0.104,27,0.514,29,0.541,30,0.001,31,0.602,32,0.183,33,0.617,34,2.056,47,0.927,95,0.121,101,0.012,103,0.001,104,0.001,127,0.865,154,5.287,165,0.739,364,2.201,367,4.498,368,5.224,369,2.959,370,4.392,371,3.677,376,1.58,379,2.739,467,3.273,618,2.825,1013,5.535,2578,3.08,2597,5.58,3104,6.284,5442,6.576,5698,5.466,5717,4.397,9633,6.718,10293,5.276,10691,7.013,11429,6.932,11828,5.135,12329,8.029,12421,5.263,12423,5.263,13778,4.919,15666,10.12,17061,11.803,17063,9.762,17065,4.919,17066,8.721,17067,9.434,17068,6.908,17069,6.908,17070,6.908,17071,6.908,17072,6.386,17073,5.785,17074,5.58,17075,5.785]],["title/modules/RabbitMQWrapperModule.html",[425,1.812,10575,4.842]],["body/modules/RabbitMQWrapperModule.html",[0,0.346,3,0.018,4,0.018,5,0.009,30,0.001,31,0.676,32,0.164,47,0.81,95,0.155,101,0.019,103,0.001,104,0.001,112,1.7,187,1.116,214,2.432,215,2.462,216,1.427,217,1.004,221,1.786,234,1.253,284,4.17,368,3.023,425,3.217,427,3.67,433,3.84,449,4.507,676,4.17,883,3.273,957,5.632,1161,5.295,1198,5.39,1312,4.787,1338,8.444,1351,5.39,1352,4.978,2130,3.37,2131,3.771,2132,3.635,2133,4.911,2439,4.527,2461,4.676,2469,4.978,2475,5.295,3588,5.735,4514,5.608,4663,5.295,5058,6.749,5880,4.481,6154,5.126,6439,8.764,6761,5.608,10501,7.552,10575,7.235,10576,5.39,10599,6.748,13044,6.232,13379,10.558,14888,9.935,16624,8.508,17076,7.132,17077,10.5,17078,11.596,17079,7.132,17080,7.132,17081,6.748,17082,7.132,17083,7.132,17084,6.461,17085,7.132,17086,7.132,17087,7.132,17088,7.132,17089,7.132,17090,6.748,17091,7.132,17092,6.461,17093,7.132,17094,6.748,17095,6.748,17096,7.132,17097,7.132,17098,7.132]],["title/modules/RabbitMQWrapperTestModule.html",[425,1.812,10576,4.751]],["body/modules/RabbitMQWrapperTestModule.html",[0,0.342,3,0.018,4,0.018,5,0.009,8,0.918,27,0.313,30,0.001,31,0.672,32,0.163,35,0.92,47,0.804,95,0.154,101,0.019,103,0.001,104,0.001,112,2.217,187,1.099,214,2.396,215,2.425,216,1.405,217,0.989,221,1.759,234,1.234,284,4.107,368,2.977,425,3.197,427,3.633,433,3.801,449,4.473,676,4.107,883,3.224,957,5.576,1161,5.215,1198,5.309,1312,4.715,1338,8.381,1351,5.309,1352,4.903,2130,3.319,2131,3.714,2132,3.581,2133,4.837,2439,4.459,2461,4.605,2469,4.903,2475,5.215,3588,5.649,4514,5.524,4663,5.215,5058,6.682,5880,4.414,6154,5.048,6439,8.72,6761,5.524,10501,7.477,10575,5.411,10576,7.027,10599,6.646,13044,6.138,13379,10.495,14888,10.917,16624,8.423,17076,7.024,17077,10.422,17078,11.538,17079,7.024,17080,7.024,17081,6.646,17082,7.024,17083,7.024,17084,6.364,17085,7.024,17086,7.024,17087,7.024,17088,7.024,17089,7.024,17090,6.646,17091,7.024,17092,6.364,17093,7.024,17094,6.646,17095,6.646,17096,7.024,17097,7.024,17098,7.024,17099,7.599]],["title/classes/ReadableStreamWithFileTypeImp.html",[0,0.232,17100,6.286]],["body/classes/ReadableStreamWithFileTypeImp.html",[0,0.287,2,0.941,3,0.02,4,0.02,5,0.016,7,0.128,27,0.444,29,0.661,30,0.001,31,0.473,32,0.17,33,0.574,95,0.152,101,0.014,103,0.001,104,0.001,127,1.057,165,0.844,214,3.396,217,1.402,227,0.875,404,1.941,405,2.87,406,2.746,595,2.827,660,4.64,731,3.336,736,5.006,1187,4.026,1188,3.978,1189,3.978,1190,4.208,1191,4.601,1342,8.427,1344,8.176,2045,5.898,8787,7.804,8830,7.804,10026,6.611,13052,7.804,17100,9.956,17101,11.86,17102,8.443,17103,11.86,17104,12.905,17105,12.493,17106,10.77,17107,12.493,17108,8.443,17109,8.443,17110,8.443,17111,8.443,17112,8.443]],["title/classes/RecursiveCopyVisitor.html",[0,0.232,3298,5.947]],["body/classes/RecursiveCopyVisitor.html",[0,0.114,2,0.373,3,0.008,4,0.008,5,0.007,7,0.051,8,0.66,26,0.709,27,0.505,29,0.935,30,0.001,31,0.668,32,0.177,33,0.577,34,1.768,35,1.423,36,2.72,49,1.316,83,3.743,95,0.121,99,0.558,101,0.006,103,0,104,0,112,2.94,127,0.419,144,1.502,145,1.383,150,1.158,165,0.428,192,0.997,199,1.264,214,1.722,215,1.068,216,0.619,217,1.574,221,2.186,227,1.115,234,2.209,305,0.953,319,1.633,564,4.055,591,4.518,592,4.709,731,1.322,734,1.906,1041,4.924,1184,1.855,1345,1.327,1397,2.948,1582,2.62,1750,3.07,2384,2.005,2524,8.078,2557,5.833,2616,6.257,2655,4.683,2757,7.016,2764,3.981,2818,5.016,2823,5.336,2826,5.763,2829,5.763,2832,5.763,2835,5.681,2838,5.532,2841,4.958,2846,2.432,2848,1.615,2861,4.575,2862,4.575,2863,4.575,2864,4.575,2865,4.575,2866,4.575,2867,4.575,2868,4.575,2869,4.575,2992,3.525,3007,2.62,3008,2.487,3009,2.028,3010,1.871,3023,8.14,3031,2.802,3047,2.382,3116,9.421,3126,2.62,3248,2.159,3251,1.984,3253,1.984,3256,2.382,3259,1.727,3262,1.714,3267,1.871,3298,4.778,3301,6.257,3302,2.802,3303,8.228,3304,4.778,3364,4.509,4121,6.803,5642,2.802,6189,1.823,6217,1.646,6321,4.778,6331,3.093,6332,8.421,6333,2.703,6334,2.926,6367,2.802,8358,2.223,17113,12.365,17114,3.346,17115,6.922,17116,6.922,17117,5.462,17118,5.462,17119,5.462,17120,3.346,17121,5.462,17122,3.346,17123,5.462,17124,3.346,17125,5.462,17126,3.346,17127,5.462,17128,3.346,17129,5.462,17130,3.346,17131,5.462,17132,3.346,17133,5.462,17134,3.346,17135,5.462,17136,3.346,17137,5.462,17138,3.346,17139,5.462,17140,3.346,17141,5.462,17142,3.346,17143,5.462,17144,3.346,17145,5.462,17146,3.346,17147,5.462,17148,3.346,17149,3.346,17150,3.346,17151,3.346,17152,7.99,17153,7.99,17154,3.346,17155,6.922,17156,10.754,17157,3.346,17158,7.99,17159,10.395,17160,3.346,17161,3.346,17162,3.346,17163,3.346,17164,3.346,17165,3.346,17166,3.346,17167,3.093,17168,3.346,17169,3.093,17170,3.346,17171,3.346,17172,3.346,17173,3.346,17174,3.346,17175,3.346,17176,3.346,17177,3.346,17178,3.346,17179,3.346,17180,3.346,17181,3.346,17182,3.346,17183,3.346,17184,3.346,17185,3.346,17186,3.346,17187,3.346,17188,3.093,17189,5.462,17190,5.462,17191,5.462,17192,3.346,17193,3.346,17194,5.05,17195,5.462,17196,3.346,17197,3.346]],["title/injectables/RecursiveDeleteVisitor.html",[105,0.91,3317,5.694]],["body/injectables/RecursiveDeleteVisitor.html",[0,0.181,3,0.013,4,0.013,5,0.006,7,0.08,8,0.946,10,2.145,27,0.533,29,1.013,30,0.001,31,0.724,32,0.176,33,0.625,35,1.547,36,2.925,95,0.14,96,1.454,97,2.298,99,0.887,101,0.009,103,0,104,0,105,1.047,107,1.281,111,1.57,112,3.092,127,0.981,140,2.804,148,2.41,187,0.768,214,1.675,216,1.448,221,2.958,1358,3.382,1790,3.306,1852,2.244,1961,3.712,2355,5.9,2403,4.161,2557,5.783,2655,5.817,2764,4.503,2769,3.339,2818,6.23,2823,6.628,2826,7.158,2829,7.158,2832,7.158,2835,7.057,2838,6.872,2841,6.365,2846,3.863,2849,2.298,2852,6.557,2853,6.557,2854,6.557,2855,6.557,2856,6.557,2857,6.557,2858,6.557,2860,6.557,2861,6.557,2862,6.557,2863,6.557,2864,6.557,2865,6.557,2866,6.557,2867,6.557,2868,6.557,2869,6.557,3143,2.783,3314,3.712,3317,6.557,3319,4.745,3579,2.614,3580,2.163,5639,7.238,5642,4.45,6298,8.425,17188,4.912,17198,12.076,17199,5.314,17200,7.83,17201,7.83,17202,5.314,17203,7.83,17204,5.314,17205,5.314,17206,7.83,17207,5.314,17208,5.314,17209,5.314,17210,5.314,17211,5.314,17212,5.314,17213,5.314,17214,5.314,17215,5.314,17216,5.314,17217,5.314,17218,5.314,17219,5.314,17220,5.314,17221,5.314,17222,5.314,17223,5.314,17224,5.314,17225,5.314,17226,5.314,17227,5.314,17228,5.314,17229,5.314,17230,5.314,17231,5.314,17232,5.314,17233,5.314,17234,4.912,17235,5.314,17236,5.314,17237,5.314,17238,5.314]],["title/classes/RecursiveSaveVisitor.html",[0,0.232,3345,5.947]],["body/classes/RecursiveSaveVisitor.html",[0,0.125,2,0.409,3,0.009,4,0.009,5,0.004,7,0.055,8,0.711,18,2.974,26,0.778,27,0.509,29,0.956,30,0.001,31,0.684,32,0.17,33,0.59,34,1.889,35,1.458,36,1.262,39,0.988,55,0.79,59,1.143,95,0.133,96,1.61,97,1.587,99,0.612,101,0.006,103,0,104,0,111,1.691,112,1.624,127,0.46,140,1.936,144,1.009,145,1.49,148,4.019,150,1.27,165,0.461,199,1.386,200,1.143,214,1.855,215,1.171,216,1.088,217,1.699,221,0.849,234,1.925,305,1.045,319,1.096,398,1.081,905,1.528,1397,2.824,1790,1.549,2355,4.85,2367,2.401,2553,1.564,2557,6.262,2627,1.542,2655,4.911,2760,4.324,2767,6.443,2769,6.506,2794,3.49,2799,3.209,2803,3.209,2808,5.44,2809,5.44,2810,5.44,2811,5.44,2812,5.44,2813,5.44,2814,5.44,2815,5.44,2816,5.44,2817,5.148,2818,5.259,2820,5.148,2822,5.148,2823,5.596,2825,5.148,2826,6.042,2828,5.148,2829,6.042,2831,5.148,2832,6.042,2834,5.148,2835,5.957,2837,5.148,2838,5.801,2841,5.233,2846,2.667,2848,1.771,2849,1.587,3143,7.129,3168,4.609,3171,4.754,3174,4.484,3177,5.771,3180,4.609,3183,4.609,3186,4.609,3189,4.609,3192,4.609,3194,3.391,3236,3.391,3248,2.367,3251,2.175,3253,2.175,3256,2.612,3259,1.893,3262,1.88,3264,2.223,3314,2.563,3315,8.364,3319,3.567,3338,5.148,3339,6.266,3341,2.963,3343,3.391,3345,5.148,3364,4.759,3632,3.391,4083,3.209,4084,3.209,4085,3.072,4120,3.391,4958,3.391,4959,3.209,5642,3.072,5651,3.391,5654,3.391,5661,3.391,5665,3.391,5670,3.391,5673,3.391,5676,3.391,5679,3.391,5685,5.44,5687,3.391,5768,2.667,5782,2.367,5800,2.437,8974,3.209,17198,11.544,17239,3.669,17240,7.37,17241,5.885,17242,5.885,17243,5.885,17244,5.885,17245,5.885,17246,3.669,17247,5.885,17248,11.392,17249,3.669,17250,3.669,17251,3.669,17252,5.885,17253,3.669,17254,3.669,17255,3.669,17256,3.669,17257,3.669,17258,3.669,17259,3.669,17260,3.669,17261,5.885,17262,3.669,17263,3.669,17264,11.639,17265,3.669,17266,3.669,17267,5.885,17268,5.885,17269,5.885,17270,3.669,17271,3.669,17272,3.669,17273,11.103,17274,11.103,17275,3.669,17276,11.103,17277,3.669,17278,3.669,17279,3.669,17280,3.669,17281,3.669,17282,3.669,17283,3.669,17284,3.669,17285,3.669,17286,3.669,17287,3.669,17288,3.669,17289,3.669,17290,3.669,17291,3.669,17292,3.669,17293,3.669,17294,3.669,17295,3.391,17296,3.669,17297,3.669,17298,3.669,17299,3.669,17300,3.669,17301,3.669,17302,3.669,17303,3.669,17304,3.669,17305,3.669,17306,3.669,17307,3.669]],["title/classes/RedirectResponse.html",[0,0.232,15837,5.324]],["body/classes/RedirectResponse.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,27,0.474,29,0.734,30,0.001,31,0.525,32,0.156,33,0.453,47,0.819,95,0.12,101,0.016,103,0.001,104,0.001,127,1.173,150,3.979,165,0.9,361,6.893,364,1.706,376,2.142,379,2.122,461,2.629,467,3.015,1013,4.289,1920,7.315,2170,7.415,3264,6.965,6833,7.221,15837,10.419,16830,11.494,17308,9.365,17309,11.492,17310,9.365,17311,9.365,17312,11.492,17313,9.624,17314,9.365,17315,9.365,17316,9.365]],["title/modules/RedisModule.html",[425,1.812,17317,5.493]],["body/modules/RedisModule.html",[0,0.291,3,0.02,4,0.02,5,0.01,30,0.001,47,0.774,95,0.166,101,0.014,103,0.001,104,0.001,145,2.165,150,2.96,187,1.236,204,2.901,217,1.413,227,1.126,425,3.179,427,3.089,428,3.323,429,3.421,430,3.407,431,3.392,432,3.995,433,4.103,438,6.202,442,4.344,443,3.35,444,3.27,449,4.308,836,4.966,837,6.089,839,4.077,1467,2.729,2130,3.735,2131,4.179,2132,4.029,2356,3.512,2357,5.434,3580,4.42,3859,4.782,3862,7.904,3873,6.695,3874,9.093,3878,10.037,3879,7.904,3881,7.478,3882,7.904,3883,7.478,3884,7.478,3885,7.904,7939,9.496,17317,10.694,17318,8.55,17319,8.55,17320,8.55,17321,10.435,17322,8.55,17323,8.55]],["title/injectables/ReferenceLoader.html",[105,0.91,1932,5.493]],["body/injectables/ReferenceLoader.html",[0,0.189,3,0.013,4,0.013,5,0.007,7,0.084,8,0.976,26,2.22,27,0.432,29,0.747,30,0.001,31,0.534,32,0.163,33,0.461,35,0.978,36,1.733,49,3.75,95,0.154,99,0.926,101,0.009,103,0,104,0,105,1.081,107,1.337,111,2.713,112,2.101,127,1.012,144,1.526,165,0.633,187,0.802,200,1.728,216,2.385,217,1.052,221,1.87,227,0.838,234,1.548,305,1.58,319,1.658,334,0.596,347,1.122,359,3.88,369,1.793,441,7.187,450,2.279,1554,7.776,1787,4.694,1872,4.694,1873,3.443,1929,9.623,1930,7.448,1931,8.043,1932,6.528,1933,9.135,1934,9.363,1935,8.586,1936,8.434,1957,4.227,1973,8.539,2531,7.227,3115,8.09,3228,3.531,3364,5.91,4659,5.369,5343,7.982,5723,9.927,5800,3.686,6074,3.443,12122,9.159,12123,5.129,12124,7.47,12125,7.699,12126,8.811,12127,5.129,12128,5.129,12129,5.129,12130,5.129,12131,5.129,12132,5.129,12133,5.129,12134,5.129,12135,5.129,12136,5.129,12137,5.129,12138,5.129,12139,5.129,12140,5.129,12141,5.129,12142,5.129,12143,5.129,12144,5.129,12145,5.129,12146,5.129,12147,5.129,12148,5.129,12149,7.47,12150,5.129,12151,5.129,12152,8.811,12153,7.47,12154,5.129,12155,5.129,12156,5.129,12157,7.47,17324,8.081,17325,4.852,17326,8.081,17327,5.548,17328,5.548,17329,5.548]],["title/interfaces/RejectRequestBody.html",[334,0.731,15822,5.493]],["body/interfaces/RejectRequestBody.html",[3,0.022,4,0.022,5,0.011,7,0.142,30,0.001,32,0.181,33,0.679,47,1.011,55,2.681,101,0.016,103,0.001,104,0.001,165,0.901,204,4.402,334,1.008,336,2.246,337,6.558,340,7.582,1909,10.16,5433,10.866,5434,10.866,5435,10.16,15822,9.296,17330,9.387]],["title/classes/RenameBodyParams.html",[0,0.232,2924,5.493]],["body/classes/RenameBodyParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,47,0.842,95,0.163,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,3.839,369,2.621,370,3.891,371,2.702,374,3.127,376,2.241,467,3.099,469,4.301,470,4.941,1397,4.246,2924,9.542,7051,9,17331,9.798,17332,9.798,17333,9.798,17334,9.798]],["title/classes/RenameFileParams.html",[0,0.232,6241,4.667]],["body/classes/RenameFileParams.html",[0,0.458,2,0.731,3,0.016,4,0.022,5,0.011,7,0.099,26,2.603,27,0.27,30,0.001,32,0.161,39,1.766,47,0.966,95,0.162,99,1.095,101,0.022,103,0.001,104,0.001,150,2.271,165,0.713,204,2.226,214,2.068,334,0.705,347,1.841,364,1.195,369,1.456,373,4.88,374,2.094,375,4.302,376,1.5,377,6.048,379,1.486,380,1.394,467,3.645,469,2.88,470,5.136,471,4.578,565,3.27,1000,4.999,1001,6.769,1031,3.276,1044,3.147,1180,2.823,1270,3.889,1330,5.795,1331,4.293,1332,4.293,2702,4.711,2889,5.177,3610,3.206,4205,2.211,5836,6.635,6170,4.216,6183,5.958,6189,6.154,6217,3.227,6220,4.502,6221,4.583,6222,4.583,6225,7.882,6228,4.583,6229,8.157,6230,7.89,6231,7.89,6232,4.583,6233,4.502,6234,8.007,6235,4.502,6236,4.583,6237,4.427,6238,6.144,6239,4.358,6240,4.427,6241,6.248,6242,4.427,6243,4.427,6244,4.175,6245,4.583,6246,4.583,6247,4.583,6248,4.175,6249,4.175,6250,4.293,6251,4.358,6252,4.583,17335,6.559,17336,6.559]],["title/classes/RequestInfo.html",[0,0.232,17337,5.947]],["body/classes/RequestInfo.html",[0,0.314,2,0.744,3,0.016,4,0.016,5,0.008,7,0.101,8,1.112,27,0.509,29,0.721,30,0.001,31,0.591,32,0.168,33,0.445,35,0.807,47,0.919,55,1.983,95,0.135,101,0.018,103,0.001,104,0.001,111,2.114,127,0.835,138,2.913,144,1.834,145,1.688,165,0.721,167,2.454,217,1.646,227,0.955,234,1.712,235,6.736,238,5.898,319,1.993,359,2.325,367,5.884,576,5.196,1016,4.333,1182,4.5,1202,5.221,1345,2.646,1414,3.729,1695,4.244,1763,4.847,1770,6.606,2579,6.557,3580,3.749,3909,5.08,5435,7.21,5451,4.957,5461,5.08,6614,7.118,6616,3.997,10253,6.844,16781,5.832,17337,8.053,17338,6.164,17339,9.749,17340,9.749,17341,9.207,17342,8.512,17343,6.668,17344,6.668,17345,6.668,17346,6.668,17347,6.668,17348,8.512,17349,6.668,17350,11.032,17351,5.832,17352,6.164,17353,8.512,17354,5.584,17355,5.832,17356,8.512,17357,8.512,17358,6.164,17359,8.512,17360,6.164,17361,5.832,17362,6.164,17363,6.164,17364,8.512,17365,8.512,17366,8.512,17367,8.512,17368,6.164,17369,6.164,17370,6.164,17371,6.164,17372,6.164,17373,6.164,17374,6.164,17375,6.164,17376,6.164,17377,6.164,17378,6.164,17379,6.164,17380,6.164,17381,6.164,17382,6.164,17383,6.164,17384,6.164,17385,6.164]],["title/injectables/RequestLoggingInterceptor.html",[105,0.91,17386,6.286]],["body/injectables/RequestLoggingInterceptor.html",[0,0.269,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.425,29,0.808,30,0.001,31,0.578,32,0.14,33,0.499,35,0.956,39,2.126,95,0.166,101,0.013,103,0.001,104,0.001,105,1.38,107,1.903,127,0.989,145,1.999,150,2.734,185,3.069,187,1.142,199,2.984,204,2.679,214,2.49,215,2.52,217,1.495,227,1.07,235,4.457,367,5.478,491,5.075,513,3.99,529,3.432,731,4.539,1157,5.168,1158,6.183,1159,6.016,1345,3.133,1370,6.853,1467,2.52,2292,8.753,2356,4.237,2357,5.548,2969,5.33,3743,4.633,6437,5.74,6616,4.733,8154,7.3,8156,9.022,8158,9.022,8159,10.654,8160,10.654,8162,9.022,8163,9.536,10253,5.87,12087,9.022,17355,6.907,17386,9.536,17387,11.488,17388,7.896,17389,7.896,17390,9.536,17391,7.896,17392,7.896,17393,7.896,17394,7.896,17395,7.896,17396,7.896,17397,7.896,17398,7.3,17399,10.315,17400,7.3,17401,7.896]],["title/classes/ResolvedGroupDto.html",[0,0.232,10961,5.324]],["body/classes/ResolvedGroupDto.html",[0,0.28,2,0.918,3,0.019,4,0.019,5,0.01,7,0.124,27,0.55,29,0.645,30,0.001,31,0.693,32,0.187,33,0.619,34,1.994,47,0.935,95,0.151,99,1.374,101,0.014,103,0.001,104,0.001,127,1.032,165,0.83,461,1.884,618,3.368,1166,5.085,1249,6.275,1904,3.445,2095,3.267,2578,3.672,2997,6.897,3090,5.07,8421,7.613,8427,8.931,8434,6.449,8458,8.848,10908,8.931,10961,10.029,11046,6.897,11092,9.271,11104,7.203,11105,7.203,11106,7.613,11107,6.897,11108,7.613,11109,7.613,11219,9.469,17402,12.489,17403,10.6,17404,8.235,17405,8.235,17406,8.235,17407,8.235,17408,8.235]],["title/classes/ResolvedGroupUser.html",[0,0.232,11219,5.493]],["body/classes/ResolvedGroupUser.html",[0,0.319,2,1.044,3,0.022,4,0.022,5,0.011,7,0.141,27,0.513,29,0.734,30,0.001,31,0.525,32,0.169,33,0.453,95,0.148,99,1.563,101,0.016,103,0.001,104,0.001,127,1.173,165,0.9,405,3.062,461,2.844,496,5.25,595,3.136,1166,6.22,2181,6.807,4541,8.687,4552,6.962,7074,6.513,7574,6.543,11219,10.748,11304,8.657,11314,6.807,11315,7.135,17402,11.985,17409,11.492,17410,9.365]],["title/classes/ResolvedUserMapper.html",[0,0.232,17411,5.947]],["body/classes/ResolvedUserMapper.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.353,29,0.671,30,0.001,31,0.609,32,0.116,33,0.414,34,1.457,35,1.037,47,0.852,95,0.14,99,1.43,100,3.64,101,0.014,103,0.001,104,0.001,144,2.356,217,1.115,227,1.127,234,1.391,319,2.561,461,2.965,496,5.303,627,3.664,738,4.455,975,6.027,982,4.271,1849,6.303,3110,5.953,3146,5.692,3147,5.529,4572,6.102,6410,7.176,7064,7.494,7083,6.921,12879,7.921,12882,7.921,15265,7.921,16341,7.921,17411,9.509,17412,10.872,17413,9.509,17414,8.568,17415,10.519,17416,8.568,17417,8.568,17418,8.568,17419,8.568,17420,8.568,17421,8.568,17422,8.568]],["title/classes/ResolvedUserResponse.html",[0,0.232,17415,5.694]],["body/classes/ResolvedUserResponse.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,27,0.554,30,0.001,31,0.451,32,0.185,34,2.088,47,0.991,83,3.755,95,0.103,101,0.017,103,0.001,104,0.001,165,0.818,364,2.449,376,1.842,467,3.716,496,4.897,591,5.041,592,5.254,851,5.531,852,5.531,1849,5.82,3110,5.781,4205,3.909,11317,6.506,17415,8.751,17423,13.592,17424,8.054,17425,8.054,17426,8.054,17427,8.054,17428,8.054,17429,8.054,17430,8.054,17431,8.054]],["title/classes/ResponseInfo.html",[0,0.232,17361,5.947]],["body/classes/ResponseInfo.html",[0,0.33,2,0.801,3,0.017,4,0.017,5,0.009,7,0.108,27,0.399,29,0.562,30,0.001,31,0.542,32,0.132,33,0.347,47,0.836,55,2.36,95,0.141,101,0.018,103,0.001,104,0.001,111,1.439,127,0.899,145,1.818,165,0.758,167,2.642,217,1.678,227,1.004,234,1.779,235,6.184,238,4.015,359,2.503,367,5.593,576,5.465,1016,4.604,1182,7.395,1202,5.622,1345,2.848,1414,4.015,1695,4.57,1763,5.218,1770,6.813,2579,6.895,3580,3.942,3909,5.47,5435,7.582,5451,5.337,5461,5.47,6614,7.916,6616,4.303,10253,5.337,16781,6.279,17337,6.279,17338,6.636,17339,6.636,17340,6.636,17342,6.636,17348,6.636,17350,10.842,17351,6.279,17352,6.636,17353,8.951,17354,6.012,17355,6.279,17356,8.951,17357,8.951,17358,6.636,17359,8.951,17360,6.636,17361,8.469,17362,8.951,17363,6.636,17364,8.951,17365,8.951,17366,8.951,17367,8.951,17368,6.636,17369,6.636,17370,6.636,17371,6.636,17372,6.636,17373,6.636,17374,6.636,17375,6.636,17376,6.636,17377,6.636,17378,6.636,17379,6.636,17380,6.636,17381,6.636,17382,6.636,17383,6.636,17384,6.636,17385,6.636,17432,9.683]],["title/injectables/RestartUserLoginMigrationUc.html",[105,0.91,17433,5.694]],["body/injectables/RestartUserLoginMigrationUc.html",[0,0.225,3,0.016,4,0.016,5,0.008,7,0.1,8,1.106,27,0.433,29,0.822,30,0.001,31,0.588,32,0.143,33,0.508,35,1.108,36,2.43,39,2.465,47,0.967,95,0.165,99,1.104,101,0.011,103,0.001,104,0.001,105,1.225,107,1.594,111,2.272,112,2.713,127,1.147,129,7.032,132,6.775,167,2.434,189,5.075,191,3.666,192,3.129,199,3.46,204,2.244,216,2.096,217,1.367,221,2.754,227,0.686,234,1.486,305,2.608,355,5.169,461,2.887,766,2.766,843,2.918,1464,3.046,1467,2.111,1795,4.948,1801,3.964,1884,6.82,1982,3.964,1988,6.806,2356,5.184,2725,2.996,4154,7.169,4176,5.179,4184,4.463,4205,4.401,4476,5.053,4478,5.342,4481,5.342,4482,8.765,4489,5.907,4491,7.032,4492,4.916,4493,7.169,4494,5.039,4495,5.179,4496,5.538,4498,7.169,4500,5.538,4501,4.916,4508,5.039,4509,5.538,8807,5.179,11224,5.179,17433,7.667,17434,11.333,17435,8.007,17436,6.613,17437,6.613,17438,9.155,17439,6.613,17440,5.538,17441,6.613,17442,6.613,17443,6.113,17444,5.784]],["title/classes/RevokeConsentParams.html",[0,0.232,15882,5.947]],["body/classes/RevokeConsentParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,34,1.992,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,361,6.491,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,470,4.898,479,7.179,3580,5.464,5438,7.664,15882,10.242,17445,11.709,17446,9.657,17447,9.657]],["title/classes/RichText.html",[0,0.232,17448,5.493]],["body/classes/RichText.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.492,29,0.671,30,0.001,31,0.48,32,0.187,33,0.414,47,0.775,95,0.153,101,0.014,103,0.001,104,0.001,127,1.362,165,0.852,364,1.98,376,1.96,379,2.464,467,3.133,565,5.419,966,4.359,1013,4.979,1031,3.407,2268,6.803,2303,5.369,2553,5.354,2578,3.82,2847,9.337,2848,6.063,3259,6.69,3448,5.253,5641,7.921,12444,7.176,17448,10.472,17449,12.561,17450,8.568,17451,8.568,17452,8.568,17453,8.568,17454,8.568,17455,8.568,17456,8.568]],["title/classes/RichTextContentBody.html",[0,0.232,5646,4.517]],["body/classes/RichTextContentBody.html",[0,0.456,2,0.651,3,0.014,4,0.014,5,0.007,7,0.088,9,2.751,27,0.346,30,0.001,31,0.636,32,0.186,47,0.843,83,1.786,95,0.138,99,0.974,101,0.022,103,0,104,0,144,3.123,150,2.021,163,1.796,165,0.657,240,1.852,364,1.527,369,1.295,374,1.863,375,3.737,376,1.335,379,1.9,404,2.046,467,3.593,470,4.75,471,3.976,524,3.357,999,5.336,1000,3.413,1031,1.829,1044,2.8,1770,3.39,2303,4.603,2553,4.57,2584,4.078,2848,4.735,2849,2.525,2889,2.89,3251,3.461,3253,3.461,3259,6.101,3262,2.991,3267,3.265,4009,3.716,4037,3.716,4038,7.047,4096,5.748,5562,6.33,5564,6.33,5566,6.33,5568,6.33,5570,6.33,5604,3.82,5643,6.517,5644,6.517,5645,6.517,5646,7.123,5647,6.517,5835,3.668,5836,6.811,6979,3.878,7039,3.716,8169,8.219,8170,6.733,8171,4.006,8174,6.517,8175,6.517,8176,4.006,8177,6.517,8178,3.579,8179,3.94,8180,6.517,8181,6.517,8182,3.878,8183,3.878,8184,3.878,8185,3.878,8186,4.006,8187,4.006,8188,4.006,8189,4.006,8190,4.006,17457,5.837,17458,5.837,17459,5.837]],["title/classes/RichTextElement.html",[0,0.232,2835,4.387]],["body/classes/RichTextElement.html",[0,0.212,2,0.693,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,27,0.549,29,0.971,30,0.001,31,0.695,32,0.175,33,0.6,35,1.559,36,1.88,47,0.829,55,1.888,59,1.936,95,0.13,101,0.017,103,0.001,104,0.001,112,2.238,116,2.731,144,3.034,148,3.714,165,0.687,208,2.322,221,1.439,227,1.144,334,0.668,347,2.054,363,5.58,371,1.714,404,1.83,595,2.935,596,3.863,661,3.684,687,2.649,692,3.275,728,3.353,806,2.53,884,4.131,1345,2.466,1790,3.701,1793,6.553,1865,3.993,2545,3.306,2557,5.9,2627,2.612,2749,7.805,2752,6.243,2753,6.243,2754,6.243,2755,7.328,2756,6.243,2758,4.129,2759,5.375,2760,6.472,2762,6.125,2763,5.375,2764,6.344,2766,4.342,2767,4.627,2769,6.381,2770,4.342,2774,4.342,2776,4.129,2804,5.313,2835,7.117,2848,6.216,3259,6.736,3944,5.746,3945,4.518,3946,4.518,3947,4.518,3956,3.905,4723,5.746,8634,4.426,17460,10.752,17461,6.215,17462,6.215,17463,5.746,17464,6.215,17465,5.746,17466,6.215,17467,6.215,17468,6.215,17469,6.215,17470,8.104,17471,5.746,17472,8.104,17473,5.746,17474,5.746,17475,5.746,17476,5.436,17477,5.746]],["title/classes/RichTextElementContent.html",[0,0.232,17478,5.694]],["body/classes/RichTextElementContent.html",[0,0.359,2,0.911,3,0.019,4,0.019,5,0.01,7,0.123,27,0.481,29,0.64,30,0.001,31,0.458,32,0.178,33,0.395,34,1.986,47,0.833,95,0.15,99,1.363,101,0.018,103,0.001,104,0.001,127,1.463,165,0.826,364,1.921,376,1.869,467,3.575,475,3.993,618,3.34,966,4.156,1031,2.56,2303,4.733,2578,3.642,2848,6.578,2884,4.345,2885,4.345,2889,4.045,3259,6.961,3436,5.707,3448,5.008,3694,6.924,3698,6.125,3702,5.427,3704,5.427,3979,8.034,4096,6.26,5566,5.271,8650,6.598,9849,7.145,9850,7.551,17478,10.955,17479,11.407,17480,6.841,17481,6.841]],["title/classes/RichTextElementContentBody.html",[0,0.232,8177,4.517]],["body/classes/RichTextElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.314,5566,6.905,5568,6.314,5570,6.314,5604,3.804,5643,6.502,5644,6.502,5645,6.502,5646,7.109,5647,6.502,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,6.502,8176,3.989,8177,7.109,8178,3.563,8179,3.923,8180,6.502,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,17482,5.812,17483,5.812]],["title/entities/RichTextElementNode.html",[380,1.445,3186,5.324]],["body/entities/RichTextElementNode.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.127,27,0.443,30,0.001,32,0.146,47,0.845,95,0.166,96,2.305,101,0.018,103,0.001,104,0.001,165,0.842,208,3.147,217,1.096,227,0.874,240,4.091,334,0.905,364,1.959,380,2.285,381,2.802,398,2.482,404,1.938,405,2.245,617,4.67,1790,4.541,2545,4.481,2553,5.051,2557,5.258,2577,4.755,2578,3.756,2848,6.471,3143,5.634,3155,6.447,3186,8.423,3222,5.166,3245,9.408,3259,7.005,3391,5.514,3598,6.595,3619,5.228,4059,5.363,4061,5.363,8660,7.369,17480,7.056,17481,7.056,17484,10.953,17485,8.425,17486,9.408,17487,7.788,17488,7.788,17489,7.788]],["title/interfaces/RichTextElementNodeProps.html",[334,0.731,17486,5.947]],["body/interfaces/RichTextElementNodeProps.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.13,30,0.001,32,0.148,47,0.897,95,0.167,96,2.354,101,0.018,103,0.001,104,0.001,165,0.854,208,3.215,217,1.12,227,0.892,240,3.796,334,0.924,336,2.059,380,2.316,398,2.535,404,2.156,405,2.293,617,4.77,1790,4.603,2545,4.577,2553,3.668,2557,5.329,2577,4.856,2578,3.837,2848,6.401,3143,5.71,3155,6.534,3186,6.738,3222,5.276,3245,9.535,3259,7.154,3391,5.632,3598,7.337,3619,5.34,4059,5.477,4061,5.477,17480,7.206,17481,7.206,17484,7.955,17486,10.466,17487,7.955,17488,7.955,17489,7.955]],["title/interfaces/RichTextElementProps.html",[334,0.731,17476,5.947]],["body/interfaces/RichTextElementProps.html",[0,0.285,3,0.02,4,0.02,5,0.01,7,0.126,30,0.001,32,0.16,36,1.792,47,0.917,95,0.152,101,0.02,103,0.001,104,0.001,112,1.841,144,2.942,148,2.571,165,0.838,208,3.121,221,1.934,227,1.29,334,0.898,336,1.999,347,1.69,371,2.304,404,2.127,687,3.561,728,4.091,806,3.402,1345,3.315,1865,4.873,2545,4.444,2627,3.511,2749,6.484,2755,5.551,2759,5.123,2760,6.278,2763,5.123,2764,6.153,2804,7.153,2835,7.615,2848,6.352,3259,7.166,3956,5.25,8634,5.95,17460,7.724,17470,9.89,17471,7.724,17472,9.89,17473,7.724,17474,7.724,17475,7.724,17476,9.358,17477,7.724]],["title/classes/RichTextElementResponse.html",[0,0.232,3979,5.181]],["body/classes/RichTextElementResponse.html",[0,0.346,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,27,0.517,29,0.604,30,0.001,31,0.432,32,0.185,33,0.373,34,2.134,47,0.81,95,0.146,99,1.288,101,0.017,103,0.001,104,0.001,127,1.423,165,0.796,364,2.199,376,1.765,467,3.537,475,3.771,618,3.155,966,3.925,1031,2.418,2303,5.085,2578,3.44,2848,6.507,2883,5.049,2884,5.404,2885,5.404,2888,4.676,2889,5.031,3259,6.474,3436,5.39,3448,4.73,3694,7.437,3698,6.598,3702,5.126,3704,5.126,3979,9.557,4096,6.725,5566,6.555,9862,6.748,9863,6.748,9864,6.748,9865,6.748,9866,6.748,17478,10.109,17479,11.906,17480,6.461,17481,6.461]],["title/classes/RichTextElementResponseMapper.html",[0,0.232,5585,5.947]],["body/classes/RichTextElementResponseMapper.html",[0,0.258,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.494,29,0.786,30,0.001,31,0.562,32,0.163,33,0.485,34,1.288,35,1.362,95,0.154,99,1.263,100,2.535,101,0.013,103,0.001,104,0.001,111,2.256,116,2.358,165,0.786,214,3.163,217,0.985,227,1.167,234,1.945,347,2.029,591,3.29,627,3.931,806,3.082,974,4.488,975,5.562,1750,4.45,2051,4.312,2303,3.069,2547,8.365,2550,7.856,2551,7.856,2553,5.657,2554,7.644,2835,8.563,2848,6.309,3259,3.907,3694,4.488,3698,5.827,3707,6.34,3715,5.391,3979,9.129,4096,4.058,4871,6.998,5183,7.07,5566,4.885,5581,5.928,5585,11.431,8672,9.129,8676,6.115,8677,6.115,8678,6.115,17478,8.402,17490,12.466,17491,7.57,17492,7.57,17493,7.57,17494,7.57,17495,6.998,17496,11.253,17497,7.57]],["title/classes/RocketChatError.html",[0,0.232,1181,5.493]],["body/classes/RocketChatError.html",[0,0.191,2,0.386,3,0.008,4,0.008,5,0.004,7,0.052,27,0.336,29,0.271,30,0.001,31,0.502,32,0.137,33,0.167,34,1.525,36,2.789,39,3.412,47,1,51,3.961,55,1.757,72,2.545,83,1.719,87,3.557,95,0.105,101,0.014,103,0,104,0,105,0.752,111,2.541,112,2.867,116,3.88,127,0.704,148,1.066,165,0.44,187,0.501,204,2.405,216,1.039,217,1.371,221,2.222,227,1.363,234,1.456,305,2.554,334,0.762,347,1.942,351,4.499,359,1.208,369,0.769,404,1.012,461,1.621,535,3.8,543,4.149,564,2.06,692,1.294,701,1.225,720,1.887,728,2.711,731,4.42,839,1.652,853,1.788,874,4.001,953,4.639,1016,3.371,1035,2.42,1151,8.169,1152,7.242,1153,2.901,1154,4.952,1155,2.012,1156,6.214,1157,2.267,1158,2.712,1159,2.639,1160,4.4,1161,3.856,1162,4.4,1163,4.4,1164,4.4,1165,4.539,1166,1.662,1167,3.088,1168,2.901,1169,2.901,1170,2.901,1171,2.901,1172,2.901,1173,2.901,1174,2.518,1175,2.901,1176,2.901,1177,2.901,1178,2.235,1179,8.04,1180,1.491,1181,4.539,1182,4.784,1183,2.42,1184,1.92,1185,5.048,1186,4.705,1187,5.334,1188,5.271,1189,5.271,1190,5.576,1191,6.236,1192,7.854,1193,6.48,1194,5.936,1195,2.639,1196,2.901,1197,2.901,1198,2.42,1199,2.901,1200,2.901,1201,2.901,1202,2.712,1203,2.901,1204,5.551,1205,2.798,1206,2.901,1207,2.901,1208,2.901,1209,2.798,1210,2.901,1211,2.901,1212,2.901,1213,8.469,1214,2.901,1215,2.901,1216,1.357,1217,2.901,1218,2.901,1219,2.901,1220,2.901,1221,2.901,1222,2.901,1223,2.901,1224,2.901,1225,8.04,1226,8.04,1227,2.901,1228,2.901,1229,2.901,1230,2.901,1231,2.901,1232,2.901,1233,2.377,1234,2.901,1235,2.901,1236,2.901,1237,2.901,1238,2.901,1239,2.901,1240,2.901,1241,2.901,1242,2.901,1243,2.901,1244,2.901,1245,2.901,1246,2.901,1247,2.901,1248,4.281,1249,4.281,1250,2.901,1251,2.901,1252,2.901,1253,2.901,1254,2.901,1255,2.338,1256,2.901,1257,2.901,1258,2.901,1259,4.705,1260,2.901,1261,4.705,1262,4.705,1263,2.901,1264,2.901,1265,2.639,1266,5.936,1267,4.709,1268,4.346,1269,2.901,1270,3.331,1271,5.191,1272,4.281,1273,5.551,1274,5.936,1275,5.936,1276,5.936,1277,2.712,1278,2.901,1279,2.901,1280,2.901,1281,7.508,1282,5.936,1283,5.936,1284,5.936,1285,2.901,1286,4.705,1287,4.705,1288,2.901,1289,2.901,1290,2.901,1291,2.901,1292,2.901,1293,4.705,1294,4.4,2362,1.992,17498,5.619,17499,3.464,17500,3.464]],["title/interfaces/RocketChatGroupModel.html",[334,0.731,1165,5.493]],["body/interfaces/RocketChatGroupModel.html",[0,0.195,3,0.008,4,0.008,5,0.004,7,0.054,30,0.001,31,0.463,32,0.139,34,1.544,36,2.8,39,3.428,47,1.001,51,4.016,55,1.551,72,2.594,83,1.752,87,3.614,95,0.106,101,0.014,103,0,104,0,105,0.766,111,2.393,112,2.878,116,3.899,127,0.444,138,2.501,148,1.091,165,0.449,187,0.513,204,1.943,216,1.059,217,1.383,221,2.246,227,1.367,234,1.473,305,2.585,334,0.774,336,0.849,347,2.15,351,4.554,359,1.236,369,0.787,404,0.639,461,1.648,535,3.861,543,4.207,564,2.099,692,1.325,701,1.254,720,1.932,728,2.754,731,4.453,839,1.691,853,1.83,874,4.078,953,4.714,1016,2.903,1035,2.477,1151,8.249,1152,2.864,1153,2.97,1154,5.032,1155,2.06,1156,6.3,1157,2.321,1158,2.777,1159,2.702,1160,4.484,1161,3.93,1162,4.484,1163,4.484,1164,4.484,1165,5.818,1166,3.967,1167,3.147,1168,2.97,1169,2.97,1170,2.97,1171,2.97,1172,2.97,1173,2.97,1174,2.578,1175,2.97,1176,2.97,1177,2.97,1178,5.335,1179,7.599,1180,1.526,1181,2.864,1182,2.393,1183,2.477,1184,1.966,1185,2.525,1186,2.97,1187,5.374,1188,5.311,1189,5.311,1190,5.618,1191,6.28,1192,7.909,1193,6.55,1194,6.032,1195,2.702,1196,2.97,1197,2.97,1198,2.477,1199,2.97,1200,2.97,1201,2.97,1202,2.777,1203,2.97,1204,5.64,1205,2.864,1206,2.97,1207,2.97,1208,2.97,1209,2.864,1210,2.97,1211,2.97,1212,2.97,1213,8.552,1214,2.97,1215,2.97,1216,1.389,1217,2.97,1218,2.97,1219,2.97,1220,2.97,1221,2.97,1222,2.97,1223,2.97,1224,2.97,1225,8.127,1226,8.127,1227,2.97,1228,2.97,1229,2.97,1230,2.97,1231,2.97,1232,2.97,1233,2.434,1234,2.97,1235,2.97,1236,2.97,1237,2.97,1238,2.97,1239,2.97,1240,2.97,1241,2.97,1242,2.97,1243,2.97,1244,2.97,1245,2.97,1246,2.97,1247,2.97,1248,4.363,1249,4.363,1250,2.97,1251,2.97,1252,2.97,1253,2.97,1254,2.97,1255,2.393,1256,2.97,1257,2.97,1258,2.97,1259,4.796,1260,2.97,1261,4.796,1262,4.796,1263,2.97,1264,2.97,1265,2.702,1266,6.032,1267,4.785,1268,4.416,1269,2.97,1270,3.395,1271,5.263,1272,4.363,1273,5.64,1274,6.032,1275,6.032,1276,6.032,1277,2.777,1278,2.97,1279,2.97,1280,2.97,1281,7.599,1282,6.032,1283,6.032,1284,6.032,1285,2.97,1286,4.796,1287,4.796,1288,2.97,1289,2.97,1290,2.97,1291,2.97,1292,2.97,1293,4.796,1294,4.484]],["title/modules/RocketChatModule.html",[425,1.812,17501,5.493]],["body/modules/RocketChatModule.html",[0,0.317,3,0.022,4,0.022,5,0.011,8,1.126,27,0.384,29,0.73,30,0.001,31,0.522,32,0.127,33,0.451,35,1.128,95,0.159,101,0.016,103,0.001,104,0.001,187,1.348,227,0.967,425,3.306,427,3.367,432,3.43,433,3.523,449,3.698,627,3.516,701,4.052,836,5.414,1152,9.257,1155,5.414,1160,10.136,1209,10.023,1297,6.776,1298,7.865,1301,8.244,1307,6.638,3917,7.734,17501,10.023,17502,9.322,17503,9.322,17504,8.153,17505,9.322,17506,9.322]],["title/interfaces/RocketChatOptions.html",[334,0.731,1160,5.324]],["body/interfaces/RocketChatOptions.html",[0,0.191,3,0.008,4,0.008,5,0.004,7,0.052,30,0.001,31,0.456,32,0.143,33,0.541,34,1.524,36,2.788,39,3.411,47,1.008,51,3.957,55,1.525,72,2.542,83,1.717,87,3.553,95,0.105,101,0.014,103,0,104,0,105,0.751,111,2.378,112,2.866,116,3.879,127,0.433,148,1.064,165,0.439,187,0.5,204,1.904,216,1.037,217,1.37,221,2.22,227,1.362,234,1.454,305,2.552,334,0.761,336,0.827,347,1.94,351,4.495,359,1.206,369,0.767,404,0.623,461,1.62,535,3.796,543,4.145,564,2.057,692,1.292,701,1.222,720,1.884,728,2.708,731,4.417,839,1.649,853,1.784,874,6.379,953,4.634,1016,2.86,1035,2.416,1151,8.163,1152,2.793,1153,2.896,1154,4.947,1155,2.008,1156,6.207,1157,2.263,1158,2.708,1159,2.634,1160,5.544,1161,6.148,1162,7.014,1163,7.014,1164,7.014,1165,4.532,1166,1.659,1167,3.084,1168,2.896,1169,2.896,1170,2.896,1171,2.896,1172,2.896,1173,2.896,1174,2.513,1175,2.896,1176,2.896,1177,2.896,1178,2.231,1179,7.501,1180,1.488,1181,2.793,1182,2.334,1183,2.416,1184,1.917,1185,2.462,1186,2.896,1187,5.331,1188,5.268,1189,5.268,1190,5.573,1191,6.233,1192,7.85,1193,6.475,1194,5.93,1195,2.634,1196,2.896,1197,2.896,1198,2.416,1199,2.896,1200,2.896,1201,2.896,1202,2.708,1203,2.896,1204,5.544,1205,2.793,1206,2.896,1207,2.896,1208,2.896,1209,2.793,1210,2.896,1211,2.896,1212,2.896,1213,8.463,1214,2.896,1215,2.896,1216,1.355,1217,2.896,1218,2.896,1219,2.896,1220,2.896,1221,2.896,1222,2.896,1223,2.896,1224,2.896,1225,8.034,1226,8.034,1227,2.896,1228,2.896,1229,2.896,1230,2.896,1231,2.896,1232,2.896,1233,2.373,1234,2.896,1235,2.896,1236,2.896,1237,2.896,1238,2.896,1239,2.896,1240,2.896,1241,2.896,1242,2.896,1243,2.896,1244,2.896,1245,2.896,1246,2.896,1247,2.896,1248,4.275,1249,4.275,1250,2.896,1251,2.896,1252,2.896,1253,2.896,1254,2.896,1255,2.334,1256,2.896,1257,2.896,1258,2.896,1259,4.699,1260,2.896,1261,4.699,1262,4.699,1263,2.896,1264,2.896,1265,2.634,1266,5.93,1267,4.704,1268,4.341,1269,2.896,1270,3.327,1271,5.186,1272,4.275,1273,5.544,1274,5.93,1275,5.93,1276,5.93,1277,2.708,1278,2.896,1279,2.896,1280,2.896,1281,7.501,1282,5.93,1283,5.93,1284,5.93,1285,2.896,1286,4.699,1287,4.699,1288,2.896,1289,2.896,1290,2.896,1291,2.896,1292,2.896,1293,4.699,1294,4.394]],["title/entities/Role.html",[380,1.445,496,2.871]],["body/entities/Role.html",[0,0.265,3,0.018,4,0.018,5,0.009,7,0.117,27,0.47,30,0.001,31,0.678,32,0.139,47,0.728,95,0.146,96,2.127,101,0.017,103,0.001,104,0.001,116,2.422,144,2.808,165,0.8,217,1.484,227,0.806,234,1.966,240,3.841,305,2.215,319,3.052,334,1.097,364,2.077,380,2.423,381,2.586,394,5.817,398,2.291,399,4.051,400,3.431,402,3.222,404,1.401,405,2.072,406,2.529,496,5.309,843,5.343,1019,4.516,1843,3.685,1849,6.602,2095,3.085,2636,5.564,2640,5.564,3110,6.268,4052,4.562,4281,3.396,4571,6.598,7150,6.28,8921,6.8,9934,7.59,9964,7.996,12158,8.931,12159,7.187,12160,6.511,12161,6.28,12162,6.511,12163,6.28,12164,7.187,12165,6.511,12166,7.187,12167,9.439,12168,7.187,12169,8.551,12170,6.28,17507,7.775,17508,7.775,17509,7.775,17510,7.775]],["title/classes/RoleDto.html",[0,0.232,4541,4.751]],["body/classes/RoleDto.html",[0,0.315,2,1.032,3,0.022,4,0.022,5,0.011,7,0.14,26,2.623,27,0.532,29,0.725,30,0.001,31,0.723,32,0.176,33,0.641,34,2.104,95,0.119,99,1.545,101,0.015,103,0.001,104,0.001,127,1.16,165,0.894,405,3.041,595,3.1,618,3.786,619,5.132,843,5.459,1849,6.208,2095,3.673,4281,4.044,4541,9.266,4571,6.741,9934,6.882,9964,7.249,17511,9.257,17512,11.411,17513,9.257,17514,9.257]],["title/classes/RoleMapper.html",[0,0.232,17515,5.947]],["body/classes/RoleMapper.html",[0,0.309,2,1.011,3,0.021,4,0.021,5,0.011,7,0.137,8,1.361,27,0.465,29,0.883,30,0.001,31,0.686,32,0.153,33,0.545,34,1.543,35,1.364,95,0.145,99,1.514,101,0.015,103,0.001,104,0.001,227,1.168,234,1.473,380,1.927,496,5.753,627,4.123,1849,4.551,4369,5.852,4370,7.102,4541,9.388,4552,6.742,17515,9.855,17516,9.07,17517,9.855,17518,9.436,17519,11.267,17520,9.07,17521,9.07,17522,9.436,17523,9.07,17524,9.07,17525,9.07,17526,7.933]],["title/modules/RoleModule.html",[425,1.812,1547,5.055]],["body/modules/RoleModule.html",[0,0.299,3,0.021,4,0.021,5,0.011,30,0.001,95,0.163,101,0.015,103,0.001,104,0.001,187,1.272,425,3.22,427,3.176,428,3.417,429,3.518,430,3.503,431,3.488,432,4.447,433,4.568,442,4.422,443,3.445,444,3.362,450,3.612,1547,10.496,4652,10.452,4674,7.363,17527,8.793,17528,8.793,17529,8.793,17530,11.775,17531,12.298,17532,8.793,17533,8.793]],["title/classes/RoleNameMapper.html",[0,0.232,12862,5.947]],["body/classes/RoleNameMapper.html",[0,0.287,2,0.939,3,0.02,4,0.02,5,0.01,7,0.127,8,1.299,27,0.443,29,0.842,30,0.001,31,0.699,32,0.146,33,0.52,35,1.302,95,0.138,99,1.406,101,0.014,103,0.001,104,0.001,227,1.368,305,3.064,496,4.541,529,3.662,627,4.047,975,5.963,982,4.199,1904,3.524,4476,5.283,4571,7.469,9718,7.146,9719,7.26,10673,11.539,12011,10.328,12012,8.195,12836,9.027,12862,9.408,12913,8.423,17534,11.849,17535,8.425,17536,9.943,17537,10.756,17538,8.425,17539,10.756,17540,8.425,17541,7.788,17542,7.788,17543,7.788,17544,8.425,17545,8.425,17546,8.425]],["title/classes/RoleReference.html",[0,0.232,7080,4.589]],["body/classes/RoleReference.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,26,2.647,27,0.515,29,0.74,30,0.001,31,0.728,32,0.17,33,0.457,34,2.124,95,0.148,101,0.016,103,0.001,104,0.001,127,1.184,165,0.905,208,3.531,334,1.016,405,3.08,595,3.165,618,3.866,619,5.24,2095,3.75,3449,8.268,4281,4.129,4571,6.804,7080,9.004,17547,13.007,17548,11.558,17549,9.453]],["title/injectables/RoleRepo.html",[105,0.91,17530,5.694]],["body/injectables/RoleRepo.html",[0,0.212,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,10,3.538,12,4.015,18,4.429,26,2.339,27,0.531,29,0.971,30,0.001,31,0.731,32,0.172,33,0.6,34,1.728,35,1.501,36,2.999,40,4.232,47,0.724,55,1.339,95,0.13,99,1.037,101,0.01,103,0.001,104,0.001,105,1.173,107,1.498,112,3.015,144,1.709,165,0.687,187,0.899,217,1.436,227,1.206,319,1.858,380,1.321,381,2.916,404,1.58,496,3.701,596,3.365,692,4.931,770,5.198,877,7.278,883,3.719,884,4.131,885,5.132,908,3.811,909,5.44,910,3.811,911,3.857,913,3.811,914,3.857,915,3.445,3309,7.342,3326,7.668,3675,4.266,3872,8.637,4571,6.759,5022,5.58,8994,7.342,9002,7.342,17530,7.342,17550,6.215,17551,9.389,17552,7.668,17553,6.215,17554,6.215,17555,7.668,17556,6.215,17557,8.104,17558,6.215,17559,6.215,17560,8.767,17561,10.197,17562,8.767]],["title/injectables/RoleService.html",[105,0.91,4652,5.055]],["body/injectables/RoleService.html",[0,0.248,3,0.017,4,0.017,5,0.009,7,0.11,8,1.182,12,4.483,26,2.745,27,0.508,29,0.925,30,0.001,31,0.661,32,0.16,33,0.571,34,1.241,35,1.429,36,2.822,40,4.725,95,0.158,99,1.218,101,0.012,103,0.001,104,0.001,105,1.309,107,1.759,112,3.016,127,0.914,187,1.055,215,2.329,216,1.349,217,1.685,221,2.733,227,1.224,380,1.55,381,2.427,450,2.997,496,4.985,770,4.326,3110,3.637,3309,8.198,3326,8.562,4541,9.047,4571,6.434,4652,7.277,5022,4.644,9718,4.847,17515,6.381,17530,10.616,17552,8.562,17555,8.562,17563,7.296,17564,11.806,17565,7.296,17566,7.296,17567,7.296,17568,7.296,17569,7.296,17570,7.296,17571,7.296,17572,7.296,17573,12.677,17574,7.296,17575,7.296,17576,7.296,17577,7.296,17578,7.296,17579,7.296,17580,7.296]],["title/injectables/RoleUc.html",[105,0.91,17531,5.947]],["body/injectables/RoleUc.html",[0,0.311,3,0.022,4,0.022,5,0.011,7,0.138,8,1.367,27,0.467,29,0.886,30,0.001,31,0.634,32,0.154,33,0.547,35,1.105,36,2.833,95,0.165,99,1.524,101,0.015,103,0.001,104,0.001,105,1.514,107,2.201,112,2.71,127,1.144,187,1.321,215,2.915,216,1.688,217,1.188,227,0.947,4541,6.38,4552,6.788,4571,7.003,4652,10.006,4674,7.647,5022,5.812,17531,9.896,17552,9.896,17555,9.896,17581,9.131,17582,9.131,17583,9.131,17584,9.131,17585,9.131]],["title/injectables/RoomBoardDTOFactory.html",[105,0.91,8148,5.493]],["body/injectables/RoomBoardDTOFactory.html",[0,0.242,3,0.011,4,0.011,5,0.006,7,0.07,8,0.857,27,0.292,29,0.556,30,0.001,31,0.481,32,0.163,33,0.343,34,1.206,35,0.564,95,0.14,99,0.777,100,3.216,101,0.008,103,0.001,104,0,105,0.949,107,1.122,111,2.486,127,1.076,138,3.098,187,0.673,188,3.547,216,1.311,217,1.76,227,1.319,234,1.152,347,1.434,369,1.574,371,1.956,461,2.836,564,3.992,591,3.083,592,3.213,806,1.896,843,2.055,1041,3.967,1233,3.196,1397,2.375,1750,5.022,1798,4.003,1799,2.822,1814,3.196,1884,5.885,2130,2.034,2131,2.276,2132,2.194,2303,4.414,2553,1.985,2627,5.403,2647,4.534,2649,4.608,2651,7.755,2654,5.403,2656,6.117,2659,2.181,2667,8.656,2725,2.11,2735,3.548,2736,3.048,3001,3.548,3036,9.04,3037,5.939,3041,5.939,3044,3.9,3063,4.073,3441,3.9,3451,3.253,3452,2.926,3455,3.9,3753,2.89,3771,5.707,3859,2.604,4466,4.989,5049,3.9,6365,5.707,6916,3.9,7420,8.417,7574,3.253,7714,4.073,8053,6.203,8054,7.941,8055,4.305,8056,9.903,8057,10.067,8061,4.305,8062,4.305,8072,4.305,8073,10.067,8075,8.656,8076,4.305,8078,4.305,8083,4.305,8085,4.305,8087,4.305,8089,4.305,8091,3.385,8092,6.203,8093,6.203,8094,4.305,8095,4.305,8096,4.073,8097,6.556,8098,4.305,8099,6.556,8100,6.556,8101,4.305,8102,4.305,8103,4.305,8104,4.305,8105,4.305,8106,4.305,8107,4.305,8108,4.305,8109,4.305,8110,4.305,8111,6.556,8112,4.073,8113,4.305,8114,4.305,8115,4.305,8116,4.305,8117,7.941,8118,4.305,8119,4.305,8120,4.305,8121,4.073,8122,4.073,8123,6.556,8124,4.305,8125,4.305,8126,4.073,8127,4.073,8128,3.9,8129,4.073,8130,4.073,8131,4.305,8132,4.305,8133,4.305,8134,4.305,8135,4.305,8136,4.305,8137,4.073,8138,4.305,8139,4.305,8140,4.305,8141,4.305,8142,4.305,8143,4.305,8144,4.305,8145,4.305,8146,3.9,8147,4.305,8148,5.729,8149,7.941,8150,4.305,8151,4.305,17586,4.657,17587,4.657,17588,4.657,17589,4.657]],["title/injectables/RoomBoardResponseMapper.html",[105,0.91,13851,5.694]],["body/injectables/RoomBoardResponseMapper.html",[0,0.191,3,0.013,4,0.013,5,0.007,7,0.085,8,0.985,27,0.461,29,0.44,30,0.001,31,0.538,32,0.143,33,0.272,34,1.633,35,0.68,95,0.15,99,0.937,101,0.009,103,0,104,0,105,1.091,107,1.354,111,2.621,144,2.897,165,0.639,187,0.812,188,3.012,208,2.099,217,1.718,227,1.16,234,1.954,319,3.148,564,2.989,591,4.172,592,4.349,974,3.331,975,4.52,982,2.8,1041,5.891,1233,3.855,1397,2.73,2303,3.891,2627,5.282,2649,2.505,2655,4.337,2659,2.632,2731,6.829,2733,4.399,2735,4.28,2736,3.677,3435,11.221,3438,6.829,3439,6.829,3441,4.704,3445,5.193,3451,3.925,3452,3.53,3453,5.193,3454,5.193,3455,4.704,3706,7.538,3710,4.913,3753,3.486,3767,4.913,4466,4.736,5049,4.704,8075,9.367,8091,6.978,8092,8.396,8093,8.396,8122,7.132,8126,7.132,8127,4.913,8128,4.704,8129,4.913,8130,4.913,8137,7.132,8146,4.704,13851,6.829,17590,11.667,17591,9.6,17592,9.6,17593,9.6,17594,9.6,17595,5.193,17596,8.821,17597,5.193,17598,5.617,17599,5.617,17600,5.617,17601,5.617,17602,5.617,17603,5.617,17604,5.617,17605,5.617,17606,5.617,17607,5.617,17608,9.6,17609,5.617,17610,5.617,17611,5.617,17612,7.538,17613,5.617,17614,5.617,17615,5.617,17616,8.154,17617,5.617,17618,8.154,17619,5.617,17620,5.617,17621,5.617,17622,5.617,17623,5.617,17624,5.617,17625,5.617,17626,5.617,17627,5.617,17628,5.617,17629,5.617,17630,5.617,17631,5.617,17632,5.617,17633,5.617,17634,5.617,17635,8.154,17636,5.617,17637,5.617,17638,5.617,17639,5.617,17640,5.617,17641,8.154,17642,5.617,17643,5.617,17644,5.617,17645,5.617,17646,5.617,17647,5.617]],["title/classes/RoomElementUrlParams.html",[0,0.232,17648,5.947]],["body/classes/RoomElementUrlParams.html",[0,0.383,2,1.007,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,32,0.153,34,2.177,47,0.913,95,0.144,101,0.015,103,0.001,104,0.001,165,0.88,364,2.047,368,5.015,369,2.841,370,4.217,371,3.53,374,2.882,376,2.065,379,2.546,467,3.209,1000,4.98,1233,8.395,2553,4.789,3795,6.593,3833,7.711,4159,9.881,5691,8.347,5693,8.347,7420,9.515,17648,9.827,17649,12.232,17650,9.029]],["title/classes/RoomUrlParams.html",[0,0.232,17651,5.947]],["body/classes/RoomUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,1233,8.704,3795,5.749,7420,8.781,17651,10.332,17652,9.798,17653,9.798]],["title/injectables/RoomsAuthorisationService.html",[105,0.91,8057,5.324]],["body/injectables/RoomsAuthorisationService.html",[0,0.238,3,0.017,4,0.017,5,0.008,7,0.105,8,1.148,27,0.478,29,0.908,30,0.001,31,0.649,32,0.158,33,0.561,35,1.403,95,0.122,99,1.165,101,0.016,103,0.001,104,0.001,105,1.271,107,1.683,187,1.009,188,5.053,217,1.509,227,1.202,234,1.133,305,1.988,347,2.635,371,2.62,461,3.2,1031,2.187,1804,4.23,1805,4.637,1861,7.584,2449,4.79,2647,6.119,2649,5.708,2659,5.06,3228,4.443,5043,3.939,5055,4.014,8057,7.439,8128,5.845,11902,4.97,17654,6.98,17655,9.5,17656,9.5,17657,9.5,17658,9.5,17659,9.5,17660,6.98,17661,9.5,17662,6.98,17663,9.5,17664,6.98,17665,9.5,17666,6.98,17667,6.98,17668,9.5,17669,9.5,17670,6.98,17671,8.31,17672,6.98,17673,12.045,17674,6.98,17675,6.98,17676,6.98,17677,9.984,17678,9.5,17679,9.5,17680,8.782]],["title/controllers/RoomsController.html",[481,2.611,13854,5.947]],["body/controllers/RoomsController.html",[0,0.187,3,0.013,4,0.013,5,0.007,7,0.083,8,0.969,27,0.457,29,0.868,30,0.001,31,0.621,32,0.151,33,0.536,35,1.342,36,2.724,95,0.165,100,3.712,101,0.009,103,0,104,0,111,2.09,112,2.943,127,0.688,185,4.858,187,0.795,206,2.796,216,1.928,217,1.507,221,2.566,227,0.983,264,4.866,364,2.019,376,1.257,447,2.278,481,2.11,483,2.62,491,6.611,513,6.894,543,5.304,552,3.546,555,2.857,556,2.923,558,2.636,561,2.946,805,4.439,2627,3.372,2908,8.521,2929,3.16,2930,2.946,2964,7.938,2992,5.178,3009,3.33,3010,3.073,3709,3.651,3743,6.505,4466,4.661,6149,4.303,6386,4.439,6391,8.73,6620,5.08,6642,7.938,6695,7.938,7424,5.08,12248,3.771,13850,7.938,13851,6.72,13852,7.938,13854,7.019,13860,5.08,14139,8.163,14146,5.08,16543,9.117,16548,9.117,17596,4.602,17648,9.117,17651,11.111,17681,5.495,17682,9.479,17683,9.479,17684,9.479,17685,5.495,17686,5.495,17687,5.495,17688,5.495,17689,5.495,17690,5.495,17691,5.495,17692,8.025,17693,5.495,17694,5.495,17695,8.025,17696,5.495,17697,5.495,17698,8.025,17699,5.495,17700,4.602,17701,7.418,17702,5.495,17703,5.495,17704,5.495,17705,5.495,17706,5.495,17707,5.495,17708,5.495,17709,8.025,17710,5.495,17711,5.495,17712,5.495,17713,5.495,17714,5.495,17715,7.019,17716,5.495,17717,7.019,17718,5.495,17719,5.495,17720,5.495]],["title/injectables/RoomsService.html",[105,0.91,6647,5.493]],["body/injectables/RoomsService.html",[0,0.229,3,0.016,4,0.016,5,0.008,7,0.102,8,1.12,26,2.813,27,0.437,29,0.83,30,0.001,31,0.594,32,0.155,33,0.513,34,1.146,35,1.122,36,2.449,39,2.855,95,0.163,99,1.124,101,0.011,103,0.001,104,0.001,105,1.24,107,1.623,111,2.59,112,2.728,127,1.161,187,0.974,216,2.215,217,1.65,221,2.935,227,0.961,247,2.639,347,1.362,369,1.495,450,2.766,1233,8.495,1931,8.3,1957,5.131,2130,2.942,2131,3.292,2132,3.174,2627,5.33,2655,3.582,2656,6.602,2823,4.082,2887,4.796,2970,9.427,3014,5.44,3066,5.274,3570,10.244,3859,3.767,4794,6.226,4886,10.621,4895,6.226,5003,9.431,5056,6.226,6647,7.489,8112,5.891,17721,6.735,17722,9.271,17723,9.271,17724,6.735,17725,6.735,17726,9.271,17727,6.735,17728,9.271,17729,6.735,17730,6.735,17731,9.271,17732,6.735,17733,9.271,17734,11.977,17735,6.735,17736,6.735,17737,6.735,17738,6.226,17739,6.735,17740,6.735,17741,6.735,17742,6.735,17743,6.735]],["title/injectables/RoomsUc.html",[105,0.91,13852,5.694]],["body/injectables/RoomsUc.html",[0,0.202,3,0.014,4,0.014,5,0.007,7,0.089,8,1.023,26,2.973,27,0.445,29,0.845,30,0.001,31,0.605,32,0.147,33,0.522,35,1.197,36,2.547,39,3.587,95,0.157,99,0.988,101,0.01,103,0,104,0,105,1.133,107,1.428,111,2.382,112,2.806,127,1.061,187,0.857,188,4.388,208,2.213,216,2.197,217,1.702,221,3.057,227,0.614,234,1.375,305,2.413,347,2,369,1.314,441,7.331,450,2.433,461,2.469,676,5.345,1233,7.838,1930,7.2,2018,7.745,2553,2.525,2627,4.799,2783,3.55,2970,9.092,3961,5.257,4076,9.441,4159,7.989,6646,4.96,6647,9.88,6862,6.454,7420,6.298,8056,8.65,8057,8.452,8075,8.283,8096,5.181,8148,8.719,13852,7.095,17738,7.831,17744,5.923,17745,8.472,17746,8.472,17747,9.89,17748,5.923,17749,8.472,17750,5.923,17751,8.472,17752,9.89,17753,5.923,17754,5.923,17755,5.923,17756,5.923,17757,5.923,17758,9.89,17759,5.923,17760,5.923,17761,5.923,17762,8.472,17763,7.831,17764,8.472,17765,5.923,17766,5.923,17767,5.923,17768,5.923]],["title/interfaces/RpcMessage.html",[334,0.731,10512,5.055]],["body/interfaces/RpcMessage.html",[3,0.024,4,0.024,5,0.012,7,0.151,30,0.001,32,0.162,33,0.577,47,0.711,55,2.147,101,0.02,103,0.001,104,0.001,165,0.935,204,4.593,334,1.282,336,2.385,404,1.796,564,3.654,692,4.773,1216,5.305,8355,10.696,10512,8.872,11959,8.718,11960,9.214]],["title/classes/RpcMessageProducer.html",[0,0.232,10613,5.694]],["body/classes/RpcMessageProducer.html",[0,0.239,2,0.781,3,0.017,4,0.017,5,0.008,7,0.106,8,1.15,9,3.3,27,0.479,29,0.981,30,0.001,31,0.65,32,0.17,33,0.561,35,1.31,47,0.962,55,2.501,80,6.126,95,0.139,101,0.012,103,0.001,104,0.001,112,2.385,127,1.193,148,2.156,204,3.231,216,2.001,217,1.408,221,1.621,227,0.987,231,7.329,305,1.995,367,4.541,661,5.714,692,3.558,957,3.883,1016,3.799,1216,4.908,1312,7.535,1314,6.145,1337,5.658,1338,9.311,1345,4.606,1351,4.893,1352,4.519,1965,5.658,3901,8.74,3937,9.027,6887,5.091,8351,6.126,8353,6.475,10512,8.631,10613,7.975,10614,8.329,10615,8.329,10623,8.329,10625,8.329,10627,8.329,11959,10.621,17769,7.004,17770,7.004,17771,7.004,17772,7.004,17773,7.004,17774,7.004,17775,7.004,17776,7.004,17777,7.004,17778,7.004,17779,7.004,17780,7.004,17781,9.523,17782,7.004,17783,7.004,17784,6.475]],["title/interfaces/Rule.html",[334,0.731,2006,4.219]],["body/interfaces/Rule.html",[3,0.021,4,0.021,5,0.011,7,0.133,8,1.337,27,0.456,29,0.867,30,0.001,31,0.62,32,0.15,33,0.535,35,1.34,59,2.745,95,0.163,99,1.471,101,0.015,103,0.001,104,0.001,199,5.042,334,0.947,336,2.109,347,2.567,359,4.721,461,3.16,692,4.984,1787,5.118,1795,7.318,1820,5.468,1861,6.707,1872,5.118,1873,5.468,1874,6.275,1875,6.714,2002,7.14,2006,6.867,3385,7.352,3389,7.243,16823,7.707,17785,8.812,17786,8.812,17787,8.812]],["title/injectables/RuleManager.html",[105,0.91,1894,5.694]],["body/injectables/RuleManager.html",[0,0.204,3,0.014,4,0.014,5,0.007,7,0.091,8,1.033,27,0.448,29,0.78,30,0.001,31,0.558,32,0.162,33,0.482,35,1.035,95,0.153,99,1.002,101,0.01,103,0,104,0,105,1.144,107,1.447,111,2.766,116,3.103,127,1.071,165,0.67,187,0.868,199,4.104,216,2.517,217,1.113,227,0.887,234,1.389,247,2.352,305,2.437,359,4.002,461,2.626,905,2.499,1353,2.897,1787,6.308,1795,5.869,1872,6.308,1873,3.725,1874,4.274,1875,4.573,1886,10.283,1887,10.283,1888,9.919,1889,8.87,1891,10.283,1892,9.094,1893,9.919,1894,7.162,1895,10.283,1896,10.283,1897,9.919,1898,10.283,1899,10.283,1900,10.283,1906,8.988,2006,8.04,3228,5.444,17788,11.479,17789,6.002,17790,8.553,17791,8.553,17792,6.002,17793,9.964,17794,8.553,17795,8.553,17796,6.002,17797,8.553,17798,6.002,17799,6.002,17800,6.002,17801,6.002,17802,6.002,17803,6.002,17804,6.002,17805,6.002,17806,6.002,17807,6.002,17808,6.002,17809,6.002,17810,6.002,17811,6.002,17812,6.002,17813,6.002,17814,6.002,17815,6.002,17816,6.002,17817,8.553,17818,6.002,17819,6.002]],["title/injectables/S3ClientAdapter.html",[105,0.91,10766,5.055]],["body/injectables/S3ClientAdapter.html",[0,0.105,3,0.007,4,0.007,5,0.013,7,0.047,8,0.618,10,3.074,27,0.455,29,0.818,30,0.001,31,0.585,32,0.146,33,0.505,34,0.526,35,1.265,36,2.16,47,0.925,59,0.963,72,1.401,95,0.129,101,0.005,103,0,104,0,105,0.685,107,0.745,111,1.93,112,2.828,116,4.019,127,0.641,144,0.85,148,0.951,154,3,163,2.597,165,0.401,185,3.915,187,0.447,199,2.878,204,1.049,216,0.947,217,1.67,221,2.705,227,1.17,234,1.925,247,1.211,305,2.976,319,0.924,334,0.332,359,1.078,483,1.474,535,3.512,543,1.573,576,6.597,731,3.334,770,1.833,784,6.1,806,1.259,839,1.474,883,3.231,1187,3.632,1188,3.589,1189,3.589,1190,3.796,1191,4.15,1192,5.227,1193,4.421,1195,2.355,1265,3.9,1342,5.303,1344,4.985,1345,2.031,1353,3.162,1354,2.202,1355,2.421,1369,5.868,1370,6.941,1371,8.81,1467,0.987,1572,2.704,1750,4.468,1763,2.247,1798,5.435,1950,3.645,2035,4.561,2139,3.303,2356,2.691,2357,3.469,2374,5.13,2384,1.853,2524,3.844,2644,1.657,2684,4.732,2794,3.035,3047,2.202,3578,3.931,3579,1.521,3580,2.667,3813,2.122,4661,2.702,5339,4.477,6262,5.964,6263,8.838,6265,4.135,6266,4.135,6267,4.848,6270,8.167,6273,2.247,6274,2.298,6275,3.645,6276,2.298,6277,2.298,6740,2.298,7821,3.513,7927,7.54,7951,6.661,7961,4.287,7962,2.704,7963,4.135,9603,3.258,9799,2.704,9800,2.858,10253,7.158,10303,7.336,10730,5.803,10737,2.858,10766,3.805,12108,2.497,16719,4.732,17820,10.434,17821,3.092,17822,6.551,17823,5.119,17824,7.616,17825,6.551,17826,5.119,17827,5.73,17828,3.092,17829,5.119,17830,5.119,17831,3.092,17832,5.119,17833,3.092,17834,5.119,17835,3.092,17836,3.092,17837,5.119,17838,3.092,17839,5.119,17840,3.092,17841,3.092,17842,5.119,17843,3.092,17844,5.119,17845,3.092,17846,7.616,17847,5.119,17848,3.092,17849,5.119,17850,5.119,17851,5.119,17852,5.119,17853,3.092,17854,6.056,17855,2.858,17856,3.092,17857,3.092,17858,3.092,17859,3.092,17860,3.092,17861,2.704,17862,11.689,17863,8.439,17864,3.092,17865,3.092,17866,3.092,17867,3.092,17868,3.092,17869,3.092,17870,3.092,17871,3.092,17872,5.119,17873,5.119,17874,5.119,17875,3.092,17876,3.092,17877,5.119,17878,3.092,17879,3.092,17880,3.092,17881,3.092,17882,3.092,17883,5.119,17884,5.119,17885,5.119,17886,5.119,17887,5.119,17888,3.092,17889,3.092,17890,3.092,17891,5.119,17892,3.092,17893,3.092,17894,3.092,17895,3.092,17896,3.092,17897,3.092,17898,3.092,17899,3.092,17900,3.092,17901,3.092,17902,3.092,17903,3.092,17904,6.551,17905,3.092,17906,5.119,17907,3.092,17908,3.092,17909,3.092,17910,3.092,17911,3.092,17912,3.092,17913,6.551,17914,3.092,17915,5.119,17916,3.092,17917,3.092,17918,3.092,17919,3.092,17920,3.092,17921,3.092]],["title/modules/S3ClientModule.html",[425,1.812,10588,5.055]],["body/modules/S3ClientModule.html",[0,0.276,3,0.019,4,0.019,5,0.01,8,0.979,27,0.334,29,0.635,30,0.001,31,0.454,32,0.11,33,0.392,35,0.981,95,0.164,101,0.014,103,0.001,104,0.001,154,5.327,187,1.172,217,1.601,227,1.088,234,1.703,334,0.871,369,2.328,425,3.1,427,2.927,432,4.28,433,3.062,438,4.914,449,3.215,627,3.219,836,4.707,837,5.77,839,3.864,1301,7.728,1467,2.586,2145,6.591,2356,4.309,2357,5.946,6263,8.214,6267,8.111,6269,7.329,6271,7.329,6272,7.329,7951,10.174,7961,6.786,7962,7.087,7963,8.473,7992,7.491,7994,7.491,7995,6.024,10489,7.491,10588,8.647,10766,6.024,13448,7.491,16637,7.087,17820,9.697,17922,10.49,17923,8.103,17924,8.103,17925,8.103,17926,8.103,17927,8.103,17928,8.103,17929,8.103]],["title/interfaces/S3Config.html",[334,0.731,6267,4.328]],["body/interfaces/S3Config.html",[3,0.023,4,0.023,5,0.012,7,0.145,30,0.001,32,0.182,47,1.023,101,0.016,103,0.001,104,0.001,165,0.914,334,1.032,336,2.3,2145,8.219,6267,7.432,6269,9.139,6270,9.139,6271,9.139,6272,9.139,10712,7.526,10713,7.526,17930,9.611]],["title/interfaces/S3Config-1.html",[334,0.607,905,2.354,6267,3.598]],["body/interfaces/S3Config-1.html",[3,0.02,4,0.02,5,0.013,7,0.131,30,0.001,32,0.181,47,1.03,55,1.865,95,0.111,101,0.021,103,0.001,104,0.001,163,3.369,165,0.857,334,1.355,336,2.073,1342,7.541,1344,5.668,1487,4.844,2145,7.923,6262,6.782,6263,6.782,6264,7.253,6265,6.996,6266,6.996,6267,6.967,6268,9.874,6269,8.81,6270,8.81,6271,8.81,6272,8.81,6273,6.295,6274,6.438,6275,6.167,6276,6.438,6277,6.438]],["title/classes/SSOLoginQuery.html",[0,0.232,16093,5.947]],["body/classes/SSOLoginQuery.html",[0,0.396,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,27,0.479,30,0.001,32,0.158,33,0.631,47,0.829,52,5.943,95,0.149,101,0.016,103,0.001,104,0.001,165,0.911,347,2.351,364,2.117,373,6.232,374,3.046,376,2.183,467,3.289,470,4.863,471,5.082,15408,10.127,16093,10.168,17931,12.537,17932,9.542,17933,9.542,17934,9.542,17935,9.542,17936,9.542]],["title/interfaces/SanisGruppeResponse.html",[334,0.731,17937,5.947]],["body/interfaces/SanisGruppeResponse.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.184,34,2.2,47,0.994,95,0.147,101,0.016,103,0.001,104,0.001,165,0.896,334,0.999,336,2.226,1016,3.265,1166,4.462,13148,11.312,17065,6.623,17937,10.009,17938,6.76,17939,8.597,17940,12.934,17941,12.276,17942,12.934,17943,11.312,17944,11.956,17945,8.149]],["title/interfaces/SanisGruppenResponse.html",[334,0.731,17946,5.694]],["body/interfaces/SanisGruppenResponse.html",[3,0.022,4,0.022,5,0.011,7,0.143,30,0.001,32,0.17,33,0.56,95,0.16,101,0.016,103,0.001,104,0.001,165,0.907,334,1.018,336,2.268,1016,4.388,11151,10.515,17065,6.747,17937,11.385,17938,6.888,17939,12.341,17945,8.9,17946,9.693,17947,8.759,17948,12.341,17949,13.017,17950,11.385,17951,8.759,17952,8.759]],["title/interfaces/SanisGruppenzugehoerigkeitResponse.html",[334,0.731,17950,5.947]],["body/interfaces/SanisGruppenzugehoerigkeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.156,30,0.001,32,0.14,95,0.133,101,0.017,103,0.001,104,0.001,165,0.955,334,1.109,336,2.471,496,4.359,1166,4.953,17065,7.352,17938,7.505,17945,7.352,17948,9.545,17950,10.66,17953,11.717,17954,11.717]],["title/interfaces/SanisLaufzeitResponse.html",[334,0.731,17943,5.947]],["body/interfaces/SanisLaufzeitResponse.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,32,0.165,83,4.234,101,0.017,103,0.001,104,0.001,165,0.952,334,1.104,336,2.458,17065,7.315,17938,7.467,17941,9.496,17943,10.628,17955,13.374,17956,13.374]],["title/interfaces/SanisNameResponse.html",[334,0.731,17957,5.947]],["body/interfaces/SanisNameResponse.html",[3,0.024,4,0.024,5,0.012,7,0.155,30,0.001,31,0.575,32,0.165,47,0.987,101,0.017,103,0.001,104,0.001,165,0.952,334,1.104,336,2.458,17065,7.315,17938,7.467,17957,10.628,17958,13.374,17959,13.374]],["title/interfaces/SanisOrganisationResponse.html",[334,0.731,17960,5.947]],["body/interfaces/SanisOrganisationResponse.html",[3,0.023,4,0.023,5,0.012,7,0.148,30,0.001,31,0.738,32,0.179,34,2.241,47,1.017,101,0.016,103,0.001,104,0.001,165,0.927,334,1.055,336,2.35,13148,11.525,17065,6.994,17938,7.139,17960,10.347,17961,9.079,17962,13.177]],["title/interfaces/SanisPersonResponse.html",[334,0.731,17963,5.947]],["body/interfaces/SanisPersonResponse.html",[3,0.023,4,0.023,5,0.012,7,0.146,30,0.001,31,0.752,32,0.178,47,1,95,0.124,101,0.016,103,0.001,104,0.001,165,0.917,334,1.037,336,2.311,1016,3.39,17065,6.877,17938,7.02,17945,6.877,17957,11.46,17963,10.242,17964,8.446,17965,13.102,17966,13.102,17967,13.102]],["title/interfaces/SanisPersonenkontextResponse.html",[334,0.731,17968,5.947]],["body/interfaces/SanisPersonenkontextResponse.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.18,33,0.547,34,2.186,47,0.96,95,0.158,101,0.015,103,0.001,104,0.001,165,0.886,334,0.981,336,2.185,496,3.855,1016,3.972,17065,6.503,17938,6.638,17945,8.755,17946,10.762,17947,12.212,17960,11.24,17961,12.212,17968,9.896,17969,8.441,17970,12.851,17971,12.851,17972,11.88]],["title/injectables/SanisProvisioningStrategy.html",[105,0.91,16839,5.694]],["body/injectables/SanisProvisioningStrategy.html",[0,0.212,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,27,0.48,29,0.864,30,0.001,31,0.618,32,0.15,33,0.533,34,1.057,35,1.335,36,2.178,95,0.171,99,1.037,100,2.081,101,0.01,103,0.001,104,0.001,105,1.173,107,1.498,111,2.332,112,2.563,127,1.098,145,1.574,148,2.698,150,2.152,163,1.913,187,0.899,216,1.878,217,1.514,221,1.439,227,0.909,234,1.423,305,1.771,404,1.58,596,3.098,661,2.612,1016,2.182,1127,3.956,1154,8.665,1155,3.61,1157,4.068,1270,3.685,1353,4.232,1633,5.205,1820,3.857,2022,7.232,2033,4.342,2130,2.715,2131,3.038,2132,2.929,2139,4.01,2268,3.541,2293,7.342,3104,3.971,3709,4.129,3859,3.476,3928,7.081,4571,3.387,8419,6.679,8450,6.517,9534,8.455,10921,8.637,11156,4.518,11447,7.342,11714,5.44,12332,6.381,12334,6.647,12335,4.129,12336,4.129,13086,6.865,13088,5.021,13089,8.126,13093,7.081,13094,8.2,13109,5.746,13118,8.204,13120,7.342,13122,7.081,13123,5.436,15695,8.883,16295,5.436,16300,10.019,16339,5.746,16401,8.883,16408,5.436,16414,5.746,16839,7.342,16840,9.238,17945,6.243,17973,6.215,17974,8.767,17975,6.215,17976,6.215,17977,8.104,17978,8.767,17979,6.215,17980,6.215,17981,6.215,17982,6.215,17983,6.215,17984,5.205,17985,6.215,17986,6.215,17987,6.215,17988,6.215,17989,6.215,17990,6.215,17991,6.215,17992,6.215,17993,6.215,17994,6.215,17995,6.215]],["title/interfaces/SanisResponse.html",[334,0.731,17984,5.694]],["body/interfaces/SanisResponse.html",[3,0.023,4,0.023,5,0.012,7,0.147,30,0.001,32,0.172,47,0.902,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,334,1.047,336,2.333,1016,4.135,17945,8.387,17963,11.497,17964,11.77,17968,11.497,17969,9.013,17984,9.864,17996,9.75,17997,13.145,17998,13.145]],["title/injectables/SanisResponseMapper.html",[105,0.91,16840,5.694]],["body/injectables/SanisResponseMapper.html",[0,0.179,3,0.012,4,0.026,5,0.006,7,0.079,8,0.938,27,0.486,29,0.893,30,0.001,31,0.678,32,0.16,33,0.551,35,1.318,47,0.375,95,0.151,99,0.878,100,1.761,101,0.009,103,0,104,0,105,1.039,107,1.268,111,2.285,127,0.659,144,1.446,145,2.757,165,0.609,167,4.454,187,0.76,215,1.678,216,0.972,217,1.712,227,1.282,234,1.657,319,1.572,461,1.777,696,4.039,851,2.507,852,2.507,854,4.637,974,3.118,1016,1.846,1166,3.727,1180,2.263,1464,2.422,1467,1.678,2356,4.682,2969,3.549,3090,2.274,3110,2.621,4466,7.031,4571,5.562,5961,4.861,6473,5.367,8178,3.224,8419,8.684,8422,6.795,8427,5.919,8430,9.233,8432,4.404,8443,3.493,8450,7.587,8452,4.882,8807,4.117,9534,7.419,9718,5.162,9719,5.244,11003,4.599,11147,4.599,11151,8.796,11153,4.861,11258,4.861,12012,5.919,12836,7.04,13069,7.182,13070,7.182,13711,4.861,14615,4.861,16840,6.506,17944,4.861,17946,6.506,17953,4.599,17954,4.599,17972,4.861,17984,10.918,17999,12.104,18000,9.24,18001,7.769,18002,7.769,18003,7.769,18004,7.769,18005,7.769,18006,5.258,18007,7.769,18008,5.258,18009,7.769,18010,5.258,18011,7.769,18012,7.769,18013,5.258,18014,7.769,18015,5.258,18016,5.258,18017,5.258,18018,5.258,18019,5.258,18020,5.258,18021,5.258,18022,5.258,18023,5.258,18024,5.258,18025,5.258,18026,5.258,18027,5.258,18028,5.258,18029,5.258,18030,5.258,18031,5.258,18032,5.258,18033,5.258,18034,9.24,18035,5.258,18036,7.769,18037,4.861,18038,5.258,18039,5.258,18040,5.258,18041,5.258,18042,5.258,18043,7.769,18044,5.258,18045,5.258,18046,5.258,18047,5.258,18048,5.258,18049,5.258,18050,5.258,18051,5.258,18052,5.258,18053,5.258,18054,5.258]],["title/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[334,0.731,11151,5.493]],["body/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[3,0.024,4,0.024,5,0.012,7,0.152,30,0.001,32,0.163,47,0.915,95,0.129,101,0.017,103,0.001,104,0.001,165,0.94,334,1.082,336,2.409,496,4.25,1166,4.83,11151,9.698,17065,7.169,17938,7.318,17945,7.169,17951,9.306,17952,9.306,17953,11.62,17954,11.62,18037,12.281]],["title/interfaces/ScanResult.html",[334,0.731,1330,4.328]],["body/interfaces/ScanResult.html",[3,0.022,4,0.022,5,0.011,7,0.14,30,0.001,32,0.168,33,0.653,47,1.013,55,1.994,101,0.021,103,0.001,104,0.001,165,0.894,204,4.381,334,1.329,336,2.215,347,2.682,1299,7.478,1308,6.916,1310,9.217,1312,7.081,1314,7.363,1323,6.468,1327,8.097,1328,7.753,1329,7.478,1330,7.263,1331,8.451,1332,8.451]],["title/classes/ScanResultDto.html",[0,0.232,10132,5.694]],["body/classes/ScanResultDto.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,27,0.515,29,0.742,30,0.001,31,0.531,32,0.17,33,0.458,47,0.825,95,0.122,101,0.016,103,0.001,104,0.001,127,1.187,165,0.907,380,2.013,405,3.084,564,4.582,595,3.172,2037,5.56,2038,6.62,6170,6.029,6191,8.18,10039,8.435,10042,7.043,10043,7.043,10132,11.18,18055,13.017,18056,9.475,18057,11.575,18058,9.475]],["title/classes/ScanResultParams.html",[0,0.232,6239,4.517]],["body/classes/ScanResultParams.html",[0,0.454,2,0.695,3,0.015,4,0.021,5,0.011,7,0.094,26,2.561,27,0.419,30,0.001,32,0.169,33,0.584,39,1.679,47,0.965,95,0.159,99,1.04,101,0.022,103,0.001,104,0.001,150,2.159,165,0.688,204,3.452,214,2.77,334,0.67,347,2.058,364,1.853,369,1.384,373,4.71,374,1.99,375,4.207,376,1.426,377,5.837,379,1.413,380,1.325,467,3.623,469,2.737,470,5.054,471,4.477,565,3.108,1000,4.919,1001,6.62,1031,3.188,1044,2.991,1180,2.683,1270,3.697,1330,6.476,1331,6.658,1332,6.658,2702,4.584,2889,5.038,3610,3.048,4205,2.101,5836,6.513,6170,5.116,6183,7.229,6189,6.019,6217,3.067,6220,4.279,6221,4.356,6222,4.356,6225,7.736,6228,4.356,6229,8.026,6230,7.717,6231,7.717,6232,4.356,6233,4.279,6234,6.866,6235,4.279,6236,4.356,6237,4.208,6238,5.93,6239,5.837,6240,4.208,6241,4.279,6242,4.208,6243,4.208,6244,3.969,6245,4.356,6246,4.356,6247,4.356,6248,3.969,6249,3.969,6250,4.081,6251,4.142,6252,4.356,18059,10.173,18060,6.235,18061,6.235,18062,6.235]],["title/entities/SchoolEntity.html",[380,1.445,844,3.097]],["body/entities/SchoolEntity.html",[0,0.292,3,0.011,4,0.011,5,0.006,7,0.129,27,0.518,30,0.001,31,0.537,32,0.168,33,0.641,47,0.907,83,2.622,95,0.14,96,1.269,101,0.017,102,2.329,103,0,104,0,144,1.276,145,1.791,165,0.671,167,1.708,234,1.148,240,4.033,319,1.387,334,0.499,347,2.087,355,1.865,359,2.466,364,2.288,369,3.042,370,4.364,371,2.644,380,1.503,381,1.544,386,6.195,398,1.367,400,2.048,402,1.923,404,0.836,405,1.237,406,1.509,483,3.373,844,3.222,854,5.179,1031,1.454,1167,2.55,1183,3.242,1843,2.2,1849,4.301,2095,1.841,2395,4.774,2574,4.424,2632,5.786,2636,3.855,2640,3.855,2641,5.539,3105,4.503,3106,3.992,4265,3.305,4271,3.855,4281,2.027,4323,6.274,4338,3.536,4339,5.539,4491,6.748,4989,3.926,6464,7.083,6472,6.369,6479,4.29,6486,4.564,6537,4.337,6556,5.389,6557,3.45,6751,4.774,6871,2.751,6872,4.337,8452,6.024,8456,3.45,8457,5.714,8469,4.633,8470,3.45,9787,7.117,10031,2.916,10293,6.325,10752,6.569,11571,5.539,12179,5.539,12180,3.886,12181,7.304,12182,6.969,12183,6.58,12184,6.827,12185,8.084,12186,3.748,12187,3.748,12188,3.886,12189,3.748,12190,3.886,12191,3.886,12192,5.924,12193,3.886,12194,3.886,12195,3.886,12196,3.886,12197,3.886,12198,3.886,12199,3.886,12200,3.886,12201,6.924,12202,3.886,12203,3.886,12204,7.744,12205,5.924,12206,5.924,12207,5.924,12208,4.942,12209,5.539,12210,3.45,12211,3.748,12212,3.886,12213,5.924,12214,3.536,12215,3.886,12216,3.886,12217,5.714,12218,3.748,12219,3.305,12220,3.886,18063,4.64,18064,4.64,18065,4.64,18066,4.64,18067,4.64,18068,4.64,18069,4.64,18070,4.64,18071,4.64,18072,4.64,18073,4.64,18074,4.29,18075,4.64]],["title/classes/SchoolExternalTool.html",[0,0.232,139,3.737]],["body/classes/SchoolExternalTool.html",[0,0.239,2,0.781,3,0.017,4,0.017,5,0.008,7,0.106,8,1.15,27,0.545,29,0.951,30,0.001,31,0.68,32,0.177,33,0.62,34,1.841,35,0.848,47,0.962,55,2.616,95,0.149,101,0.016,103,0.001,104,0.001,127,0.877,139,5.234,165,0.746,181,7.492,194,4.584,198,3.402,200,4.36,214,3.002,227,0.726,334,0.752,404,1.716,405,2.537,564,4.256,595,2.345,596,2.137,1872,6.744,2037,4.11,2038,4.893,2095,2.779,4205,3.913,4281,3.06,4282,4.153,4283,5.207,5350,8.268,5352,7.519,5696,5.485,5700,8.846,5708,5.091,5710,5.485,5711,4.988,5712,5.336,5719,4.653,5720,5.091,5721,6.781,5722,5.207,7252,8.204,8776,6.327,8929,5.091,8930,5.485,18076,11.563,18077,9.723,18078,9.523,18079,7.004,18080,7.004,18081,7.004,18082,7.004,18083,7.004,18084,7.004]],["title/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.232,18085,5.694]],["body/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.011,7,0.138,27,0.467,29,0.717,30,0.001,31,0.513,32,0.167,33,0.443,95,0.146,101,0.015,103,0.001,104,0.001,127,1.146,145,2.317,163,4.068,165,0.887,192,2.727,200,4.006,209,4.251,364,1.667,376,2.093,467,2.973,1006,6.394,1009,6.455,1011,4.624,1026,5.073,1268,7.546,2130,5.618,2559,5.575,5732,8.873,5733,8.46,18085,9.489,18086,11.377,18087,11.028]],["title/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.232,18087,5.493]],["body/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.261,2,0.854,3,0.018,4,0.018,5,0.009,7,0.116,26,2.399,27,0.53,29,0.943,30,0.001,31,0.674,32,0.178,33,0.547,47,0.858,55,2.177,95,0.145,99,1.278,101,0.013,103,0.001,104,0.001,127,0.959,145,1.939,165,0.792,200,4.082,209,4.331,364,2.279,375,4.31,376,1.751,467,3.49,1011,3.869,1431,4.362,2095,3.038,2130,5.811,2559,5.937,5007,6.116,5719,5.087,5734,7.078,5735,7.906,5736,6.387,5738,9.344,5740,7.078,5741,7.078,5742,7.078,5743,9.424,5744,9.344,5745,7.078,5746,6.697,5747,6.412,5748,7.078,5751,7.078,5752,5.011,5753,7.078,5754,7.078,5755,5.995,5756,7.078,18086,12.116,18087,10.107]],["title/entities/SchoolExternalToolEntity.html",[380,1.445,5778,4.943]],["body/entities/SchoolExternalToolEntity.html",[0,0.26,3,0.018,4,0.018,5,0.009,7,0.115,27,0.496,30,0.001,32,0.163,55,2.433,95,0.16,96,2.087,101,0.017,103,0.001,104,0.001,165,0.79,192,3.581,200,4.264,209,3.972,240,3.583,334,0.819,364,2.189,369,2.667,380,2.142,381,2.537,398,2.247,399,4,402,3.161,404,1.374,405,2.032,406,2.481,844,5.692,1858,5.281,4265,5.432,4271,5.495,4272,4.623,4989,5.504,5352,7.051,5721,5.432,5722,5.67,5770,6.161,5776,9.521,5778,7.329,5781,6.388,5782,4.922,6543,4.733,6544,4.572,6751,5.148,7252,7.755,8680,8.558,11044,5.329,12030,8.145,12171,8.444,12172,11.552,12173,10.511,12174,7.051,12175,7.051,12176,7.051,12177,7.051,12178,7.051,18088,7.627,18089,7.627,18090,7.627,18091,7.627]],["title/classes/SchoolExternalToolFactory.html",[0,0.232,18092,6.286]],["body/classes/SchoolExternalToolFactory.html",[0,0.166,2,0.544,3,0.012,4,0.012,5,0.006,7,0.074,8,0.888,27,0.535,29,1.033,30,0.001,31,0.727,32,0.18,33,0.606,34,1.25,35,1.467,47,0.752,55,2.479,59,3.287,95,0.126,101,0.008,103,0,104,0,127,0.612,138,3.211,139,2.683,144,3.395,148,1.503,165,0.576,181,4.743,185,4.873,200,2.754,201,2.484,216,1.359,217,0.957,227,0.762,234,0.793,319,3.539,359,2.563,366,2.731,379,2.004,380,1.879,381,2.445,404,1.325,538,3.312,564,1.79,596,3.919,627,2.256,660,7.061,661,4.66,662,5.553,665,4.149,666,5.553,667,5.613,668,4.149,669,4.149,670,4.149,671,4.075,672,4.53,673,4.99,674,6.659,675,5.85,676,7.012,677,2.781,682,2.755,683,4.149,684,2.781,685,5.193,686,5.362,687,4.194,688,5.041,689,4.111,690,2.755,691,2.597,692,4.143,693,2.683,694,2.639,695,2.755,696,5.115,697,2.781,698,4.901,699,2.755,700,7.17,701,4.187,702,6.683,703,2.781,704,3.64,705,2.755,706,2.781,707,2.755,708,2.781,709,2.755,712,2.755,713,6.147,714,2.781,715,2.755,716,4.149,717,3.88,718,4.149,719,2.781,720,2.661,721,2.639,722,2.177,723,2.755,724,2.755,725,2.755,726,2.781,727,2.781,728,1.867,729,2.755,730,2.781,731,2.904,732,2.755,733,2.781,735,2.836,736,2.895,737,2.926,905,2.033,4205,3.316,4313,6.296,4315,3.549,5350,3.477,5352,2.865,5358,4.089,5793,3.944,5798,3.823,5875,3.477,8776,4.006,18077,4.089,18092,8.173,18093,7.351,18094,7.351,18095,7.351,18096,4.882,18097,4.882,18098,4.882]],["title/classes/SchoolExternalToolIdParams.html",[0,0.232,18099,5.324]],["body/classes/SchoolExternalToolIdParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,47,0.837,95,0.151,101,0.016,103,0.001,104,0.001,165,0.92,200,4.087,209,3.881,364,1.767,368,4.601,369,2.606,370,3.196,371,3.238,374,3.097,376,2.22,467,3.081,478,6.91,1000,4.781,5737,9.18,5803,8.126,5804,8.487,7252,7.287,18099,9.196,18100,9.486]],["title/classes/SchoolExternalToolIdParams-1.html",[0,0.193,905,2.354,18099,4.427]],["body/classes/SchoolExternalToolIdParams-1.html",[0,0.403,2,1.095,3,0.023,4,0.023,5,0.012,7,0.148,26,2.691,27,0.405,30,0.001,32,0.133,95,0.163,99,1.639,101,0.016,103,0.001,104,0.001,165,0.927,200,3.685,209,3.91,364,1.789,374,3.135,376,2.247,467,3.104,478,6.994,1000,4.816,2559,5.359,5737,9.228,5806,7.139,5807,7.934,18099,9.263,18101,10.936]],["title/modules/SchoolExternalToolModule.html",[425,1.812,5814,5.324]],["body/modules/SchoolExternalToolModule.html",[0,0.294,3,0.02,4,0.02,5,0.01,30,0.001,95,0.162,101,0.014,103,0.001,104,0.001,187,1.247,200,3.731,209,2.85,425,3.192,427,3.115,428,3.351,429,3.45,430,3.436,431,3.421,432,4.408,433,4.527,442,4.368,443,3.379,444,3.298,449,4.331,766,3.607,5030,4.96,5328,9.645,5338,6.966,5813,10.109,5814,11.072,6057,9.317,7252,5.351,18102,8.623,18103,8.623,18104,8.623,18105,8.623,18106,11.744,18107,8.623]],["title/classes/SchoolExternalToolPostParams.html",[0,0.232,18108,5.694]],["body/classes/SchoolExternalToolPostParams.html",[0,0.395,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,27,0.506,29,0.908,30,0.001,32,0.18,33,0.505,47,0.875,55,2.251,95,0.158,101,0.013,103,0.001,104,0.001,165,0.818,200,4.27,209,4.203,290,4.726,364,2.236,369,1.787,374,2.571,375,3.98,376,1.842,467,3.22,470,4.852,471,4.236,1000,4.722,1431,4.588,2450,4.588,3469,7.441,4205,3.909,5007,6.269,5477,6.651,5820,7.446,5827,9.69,5828,6.745,5829,6.745,5830,6.745,5832,7.446,5833,7.446,5835,5.061,5836,5.844,7252,7.892,8776,6.321,18100,10.273,18108,8.751,18109,8.054,18110,9.659,18111,8.054,18112,8.054,18113,8.054]],["title/interfaces/SchoolExternalToolProps.html",[334,0.731,18077,5.694]],["body/interfaces/SchoolExternalToolProps.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.118,29,0.987,30,0.001,31,0.706,32,0.179,33,0.625,34,2.064,47,1,55,2.714,95,0.156,101,0.017,103,0.001,104,0.001,139,4.298,165,0.803,181,8.129,194,5.118,198,3.798,200,3.192,214,2.465,227,0.811,334,0.84,336,1.871,404,1.409,405,2.084,564,4.619,1872,5.953,2037,4.588,2038,5.463,2095,3.103,4205,4.246,4281,3.416,4282,4.637,4283,5.813,5350,8.972,5352,7.73,5696,6.123,5700,5.958,5710,6.123,5711,5.569,5712,5.958,5719,5.195,5720,5.684,5721,7.299,5722,5.813,7252,4.852,8776,6.866,8929,5.684,8930,6.123,18076,6.84,18077,9.576]],["title/classes/SchoolExternalToolRefDO.html",[0,0.232,5706,5.493]],["body/classes/SchoolExternalToolRefDO.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,27,0.511,29,0.727,30,0.001,31,0.52,32,0.168,33,0.599,47,0.922,101,0.015,103,0.001,104,0.001,127,1.162,165,0.895,200,4.307,209,4.271,405,3.045,595,3.107,4205,4.174,4282,5.501,4283,6.897,5706,10.72,5797,9.001,5942,8.577,7252,8.019,18076,11.303,18114,9.279,18115,11.427,18116,9.279,18117,9.279]],["title/injectables/SchoolExternalToolRepo.html",[105,0.91,1933,5.055]],["body/injectables/SchoolExternalToolRepo.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.059,8,0.745,10,2.49,12,2.825,18,3.117,26,2.331,27,0.537,29,1.021,30,0.001,31,0.725,32,0.176,33,0.626,34,1.483,35,1.556,36,2.711,40,1.879,47,0.807,95,0.155,96,1.688,97,1.683,99,0.65,101,0.006,103,0,104,0,105,0.825,107,0.938,111,2.373,112,2.933,127,0.487,139,6.802,148,1.198,158,1.902,165,0.305,192,2.284,200,3.806,201,1.98,209,2.533,216,1.141,217,1.54,221,1.774,227,1.227,234,1.244,277,3.093,359,2.151,380,1.853,381,2.549,398,1.147,404,1.112,529,2.681,595,1.303,596,3.727,661,3.221,844,1.773,878,4.31,884,2.907,885,4.803,915,2.157,935,6.418,1467,1.242,1790,4.475,1933,4.586,2051,2.217,2343,8.676,2345,4.393,2346,4.393,2347,4.393,2348,4.393,2349,4.31,2350,4.31,2351,4.393,2352,4.31,2353,4.393,2354,2.829,2355,5.016,2356,3.582,2357,3.972,2359,4.484,2360,2.771,2362,5.016,2363,2.771,2365,2.771,2367,6.222,2368,4.31,2369,2.771,2371,2.771,2373,4.393,2377,4.393,2379,4.164,2380,4.31,2382,2.771,2384,2.333,2385,2.386,2386,2.771,2388,2.771,2390,2.719,2391,2.771,2397,2.627,2408,5.354,2409,5.697,2431,5.166,2444,3.404,4205,2.583,4369,2.511,4492,2.893,4661,3.256,5352,3.62,5778,8.882,5782,3.981,5839,3.404,5840,5.703,5845,5.703,5853,5.166,5862,2.829,5863,2.829,5864,2.829,5865,2.829,5866,2.829,5867,2.829,5868,2.829,5869,2.829,5870,2.829,5874,2.771,5875,5.458,5876,3.144,5877,3.404,5878,2.965,5880,3.583,5881,3.598,5882,2.719,5889,3.598,5895,3.598,5902,3.598,5903,3.598,7271,2.415,8680,2.771,8776,5.181,9006,3.598,9007,2.965,9008,3.598,12171,8.471,12173,3.404,14700,3.259,18118,10.163,18119,6.169,18120,6.169,18121,5.703,18122,9.798,18123,3.892,18124,8.847,18125,6.169,18126,3.892,18127,3.892,18128,3.892,18129,6.169,18130,3.892,18131,5.703,18132,3.892,18133,3.892,18134,3.892,18135,3.892,18136,3.892,18137,3.892,18138,3.892,18139,3.892,18140,3.144,18141,3.892,18142,3.404,18143,3.404,18144,3.892,18145,3.892]],["title/injectables/SchoolExternalToolRequestMapper.html",[105,0.91,18146,5.694]],["body/injectables/SchoolExternalToolRequestMapper.html",[0,0.283,3,0.02,4,0.02,5,0.01,7,0.126,8,1.289,27,0.44,29,0.923,30,0.001,31,0.66,32,0.145,33,0.516,35,1.292,95,0.16,101,0.014,103,0.001,104,0.001,105,1.427,107,2.006,111,2.362,144,2.288,181,7.601,187,1.203,194,5.446,200,4.163,209,3.893,227,1.221,367,3.968,982,4.147,4205,2.804,5352,4.882,5827,9.788,5874,5.925,5910,6.721,5912,10.303,5916,7.277,5918,8.936,5925,7.692,5926,7.277,5927,6.968,5928,7.277,7252,7.309,8776,4.534,18108,10.406,18146,8.936,18147,10.889,18148,10.67,18149,8.32,18150,10.67,18151,8.32,18152,10.303,18153,7.277,18154,8.32,18155,8.32,18156,8.32]],["title/classes/SchoolExternalToolResponse.html",[0,0.232,18157,5.493]],["body/classes/SchoolExternalToolResponse.html",[0,0.233,2,0.764,3,0.016,4,0.016,5,0.008,7,0.103,27,0.543,29,0.901,30,0.001,31,0.644,32,0.181,33,0.517,34,1.819,47,0.949,55,2.02,95,0.137,101,0.011,103,0.001,104,0.001,127,0.858,145,1.734,165,0.735,199,2.589,200,4.387,290,4.019,364,2.363,375,4.074,376,1.567,467,3.579,564,3.921,618,2.801,1011,3.461,1016,2.405,1031,2.146,1431,3.902,2037,4.019,2095,2.717,2130,2.992,2888,4.151,3766,5.363,4205,3.605,4282,4.061,5352,6.276,5719,4.55,5721,4.878,5736,6.036,5752,4.483,5930,5.991,5931,7.576,5932,8.203,5933,5.991,5934,5.991,5935,5.991,5936,5.991,5937,9.007,5938,5.991,5939,5.991,5940,5.991,5941,5.218,5947,5.991,5948,6.332,5949,5.991,7252,8.26,8776,5.828,8929,4.979,9213,5.991,16965,6.332,18100,10.753,18157,9.732,18158,10.09,18159,5.991,18160,6.849,18161,6.849,18162,6.849]],["title/injectables/SchoolExternalToolResponseMapper.html",[105,0.91,18163,5.694]],["body/injectables/SchoolExternalToolResponseMapper.html",[0,0.251,3,0.017,4,0.017,5,0.009,7,0.111,8,1.191,27,0.458,29,0.929,30,0.001,31,0.692,32,0.151,33,0.537,34,1.255,35,1.345,95,0.163,101,0.012,103,0.001,104,0.001,105,1.319,107,1.778,111,2.227,139,7.343,144,2.029,181,8.205,187,1.067,194,4.828,199,2.788,200,4.162,209,3.919,217,0.96,227,1.152,234,1.601,311,6.451,564,3.615,974,4.373,982,3.677,1904,3.085,3709,4.9,4205,2.486,5352,4.328,5427,5.958,5837,5.62,5937,9.286,5955,6.451,5963,6.177,5964,6.819,7252,7.358,8523,5.958,8546,6.177,8550,6.451,8776,4.02,9042,6.819,9103,6.819,9104,6.819,9105,6.819,11334,5.362,18147,10.962,18157,9.579,18158,6.177,18163,8.258,18164,9.861,18165,9.861,18166,9.861,18167,9.861,18168,7.376,18169,9.861,18170,9.861,18171,6.819,18172,9.303,18173,7.376,18174,7.376,18175,7.376,18176,7.376,18177,7.376,18178,7.376,18179,7.376,18180,7.376,18181,6.819]],["title/injectables/SchoolExternalToolRule.html",[105,0.91,1895,5.694]],["body/injectables/SchoolExternalToolRule.html",[0,0.247,3,0.017,4,0.017,5,0.009,7,0.11,8,1.178,27,0.454,29,0.863,30,0.001,31,0.617,32,0.16,33,0.533,35,1.181,95,0.163,101,0.012,103,0.001,104,0.001,105,1.305,107,1.749,116,3.942,127,0.909,139,7.225,187,1.049,199,4.164,200,3.942,201,3.692,214,2.288,215,2.316,216,1.342,217,0.944,227,1.011,347,2.56,380,2.83,461,3.078,806,4.485,1795,6.367,1823,7.854,1844,4.349,1861,7.838,1895,8.168,2002,4.682,2006,6.052,2013,6.48,3385,6.48,3386,4.898,3389,6.384,3392,4.898,3393,6.583,3394,7.25,5778,9.681,5782,4.682,5875,6.946,5983,6.708,5984,6.708,5985,6.708,5986,6.708,5987,6.946,18140,5.862,18182,11.78,18183,6.708]],["title/classes/SchoolExternalToolScope.html",[0,0.232,18124,5.947]],["body/classes/SchoolExternalToolScope.html",[0,0.252,2,0.826,3,0.018,4,0.018,5,0.009,7,0.112,8,1.194,26,2.756,27,0.536,29,0.93,30,0.001,31,0.665,32,0.177,33,0.574,35,1.197,95,0.143,99,1.236,101,0.012,103,0.001,104,0.001,111,2.552,144,2.036,145,3.344,148,2.278,165,0.774,192,2.206,200,3.699,209,2.447,227,1.025,277,5.397,319,2.213,347,2.251,404,1.781,529,3.218,596,3.775,2394,6.598,4205,3.751,5778,5.381,5782,4.777,5875,5.272,5990,6.475,5991,6.672,5992,6.672,5993,6.672,5998,6.672,5999,6.672,6000,5.081,6001,4.997,6002,5.081,6003,5.081,6012,4.997,6013,6.672,6014,5.081,6015,4.997,6016,5.081,6017,4.997,6018,6.672,8776,6.065,9263,6.844,10212,8.646,10221,8.646,16969,9.138,16973,9.138,18118,10.288,18124,8.646,18184,7.403,18185,7.403]],["title/classes/SchoolExternalToolSearchListResponse.html",[0,0.232,18172,5.694]],["body/classes/SchoolExternalToolSearchListResponse.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,27,0.469,29,0.72,30,0.001,31,0.515,32,0.168,33,0.445,95,0.146,101,0.015,103,0.001,104,0.001,127,1.152,145,2.328,163,4.073,165,0.89,192,2.74,200,4.256,209,4.076,364,1.675,376,2.103,467,2.981,1005,8.782,1006,6.423,1009,6.473,1011,4.645,1026,5.097,5732,8.898,6020,8.041,7252,7.653,18100,9.962,18157,11.038,18172,9.516]],["title/classes/SchoolExternalToolSearchParams.html",[0,0.232,18186,5.947]],["body/classes/SchoolExternalToolSearchParams.html",[0,0.403,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.406,30,0.001,32,0.134,47,0.845,95,0.152,101,0.016,103,0.001,104,0.001,165,0.928,200,4.108,209,3.915,364,1.793,374,3.142,376,2.252,467,3.108,470,4.956,1000,4.823,4205,4.283,7252,7.351,9267,8.611,9270,8.611,18100,9.57,18110,9.101,18186,10.362]],["title/injectables/SchoolExternalToolService.html",[105,0.91,6057,4.517]],["body/injectables/SchoolExternalToolService.html",[0,0.188,3,0.013,4,0.013,5,0.007,7,0.083,8,0.971,12,3.683,26,2.457,27,0.506,29,0.961,30,0.001,31,0.701,32,0.167,33,0.593,35,1.449,36,2.793,95,0.158,99,0.92,101,0.009,103,0,104,0,105,1.076,107,1.328,111,2.582,112,2.98,127,1.007,139,7.652,158,6.213,187,0.797,198,2.676,200,4.285,201,2.803,209,3.449,216,1.487,217,1.444,221,2.839,227,1.151,234,0.895,284,2.978,450,2.263,529,2.395,564,2.948,1904,2.305,1933,8.615,4205,1.857,5345,4.451,5350,7.433,5737,5.845,5874,3.924,6034,5.093,6036,5.093,6057,5.342,6064,3.507,6074,3.419,6100,7.337,7252,7.762,8528,6.761,8611,4.819,8880,4.198,9242,4.819,18122,9.649,18153,4.819,18187,11.564,18188,8.041,18189,8.041,18190,8.041,18191,8.041,18192,7.433,18193,8.041,18194,5.51,18195,5.51,18196,5.51,18197,8.041,18198,5.51,18199,8.041,18200,5.51,18201,8.041,18202,5.51,18203,8.041,18204,8.041,18205,5.51,18206,8.041,18207,5.51,18208,5.51,18209,5.51,18210,5.093,18211,5.51,18212,8.041,18213,5.51,18214,5.51,18215,5.51,18216,5.51,18217,8.777,18218,5.51,18219,5.51]],["title/injectables/SchoolExternalToolUc.html",[105,0.91,18220,5.694]],["body/injectables/SchoolExternalToolUc.html",[0,0.164,3,0.011,4,0.011,5,0.006,7,0.073,8,0.88,26,2.91,27,0.473,29,0.898,30,0.001,31,0.642,32,0.156,33,0.554,34,0.821,35,1.336,36,2.717,39,3.252,47,0.626,95,0.152,99,0.805,101,0.008,103,0,104,0,105,0.974,107,1.163,111,2.298,112,2.937,127,0.912,139,7.494,187,0.698,199,4.935,200,4.151,209,2.407,216,1.808,217,1.649,221,2.996,227,1.014,234,1.425,284,3.937,524,2.774,529,3.815,766,2.018,843,3.214,1795,6.527,1801,2.891,1904,2.018,2725,2.185,3010,2.698,4205,1.626,5737,8.946,5815,7.501,5874,3.435,6049,4.219,6056,8.519,6057,7.334,6058,4.459,6064,7.295,6073,3.777,6074,2.993,7252,7.321,8561,7.677,8571,4.219,8586,3.675,8587,9.704,8588,4.459,8606,6.371,8607,9.704,8611,4.219,9415,6.734,18106,9.598,18152,11.508,18192,6.734,18210,6.734,18217,6.734,18220,6.101,18221,11.799,18222,8.114,18223,6.734,18224,6.734,18225,8.114,18226,4.459,18227,4.824,18228,4.824,18229,4.824,18230,7.285,18231,4.824,18232,4.824,18233,7.285,18234,9.779,18235,7.285,18236,4.824,18237,4.824,18238,4.824,18239,4.824,18240,7.285,18241,4.824,18242,4.824,18243,4.824,18244,4.824]],["title/injectables/SchoolExternalToolValidationService.html",[105,0.91,18106,5.694]],["body/injectables/SchoolExternalToolValidationService.html",[0,0.256,3,0.018,4,0.018,5,0.009,7,0.114,8,1.207,27,0.463,29,0.879,30,0.001,31,0.628,32,0.153,33,0.543,35,1.21,36,2.143,55,2.755,95,0.164,101,0.013,103,0.001,104,0.001,105,1.337,107,1.815,111,2.495,112,2.473,127,1.252,139,7.173,148,3.076,158,5.485,187,1.089,200,4.22,201,3.83,209,3.951,216,1.848,217,0.98,221,1.742,234,1.222,305,2.145,494,4.512,503,6.128,558,3.611,577,4.248,1904,3.149,5007,5.402,5335,10.22,5362,5.895,5375,6.584,6074,4.671,6098,6.542,6100,7.842,6105,5.895,6110,6.959,7252,7.418,8566,5.895,8608,5.472,18106,8.371,18187,11.052,18245,9.995,18246,7.528,18247,9.995,18248,12.443,18249,7.528,18250,11.222,18251,9.995,18252,7.528,18253,7.528,18254,7.528,18255,7.528,18256,7.528]],["title/classes/SchoolForGroupNotFoundLoggable.html",[0,0.232,16322,5.947]],["body/classes/SchoolForGroupNotFoundLoggable.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,8,1.352,27,0.461,29,0.702,30,0.001,31,0.502,32,0.122,33,0.434,35,1.086,95,0.144,100,3.003,101,0.015,103,0.001,104,0.001,127,1.123,163,2.76,192,2.673,214,3.528,215,2.863,216,1.658,227,0.93,511,4.532,1166,6.429,1216,3.514,1464,5.617,1465,6.294,1467,2.863,1469,6.323,3049,6.52,8288,6.34,8289,6.591,8419,9.729,8422,7.844,11092,7.844,16322,9.786,18257,12.195,18258,8.291,18259,8.291,18260,8.291,18261,8.291,18262,7.844,18263,8.969,18264,8.969,18265,8.969]],["title/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.232,18266,6.286]],["body/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.282,2,0.924,3,0.02,4,0.02,5,0.01,7,0.125,8,1.285,26,2.63,27,0.439,29,0.649,30,0.001,31,0.464,32,0.113,33,0.401,34,2.234,35,1.003,47,0.936,59,2.581,95,0.137,99,1.383,101,0.014,103,0.001,104,0.001,111,2.357,127,1.333,163,2.55,192,3.913,214,3.355,216,2.174,227,0.859,461,2.935,577,7.002,1216,3.247,1464,5.414,1465,6.067,1467,2.645,1469,6.143,4205,4.181,4282,4.913,4476,5.242,8288,6.112,8289,6.354,11763,6.939,12847,6.693,18266,9.838,18267,10.283,18268,8.286,18269,8.286,18270,11.757,18271,8.286,18272,11.757,18273,8.286,18274,8.286,18275,8.286]],["title/classes/SchoolIdParams.html",[0,0.232,18276,5.324]],["body/classes/SchoolIdParams.html",[0,0.404,2,1.101,3,0.023,4,0.023,5,0.012,7,0.149,26,2.697,27,0.407,30,0.001,32,0.134,95,0.163,99,1.647,101,0.016,103,0.001,104,0.001,165,0.929,355,4.768,364,1.798,374,3.15,376,2.258,467,3.113,478,7.028,1000,4.83,4205,4.288,4476,5.29,5807,7.972,5821,7.972,18276,9.291,18277,11.865]],["title/classes/SchoolIdParams-1.html",[0,0.193,905,2.354,18276,4.427]],["body/classes/SchoolIdParams-1.html",[0,0.405,2,1.106,3,0.023,4,0.023,5,0.012,7,0.15,26,2.703,27,0.409,30,0.001,32,0.135,95,0.164,99,1.655,101,0.017,103,0.001,104,0.001,165,0.932,364,1.807,374,3.166,376,2.269,467,3.122,478,7.063,1000,4.845,2559,5.391,4205,4.297,5806,7.21,5807,8.012,18101,11,18276,9.318]],["title/classes/SchoolInMigrationError.html",[0,0.232,15507,5.947]],["body/classes/SchoolInMigrationError.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.542,29,0.605,30,0.001,31,0.433,32,0.185,33,0.55,35,0.936,47,0.811,52,4.822,55,1.665,59,2.408,95,0.131,101,0.013,103,0.001,104,0.001,127,0.968,165,0.797,187,1.118,192,2.304,204,4.099,216,2.517,355,4.088,364,2.286,404,1.833,406,2.514,461,1.768,558,3.708,564,2.834,596,3.931,798,6.391,1013,5.533,1016,2.714,1142,5.266,1180,5.199,1216,4.455,1395,8.269,1396,7.15,1397,4.045,1398,7.237,1402,4.988,1403,4.285,1404,4.988,1405,4.988,1406,4.988,1407,4.988,1408,4.988,1409,4.633,1410,4.363,1416,4.857,1822,7.146,2537,5.059,3502,5.746,7027,4.797,13723,5.746,13758,8.519,15507,8.897,18278,10.172,18279,6.761,18280,7.73]],["title/classes/SchoolInUserMigrationEndLoggable.html",[0,0.232,18281,6.286]],["body/classes/SchoolInUserMigrationEndLoggable.html",[0,0.308,2,1.009,3,0.021,4,0.021,5,0.011,7,0.137,8,1.359,27,0.464,29,0.709,30,0.001,31,0.507,32,0.123,33,0.438,35,1.095,47,0.873,52,6.072,95,0.116,101,0.015,103,0.001,104,0.001,127,1.134,163,2.785,192,2.697,214,3.547,215,2.888,216,1.673,227,0.938,461,2.801,1216,3.546,1464,5.639,1465,6.32,1467,2.888,1469,6.343,3264,5.485,4476,5.459,8288,6.366,8289,6.618,12390,9.102,18267,10.71,18281,10.401,18282,9.049,18283,9.049,18284,9.049,18285,9.049,18286,8.365]],["title/classes/SchoolInUserMigrationStartLoggable.html",[0,0.232,18287,6.286]],["body/classes/SchoolInUserMigrationStartLoggable.html",[0,0.289,2,0.947,3,0.02,4,0.02,5,0.01,7,0.128,8,1.306,26,2.655,27,0.446,29,0.665,30,0.001,31,0.476,32,0.115,33,0.411,35,1.028,39,2.912,47,0.848,52,5.935,95,0.139,99,1.418,101,0.014,103,0.001,104,0.001,111,2.385,127,1.355,163,2.615,192,3.223,214,3.409,216,2.2,227,0.881,347,2.406,415,4.592,461,2.721,540,6.176,1216,3.329,1464,5.478,1465,6.139,1467,2.712,1469,6.2,1477,5.482,4476,5.304,4671,5.734,8288,6.184,8289,6.429,10696,6.863,12390,9.308,12766,10.996,18267,10.404,18286,7.854,18287,9.996,18288,7.854,18289,7.854,18290,8.496,18291,8.496,18292,8.496]],["title/classes/SchoolInfoMapper.html",[0,0.232,15032,5.947]],["body/classes/SchoolInfoMapper.html",[0,0.326,2,1.069,3,0.023,4,0.023,5,0.012,7,0.145,8,1.408,27,0.395,29,0.751,30,0.001,31,0.653,32,0.13,33,0.464,34,1.631,35,1.161,95,0.15,99,1.6,100,3.904,101,0.016,103,0.001,104,0.001,217,1.248,227,0.994,234,1.557,627,3.855,844,5.953,975,6.463,982,4.779,15004,10.558,15032,10.197,18293,11.659,18294,8.386,18295,11.659,18296,8.386,18297,9.588,18298,9.588,18299,9.588]],["title/classes/SchoolInfoResponse.html",[0,0.232,15004,5.493]],["body/classes/SchoolInfoResponse.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.501,29,0.696,30,0.001,31,0.768,32,0.165,33,0.43,34,2.308,47,0.908,95,0.114,101,0.015,103,0.001,104,0.001,127,1.394,165,0.872,192,3.793,364,2.027,376,2.033,379,2.753,380,2.705,467,3.187,475,4.345,618,3.635,966,4.523,1013,4.071,2095,3.527,2213,6.961,2883,5.818,2884,5.918,2885,5.918,4349,7.775,15004,10.587,18300,12.729,18301,7.775,18302,8.218]],["title/classes/SchoolMigrationError.html",[0,0.232,18303,5.947]],["body/classes/SchoolMigrationError.html",[0,0.259,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,8,1.216,27,0.54,29,0.596,30,0.001,31,0.426,32,0.185,33,0.546,35,0.922,47,0.805,52,4.773,55,1.64,59,3.137,95,0.129,101,0.013,103,0.001,104,0.001,127,0.954,165,0.789,187,1.101,192,3.001,204,4.074,216,2.51,355,4.047,364,2.275,404,1.815,406,2.476,461,1.741,558,3.652,564,2.791,596,3.914,798,4.783,1013,5.5,1016,2.673,1142,5.226,1180,5.168,1216,4.421,1345,3.02,1395,8.244,1396,7.115,1397,4.021,1398,7.183,1402,4.912,1403,4.22,1404,4.912,1405,4.912,1406,4.912,1407,4.912,1408,4.912,1409,4.563,1410,4.297,1416,4.783,3837,9.403,4476,4.49,6833,4.783,7027,4.724,8744,6.376,11643,5.421,13723,5.659,13758,8.434,18279,6.659,18303,8.808,18304,9.309,18305,7.613]],["title/interfaces/SchoolMigrationFlags.html",[334,0.731,18306,6.286]],["body/interfaces/SchoolMigrationFlags.html",[3,0.024,4,0.024,5,0.012,7,0.154,30,0.001,32,0.165,52,4.844,101,0.017,103,0.001,104,0.001,165,0.949,334,1.098,336,2.446,347,2.796,355,4.107,4476,4.557,18306,11.199,18307,10.22,18308,10.22,18309,13.352,18310,13.352]],["title/injectables/SchoolMigrationService.html",[105,0.91,4483,5.055]],["body/injectables/SchoolMigrationService.html",[0,0.122,3,0.008,4,0.008,5,0.004,7,0.054,8,0.698,27,0.477,29,0.905,30,0.001,31,0.647,32,0.157,33,0.559,35,1.369,36,2.526,47,0.981,52,4.325,55,2.298,59,1.116,95,0.141,99,0.598,101,0.006,103,0,104,0,105,0.773,107,0.864,111,2.491,112,2.85,127,0.723,128,2.895,129,5.163,132,3.727,145,2.107,148,2.233,167,3.588,187,0.518,189,6.955,191,1.987,192,3.283,204,2.461,216,1.538,217,1.599,221,2.845,227,1.064,234,1.665,247,1.404,305,2.778,347,1.467,355,4.733,369,1.282,371,2.294,450,1.472,503,2.197,511,1.811,558,1.719,784,1.937,854,4.894,1014,3.967,1127,2.281,1216,1.404,1345,1.422,1369,1.953,1467,1.144,2217,7.691,2227,7.691,2257,2.172,2356,2.98,2357,3.79,2362,3.322,2702,3.269,3090,2.498,3104,3.286,4205,3.896,4476,5.252,4483,4.293,4489,6.618,4491,6.836,4498,5.681,4501,4.293,4504,5.052,4508,2.73,4509,3.001,4593,1.811,4611,2.895,4618,2.46,4661,1.891,4671,3.898,4737,5.957,7027,2.224,7074,5.108,7927,2.806,8452,6.444,9058,2.312,12585,2.664,13073,7.37,13077,5.339,13078,5.339,13651,3.001,13733,6.048,14122,4.837,14817,8.031,15339,6.721,15994,2.73,16227,6.345,16324,9.864,16330,3.313,18311,11.779,18312,5.776,18313,5.339,18314,5.776,18315,5.776,18316,5.776,18317,5.339,18318,5.776,18319,5.776,18320,3.313,18321,5.776,18322,9.124,18323,3.584,18324,5.776,18325,7.932,18326,3.584,18327,5.776,18328,8.32,18329,3.584,18330,5.776,18331,5.776,18332,3.584,18333,5.776,18334,3.584,18335,5.776,18336,3.584,18337,5.776,18338,3.584,18339,5.776,18340,3.584,18341,3.584,18342,5.776,18343,3.584,18344,5.776,18345,3.584,18346,3.135,18347,3.584,18348,3.584,18349,3.001,18350,3.001,18351,3.313,18352,3.135,18353,2.73,18354,3.584,18355,3.584,18356,3.584,18357,3.584,18358,3.584,18359,3.584,18360,3.584,18361,3.584,18362,5.776,18363,3.584,18364,3.584,18365,8.32,18366,6.706,18367,5.339,18368,3.584,18369,7.255,18370,3.313,18371,3.584,18372,3.584,18373,5.339,18374,3.584,18375,3.584,18376,5.776,18377,5.776,18378,3.584,18379,3.584,18380,3.584,18381,3.584,18382,5.776,18383,3.584,18384,3.584,18385,3.313,18386,3.584,18387,3.584,18388,3.584,18389,3.584,18390,3.584]],["title/entities/SchoolNews.html",[380,1.445,6882,5.181]],["body/entities/SchoolNews.html",[0,0.345,3,0.012,4,0.022,5,0.006,7,0.171,9,3.616,26,2.146,27,0.213,30,0.001,31,0.43,32,0.138,34,0.88,47,0.877,83,2.347,95,0.155,96,2.503,101,0.018,103,0,104,0,165,0.847,188,2.834,192,3.222,208,1.932,227,0.536,234,1.485,240,3.72,334,0.555,364,0.942,369,2.514,370,3.732,380,2.298,381,1.72,398,1.523,399,3.044,400,2.282,404,1.824,405,2.697,406,1.682,461,2.473,571,5.749,574,4.017,595,1.731,617,5.072,627,1.587,672,4.688,731,3.615,769,4.55,843,2.282,844,5.342,854,3.851,1031,2.404,1187,4.363,1188,4.77,1189,4.311,1190,4.56,1191,4.986,1397,3.063,1415,4.705,1843,3.637,1849,2.595,1865,3.495,1941,3.291,1959,2.818,2303,3.709,2577,5.164,2632,4.214,2646,3.034,2702,5.795,2747,2.668,3427,3.549,3429,3.291,3430,3.612,3432,3.682,3433,3.612,3434,3.844,3448,3.17,3584,3.49,3609,3.291,4205,1.743,4297,3.939,4298,3.759,4989,4.19,5057,3.844,5072,3.759,5618,6.651,6216,2.866,6434,3.612,6521,3.17,6523,2.892,6544,3.099,6751,3.49,6757,3.208,6844,3.844,6845,4.177,6847,4.65,6848,4.177,6849,6.801,6850,5.903,6851,4.177,6852,8.871,6853,5.098,6854,4.945,6855,5.704,6856,5.704,6857,6.717,6858,7.529,6859,4.177,6860,5.464,6861,4.177,6862,3.939,6863,3.939,6864,4.951,6865,4.177,6866,3.939,6867,3.939,6868,4.177,6869,3.844,6870,4.177,6871,3.066,6872,3.17,6873,3.939,6874,4.177,6875,4.177,6876,7.164,6877,4.177,6878,7.39,6879,4.177,6880,4.177,6881,5.846,6882,5.846,6883,6.392,6884,4.049,6885,5.022,6886,3.939,6887,3.759,6888,3.939,6889,4.177,18391,5.17]],["title/classes/SchoolNumberDuplicateLoggableException.html",[0,0.232,18392,5.947]],["body/classes/SchoolNumberDuplicateLoggableException.html",[0,0.294,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,8,1.32,18,4.366,27,0.451,29,0.677,30,0.001,31,0.484,32,0.149,33,0.418,35,1.046,47,0.855,55,2.714,95,0.14,101,0.014,103,0.001,104,0.001,127,1.082,163,2.66,187,1.25,192,3.573,214,3.446,215,2.758,216,1.598,227,0.896,404,1.97,406,2.811,795,5.298,1216,3.386,1464,5.522,1465,6.188,1467,2.758,1469,6.239,1583,5.656,3049,6.282,8288,6.233,8289,6.48,8452,7.533,8456,6.424,8738,5.501,8745,5.071,8746,5.298,8754,7.237,8755,7.237,9058,7.736,9777,7.847,13733,6.282,18392,9.561,18393,11.99,18394,11.99,18395,8.642,18396,8.642]],["title/classes/SchoolNumberMissingLoggableException.html",[0,0.232,18397,5.694]],["body/classes/SchoolNumberMissingLoggableException.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,26,2.663,27,0.448,29,0.671,30,0.001,31,0.48,32,0.148,33,0.414,35,1.037,55,2.706,95,0.153,99,1.43,101,0.014,103,0.001,104,0.001,127,1.073,163,2.637,187,1.239,192,3.24,214,3.428,215,2.735,216,1.584,227,0.888,355,4.799,404,1.959,406,2.787,1127,5.454,1216,3.357,1464,5.5,1465,6.163,1467,2.735,1469,6.22,4205,4.025,4282,5.08,4476,5.325,8288,6.209,8289,6.454,8738,5.454,8740,6.102,8745,5.027,8746,5.253,9058,7.706,13733,6.228,18304,11.04,18397,9.105,18398,11.942,18399,7.921,18400,6.921,18401,8.568]],["title/classes/SchoolParams.html",[0,0.232,13928,5.947]],["body/classes/SchoolParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,192,3.51,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,1000,4.795,3795,5.721,4205,4.265,9777,7.708,13928,10.301,18402,9.75,18403,9.75]],["title/classes/SchoolRolePermission.html",[0,0.232,12201,5.493]],["body/classes/SchoolRolePermission.html",[0,0.326,2,0.624,3,0.013,4,0.013,5,0.007,7,0.145,27,0.335,30,0.001,31,0.455,32,0.111,33,0.508,47,0.895,83,2.487,95,0.15,96,1.53,101,0.019,102,2.807,103,0,104,0,145,1.416,165,0.75,167,2.058,234,0.908,240,4.144,334,0.601,347,2.356,355,2.248,359,1.95,364,1.481,369,3.007,370,4.38,371,2.242,380,1.727,386,4.631,398,1.648,400,2.468,402,2.319,404,1.008,405,1.491,406,1.819,483,2.668,844,2.548,854,4.806,1031,1.753,1167,3.074,1183,3.908,1843,2.652,1849,2.807,2095,2.219,2395,5.487,2574,4.943,2632,5.537,2636,3.048,2640,4.43,2641,6.366,3105,5.175,3106,4.588,4271,4.43,4281,2.444,4323,5.321,4338,4.262,4339,6.366,4491,5.943,4989,4.386,6464,7.215,6472,5.401,6486,3.61,6537,4.985,6556,6.194,6557,4.158,6871,3.317,6872,4.985,8452,5.108,8456,4.158,8457,6.567,8469,5.176,8470,4.158,9787,6.268,10031,3.515,10293,5.879,10752,6.691,11571,6.366,12179,6.366,12180,4.685,12181,6.194,12182,5.91,12183,5.58,12184,6.82,12185,8.301,12186,4.519,12187,4.519,12188,4.685,12189,4.519,12190,4.685,12191,4.685,12192,6.808,12193,4.685,12194,4.685,12195,4.685,12196,4.685,12197,4.685,12198,4.685,12199,4.685,12200,4.685,12201,8.492,12202,8.02,12203,8.02,12204,7.736,12205,4.685,12206,4.685,12207,4.685,12208,3.908,12209,6.366,12210,4.158,12211,4.519,12212,4.685,12213,6.808,12214,4.262,12215,4.685,12216,4.685,12217,6.567,12218,4.519,12219,3.984,12220,4.685,18404,5.594,18405,5.594]],["title/classes/SchoolRoles.html",[0,0.232,12204,5.493]],["body/classes/SchoolRoles.html",[0,0.325,2,0.62,3,0.013,4,0.013,5,0.007,7,0.144,27,0.334,30,0.001,31,0.453,32,0.11,33,0.507,47,0.894,83,2.477,95,0.149,96,1.522,101,0.019,102,2.792,103,0,104,0,145,1.409,165,0.748,167,2.047,234,0.903,240,4.14,334,0.598,347,2.121,355,2.236,359,1.94,364,1.475,369,3.004,370,4.376,371,2.233,380,1.721,386,4.613,398,1.639,400,2.455,402,2.306,404,1.002,405,1.482,406,1.809,483,2.653,844,2.534,854,4.791,1031,1.743,1167,3.057,1183,3.887,1843,2.637,1849,2.792,2095,2.207,2395,5.465,2574,4.927,2632,5.775,2636,3.032,2640,4.413,2641,6.341,3105,7.092,3106,6.288,4271,4.413,4281,2.43,4323,5.299,4338,4.239,4339,6.341,4491,5.924,4989,4.372,6464,7.196,6472,5.379,6486,3.59,6537,4.965,6556,6.169,6557,4.135,6871,3.299,6872,4.965,8452,5.088,8456,4.135,8457,6.541,8469,5.16,8470,4.135,9787,6.248,10031,3.495,10293,5.864,10752,6.674,11571,6.341,12179,6.341,12180,4.659,12181,6.169,12182,5.886,12183,5.557,12184,6.798,12185,8.283,12186,4.494,12187,4.494,12188,4.659,12189,4.494,12190,4.659,12191,4.659,12192,6.781,12193,4.659,12194,4.659,12195,4.659,12196,4.659,12197,4.659,12198,4.659,12199,4.659,12200,4.659,12201,9,12202,4.659,12203,4.659,12204,8.47,12205,4.659,12206,4.659,12207,4.659,12208,3.887,12209,6.341,12210,4.135,12211,4.494,12212,4.659,12213,6.781,12214,4.239,12215,4.659,12216,4.659,12217,6.541,12218,4.494,12219,3.962,12220,4.659,18406,5.563,18407,5.563]],["title/interfaces/SchoolSpecificFileCopyService.html",[334,0.731,3301,5.324]],["body/interfaces/SchoolSpecificFileCopyService.html",[3,0.021,4,0.021,5,0.015,7,0.137,8,1.363,26,2.851,27,0.375,29,0.712,30,0.001,31,0.509,32,0.167,33,0.44,35,1.1,36,2.419,39,2.448,95,0.158,99,1.517,101,0.02,103,0.001,104,0.001,185,3.533,334,0.977,336,2.175,1184,6.255,1358,7.182,2524,6.62,3116,8.596,3301,8.835,3579,4.472,4753,8.403,4755,8.403,6169,6.926,6189,6.149,6217,4.472,10117,7.951,10428,9.114,17167,8.403,17169,8.403,18408,9.869,18409,9.09,18410,10.43,18411,11.861,18412,9.09,18413,8.403,18414,7.951]],["title/injectables/SchoolSpecificFileCopyServiceFactory.html",[105,0.91,3576,5.694]],["body/injectables/SchoolSpecificFileCopyServiceFactory.html",[0,0.297,3,0.021,4,0.021,5,0.016,7,0.132,8,1.328,27,0.453,29,0.861,30,0.001,31,0.616,32,0.149,33,0.531,35,1.055,95,0.162,101,0.015,103,0.001,104,0.001,105,1.47,107,2.101,127,1.092,187,1.261,192,3.275,215,2.782,216,1.612,227,0.904,234,1.415,595,3.68,667,5.21,1184,7.223,1358,5.548,2524,7.807,3006,7.3,3116,9.171,3301,9.426,3302,7.3,3576,9.204,3579,4.288,3580,3.549,6298,9.475,18408,10.529,18414,11.055,18415,8.717,18416,8.058,18417,8.717,18418,10.991,18419,8.717,18420,7.624,18421,8.717]],["title/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.232,18420,5.947]],["body/classes/SchoolSpecificFileCopyServiceImpl.html",[0,0.279,2,0.913,3,0.019,4,0.025,5,0.015,7,0.124,8,1.275,27,0.435,29,0.827,30,0.001,31,0.591,32,0.144,33,0.511,35,0.991,36,2.264,39,2.204,95,0.15,101,0.014,103,0.001,104,0.001,111,2.117,112,2.576,116,3.641,127,1.323,185,3.181,192,2.439,214,3.329,216,1.952,227,0.849,595,3.914,1184,6.846,1358,6.721,2524,6.858,2702,3.688,2960,6.41,3116,8.905,3301,9.153,3302,6.855,3579,5.194,3580,3.332,3610,5.161,4205,3.559,6169,6.236,6217,5.194,6298,9.321,6648,7.567,10428,8.529,16913,6.612,18408,10.223,18410,9.761,18411,11.416,18413,7.567,18414,10.801,18416,7.567,18420,9.235,18422,8.185,18423,8.185,18424,8.185,18425,10.559,18426,8.185,18427,8.185,18428,8.185]],["title/injectables/SchoolValidationService.html",[105,0.91,14009,5.694]],["body/injectables/SchoolValidationService.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.121,8,1.261,27,0.478,29,0.908,30,0.001,31,0.649,32,0.158,33,0.56,35,1.263,36,2.63,47,0.573,95,0.157,99,1.341,101,0.013,103,0.001,104,0.001,105,1.396,107,1.938,111,2.323,112,2.871,116,3.609,127,1.007,167,3.84,187,1.162,189,7.452,192,3.11,204,2.727,215,2.566,216,1.486,217,1.046,221,2.415,227,1.082,234,1.305,305,2.29,323,6.493,369,1.784,450,3.302,1554,8.569,5362,6.294,6098,6.83,8856,7.031,8876,7.431,9777,8.027,12125,8.43,14009,8.739,14068,7.431,14822,6.493,18392,7.031,18429,12.264,18430,10.436,18431,8.038,18432,10.436,18433,10.436,18434,8.038,18435,8.038,18436,10.436,18437,8.038,18438,8.038]],["title/entities/SchoolYearEntity.html",[380,1.445,10752,4.328]],["body/entities/SchoolYearEntity.html",[0,0.301,3,0.021,4,0.021,5,0.011,7,0.133,27,0.499,30,0.001,31,0.711,32,0.165,47,0.864,83,4.084,95,0.142,96,2.416,101,0.018,103,0.001,104,0.001,165,0.868,214,2.784,240,4.297,334,0.949,364,2.206,380,2.355,381,2.938,398,2.602,400,3.897,402,3.66,404,1.591,405,2.353,406,2.872,2095,3.504,2395,7.479,4281,3.858,6475,9.043,6552,7.134,6553,6.728,10752,7.054,12221,10.592,12222,8.164,12223,10.635,12224,7.724,12225,8.164,12226,8.164,18439,8.831,18440,8.831,18441,8.831]],["title/injectables/SchoolYearRepo.html",[105,0.91,14010,5.694]],["body/injectables/SchoolYearRepo.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.195,10,3.994,12,4.533,18,5.001,26,2.098,27,0.525,29,0.931,30,0.001,31,0.666,32,0.162,33,0.575,34,1.262,35,1.499,36,2.655,40,3.58,49,3.894,83,2.269,95,0.143,99,1.238,101,0.012,103,0.001,104,0.001,105,1.324,107,1.788,112,2.948,167,2.729,187,1.073,217,1.288,221,1.717,227,1.026,234,1.204,380,1.576,381,3.292,404,1.783,596,3.625,692,5.09,877,7.63,883,4.199,884,4.664,885,5.628,908,4.547,909,4.602,910,4.547,911,4.602,912,5.282,913,4.547,914,4.602,915,4.111,919,5.651,3637,5.991,4208,7.194,6475,5.282,6922,5.991,9777,7.29,10752,7.09,12223,6.211,14010,8.289,18442,7.417,18443,11.884,18444,7.417,18445,7.417,18446,11.139,18447,7.417]],["title/injectables/SchoolYearService.html",[105,0.91,11197,5.493]],["body/injectables/SchoolYearService.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,8,1.297,12,4.92,26,2.644,27,0.488,29,0.841,30,0.001,31,0.602,32,0.146,33,0.519,34,1.43,35,1.3,36,2.675,40,5.185,95,0.152,99,1.403,101,0.014,103,0.001,104,0.001,105,1.437,107,2.027,112,2.905,127,1.053,187,1.216,215,2.683,216,1.555,217,1.398,221,2.486,227,1.114,883,3.567,1852,3.55,1904,3.517,1961,5.874,2531,4.544,3813,5.77,4208,7.808,4323,5.503,4618,7.372,9777,8.164,9785,7.041,9786,6.405,9787,5.503,10752,7.535,11197,8.677,14010,11.039,18448,12.473,18449,8.407,18450,12.473,18451,8.407,18452,8.407,18453,8.407,18454,8.407,18455,8.407,18456,8.407]],["title/classes/Scope.html",[0,0.232,277,2.744]],["body/classes/Scope.html",[0,0.248,2,0.811,3,0.017,4,0.017,5,0.009,7,0.11,8,1.18,27,0.533,29,0.864,30,0.001,31,0.618,32,0.179,33,0.533,35,1.182,95,0.125,96,1.989,101,0.012,103,0.001,104,0.001,111,2.671,127,0.911,144,1.999,148,3.005,165,0.765,217,0.946,227,1.222,247,2.848,277,4.758,319,2.173,347,2.488,371,2.005,398,2.142,529,5.504,884,4.602,905,3.027,959,8.541,1695,4.627,2394,7.982,5991,7.443,5992,7.443,5993,7.443,5998,6.591,5999,6.591,6001,8.547,6012,6.591,6013,7.957,6015,6.591,6017,6.591,15134,10.194,18457,7.27,18458,9.765,18459,9.765,18460,7.27,18461,7.27,18462,7.27,18463,7.27,18464,7.27,18465,7.27,18466,7.27,18467,7.27,18468,9.765,18469,11.027,18470,9.765,18471,7.27,18472,7.27,18473,7.27]],["title/classes/ScopeRef.html",[0,0.232,18474,5.181]],["body/classes/ScopeRef.html",[0,0.317,2,1.039,3,0.022,4,0.022,5,0.011,7,0.141,26,2.868,27,0.512,29,0.73,30,0.001,31,0.522,32,0.169,33,0.451,34,2.26,95,0.12,99,1.556,101,0.016,103,0.001,104,0.001,127,1.168,165,0.898,277,5.531,618,3.812,2049,6.68,2341,8.974,6123,8.617,6124,10.594,6125,8.617,7222,6.291,12228,11.966,18474,8.731,18475,10.593]],["title/classes/ServerConsole.html",[0,0.232,18476,5.947]],["body/classes/ServerConsole.html",[0,0.274,2,0.898,3,0.019,4,0.019,5,0.01,7,0.122,8,1.262,27,0.478,29,0.818,30,0.001,31,0.585,32,0.142,33,0.505,35,1.265,47,0.827,95,0.134,101,0.013,103,0.001,104,0.001,127,1.009,148,3.777,215,2.571,227,1.084,235,6.927,364,1.903,379,2.882,444,3.996,1125,7.974,1414,4.505,2075,6.374,2268,6.992,3480,6.745,3481,8.154,3484,8.441,3486,8.441,3489,5.627,3490,8.944,3491,8.449,3492,4.776,9757,9.082,10877,9.914,18476,9.139,18477,8.054,18478,11.346,18479,10.449,18480,8.054,18481,8.054,18482,10.449,18483,9.139,18484,8.054,18485,9.659,18486,8.054,18487,8.054]],["title/modules/ServerConsoleModule.html",[425,1.812,18488,5.947]],["body/modules/ServerConsoleModule.html",[0,0.245,3,0.017,4,0.017,5,0.009,30,0.001,32,0.098,47,0.513,87,3.609,95,0.179,96,2.652,99,1.2,101,0.012,103,0.001,104,0.001,187,1.04,234,1.168,347,1.455,369,1.596,381,2.392,398,2.119,425,3.128,427,2.598,428,2.795,429,2.878,430,2.865,431,2.853,432,4.036,433,2.718,442,3.879,443,2.818,444,2.75,449,3.846,461,1.645,511,3.634,778,4.854,801,4.177,802,5.228,885,4.898,1358,6.171,1646,4.022,1736,6.29,1852,3.037,2075,3.952,2130,3.141,2131,3.515,2132,3.389,2644,3.856,3491,6.091,3492,4.264,3566,9.885,3859,4.022,4865,4.936,5511,4.854,5541,5.809,6188,5.811,7806,6.29,7953,7.386,9621,4.854,10117,6.29,10355,10.572,10577,7.207,10578,7.207,10579,5.228,10581,5.121,10582,5.228,10583,7.207,10589,7.047,10590,7.047,10591,7.047,10592,5.228,10593,5.025,10605,5.346,10606,5.346,10607,5.228,11784,5.346,12245,6.023,12248,4.936,12658,7.831,14758,9.885,14770,6.023,14778,6.29,14898,6.648,18476,8.479,18488,11.752,18489,7.192,18490,7.192,18491,7.192,18492,7.192,18493,7.192,18494,7.192,18495,7.192,18496,9.695,18497,7.192,18498,7.192]],["title/controllers/ServerController.html",[481,2.611,18499,5.694]],["body/controllers/ServerController.html",[0,0.336,3,0.023,4,0.023,5,0.012,7,0.149,8,1.433,27,0.407,30,0.001,35,1.195,47,0.846,95,0.127,101,0.016,103,0.001,104,0.001,116,3.695,187,1.427,227,1.023,319,3.546,364,1.798,447,4.091,481,4.555,535,6.361,1125,7.035,1414,5.52,2075,5.424,9570,9.291,11526,8.265,18478,12.201,18499,9.936,18500,9.87,18501,9.87]],["title/modules/ServerModule.html",[425,1.812,18502,5.694]],["body/modules/ServerModule.html",[0,0.186,3,0.008,4,0.008,5,0.004,8,0.403,27,0.225,29,0.261,30,0.001,31,0.305,32,0.074,33,0.161,35,0.404,47,0.788,52,1.582,55,1.174,72,3.614,87,1.675,95,0.176,96,1.491,99,0.557,101,0.012,103,0,104,0,111,1.599,127,0.683,145,2.521,148,1.027,187,0.483,191,1.85,192,0.995,200,1.039,214,1.719,216,1.475,217,1.144,227,0.346,234,0.885,346,4.399,347,1.614,349,2.252,355,2.191,369,0.741,371,1.503,379,0.756,381,1.11,398,0.983,425,2.767,426,7.622,427,2.882,428,1.297,429,1.335,430,1.33,431,1.324,432,1.228,433,1.261,438,4.664,442,2.181,443,1.308,444,1.276,447,3.307,449,3.165,461,0.763,511,1.686,574,2.393,627,1.024,667,1.582,701,2.443,704,1.653,722,1.488,731,1.319,778,3.679,801,1.938,839,1.591,874,2.377,885,2.754,953,2.184,1161,2.29,1162,2.613,1163,2.613,1164,2.613,1183,2.332,1187,1.591,1188,1.573,1189,1.573,1190,1.664,1267,2.217,1268,2.046,1298,2.29,1301,3.622,1312,2.071,1314,2.153,1352,2.153,1358,2.124,1431,1.901,1467,1.065,1498,2.023,1503,7.389,1602,2.332,1618,1.938,1646,3.049,1763,2.426,1852,2.918,1948,2,2075,3.798,2130,1.458,2131,1.631,2132,1.573,2133,2.124,2257,2.023,2356,2.839,2357,3.634,2440,3.105,2644,1.789,2711,7.622,3495,2.184,3567,7.014,3579,2.682,3580,2.219,3861,5.265,3873,4.269,3874,8.998,4140,2.184,4544,2.481,4588,1.722,4593,2.754,4631,7.622,4865,2.29,5460,2.184,5511,2.252,6422,6.269,6616,2,8012,1.867,8358,2.217,9925,2.377,10416,2.332,10575,6.719,10576,4.828,10577,4.052,10578,4.052,10579,2.426,10580,4.153,10581,2.377,10582,2.426,10583,4.052,10589,3.963,10590,3.963,10591,3.963,10592,2.426,10593,2.332,10604,6.078,10605,2.481,10606,2.481,10607,2.426,10608,2.696,10609,2.481,10610,2.543,10645,2.332,10647,4.052,10649,2.426,10651,2.426,10653,10.241,10654,4.052,10935,7.622,11372,2.377,11530,2.795,11616,2.29,11635,5.023,11637,2.426,11714,2.071,12248,2.29,12918,7.622,13037,2.696,13421,2.543,13638,2.696,13844,7.622,13909,7.622,13916,2.795,14126,7.622,14561,5.023,14744,2.613,14770,2.795,15063,7.622,15574,7.622,15756,7.622,15938,4.565,15958,2.795,16167,2.919,16169,2.919,16171,2.919,16172,2.919,16173,2.919,16914,7.622,17092,2.795,17317,8.042,17321,2.919,17501,2.696,18499,7.364,18502,11.753,18503,3.337,18504,3.337,18505,7.389,18506,7.622,18507,7.622,18508,7.622,18509,7.622,18510,7.622,18511,7.622,18512,7.622,18513,3.085,18514,6.388,18515,8.723,18516,3.337,18517,6.388,18518,3.085,18519,3.085,18520,3.085,18521,3.085,18522,3.085,18523,3.085,18524,3.085,18525,3.085,18526,3.085,18527,3.085,18528,3.085,18529,3.085,18530,3.085,18531,3.085,18532,2.795,18533,3.085,18534,2.696,18535,2.696,18536,3.085,18537,3.085,18538,3.085,18539,3.085,18540,3.085,18541,7.375,18542,3.085,18543,3.085,18544,3.085,18545,3.085,18546,3.085,18547,3.085,18548,3.085,18549,3.085,18550,3.085,18551,6.388,18552,3.085,18553,5.039,18554,6.388,18555,3.085,18556,3.085,18557,3.085,18558,3.085,18559,3.085,18560,3.085,18561,3.085,18562,3.085,18563,3.085,18564,3.085,18565,3.085,18566,2.919,18567,3.085,18568,3.085,18569,3.085,18570,3.085,18571,3.085,18572,3.085,18573,3.085,18574,5.039,18575,3.085,18576,5.039,18577,3.085,18578,5.039,18579,3.085,18580,3.085,18581,3.085,18582,4.565,18583,3.085]],["title/modules/ServerTestModule.html",[425,1.812,18582,5.694]],["body/modules/ServerTestModule.html",[0,0.18,3,0.008,4,0.008,5,0.004,8,0.387,27,0.277,29,0.413,30,0.001,31,0.376,32,0.091,33,0.255,35,0.638,47,0.777,52,1.519,55,1.136,59,0.998,72,3.527,87,1.608,95,0.176,96,1.442,99,0.535,101,0.011,103,0,104,0,111,1.561,127,0.66,145,2.477,148,0.986,187,0.463,191,1.776,192,0.955,200,1.642,214,1.662,216,1.44,217,1.12,227,0.332,234,0.856,346,4.276,347,1.575,349,2.163,355,2.119,369,0.711,371,1.454,379,0.726,381,1.066,398,0.944,425,2.723,426,7.476,427,3.534,428,1.245,429,1.282,430,1.277,431,1.271,432,1.179,433,1.211,438,4.583,442,2.11,443,1.256,444,1.226,447,3.227,449,3.089,461,0.733,511,1.619,574,2.95,627,1.618,667,1.519,701,2.753,704,1.587,722,1.429,731,1.266,778,3.559,801,1.861,839,1.528,874,2.282,885,2.664,953,2.097,1161,2.199,1162,2.509,1163,2.509,1164,2.509,1183,3.684,1187,1.528,1188,1.51,1189,1.51,1190,1.597,1267,2.129,1268,1.965,1297,2.33,1298,3.619,1301,4.463,1312,1.989,1314,2.068,1352,3.402,1358,2.04,1431,3.004,1467,1.023,1498,3.196,1503,7.247,1602,2.239,1618,1.861,1646,3.757,1763,2.33,1852,3.633,1948,3.16,2075,3.692,2130,1.4,2131,1.566,2132,1.51,2133,2.04,2257,3.196,2356,2.76,2357,3.546,2440,4.435,2644,1.718,2711,7.476,3495,2.097,3567,6.88,3579,2.594,3580,2.147,3861,5.119,3873,4.129,3874,8.867,4140,3.451,4544,2.382,4588,1.654,4593,2.664,4631,7.476,4865,2.199,5460,2.097,5511,2.163,6422,6.149,6616,1.921,8012,1.792,8358,2.129,9925,2.282,10416,2.239,10575,3.755,10576,6.835,10577,3.92,10578,3.92,10579,2.33,10580,4.017,10581,2.282,10582,2.33,10583,3.92,10589,3.833,10590,3.833,10591,3.833,10592,2.33,10593,2.239,10604,5.932,10605,2.382,10606,2.382,10607,2.33,10608,2.589,10609,2.382,10610,2.442,10645,6.012,10647,5.787,10649,2.33,10651,3.833,10653,10.145,10654,3.92,10935,7.476,11372,3.755,11530,2.684,11616,3.619,11635,3.833,11637,2.33,11714,1.989,12248,2.199,12918,7.476,13037,2.589,13421,2.442,13638,2.589,13844,7.476,13909,7.476,13916,2.684,14126,7.476,14561,4.884,14744,2.509,14770,2.684,15063,7.476,15574,7.476,15756,7.476,15938,4.416,15958,2.684,16167,2.803,16169,2.803,16171,2.803,16172,2.803,16173,2.803,16914,7.476,17092,2.684,17317,7.902,17321,2.803,17501,2.589,18499,7.207,18502,7.207,18505,7.247,18506,7.476,18507,7.476,18508,7.476,18509,7.476,18510,7.476,18511,7.476,18512,7.476,18513,2.962,18514,6.211,18515,8.556,18517,6.211,18518,2.962,18519,2.962,18520,2.962,18521,2.962,18522,2.962,18523,2.962,18524,2.962,18525,2.962,18526,2.962,18527,2.962,18528,2.962,18529,2.962,18530,2.962,18531,2.962,18532,2.684,18533,2.962,18534,2.589,18535,2.589,18536,2.962,18537,2.962,18538,2.962,18539,2.962,18540,2.962,18541,7.197,18542,2.962,18543,2.962,18544,2.962,18545,2.962,18546,2.962,18547,2.962,18548,2.962,18549,2.962,18550,2.962,18551,6.211,18552,2.962,18553,4.874,18554,6.211,18555,2.962,18556,2.962,18557,2.962,18558,2.962,18559,2.962,18560,2.962,18561,2.962,18562,2.962,18563,2.962,18564,2.962,18565,2.962,18566,2.803,18567,2.962,18568,2.962,18569,2.962,18570,2.962,18571,2.962,18572,2.962,18573,2.962,18574,4.874,18575,2.962,18576,4.874,18577,2.962,18578,4.874,18579,4.874,18580,4.874,18581,4.874,18582,11.73,18583,2.962,18584,3.205,18585,3.205,18586,3.205,18587,3.205]],["title/classes/SetHeightBodyParams.html",[0,0.232,4001,5.947]],["body/classes/SetHeightBodyParams.html",[0,0.405,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,27,0.408,30,0.001,32,0.134,55,2.559,95,0.153,101,0.017,103,0.001,104,0.001,165,0.931,364,1.802,368,3.877,369,2.637,370,3.914,371,3.277,374,3.158,376,2.263,467,3.117,3248,8.217,4001,10.393,18588,11.882,18589,9.894,18590,9.894,18591,9.894,18592,10.984]],["title/entities/ShareToken.html",[380,1.445,6474,4.667]],["body/entities/ShareToken.html",[0,0.23,3,0.016,4,0.016,5,0.008,7,0.16,26,2.542,27,0.511,30,0.001,32,0.168,33,0.599,34,1.149,49,4.994,83,3.249,95,0.154,96,2.542,97,2.923,101,0.016,103,0.001,104,0.001,145,2.353,165,0.728,199,3.512,227,0.964,234,1.509,240,3.931,247,2.648,334,0.726,351,5.74,364,2.257,369,2.75,370,3.768,380,1.974,381,2.248,385,7.719,398,1.991,399,3.687,402,2.801,404,1.218,405,1.801,406,2.198,411,5.148,412,5.659,421,5.292,422,5.659,701,2.389,1031,3.584,2632,4.28,3339,4.663,3366,8.579,3610,4.542,4272,4.096,4771,7.08,4773,6.855,4779,5.659,5760,5.838,5788,5.659,5789,5.459,5790,5.659,6208,4.489,6217,5.627,6474,6.377,6491,5.659,9807,5.023,9875,7.563,9880,5.659,9956,4.912,9957,4.912,10014,6.247,10015,6.247,10054,5.148,10056,5.148,12249,7.782,12250,11.734,12251,6.247,12252,9.239,12253,7.85,12254,8.956,12255,6.247,12256,4.489,12257,4.423,12258,6.247,12259,6.247,18593,6.757,18594,6.757,18595,6.757,18596,6.757,18597,6.757,18598,6.757]],["title/classes/ShareTokenBodyParams.html",[0,0.232,18599,5.947]],["body/classes/ShareTokenBodyParams.html",[0,0.333,2,0.814,3,0.017,4,0.017,5,0.009,7,0.11,27,0.543,30,0.001,32,0.172,33,0.571,34,1.665,47,0.698,55,2.543,95,0.142,101,0.012,103,0.001,104,0.001,165,0.767,192,2.917,347,1.98,359,4.116,364,2.15,368,5.157,369,2.921,370,4.336,371,3.63,373,5.248,374,2.329,376,1.669,379,2.675,467,3.231,471,4.478,494,5.867,905,4.076,1000,3.985,1031,3.067,1036,8.198,1044,3.5,1248,7.458,2504,8.995,3090,4.234,3610,5.4,3795,4.281,5440,6.11,5478,7.907,6217,5.435,6474,8.103,7922,8.198,12253,8.451,12256,4.847,12257,4.775,18592,9.049,18599,8.562,18600,9.642,18601,7.296,18602,9.662,18603,9.662,18604,7.296,18605,9.789,18606,7.296,18607,9.245,18608,7.296,18609,7.296,18610,7.296,18611,9.789,18612,8.198,18613,7.296,18614,7.296]],["title/classes/ShareTokenContextTypeMapper.html",[0,0.232,18615,5.947]],["body/classes/ShareTokenContextTypeMapper.html",[0,0.316,2,1.035,3,0.022,4,0.022,5,0.011,7,0.14,8,1.38,27,0.383,29,0.727,30,0.001,31,0.52,32,0.155,33,0.449,35,1.123,95,0.159,101,0.015,103,0.001,104,0.001,187,1.342,208,3.466,217,1.487,227,0.962,234,1.855,305,2.643,627,3.8,1973,8.818,3228,7.274,3364,6.449,6072,6.897,6614,8.358,10535,9.995,10540,9.995,10555,8.577,10562,7.77,12252,10.439,12256,6.164,12257,6.073,14802,8.115,14805,8.115,18615,9.995,18616,11.427,18617,9.279]],["title/controllers/ShareTokenController.html",[481,2.611,18618,5.694]],["body/controllers/ShareTokenController.html",[0,0.176,3,0.012,4,0.012,5,0.006,7,0.078,8,0.927,27,0.377,29,0.717,30,0.001,31,0.512,32,0.19,33,0.442,35,1.107,36,2.429,95,0.165,100,1.731,101,0.009,103,0,104,0,112,2.712,187,0.748,206,2.631,215,1.65,216,0.956,217,1.474,221,2.118,227,0.949,231,2.866,264,3.845,351,5.08,364,1.666,376,1.183,447,2.143,481,1.985,483,2.466,491,6.16,498,5.266,502,4.761,504,3.384,506,7.414,509,7.358,513,6.327,543,6.261,553,6.135,554,8.239,555,2.688,556,2.75,558,2.481,561,2.772,563,5.484,564,4.764,805,4.177,883,3.255,1016,3.796,1353,4.886,1392,5.179,1733,4.177,1734,3.844,1735,4.522,2644,4.905,2727,2.481,2783,6.067,2900,6.801,2902,8.177,2904,3.939,2905,6.971,2908,7.414,2929,4.413,2930,2.772,2992,3.336,3009,3.134,3010,2.892,3228,4.884,3610,2.527,3743,4.502,6149,6.008,6217,2.544,6386,4.177,6474,5.266,8362,8.871,12248,3.549,13142,6.198,14107,5.704,17700,4.33,17715,4.522,17717,4.522,18599,8.854,18602,4.522,18603,4.522,18618,6.426,18619,10.123,18620,5.17,18621,8.458,18622,8.458,18623,8.458,18624,5.17,18625,8.631,18626,7.673,18627,5.17,18628,5.17,18629,5.17,18630,5.17,18631,10.257,18632,8.854,18633,5.17,18634,5.17,18635,7.673,18636,5.17,18637,7.673,18638,5.17,18639,5.17,18640,5.17,18641,5.17,18642,5.17,18643,5.17,18644,4.522,18645,4.522,18646,7.39,18647,6.426,18648,6.426,18649,5.17,18650,5.17,18651,5.17,18652,5.17,18653,5.17,18654,5.17,18655,5.17,18656,5.17,18657,5.17,18658,5.17,18659,4.522,18660,5.17,18661,7.673,18662,5.17,18663,5.17,18664,5.17,18665,5.17,18666,5.17]],["title/classes/ShareTokenDO.html",[0,0.232,18667,5.181]],["body/classes/ShareTokenDO.html",[0,0.264,2,0.865,3,0.018,4,0.018,5,0.009,7,0.117,26,2.415,27,0.532,29,0.608,30,0.001,31,0.435,32,0.183,33,0.636,34,1.735,47,0.727,83,3.12,95,0.131,101,0.022,103,0.001,104,0.001,127,0.972,165,0.799,188,2.866,192,2.312,199,4.305,231,6.315,351,5.716,385,7.688,404,1.838,411,5.912,421,6.076,596,2.367,1031,3.196,1790,3.276,1872,7.027,2545,4.127,2649,3.46,2659,3.635,3391,5.079,3610,3.793,4748,4.302,4773,4.651,5043,4.379,5055,4.463,5708,5.641,5760,4.875,6217,3.817,7183,7.986,7184,6.076,10031,4.875,12252,8.238,12253,6.999,12254,8.92,13905,6.787,16581,6.268,18667,9.575,18668,12.9,18669,7.76,18670,10.198,18671,9.539,18672,7.76,18673,9.201,18674,7.76,18675,7.76,18676,7.173,18677,7.76,18678,7.76,18679,7.173]],["title/classes/ShareTokenFactory.html",[0,0.232,18680,6.286]],["body/classes/ShareTokenFactory.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,8,1.34,26,2.694,27,0.365,29,0.693,30,0.001,31,0.496,32,0.12,33,0.428,34,1.888,35,1.071,49,3.482,59,2.757,95,0.163,99,1.477,101,0.015,103,0.001,104,0.001,217,1.152,227,1.151,231,4.906,234,1.802,351,5.569,404,2,674,6.098,676,6.552,731,3.497,734,5.042,735,5.141,2384,5.305,3047,6.303,3610,4.326,4121,5.793,6217,4.354,7286,7.412,12253,6.074,12257,5.793,18625,6.743,18667,6.743,18680,11.206,18681,11.097,18682,8.851,18683,11.097,18684,11.097,18685,8.851,18686,8.851,18687,8.851,18688,8.851,18689,7.741]],["title/classes/ShareTokenImportBodyParams.html",[0,0.232,18632,5.947]],["body/classes/ShareTokenImportBodyParams.html",[0,0.374,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,27,0.453,30,0.001,31,0.615,32,0.149,33,0.531,34,1.867,47,0.901,95,0.154,101,0.015,103,0.001,104,0.001,165,0.86,188,4.054,234,1.782,351,6.035,359,3.827,364,1.999,368,4.948,369,2.803,370,4.16,371,3.483,374,2.776,376,1.99,379,2.487,467,3.155,469,3.819,470,5.03,471,4.449,6155,10.518,6660,10.518,7049,7.026,7051,8.362,11763,9.192,11774,6.986,18600,9.417,18632,9.6,18690,8.698,18691,8.698,18692,10.976,18693,8.698,18694,8.698]],["title/interfaces/ShareTokenInfoDto.html",[334,0.731,18695,5.694]],["body/interfaces/ShareTokenInfoDto.html",[3,0.023,4,0.023,5,0.012,7,0.149,30,0.001,32,0.173,47,0.978,95,0.127,101,0.017,103,0.001,104,0.001,165,0.931,334,1.063,336,2.368,351,6.78,4320,9.146,6217,6.498,12253,9.066,12256,6.573,12257,6.475,18695,9.951,18696,9.894,18697,10.67]],["title/classes/ShareTokenInfoResponse.html",[0,0.232,18647,5.694]],["body/classes/ShareTokenInfoResponse.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,27,0.518,29,0.671,30,0.001,31,0.48,32,0.171,33,0.414,47,0.896,95,0.153,101,0.014,103,0.001,104,0.001,127,1.362,165,0.852,351,6.951,364,2.175,376,1.96,411,6.528,467,3.401,469,3.762,966,4.359,1031,2.685,2742,6.228,2745,6.92,2888,5.193,6208,5.692,6217,6.377,12253,8.897,12256,5.692,12257,5.608,18600,10.151,18647,10.856,18697,10.472,18698,8.568,18699,8.568,18700,8.568,18701,8.568,18702,8.568,18703,8.568]],["title/classes/ShareTokenInfoResponseMapper.html",[0,0.232,18644,5.947]],["body/classes/ShareTokenInfoResponseMapper.html",[0,0.322,2,1.054,3,0.03,4,0.022,5,0.011,7,0.143,8,1.396,27,0.39,29,0.74,30,0.001,31,0.529,32,0.128,33,0.457,35,1.144,95,0.148,100,3.87,101,0.016,103,0.001,104,0.001,217,1.23,227,0.98,234,1.535,351,6.265,627,3.831,974,5.605,975,6.407,982,4.712,1744,6.604,6217,4.65,14536,7.916,18644,10.109,18647,10.893,18659,8.268,18695,10.893,18697,7.636,18704,10.685,18705,11.558,18706,9.453,18707,9.453,18708,9.453]],["title/classes/ShareTokenParentTypeMapper.html",[0,0.232,18709,5.947]],["body/classes/ShareTokenParentTypeMapper.html",[0,0.313,2,1.025,3,0.022,4,0.022,5,0.011,7,0.139,8,1.372,27,0.379,29,0.72,30,0.001,31,0.515,32,0.154,33,0.445,35,1.113,95,0.158,101,0.015,103,0.001,104,0.001,187,1.33,208,3.435,217,1.479,227,0.953,234,1.845,305,2.619,627,3.784,1973,8.782,3228,7.233,3364,6.413,6072,6.834,6614,8.323,6707,7.7,10535,9.938,10540,9.938,10550,8.499,10557,8.499,10562,7.7,12253,8.841,12256,6.108,12257,6.017,14802,8.041,14805,8.041,14806,8.499,18709,9.938,18710,11.363,18711,9.194,18712,9.194]],["title/classes/ShareTokenPayloadResponse.html",[0,0.232,18713,5.947]],["body/classes/ShareTokenPayloadResponse.html",[0,0.309,2,1.011,3,0.021,4,0.021,5,0.011,7,0.137,27,0.505,29,0.71,30,0.001,31,0.508,32,0.167,33,0.439,47,0.803,95,0.145,101,0.015,103,0.001,104,0.001,127,1.136,165,0.883,231,5.028,351,6.434,364,2.052,376,2.075,467,3.364,1031,2.842,2888,5.497,3610,5.991,6202,7.102,6208,6.026,6217,6.03,12253,9.048,12256,6.026,12257,5.936,18600,10.039,18673,10.356,18713,9.855,18714,9.07,18715,11.267,18716,9.07,18717,9.07,18718,9.07,18719,8.384,18720,8.384]],["title/injectables/ShareTokenRepo.html",[105,0.91,18721,5.493]],["body/injectables/ShareTokenRepo.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.075,8,0.901,10,3.011,12,3.417,18,3.769,26,2.525,27,0.541,29,1.02,30,0.001,31,0.729,32,0.177,33,0.63,34,1.522,35,1.576,36,2.612,40,2.403,95,0.137,96,1.362,101,0.008,103,0,104,0,105,0.998,107,1.2,111,2.388,112,2.894,145,1.889,148,1.532,165,0.701,187,0.72,199,2.819,217,1.454,221,1.152,227,1.104,231,4.135,234,1.211,351,4.986,359,2.601,380,2.261,385,5.035,398,1.467,404,1.344,595,1.667,596,3.935,661,5.006,878,5.212,884,3.515,885,5.377,915,2.76,1790,4.717,2051,2.836,2343,9.078,2345,5.312,2346,5.312,2347,5.312,2348,5.312,2349,5.212,2350,5.212,2351,5.312,2352,5.212,2353,5.312,2360,3.545,2362,5.714,2363,3.545,2365,3.545,2367,3.259,2368,5.212,2369,3.545,2371,3.545,2373,5.312,2379,3.36,2380,5.212,2382,3.545,2384,2.984,2385,3.053,2386,3.545,2388,3.545,2390,3.478,2391,3.545,2409,3.701,3610,3.646,4773,4.471,5760,4.687,5862,3.619,5863,3.619,5864,3.619,5865,3.619,5866,3.619,5867,3.619,5868,3.619,5869,3.619,5870,3.619,5892,6.896,6217,3.67,6474,8.36,9007,3.793,12249,9.7,12254,7.78,12256,3.308,12257,3.259,14690,4.603,14700,4.17,18667,8.825,18671,6.247,18673,6.026,18676,4.603,18679,4.603,18721,6.026,18722,8.946,18723,4.979,18724,7.46,18725,7.46,18726,4.979,18727,7.46,18728,4.979,18729,4.979,18730,4.979,18731,4.979,18732,4.979,18733,4.979,18734,4.979,18735,4.979,18736,4.979,18737,7.46,18738,4.979,18739,4.979,18740,4.979,18741,4.979,18742,4.979,18743,4.979]],["title/classes/ShareTokenResponse.html",[0,0.232,18648,5.694]],["body/classes/ShareTokenResponse.html",[0,0.298,2,0.976,3,0.021,4,0.021,5,0.011,7,0.132,27,0.522,29,0.686,30,0.001,31,0.49,32,0.172,33,0.583,47,0.786,83,3.372,95,0.142,101,0.015,103,0.001,104,0.001,127,1.38,165,0.863,231,7.018,234,1.421,351,6.684,364,2.197,375,4.594,376,2.003,385,8.806,411,6.67,421,6.855,467,3.423,966,4.454,16195,8.093,16581,7.072,18600,10.217,18625,6.67,18648,10.927,18713,10.55,18744,8.754,18745,8.754,18746,8.754,18747,8.754,18748,8.754,18749,8.754]],["title/classes/ShareTokenResponseMapper.html",[0,0.232,18645,5.947]],["body/classes/ShareTokenResponseMapper.html",[0,0.323,2,1.057,3,0.022,4,0.022,5,0.011,7,0.143,8,1.398,27,0.391,29,0.742,30,0.001,31,0.531,32,0.129,33,0.458,35,1.147,95,0.149,100,3.876,101,0.016,103,0.001,104,0.001,217,1.233,227,0.983,231,5.252,234,1.538,351,6.272,385,6.395,627,3.835,974,5.618,975,6.416,982,4.723,6474,6.503,12256,6.295,12257,6.201,14536,7.935,18645,10.124,18648,10.901,18667,9.918,18704,10.7,18750,11.575,18751,9.475,18752,9.475,18753,8.759]],["title/injectables/ShareTokenService.html",[105,0.91,18754,5.493]],["body/injectables/ShareTokenService.html",[0,0.21,3,0.015,4,0.015,5,0.007,7,0.093,8,1.053,27,0.478,29,0.908,30,0.001,31,0.65,32,0.168,33,0.561,35,1.331,36,2.581,59,1.921,83,1.887,95,0.159,101,0.01,103,0,104,0,105,1.166,107,1.487,111,2.534,112,2.833,127,1.092,130,8.353,138,3.809,148,1.898,167,2.27,187,0.892,190,4.585,199,3.295,216,2.145,217,1.431,221,2.787,227,1.049,231,5.607,234,1.001,307,3.875,309,5.817,319,1.843,351,5.82,385,5.885,701,3.576,3013,4.982,3014,4.982,5002,9.691,5003,9.429,5209,6.719,6474,8.494,12253,4.233,12254,9.691,12256,4.098,12257,4.037,12621,5.702,16629,5.395,18667,8.836,18671,7.302,18673,8.88,18689,5.395,18697,9.368,18721,9.997,18753,8.06,18754,7.043,18755,12.039,18756,8.719,18757,10.114,18758,8.719,18759,8.719,18760,6.168,18761,9.725,18762,6.168,18763,8.719,18764,6.168,18765,6.168,18766,6.168,18767,8.719,18768,6.168,18769,8.719,18770,6.168,18771,5.395,18772,5.395,18773,6.168,18774,6.168,18775,6.168,18776,6.168,18777,6.168,18778,6.168,18779,6.168,18780,5.702,18781,6.168,18782,5.702,18783,6.168,18784,5.702,18785,6.168]],["title/injectables/ShareTokenUC.html",[105,0.91,18646,5.493]],["body/injectables/ShareTokenUC.html",[0,0.101,3,0.007,4,0.007,5,0.004,7,0.045,8,0.6,26,2.669,27,0.46,29,0.874,30,0.001,31,0.625,32,0.16,33,0.54,34,0.844,35,1.321,36,2.393,39,3.277,47,0.968,55,1.603,59,2.318,83,2.277,95,0.151,99,0.497,100,0.998,101,0.005,102,3.202,103,0,104,0,105,0.664,107,0.718,111,2.651,112,2.855,127,0.622,130,6.392,138,2.169,145,1.257,148,0.917,187,0.431,188,2.357,190,2.215,199,2.813,206,1.516,216,1.835,217,1.549,221,2.869,227,0.982,231,5.5,234,1.611,305,2.698,307,4.677,309,6.655,319,2.225,347,1.506,351,5.17,368,1.945,385,2.011,461,2.043,701,2.632,731,1.961,766,1.246,843,2.816,1187,2.367,1188,2.339,1189,2.339,1308,3.868,1353,1.438,1467,0.951,1642,2.122,1750,3.668,1795,4.023,1798,3.602,1799,6.244,1801,1.786,1804,3.868,1884,5.119,1928,7.416,1982,4.461,2130,1.302,2131,1.456,2132,1.404,2356,2.621,2357,3.39,2524,2.913,2633,5.099,2643,1.731,2649,2.213,2659,2.326,2725,1.35,2964,4.157,2965,5.155,2971,7.416,2972,7.931,2980,5.829,2992,3.203,3009,1.806,3010,1.666,3013,2.407,3014,2.407,3055,2.606,3056,2.606,3058,2.606,3059,6.234,3228,1.897,3339,1.495,3649,4.458,3859,1.666,4171,4.862,4773,1.786,5017,4.511,5034,3.782,5209,7.061,5760,1.872,5987,2.122,6072,2.215,6155,8.284,6217,4.659,6474,5.109,6640,7.65,6642,4.157,6659,8.014,6660,9.544,6698,4.157,6702,4.589,6708,2.754,6712,4.803,7922,4.157,9419,2.495,11615,2.122,12243,5.899,12252,2.407,12253,6.5,12256,1.979,12257,1.95,13144,4.157,14160,4.589,16958,2.495,17043,2.495,18602,2.606,18603,2.606,18615,2.606,18621,6.881,18622,6.881,18623,5.899,18646,4.01,18659,4.342,18667,2.27,18671,6.926,18673,7.65,18689,6.511,18695,4.157,18697,4.01,18709,2.606,18719,2.754,18720,2.754,18754,7.214,18780,6.881,18782,6.881,18784,6.881,18786,11.378,18787,2.979,18788,4.964,18789,4.964,18790,4.964,18791,4.964,18792,2.979,18793,2.979,18794,4.964,18795,2.979,18796,4.964,18797,2.979,18798,4.964,18799,2.979,18800,4.964,18801,2.979,18802,2.979,18803,2.979,18804,2.754,18805,2.979,18806,2.979,18807,2.979,18808,2.979,18809,2.979,18810,4.964,18811,2.979,18812,4.964,18813,2.979,18814,2.979,18815,2.979,18816,2.979,18817,4.964,18818,2.979,18819,4.964,18820,2.979,18821,6.381,18822,2.979,18823,2.979,18824,2.979,18825,2.979,18826,2.979,18827,4.964,18828,4.964,18829,7.444,18830,2.979,18831,2.979,18832,6.381,18833,4.964,18834,2.979,18835,2.979,18836,2.979,18837,4.964,18838,2.979,18839,4.589,18840,4.964,18841,4.964,18842,2.979,18843,4.964,18844,4.964,18845,2.979,18846,2.979,18847,2.979,18848,2.979,18849,6.381,18850,5.581,18851,2.979,18852,6.381,18853,2.979,18854,2.979,18855,2.979]],["title/classes/ShareTokenUrlParams.html",[0,0.232,18631,5.947]],["body/classes/ShareTokenUrlParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,351,6.735,359,4.082,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,470,4.898,479,7.179,18600,9.169,18607,9.169,18631,10.242,18856,9.657,18857,11.709,18858,9.657]],["title/modules/SharingApiModule.html",[425,1.812,18505,5.324]],["body/modules/SharingApiModule.html",[0,0.338,3,0.018,4,0.018,5,0.009,30,0.001,95,0.175,101,0.017,103,0.001,104,0.001,187,1.079,425,3.174,427,2.694,428,2.898,429,2.984,430,2.971,431,2.959,432,4.383,433,3.754,438,6.1,442,3.975,443,2.922,444,2.852,447,4.63,449,4.432,766,3.12,1467,2.38,1878,7.038,1923,9.68,2649,3.325,2659,3.494,2725,3.379,2727,3.578,3583,5.84,10424,6.024,10425,6.024,13848,9.273,13849,9.68,13867,9.68,18505,11.093,18618,9.354,18646,10.305,18721,8.024,18754,9.023,18761,8.024,18771,6.523,18772,6.523,18859,7.458,18860,7.458,18861,7.458,18862,10.684,18863,6.894,18864,6.894,18865,6.894]],["title/modules/SharingModule.html",[425,1.812,18862,5.694]],["body/modules/SharingModule.html",[0,0.333,3,0.017,4,0.017,5,0.009,30,0.001,95,0.174,101,0.016,103,0.001,104,0.001,187,1.051,425,3.141,427,2.626,428,2.825,429,2.909,430,2.896,431,2.884,432,4.338,433,4.168,438,6.061,442,3.907,443,2.848,444,2.78,447,4.048,449,4.375,766,3.041,1467,2.32,1878,6.993,1923,9.618,2649,3.241,2659,3.406,2725,3.293,2727,3.488,3583,5.693,10424,5.872,10425,5.872,13848,9.213,13849,9.618,13867,9.618,18505,5.693,18618,8.178,18646,7.888,18721,10.229,18754,11.049,18761,10.229,18771,6.358,18772,6.358,18862,11.934,18863,6.72,18864,6.72,18865,6.72,18866,7.27,18867,7.27,18868,7.27,18869,7.27]],["title/classes/SingleColumnBoardResponse.html",[0,0.232,17596,5.694]],["body/classes/SingleColumnBoardResponse.html",[0,0.241,2,0.788,3,0.017,4,0.017,5,0.009,7,0.107,27,0.518,29,0.553,30,0.001,31,0.396,32,0.18,33,0.342,34,1.63,47,0.896,95,0.14,101,0.012,103,0.001,104,0.001,127,1.2,145,1.789,165,0.75,240,3.039,347,2.357,364,2.218,376,1.616,379,2.846,467,3.295,469,3.102,475,4.683,966,3.595,1011,3.57,1013,4.978,1041,6.812,1184,5.31,1233,8.359,1397,4.3,1852,2.983,1858,5.018,2627,5.679,2655,6.831,2732,10.057,2745,6.098,2747,3.647,2884,5.095,2885,5.095,3435,9.759,3753,7.558,4078,6.532,5043,5.407,5055,5.51,5503,10.192,6469,6.364,6827,5.533,6831,7.501,7380,5.383,7420,8.662,7594,6.18,8146,10.2,17495,6.532,17596,10.2,18870,7.066,18871,7.066,18872,7.066,18873,7.066,18874,7.066,18875,7.066,18876,7.066,18877,5.383,18878,7.066,18879,7.066]],["title/classes/SingleFileParams.html",[0,0.232,6240,4.589]],["body/classes/SingleFileParams.html",[0,0.458,2,0.731,3,0.016,4,0.022,5,0.011,7,0.099,26,2.669,27,0.27,30,0.001,32,0.161,39,1.766,47,0.959,95,0.162,99,1.095,101,0.022,103,0.001,104,0.001,150,2.271,165,0.713,204,2.226,214,2.068,334,0.705,347,1.841,364,1.195,369,1.456,373,4.88,374,2.094,375,4.302,376,1.5,377,6.048,379,1.486,380,1.394,467,3.645,469,2.88,470,5.136,471,4.578,565,3.27,1000,4.999,1001,6.769,1031,3.276,1044,3.147,1180,2.823,1270,3.889,1330,5.795,1331,4.293,1332,4.293,2702,4.711,2889,5.177,3610,3.206,4205,2.211,5821,5.299,5836,6.635,6170,4.216,6183,5.958,6189,6.154,6217,3.227,6220,4.502,6221,4.583,6222,4.583,6225,7.882,6228,4.583,6229,8.157,6230,7.89,6231,7.89,6232,4.583,6233,4.502,6234,7.056,6235,4.502,6236,4.583,6237,4.427,6238,7.622,6239,4.358,6240,6.144,6241,4.502,6242,4.427,6243,4.427,6244,4.175,6245,4.583,6246,4.583,6247,4.583,6248,4.175,6249,4.175,6250,4.293,6251,4.358,6252,4.583,18880,6.559]],["title/classes/SortExternalToolParams.html",[0,0.232,9146,5.694]],["body/classes/SortExternalToolParams.html",[0,0.382,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,31,0.628,32,0.153,33,0.543,34,1.909,95,0.157,101,0.019,103,0.001,104,0.001,144,2.478,165,0.879,209,2.977,319,2.692,364,2.044,374,2.875,375,4.274,376,2.061,404,2.022,469,3.955,471,4.548,596,3.423,1031,3.516,1044,4.322,2559,4.081,3015,9.084,4430,10.629,4431,8.036,4434,7.88,4435,6.08,4436,7.545,4437,7.88,8615,7.277,9146,9.397,18881,9.009,18882,13.158,18883,9.009,18884,9.009]],["title/classes/SortHelper.html",[0,0.232,11218,5.947]],["body/classes/SortHelper.html",[0,0.282,2,0.924,3,0.02,4,0.02,5,0.01,7,0.125,8,1.285,27,0.342,29,0.834,30,0.001,31,0.464,32,0.145,33,0.401,35,1.003,47,0.759,55,2.764,95,0.106,99,1.383,101,0.014,103,0.001,104,0.001,116,2.581,145,3.141,227,0.859,247,3.247,627,3.607,692,4.989,905,4.431,1695,8.61,2144,7.634,2686,9.833,4431,8.499,6974,6.489,11218,9.308,18885,10.642,18886,7.248,18887,10.642,18888,10.642,18889,8.286,18890,8.286]],["title/classes/SortImportUserParams.html",[0,0.232,12749,5.694]],["body/classes/SortImportUserParams.html",[0,0.382,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.463,30,0.001,32,0.153,33,0.543,95,0.164,101,0.019,103,0.001,104,0.001,144,2.478,165,0.879,319,2.692,364,2.044,374,2.875,375,4.274,376,2.061,404,2.022,469,3.955,471,4.548,596,3.423,851,5.35,852,5.35,1031,3.516,1044,4.322,3015,9.084,4430,10.629,4431,8.036,4434,7.88,4435,6.08,4436,7.545,4437,7.88,4476,4.017,10657,7.545,12749,9.397,12860,12.164,18891,9.009,18892,9.009,18893,9.009]],["title/classes/SortingParams.html",[0,0.232,4430,5.493]],["body/classes/SortingParams.html",[0,0.382,2,1.363,3,0.021,4,0.021,5,0.011,7,0.136,9,6.027,27,0.463,30,0.001,32,0.174,33,0.543,95,0.144,101,0.015,103,0.001,104,0.001,144,2.478,165,0.879,319,2.692,364,2.226,374,2.875,375,4.274,376,2.061,471,4.548,692,4.192,728,4.291,1031,3.516,1044,4.322,3015,9.084,3654,9.397,4430,9.063,4431,8.641,4435,7.573,4436,7.545,10375,9.063,18894,9.009,18895,9.009,18896,11.22,18897,9.009,18898,9.009]],["title/injectables/StartUserLoginMigrationUc.html",[105,0.91,18899,5.694]],["body/injectables/StartUserLoginMigrationUc.html",[0,0.226,3,0.016,4,0.016,5,0.008,7,0.1,8,1.11,27,0.434,29,0.825,30,0.001,31,0.59,32,0.143,33,0.509,35,1.112,36,2.435,39,2.474,47,0.974,95,0.165,99,1.109,101,0.011,103,0.001,104,0.001,105,1.229,107,1.602,111,2.277,112,2.717,127,1.151,129,7.047,132,6.793,167,2.446,189,5.092,191,3.684,192,3.137,199,3.472,204,2.255,216,2.1,217,1.37,221,2.759,227,0.689,234,1.492,305,2.617,323,5.368,355,5.175,461,2.89,766,2.78,843,2.933,1464,3.061,1467,2.121,1795,4.965,1801,3.983,1884,6.83,1982,3.983,2356,5.191,2725,3.011,4184,4.486,4205,4.34,4476,5.064,4478,5.368,4481,5.368,4482,8.779,4485,6.144,4489,5.927,4491,7.047,4492,4.94,4495,5.204,4500,7.693,4501,6.829,8807,5.204,11224,5.204,17440,5.566,17443,6.144,17444,5.813,18397,5.566,18899,7.693,18900,11.357,18901,9.186,18902,8.035,18903,9.186,18904,6.646,18905,9.186,18906,6.646,18907,7.421,18908,6.646,18909,6.646,18910,6.646,18911,6.646]],["title/classes/StatelessAuthorizationParams.html",[0,0.232,16097,5.947]],["body/classes/StatelessAuthorizationParams.html",[0,0.376,2,0.98,3,0.021,4,0.021,5,0.011,7,0.133,27,0.523,30,0.001,32,0.172,33,0.662,47,0.951,95,0.142,101,0.015,103,0.001,104,0.001,165,0.866,204,4.101,364,2.309,374,2.806,470,5.304,471,5.296,602,9.255,1001,6.623,1044,4.218,1142,5.597,1909,9.464,1910,11.172,1911,8.128,1913,11.172,1914,8.128,1919,8.128,1920,5.597,1921,8.128,1922,8.128,16097,9.666,18912,13.064,18913,8.793,18914,8.793,18915,8.793,18916,8.793,18917,8.793]],["title/classes/StorageProviderEncryptedStringType.html",[0,0.232,12263,5.694]],["body/classes/StorageProviderEncryptedStringType.html",[0,0.235,2,0.77,3,0.016,4,0.016,5,0.008,7,0.104,8,1.14,27,0.476,29,0.841,30,0.001,31,0.602,32,0.179,33,0.519,35,1.142,47,1.005,59,2.152,95,0.138,96,1.89,101,0.012,103,0.001,104,0.001,111,2.154,127,0.865,144,3.431,145,3.159,165,0.739,167,3.471,217,1.228,227,1.294,247,3.696,379,1.565,398,2.035,404,1.7,406,2.247,766,2.89,777,8.412,1345,3.743,1581,8.221,1738,5.022,1852,2.917,1857,8.185,1948,5.654,2035,5.806,2130,3.018,2131,3.377,2132,3.255,2133,4.397,6528,4.919,7137,6.858,8244,8.678,11762,6.858,11949,8.251,11950,8.997,12263,7.9,14557,5.785,18918,6.908,18919,8.721,18920,9.434,18921,9.434,18922,9.434,18923,9.434,18924,9.434,18925,10.743,18926,9.434,18927,6.908,18928,9.434,18929,6.908,18930,6.908,18931,6.908,18932,9.434,18933,8.721,18934,9.434,18935,6.908,18936,6.386,18937,9.434,18938,6.908,18939,6.386]],["title/entities/StorageProviderEntity.html",[380,1.445,7948,5.055]],["body/entities/StorageProviderEntity.html",[0,0.279,3,0.019,4,0.019,5,0.01,7,0.124,27,0.51,30,0.001,32,0.178,33,0.511,47,0.993,95,0.15,96,2.244,101,0.018,103,0.001,104,0.001,165,0.828,240,4.226,334,0.881,364,2.251,369,2.346,370,2.702,380,2.246,381,2.728,386,4.672,398,2.416,399,4.195,400,3.619,402,3.4,404,1.478,405,2.185,406,2.668,2632,3.777,4771,6.249,6269,8.634,6271,8.634,6272,9.149,7948,7.859,11675,7.174,12260,9.247,12261,7.582,12262,11.424,12263,9.798,12264,7.582,12265,7.582,12266,7.582,12267,7.582,12268,7.582,12269,7.582,12270,7.582,12271,7.582,12272,7.582,18940,8.202,18941,8.202,18942,8.202,18943,8.202]],["title/injectables/StorageProviderRepo.html",[105,0.91,7945,5.694]],["body/injectables/StorageProviderRepo.html",[0,0.253,3,0.018,4,0.018,5,0.009,7,0.112,8,1.198,10,4.004,12,4.544,18,5.013,26,2.103,27,0.537,29,0.971,30,0.001,31,0.694,32,0.169,33,0.599,34,1.266,35,1.501,36,2.658,40,3.593,49,3.904,95,0.153,96,2.036,97,3.22,99,1.242,101,0.012,103,0.001,104,0.001,105,1.327,107,1.794,112,2.95,127,0.932,187,1.077,216,1.377,217,0.969,227,1.029,380,1.582,381,3.3,404,1.788,432,3.651,596,3.631,692,5.093,877,7.637,883,4.209,884,4.675,885,5.639,908,4.564,909,4.619,910,4.564,911,4.619,912,5.301,913,4.564,914,4.619,915,4.127,2354,5.411,2355,6.845,2359,7.212,2397,5.024,3675,5.109,5878,5.672,7945,8.309,7948,7.375,14949,9.32,18944,7.444,18945,7.444,18946,7.444,18947,7.444,18948,7.444]],["title/classes/StringValidator.html",[0,0.232,12859,5.324]],["body/classes/StringValidator.html",[0,0.292,2,0.955,3,0.02,4,0.02,5,0.01,7,0.129,8,1.313,27,0.448,29,0.852,30,0.001,31,0.609,32,0.148,33,0.526,35,1.316,47,0.98,59,3.386,101,0.014,103,0.001,104,0.001,144,3.643,167,3.153,217,1.415,227,1.302,247,4.26,319,2.561,347,2.199,369,2.413,371,3.464,470,4.548,627,4.065,1695,5.454,1750,5.571,12859,8.513,13020,10.986,18933,7.921,18949,8.568,18950,10.872,18951,10.872,18952,8.568,18953,10.872,18954,8.568,18955,8.568,18956,8.568]],["title/entities/Submission.html",[380,1.445,2849,2.941]],["body/entities/Submission.html",[0,0.158,3,0.011,4,0.011,5,0.006,7,0.156,26,2.186,27,0.502,30,0.001,32,0.171,33,0.563,34,0.788,47,0.806,55,1.844,62,2.717,72,2.097,95,0.15,96,1.267,101,0.012,103,0,104,0,111,1.416,116,3.384,144,1.273,145,2.425,165,0.75,187,0.67,192,2.854,208,1.73,217,1.687,227,1.208,234,1.555,240,3.695,305,1.319,319,1.384,334,0.497,347,2.504,364,2.218,369,2.585,370,3.396,371,1.947,380,1.5,381,1.54,386,4.876,394,4.023,398,1.364,399,2.801,400,2.043,402,1.919,404,0.834,405,1.234,406,1.506,461,2.665,738,2.407,844,4.696,957,2.567,1107,3.235,1129,2.663,1142,2.144,1353,3.408,1843,2.195,1942,3.177,1944,3.177,1950,3.297,1959,2.523,2632,5.608,2636,3.848,2640,2.523,2649,5.429,2650,2.873,2849,3.702,3106,6.132,3429,2.947,3430,3.235,3720,2.613,3775,6.463,3780,6.463,3788,5.913,3790,5.913,4205,1.56,4989,3.234,6216,3.914,6518,6.835,6519,3.076,6521,2.839,6523,2.589,6539,5.028,6543,2.873,6544,2.775,6751,3.125,6752,4.28,6864,4.556,7044,2.947,8894,7.295,11882,4.933,11883,4.933,11888,4.933,11889,3.235,12105,6.961,12273,5.913,12274,4.28,12275,8.852,12276,9.463,12277,6.176,12278,4.28,12279,6.527,12280,4.28,12281,4.28,12282,4.28,12283,4.28,12284,3.74,12285,4.28,12286,4.28,12287,4.28,12288,3.877,12289,4.28,12290,4.28,12291,4.28,12292,4.28,12293,4.28,12294,4.28,12295,9.53,12296,4.28,12297,4.28,12298,4.28,12299,4.28,12300,4.28,12301,4.28,12302,8.852,12303,4.28,12304,6.363,12305,3.74,12306,10.044,12307,6.527,12308,3.877,12309,6.527,12310,4.049,12311,3.365,12312,3.625,12313,4.28,12314,4.28,12315,4.28,12316,4.28,12317,6.527,12318,6.527,12319,4.28,12320,4.28,12321,4.28,12322,4.28,12323,6.363,12324,3.74,12325,3.877,12326,6.527,18957,4.63,18958,4.63,18959,4.63,18960,4.63,18961,4.63,18962,4.63,18963,4.63,18964,4.63,18965,4.63,18966,4.63,18967,4.63]],["title/classes/SubmissionContainerContentBody.html",[0,0.232,5647,4.517]],["body/classes/SubmissionContainerContentBody.html",[0,0.457,2,0.656,3,0.014,4,0.014,5,0.007,7,0.089,9,2.771,27,0.242,30,0.001,31,0.638,32,0.185,33,0.408,47,0.812,83,2.578,95,0.138,99,0.981,101,0.022,103,0,104,0,144,3.132,150,2.036,163,1.81,165,0.66,240,1.865,364,1.071,369,1.305,374,1.877,375,3.752,376,1.345,379,1.91,404,2.052,467,3.596,470,4.764,471,3.993,524,3.382,999,5.364,1000,3.431,1031,1.842,1044,2.821,1770,4.895,2303,4.616,2553,4.199,2848,2.838,2849,3.645,2889,2.912,3251,3.486,3253,3.486,3259,5.084,3262,5.047,3267,3.288,4009,3.743,4037,3.743,4038,7.066,4096,5.768,5562,6.356,5564,6.356,5566,6.356,5568,6.356,5570,6.356,5604,3.848,5643,6.544,5644,6.544,5645,6.544,5646,6.544,5647,7.147,5835,3.694,5836,6.826,6979,3.906,7038,4.924,7039,5.364,8169,8.237,8170,5.784,8171,4.035,8174,6.544,8175,6.544,8176,4.035,8177,6.544,8178,5.167,8179,5.688,8180,6.544,8181,6.544,8182,3.906,8183,3.906,8184,3.906,8185,3.906,8186,4.035,8187,4.035,8188,4.035,8189,4.035,8190,4.035,18968,5.88]],["title/classes/SubmissionContainerElement.html",[0,0.232,2838,4.272]],["body/classes/SubmissionContainerElement.html",[0,0.216,2,0.706,3,0.015,4,0.015,5,0.008,7,0.096,8,1.073,27,0.54,29,0.977,30,0.001,31,0.698,32,0.176,33,0.603,35,1.54,36,1.905,55,1.913,59,1.972,83,3.583,95,0.132,101,0.017,103,0.001,104,0.001,112,2.261,116,2.767,144,2.443,148,3.605,165,0.696,167,4.31,208,2.366,217,0.824,221,1.466,227,1.064,334,0.68,347,2.075,363,5.654,404,1.849,595,2.974,596,3.882,661,3.733,687,2.699,692,3.318,728,2.422,806,3.616,884,4.186,1345,2.512,1790,4.696,1793,6.62,1865,4.046,2557,6.405,2627,2.661,2749,7.838,2752,6.325,2753,6.325,2754,6.325,2755,5.901,2756,6.325,2758,4.207,2759,5.446,2760,6.526,2762,6.206,2763,5.446,2764,6.397,2766,4.424,2767,4.688,2769,6.446,2770,4.424,2772,6.325,2774,4.424,2776,4.207,2804,5.384,2838,6.988,2841,5.512,2849,2.739,2850,6.149,2851,5.115,3262,5.699,3945,6.457,3946,4.603,3947,4.603,3956,3.979,3961,5.512,4711,5.539,4712,5.854,8634,4.51,17463,5.854,17465,5.854,18969,8.287,18970,6.333,18971,6.333,18972,8.211,18973,5.854,18974,5.854,18975,5.854,18976,5.539,18977,5.854]],["title/classes/SubmissionContainerElementContent.html",[0,0.232,18978,5.694]],["body/classes/SubmissionContainerElementContent.html",[0,0.355,2,0.896,3,0.019,4,0.019,5,0.01,7,0.121,27,0.43,29,0.63,30,0.001,31,0.45,32,0.177,33,0.389,34,1.971,47,0.826,83,3.985,95,0.149,99,1.341,101,0.017,103,0.001,104,0.001,127,1.451,165,0.817,167,4.513,364,1.464,376,1.839,379,2.365,467,3.417,475,3.929,618,3.287,728,3.991,966,4.09,1011,4.061,1031,2.519,2303,4.697,2536,6.255,2578,3.584,2850,6.945,2884,4.275,2885,4.275,2889,3.98,3262,6.795,3436,5.616,3448,4.928,3694,6.87,3698,6.061,3702,5.34,3704,5.34,4012,7.951,4096,6.212,5568,5.187,8650,6.493,9849,7.031,12462,6.124,18978,10.908,18979,10.712,18980,9.127,18981,9.647,18982,9.647]],["title/classes/SubmissionContainerElementContentBody.html",[0,0.232,8180,4.517]],["body/classes/SubmissionContainerElementContentBody.html",[0,0.456,2,0.648,3,0.014,4,0.014,5,0.007,7,0.088,9,2.739,27,0.345,30,0.001,31,0.635,32,0.188,47,0.808,83,1.778,95,0.137,99,0.97,101,0.022,103,0,104,0,144,3.118,145,1.472,150,2.012,163,1.789,165,0.655,240,1.844,364,1.522,369,1.29,374,1.855,375,3.728,376,1.329,379,1.894,404,2.127,467,3.591,470,4.742,471,3.967,524,3.343,596,1.773,999,5.32,1000,3.403,1011,2.937,1031,1.821,1044,2.788,1770,3.376,2303,4.93,2553,4.171,2848,2.805,2849,2.514,2889,2.878,3251,3.446,3253,3.446,3259,5.051,3262,2.978,3267,3.25,4009,3.699,4037,3.699,4038,7.035,4096,5.737,5562,6.314,5564,6.314,5566,6.314,5568,6.905,5570,6.314,5604,3.804,5643,6.502,5644,6.502,5645,6.502,5646,6.502,5647,7.109,5835,3.652,5836,6.802,6979,3.861,7039,3.699,8169,8.555,8170,5.736,8171,3.989,8174,6.502,8175,6.502,8176,3.989,8177,6.502,8178,3.563,8179,3.923,8180,7.109,8181,6.502,8182,3.861,8183,3.861,8184,3.861,8185,3.861,8186,3.989,8187,3.989,8188,3.989,8189,3.989,8190,3.989,8655,4.551,18983,5.812,18984,5.812]],["title/entities/SubmissionContainerElementNode.html",[380,1.445,3189,5.324]],["body/entities/SubmissionContainerElementNode.html",[0,0.297,3,0.021,4,0.021,5,0.011,7,0.132,27,0.359,30,0.001,32,0.118,83,3.683,95,0.162,96,2.384,101,0.018,103,0.001,104,0.001,165,0.861,167,4.429,208,3.256,217,1.134,227,0.904,240,3.486,334,0.936,364,1.588,369,2.439,370,2.871,380,2.335,381,2.899,386,4.966,398,2.568,404,1.98,405,2.323,617,4.832,1790,5.083,2553,4.685,2557,5.372,2577,4.919,2578,3.886,2850,6.587,3143,5.757,3155,6.587,3189,8.606,3222,5.344,3246,9.613,3262,6.476,3598,6.739,3619,5.409,4059,5.548,4061,5.548,9857,7.624,12462,6.641,12463,7.041,18985,9.204,18986,9.613,18987,8.058]],["title/interfaces/SubmissionContainerElementProps.html",[334,0.731,18976,5.947]],["body/interfaces/SubmissionContainerElementProps.html",[0,0.287,3,0.02,4,0.02,5,0.01,7,0.127,30,0.001,32,0.146,36,1.806,83,3.946,95,0.152,101,0.02,103,0.001,104,0.001,112,1.857,144,2.317,148,2.593,165,0.842,167,4.746,208,3.147,217,1.096,221,1.95,227,1.229,334,0.905,336,2.016,347,1.704,404,2.135,687,3.591,728,3.222,806,4.379,1345,3.343,1790,3.557,1865,4.899,2557,5.258,2627,3.541,2749,6.519,2759,5.166,2760,6.311,2763,5.166,2764,6.186,2772,5.999,2804,7.181,2838,7.445,2841,6.674,2849,3.644,2850,5.05,2851,6.805,3262,6.608,3956,5.293,3961,6.674,8634,5.999,18969,6.805,18972,9.943,18973,7.788,18974,7.788,18975,7.788,18976,9.408,18977,7.788]],["title/classes/SubmissionContainerElementResponse.html",[0,0.232,4012,5.181]],["body/classes/SubmissionContainerElementResponse.html",[0,0.343,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,27,0.515,29,0.596,30,0.001,31,0.426,32,0.186,33,0.368,34,2.124,47,0.805,83,3.452,95,0.145,99,1.271,101,0.017,103,0.001,104,0.001,127,1.413,165,0.789,167,3.706,364,2.187,376,1.741,379,1.725,467,3.486,475,3.721,618,3.113,728,2.911,966,3.873,1031,2.386,2303,5.063,2536,4.563,2578,3.394,2850,7.691,2883,4.983,2884,5.356,2885,5.356,2888,4.614,2889,4.987,3262,6.153,3436,5.319,3448,4.668,3694,7.405,3698,6.555,3702,5.058,3704,5.058,4012,9.515,4096,6.696,5568,6.498,9862,6.659,9863,6.659,9864,6.659,9865,6.659,9866,6.659,12462,5.8,18978,10.057,18979,11.862,18980,6.659,18981,7.038,18982,7.038]],["title/classes/SubmissionContainerElementResponseMapper.html",[0,0.232,5586,5.947]],["body/classes/SubmissionContainerElementResponseMapper.html",[0,0.257,2,0.841,3,0.018,4,0.018,5,0.009,7,0.114,8,1.209,27,0.493,29,0.784,30,0.001,31,0.561,32,0.163,33,0.484,34,1.283,35,1.36,95,0.144,99,1.259,100,2.525,101,0.013,103,0.001,104,0.001,111,2.252,116,2.349,165,0.784,214,3.155,217,0.981,227,1.165,234,2.022,347,2.024,591,3.278,627,3.927,806,3.07,974,4.472,975,5.548,978,6.092,980,5.746,1750,4.439,2051,4.296,2303,3.057,2547,8.35,2550,7.837,2551,7.837,2553,5.652,2554,7.625,2838,8.331,2850,7.462,3262,5.128,3694,4.472,3698,5.813,3715,5.371,4012,9.115,4096,4.043,5183,7.057,5568,4.866,5581,5.906,5586,11.421,8672,9.115,8674,6.092,8676,6.092,8677,6.092,8678,6.092,18978,9.407,18988,11.51,18989,7.542,18990,11.232,18991,11.232,18992,7.542]],["title/interfaces/SubmissionContainerNodeProps.html",[334,0.731,18986,5.947]],["body/interfaces/SubmissionContainerNodeProps.html",[0,0.299,3,0.021,4,0.021,5,0.011,7,0.133,30,0.001,32,0.119,83,3.876,95,0.163,96,2.4,101,0.018,103,0.001,104,0.001,165,0.864,167,4.662,208,3.278,217,1.142,227,0.91,240,3.501,334,0.943,336,2.1,369,1.947,370,2.89,380,2.345,398,2.585,404,2.176,405,2.338,617,4.864,1790,5.098,2553,3.74,2557,5.394,2577,4.952,2578,3.912,2850,5.258,3143,5.78,3155,6.614,3189,6.87,3222,5.379,3246,9.652,3262,6.69,3598,7.403,3619,5.444,4059,5.585,4061,5.585,12462,6.684,12463,7.087,18985,7.347,18986,10.56,18987,8.11]],["title/classes/SubmissionContainerUrlParams.html",[0,0.232,3724,5.947]],["body/classes/SubmissionContainerUrlParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,34,1.992,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,1000,4.767,2849,5.064,2850,7.018,3724,10.242,3795,5.666,7055,9.169,18993,10.242,18994,9.657,18995,11.65,18996,9.657]],["title/controllers/SubmissionController.html",[481,2.611,18997,5.947]],["body/controllers/SubmissionController.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.117,8,1.232,10,4.597,27,0.42,29,0.799,30,0.001,31,0.571,32,0.139,33,0.493,35,1.234,36,2.594,95,0.166,100,2.598,101,0.013,103,0.001,104,0.001,112,2.843,185,4.427,187,1.122,206,3.948,215,2.477,216,1.435,217,1.575,221,2.36,227,1.057,234,1.26,264,4.286,364,1.857,376,1.775,447,3.216,481,2.979,483,3.7,491,6.469,513,6.741,555,4.034,556,4.127,561,4.16,1750,4.523,2727,3.723,2908,6.674,2930,4.16,3720,5.755,14138,6.498,14144,6.498,18997,8.919,18998,7.76,18999,11.391,19000,10.582,19001,10.198,19002,7.76,19003,7.76,19004,10.132,19005,10.198,19006,7.76,19007,6.787,19008,9.539,19009,6.498,19010,7.76,19011,7.76,19012,7.76,19013,7.76,19014,7.76,19015,7.173,19016,7.76,19017,10.198,19018,7.76,19019,7.76,19020,7.76]],["title/classes/SubmissionFactory.html",[0,0.232,19021,6.286]],["body/classes/SubmissionFactory.html",[0,0.156,2,0.51,3,0.011,4,0.011,5,0.006,7,0.069,8,0.845,27,0.541,29,1.013,30,0.001,31,0.691,32,0.178,33,0.597,34,1.445,35,1.44,47,0.499,55,2.614,59,3.193,95,0.139,99,0.763,101,0.008,103,0,104,0,127,0.573,138,3.055,144,3.191,148,1.407,165,0.548,185,4.978,192,1.362,216,1.293,217,1.407,227,1.063,319,3.468,359,2.438,366,2.557,369,1.552,379,1.925,380,2.178,381,2.326,404,1.26,538,3.151,596,3.866,627,2.146,660,7.164,661,4.544,662,5.369,665,3.947,666,5.369,667,5.638,668,3.947,669,3.947,670,3.947,671,3.877,672,4.352,673,4.793,674,6.377,675,5.683,676,6.988,677,2.605,682,2.58,683,3.947,684,2.605,685,5.021,686,5.184,687,4.055,688,4.875,689,3.911,690,2.58,691,2.432,692,4.039,693,2.513,694,2.471,695,2.58,696,4.946,697,2.605,698,4.708,699,2.58,700,7.297,701,4.102,702,6.549,703,2.605,704,4.206,705,2.58,706,2.605,707,2.58,708,2.605,709,2.58,710,2.91,711,2.711,712,2.58,713,5.993,714,2.605,715,2.58,716,3.947,717,3.691,718,3.947,719,2.605,720,2.492,721,2.471,722,2.038,723,2.58,724,2.58,725,2.58,726,2.605,727,2.605,728,1.748,729,2.58,730,2.605,731,2.763,732,2.58,733,2.605,735,2.656,736,2.711,737,5.702,848,3.256,849,3.483,2649,2.038,2849,3.025,3106,3.947,3775,6.919,3780,6.919,6736,3.58,6737,3.693,6746,3.58,8894,5.328,12273,3.829,12276,5.857,19021,7.851,19022,4.572,19023,9.513,19024,6.994,19025,4.572,19026,4.572,19027,4.572,19028,6.994,19029,4.572,19030,4.572,19031,3.999,19032,4.572,19033,3.999,19034,4.572,19035,4.572,19036,4.572,19037,4.226]],["title/classes/SubmissionItem.html",[0,0.232,2841,4.219]],["body/classes/SubmissionItem.html",[0,0.205,2,0.67,3,0.014,4,0.014,5,0.007,7,0.091,8,1.034,26,2.531,27,0.546,29,0.984,30,0.001,31,0.703,32,0.176,33,0.607,35,1.547,36,1.836,39,2.926,55,1.844,59,1.872,95,0.128,99,1.003,101,0.017,103,0,104,0,112,2.198,116,2.667,144,2.989,148,3.674,165,0.671,208,2.246,221,1.391,227,1.127,334,0.646,347,2.54,363,5.45,371,1.658,404,1.797,595,2.867,596,3.83,661,3.598,687,2.562,692,3.198,728,3.274,731,2.375,774,4.126,806,2.447,884,4.034,1187,2.867,1188,2.833,1189,2.833,1190,2.996,1191,3.276,1345,2.385,1790,3.615,1793,6.434,1865,3.9,1941,3.826,2557,6.335,2614,4.37,2615,4.281,2627,2.526,2749,7.745,2752,6.097,2753,6.097,2754,6.097,2755,5.688,2756,6.097,2757,4.057,2758,3.994,2759,5.249,2760,6.376,2762,5.982,2763,5.249,2764,6.25,2766,4.2,2767,4.519,2769,6.828,2770,4.2,2774,4.2,2776,3.994,2804,5.189,2841,6.743,2849,2.6,3195,3.73,3264,6.586,3945,4.37,3946,4.37,3947,4.37,3956,3.777,4711,5.258,5609,4.469,7405,4.856,16913,6.916,18969,9.277,19038,5.557,19039,6.011,19040,6.011,19041,7.915,19042,6.011,19043,6.011,19044,6.011,19045,6.011,19046,6.011,19047,6.011,19048,6.011,19049,7.915,19050,5.557,19051,5.557,19052,5.557,19053,5.557,19054,5.557,19055,5.258,19056,5.557]],["title/injectables/SubmissionItemFactory.html",[105,0.91,19057,6.286]],["body/injectables/SubmissionItemFactory.html",[0,0.326,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,30,0.001,34,1.627,35,1.158,39,2.575,49,3.763,83,3.562,95,0.161,101,0.016,103,0.001,104,0.001,105,1.557,107,2.306,187,1.383,227,0.992,234,2.173,371,2.638,591,4.157,592,4.333,667,6.19,734,5.449,2841,8.104,2849,4.137,2851,7.726,3264,5.797,4121,7.619,18969,9.404,19057,10.762,19058,9.565,19059,9.565]],["title/entities/SubmissionItemNode.html",[380,1.445,3192,5.324]],["body/entities/SubmissionItemNode.html",[0,0.272,3,0.019,4,0.019,5,0.01,7,0.157,26,2.594,27,0.429,30,0.001,32,0.141,39,3.295,95,0.163,96,2.186,99,1.334,101,0.017,103,0.001,104,0.001,165,0.814,204,2.711,208,2.985,217,1.04,227,0.829,240,3.882,334,0.858,347,2.337,364,1.893,380,2.209,381,2.658,398,2.354,404,1.873,405,2.129,415,4.319,416,5.086,461,2.378,617,4.43,798,5.021,803,4.958,883,3.39,960,7.134,1308,4.843,1790,4.878,1852,3.374,2469,5.156,2557,5.081,2577,4.51,2578,3.563,2849,4.496,3106,5.867,3143,5.445,3155,6.23,3192,8.14,3195,7.17,3222,4.899,3261,9.092,3264,7.416,3598,6.374,3619,4.958,4059,5.086,4060,7.387,4061,5.086,5465,7.92,7802,5.94,8660,6.989,8894,6.088,11609,5.808,18985,9.676,19060,7.99,19061,9.61,19062,9.61,19063,7.387,19064,9.092,19065,6.989,19066,7.387,19067,7.387]],["title/interfaces/SubmissionItemNodeProps.html",[334,0.731,19064,5.947]],["body/interfaces/SubmissionItemNodeProps.html",[0,0.28,3,0.019,4,0.019,5,0.01,7,0.16,26,2.715,30,0.001,32,0.144,39,3.448,95,0.164,96,2.253,99,1.374,101,0.018,103,0.001,104,0.001,165,0.83,204,2.794,208,3.077,217,1.072,227,0.854,240,3.718,334,0.885,336,1.971,347,2.503,380,2.252,398,2.426,404,2.112,405,2.194,415,4.451,416,5.242,461,1.884,617,4.565,798,5.174,803,5.11,883,3.494,960,5.652,1308,4.991,1790,4.949,1852,3.477,2469,5.314,2557,5.182,2577,4.648,2578,3.672,2849,3.562,3106,4.648,3143,5.552,3155,6.353,3192,6.449,3195,5.11,3222,5.049,3261,9.271,3264,7.762,3598,7.187,3619,5.11,4059,5.242,4061,5.242,5465,6.275,7802,6.122,8894,6.275,11609,5.986,18985,6.897,19061,7.613,19062,7.613,19063,7.613,19064,10.253,19065,7.203,19066,7.613,19067,7.613]],["title/interfaces/SubmissionItemProps.html",[334,0.731,19055,5.947]],["body/interfaces/SubmissionItemProps.html",[0,0.274,3,0.019,4,0.019,5,0.01,7,0.122,26,2.763,30,0.001,32,0.158,36,1.727,39,3.424,95,0.149,99,1.344,101,0.019,103,0.001,104,0.001,112,1.775,144,2.874,148,2.479,165,0.818,208,3.009,221,1.864,227,1.273,334,0.865,336,1.928,347,2.636,371,2.221,404,2.09,687,3.433,728,3.996,731,3.182,774,5.528,806,3.279,1187,3.841,1188,3.795,1189,3.795,1190,4.015,1191,4.389,1345,3.196,1865,4.759,1941,5.127,2557,5.108,2614,5.855,2615,5.736,2627,3.385,2749,6.333,2757,5.436,2759,4.938,2760,6.131,2763,4.938,2764,6.01,2804,7.03,2841,7.197,2849,3.484,3195,4.998,3264,7.708,3956,5.061,5609,5.987,16913,8.441,18969,6.506,19038,7.446,19041,7.446,19049,9.659,19050,7.446,19051,7.446,19052,7.446,19053,7.446,19054,7.446,19055,9.139,19056,7.446]],["title/classes/SubmissionItemResponse.html",[0,0.232,8212,5.493]],["body/classes/SubmissionItemResponse.html",[0,0.28,2,0.916,3,0.019,4,0.019,5,0.01,7,0.124,27,0.528,29,0.644,30,0.001,31,0.46,32,0.174,33,0.397,34,2.177,39,3.446,47,0.882,95,0.136,101,0.014,103,0.001,104,0.001,127,1.326,165,0.829,347,2.141,364,2.253,376,1.88,415,4.442,467,3.497,475,5.175,618,3.361,966,4.182,2883,6.929,2884,6.578,2885,6.578,3264,7.757,3694,7.589,3698,6.802,3702,5.46,3704,5.46,7055,10.26,8212,10.338,18993,11.46,19065,7.188,19068,8.219,19069,8.219,19070,8.219,19071,8.219,19072,8.219,19073,8.219]],["title/classes/SubmissionItemResponseMapper.html",[0,0.232,3738,5.694]],["body/classes/SubmissionItemResponseMapper.html",[0,0.237,2,0.776,3,0.016,4,0.016,5,0.008,7,0.105,8,1.145,27,0.499,29,0.844,30,0.001,31,0.604,32,0.157,33,0.521,34,1.183,35,1.401,39,2.552,95,0.122,99,1.161,100,2.329,101,0.012,103,0.001,104,0.001,111,2.506,116,3.984,165,0.742,217,1.576,227,1.201,234,1.967,461,1.591,591,3.023,627,3.836,851,3.317,852,3.317,974,4.124,975,5.254,1016,3.328,1750,5.135,2841,8.078,3090,4.663,3109,9.745,3146,4.621,3147,4.488,3195,7.757,3264,4.216,3694,4.124,3698,5.505,3707,5.825,3715,4.953,3735,9.029,3738,10.712,3741,6.084,5183,6.774,6580,5.056,8212,9.785,8672,8.821,10933,5.825,14536,5.825,16029,6.43,17595,6.43,18988,11.555,19074,9.478,19075,9.478,19076,9.478,19077,6.956,19078,9.478,19079,9.478,19080,9.029,19081,10.781,19082,6.43,19083,6.956,19084,6.956,19085,9.478,19086,6.956,19087,6.956,19088,6.956,19089,6.956,19090,6.956,19091,6.956,19092,6.43]],["title/injectables/SubmissionItemService.html",[105,0.91,3573,5.493]],["body/injectables/SubmissionItemService.html",[0,0.231,3,0.016,4,0.016,5,0.008,7,0.102,8,1.125,12,4.266,26,2.693,27,0.472,29,0.897,30,0.001,31,0.641,32,0.169,33,0.554,34,1.81,35,1.288,36,2.66,39,2.865,40,4.496,49,2.668,83,3.255,95,0.159,99,1.132,101,0.011,103,0.001,104,0.001,105,1.246,107,1.634,111,1.359,112,2.894,127,0.849,138,4.068,187,0.981,215,2.164,216,1.722,217,1.491,221,2.462,227,0.966,231,5.898,234,2.063,305,2.653,347,2.317,503,4.157,558,3.253,591,2.947,592,3.072,734,3.862,806,2.76,883,4.513,1944,4.653,2531,3.664,2553,4.535,2627,2.849,2644,3.635,2838,7.197,2841,8.147,2925,5.582,3120,5.04,3121,8.666,3130,6.268,3264,7.276,3351,5.93,3402,9.444,3573,7.523,4114,5.477,4121,4.438,5591,5.93,8236,5.93,9058,6.01,15151,6.268,19093,12.005,19094,6.78,19095,6.78,19096,11.454,19097,6.78,19098,6.78,19099,9.314,19100,6.78,19101,6.78,19102,6.78,19103,6.78,19104,6.78,19105,6.78,19106,6.78,19107,9.314]],["title/injectables/SubmissionItemUc.html",[105,0.91,2718,5.694]],["body/injectables/SubmissionItemUc.html",[0,0.178,3,0.012,4,0.012,5,0.006,7,0.079,8,0.934,26,2.873,27,0.448,29,0.851,30,0.001,31,0.608,32,0.148,33,0.525,35,1.232,36,2.591,39,3.322,59,1.627,95,0.139,99,0.872,101,0.009,103,0,104,0,105,1.034,107,1.259,111,2.553,112,2.84,127,0.968,187,0.755,199,2.922,216,2.008,217,1.606,221,2.905,227,1.126,234,1.495,305,2.622,347,1.862,369,1.159,371,1.441,461,1.195,496,2.206,704,2.587,766,2.185,839,2.491,843,2.305,1410,2.948,1467,1.667,1798,6.819,1799,3.166,1814,5.307,1852,2.206,1884,6.359,1906,4.091,1939,3.65,1953,3.65,1982,3.131,1988,6.843,2356,4.833,2440,2.976,2557,5.752,2627,2.195,2718,6.475,2725,2.367,2783,4.634,2838,5.784,2841,6.313,2849,2.259,2850,3.131,3088,6.555,3090,3.981,3091,8.772,3097,9.214,3109,3.98,3115,8.553,3126,8.904,3129,4.22,3154,8.051,3264,6.166,3397,4.569,3572,7.563,3573,9.505,3708,3.883,3714,4.22,3722,8.509,3741,8.051,4151,4.22,4152,8.051,4154,4.091,4176,6.055,4183,6.763,4184,3.526,8236,4.569,8237,4.829,8243,4.829,8251,4.829,10932,4.569,18995,8.509,19092,4.829,19108,11.371,19109,5.224,19110,9.205,19111,10.174,19112,5.224,19113,5.224,19114,5.224,19115,5.224,19116,7.732,19117,5.224,19118,5.224,19119,8.509,19120,5.224,19121,5.224,19122,5.224,19123,5.224,19124,5.224,19125,5.224,19126,5.224,19127,5.224,19128,5.224,19129,5.224,19130,5.224,19131,5.224,19132,5.224,19133,5.224,19134,5.224,19135,5.224,19136,5.224]],["title/classes/SubmissionItemUrlParams.html",[0,0.232,3730,5.947]],["body/classes/SubmissionItemUrlParams.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.398,30,0.001,32,0.131,34,1.992,47,0.835,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,1.759,368,4.588,369,2.599,370,3.857,371,3.229,374,3.082,376,2.209,379,2.188,467,3.072,1000,4.767,2849,5.064,3195,7.266,3730,10.242,3795,5.666,7055,9.169,18993,10.242,19119,11.65,19137,9.657,19138,9.657]],["title/classes/SubmissionMapper.html",[0,0.232,19007,5.947]],["body/classes/SubmissionMapper.html",[0,0.322,2,1.054,3,0.022,4,0.022,5,0.011,7,0.143,8,1.396,27,0.39,29,0.74,30,0.001,31,0.529,32,0.128,33,0.457,34,1.608,35,1.144,95,0.148,99,1.578,100,3.87,101,0.016,103,0.001,104,0.001,217,1.23,227,0.98,234,1.535,627,3.831,982,4.712,2849,5.77,12105,6.871,12304,7.027,12323,7.027,12506,7.636,12510,7.916,12518,7.916,17295,8.738,19007,10.109,19139,9.453,19140,11.558,19141,11.558,19142,9.453,19143,10.893,19144,8.268,19145,9.453,19146,8.268,19147,9.453]],["title/injectables/SubmissionRepo.html",[105,0.91,1934,5.181]],["body/injectables/SubmissionRepo.html",[0,0.2,3,0.014,4,0.014,5,0.007,7,0.089,8,1.018,10,3.401,12,3.86,18,4.258,26,2.734,27,0.524,29,0.978,30,0.001,31,0.699,32,0.17,33,0.604,34,1,35,1.511,36,2.828,39,3.066,40,4.068,47,0.702,95,0.138,96,1.608,98,3.486,99,0.981,101,0.01,103,0,104,0,105,1.127,107,1.417,111,2.376,112,3.033,187,0.85,217,1.482,221,2.89,227,1.181,277,2.373,380,1.249,381,2.803,398,1.732,404,1.519,529,3.663,596,3.282,692,4.877,877,7.161,883,3.575,884,3.971,885,4.977,908,3.605,909,3.649,910,3.605,911,3.649,913,3.605,914,3.649,915,3.259,1646,3.288,1750,3.738,1852,2.483,1934,6.421,2394,3.486,2649,2.622,2849,5.278,3010,3.288,3106,3.318,3675,4.035,3720,5.559,4455,6.807,4460,7.058,5880,4.895,6476,3.694,6518,5.78,6782,4.48,12276,4.924,17677,5.435,19148,5.88,19149,8.427,19150,8.427,19151,8.427,19152,8.427,19153,5.88,19154,8.427,19155,5.88,19156,8.427,19157,5.88,19158,5.435,19159,8.427,19160,5.88,19161,5.88,19162,5.88,19163,8.427,19164,5.88,19165,5.88,19166,8.427,19167,5.88,19168,5.88,19169,5.88,19170,5.88]],["title/injectables/SubmissionRule.html",[105,0.91,1896,5.694]],["body/injectables/SubmissionRule.html",[0,0.181,3,0.013,4,0.013,5,0.006,7,0.08,8,0.948,27,0.501,29,0.952,30,0.001,31,0.68,32,0.169,33,0.588,35,1.433,95,0.141,101,0.009,103,0,104,0,105,1.049,107,1.284,111,2.681,116,3.567,127,0.667,187,0.77,199,3.882,214,1.68,215,1.701,216,1.451,217,1.49,227,1.228,234,0.865,305,1.518,347,2.395,371,2.163,380,2.182,461,3.204,806,2.169,1642,3.794,1750,3.48,1795,5.551,1798,7.376,1799,6.225,1813,5.586,1814,5.384,1823,7.106,1844,3.193,1861,4.755,1896,6.57,1897,9.565,2002,5.062,2006,4.868,2013,3.54,2849,6.195,3228,3.391,3385,5.212,3386,3.596,3389,5.134,3392,3.596,3393,5.295,12506,4.304,14256,4.925,19171,5.328,19172,11.452,19173,10.271,19174,10.271,19175,11.452,19176,10.271,19177,5.328,19178,7.845,19179,5.328,19180,7.845,19181,5.328,19182,7.845,19183,5.328,19184,5.328,19185,7.845,19186,5.328,19187,7.845,19188,5.328,19189,5.328,19190,5.328,19191,5.328,19192,7.845,19193,5.328,19194,7.845,19195,5.328,19196,5.328,19197,5.328,19198,7.845,19199,7.845]],["title/injectables/SubmissionService.html",[105,0.91,19200,5.493]],["body/injectables/SubmissionService.html",[0,0.27,3,0.019,4,0.019,5,0.01,7,0.12,8,1.249,10,4.174,12,4.736,26,2.802,27,0.503,29,0.956,30,0.001,31,0.683,32,0.166,33,0.59,35,1.393,36,2.782,95,0.157,98,4.7,99,1.323,101,0.013,103,0.001,104,0.001,105,1.383,107,1.911,111,2.073,112,2.987,127,1.295,187,1.146,216,1.912,217,1.032,221,2.394,227,1.072,450,3.256,1358,5.046,1934,9.887,2849,5.473,3579,3.9,3580,3.228,3720,5.837,6298,9.412,19200,8.354,19201,7.928,19202,9.56,19203,7.928,19204,7.928,19205,10.342,19206,7.928,19207,10.342,19208,7.928,19209,6.208,19210,10.342,19211,7.928,19212,6.934,19213,7.928,19214,7.928,19215,7.928,19216,7.928]],["title/classes/SubmissionStatusListResponse.html",[0,0.232,19009,5.694]],["body/classes/SubmissionStatusListResponse.html",[0,0.372,2,0.964,3,0.02,4,0.02,5,0.01,7,0.131,27,0.451,29,0.677,30,0.001,31,0.484,32,0.163,33,0.418,34,2.04,47,0.855,55,1.861,95,0.111,101,0.018,103,0.001,104,0.001,127,1.369,145,2.188,163,4,165,0.856,347,2.211,364,1.574,375,4.567,376,1.977,467,3.483,618,3.534,1009,6.227,1011,4.366,1026,4.791,12105,8.716,12288,7.237,12304,8.913,12308,7.237,12323,8.913,12325,7.237,19009,9.154,19143,11.424,19144,10.487,19146,10.487,19217,7.989,19218,8.642,19219,8.642,19220,7.989,19221,7.989]],["title/classes/SubmissionStatusResponse.html",[0,0.232,19143,5.694]],["body/classes/SubmissionStatusResponse.html",[0,0.348,2,0.867,3,0.018,4,0.018,5,0.009,7,0.117,27,0.542,29,0.609,30,0.001,31,0.435,32,0.181,33,0.608,34,2.139,47,0.92,55,2.199,95,0.1,101,0.017,103,0.001,104,0.001,127,1.279,163,3.142,165,0.8,347,2.449,364,2.351,375,4.79,376,1.778,467,3.575,618,3.179,966,3.956,1009,4.429,1026,4.31,12105,9.141,12288,6.511,12304,9.348,12308,6.511,12323,9.348,12325,6.511,19009,6.511,19143,11.178,19144,10.999,19146,10.999,19217,7.187,19220,7.187,19221,7.187,19222,7.775,19223,7.775,19224,7.775,19225,7.775,19226,7.775,19227,7.775,19228,7.775]],["title/injectables/SubmissionUc.html",[105,0.91,19008,5.694]],["body/injectables/SubmissionUc.html",[0,0.241,3,0.017,4,0.017,5,0.009,7,0.107,8,1.158,10,3.871,26,2.906,27,0.481,29,0.913,30,0.001,31,0.653,32,0.158,33,0.564,35,1.317,36,2.057,39,2.582,95,0.15,99,1.181,101,0.012,103,0.001,104,0.001,105,1.283,107,1.706,111,2.443,112,2.769,127,1.201,187,1.024,216,1.773,217,1.672,221,2.699,227,1.209,284,3.825,369,1.571,461,3.092,766,2.961,843,3.123,1345,2.808,1801,4.242,1861,5.813,1884,6.945,1982,5.748,1984,5.543,2725,3.206,2849,5.73,3720,5.413,11225,6.543,12505,5.928,14301,8.389,19008,8.032,19200,10.15,19202,8.866,19209,8.518,19212,9.515,19229,7.078,19230,9.591,19231,7.078,19232,7.078,19233,7.078,19234,9.591,19235,7.078,19236,9.591,19237,7.078,19238,7.078,19239,11.661,19240,7.078,19241,7.078,19242,7.078,19243,6.543,19244,9.591,19245,7.078]],["title/classes/SubmissionUrlParams.html",[0,0.232,19000,5.947]],["body/classes/SubmissionUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2849,5.109,3795,5.749,19000,10.332,19212,11.092,19246,9.798,19247,9.798]],["title/classes/SubmissionsResponse.html",[0,0.232,3735,5.694]],["body/classes/SubmissionsResponse.html",[0,0.301,2,0.987,3,0.021,4,0.021,5,0.011,7,0.134,27,0.5,29,0.693,30,0.001,31,0.496,32,0.178,33,0.428,95,0.156,101,0.015,103,0.001,104,0.001,127,1.109,145,2.81,165,0.869,364,2.021,376,2.024,461,2.024,467,3.18,1011,5.607,2849,3.828,3090,5.862,3735,9.293,7055,9.952,8212,10.948,8434,6.931,19080,11.351,19082,12.1,19248,8.851,19249,11.097,19250,8.851,19251,8.851,19252,8.851,19253,8.851,19254,8.851,19255,8.851]],["title/interfaces/SuccessfulRes.html",[334,0.731,11332,5.055]],["body/interfaces/SuccessfulRes.html",[3,0.022,4,0.022,5,0.011,7,0.138,30,0.001,32,0.124,34,1.557,47,0.96,55,2.651,101,0.023,103,0.001,104,0.001,163,2.817,165,0.887,334,1.467,336,2.19,347,2.489,564,3.355,692,3.419,1178,8.299,1182,6.177,1216,3.586,3090,3.958,4511,6.177,6473,5.316,11324,6.803,11325,6.973,11326,6.803,11327,6.803,11328,6.973,11329,9.149,11330,6.973,11331,6.973,11332,8.423,11333,6.973,11334,6.653,11335,6.803,11336,6.973,11337,6.803]],["title/classes/SuccessfulResponse.html",[0,0.232,19256,5.947]],["body/classes/SuccessfulResponse.html",[0,0.335,2,1.098,3,0.023,4,0.023,5,0.012,7,0.149,27,0.488,29,0.771,30,0.001,31,0.551,32,0.161,33,0.476,95,0.126,101,0.016,103,0.001,104,0.001,127,1.233,165,0.928,347,2.729,364,1.793,376,2.252,467,3.334,13791,11.3,19256,10.362,19257,9.845,19258,11.847,19259,9.845,19260,9.845,19261,9.845]],["title/injectables/SymetricKeyEncryptionService.html",[105,0.91,8262,5.947]],["body/injectables/SymetricKeyEncryptionService.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.12,8,1.252,27,0.536,29,0.903,30,0.001,31,0.646,32,0.157,33,0.558,35,1.255,47,0.994,59,2.479,95,0.157,101,0.013,103,0.001,104,0.001,105,1.387,107,1.919,111,1.596,116,4.046,127,0.997,163,3.76,187,1.151,214,2.509,215,2.54,227,1.347,960,5.462,1467,2.54,1738,5.785,2035,7.021,2356,4.259,2357,5.565,2848,5.005,2969,5.372,3814,7.708,6528,5.668,7137,8.383,8261,7.357,8262,9.069,9285,7.537,11949,9.069,11950,8.683,11951,9.585,11953,9.585,12660,7.357,14557,6.665,18936,7.357,18939,7.357,19262,7.959,19263,7.959,19264,7.959,19265,7.959,19266,11.532,19267,11.532,19268,7.959,19269,7.959]],["title/modules/SystemApiModule.html",[425,1.812,18506,5.493]],["body/modules/SystemApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.351,425,3.31,427,3.375,428,3.631,429,3.738,430,3.723,431,3.707,432,4.571,433,3.531,442,4.592,443,3.661,444,3.573,446,5.87,447,4.757,449,4.553,1548,9.457,18506,11.185,19270,9.343,19271,9.343,19272,9.343,19273,11.336,19274,9.343,19275,10.864,19276,9.343,19277,9.343,19278,9.343]],["title/controllers/SystemController.html",[481,2.611,19275,5.947]],["body/controllers/SystemController.html",[0,0.22,3,0.015,4,0.015,5,0.008,7,0.098,8,1.089,27,0.372,29,0.706,30,0.001,31,0.505,32,0.166,33,0.436,35,1.479,36,2.406,72,5.084,95,0.167,101,0.011,103,0.001,104,0.001,112,2.694,163,3.454,185,3.502,187,0.935,215,2.063,216,1.195,217,1.46,221,2.086,227,0.934,264,2.717,355,4.51,364,1.641,376,1.479,379,2.543,447,2.68,481,2.482,483,3.083,498,7.702,529,2.81,538,4.061,553,6.288,554,6.518,555,3.361,563,5.401,564,3.304,694,6.065,766,2.704,890,9.816,1016,2.27,1433,5.525,1583,5.898,2145,7.051,2461,6.802,2537,7.345,3090,3.898,3104,5.346,3709,4.295,4466,6.518,4661,4.756,10293,7.154,11217,7.345,15157,7.882,16092,8.788,17060,9.398,17063,9.065,19273,8.688,19275,7.882,19279,6.465,19280,9.012,19281,6.465,19282,9.816,19283,6.465,19284,10.374,19285,6.465,19286,6.465,19287,11.222,19288,9.012,19289,6.465,19290,6.465,19291,6.465,19292,6.465,19293,6.465,19294,6.465,19295,8.331,19296,5.976,19297,6.465,19298,5.976,19299,5.654,19300,6.465,19301,6.465,19302,6.465,19303,6.465,19304,6.465,19305,6.465,19306,6.465,19307,6.465,19308,6.465,19309,6.465,19310,6.465,19311,6.465,19312,6.465]],["title/classes/SystemDto.html",[0,0.232,11217,4.45]],["body/classes/SystemDto.html",[0,0.259,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,26,2.392,27,0.56,29,0.596,30,0.001,31,0.426,32,0.188,33,0.681,34,1.92,47,0.968,95,0.145,99,1.271,101,0.013,103,0.001,104,0.001,127,0.954,150,3.907,165,0.789,347,2.037,618,3.113,2578,3.394,3104,3.449,5698,5.741,5717,4.846,6196,4.115,11217,8.174,11429,7.281,11828,5.659,12329,7.497,12332,7.09,12333,7.884,12334,7.386,12335,5.058,12336,5.058,12421,5.8,12423,5.8,12429,5.8,12431,5.8,12676,8.598,13778,5.421,17066,9.309,17073,6.376,17074,6.15,17075,6.376,19313,7.613,19314,10.432,19315,10.07,19316,7.613,19317,7.613,19318,7.613,19319,7.613,19320,7.613,19321,7.613,19322,7.613,19323,7.613,19324,6.659,19325,6.376,19326,7.038,19327,7.038,19328,7.038,19329,7.613,19330,7.038]],["title/entities/SystemEntity.html",[380,1.445,8469,3.675]],["body/entities/SystemEntity.html",[0,0.31,3,0.01,4,0.01,5,0.005,7,0.064,26,1.39,27,0.478,30,0.001,32,0.169,33,0.621,47,1.017,83,2.465,95,0.117,96,1.15,101,0.016,103,0,104,0,150,3.416,165,0.513,208,1.571,216,0.777,240,4.448,277,1.697,334,0.452,347,0.85,359,2.286,364,2.113,369,3.043,370,4.412,371,1.808,379,0.953,380,1.712,381,1.399,386,6.432,398,1.239,399,2.601,400,1.855,402,1.743,404,0.758,405,1.12,406,1.368,496,1.775,722,1.875,775,2.578,783,2.548,1031,2.525,1141,2.578,1498,2.548,1581,2.994,1613,2.609,2072,2.713,2097,3.126,2574,3.383,2578,1.875,4271,3.572,4309,4.668,4333,2.52,4588,3.383,5530,3.268,5698,4.63,5717,2.676,5718,2.886,6196,3.543,7136,2.642,7222,2.838,7278,3.973,8469,3.543,8805,2.838,9787,2.752,10293,2.352,11429,7.485,11510,3.126,11511,3.126,11512,3.126,11513,3.203,11557,2.886,11560,2.793,11562,2.886,11565,2.886,11568,2.578,11572,2.838,11613,2.752,12035,3.203,12219,2.994,12327,4.995,12328,3.396,12329,6.045,12330,8.622,12331,8.105,12332,5.717,12333,6.357,12334,5.956,12335,2.793,12336,2.793,12337,3.396,12338,4.499,12339,4.873,12340,3.292,12341,4.873,12342,3.203,12343,3.203,12344,3.203,12345,3.203,12346,3.292,12347,3.203,12348,3.203,12349,3.203,12350,3.292,12351,4.873,12352,3.292,12353,3.203,12354,3.292,12355,3.203,12356,3.203,12357,3.203,12358,3.292,12359,4.499,12360,3.396,12361,3.396,12362,3.396,12363,3.396,12364,3.396,12365,3.396,12366,3.396,12367,3.396,12368,3.396,12369,3.396,12370,3.396,12371,3.396,12372,3.292,12373,3.396,12374,3.396,12375,3.396,12376,3.396,12377,3.396,12378,3.396,12379,3.396,12380,3.396,12381,3.396,12382,3.396,12383,3.396,12384,3.396,12385,3.396,12386,3.396,12387,3.396,12388,3.396,12389,3.396,12390,3.126,12391,3.396,12392,3.396,12393,3.396,12394,3.396,12395,3.396,12396,3.396,12397,3.396,12398,3.396,12399,3.396,12400,3.396,12401,3.396,12402,3.396,12403,3.396,12404,3.396,12405,3.203,12406,3.396,12407,3.126,12408,3.292,12409,3.203,12410,3.292,12411,3.203,12412,3.203,12413,3.292,12414,3.203,12415,3.292,12416,3.203,12417,3.056,12418,3.056,12419,3.056,12420,3.126,12421,3.203,12422,3.396,12423,3.203,12424,3.396,12425,3.396,12426,3.396,12427,3.396,12428,3.396,12429,3.203,12430,3.292,12431,3.203,12432,3.292,19331,4.205,19332,4.205,19333,4.205,19334,4.205,19335,4.205,19336,4.205,19337,4.205,19338,4.205,19339,4.205,19340,4.205,19341,4.205]],["title/classes/SystemFactory.html",[0,0.232,12822,5.947]],["body/classes/SystemFactory.html",[0,0.149,2,0.487,3,0.01,4,0.01,5,0.005,7,0.066,8,0.815,27,0.533,29,1.004,30,0.001,31,0.683,32,0.178,33,0.59,34,1.579,35,1.42,47,0.481,55,2.383,59,3.305,95,0.119,99,0.728,101,0.011,103,0,104,0,127,0.547,138,2.948,144,3.144,148,1.343,150,2.336,165,0.529,185,4.876,216,1.248,217,1.208,227,0.963,234,1.339,277,1.761,319,3.416,359,2.353,366,2.441,369,0.968,379,1.869,380,2.133,381,2.245,404,1.216,538,3.04,596,3.827,627,2.071,660,7.104,661,4.46,662,5.239,665,3.808,666,5.239,667,5.561,668,3.808,669,3.808,670,3.808,671,3.741,672,4.227,673,4.656,674,6.282,675,5.564,676,6.925,677,2.486,682,2.463,683,3.808,684,2.486,685,4.899,686,5.059,687,3.957,688,4.757,689,3.774,690,2.463,691,2.321,692,3.965,693,2.398,694,2.359,695,2.463,696,4.826,697,2.486,698,4.573,699,2.463,700,7.295,701,4.041,702,6.451,703,2.486,704,4.085,705,2.463,706,2.486,707,2.463,708,2.486,709,2.463,710,2.778,711,2.588,712,2.463,713,5.883,714,2.486,715,2.463,716,3.808,717,3.561,718,3.808,719,2.486,720,2.378,721,2.359,722,1.946,723,2.463,724,2.463,725,2.463,726,2.486,727,2.486,728,1.669,729,2.463,730,2.486,731,2.666,732,2.463,733,2.486,735,2.535,736,2.588,737,4.945,775,2.676,853,2.252,1142,2.021,1613,2.708,1618,2.535,2072,2.816,3104,3.057,3580,2.747,4588,2.252,5442,3.844,5530,3.363,5698,2.22,7278,4.09,7280,4.905,8469,2.359,8716,7.499,8805,2.945,11429,5.323,11557,2.995,11560,2.899,11561,3.655,11562,2.995,11565,2.995,11568,2.676,11572,2.945,11613,2.856,12327,3.325,12329,2.899,12330,5.997,12331,5.764,12332,2.742,12333,3.049,12334,2.856,12335,2.899,12336,2.899,12359,6.371,12417,3.172,12418,3.172,12419,3.172,12420,3.244,12822,7.216,13383,3.525,14546,4.034,16297,4.034,19342,4.364,19343,6.238,19344,8.582,19345,8.582,19346,6.748,19347,4.364,19348,6.748,19349,4.364,19350,4.364,19351,4.364,19352,4.364,19353,4.364,19354,4.364,19355,4.364,19356,4.364,19357,4.364,19358,4.364,19359,4.364,19360,4.364,19361,4.364,19362,4.364,19363,4.364,19364,4.364,19365,4.364,19366,4.364,19367,4.364,19368,4.364]],["title/classes/SystemFilterParams.html",[0,0.232,19282,5.947]],["body/classes/SystemFilterParams.html",[0,0.382,2,1.002,3,0.021,4,0.021,5,0.011,7,0.136,27,0.462,30,0.001,32,0.185,33,0.618,95,0.164,99,1.5,101,0.015,103,0.001,104,0.001,154,4.117,165,0.878,347,2.266,364,2.041,367,5.343,373,6.007,374,2.869,375,4.65,376,2.056,377,7.444,379,2.539,469,3.946,471,4.948,1044,4.312,1403,6.211,3104,4.072,5442,6.383,10293,6.267,10691,8.329,19282,9.8,19369,8.989,19370,11.285,19371,8.989,19372,8.989,19373,9.559,19374,8.989,19375,8.989,19376,8.989]],["title/classes/SystemIdParams.html",[0,0.232,16092,5.324]],["body/classes/SystemIdParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,47,0.84,48,5.963,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,467,3.09,478,6.943,480,9.013,1000,4.795,3104,5.336,3795,5.721,16092,9.223,19377,11.778]],["title/classes/SystemIdParams-1.html",[0,0.193,905,2.354,16092,4.427]],["body/classes/SystemIdParams-1.html",[0,0.406,2,1.111,3,0.024,4,0.024,5,0.012,7,0.151,26,2.708,27,0.411,30,0.001,32,0.135,48,6.02,95,0.164,99,1.663,101,0.017,103,0.001,104,0.001,165,0.935,364,1.815,374,3.181,376,2.28,467,3.131,478,7.098,1000,4.859,5806,7.245,5807,8.051,16092,9.346,19378,11.935]],["title/classes/SystemMapper.html",[0,0.232,19379,5.947]],["body/classes/SystemMapper.html",[0,0.258,2,0.844,3,0.018,4,0.018,5,0.009,7,0.114,8,1.212,27,0.464,29,0.881,30,0.001,31,0.63,32,0.163,33,0.544,34,1.288,35,1.362,95,0.145,99,1.263,101,0.013,103,0.001,104,0.001,145,3.244,150,2.621,227,1.242,234,1.629,277,3.055,380,1.609,381,2.518,627,4.121,1613,4.697,2408,5.289,4369,4.885,4588,3.907,5530,3.773,5698,3.852,5894,6.998,7278,4.588,8469,7.064,8805,5.109,9068,6.621,11217,8.385,11429,8.433,11510,5.627,11511,5.627,11512,5.627,11513,5.768,11557,5.195,11560,5.029,11562,5.195,11565,5.195,11568,4.641,11572,5.109,12329,5.029,12332,4.756,12333,5.289,12340,5.928,12342,5.768,12344,5.768,12346,5.928,12350,5.928,12352,5.928,12354,5.928,12356,5.768,12358,5.928,12359,5.195,12676,9.129,16213,5.768,17517,8.775,17518,8.402,17522,8.402,17526,6.621,19314,6.998,19324,6.621,19325,6.34,19379,8.775,19380,7.57,19381,10.033,19382,9.275,19383,7.57,19384,7.57,19385,10.033,19386,7.57,19387,7.57,19388,10.033,19389,7.57,19390,7.57,19391,7.57,19392,7.57]],["title/modules/SystemModule.html",[425,1.812,1548,4.751]],["body/modules/SystemModule.html",[0,0.292,3,0.02,4,0.02,5,0.01,30,0.001,95,0.167,101,0.014,103,0.001,104,0.001,187,1.242,425,3.185,427,3.102,428,3.337,429,3.436,430,3.421,431,3.407,432,4.399,433,4.518,442,4.356,443,3.364,444,3.284,449,4.319,450,3.527,802,6.242,817,10.379,823,9.634,1548,9.873,11196,9.981,12000,6.724,13332,11.738,13376,7.938,14777,7.51,19393,8.586,19394,8.586,19395,8.586,19396,8.586,19397,8.586,19398,7.938,19399,8.586]],["title/classes/SystemOidcMapper.html",[0,0.232,19400,5.947]],["body/classes/SystemOidcMapper.html",[0,0.268,2,0.877,3,0.019,4,0.019,5,0.009,7,0.119,8,1.243,27,0.473,29,0.898,30,0.001,31,0.642,32,0.156,33,0.554,35,1.388,47,0.818,48,4.848,95,0.132,99,1.313,101,0.013,103,0.001,104,0.001,145,3.08,227,1.261,234,1.277,380,2.436,381,3.423,627,4.152,2072,5.075,5530,3.921,7278,4.767,8469,7.13,12331,9.217,12359,5.398,12405,5.993,12407,5.847,12409,5.993,12411,5.993,12412,5.993,12414,5.993,12416,5.993,12417,5.718,12418,5.718,12419,5.718,12420,5.847,13343,10.596,16246,7.271,17517,8.999,17518,8.617,17522,8.617,17526,6.88,19325,6.587,19382,9.511,19400,8.999,19401,12.163,19402,7.866,19403,10.289,19404,7.866,19405,7.866,19406,10.289,19407,7.866,19408,7.866,19409,10.289,19410,7.866,19411,7.866,19412,7.866,19413,7.866]],["title/injectables/SystemOidcService.html",[105,0.91,13332,5.694]],["body/injectables/SystemOidcService.html",[0,0.278,3,0.019,4,0.019,5,0.01,7,0.123,8,1.274,12,4.829,26,2.616,27,0.481,29,0.826,30,0.001,31,0.591,32,0.143,33,0.51,34,1.794,35,1.276,36,2.646,40,5.09,95,0.168,99,1.363,100,2.735,101,0.014,103,0.001,104,0.001,105,1.411,107,1.969,112,2.883,127,1.023,187,1.181,215,2.607,216,1.51,217,1.52,221,2.441,227,1.093,234,1.326,305,2.327,450,3.355,510,5.938,558,3.919,823,9.509,3104,4.777,8469,4.415,13332,8.831,13343,6.397,13798,7.145,14949,9.663,19373,6.397,19400,7.145,19414,12.339,19415,8.169,19416,8.169,19417,8.169,19418,8.169,19419,8.169,19420,8.169,19421,7.551,19422,11.677,19423,8.169,19424,7.145,19425,7.551,19426,8.169]],["title/injectables/SystemRepo.html",[105,0.91,823,4.943]],["body/injectables/SystemRepo.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.104,8,1.14,10,3.807,12,4.321,18,4.767,26,2,27,0.526,29,0.947,30,0.001,31,0.677,32,0.179,33,0.584,34,1.175,35,1.51,36,2.738,40,3.335,49,3.712,95,0.148,99,1.153,101,0.012,103,0.001,104,0.001,105,1.262,107,1.665,112,2.99,187,0.999,217,0.899,227,1.114,234,1.532,277,3.807,305,1.968,307,4.34,309,6.179,319,2.065,380,1.468,381,3.138,404,1.7,596,3.521,692,5.028,731,2.729,823,6.858,877,7.492,883,4.002,884,4.445,885,5.428,908,4.236,909,4.287,910,4.236,911,4.287,912,4.919,913,4.236,914,4.287,915,3.83,919,5.263,953,4.521,1187,3.294,1188,3.255,1189,3.255,1190,3.443,1267,4.589,1268,4.236,1345,2.741,5209,7.137,5882,4.826,8469,5.099,14949,9.04,19373,9.04,19427,6.908,19428,8.721,19429,6.908,19430,8.721,19431,6.908,19432,6.908,19433,8.251,19434,6.908,19435,6.908,19436,6.908,19437,6.386,19438,6.908,19439,6.908,19440,6.908,19441,6.908,19442,9.434]],["title/classes/SystemResponseMapper.html",[0,0.232,19299,5.947]],["body/classes/SystemResponseMapper.html",[0,0.244,2,0.801,3,0.017,4,0.017,5,0.009,7,0.108,8,1.17,27,0.452,29,0.858,30,0.001,31,0.614,32,0.159,33,0.53,34,1.221,35,1.326,95,0.157,101,0.012,103,0.001,104,0.001,145,1.818,217,1.526,227,1.136,234,1.779,277,2.897,627,4.077,974,4.257,1016,2.52,1613,4.455,2597,5.799,3104,5.313,4466,4.17,4588,3.705,5530,3.578,5698,3.653,7278,4.351,8674,5.799,8805,4.845,9914,5.337,10293,4.015,11115,6.636,11217,8.583,11429,4.632,11557,4.927,11560,4.769,11562,4.927,11565,4.927,11568,4.402,11572,4.845,11828,5.337,12329,4.769,12359,4.927,12676,9.33,13778,5.112,14353,6.279,15653,6.636,15655,6.636,15656,6.636,15657,6.636,15658,6.636,15659,6.636,15660,6.636,15661,6.636,15662,6.636,15663,6.636,15664,6.636,15665,6.636,15666,10.8,16213,5.47,17060,9.822,17063,10.417,17064,6.636,17072,6.636,17073,6.012,17074,5.799,17075,6.012,19295,8.951,19296,6.636,19299,8.469,19324,6.279,19325,6.012,19443,11.729,19444,9.683,19445,9.683,19446,9.683,19447,9.683,19448,9.683,19449,9.683,19450,7.179,19451,7.179,19452,9.683,19453,7.179,19454,9.683,19455,7.179,19456,6.636]],["title/classes/SystemScope.html",[0,0.232,19433,5.947]],["body/classes/SystemScope.html",[0,0.259,2,0.849,3,0.018,4,0.018,5,0.009,7,0.115,8,1.216,27,0.548,29,0.789,30,0.001,31,0.564,32,0.17,33,0.487,35,1.512,95,0.129,99,1.271,101,0.013,103,0.001,104,0.001,111,2.572,144,2.094,148,2.343,165,0.789,167,4.152,227,1.17,277,5.479,319,2.275,347,2.282,404,1.815,529,3.309,596,3.81,2394,6.691,5991,6.797,5992,6.797,5993,6.797,5998,6.797,5999,6.797,6000,5.225,6001,5.138,6002,5.225,6003,5.225,6012,5.138,6013,6.797,6014,5.225,6015,5.138,6016,5.225,6017,5.138,6018,7.616,8469,4.115,10208,6.15,10226,9.87,11429,4.912,12330,5.534,12331,5.319,14271,7.038,14272,7.038,19343,11.101,19344,11.101,19345,11.101,19433,11.621,19457,12.008,19458,7.613]],["title/injectables/SystemService.html",[105,0.91,11196,4.842]],["body/injectables/SystemService.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,8,0.98,12,3.716,18,4.099,26,2.226,27,0.46,29,0.874,30,0.001,31,0.625,32,0.176,33,0.539,34,1.38,35,1.271,36,2.639,40,3.916,59,1.738,95,0.154,99,0.931,101,0.009,103,0,104,0,105,1.085,107,1.345,111,2.236,112,2.878,127,1.016,150,2.809,187,0.807,216,1.5,217,1.244,221,2.989,227,1.246,234,1.552,305,1.589,450,2.291,510,4.055,558,2.676,802,4.055,803,3.462,823,8.461,3104,5.442,5698,4.128,8469,6.782,10293,6.51,11196,5.778,11217,7.301,11429,3.6,11828,7.108,11831,7.5,12000,4.368,12329,5.39,12332,5.098,12333,5.668,12659,8.221,12661,4.672,13778,5.778,13798,4.879,14379,8.839,16213,4.25,17073,4.672,17074,7.724,17075,8.008,19326,7.5,19327,7.5,19328,7.5,19373,8.221,19379,4.879,19421,5.157,19424,4.879,19425,5.157,19437,7.5,19459,5.579,19460,8.113,19461,8.113,19462,5.579,19463,5.579,19464,8.113,19465,5.579,19466,8.113,19467,5.579,19468,8.113,19469,5.579,19470,5.579,19471,5.579,19472,8.113,19473,7.5,19474,5.579,19475,8.113,19476,5.579,19477,5.579,19478,5.579,19479,5.579,19480,5.579,19481,5.579,19482,8.113,19483,8.113,19484,8.113,19485,8.113,19486,8.113,19487,8.113,19488,8.113,19489,5.579,19490,5.579,19491,5.157,19492,8.113,19493,5.579,19494,9.562,19495,5.579,19496,5.579,19497,5.579,19498,5.579,19499,5.579,19500,5.579]],["title/injectables/SystemUc.html",[105,0.91,19273,5.694]],["body/injectables/SystemUc.html",[0,0.264,3,0.018,4,0.018,5,0.009,7,0.117,8,1.232,12,4.671,26,2.565,27,0.47,29,0.892,30,0.001,31,0.638,32,0.164,33,0.551,34,1.735,35,1.234,36,2.594,40,4.923,59,2.417,95,0.161,99,1.295,101,0.013,103,0.001,104,0.001,105,1.364,107,1.87,112,2.843,127,0.972,144,2.134,187,1.122,215,2.477,216,1.435,217,1.01,221,2.636,227,1.057,234,1.26,305,2.211,319,2.319,371,3.336,510,5.641,558,3.723,3104,4.62,8469,4.194,10293,7.029,11196,9.186,11217,7.918,16213,5.912,16852,7.173,19273,8.54,19330,9.427,19370,11.184,19373,6.076,19398,7.173,19424,6.787,19428,9.427,19430,9.427,19491,7.173,19501,7.76,19502,7.76,19503,12.099,19504,7.76,19505,7.76,19506,7.173,19507,7.76,19508,7.76]],["title/classes/TargetInfoMapper.html",[0,0.232,15034,5.947]],["body/classes/TargetInfoMapper.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,29,0.749,30,0.001,31,0.652,32,0.13,33,0.463,34,1.627,35,1.158,95,0.149,99,1.596,100,3.898,101,0.016,103,0.001,104,0.001,217,1.245,227,0.992,234,1.553,627,3.851,975,6.454,2702,4.31,4353,8.01,6849,9.708,15005,10.549,15034,10.182,18294,8.366,18296,8.366,19509,11.642,19510,11.642,19511,9.565,19512,9.565,19513,9.565]],["title/classes/TargetInfoResponse.html",[0,0.232,15005,5.493]],["body/classes/TargetInfoResponse.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.501,29,0.696,30,0.001,31,0.768,32,0.165,33,0.43,34,2.308,47,0.908,95,0.114,101,0.015,103,0.001,104,0.001,127,1.394,165,0.872,364,2.027,376,2.033,379,2.753,380,2.705,467,3.187,475,4.345,618,3.635,966,4.523,1013,4.071,2095,3.527,2213,6.961,2702,5.736,2883,5.818,2884,5.918,2885,5.918,4349,7.775,15005,10.587,18301,7.775,18302,8.218,19514,12.729]],["title/entities/Task.html",[380,1.445,2649,3.032]],["body/entities/Task.html",[0,0.165,3,0.007,4,0.007,5,0.003,7,0.167,26,1.725,27,0.473,30,0.001,31,0.35,32,0.166,33,0.535,34,0.824,47,0.726,55,1.044,83,2.859,95,0.145,96,0.792,101,0.014,103,0,104,0,111,2.398,116,3.444,144,1.719,145,2.06,148,2.249,165,0.689,167,1.065,187,0.418,188,3.62,192,1.862,214,0.912,217,1.75,227,1.315,234,1.708,240,3.578,247,1.898,305,1.38,319,1.868,334,0.521,347,2.281,364,2.091,369,2.622,370,3.228,371,3.049,379,1.416,380,1.029,381,0.963,386,4.163,398,0.853,399,1.922,400,1.277,402,1.199,404,0.521,405,0.771,406,0.941,461,2.666,564,3.426,687,1.234,728,1.107,738,1.504,783,1.754,806,1.973,844,3.329,905,3.043,957,1.604,1019,1.681,1107,2.022,1345,1.148,1353,1.397,1583,1.894,1750,1.284,1843,1.372,1852,1.222,1865,2.207,1948,2.904,2037,1.698,2095,1.148,2487,1.842,2632,4.844,2633,3.903,2636,3.983,2640,1.577,2645,3.084,2646,1.698,2647,3.298,2648,2.022,2649,4.818,2659,2.928,2663,5.325,2849,3.519,3106,1.633,3259,3.225,3262,3.745,3339,4.416,3429,1.842,3451,4.366,3720,5.749,3721,2.424,3752,4.032,3771,5.405,3775,3.27,3776,5.684,3777,4.783,3778,5.76,3779,6.267,3780,3.27,3791,5.904,4052,1.698,4205,1.633,4217,1.818,4262,2.424,4281,1.264,4882,1.818,4883,1.867,4989,2.219,5017,2.936,6469,4.152,6497,2.531,6502,2.675,6508,1.796,6511,2.936,6522,3.044,6523,1.618,6535,2.266,6539,2.061,6541,1.953,6542,1.894,6543,1.796,6544,1.734,6560,1.842,6748,2.531,6757,1.796,6758,1.923,6831,3.794,6854,3.378,6864,1.867,6869,2.151,7638,2.675,7935,5.602,8091,2.104,9603,1.842,11044,2.022,11894,1.986,11914,1.986,12048,2.338,12284,2.338,12304,5.433,12305,2.338,12323,5.433,12324,2.338,12435,4.543,12438,3.45,12439,4.646,12440,4.543,12441,2.531,12443,2.531,12444,2.424,12445,2.531,12446,2.531,12447,2.531,12448,2.531,12449,2.531,12450,5.466,12451,5.048,12452,4.894,12453,2.531,12454,4.238,12455,2.424,12456,4.238,12457,2.531,12458,2.531,12459,2.424,12460,7.697,12461,2.531,12462,2.205,12463,2.338,12464,4.238,12465,6.392,12466,3.914,12467,6.392,12468,2.531,12469,2.531,12470,2.531,12471,4.238,12472,2.531,12473,2.531,12474,2.531,12475,2.531,12476,2.531,12477,2.531,12478,2.531,12479,2.531,12480,2.531,12481,2.531,12482,2.531,12483,2.531,12484,4.238,12485,2.531,12486,2.531,12487,2.205,12488,2.531,12489,2.531,12490,2.531,12491,2.531,12492,2.531,12493,2.531,12494,4.238,12495,2.531,12496,2.531,12497,4.238,12498,2.531,12499,4.238,12500,2.266,12501,2.424,12502,2.531,12503,6.392,12504,5.466,12505,4.057,12506,2.338,12507,5.466,12508,2.531,12509,5.466,12510,2.424,12511,4.238,12512,2.531,12513,2.531,12514,2.531,12515,5.466,12516,2.531,12517,4.238,12518,2.424,12519,2.531,12520,2.531,12521,6.392,12522,2.531,12523,2.531,12524,2.531,12525,2.531,12526,2.531,12527,2.531,12528,2.531,12529,4.238,12530,2.531,12531,2.531,12532,4.238,12533,2.531,12534,2.531,12535,2.531,12536,2.531,12537,2.424,12538,2.531,12539,6.392,12540,2.531,12541,2.531,12542,2.531,12543,2.531,12544,2.531,12545,2.531,12546,2.531,12547,2.531,12548,2.531,12549,2.531,19515,2.894,19516,2.894,19517,2.894,19518,2.894,19519,2.894,19520,2.894,19521,2.894,19522,2.894,19523,2.894,19524,2.894,19525,2.894,19526,2.894,19527,2.894,19528,2.894,19529,2.894]],["title/modules/TaskApiModule.html",[425,1.812,18507,5.493]],["body/modules/TaskApiModule.html",[0,0.268,3,0.019,4,0.019,5,0.01,30,0.001,95,0.169,101,0.013,103,0.001,104,0.001,187,1.14,425,3.058,427,2.847,428,3.063,429,3.153,430,3.14,431,3.127,432,4.223,433,2.979,442,4.122,443,3.088,444,3.014,446,4.952,447,4.27,449,4.087,450,3.237,481,3.026,1878,7.002,1930,7.852,1931,8.479,1935,9.051,2725,3.57,2727,3.781,3009,4.777,6338,9.418,6342,7.285,13867,9.631,18507,11.546,18997,10.039,19008,10.85,19530,7.881,19531,7.881,19532,7.881,19533,10.85,19534,10.85,19535,7.881,19536,10.039,19537,7.881,19538,7.881]],["title/entities/TaskBoardElement.html",[380,1.445,2660,5.493]],["body/entities/TaskBoardElement.html",[0,0.305,3,0.021,4,0.021,5,0.011,7,0.135,27,0.37,30,0.001,32,0.122,95,0.157,96,3.336,101,0.015,103,0.001,104,0.001,165,0.876,364,1.634,369,2.483,370,4.017,380,2.378,381,2.983,398,2.642,404,1.616,405,2.39,617,4.972,1188,4.226,1415,6.86,1865,4.085,1959,4.888,2577,5.062,2628,8.762,2649,5.693,2650,5.565,2651,7.968,2653,7.511,2660,9.038,2702,5.754,3001,6.833,3037,9.37,3584,6.053,4989,4.108,4990,7.844,5057,6.667,6434,6.266,6884,7.023,6885,7.323,6886,6.833,6887,6.52,12277,9.786,14135,8.291,19539,11.189,19540,8.969]],["title/controllers/TaskController.html",[481,2.611,19536,5.947]],["body/controllers/TaskController.html",[0,0.156,3,0.011,4,0.011,5,0.006,7,0.069,8,0.844,10,3.425,27,0.478,29,0.909,30,0.001,31,0.65,32,0.158,33,0.561,35,1.404,36,2.794,56,3.352,70,3.46,95,0.163,100,2.842,101,0.008,103,0,104,0,111,1.906,112,2.996,144,1.256,185,3.298,187,0.66,206,2.324,215,1.458,216,1.292,217,1.649,221,2.603,227,1.203,234,0.741,264,3.567,319,1.365,364,2.048,369,1.551,371,2.34,376,1.045,447,1.893,469,2.005,481,1.753,483,2.178,491,6.71,504,2.989,513,6.971,529,4.132,543,3.555,552,2.947,555,2.374,556,2.429,558,2.191,561,2.448,805,3.689,1008,3.777,1016,3.794,1028,8.477,1733,3.689,1734,3.395,1735,3.994,1750,4.217,2649,3.784,2908,8.076,2929,2.627,2930,2.448,2965,6.856,2992,2.947,3009,2.768,3010,2.554,3743,4.1,5055,2.627,6149,3.576,6386,3.689,6395,7.962,6401,4.222,6612,7.676,7935,6.052,12248,3.134,14138,3.825,14144,3.825,14949,6.646,14955,4.222,17700,3.825,17701,4.222,17715,3.994,17717,3.994,17827,6.112,19004,10.914,19533,7.108,19534,7.108,19536,6.112,19541,4.567,19542,7.846,19543,8.487,19544,6.988,19545,7.846,19546,4.567,19547,4.567,19548,4.567,19549,6.988,19550,4.567,19551,4.567,19552,4.567,19553,6.988,19554,4.567,19555,4.567,19556,4.567,19557,4.567,19558,6.988,19559,4.567,19560,4.567,19561,6.988,19562,4.567,19563,4.567,19564,6.988,19565,4.567,19566,3.994,19567,4.567,19568,4.567,19569,3.825,19570,3.689,19571,4.567,19572,4.567,19573,4.567,19574,6.988,19575,4.567,19576,4.567,19577,4.567,19578,4.567,19579,4.567,19580,9.508,19581,4.567,19582,4.567,19583,6.988,19584,10.247,19585,4.567,19586,4.567,19587,4.567,19588,4.567,19589,4.567,19590,4.567]],["title/classes/TaskCopyApiParams.html",[0,0.232,6395,5.694]],["body/classes/TaskCopyApiParams.html",[0,0.369,2,0.949,3,0.02,4,0.02,5,0.01,7,0.129,27,0.446,30,0.001,32,0.147,33,0.606,34,2.132,47,0.894,95,0.139,100,3.626,101,0.014,103,0.001,104,0.001,165,0.848,188,3.999,364,1.972,374,2.717,375,4.536,376,1.947,379,2.932,471,4.827,475,5.293,1000,4.848,1582,9.813,2524,6.354,2633,5.712,2649,5.896,2659,5.073,2884,6.665,2885,6.665,3339,6.289,5017,7.217,6157,10.961,6395,9.068,7034,8.479,10685,9.471,14148,7.87,14149,7.87,19591,9.972,19592,8.514]],["title/injectables/TaskCopyService.html",[105,0.91,2971,5.324]],["body/injectables/TaskCopyService.html",[0,0.182,3,0.013,4,0.013,5,0.006,7,0.081,8,0.949,26,1.665,27,0.452,29,0.858,30,0.001,31,0.642,32,0.171,33,0.53,35,1.244,36,1.684,47,0.38,95,0.152,99,0.89,101,0.009,103,0,104,0,105,1.05,107,1.286,111,2.595,112,2.734,127,0.984,145,2.901,185,3.994,187,0.771,188,4.232,192,1.59,216,1.723,217,1.542,221,2.652,227,0.966,234,0.866,379,1.209,450,2.191,461,2.961,564,4.2,738,2.773,1041,4.392,1345,2.117,1358,4.998,1397,1.786,1844,3.197,1935,8.005,2647,5.781,2649,5.924,2659,2.499,2960,4.177,2965,6.343,2971,6.149,2974,8.611,2980,9.276,2990,11.188,2992,7.393,3007,4.177,3008,3.966,3009,3.233,3010,2.984,3022,4.666,3023,4.177,3024,4.468,3059,4.468,3579,3.863,3580,2.172,4741,4.666,5429,3.492,6291,9.92,6292,4.932,6296,7.259,6305,9.501,6314,6.868,6319,10.126,6321,8.15,6332,6.149,6367,4.468,6659,4.309,6677,4.468,6684,4.932,6854,2.883,10490,4.932,12435,3.878,12440,3.878,19593,11.457,19594,9.318,19595,7.852,19596,4.666,19597,5.335,19598,7.852,19599,11.846,19600,5.335,19601,10.95,19602,5.335,19603,7.852,19604,12.406,19605,5.335,19606,7.852,19607,5.335,19608,5.335,19609,5.335,19610,5.335,19611,5.335,19612,5.335,19613,5.335,19614,5.335,19615,5.335,19616,5.335,19617,5.335,19618,5.335,19619,5.335,19620,4.932,19621,5.335,19622,4.932,19623,5.335,19624,5.335,19625,5.335,19626,5.335]],["title/injectables/TaskCopyUC.html",[105,0.91,19533,5.694]],["body/injectables/TaskCopyUC.html",[0,0.144,3,0.01,4,0.01,5,0.005,7,0.064,8,0.794,26,2.517,27,0.479,29,0.885,30,0.001,31,0.633,32,0.158,33,0.547,35,1.368,36,2.343,39,1.136,47,0.862,95,0.145,99,0.704,101,0.007,102,2.117,103,0,104,0,105,0.879,107,1.017,111,2.726,112,2.707,127,0.823,145,3.252,148,3.363,163,1.298,187,0.61,188,3.649,199,3.955,204,1.431,208,1.576,216,1.935,217,1.545,221,2.422,227,1.085,234,1.311,284,4.363,305,2.597,347,0.853,450,1.733,461,2.81,504,2.761,564,2.409,688,2.161,766,1.764,768,2.895,784,2.28,843,1.861,957,2.338,1125,2.501,1216,1.653,1308,4.893,1345,1.673,1353,2.036,1369,2.299,1423,2.761,1433,2.586,1646,3.675,1801,2.528,1804,2.556,1852,1.781,1855,2.65,1884,4.926,1930,6.343,1931,7.152,1935,7.635,2130,1.842,2131,2.062,2132,1.987,2133,2.685,2524,2.475,2633,3.153,2644,2.261,2647,5.214,2649,4.872,2659,1.976,2725,1.911,2783,2.528,2965,5.308,2971,8.557,2974,7.944,2980,9.47,2990,9.153,2992,2.722,3009,2.556,3010,2.359,3058,3.689,3059,3.532,3060,3.899,3586,6.322,3649,2.947,4007,4.129,4614,3.214,4661,2.226,5017,3.983,6216,2.338,6355,6.761,6397,8.426,6525,3.407,6532,3.135,6646,3.532,6659,5.308,6661,3.899,6697,3.689,6698,7.634,6704,3.689,6710,3.689,6711,3.689,6712,2.722,8610,3.899,12312,3.303,13142,3.407,14098,7.737,14161,7.463,14162,3.899,14164,3.899,14165,3.689,14168,3.899,14184,5.504,17043,3.532,17763,3.899,18804,6.075,18850,3.689,19209,6.322,19533,5.504,19601,10.975,19627,11.872,19628,6.572,19629,6.572,19630,6.572,19631,8.073,19632,6.572,19633,8.073,19634,4.218,19635,6.572,19636,4.218,19637,6.572,19638,4.218,19639,4.218,19640,6.572,19641,4.218,19642,6.572,19643,9.88,19644,4.218,19645,4.218,19646,6.572,19647,4.218,19648,6.572,19649,4.218,19650,3.407,19651,3.899,19652,3.899,19653,4.218,19654,3.689,19655,4.218,19656,4.218,19657,4.218,19658,3.532,19659,3.899,19660,4.218,19661,4.218,19662,4.218,19663,6.572,19664,4.218,19665,4.218,19666,3.899,19667,4.218,19668,4.218,19669,4.218,19670,4.218,19671,4.218,19672,4.218]],["title/classes/TaskCreateParams.html",[0,0.232,19673,5.947]],["body/classes/TaskCreateParams.html",[0,0.318,2,0.759,3,0.016,4,0.016,5,0.008,7,0.103,27,0.512,30,0.001,31,0.597,32,0.181,33,0.643,34,1.951,47,0.923,83,4.14,95,0.147,99,1.135,101,0.011,103,0.001,104,0.001,165,0.731,188,3.448,214,2.943,359,3.999,364,2.262,368,4.494,369,2.545,370,3.075,371,2.574,374,2.171,375,4.73,376,1.556,379,3.042,467,2.449,469,2.987,470,5.028,471,5.033,475,5.607,999,6.784,1000,4.339,1397,3.126,2633,5.113,2649,5.774,2659,4.373,2736,6.11,2884,6.101,2885,6.101,3259,3.511,3262,5.461,3720,5.269,3752,6.877,5017,6.459,7038,7.818,7049,5.495,7051,7.113,8178,5.724,8616,5.495,12437,7.923,15531,6.289,19591,10.649,19673,8.165,19674,6.803,19675,8.63,19676,6.803,19677,6.289,19678,6.803,19679,8.63,19680,6.803,19681,6.803,19682,6.289]],["title/classes/TaskFactory.html",[0,0.232,19031,5.947]],["body/classes/TaskFactory.html",[0,0.15,2,0.492,3,0.01,4,0.01,5,0.005,7,0.067,8,0.823,27,0.538,29,1.006,30,0.001,31,0.696,32,0.177,33,0.592,34,1.414,35,1.425,47,0.486,55,2.394,59,3.144,95,0.137,99,0.737,101,0.007,103,0,104,0,111,2.138,127,0.853,138,2.975,144,3.156,148,1.359,165,0.533,185,4.943,192,2.477,216,1.259,217,1.493,227,1.047,234,1.35,319,3.519,359,2.374,366,2.47,369,1.511,371,2.576,379,1.884,380,2.145,381,2.265,404,1.227,461,2.439,538,3.069,596,3.837,627,2.09,660,7.119,661,4.481,662,5.273,665,3.844,666,5.273,667,5.581,668,3.844,669,3.844,670,3.844,671,3.775,672,4.259,673,4.691,674,6.307,675,5.595,676,6.942,677,2.516,682,2.493,683,3.844,684,2.516,685,4.931,686,5.091,687,3.982,688,4.787,689,3.809,690,2.493,691,2.349,692,3.984,693,2.427,694,2.387,695,2.493,696,4.857,697,2.516,698,4.608,699,2.493,700,7.249,701,4.057,702,6.476,703,2.516,704,4.116,705,2.493,706,2.516,707,2.493,708,2.516,709,2.493,710,2.811,711,2.619,712,2.493,713,5.911,714,2.516,715,2.493,716,3.844,717,3.594,718,3.844,719,2.516,720,2.407,721,2.387,722,1.969,723,2.493,724,2.493,725,2.493,726,2.516,727,2.516,728,1.689,729,2.493,730,2.516,731,2.691,732,2.493,733,2.516,735,2.565,736,2.619,737,5.599,848,3.145,849,3.365,957,2.448,1125,2.619,1844,2.647,1951,3.568,2649,3.037,3752,5.363,6736,3.458,6737,3.568,6741,6.509,6746,3.458,6854,3.681,7935,5.291,10118,6.296,10119,4.083,12438,3.145,12487,7.118,12500,7.316,12501,7.824,19031,7.27,19037,4.083,19683,4.417,19684,4.417,19685,6.81,19686,4.417,19687,4.417,19688,4.417,19689,6.81,19690,4.417]],["title/classes/TaskListResponse.html",[0,0.232,19569,5.694]],["body/classes/TaskListResponse.html",[0,0.305,2,0.715,3,0.015,4,0.015,5,0.008,7,0.097,27,0.485,29,0.502,30,0.001,31,0.626,32,0.18,33,0.569,34,1.757,47,0.925,55,2.944,56,5.849,59,2.791,70,6.037,83,3.421,95,0.144,99,1.07,100,2.147,101,0.015,103,0.001,104,0.001,127,1.123,145,1.624,163,3.621,165,0.702,208,2.396,347,1.297,359,2.236,364,2.037,371,1.768,375,4.644,376,1.467,379,2.341,404,1.615,467,3.447,469,2.816,564,3.787,565,3.197,591,4.49,592,4.68,595,2.147,596,3.411,618,2.623,620,4.138,622,4.138,1007,7.672,1008,6.589,1009,5.105,1011,3.24,1013,4.731,1014,3.058,1015,3.587,1016,2.252,1017,4.481,1018,5.782,1019,5.205,1020,4.197,1021,3.411,1022,4.481,1023,4.481,1025,4.03,1026,3.555,1414,3.587,2037,3.763,2095,2.544,2268,3.653,2303,2.6,2633,4.956,2649,4.606,2745,7.119,3262,3.286,3451,7.217,3752,4.138,3753,3.98,3766,5.022,6152,5.022,6153,4.402,6154,4.261,12451,5.18,12452,5.022,17448,8.344,19569,7.505,19570,10.312,19691,5.929,19692,6.413,19693,6.413,19694,7.239,19695,5.929,19696,5.929,19697,5.929]],["title/classes/TaskMapper.html",[0,0.232,19566,5.947]],["body/classes/TaskMapper.html",[0,0.232,2,0.76,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,27,0.44,29,0.836,30,0.001,31,0.696,32,0.156,33,0.516,34,1.159,35,1.291,95,0.137,99,1.137,100,4.159,101,0.011,103,0.001,104,0.001,185,3.632,217,1.617,227,1.106,234,1.517,371,1.879,379,2.118,564,3.426,591,2.962,592,3.087,627,4.033,975,5.181,982,3.397,2303,2.762,2633,5.118,2649,4.167,3259,3.517,3262,4.789,3451,4.761,3556,8.175,3752,6.031,5017,5.665,5093,6.3,6420,8.64,6421,8.64,8091,8.344,9206,8.175,12436,8.533,12437,8.533,12452,5.336,12459,5.707,12487,5.192,17448,7.55,17612,8.64,19566,8.175,19570,9.272,19620,8.64,19673,10.039,19698,6.815,19699,9.346,19700,9.346,19701,9.346,19702,6.815,19703,9.346,19704,10.039,19705,6.815,19706,9.346,19707,6.815,19708,5.96,19709,6.815,19710,6.815,19711,6.815,19712,9.346,19713,6.815,19714,6.815,19715,6.815,19716,6.815,19717,6.815,19718,6.815,19719,6.815,19720,6.815,19721,6.815,19722,6.815,19723,6.815,19724,6.815,19725,6.815,19726,6.815,19727,9.346,19728,6.815,19729,6.815,19730,6.815,19731,10.611,19732,9.346,19733,9.346,19734,9.346]],["title/modules/TaskModule.html",[425,1.812,13867,5.055]],["body/modules/TaskModule.html",[0,0.258,3,0.018,4,0.018,5,0.009,30,0.001,95,0.165,101,0.013,103,0.001,104,0.001,187,1.097,425,3.001,427,2.74,428,2.947,429,3.035,430,3.022,431,3.009,432,4.145,433,4.257,442,4.019,443,2.972,444,2.9,449,3.985,450,3.115,766,3.173,1358,4.828,1878,5.429,1930,7.769,1931,8.389,1934,9.766,1935,8.955,1953,7.018,2725,3.436,2971,10.781,3009,4.597,3010,4.242,3567,9.529,3579,3.731,3580,3.088,5003,10.49,6338,9.318,13867,10.645,19200,11.122,19735,7.584,19736,7.584,19737,7.584,19738,7.584,19739,7.584]],["title/injectables/TaskRepo.html",[105,0.91,1935,4.751]],["body/injectables/TaskRepo.html",[0,0.124,3,0.009,4,0.009,5,0.004,7,0.111,8,0.707,10,2.363,12,2.682,18,2.958,26,2.713,27,0.479,29,0.891,30,0.001,31,0.637,32,0.173,33,0.55,34,0.62,35,1.406,36,2.674,39,0.982,40,2.826,53,2.65,56,1.749,58,2.352,59,3.061,72,1.651,83,1.791,95,0.133,96,0.997,98,2.161,101,0.006,103,0,104,0,105,0.783,107,0.879,111,1.97,112,2.918,138,4.69,144,1.003,145,2.128,167,2.155,187,0.527,188,2.163,217,1.665,221,2.485,227,1.071,234,1.921,264,3.084,277,3.391,319,1.089,347,1.484,369,1.865,379,0.826,380,0.775,381,1.948,398,1.074,404,1.055,529,2.545,538,3.786,596,2.563,692,4.34,701,4.409,877,6.06,883,2.484,884,2.759,885,3.708,908,2.235,909,2.262,910,2.235,911,2.262,912,2.596,913,2.235,914,2.262,915,2.021,946,2.386,956,2.386,964,2.502,1014,1.738,1167,3.218,1583,2.386,1844,2.185,1935,4.091,2142,2.71,2144,4.742,2394,4.982,2471,2.386,2545,1.939,2633,3.521,2649,5.435,2659,3.936,3105,5.348,3262,3,3339,1.829,3613,9.033,3675,2.502,3720,2.057,4431,2.29,4435,2.46,4659,3.89,4661,3.873,4748,4.658,4749,5.413,4878,2.235,5043,3.305,5055,5.293,5880,3.401,6216,4.658,6612,5.516,6778,2.777,6782,2.777,6901,7.89,6902,7.287,6931,2.65,6932,2.65,7802,2.71,7935,2.32,8985,3.053,9015,3.37,9019,5.121,11714,2.262,12487,2.777,17680,3.37,18877,4.461,19740,3.645,19741,5.855,19742,7.338,19743,7.338,19744,6.784,19745,5.855,19746,5.855,19747,3.645,19748,3.645,19749,3.645,19750,5.413,19751,7.338,19752,3.645,19753,3.645,19754,3.37,19755,3.645,19756,5.855,19757,3.645,19758,5.855,19759,3.645,19760,3.645,19761,9.391,19762,3.645,19763,3.645,19764,3.645,19765,3.645,19766,3.645,19767,3.37,19768,3.37,19769,3.37,19770,3.37,19771,9.203,19772,3.645,19773,3.645,19774,3.645,19775,3.645,19776,3.645,19777,3.645,19778,3.645,19779,3.645,19780,3.645,19781,3.645,19782,3.645,19783,3.645,19784,3.645,19785,2.945,19786,3.645,19787,3.645,19788,3.645,19789,3.645,19790,3.645,19791,3.645,19792,3.645,19793,3.645,19794,3.645,19795,3.645,19796,3.645,19797,3.645,19798,3.645,19799,3.645,19800,3.645,19801,3.645,19802,3.645,19803,9.827,19804,7.338,19805,3.188,19806,3.188,19807,3.188,19808,3.645,19809,7.338,19810,3.645,19811,3.645,19812,3.645,19813,3.645,19814,3.645,19815,3.645,19816,3.645,19817,3.645,19818,3.645,19819,3.645,19820,5.855,19821,3.645,19822,3.645,19823,3.645,19824,3.645,19825,3.645,19826,3.645,19827,3.188,19828,3.645,19829,5.855,19830,3.645,19831,3.645,19832,3.645,19833,3.188,19834,3.645,19835,3.188,19836,3.645,19837,3.37,19838,2.945,19839,3.645,19840,3.188,19841,3.645,19842,3.645,19843,3.37,19844,3.645,19845,3.37,19846,3.645,19847,3.645]],["title/classes/TaskResponse.html",[0,0.232,19570,5.493]],["body/classes/TaskResponse.html",[0,0.279,2,0.632,3,0.013,4,0.013,5,0.007,7,0.086,27,0.549,29,0.444,30,0.001,31,0.655,32,0.186,33,0.627,34,1.909,47,0.973,55,2.078,56,3.936,70,4.063,83,3.781,95,0.136,99,0.945,100,2.747,101,0.014,103,0,104,0,127,1.028,144,2.256,163,2.525,165,0.643,208,3.065,319,2.452,347,1.659,359,2.86,364,2.408,371,1.562,375,4.872,376,1.296,379,2.735,404,1.021,467,3.542,469,2.487,564,4.114,565,4.09,591,4.878,592,5.084,595,2.747,618,2.317,620,3.655,622,3.655,966,2.882,1007,5.03,1008,3.062,1009,3.227,1025,3.559,1026,3.14,1403,3.14,1414,4.588,2037,3.324,2095,2.248,2268,4.674,2303,3.326,2633,5.384,2649,5.004,2742,5.964,2745,6.731,3262,4.942,3451,7.841,3752,6.224,3753,5.985,3766,4.436,6152,6.424,6153,5.631,6154,5.451,12451,7.791,12452,7.553,17448,8.542,19569,4.744,19570,9.984,19691,5.237,19694,7.791,19695,5.237,19696,5.237,19697,5.237,19848,5.665,19849,5.665,19850,5.665,19851,5.665,19852,5.665,19853,5.665,19854,5.665,19855,5.665,19856,5.665,19857,5.665,19858,5.665,19859,5.665,19860,5.665,19861,5.665,19862,5.665]],["title/injectables/TaskRule.html",[105,0.91,1897,5.493]],["body/injectables/TaskRule.html",[0,0.215,3,0.015,4,0.015,5,0.008,7,0.096,8,1.072,27,0.458,29,0.871,30,0.001,31,0.622,32,0.159,33,0.537,35,1.241,95,0.156,101,0.011,103,0.001,104,0.001,105,1.187,107,1.524,111,2.433,116,3.78,127,1.111,187,0.914,199,4.424,214,1.993,216,1.896,217,1.655,227,1.258,347,2.455,369,1.403,371,1.744,380,2.84,461,3.081,806,2.574,843,2.79,1750,3.936,1795,6.007,1798,7.543,1799,6.736,1813,4.502,1823,7.531,1844,3.79,1852,2.67,1861,5.378,1889,9.265,1893,10.068,1897,7.167,2002,5.725,2006,5.506,2013,4.201,2649,5.904,3339,3.173,3385,5.895,3386,4.267,3389,5.807,3392,4.267,3393,5.989,6790,5.53,6791,5.53,6792,5.295,6793,7.761,6854,3.417,14253,8.202,17671,7.761,17673,8.202,19863,6.323,19864,10.274,19865,6.323,19866,8.873,19867,6.323,19868,6.323,19869,6.323,19870,6.323,19871,8.873,19872,6.323,19873,6.323,19874,6.323,19875,8.873,19876,6.323]],["title/classes/TaskScope.html",[0,0.232,19761,5.947]],["body/classes/TaskScope.html",[0,0.147,2,0.48,3,0.01,4,0.01,5,0.005,7,0.065,8,0.806,26,2.871,27,0.54,29,0.991,30,0.001,31,0.709,32,0.177,33,0.612,35,1.547,39,2.202,83,3.574,95,0.118,96,1.177,101,0.007,103,0,104,0,111,2.536,144,2.743,148,1.324,165,0.523,167,3.391,188,2.465,217,1.199,227,1.297,234,0.699,277,4.818,319,1.286,347,2.497,369,1.815,398,1.268,404,1.203,529,4.785,596,3.042,1844,2.579,2394,6.746,2545,2.289,2649,1.919,2659,3.831,3262,4.721,3637,6.605,3752,6.435,3776,5.713,5991,4.505,5992,4.505,5993,4.505,5998,4.505,5999,4.505,6000,2.953,6001,2.904,6002,2.953,6003,2.953,6012,2.904,6013,4.505,6014,2.953,6015,2.904,6016,2.953,6017,2.904,6018,8.058,6216,6.618,6741,3.37,6778,5.086,6854,5.39,6922,3.476,7935,4.249,10208,3.476,10217,3.764,10220,3.978,10224,3.764,10226,7.152,10227,6.171,14269,6.171,14270,6.171,14273,3.764,19761,11.799,19805,5.838,19806,5.838,19807,8.059,19827,8.059,19877,12.651,19878,6.675,19879,6.675,19880,6.675,19881,6.675,19882,6.675,19883,6.675,19884,6.675,19885,6.675,19886,6.675,19887,6.675,19888,6.675,19889,4.303,19890,6.675,19891,4.303,19892,6.675,19893,6.675,19894,4.303,19895,6.675,19896,6.675,19897,4.303,19898,6.675,19899,4.303,19900,6.675,19901,4.303,19902,6.675,19903,4.303,19904,6.675,19905,4.303,19906,6.675,19907,4.303,19908,4.303,19909,4.303,19910,4.303,19911,4.303,19912,4.303]],["title/injectables/TaskService.html",[105,0.91,5003,5.181]],["body/injectables/TaskService.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,10,3.772,12,4.28,26,2.819,27,0.496,29,0.942,30,0.001,31,0.674,32,0.173,33,0.582,35,1.389,36,2.778,59,2.911,95,0.154,98,4.041,99,1.137,101,0.011,103,0.001,104,0.001,105,1.25,107,1.643,111,2.49,112,2.983,127,1.171,138,4.083,187,0.985,216,1.972,217,1.216,221,2.657,227,0.969,347,1.89,450,2.799,701,4.058,1358,4.338,1935,8.679,2401,4.954,2406,5.336,2633,5.507,2649,5.86,3579,3.353,3580,2.774,3720,3.846,5003,7.121,6216,5.181,6298,9.059,6901,8.174,6902,6.957,12487,5.192,19015,6.3,19200,10.276,19209,5.336,19243,6.3,19596,5.96,19654,5.96,19744,9.861,19754,6.3,19827,5.96,19913,6.815,19914,9.346,19915,6.815,19916,9.346,19917,6.815,19918,9.346,19919,6.815,19920,9.346,19921,6.815,19922,6.815,19923,6.815,19924,6.815,19925,6.815,19926,6.815,19927,6.815,19928,6.815]],["title/classes/TaskStatusMapper.html",[0,0.232,19708,5.947]],["body/classes/TaskStatusMapper.html",[0,0.33,2,1.079,3,0.023,4,0.023,5,0.012,7,0.146,8,1.416,27,0.399,29,0.758,30,0.001,31,0.542,32,0.132,33,0.468,35,1.172,95,0.151,99,1.615,100,3.926,101,0.016,103,0.001,104,0.001,217,1.26,227,1.004,234,1.572,564,3.549,627,3.871,975,6.501,3766,7.58,3770,10.256,3771,8.711,19694,10.19,19708,10.256,19929,11.726,19930,9.68,19931,9.68,19932,9.68,19933,9.68]],["title/classes/TaskStatusResponse.html",[0,0.232,19694,5.493]],["body/classes/TaskStatusResponse.html",[0,0.273,2,0.893,3,0.019,4,0.019,5,0.01,7,0.121,27,0.546,29,0.627,30,0.001,31,0.448,32,0.18,33,0.387,55,2.803,95,0.103,101,0.013,103,0.001,104,0.001,127,1.304,165,0.815,347,2.632,364,2.37,376,1.831,467,3.66,966,4.074,3774,7.401,3775,8.567,3776,8.869,3777,8.308,3778,8.308,3779,9.039,3780,8.567,3781,7.401,3788,6.705,3789,7.401,3790,6.705,3791,6.467,3792,7.401,3793,7.401,19591,11.248,19694,10.254,19934,8.006,19935,8.006,19936,8.006,19937,8.006,19938,8.006,19939,8.006]],["title/injectables/TaskUC.html",[105,0.91,19534,5.694]],["body/injectables/TaskUC.html",[0,0.106,3,0.007,4,0.007,5,0.004,7,0.047,8,0.624,10,2.086,26,2.741,27,0.457,29,0.847,30,0.001,31,0.606,32,0.147,33,0.523,35,1.309,36,2.638,39,2.825,59,0.974,83,2.598,95,0.109,98,3.064,99,0.522,101,0.005,103,0,104,0,105,0.691,107,0.754,111,2.51,112,2.877,127,0.647,144,1.421,187,0.452,188,3.137,216,1.57,217,1.776,221,2.992,227,1.216,234,1.704,284,1.69,305,0.891,309,1.799,347,1.718,369,0.694,371,2.115,380,0.665,450,1.285,461,2.924,529,1.359,564,4.23,574,1.373,721,1.69,738,3.988,766,1.308,843,2.281,951,2.383,1008,4.943,1016,2.693,1646,1.749,1750,3.402,1798,4.329,1801,1.874,1804,3.132,1805,3.433,1813,3.68,1814,4.533,1852,1.321,1874,2.227,1884,5.231,1930,5.866,1931,6.335,1935,6.39,1982,5.09,1984,4.047,2004,3.547,2144,3.727,2440,1.782,2448,2.891,2487,1.991,2647,1.651,2649,4.315,2725,1.417,3106,2.917,3262,4.352,3452,3.247,3771,3.433,3777,5.02,4184,4.458,4431,1.965,4435,2.111,4748,5.61,5003,7.374,5043,3.727,5055,3.799,6098,2.047,6216,3.661,6229,2.078,6612,7.3,6778,5.844,6896,4.52,6974,4.047,7810,1.918,7935,3.29,8091,2.273,8121,7.428,8961,8.791,10055,2.325,11774,1.991,14184,6.424,14301,4.52,14949,4.047,17043,2.619,18877,2.383,19209,8.217,19534,4.328,19542,4.778,19545,4.778,19596,2.735,19622,4.778,19654,5.777,19767,4.778,19768,4.778,19769,4.778,19770,4.778,19805,4.52,19806,2.735,19807,4.52,19940,3.128,19941,5.168,19942,5.168,19943,7.67,19944,5.168,19945,5.168,19946,3.128,19947,5.168,19948,3.128,19949,3.128,19950,5.168,19951,3.128,19952,5.168,19953,3.128,19954,5.168,19955,3.128,19956,5.168,19957,3.128,19958,3.128,19959,5.168,19960,8.493,19961,3.128,19962,5.168,19963,3.128,19964,5.168,19965,3.128,19966,3.128,19967,6.604,19968,5.168,19969,6.604,19970,6.604,19971,9.147,19972,5.168,19973,9.147,19974,5.168,19975,5.168,19976,7.67,19977,3.128,19978,9.147,19979,6.604,19980,7.67,19981,6.604,19982,4.778,19983,3.128,19984,3.128,19985,3.128,19986,3.128,19987,3.128,19988,3.128,19989,3.128,19990,3.128,19991,7.67,19992,5.168,19993,3.128,19994,7.67,19995,5.168,19996,5.168,19997,5.168,19998,3.128,19999,5.168,20000,3.128,20001,3.128,20002,7.67,20003,3.128,20004,3.128,20005,3.128,20006,3.128,20007,3.128,20008,3.128,20009,3.128,20010,3.128,20011,3.128,20012,3.128,20013,3.128,20014,5.168,20015,5.168,20016,3.128,20017,3.128,20018,5.168,20019,5.168,20020,3.128,20021,3.128]],["title/classes/TaskUpdateParams.html",[0,0.232,19704,5.947]],["body/classes/TaskUpdateParams.html",[0,0.318,2,0.759,3,0.016,4,0.016,5,0.008,7,0.103,27,0.512,30,0.001,31,0.597,32,0.181,33,0.643,34,1.951,47,0.923,83,4.14,95,0.147,99,1.135,101,0.011,103,0.001,104,0.001,165,0.731,188,3.448,214,2.943,359,3.999,364,2.262,368,4.494,369,2.545,370,3.075,371,2.574,374,2.171,375,4.73,376,1.556,379,3.042,467,2.449,469,2.987,470,5.028,471,5.033,475,5.607,999,6.784,1000,4.339,1397,3.126,2633,5.113,2649,5.774,2659,4.373,2736,6.11,2884,6.101,2885,6.101,3259,3.511,3262,5.461,3720,5.269,3752,6.877,5017,6.459,7038,7.818,7049,5.495,7051,7.113,8178,5.724,9420,5.697,12436,7.923,19591,10.649,19675,8.63,19677,6.289,19679,8.63,19682,6.289,19704,8.165,20022,6.803,20023,6.803,20024,6.803,20025,6.803,20026,6.803,20027,6.803]],["title/classes/TaskUrlParams.html",[0,0.232,19004,5.694]],["body/classes/TaskUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,2649,5.267,3795,5.749,19004,9.892,19209,9.931,20028,9.798,20029,9.798]],["title/classes/TaskWithStatusVo.html",[0,0.232,8091,4.943]],["body/classes/TaskWithStatusVo.html",[0,0.181,2,0.361,3,0.008,4,0.008,5,0.004,7,0.173,26,1.834,27,0.279,29,0.253,30,0.001,31,0.298,32,0.152,33,0.156,34,0.904,47,0.701,55,1.145,83,2.646,95,0.15,96,0.885,101,0.014,103,0,104,0,111,2.405,116,3.564,127,0.405,145,1.983,148,2.41,165,0.728,167,1.191,187,0.468,188,3.195,192,0.964,214,1.02,217,1.772,227,1.341,234,1.666,240,3.37,247,2.082,305,1.514,334,0.571,347,2.267,369,2.427,370,3.063,371,3.155,379,0.733,380,1.129,398,0.953,399,2.109,400,1.428,402,1.341,404,0.583,405,0.862,406,1.052,461,2.706,564,4.108,687,1.379,728,1.237,738,1.682,783,1.961,806,2.164,844,3.081,905,3.261,957,1.794,1019,1.879,1107,2.26,1345,1.284,1353,1.562,1583,2.118,1750,1.435,1843,1.534,1852,1.366,1865,2.421,1948,3.185,2037,1.898,2095,1.284,2487,2.06,2632,3.984,2633,3.757,2636,2.896,2640,1.763,2645,3.383,2646,1.898,2647,2.805,2648,2.26,2649,5.348,2659,1.516,2663,5.661,2849,3.741,3106,1.826,3259,2.743,3262,2.723,3339,4.666,3429,2.06,3451,4.725,3720,5.544,3721,2.71,3752,2.088,3771,6.816,3775,3.587,3776,6.043,3777,5.125,3778,6.085,3779,6.621,3780,3.587,3791,6.325,4052,1.898,4205,1.09,4217,2.033,4281,1.413,4882,2.033,4883,2.088,4989,2.434,5017,1.961,6469,4.493,6508,2.008,6511,3.221,6522,3.339,6523,1.81,6535,2.534,6539,2.304,6541,2.184,6542,2.118,6543,2.008,6544,1.939,6560,2.06,6757,2.008,6758,2.15,6831,2.534,6854,1.749,6864,2.088,6869,2.405,7935,4.984,8091,3.863,9603,2.06,11044,2.26,11894,2.221,11914,2.221,12048,2.614,12284,2.614,12304,5.821,12305,2.614,12323,5.821,12324,2.614,12435,2.352,12438,3.785,12439,2.405,12440,2.352,12441,2.83,12443,2.83,12444,2.71,12445,2.83,12446,2.83,12447,2.83,12448,2.83,12449,4.648,12450,5.916,12451,5.463,12452,5.296,12453,2.83,12454,2.83,12455,2.71,12456,2.83,12457,2.83,12458,2.83,12459,2.71,12460,8.132,12461,2.83,12462,2.465,12463,2.614,12464,4.648,12465,6.849,12466,4.293,12467,6.849,12468,2.83,12469,2.83,12470,2.83,12471,4.648,12472,2.83,12473,2.83,12474,2.83,12475,2.83,12476,2.83,12477,2.83,12478,2.83,12479,2.83,12480,2.83,12481,2.83,12482,2.83,12483,2.83,12484,4.648,12485,2.83,12486,2.83,12487,2.465,12488,2.83,12489,2.83,12490,2.83,12491,2.83,12492,2.83,12493,2.83,12494,4.648,12495,2.83,12496,2.83,12497,4.648,12498,2.83,12499,4.648,12500,2.534,12501,2.71,12502,2.83,12503,6.849,12504,5.916,12505,4.451,12506,2.614,12507,5.916,12508,2.83,12509,5.916,12510,2.71,12511,4.648,12512,2.83,12513,2.83,12514,2.83,12515,5.916,12516,2.83,12517,4.648,12518,2.71,12519,2.83,12520,2.83,12521,6.849,12522,2.83,12523,2.83,12524,2.83,12525,2.83,12526,2.83,12527,2.83,12528,2.83,12529,4.648,12530,2.83,12531,2.83,12532,4.648,12533,2.83,12534,2.83,12535,2.83,12536,2.83,12537,2.71,12538,2.83,12539,6.849,12540,2.83,12541,2.83,12542,2.83,12543,2.83,12544,2.83,12545,2.83,12546,2.83,12547,2.83,12548,2.83,12549,2.83,20030,5.315,20031,3.236]],["title/classes/TeamDto.html",[0,0.232,4531,4.842]],["body/classes/TeamDto.html",[0,0.364,2,0.93,3,0.02,4,0.02,5,0.01,7,0.126,26,2.5,27,0.513,29,0.653,30,0.001,31,0.696,32,0.169,33,0.403,34,2.006,39,2.245,47,0.917,95,0.107,99,1.391,100,3.577,101,0.018,103,0.001,104,0.001,127,1.044,165,0.837,379,1.889,405,3.142,415,4.506,416,5.307,425,2.847,595,2.792,618,3.41,619,4.622,1852,4.511,2095,3.308,2412,6.801,4205,2.81,4281,3.642,4282,4.944,4283,6.198,4531,9.155,4600,8.982,4666,6.198,11307,7.293,11308,7.293,11936,7.098,12552,8.571,12561,6.529,15252,10.044,16197,9.345,17313,8.948,20032,7.708,20033,9.345,20034,8.948,20035,8.631,20036,10.685,20037,8.338,20038,8.338,20039,7.708]],["title/entities/TeamEntity.html",[380,1.445,6847,4.121]],["body/entities/TeamEntity.html",[0,0.327,3,0.017,4,0.017,5,0.009,7,0.107,27,0.395,30,0.001,31,0.653,32,0.13,39,1.906,47,0.776,62,6.383,72,3.206,95,0.157,96,2.624,101,0.019,103,0.001,104,0.001,111,1.419,144,2.992,165,0.751,192,2.858,227,1.128,234,1.149,240,3.451,334,1.03,364,1.747,369,2.128,380,2.038,381,2.354,398,2.085,399,3.805,400,3.123,402,2.934,404,1.275,405,2.556,406,2.302,415,5.879,461,2.99,496,5.305,728,4.16,844,5.723,1858,5.024,2095,2.808,2181,5.145,2574,5.614,2632,3.26,3584,4.777,4205,2.386,4265,5.04,4271,5.227,4281,3.092,4282,6.45,4285,8.518,4989,5.582,6521,4.34,6523,3.959,6544,4.242,6847,5.813,6885,4.632,10050,5.145,10051,5.145,11314,5.145,11315,5.393,11936,4.702,12550,7.51,12551,5.928,12552,6.972,12553,9.15,12554,5.543,12555,7.747,12556,5.928,12557,5.928,12558,5.928,12559,5.928,12560,5.928,12561,5.543,12562,5.928,12563,5.928,20040,7.078,20041,7.078]],["title/classes/TeamFactory.html",[0,0.232,20042,6.286]],["body/classes/TeamFactory.html",[0,0.162,2,0.532,3,0.011,4,0.011,5,0.006,7,0.072,8,0.872,27,0.537,29,1.028,30,0.001,31,0.716,32,0.181,33,0.611,34,1.482,35,1.457,39,2.346,47,0.745,55,2.459,59,3.253,95,0.125,99,0.796,101,0.008,103,0,104,0,127,0.597,138,3.154,144,3.233,148,1.467,165,0.565,185,4.911,216,1.335,217,1.134,227,0.904,319,3.513,359,2.517,366,2.666,379,1.975,380,2.219,381,2.401,404,1.301,496,4.409,538,3.253,596,3.9,627,2.215,660,7.216,661,4.618,662,5.486,665,4.074,666,5.486,667,5.705,668,4.074,669,4.074,670,4.074,671,4.002,672,4.465,673,4.918,674,6.461,675,5.789,676,7.042,677,2.715,682,2.69,683,4.074,684,2.715,685,5.13,686,5.297,687,4.143,688,4.98,689,4.038,690,2.69,691,2.535,692,4.105,693,2.62,694,2.576,695,2.69,696,5.053,697,2.715,698,4.83,699,2.69,700,7.216,701,4.156,702,6.635,703,2.715,704,4.315,705,2.69,706,2.715,707,2.69,708,2.715,709,2.69,710,3.034,711,2.826,712,2.69,713,6.091,714,2.715,715,2.69,716,4.074,717,3.81,718,4.074,719,2.715,720,2.598,721,2.576,722,2.125,723,2.69,724,2.69,725,2.69,726,2.715,727,2.715,728,1.823,729,2.69,730,2.715,731,2.852,732,2.69,733,2.715,735,2.769,737,4.327,4306,3.992,4533,2.958,6847,2.889,12550,3.733,12552,6.334,12553,6.922,15248,6.046,20042,8.055,20043,4.767,20044,6.674,20045,7.219,20046,6.674,20047,4.767,20048,7.219,20049,4.767,20050,4.169,20051,4.767,20052,4.767,20053,4.767,20054,4.767,20055,4.767]],["title/injectables/TeamMapper.html",[105,0.91,4637,5.694]],["body/injectables/TeamMapper.html",[0,0.296,3,0.021,4,0.021,5,0.01,7,0.131,8,1.324,27,0.358,29,0.68,30,0.001,31,0.614,32,0.118,33,0.42,34,1.476,35,1.051,39,2.337,95,0.154,99,1.448,100,3.67,101,0.014,103,0.001,104,0.001,105,1.466,107,2.092,116,3.742,187,1.255,217,1.129,227,1.137,234,1.78,264,3.647,379,1.967,380,2.682,4205,2.925,4531,8.987,4533,6.801,4564,8.854,4600,7.658,4637,9.179,4666,6.452,6847,8.055,12552,7.968,12553,7.805,15248,7.268,15252,9.704,20056,8.679,20057,10.961,20058,10.961,20059,8.679,20060,10.132,20061,8.679,20062,8.679,20063,8.023,20064,8.679,20065,8.679,20066,8.679,20067,8.679]],["title/entities/TeamNews.html",[380,1.445,6888,5.181]],["body/entities/TeamNews.html",[0,0.345,3,0.012,4,0.022,5,0.006,7,0.171,9,3.616,26,2.146,27,0.213,30,0.001,31,0.43,32,0.138,34,0.88,47,0.877,83,2.347,95,0.155,96,2.503,101,0.018,103,0,104,0,165,0.847,188,2.834,192,3.222,208,1.932,227,0.536,234,1.485,240,3.72,334,0.555,364,0.942,369,2.514,370,3.732,380,2.298,381,1.72,398,1.523,399,3.044,400,2.282,404,1.824,405,2.697,406,1.682,461,2.473,571,5.749,574,4.017,595,1.731,617,5.072,627,1.587,672,4.688,731,3.615,769,4.55,843,2.282,844,5.16,854,3.851,1031,2.404,1187,4.363,1188,4.77,1189,4.311,1190,4.56,1191,4.986,1397,3.063,1415,4.705,1843,3.637,1849,2.595,1865,3.495,1941,3.291,1959,2.818,2303,3.709,2577,5.164,2632,4.214,2646,3.034,2702,5.795,2747,2.668,3427,3.549,3429,3.291,3430,3.612,3432,3.682,3433,3.612,3434,3.844,3448,3.17,3584,3.49,3609,3.291,4205,1.743,4297,3.939,4298,3.759,4989,4.19,5057,3.844,5072,3.759,5618,6.651,6216,2.866,6434,3.612,6521,3.17,6523,2.892,6544,3.099,6757,3.208,6844,3.844,6845,4.177,6847,5.545,6848,4.177,6849,6.801,6850,5.903,6851,4.177,6852,8.871,6853,5.098,6854,4.945,6855,5.704,6856,5.704,6857,6.717,6858,7.529,6859,4.177,6860,5.464,6861,4.177,6862,3.939,6863,3.939,6864,4.951,6865,4.177,6866,3.939,6867,3.939,6868,4.177,6869,3.844,6870,4.177,6871,3.066,6872,3.17,6873,3.939,6874,4.177,6875,4.177,6876,7.164,6877,4.177,6878,7.39,6879,4.177,6880,4.177,6881,5.846,6882,3.939,6883,6.392,6884,4.049,6885,5.022,6886,3.939,6887,3.759,6888,5.846,6889,6.198,20068,5.17]],["title/controllers/TeamNewsController.html",[481,2.611,15070,5.947]],["body/controllers/TeamNewsController.html",[0,0.259,3,0.018,4,0.018,5,0.009,7,0.115,8,1.215,27,0.313,29,0.595,30,0.001,31,0.426,32,0.103,33,0.367,35,0.92,36,2.157,72,3.442,95,0.168,100,2.544,101,0.013,103,0.001,104,0.001,112,2.485,187,1.099,215,2.425,216,1.405,217,1.467,221,1.759,227,0.788,234,1.234,264,4.227,277,4.55,364,1.384,376,1.738,447,3.15,461,2.301,469,3.336,481,2.917,483,3.623,491,5.903,494,6.757,513,6.306,529,4.9,555,3.95,556,4.042,561,4.074,1016,3.531,1028,8.384,2727,3.645,2908,6.583,2930,4.074,3743,4.459,4533,7.745,5880,5.842,6612,7.192,6858,5.73,7810,4.659,10682,9.693,11779,6.138,11936,5.048,12793,6.364,14957,9.298,14966,6.138,14967,6.646,14968,9.107,14970,6.138,14972,7.024,14977,6.646,14978,6.646,14979,7.024,14980,7.024,14981,7.024,14982,7.024,15070,8.797,20069,10.058,20070,7.599,20071,11.274,20072,7.599,20073,10.495,20074,10.058,20075,7.599,20076,7.599,20077,7.024,20078,7.599,20079,7.599,20080,7.599]],["title/classes/TeamPermissionsBody.html",[0,0.232,4608,5.493]],["body/classes/TeamPermissionsBody.html",[0,0.373,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,10,4.844,27,0.536,30,0.001,32,0.177,95,0.141,101,0.014,103,0.001,104,0.001,165,0.857,347,2.806,364,2.369,373,7.121,374,2.764,376,1.981,467,3.485,883,5.091,1804,7.274,1805,7.973,4600,9.28,4608,8.842,7330,9.909,18625,9.144,20081,12.279,20082,8.66,20083,8.66,20084,8.66,20085,8.66,20086,8.66,20087,8.66]],["title/classes/TeamPermissionsDto.html",[0,0.232,4542,5.324]],["body/classes/TeamPermissionsDto.html",[0,0.291,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,10,4.81,27,0.546,29,0.668,30,0.001,31,0.478,32,0.18,33,0.674,101,0.014,103,0.001,104,0.001,127,1.069,165,0.849,347,2.8,405,2.889,595,2.857,883,5.056,1804,7.224,1805,7.918,4542,10.138,4545,11.758,4600,9.392,9995,7.462,9996,7.462,9997,7.462,9998,7.462,9999,7.462,10000,7.462,10001,7.462,10002,7.462,18625,9.081,20088,7.887,20089,10.843,20090,7.887,20091,7.887,20092,7.887,20093,7.887,20094,8.532,20095,8.532]],["title/injectables/TeamPermissionsMapper.html",[105,0.91,4638,5.694]],["body/injectables/TeamPermissionsMapper.html",[0,0.3,3,0.021,4,0.021,5,0.011,7,0.133,8,1.337,10,3.556,27,0.363,29,0.69,30,0.001,31,0.494,32,0.12,33,0.426,35,1.067,95,0.155,100,3.705,101,0.015,103,0.001,104,0.001,105,1.48,107,2.124,116,3.768,187,1.274,227,1.148,234,1.431,264,3.703,379,1.997,543,6.788,883,3.738,1804,5.341,1805,5.854,4466,6.428,4542,9.936,4546,6.9,4564,8.939,4600,7.731,4608,10.25,4623,7.707,4638,9.267,4641,9.679,4667,11.73,4702,8.146,18625,6.714,20060,10.23,20096,8.812,20097,11.066,20098,11.066,20099,8.812,20100,8.812,20101,8.812,20102,8.812,20103,8.812,20104,8.812,20105,8.812]],["title/classes/TeamRoleDto.html",[0,0.232,4606,5.694]],["body/classes/TeamRoleDto.html",[0,0.399,2,1.077,3,0.023,4,0.023,5,0.012,7,0.146,27,0.483,30,0.001,32,0.159,47,0.934,95,0.15,101,0.016,103,0.001,104,0.001,165,0.917,364,2.133,374,3.082,376,2.209,467,3.306,1000,5.131,3889,8.649,4600,8.805,4606,9.806,4666,9.368,5806,8.512,20081,11.65,20106,9.657,20107,9.657,20108,9.657]],["title/classes/TeamRolePermissionsDto.html",[0,0.232,4566,5.493]],["body/classes/TeamRolePermissionsDto.html",[0,0.302,2,0.989,3,0.021,4,0.021,5,0.011,7,0.134,27,0.54,29,0.695,30,0.001,31,0.497,32,0.178,33,0.429,47,0.953,101,0.015,103,0.001,104,0.001,127,1.111,165,0.87,347,2.248,405,2.961,496,5.642,595,2.97,1849,6.089,3889,8.328,3894,8.2,4511,9.02,4566,10.58,4569,10.613,4571,6.613,8448,8.2,8449,8.2,9934,6.594,9964,6.946,20088,8.2,20090,8.2,20091,10.272,20092,8.2,20093,8.2,20109,13.364,20110,8.87,20111,8.87,20112,8.87]],["title/injectables/TeamRule.html",[105,0.91,1898,5.694]],["body/injectables/TeamRule.html",[0,0.271,3,0.019,4,0.019,5,0.01,7,0.12,8,1.252,27,0.475,29,0.903,30,0.001,31,0.646,32,0.166,33,0.558,35,1.255,95,0.157,101,0.013,103,0.001,104,0.001,105,1.387,107,1.919,116,4.046,127,0.997,187,1.151,199,4.358,214,2.509,215,2.54,216,1.472,217,1.036,227,1.075,347,2.471,371,2.195,380,2.811,461,3.102,738,4.138,806,3.24,1795,6.603,1823,8.061,1844,4.77,1861,7.679,1898,8.683,2002,6.69,2006,6.434,3385,6.888,3386,5.372,3389,6.786,3392,5.372,3394,5.916,6847,8.13,12553,7.383,20063,7.357,20113,7.959,20114,7.959,20115,7.959,20116,7.959,20117,10.368,20118,7.959,20119,7.959]],["title/injectables/TeamService.html",[105,0.91,20120,5.947]],["body/injectables/TeamService.html",[0,0.282,3,0.02,4,0.02,5,0.01,7,0.125,8,1.284,26,2.83,27,0.484,29,0.92,30,0.001,31,0.658,32,0.16,33,0.568,35,1.287,36,2.658,39,3.162,95,0.151,99,1.38,101,0.014,103,0.001,104,0.001,105,1.422,107,1.993,112,2.892,116,4.088,127,1.036,187,1.196,215,2.639,216,1.529,217,1.383,221,2.718,227,1.102,450,3.397,1936,9.007,6847,5.012,11936,7.803,12640,9.825,20120,9.296,20121,8.269,20122,10.628,20123,10.628,20124,8.269,20125,8.269,20126,10.628,20127,8.269,20128,10.628,20129,8.269,20130,8.269,20131,8.269,20132,8.269,20133,8.269,20134,8.269,20135,8.269]],["title/classes/TeamUrlParams.html",[0,0.232,20073,5.947]],["body/classes/TeamUrlParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,34,2.009,47,0.842,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,364,1.785,368,4.628,369,2.621,370,3.891,371,3.257,374,3.127,376,2.241,379,2.22,467,3.099,1000,4.809,3795,5.749,3889,8.704,4533,7.33,20073,10.332,20136,9.798,20137,9.798]],["title/classes/TeamUserDto.html",[0,0.232,15252,5.493]],["body/classes/TeamUserDto.html",[0,0.369,2,0.951,3,0.02,4,0.02,5,0.01,7,0.129,26,2.299,27,0.517,29,0.668,30,0.001,31,0.607,32,0.17,33,0.413,34,1.451,39,3.209,47,0.959,95,0.11,99,1.424,100,2.857,101,0.018,103,0.001,104,0.001,127,1.069,165,0.849,405,3.176,415,4.611,416,5.431,425,2.273,595,2.857,618,3.489,619,4.73,1852,3.602,2095,3.385,2412,5.431,4205,4.017,4281,3.727,4282,5.059,4283,6.342,4531,7.721,4600,9.045,4666,8.86,11307,7.462,11308,7.462,11936,5.668,12552,6.202,12561,6.681,15252,10.689,16197,7.462,17313,7.145,20032,7.887,20033,7.462,20034,7.145,20035,6.892,20039,7.887,20138,10.843,20139,8.532,20140,8.532]],["title/classes/TeamUserEntity.html",[0,0.232,12553,4.842]],["body/classes/TeamUserEntity.html",[0,0.304,2,0.712,3,0.015,4,0.015,5,0.008,7,0.096,27,0.526,29,0.807,30,0.001,31,0.658,32,0.165,33,0.498,35,1.081,39,2.774,47,0.637,62,3.745,72,2.892,95,0.151,96,2.443,101,0.019,103,0.001,104,0.001,111,2.066,127,0.799,144,3.23,148,2.749,165,0.7,192,3.326,227,1.068,234,1.036,240,2.833,334,0.96,364,1.877,369,1.416,380,1.898,398,1.88,399,3.544,400,2.817,402,2.646,404,1.15,405,2.745,406,2.076,415,5.569,461,3.086,496,5.47,595,2.137,728,3.94,844,5.901,884,4.209,1858,3.343,2095,2.532,2181,4.64,2574,5.318,2632,2.94,3584,4.308,4205,3.473,4271,4.867,4281,2.788,4282,6.109,4285,8.068,4989,5.38,6521,3.913,6523,3.57,6544,3.826,6751,6.954,6847,3.868,6885,4.177,9548,5.583,10050,4.64,10051,4.64,11314,4.64,11315,4.863,11936,4.24,12550,6.994,12551,5.345,12552,6.493,12553,8.899,12554,4.998,12555,9.015,12556,5.345,12557,5.345,12558,5.345,12559,5.345,12560,5.345,12561,4.998,12562,5.345,12563,5.345,20141,6.383,20142,6.383,20143,6.383,20144,6.383,20145,6.383,20146,6.383,20147,6.383,20148,6.383,20149,6.383,20150,6.383,20151,6.383]],["title/classes/TeamUserFactory.html",[0,0.232,20050,5.947]],["body/classes/TeamUserFactory.html",[0,0.155,2,0.507,3,0.011,4,0.011,5,0.005,7,0.069,8,0.841,27,0.533,29,1.02,30,0.001,31,0.7,32,0.179,33,0.605,34,1.44,35,1.437,39,2.905,47,0.826,55,2.418,59,3.185,95,0.139,99,0.759,101,0.008,103,0,104,0,127,0.569,138,3.042,144,3.185,148,1.399,165,0.545,185,4.859,192,3.452,216,1.288,217,1.507,227,0.878,234,0.738,319,3.462,359,2.428,366,2.543,379,1.918,380,2.173,381,2.316,404,1.255,461,2.17,496,5.117,538,3.138,596,3.861,627,2.137,660,7.157,661,4.533,662,5.353,665,3.93,666,5.353,667,5.628,668,3.93,669,3.93,670,3.93,671,3.86,672,4.337,673,4.777,674,5.929,675,5.669,676,6.98,677,2.59,682,2.566,683,3.93,684,2.59,685,5.006,686,5.169,687,4.043,688,4.86,689,3.895,690,2.566,691,2.418,692,4.03,693,2.498,694,2.457,695,2.566,696,4.931,697,2.59,698,4.692,699,2.566,700,7.145,701,4.095,702,6.537,703,2.59,704,4.191,705,2.566,706,2.59,707,2.566,708,2.59,709,2.566,710,2.894,711,2.696,712,2.566,713,5.98,714,2.59,715,2.566,716,3.93,717,3.675,718,3.93,719,2.59,720,2.477,721,2.457,722,2.027,723,2.566,724,2.566,725,2.566,726,2.59,727,2.59,728,1.739,729,2.566,730,2.59,731,2.751,732,2.566,733,2.59,735,2.641,737,4.174,848,3.237,2192,6.437,3110,4.219,4306,3.807,6736,3.56,6746,5.453,12553,4.959,19033,7.403,20044,6.437,20046,6.437,20050,7.403,20152,4.546,20153,4.546,20154,6.963,20155,4.546,20156,4.546,20157,4.546,20158,4.203,20159,4.546,20160,4.546,20161,4.546,20162,4.203,20163,4.546]],["title/modules/TeamsApiModule.html",[425,1.812,18508,5.493]],["body/modules/TeamsApiModule.html",[0,0.333,3,0.023,4,0.023,5,0.012,30,0.001,95,0.151,101,0.016,103,0.001,104,0.001,187,1.413,425,3.376,427,3.531,428,3.798,429,3.911,430,3.894,431,3.878,432,4.34,433,4.458,442,4.72,443,3.83,444,3.738,446,6.141,447,4.051,449,4.68,18508,11.051,20164,9.774,20165,9.774,20166,11.458,20167,9.774,20168,9.774]],["title/modules/TeamsModule.html",[425,1.812,20166,5.694]],["body/modules/TeamsModule.html",[0,0.32,3,0.022,4,0.022,5,0.011,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.357,425,3.317,427,3.391,428,3.648,429,3.756,430,3.74,431,3.724,432,4.58,433,4.704,442,4.605,443,3.678,444,3.59,450,3.856,766,3.926,1936,9.3,20120,12.403,20166,11.694,20169,9.387,20170,9.387,20171,9.387,20172,9.387]],["title/injectables/TeamsRepo.html",[105,0.91,1936,4.667]],["body/injectables/TeamsRepo.html",[0,0.206,3,0.014,4,0.014,5,0.007,7,0.091,8,1.037,10,3.466,12,3.934,13,6.244,18,4.34,26,2.608,27,0.518,29,0.936,30,0.001,31,0.67,32,0.167,33,0.578,34,1.461,35,1.447,36,2.782,39,2.692,40,4.146,42,6.244,49,2.376,55,1.301,62,3.543,95,0.14,96,1.652,97,2.612,99,1.008,101,0.01,103,0,104,0,105,1.149,107,1.456,111,2.004,112,2.946,144,2.362,165,0.673,187,0.873,217,1.118,221,2.847,227,1.193,234,0.98,264,2.538,284,4.642,319,2.567,371,2.368,380,1.283,381,2.857,404,1.548,461,1.965,496,5.193,596,3.321,692,4.903,877,7.217,883,3.644,884,4.047,885,5.051,890,7.512,908,3.702,909,3.747,910,3.702,911,3.747,913,3.702,914,3.747,915,3.347,921,4.489,1193,5.797,1858,4.499,1936,5.895,3110,4.281,3675,4.144,3872,4.728,4533,5.33,4659,7.234,6847,6.059,11936,7.943,12553,6.116,15248,5.057,17551,9.241,17557,7.94,17561,5.582,19158,5.582,20173,6.038,20174,7.512,20175,6.038,20176,7.512,20177,6.038,20178,6.038,20179,6.038,20180,6.038,20181,6.038,20182,6.038,20183,6.038,20184,6.038,20185,6.038,20186,6.038,20187,6.038,20188,6.038]],["title/classes/TestApiClient.html",[0,0.232,1637,5.947]],["body/classes/TestApiClient.html",[0,0.124,2,0.405,3,0.009,4,0.009,5,0.004,7,0.055,8,0.705,10,2.355,27,0.514,29,0.941,30,0.001,31,0.673,32,0.168,33,0.581,35,1.431,36,1.251,47,0.996,51,2.834,55,1.576,59,3.055,87,2.928,94,4.46,95,0.108,99,0.606,101,0.006,103,0,104,0,111,2.674,112,1.612,116,3.952,127,0.455,144,2.525,163,3.405,165,0.457,167,1.335,185,1.41,187,0.525,204,1.231,216,2.046,217,1.714,221,0.84,227,1.226,234,1.361,247,2.286,305,1.662,319,2.744,334,0.39,347,1.18,355,2.344,359,3.594,363,3.714,379,0.822,483,1.73,543,5.245,552,3.764,576,6.956,643,2.584,740,5.103,905,1.511,946,3.818,1016,3.443,1277,4.568,1345,1.44,1414,7.035,1605,6.112,1622,7.33,1623,11.628,1624,3.355,1625,4.86,1626,9.529,1627,5.103,1628,3.355,1629,3.355,1630,2.638,1631,3.174,1632,3.355,1633,3.039,1634,3.355,1635,3.355,1636,3.174,1637,6.399,1638,3.355,1639,2.31,1640,3.355,1641,5.393,1642,4.155,1643,5.103,1644,4.886,1645,4.713,1646,3.263,1647,7.129,1648,9.529,1649,6.763,1650,5.393,1651,5.393,1652,5.393,1653,3.355,1654,9.066,1655,3.355,1656,5.393,1657,10.495,1658,8.488,1659,10.495,1660,3.355,1661,5.393,1662,8.488,1663,3.355,1664,7.747,1665,5.393,1666,3.355,1667,6.127,1668,5.393,1669,3.355,1670,5.393,1671,5.393,1672,3.355,1673,3.355,1674,3.355,1675,3.355,1676,5.393,1677,3.355,1678,3.174,1679,5.393,1680,5.574,1681,7.747,1682,3.355,1683,5.393,1684,3.355,1685,8.488,1686,5.393,1687,5.393,1688,3.355,1689,5.393,1690,5.393,1691,3.355,1692,3.355,1693,5.393,1694,7.747,1695,2.31,1696,3.355,1697,5.393,1698,3.355,1699,3.355,1700,3.355,1701,3.355,1702,3.355,1703,3.355,1704,3.355,1705,3.355,2929,3.355,4007,3.666,20189,5.834,20190,5.834,20191,5.834,20192,5.834,20193,5.834,20194,3.629,20195,3.629,20196,3.629,20197,3.629,20198,3.629,20199,9.182,20200,3.629,20201,3.629,20202,3.629,20203,3.629,20204,3.629,20205,3.629,20206,3.629,20207,3.629,20208,3.629,20209,3.629]],["title/classes/TestBootstrapConsole.html",[0,0.232,20210,6.286]],["body/classes/TestBootstrapConsole.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,8,1.326,27,0.359,30,0.001,35,1.053,36,2.579,47,0.62,95,0.167,101,0.018,103,0.001,104,0.001,112,1.917,217,1.428,221,2.013,227,1.138,404,1.978,431,3.451,449,3.451,731,3.436,883,5.358,1125,5.157,1187,4.147,1188,4.098,1189,4.098,1190,4.335,1191,4.74,2614,6.323,2615,6.194,2616,6.811,3481,5.778,3489,6.077,3491,6.896,3492,5.157,3494,6.811,7792,6.811,18483,9.6,20210,10.146,20211,10.976,20212,10.976,20213,8.698,20214,12.026,20215,8.698,20216,8.04,20217,8.698,20218,6.627,20219,8.04,20220,8.698,20221,8.698,20222,10.976,20223,8.04,20224,8.698,20225,8.698,20226,10.976,20227,8.698,20228,7.607,20229,6.466,20230,8.698,20231,8.698]],["title/classes/TestHelper.html",[0,0.232,20232,6.286]],["body/classes/TestHelper.html",[0,0.286,2,0.937,3,0.02,4,0.02,5,0.014,7,0.127,27,0.443,30,0.001,31,0.602,47,0.766,95,0.152,101,0.014,103,0.001,104,0.001,116,3.346,144,2.954,163,2.587,165,0.841,217,1.715,227,1.114,319,3.21,334,0.903,627,4.045,1342,7.437,1344,5.503,2848,4.058,3580,3.423,6170,5.482,6273,7.808,6274,6.25,6275,5.987,6276,6.25,6277,8.799,9797,5.585,10236,8.184,10237,10.91,18886,7.353,20232,9.93,20233,11.837,20234,11.837,20235,11.837,20236,8.407,20237,8.407,20238,8.407,20239,8.407,20240,8.407,20241,8.407,20242,8.407,20243,8.407,20244,8.407]],["title/injectables/TimeoutInterceptor.html",[105,0.91,13047,5.947]],["body/injectables/TimeoutInterceptor.html",[0,0.267,3,0.019,4,0.019,5,0.009,7,0.119,8,1.241,27,0.424,29,0.805,30,0.001,31,0.576,32,0.14,33,0.497,35,0.95,55,2.468,95,0.156,101,0.013,103,0.001,104,0.001,105,1.375,107,1.892,127,0.983,187,1.135,199,2.967,204,2.664,214,2.475,215,2.506,216,1.452,217,1.337,227,1.188,234,1.668,367,4.9,379,1.779,481,3.945,494,6.159,731,4.526,806,3.196,1157,5.138,1158,6.147,1159,5.981,1370,6.827,2226,7.47,2292,8.728,3937,8.516,6444,8.301,8156,8.988,8158,8.988,8159,10.63,8160,10.63,8162,8.988,8370,5.981,9621,6.935,11657,8.301,11807,9.499,13047,8.988,13410,8.988,17390,10.59,17398,7.257,17400,7.257,17700,8.606,20245,7.85,20246,10.276,20247,9.499,20248,7.85,20249,7.85,20250,7.85,20251,10.276,20252,11.456,20253,10.276,20254,7.85,20255,10.276,20256,7.85,20257,7.85,20258,7.85,20259,7.85]],["title/classes/TimestampsResponse.html",[0,0.232,3698,3.949]],["body/classes/TimestampsResponse.html",[0,0.307,2,1.005,3,0.021,4,0.021,5,0.011,7,0.136,27,0.527,29,0.706,30,0.001,31,0.505,32,0.174,33,0.591,83,4.104,95,0.116,101,0.015,103,0.001,104,0.001,127,1.405,165,0.879,364,2.226,375,4.655,376,2.061,467,3.452,591,5.719,620,5.813,966,4.584,3698,7.643,3715,9.37,9876,10.025,9938,7.277,20260,9.009,20261,9.009,20262,9.009,20263,9.009,20264,9.009,20265,9.009]],["title/injectables/ToggleUserLoginMigrationUc.html",[105,0.91,20266,5.694]],["body/injectables/ToggleUserLoginMigrationUc.html",[0,0.219,3,0.015,4,0.015,5,0.008,7,0.097,8,1.085,27,0.427,29,0.81,30,0.001,31,0.58,32,0.141,33,0.5,35,1.087,36,2.401,39,2.418,47,0.975,95,0.164,99,1.074,101,0.011,103,0.001,104,0.001,105,1.201,107,1.551,111,2.245,112,2.69,127,1.125,129,6.949,132,6.677,167,2.367,187,0.93,189,4.979,191,3.567,192,3.084,199,3.394,204,2.183,216,2.071,217,1.347,221,2.727,227,0.667,234,1.68,305,2.948,347,2.093,355,5.134,461,2.865,766,2.691,843,2.839,1464,2.963,1467,2.054,1795,4.854,1801,3.856,1884,6.769,1982,3.856,1988,6.677,2356,5.144,2725,2.915,4154,7.033,4176,5.038,4184,4.342,4205,4.306,4476,4.993,4478,5.197,4481,5.197,4482,8.69,4489,5.795,4491,6.949,4493,7.033,4494,4.902,4495,5.038,4496,5.388,4498,7.033,4500,8.666,4501,6.677,4508,4.902,4509,5.388,11224,5.038,11843,8.757,16633,5.388,17444,5.627,18907,7.255,20266,7.522,20267,11.199,20268,7.856,20269,6.434,20270,6.434,20271,8.982,20272,6.434,20273,5.627,20274,6.434,20275,6.434]],["title/injectables/TokenGenerator.html",[105,0.91,18761,5.493]],["body/injectables/TokenGenerator.html",[0,0.335,3,0.023,4,0.023,5,0.012,7,0.149,8,1.431,27,0.406,30,0.001,35,1.192,95,0.163,101,0.016,103,0.001,104,0.001,105,1.585,107,2.373,187,1.424,217,1.281,227,1.021,351,5.945,11506,9.922,12254,9.951,12256,6.541,12257,6.444,16652,9.101,18761,9.57,20276,11.847,20277,13.188,20278,9.845,20279,9.845]],["title/classes/TokenRequestMapper.html",[0,0.232,15423,5.947]],["body/classes/TokenRequestMapper.html",[0,0.283,2,0.928,3,0.02,4,0.02,5,0.01,7,0.126,8,1.289,27,0.44,29,0.836,30,0.001,31,0.598,32,0.145,33,0.516,35,1.292,47,0.995,95,0.151,101,0.014,103,0.001,104,0.001,227,1.106,234,1.732,334,0.894,348,5.446,627,4.034,1016,2.921,1142,5.755,1514,10.037,1516,6.721,1518,5.925,1519,6.721,1520,7.277,1521,7.277,1525,7.692,1528,7.692,1529,6.968,1530,6.185,1625,5.528,5530,5.872,5910,6.721,11435,9.032,11568,7.618,15423,9.333,15426,10.037,15482,11.486,15488,7.692,16125,6.721,20280,11.779,20281,11.779,20282,10.67,20283,8.32,20284,8.32,20285,10.67,20286,8.32,20287,8.32,20288,8.32,20289,8.32]],["title/classes/TooManyPseudonymsLoggableException.html",[0,0.232,20290,6.286]],["body/classes/TooManyPseudonymsLoggableException.html",[0,0.239,2,0.781,3,0.017,4,0.017,5,0.008,7,0.106,8,1.15,27,0.538,29,0.549,30,0.001,31,0.392,32,0.183,33,0.523,35,1.153,47,0.893,55,1.509,95,0.149,101,0.012,103,0.001,104,0.001,127,0.877,163,2.156,165,0.746,187,1.013,204,3.939,214,3.002,215,2.236,216,2.495,227,0.726,364,2.212,404,1.716,406,2.278,511,5.467,558,3.36,564,2.568,596,3.821,1013,5.318,1016,2.459,1142,5.011,1180,3.015,1216,4.549,1395,8.106,1396,6.164,1397,3.887,1398,6.887,1402,4.519,1403,3.883,1404,4.519,1405,4.519,1406,4.519,1407,4.519,1408,4.519,1409,4.198,1410,3.953,1416,4.401,1417,5.485,1464,4.983,1465,5.584,1469,5.749,8288,5.625,8289,5.848,8738,4.458,8745,4.11,8746,4.294,8920,6.223,8926,7.188,8927,5.658,10699,5.866,10700,5.866,20290,8.803,20291,10.82,20292,10.118,20293,10.82,20294,7.004,20295,7.004,20296,7.004,20297,9.523]],["title/modules/ToolApiModule.html",[425,1.812,18509,5.493]],["body/modules/ToolApiModule.html",[0,0.186,3,0.013,4,0.013,5,0.007,30,0.001,95,0.178,101,0.009,103,0,104,0,108,3.179,187,0.791,191,3.034,192,3.1,199,3.574,200,3.953,209,3.125,425,2.52,427,1.977,428,2.127,429,2.19,430,2.18,431,2.171,432,3.48,433,2.068,438,5.416,442,3.201,443,2.144,444,2.093,446,3.438,447,3.316,449,3.174,450,2.248,843,2.415,1467,1.747,1878,6.249,1954,8.594,1956,8.808,2627,2.3,2725,2.479,3010,3.061,3568,7.264,3583,4.285,4584,8.404,4593,2.765,5030,3.147,5328,8.404,5333,7.359,6047,9.682,6056,8.594,6073,4.285,6074,3.396,8509,9.339,8557,9.682,8836,8.808,8845,4.583,9106,9.682,9219,9.339,9388,9.682,13848,8.233,18146,9.682,18163,9.682,18220,9.682,18509,11.597,20298,5.472,20299,5.472,20300,5.472,20301,9.682,20302,9.682,20303,8.271,20304,8.271,20305,8.271,20306,8.271,20307,8.271,20308,8.271,20309,9.457,20310,4.421,20311,5.472,20312,9.457,20313,8.001,20314,5.059,20315,5.472,20316,5.472,20317,5.472]],["title/modules/ToolConfigModule.html",[425,1.812,8836,5.181]],["body/modules/ToolConfigModule.html",[0,0.348,3,0.024,4,0.024,5,0.012,30,0.001,95,0.156,101,0.017,103,0.001,104,0.001,108,5.936,154,4.681,187,1.478,209,3.378,425,3.228,427,3.692,432,3.761,433,3.863,836,5.936,1307,7.278,8519,9.838,8836,9.23,12568,8.559,20318,10.22,20319,10.22]],["title/classes/ToolConfiguration.html",[0,0.232,12568,5.694]],["body/classes/ToolConfiguration.html",[0,0.303,2,0.993,3,0.021,4,0.021,5,0.011,7,0.135,27,0.367,30,0.001,32,0.121,47,0.867,55,2.619,95,0.114,101,0.02,103,0.001,104,0.001,108,6.472,144,2.45,165,0.873,217,1.159,319,3.33,334,0.957,347,2.8,627,3.731,2130,3.892,2131,4.355,2132,4.198,3859,4.983,8517,9.264,8519,9.706,8791,10.634,8824,10.634,11577,6.013,12564,11.24,12565,11.24,12566,11.24,12567,8.236,12568,9.332,12569,10.301,12570,10.301,12571,10.301,12572,10.301,12573,9.332,20320,8.909]],["title/controllers/ToolConfigurationController.html",[481,2.611,20304,5.947]],["body/controllers/ToolConfigurationController.html",[0,0.167,3,0.012,4,0.012,5,0.006,7,0.074,8,0.892,27,0.407,29,0.773,30,0.001,31,0.553,32,0.173,33,0.477,35,1.195,36,2.544,95,0.148,100,1.645,101,0.008,103,0,104,0,112,2.804,116,3.962,158,4.338,185,4.944,187,0.71,192,3.436,199,4.358,200,3.962,209,3.921,215,1.568,216,0.908,217,1.544,221,2.284,227,1.023,264,4.446,364,1.797,376,1.124,379,2.236,447,2.036,481,1.886,483,2.342,491,6.329,494,5.915,513,6.5,538,4.447,553,6.413,555,2.554,556,2.613,561,2.633,563,5.915,1268,7.581,1904,2.055,2130,5.182,2461,7.19,2559,4.793,2727,2.357,2930,2.633,3743,5.79,4466,6.891,5729,8.265,5731,7.972,5802,7.519,6064,7.992,6126,8.632,7088,3.742,8524,7.431,8538,6.459,8557,7.431,8562,8.203,8563,8.203,10306,9.123,11774,6.282,13630,4.541,13939,7.168,13941,6.45,13942,6.45,15158,8.632,16929,7.865,18085,8.265,18087,7.972,18099,7.728,18276,7.728,20304,6.459,20310,8.547,20321,8.874,20322,8.874,20323,4.912,20324,7.385,20325,7.385,20326,4.541,20327,4.912,20328,4.912,20329,7.385,20330,4.912,20331,4.912,20332,4.912,20333,6.827,20334,7.385,20335,7.385,20336,7.385,20337,4.912,20338,4.912,20339,7.385,20340,7.385,20341,4.912,20342,4.296,20343,4.912,20344,4.912,20345,3.846,20346,4.541,20347,4.912,20348,4.541,20349,4.912,20350,4.912,20351,4.296,20352,4.296,20353,4.912,20354,4.912,20355,4.541,20356,4.912,20357,4.912,20358,4.114,20359,4.912]],["title/classes/ToolConfigurationMapper.html",[0,0.232,20342,5.947]],["body/classes/ToolConfigurationMapper.html",[0,0.228,2,0.746,3,0.016,4,0.016,5,0.008,7,0.101,8,1.115,27,0.47,29,0.968,30,0.001,31,0.692,32,0.155,33,0.551,35,1.379,95,0.146,101,0.011,103,0.001,104,0.001,139,3.677,158,6.477,200,2.084,209,3.491,217,1.647,227,1.181,234,1.849,276,7.455,627,4.141,982,3.335,1904,2.799,2559,5.413,2727,3.21,3709,4.445,4466,7.492,5007,4.988,5729,8.847,5731,9.652,5735,6.447,5736,5.208,5737,4.863,8523,7.455,8524,10.602,8546,5.603,8593,7.455,8801,6.572,8880,7.031,9219,5.404,9242,8.072,18085,8.847,18087,9.652,20342,8.072,20360,11.045,20361,6.69,20362,10.565,20363,10.565,20364,10.565,20365,10.565,20366,6.69,20367,6.69,20368,9.228,20369,6.69,20370,6.69,20371,10.565,20372,6.69,20373,6.69,20374,6.69,20375,6.69,20376,9.228,20377,8.531,20378,6.69,20379,6.69,20380,6.69,20381,6.69,20382,6.69,20383,6.69]],["title/controllers/ToolContextController.html",[481,2.611,20306,5.947]],["body/controllers/ToolContextController.html",[0,0.147,3,0.01,4,0.01,5,0.005,7,0.065,8,0.807,10,1.739,27,0.411,29,0.782,30,0.001,31,0.559,32,0.174,33,0.482,34,1.988,35,1.472,36,2.561,95,0.153,100,1.442,101,0.007,103,0,104,0,111,0.864,112,2.817,140,7.147,163,2.056,185,4.798,187,0.623,199,3.484,200,3.64,206,2.192,209,1.424,215,1.375,216,1.235,217,1.583,221,2.309,227,0.956,234,0.699,264,4.193,364,1.817,367,3.186,376,0.985,379,2.392,447,1.786,461,1.872,481,1.654,483,2.054,491,6.344,493,5.09,494,6.822,500,2.957,502,4.145,503,5.017,504,4.372,513,6.515,520,4.438,524,3.842,538,4.154,543,5.946,549,6.327,553,6.398,554,4.198,555,2.24,556,2.291,558,2.067,561,2.31,563,5.98,564,1.579,565,2.147,1016,3.996,1410,2.431,1467,1.375,1904,1.802,2255,4.757,2356,1.77,2357,3.043,2412,5.209,2727,2.067,2928,3.132,2929,3.842,2930,2.31,3743,6.462,4007,2.707,4171,5.09,4773,2.582,5694,6.132,5757,7.721,5760,2.707,5802,9.099,5819,9.223,5874,3.068,5908,3.768,5915,7.157,5919,3.768,5929,9.44,5941,3.282,5950,3.608,6019,7.157,6022,7.157,6039,7.847,6047,6.853,6050,7.564,6052,7.564,6053,7.564,6054,7.564,6064,4.252,6084,3.982,6088,3.982,7088,5.09,8743,3.48,13940,5.843,13941,6.702,13942,7.674,16929,7.847,20306,5.843,20310,8.527,20345,3.373,20351,5.843,20352,5.843,20358,7.721,20377,3.982,20384,4.308,20385,4.308,20386,4.308,20387,3.768,20388,4.308,20389,3.768,20390,4.308,20391,4.308,20392,4.308,20393,4.308,20394,4.308,20395,4.308,20396,4.308,20397,4.308,20398,6.681,20399,4.308,20400,4.308,20401,4.308,20402,4.308,20403,4.308,20404,4.308,20405,4.308,20406,4.308,20407,4.308,20408,5.843,20409,6.853,20410,4.308,20411,6.681,20412,4.308,20413,4.308,20414,4.308,20415,4.308,20416,3.768,20417,4.308,20418,4.308,20419,4.308,20420,3.982,20421,4.308,20422,4.308,20423,4.308,20424,4.308,20425,4.308,20426,4.308,20427,4.308,20428,4.308]],["title/controllers/ToolController.html",[481,2.611,20308,5.947]],["body/controllers/ToolController.html",[0,0.127,3,0.009,4,0.009,5,0.004,7,0.056,8,0.72,10,1.505,27,0.409,29,0.778,30,0.001,31,0.556,32,0.172,33,0.48,34,1.842,35,1.386,36,2.659,95,0.159,99,0.622,100,1.249,101,0.006,103,0,104,0,111,1.707,112,2.811,127,0.467,158,6.234,163,2.62,185,4.545,187,0.539,200,2.652,206,1.898,209,3.69,216,1.574,217,1.614,221,2.155,227,0.965,234,0.606,264,3.578,364,1.808,367,4.059,376,0.853,379,2.65,447,1.546,461,2.554,469,1.637,481,1.432,483,1.779,491,6.165,493,4.544,494,3.574,500,2.56,502,5.283,503,5.708,504,5.572,511,3.013,513,6.331,520,3.962,524,4.896,529,4.315,535,3.197,538,2.687,543,3.791,549,6.389,553,6.317,554,4.682,555,1.939,556,1.984,558,1.789,561,2,563,5.95,564,2.186,565,2.973,693,3.277,701,2.109,766,1.56,1014,2.844,1016,3.486,1028,5.948,1410,2.105,1467,1.19,1904,1.56,2255,4.247,2356,1.532,2357,2.716,2394,4.418,2412,5.419,2559,4.722,2727,1.789,2928,2.711,2929,3.43,2930,2,3743,5.462,3961,3.701,4171,2.842,4466,5.767,5129,2.656,5711,2.656,6064,5.926,6612,5.102,6614,6.283,6616,2.235,6902,3.614,7316,6.093,8523,4.817,8567,5.539,8614,7.129,8727,10.576,8728,6.24,8735,3.448,8743,4.817,8779,3.448,8998,4.544,9106,4.994,9120,5.216,9122,7.129,9146,7.129,9148,6.019,9151,7.129,9153,5.216,9208,8.746,9219,3.013,9264,7.129,9274,6.517,9275,6.517,9279,6.517,9388,6.24,9390,6.888,9391,6.888,10969,3.262,10970,3.262,12788,3.262,12793,4.994,13939,4.817,13941,5.417,13942,7.217,16929,6.92,20308,5.216,20345,2.921,20387,3.262,20389,5.216,20408,5.216,20409,4.994,20416,3.262,20429,3.73,20430,3.73,20431,5.964,20432,3.73,20433,9.928,20434,3.73,20435,3.73,20436,3.73,20437,3.73,20438,3.448,20439,6.666,20440,3.73,20441,3.73,20442,3.73,20443,3.73,20444,3.448,20445,3.73,20446,3.73,20447,3.73,20448,3.73,20449,3.73,20450,3.73,20451,3.73,20452,3.73,20453,3.73,20454,3.73,20455,3.73,20456,3.73,20457,3.73,20458,3.73,20459,3.73,20460,3.73,20461,3.73,20462,3.73,20463,3.73,20464,5.964,20465,5.513,20466,3.73,20467,3.73,20468,3.73,20469,3.73,20470,3.73,20471,3.73,20472,3.73,20473,3.73,20474,9.309,20475,3.73,20476,3.73,20477,3.73,20478,3.73,20479,3.73,20480,3.73,20481,3.73,20482,3.73,20483,3.73,20484,3.73,20485,3.73,20486,3.73,20487,3.262,20488,3.73,20489,3.73]],["title/controllers/ToolLaunchController.html",[481,2.611,20303,5.947]],["body/controllers/ToolLaunchController.html",[0,0.257,3,0.018,4,0.018,5,0.009,7,0.114,8,1.21,27,0.312,29,0.592,30,0.001,31,0.423,32,0.153,33,0.365,34,1.285,35,0.915,36,2.149,95,0.168,100,2.53,101,0.013,103,0.001,104,0.001,108,5.82,112,2.478,175,8.006,185,4.369,187,1.093,199,3.787,200,3.121,205,6.103,206,3.844,208,2.823,209,4.232,210,7.836,215,2.412,216,1.397,217,1.304,221,1.749,227,0.784,264,4.211,364,1.376,367,5.709,376,1.728,379,2.713,447,3.132,481,2.901,483,3.603,491,5.89,513,6.049,553,6.073,555,3.928,556,4.019,561,4.051,563,4.529,1016,3.518,2727,3.625,2930,4.051,3743,4.433,6064,7.156,10708,6.328,13941,7.284,13942,7.284,16929,7.449,20301,9.415,20303,8.764,20314,9.263,20345,5.917,20346,6.985,20358,6.328,20490,7.556,20491,10.393,20492,7.556,20493,10.472,20494,7.556,20495,7.556,20496,7.556,20497,7.556,20498,7.556,20499,8.764,20500,8.764,20501,7.556,20502,9.263,20503,9.415,20504,7.556,20505,7.556,20506,7.556,20507,7.556]],["title/classes/ToolLaunchData.html",[0,0.232,160,5.055]],["body/classes/ToolLaunchData.html",[0,0.293,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.535,29,0.674,30,0.001,31,0.482,32,0.187,33,0.416,47,0.777,95,0.14,101,0.014,103,0.001,104,0.001,108,7.703,127,1.078,134,9.37,160,9.649,163,3.355,165,1.017,209,2.844,210,8.816,236,7.021,238,6.692,240,2.73,347,2.205,405,2.905,595,2.881,2569,6.128,2578,3.837,2579,6.128,4333,5.157,7168,6.012,7169,6.397,16815,7.955,20508,12.259,20509,10.901,20510,8.605,20511,8.605,20512,11.062,20513,8.605,20514,8.605,20515,8.605]],["title/classes/ToolLaunchMapper.html",[0,0.232,205,5.493]],["body/classes/ToolLaunchMapper.html",[0,0.24,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,8,1.156,27,0.48,29,0.912,30,0.001,31,0.652,32,0.158,33,0.563,35,1.41,95,0.139,101,0.012,103,0.001,104,0.001,108,7.07,146,7.992,150,3.313,175,8.938,198,3.426,205,7.729,207,9.094,208,2.635,217,1.7,227,1.207,231,5.304,234,1.145,235,5.4,236,5.614,242,6.52,244,6.52,331,4.49,627,4.177,982,3.516,1016,3.359,1180,4.673,2565,6.958,2568,6.685,2619,6.52,7289,6.458,7293,6.567,7306,5.523,8717,5.907,9161,6.169,20503,9.751,20512,11.603,20516,12.172,20517,7.053,20518,9.568,20519,9.568,20520,9.568,20521,9.568,20522,9.568,20523,7.053,20524,9.568,20525,7.053,20526,7.053,20527,9.568,20528,7.053,20529,7.053,20530,9.568,20531,7.053,20532,7.053,20533,7.053,20534,9.568,20535,9.568,20536,9.568,20537,7.053,20538,9.568,20539,7.053,20540,11.644,20541,7.053,20542,7.053]],["title/modules/ToolLaunchModule.html",[425,1.812,20543,5.694]],["body/modules/ToolLaunchModule.html",[0,0.238,3,0.017,4,0.017,5,0.008,30,0.001,95,0.173,101,0.012,103,0.001,104,0.001,108,4.054,187,1.009,191,3.869,192,2.831,199,2.638,200,3.364,209,3.569,425,2.878,427,2.521,428,2.713,429,2.793,430,2.781,431,2.769,432,3.974,433,4.082,442,3.801,443,2.735,444,2.669,449,3.769,766,2.92,1953,6.638,2470,4.79,2598,10.479,3102,5.638,3568,7.862,4583,7.062,4592,5.466,4593,3.527,5030,4.014,5328,9.096,5333,7.965,5463,5.318,5808,10.108,5813,9.533,5814,9.798,13848,8.911,14551,10.944,15335,10.479,16958,5.845,19838,5.638,20543,11.986,20544,6.98,20545,6.98,20546,6.98,20547,6.98,20548,11.381,20549,11.567,20550,6.98,20551,6.98,20552,6.98,20553,6.98]],["title/classes/ToolLaunchParams.html",[0,0.232,20493,5.947]],["body/classes/ToolLaunchParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.131,34,1.986,47,0.833,95,0.15,101,0.016,103,0.001,104,0.001,108,6.782,165,0.914,199,4.413,200,3.637,209,3.859,364,1.75,368,4.575,369,2.591,370,3.846,371,3.22,374,3.068,376,2.198,379,2.178,467,3.063,1000,4.753,3267,7.034,3795,5.639,20493,10.212,20554,10.793,20555,9.611,20556,9.611]],["title/classes/ToolLaunchRequest.html",[0,0.232,175,4.842]],["body/classes/ToolLaunchRequest.html",[0,0.296,2,0.97,3,0.021,4,0.021,5,0.01,7,0.131,27,0.537,29,0.681,30,0.001,31,0.487,32,0.177,33,0.582,47,0.901,95,0.112,101,0.015,103,0.001,104,0.001,108,7.724,127,1.089,150,4.164,165,0.86,175,9.273,178,9.714,210,8.837,231,6.666,235,7.128,236,7.056,347,2.22,367,4.147,405,2.925,595,2.912,6196,4.701,7136,5.465,7168,6.077,7169,6.466,16581,7.026,17354,7.284,20508,12.293,20557,8.698,20558,10.976,20559,8.698,20560,8.698,20561,8.698,20562,8.04,20563,8.04]],["title/classes/ToolLaunchRequestResponse.html",[0,0.232,20503,5.694]],["body/classes/ToolLaunchRequestResponse.html",[0,0.242,2,0.793,3,0.017,4,0.017,5,0.009,7,0.107,27,0.503,29,0.557,30,0.001,31,0.399,32,0.166,33,0.622,47,0.833,95,0.124,101,0.012,103,0.001,104,0.001,108,7.31,127,0.891,144,2.647,145,1.802,150,4.227,165,0.754,178,9.862,208,2.658,209,4.159,210,9.03,231,6.768,234,1.563,235,6.891,236,6.4,347,1.947,364,2.129,367,6.001,368,4.579,369,2.136,371,3.223,376,1.628,379,2.648,405,2.565,467,3.203,595,2.382,1013,5.352,1031,3.016,2035,5.202,2536,7.844,2626,6.224,2929,5.536,6196,3.846,7060,7.775,7136,4.471,7168,4.971,7169,5.289,11779,7.775,16581,5.748,17354,5.959,20500,8.419,20503,10.225,20554,11.633,20562,6.578,20563,6.578,20564,7.115,20565,9.625,20566,7.115,20567,8.898,20568,7.115,20569,9.625,20570,7.115]],["title/injectables/ToolLaunchService.html",[105,0.91,20548,5.694]],["body/injectables/ToolLaunchService.html",[0,0.174,3,0.012,4,0.012,5,0.006,7,0.077,8,0.921,26,2.547,27,0.466,29,0.844,30,0.001,31,0.603,32,0.163,33,0.521,35,1.22,36,2.161,39,2.45,47,0.649,95,0.167,99,0.855,101,0.009,103,0,104,0,105,1.02,107,1.235,108,6.792,111,2.646,112,2.489,127,0.955,139,7.195,140,7.015,145,1.93,148,2.346,154,2.347,158,6.399,160,8.394,163,1.577,165,0.597,175,7.177,187,0.741,192,2.271,198,2.489,199,1.937,200,3.355,201,4.63,204,1.739,205,4.139,206,2.607,208,1.914,209,2.519,210,3.354,212,7.622,216,2.088,217,1.626,218,7.046,221,2.333,227,0.944,234,1.636,305,2.593,564,2.794,1353,2.474,2565,5.045,2598,10.061,3364,5.136,4519,7.394,5334,9.157,5350,5.428,5358,4.292,5737,6.616,5965,4.013,5966,3.58,6057,7.501,6074,4.73,6100,7.17,6105,4.013,7693,7.046,8606,4.482,8608,3.725,11660,7.96,15335,10.061,18226,4.737,20548,6.383,20549,11.106,20571,11.693,20572,5.124,20573,7.622,20574,7.622,20575,9.101,20576,9.101,20577,7.622,20578,7.622,20579,5.124,20580,7.622,20581,5.124,20582,5.124,20583,5.124,20584,5.124,20585,5.124,20586,4.482,20587,5.124,20588,5.124,20589,5.124,20590,5.124,20591,5.124,20592,5.124,20593,7.046,20594,5.124,20595,5.124,20596,5.124,20597,5.124,20598,5.124,20599,4.737,20600,5.124]],["title/injectables/ToolLaunchUc.html",[105,0.91,20301,5.694]],["body/injectables/ToolLaunchUc.html",[0,0.262,3,0.018,4,0.018,5,0.009,7,0.116,8,1.224,26,2.781,27,0.418,29,0.794,30,0.001,31,0.568,32,0.138,33,0.49,35,0.93,36,2.173,39,2.069,95,0.171,99,1.283,101,0.013,103,0.001,104,0.001,105,1.356,107,1.853,108,6.585,111,2.273,112,2.499,127,1.269,140,6.612,160,8.428,175,7.216,187,1.111,199,4.555,200,3.156,201,3.91,208,2.871,216,2.096,217,1.569,221,2.624,227,0.797,766,3.215,843,4.472,1795,5.477,1801,4.606,2725,3.482,3010,4.298,3267,6.741,5815,8.586,6056,9.752,6073,6.018,6074,4.769,6082,6.722,6086,6.208,20301,8.487,20491,9.368,20548,10.775,20593,9.368,20601,11.337,20602,7.686,20603,7.686,20604,7.686,20605,10.134,20606,7.686,20607,7.105,20608,7.686,20609,7.686]],["title/modules/ToolModule.html",[425,1.812,1954,5.055]],["body/modules/ToolModule.html",[0,0.252,3,0.017,4,0.017,5,0.009,30,0.001,95,0.17,101,0.012,103,0.001,104,0.001,187,1.069,192,2.202,199,2.793,200,3.463,209,4.087,210,4.836,425,2.963,427,2.669,428,2.872,429,2.957,430,2.944,431,2.932,432,4.091,433,4.202,442,3.95,443,2.895,444,2.826,449,3.917,704,3.659,766,3.091,1852,3.12,1865,3.366,1869,5.786,1953,6.898,1954,10.546,1959,4.027,2440,4.21,2531,3.994,5030,4.25,5328,7.177,5334,10.738,5808,11.077,5813,10.448,5814,10.738,6105,5.786,8836,9.694,8845,6.189,20543,11.485,20610,7.39,20611,7.39,20612,7.39,20613,7.39,20614,7.39]],["title/injectables/ToolPermissionHelper.html",[105,0.91,6056,5.055]],["body/injectables/ToolPermissionHelper.html",[0,0.199,3,0.014,4,0.014,5,0.007,7,0.088,8,1.015,26,2.584,27,0.405,29,0.77,30,0.001,31,0.55,32,0.134,33,0.475,35,1.017,36,2.302,39,2.891,95,0.165,99,0.977,101,0.01,103,0,104,0,105,1.124,107,1.411,111,2.279,112,2.608,116,3.686,127,1.052,129,6.662,130,8.226,132,6.34,139,6.699,140,6.581,187,0.847,188,3.966,189,4.657,191,3.245,192,3.2,197,3.678,199,4.981,200,2.617,201,4.274,216,2.102,217,1.48,221,2.631,234,0.95,284,3.164,305,1.668,315,7.348,316,4.169,317,5.412,322,5.412,334,0.629,367,2.792,425,1.56,461,2.248,504,3.831,574,2.57,667,2.775,766,3.514,839,2.792,843,4.738,1031,1.834,1734,4.352,1795,6.588,1852,2.472,1884,6.588,1939,6.865,1953,4.09,1957,4.46,1973,4.169,1978,4.584,1981,5.12,1982,5.035,2487,3.726,2627,3.531,2651,4.169,2725,2.652,2727,5.151,3088,5.982,3115,7.805,3129,4.729,3572,7.981,4140,3.831,4151,4.729,4184,3.951,4773,3.509,5462,4.09,5905,5.412,6056,6.245,6072,4.352,6079,5.412,8560,9.083,8561,8.594,8569,5.412,8571,5.12,11774,3.726,14098,4.584,16958,4.903,18886,5.12,19838,4.729,20615,10.736,20616,9.826,20617,9.826,20618,5.854,20619,5.854,20620,5.854,20621,6.578,20622,9.083,20623,9.083,20624,5.854,20625,5.854,20626,9.826,20627,8.401,20628,7.766,20629,5.854,20630,5.854]],["title/classes/ToolReference.html",[0,0.232,5957,5.181]],["body/classes/ToolReference.html",[0,0.288,2,0.943,3,0.02,4,0.02,5,0.01,7,0.128,27,0.544,29,0.663,30,0.001,31,0.474,32,0.179,33,0.574,47,0.941,95,0.109,101,0.014,103,0.001,104,0.001,127,1.06,165,0.845,198,4.109,200,4.179,347,2.181,564,4.352,2037,4.964,3449,7.4,5350,8.454,5694,7.794,5698,6.04,5717,5.385,5736,6.7,5752,5.537,5957,10.059,5975,9.59,5976,7.821,5977,7.821,5978,7.4,5979,9.942,5980,7.821,20631,13.418,20632,10.785,20633,10.785,20634,8.46,20635,8.46,20636,8.46,20637,8.46,20638,7.821,20639,7.821,20640,8.46]],["title/controllers/ToolReferenceController.html",[481,2.611,20307,5.947]],["body/controllers/ToolReferenceController.html",[0,0.212,3,0.015,4,0.015,5,0.007,7,0.094,8,1.059,27,0.361,29,0.687,30,0.001,31,0.491,32,0.164,33,0.424,35,1.061,36,2.365,95,0.159,100,2.081,101,0.01,103,0.001,104,0.001,112,2.66,158,5.392,185,4.69,187,0.899,199,3.838,200,3.863,206,3.162,209,3.844,215,1.984,216,1.149,217,1.514,221,2.029,227,0.909,234,1.009,264,4.268,364,1.597,376,1.422,379,2.735,447,2.576,461,2.897,481,2.386,483,2.964,491,6.102,494,6.611,513,6.267,535,5.914,549,7.57,553,6.155,555,3.231,556,3.306,561,3.332,563,5.254,1865,5.024,1904,2.6,2630,7.583,2727,2.982,2930,3.332,3743,5.144,3961,6.845,5129,6.243,5694,5.899,5757,9.238,5802,8.404,5950,5.205,5957,8.404,5959,9.749,5962,5.746,5972,5.746,8743,8.91,13941,7.383,13942,7.383,16929,7.55,20302,8.505,20307,7.668,20310,8.204,20326,5.746,20333,8.104,20345,4.867,20351,5.436,20352,5.436,20358,5.205,20438,8.104,20439,8.637,20641,6.215,20642,6.215,20643,8.883,20644,9.389,20645,6.215,20646,6.215,20647,6.215,20648,6.215,20649,6.215,20650,6.215,20651,6.215,20652,6.215,20653,6.215,20654,9.648,20655,6.215,20656,6.215,20657,6.215,20658,6.215,20659,6.215,20660,6.215,20661,6.215,20662,6.215]],["title/classes/ToolReferenceListResponse.html",[0,0.232,20654,5.947]],["body/classes/ToolReferenceListResponse.html",[0,0.318,2,1.042,3,0.022,4,0.022,5,0.011,7,0.141,27,0.473,29,0.732,30,0.001,31,0.523,32,0.169,33,0.452,95,0.147,101,0.016,103,0.001,104,0.001,127,1.17,145,2.366,163,4.092,165,0.899,200,3.869,209,3.088,364,1.702,376,2.137,467,3.011,1006,6.528,1009,6.537,1011,4.721,1026,5.179,1865,5.658,5694,7.215,5732,8.986,5959,11.076,18159,10.864,20654,10.037,20663,9.343]],["title/classes/ToolReferenceMapper.html",[0,0.232,20664,5.947]],["body/classes/ToolReferenceMapper.html",[0,0.302,2,0.989,3,0.021,4,0.021,5,0.011,7,0.134,8,1.342,27,0.366,29,0.695,30,0.001,31,0.497,32,0.121,33,0.429,35,1.074,95,0.156,101,0.015,103,0.001,104,0.001,140,7.157,158,6.532,198,4.308,200,3.779,201,4.513,217,1.154,227,0.92,234,1.44,274,7.758,564,4.663,627,3.723,1904,3.71,5350,9.058,5694,6.454,5698,4.513,5736,5.006,5957,10.182,5965,6.946,5967,7.758,5975,7.165,5979,7.428,8593,7.165,8880,6.758,20360,10.272,20664,9.719,20665,8.87,20666,12.134,20667,8.87,20668,8.87]],["title/classes/ToolReferenceResponse.html",[0,0.232,5959,5.493]],["body/classes/ToolReferenceResponse.html",[0,0.23,2,0.754,3,0.016,4,0.016,5,0.008,7,0.102,27,0.511,29,0.529,30,0.001,31,0.595,32,0.168,33,0.514,34,1.581,47,0.884,95,0.119,101,0.011,103,0.001,104,0.001,127,0.846,150,3.217,165,0.728,199,3.512,200,3.954,209,4.336,234,1.509,347,1.879,364,2.184,368,5.202,369,2.869,370,4.082,371,3.728,375,3.54,376,1.546,379,3.009,467,3.146,564,4.396,779,6.908,1031,2.118,2037,3.965,2130,2.952,2888,4.096,2889,4.601,3766,5.292,5694,7.373,5698,5.403,5717,4.301,5736,5.994,5752,4.423,5761,9.289,5959,10.009,5975,8.579,5979,8.894,7060,7.506,7316,6.082,9633,6.617,11779,7.506,18158,10.63,18159,11.102,20638,6.247,20639,6.247,20669,6.757,20670,9.292,20671,9.292,20672,6.757,20673,6.757,20674,6.757,20675,9.292,20676,6.757,20677,8.59,20678,6.757,20679,6.757,20680,6.757,20681,6.757,20682,6.757,20683,6.757]],["title/injectables/ToolReferenceService.html",[105,0.91,5817,5.694]],["body/injectables/ToolReferenceService.html",[0,0.24,3,0.017,4,0.017,5,0.009,7,0.107,8,1.156,26,2.469,27,0.395,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,35,0.854,36,2.052,95,0.173,99,1.177,101,0.012,103,0.001,104,0.001,105,1.28,107,1.7,111,2.44,112,2.393,127,1.198,139,6.399,140,6.424,158,6.135,187,1.02,192,2.851,198,3.426,199,2.666,200,4.068,201,4.868,206,3.589,216,2.251,217,1.584,221,2.513,227,0.731,564,3.508,1904,2.95,1964,6.52,3267,5.351,5334,10.053,5350,6.814,5694,6.307,5815,8.402,5817,8.013,5957,8.872,5966,4.928,5978,6.169,6057,8.529,6074,5.937,6077,5.127,6086,5.697,6100,7.696,6105,5.523,6106,5.697,8566,5.523,8567,9.543,8594,6.52,8595,6.52,8596,6.52,8608,5.127,20599,6.52,20643,8.369,20664,6.169,20684,10.859,20685,7.053,20686,9.568,20687,7.053,20688,7.053]],["title/injectables/ToolReferenceUc.html",[105,0.91,20302,5.694]],["body/injectables/ToolReferenceUc.html",[0,0.19,3,0.013,4,0.013,5,0.007,7,0.084,8,0.98,26,2.898,27,0.46,29,0.874,30,0.001,31,0.625,32,0.158,33,0.539,34,0.949,35,1.271,36,2.8,39,3.234,47,0.579,95,0.154,99,0.931,101,0.009,103,0,104,0,105,1.085,107,1.345,111,2.516,112,2.905,127,1.016,140,7.296,167,3.863,187,0.807,197,6.596,198,2.71,199,3.066,200,3.625,216,1.768,217,1.659,221,2.78,227,1.157,234,0.906,766,2.334,784,3.015,843,3.58,1345,2.213,1369,3.04,1795,4.385,1801,3.344,1904,2.334,2362,3.208,2725,2.527,3010,3.12,3267,5.872,4773,6.292,5694,6.761,5697,6.871,5760,6.596,5815,7.618,5817,10.06,5957,10.125,5965,6.353,6039,4.147,6056,8.929,6073,4.368,6086,4.506,6091,4.25,6099,5.157,20302,6.795,20420,5.157,20607,5.157,20643,7.096,20644,8.839,20689,11.639,20690,5.579,20691,8.113,20692,9.562,20693,5.579,20694,8.113,20695,5.579,20696,8.113,20697,5.579,20698,5.579,20699,5.579,20700,5.579,20701,5.579,20702,5.579,20703,5.579,20704,5.579,20705,5.579,20706,8.113,20707,5.579,20708,8.113,20709,8.113,20710,5.579]],["title/controllers/ToolSchoolController.html",[481,2.611,20305,5.947]],["body/controllers/ToolSchoolController.html",[0,0.148,3,0.01,4,0.01,5,0.005,7,0.066,8,0.813,10,1.756,27,0.413,29,0.785,30,0.001,31,0.561,32,0.172,33,0.485,34,1.942,35,1.419,36,2.568,95,0.157,100,1.456,101,0.007,103,0,104,0,111,1.858,112,2.822,127,0.545,139,7.099,163,2.852,185,4.555,187,0.629,192,2.006,200,3.73,206,2.213,209,2.224,216,1.714,217,1.558,221,2.32,227,0.961,264,3.894,364,1.826,367,4.419,376,0.995,379,2.504,447,1.803,461,1.883,481,1.67,483,2.074,491,6.355,493,5.128,494,5.554,500,2.985,502,4.177,503,6.145,504,6.065,511,4.16,513,6.527,520,4.472,524,5.33,529,2.926,538,3.033,543,5.963,549,6.36,553,6.423,554,4.229,555,2.261,556,2.314,558,2.087,561,2.332,563,6.007,564,1.595,565,3.355,1016,3.254,1410,2.455,1467,1.388,1904,1.82,2255,4.793,2356,1.787,2357,3.066,2412,5.241,2727,2.087,2928,3.162,2929,3.871,2930,2.332,3743,6.219,4007,2.733,4171,3.314,4205,1.466,4466,5.383,5837,3.314,5874,3.098,5941,3.314,6064,4.284,7252,6.577,8528,6.599,9264,5.637,13924,4.021,13939,5.437,13941,4.893,13942,7.704,16929,7.878,17977,4.021,18099,9.377,18108,9.256,18146,5.637,18152,9.666,18153,3.805,18157,8.561,18163,5.637,18172,5.637,18186,8.105,18220,6.895,18222,7.611,18223,7.611,18224,7.611,18225,7.611,20305,5.887,20310,8.561,20345,3.406,20355,8.567,20387,3.805,20389,5.887,20408,5.887,20409,5.637,20416,3.805,20444,4.021,20465,4.021,20502,6.222,20711,4.35,20712,8.233,20713,4.35,20714,4.35,20715,4.35,20716,4.35,20717,4.35,20718,4.35,20719,4.35,20720,4.35,20721,4.35,20722,4.35,20723,4.35,20724,8.233,20725,4.35,20726,4.35,20727,4.35,20728,4.35,20729,4.35,20730,4.35,20731,4.35,20732,4.35,20733,4.35,20734,4.35,20735,4.35,20736,4.35,20737,4.35,20738,4.35,20739,4.35,20740,6.731,20741,4.35,20742,4.35,20743,6.731,20744,4.35,20745,4.35,20746,4.35,20747,4.35,20748,4.35]],["title/classes/ToolStatusOutdatedLoggableException.html",[0,0.232,20586,5.947]],["body/classes/ToolStatusOutdatedLoggableException.html",[0,0.287,2,0.941,3,0.02,4,0.02,5,0.01,7,0.128,8,1.301,26,2.843,27,0.444,29,0.661,30,0.001,31,0.473,32,0.146,33,0.408,35,1.022,39,3.194,95,0.152,99,1.409,101,0.014,103,0.001,104,0.001,108,6.889,111,1.693,127,1.057,163,2.598,187,1.221,209,2.79,214,3.396,215,2.695,216,1.992,227,0.875,404,1.941,406,2.746,415,4.563,461,1.931,564,4.58,1216,3.308,1464,5.462,1465,6.121,1467,2.695,1469,6.186,2643,6.889,8288,6.166,8289,6.41,8738,5.374,8740,6.012,8745,4.954,8746,5.176,8776,6.808,8929,6.137,10696,6.82,18400,6.82,20499,7.384,20500,7.384,20586,9.42,20749,11.86,20750,11.86,20751,8.443]],["title/classes/ToolStatusResponseMapper.html",[0,0.232,5963,5.694]],["body/classes/ToolStatusResponseMapper.html",[0,0.321,2,1.052,3,0.022,4,0.022,5,0.011,7,0.142,8,1.394,27,0.389,29,0.739,30,0.001,31,0.528,32,0.128,33,0.456,35,1.142,95,0.148,101,0.019,103,0.001,104,0.001,199,3.564,200,2.937,217,1.227,227,0.978,564,4.572,627,3.827,974,5.592,975,6.398,1031,2.955,1180,4.059,3770,10.095,5350,9.255,5358,7.898,5359,8.718,5837,7.185,5963,9.666,18158,10.445,18181,8.718,20752,11.542,20753,9.431,20754,9.431,20755,9.431,20756,9.431,20757,9.431,20758,9.431]],["title/interfaces/ToolVersion.html",[334,0.731,5352,3.99]],["body/interfaces/ToolVersion.html",[3,0.025,4,0.025,5,0.013,7,0.158,8,1.486,27,0.432,30,0.001,35,1.269,55,2.649,101,0.017,103,0.001,104,0.001,334,1.127,336,2.509,5352,7.217,5700,10.257,20759,12.299,20760,10.486,20761,10.486]],["title/classes/UnauthorizedLoggableException.html",[0,0.232,1741,5.694]],["body/classes/UnauthorizedLoggableException.html",[0,0.3,2,0.983,3,0.021,4,0.021,5,0.011,7,0.133,8,1.337,27,0.456,29,0.69,30,0.001,31,0.494,32,0.15,33,0.426,35,1.067,47,0.951,48,5.979,51,5.876,59,2.745,95,0.155,101,0.015,103,0.001,104,0.001,111,1.767,127,1.104,163,2.712,187,1.274,214,3.489,215,2.813,216,2.046,217,1.147,227,0.914,404,1.994,406,2.866,407,7.118,417,6.405,1216,4.336,1464,5.572,1469,6.283,1741,9.267,2004,8.303,8288,6.597,8738,5.609,8740,6.275,8745,5.17,8746,5.403,10699,7.38,10700,7.38,18400,7.118,20762,12.098,20763,8.812,20764,8.146]],["title/classes/UpdateElementContentBodyParams.html",[0,0.232,8182,4.517]],["body/classes/UpdateElementContentBodyParams.html",[0,0.456,2,0.65,3,0.014,4,0.014,5,0.007,7,0.088,9,2.747,27,0.24,30,0.001,31,0.636,32,0.185,47,0.809,83,1.783,95,0.138,99,0.973,101,0.022,103,0,104,0,144,3.121,145,2.121,150,2.018,163,3.017,165,0.656,240,1.849,364,1.062,369,1.294,374,1.86,375,3.734,376,1.333,379,1.898,404,2.045,467,3.592,470,4.747,471,3.973,524,3.352,999,5.331,1000,3.41,1031,1.826,1044,2.796,1770,3.386,2303,4.6,2553,4.178,2848,2.814,2849,2.521,2889,2.886,3251,3.456,3253,3.456,3259,5.059,3262,2.987,3267,3.26,4009,3.71,4037,3.71,4038,7.043,4096,5.745,5562,6.325,5564,6.325,5566,6.325,5568,6.325,5570,6.325,5604,3.815,5643,6.512,5644,6.512,5645,6.512,5646,6.512,5647,6.512,5835,3.662,5836,6.808,6979,3.872,7039,3.71,8169,8.216,8170,5.748,8171,4,8174,7.119,8175,7.119,8176,4,8177,7.119,8178,3.574,8179,3.934,8180,7.119,8181,7.119,8182,5.564,8183,5.564,8184,3.872,8185,5.564,8186,4,8187,4,8188,4,8189,4,8190,4,8619,5.098,20765,5.829,20766,5.829]],["title/classes/UpdateFlagParams.html",[0,0.232,12770,5.947]],["body/classes/UpdateFlagParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,95,0.169,101,0.016,103,0.001,104,0.001,165,0.925,347,2.389,364,1.785,373,6.333,374,3.127,376,2.241,379,2.22,461,2.241,467,3.099,520,7.848,1013,4.487,4476,5.267,10658,8.86,10691,8.781,12770,10.332,20767,10.92,20768,9.798,20769,9.798,20770,9.798]],["title/classes/UpdateMatchParams.html",[0,0.232,12762,5.947]],["body/classes/UpdateMatchParams.html",[0,0.4,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.4,30,0.001,32,0.132,39,3.4,47,0.837,95,0.169,101,0.016,103,0.001,104,0.001,165,0.92,364,1.767,374,3.097,376,2.22,379,2.199,461,2.889,467,3.081,520,7.802,1000,4.781,1013,4.444,1639,7.475,1865,5.349,4476,5.236,12762,10.271,20767,10.856,20771,9.703,20772,9.703,20773,9.703]],["title/classes/UpdateNewsParams.html",[0,0.232,14963,5.694]],["body/classes/UpdateNewsParams.html",[0,0.416,2,0.886,3,0.019,4,0.019,5,0.01,7,0.12,27,0.475,30,0.001,32,0.157,33,0.501,47,0.871,83,3.168,95,0.157,99,1.326,100,3.467,101,0.013,103,0.001,104,0.001,165,0.956,364,2.099,374,2.535,375,4.65,376,1.817,379,2.767,380,2.759,469,3.487,470,4.819,471,4.949,685,5.465,950,8.109,999,6.591,1397,4.239,1770,6.015,2303,5.133,2385,6.349,2794,6.14,3259,4.099,6153,7.107,6853,7.654,6858,7.638,7033,6.947,7039,6.591,7040,8.672,7041,7.889,7051,7.889,7052,7.343,14963,8.672,20774,12.209,20775,10.355,20776,10.355,20777,9.057,20778,7.943,20779,7.943,20780,7.943,20781,7.943,20782,7.943,20783,7.943]],["title/classes/UpdateSubmissionItemBodyParams.html",[0,0.232,3731,5.947]],["body/classes/UpdateSubmissionItemBodyParams.html",[0,0.398,2,1.072,3,0.023,4,0.023,5,0.012,7,0.145,27,0.396,30,0.001,32,0.131,95,0.15,101,0.016,103,0.001,104,0.001,165,0.914,347,2.646,364,1.75,368,4.575,369,2.591,373,6.259,374,3.068,376,2.198,379,2.178,467,3.063,2849,5.657,3264,8.123,3731,10.212,7055,9.143,7057,8.884,7058,8.406,7059,10.212,7060,9.431,7061,8.884,20784,11.675]],["title/entities/User.html",[380,1.445,461,1.555]],["body/entities/User.html",[0,0.149,3,0.01,4,0.01,5,0.005,7,0.19,27,0.541,30,0.001,32,0.177,33,0.658,34,0.744,47,0.977,83,3.592,95,0.129,96,1.196,101,0.014,103,0,104,0,116,1.362,144,1.203,165,0.867,192,3.3,214,1.379,217,1.075,227,0.454,234,1.509,240,4.188,305,1.246,319,1.307,334,0.726,347,1.671,364,2.39,369,2.988,370,4.135,380,1.975,381,1.455,386,7.151,394,2.491,396,3.425,398,1.289,399,2.682,400,1.93,402,1.813,404,0.788,405,1.165,406,1.422,461,1.546,496,3.924,844,4.576,851,4.791,852,4.791,853,5.185,854,5.042,1019,2.54,1031,1.37,1180,3.555,1843,2.073,1849,4.146,1850,3.825,2632,4.627,2636,3.683,2640,3.683,3090,1.892,3110,5.702,4052,2.566,4198,6.493,4199,7.081,4205,2.278,4210,6.313,4262,6.918,4293,3.425,4294,3.251,4989,3.096,6497,3.825,6511,4.097,6521,2.682,6543,2.714,6544,2.621,6871,2.593,6872,2.682,7299,5.15,9538,2.906,9539,3.179,9540,2.906,9541,3.179,9542,3.332,9543,3.533,9876,7.081,9938,3.533,9942,3.663,11801,6.673,11802,6.673,11803,6.673,12040,5.66,12160,3.663,12161,3.533,12162,3.663,12163,3.533,12165,3.663,12169,5.66,12170,3.533,12183,6.378,12209,3.425,12210,3.251,12554,3.425,12581,5.46,12582,4.043,12583,7.278,12584,7.081,12585,6.909,12586,7.278,12587,6.248,12588,6.248,12589,6.248,12590,6.918,12591,3.663,12592,4.043,12593,3.663,12594,4.043,12595,3.663,12596,4.043,12597,3.663,12598,4.043,12599,3.663,12600,4.043,12601,4.043,12602,6.248,20785,4.373,20786,4.373,20787,4.373,20788,4.373,20789,4.373,20790,4.373,20791,4.373,20792,4.373,20793,4.373,20794,4.373,20795,4.373,20796,4.373,20797,4.373,20798,4.373,20799,4.373,20800,4.373,20801,4.373,20802,4.373,20803,4.373]],["title/classes/UserAlreadyAssignedToImportUserError.html",[0,0.232,20804,6.286]],["body/classes/UserAlreadyAssignedToImportUserError.html",[0,0.269,2,0.881,3,0.019,4,0.019,5,0.01,7,0.119,8,1.246,27,0.544,30,0.001,32,0.184,33,0.499,35,0.956,47,0.819,55,1.701,95,0.156,101,0.013,103,0.001,104,0.001,127,1.439,165,0.808,204,4.133,216,2.527,364,2.302,404,1.859,406,2.568,461,2.36,564,2.895,596,3.954,795,7.044,1013,5.579,1016,2.772,1142,5.321,1180,3.399,1216,4.501,1395,8.303,1396,6.545,1397,4.078,1398,7.313,1402,5.095,1403,4.377,1404,5.095,1405,5.095,1406,5.095,1407,5.095,1408,5.095,1409,4.733,1411,6.183,1416,4.961,1865,3.597,3427,5.419,3498,8.639,3961,4.9,4140,5.168,9603,5.026,13817,6.907,20804,9.536,20805,10.315,20806,10.315,20807,7.896,20808,7.896,20809,10.315]],["title/interfaces/UserAndAccountParams.html",[334,0.731,855,5.694]],["body/interfaces/UserAndAccountParams.html",[0,0.234,3,0.016,4,0.016,5,0.008,26,1.993,30,0.001,47,0.86,48,4.43,49,3.699,51,4.566,94,6.63,95,0.155,99,1.147,101,0.016,103,0.001,104,0.001,111,1.885,116,3.337,185,4.955,192,2.801,217,1.714,227,1.251,334,1.151,336,1.645,404,1.694,461,3.076,627,3.701,658,5.552,734,3.915,840,9.647,841,6.011,842,6.011,843,5.083,844,4.282,845,4.996,846,4.894,847,6.011,848,8.203,849,5.236,850,10.061,851,4.483,852,4.483,853,4.852,854,4.717,855,10.678,856,5.756,857,6.011,858,8.222,859,6.011,860,6.011,861,6.011,862,8.973,863,8.222,864,8.222,865,5.756,866,9.371,867,9.371,868,6.011,869,8.222,870,8.222,871,5.756,872,6.011,873,8.222,874,6.694,875,5.756]],["title/classes/UserAndAccountTestFactory.html",[0,0.232,856,5.694]],["body/classes/UserAndAccountTestFactory.html",[0,0.191,2,0.625,3,0.013,4,0.013,5,0.007,7,0.085,8,0.983,26,1.725,27,0.461,29,0.875,30,0.001,31,0.626,32,0.167,33,0.54,35,1.352,47,0.797,48,3.835,49,3.202,51,3.953,94,6.46,95,0.143,99,0.935,101,0.014,103,0,104,0,111,2.337,116,2.985,138,4.187,144,2.893,185,5.126,192,2.425,217,1.635,227,1.159,319,3.144,334,1.03,404,1.009,461,3.042,627,4.11,658,4.525,734,3.191,840,8.027,841,10.195,842,4.9,843,5.63,844,3.707,845,4.072,846,3.989,847,4.9,848,7.491,849,4.268,850,9.416,851,3.881,852,3.881,853,4.2,854,4.084,855,11.286,856,6.815,857,7.118,858,7.118,859,7.118,860,4.9,861,8.383,862,10.52,863,7.118,864,7.118,865,4.691,866,8.383,867,8.383,868,8.383,869,7.118,870,7.118,871,4.691,872,8.383,873,7.118,874,5.795,875,4.691,20810,8.138,20811,8.138,20812,5.602,20813,5.602,20814,5.602,20815,5.602,20816,5.602,20817,5.602,20818,5.602,20819,5.602]],["title/modules/UserApiModule.html",[425,1.812,18510,5.493]],["body/modules/UserApiModule.html",[0,0.318,3,0.022,4,0.022,5,0.011,30,0.001,95,0.166,101,0.016,103,0.001,104,0.001,187,1.351,425,3.31,427,3.375,428,3.631,429,3.738,430,3.723,431,3.707,432,4.571,433,3.531,442,4.592,443,3.661,444,3.573,446,5.87,447,4.757,449,4.553,481,3.587,2727,4.482,3568,8.505,12787,10.934,18510,11.185,20820,9.343,20821,9.343,20822,9.343,20823,9.343,20824,10.864,20825,9.343]],["title/interfaces/UserBoardRoles.html",[334,0.731,3109,5.181]],["body/interfaces/UserBoardRoles.html",[0,0.267,3,0.019,4,0.019,5,0.009,7,0.118,26,2.673,30,0.001,32,0.171,33,0.587,34,1.333,39,3.27,47,0.922,95,0.132,101,0.021,102,3.932,103,0.001,104,0.001,145,2.599,165,0.804,227,1.064,334,1.103,336,1.875,359,2.732,404,1.849,521,6.329,728,2.996,843,3.457,851,5.791,852,5.791,1031,3.216,1787,5.961,1790,4.333,1855,4.923,1873,4.862,1942,5.377,2545,4.167,2805,6.135,3088,5.579,3089,6.853,3090,4.439,3091,8.29,3097,10.834,3099,9.81,3100,8.29,3101,8.976,3102,6.329,3103,6.853,3104,3.549,3105,7.285,3106,5.792,3107,6.853,3108,6.853,3109,9.253,3110,6.053,3111,6.562,3112,6.329,3113,8.976,3114,6.853]],["title/controllers/UserController.html",[481,2.611,20824,5.947]],["body/controllers/UserController.html",[0,0.266,3,0.018,4,0.018,5,0.009,7,0.118,8,1.238,27,0.423,29,0.803,30,0.001,31,0.574,32,0.139,33,0.496,35,1.241,36,2.602,95,0.166,100,2.618,101,0.013,103,0.001,104,0.001,112,2.849,185,4.443,187,1.131,206,3.979,215,2.496,216,1.446,217,1.579,221,2.372,227,1.063,234,1.27,364,1.867,376,1.789,447,3.241,461,2.615,481,3.002,483,3.729,491,6.481,513,6.656,543,5.215,552,5.046,555,4.065,556,4.159,561,4.192,1750,3.468,1849,5.144,2470,5.367,2727,3.752,2736,5.118,2930,4.192,3110,3.898,4196,10.163,12787,9.236,17411,6.84,17415,6.549,19256,10.001,20824,8.965,20826,7.82,20827,11.434,20828,7.82,20829,10.25,20830,7.82,20831,7.82,20832,10.25,20833,7.82,20834,7.82,20835,6.84,20836,7.82,20837,7.82,20838,9.475,20839,7.82,20840,7.82,20841,7.82,20842,7.82]],["title/classes/UserDO.html",[0,0.232,7074,3.561]],["body/classes/UserDO.html",[0,0.201,2,0.66,3,0.014,4,0.014,5,0.007,7,0.089,26,2.095,27,0.572,29,0.463,30,0.001,31,0.331,32,0.189,33,0.686,34,1.44,47,0.989,83,3.825,95,0.139,101,0.01,103,0,104,0,127,0.741,165,0.663,347,1.712,404,1.525,496,2.497,591,4.295,592,4.477,596,1.804,620,3.816,622,3.816,851,4.712,852,4.712,853,5.1,854,4.959,1180,3.642,1790,2.497,1844,3.545,1865,2.694,1872,6.265,2545,3.146,3110,4.926,4198,6.904,4199,7.529,4205,3.331,4210,6.209,4282,3.507,4294,4.397,4394,5.467,5708,4.299,6871,3.507,7074,5.978,7080,6.67,7149,4.631,7180,4.506,7183,6.627,7184,4.631,7192,5.173,9538,3.929,9540,3.929,9542,4.506,11801,7.983,11802,7.983,11803,7.983,12183,6.782,12210,4.397,12583,7.738,12584,7.529,12585,7.346,12586,7.738,12590,8.276,12591,4.953,12593,4.953,12595,4.953,12597,4.953,12599,4.953,20843,5.914,20844,8.463,20845,5.914,20846,5.914,20847,5.914,20848,5.914,20849,5.914,20850,5.914,20851,5.914,20852,5.914,20853,5.914,20854,5.914,20855,5.914,20856,5.914,20857,5.914,20858,5.914,20859,5.914,20860,5.914,20861,5.914,20862,5.914,20863,5.914,20864,5.914,20865,5.914,20866,5.914,20867,5.914,20868,5.914,20869,5.914,20870,5.914,20871,5.914,20872,5.914,20873,5.914,20874,5.914,20875,5.914,20876,5.914,20877,5.914,20878,5.914,20879,5.914,20880,5.914,20881,5.914,20882,5.914,20883,5.914]],["title/injectables/UserDORepo.html",[105,0.91,20884,5.694]],["body/injectables/UserDORepo.html",[0,0.117,3,0.008,4,0.008,5,0.004,7,0.052,8,0.674,10,2.844,12,2.555,18,2.819,26,2.365,27,0.522,29,0.983,30,0.001,31,0.709,32,0.171,33,0.607,34,1.627,35,1.519,36,2.576,40,2.693,47,0.83,48,4.948,55,0.74,56,1.647,58,2.216,59,1.07,95,0.143,96,0.939,99,0.573,101,0.006,103,0,104,0,105,0.746,107,0.828,111,2.408,112,2.892,144,0.944,145,1.413,148,1.057,165,0.269,167,2.593,187,0.497,192,1.023,217,1.563,221,2.213,227,1.157,234,1.553,247,1.346,277,2.844,305,0.978,319,1.026,347,1.129,359,1.945,371,1.539,380,1.724,381,1.142,398,1.012,404,1.005,450,1.411,461,2.748,496,3.769,510,2.496,529,1.493,558,1.647,591,1.493,592,1.556,595,1.15,596,3.611,661,2.345,701,2.492,844,1.564,851,2.661,852,2.661,853,2.88,854,4.479,878,3.898,884,2.629,885,4.51,915,1.904,964,2.357,1008,3.016,1014,3.869,1167,1.887,1345,1.362,1790,2.976,2051,1.956,2144,3.149,2343,8.448,2345,3.973,2346,3.973,2347,3.973,2348,3.973,2349,3.898,2350,3.898,2351,3.973,2352,3.898,2353,3.973,2360,2.445,2362,4.667,2363,2.445,2365,2.445,2367,2.248,2368,3.898,2369,2.445,2371,2.445,2373,3.973,2377,3.973,2379,3.766,2380,3.898,2382,2.445,2384,2.058,2385,2.106,2386,2.445,2388,2.445,2390,3.898,2391,2.445,2394,3.308,2408,2.399,2409,2.553,2418,3.004,3110,4.045,3307,3.175,3391,2.248,4198,3.898,4205,1.157,4210,3.506,4369,2.216,4379,3.004,4383,2.876,4384,2.876,4428,2.774,4431,2.158,4435,2.318,4572,2.445,4659,5.93,4661,2.945,5853,4.673,5862,2.496,5863,2.496,5864,2.496,5865,2.496,5866,2.496,5867,2.496,5868,2.496,5869,2.496,5870,2.496,5882,2.399,6612,2.058,6677,2.876,6902,4.918,6912,7.491,6931,2.496,6932,2.496,7074,6.447,7080,5.477,7081,2.774,7083,2.774,7086,3.004,8469,3.016,8583,3.175,8961,4.251,8985,2.876,8989,3.004,8991,3.004,9005,3.175,9019,4.88,9149,6.354,9382,3.175,9384,3.175,9385,3.175,9386,5.158,9387,3.175,10293,3.121,11028,2.876,11801,2.774,11802,2.774,11803,2.774,12183,3.829,12581,7.725,12583,4.369,12584,4.251,12585,4.148,12586,4.369,12590,2.876,13778,2.445,13814,4.673,14014,4.88,14018,4.88,14036,3.175,14043,3.175,14047,3.175,14712,3.175,16350,3.175,18140,2.774,18142,3.004,18143,3.004,20174,4.88,20176,4.88,20884,4.673,20885,10.076,20886,5.58,20887,5.158,20888,5.58,20889,3.434,20890,3.434,20891,7.501,20892,3.434,20893,3.434,20894,5.158,20895,3.434,20896,3.434,20897,3.434,20898,3.434,20899,3.434,20900,3.434,20901,3.175,20902,4.88,20903,3.434,20904,3.434,20905,3.434,20906,3.434,20907,3.434,20908,3.434,20909,3.175,20910,3.434,20911,3.434,20912,3.434,20913,3.175,20914,6.515,20915,3.434,20916,3.175,20917,3.434,20918,5.58,20919,3.434,20920,3.434,20921,3.434,20922,3.175,20923,3.434,20924,3.175,20925,3.175,20926,3.175,20927,3.175,20928,3.434,20929,3.434,20930,3.434,20931,3.434,20932,3.175,20933,3.175,20934,3.175,20935,3.175,20936,3.175,20937,3.434,20938,3.434,20939,3.434,20940,3.434,20941,3.434,20942,3.434,20943,3.434,20944,3.434,20945,3.434,20946,3.434,20947,3.434,20948,3.434,20949,3.434,20950,3.434]],["title/interfaces/UserData.html",[334,0.731,9667,5.324]],["body/interfaces/UserData.html",[0,0.134,3,0.009,4,0.009,5,0.005,7,0.06,26,1.863,30,0.001,31,0.349,32,0.138,34,1.061,36,2.497,47,0.946,51,5.176,55,0.85,72,1.787,95,0.157,99,0.658,101,0.007,103,0,104,0,105,0.834,111,2.517,112,2.567,127,0.494,130,5.219,139,4.829,140,4.638,158,6.251,163,3.4,165,0.488,167,2.295,187,0.571,188,4.2,190,2.933,197,2.479,200,2.737,201,3.934,216,1.881,217,1.755,221,3.086,227,1.232,234,1.652,247,2.443,284,5.172,305,2.503,316,4.441,318,2.933,334,1.028,336,0.944,347,0.798,427,1.425,461,0.902,574,1.732,688,2.022,738,2.051,766,2.609,1166,4.216,1905,2.391,2210,8.344,2280,2.247,2439,2.315,2468,2.365,2633,2.992,4205,1.33,4324,4.798,4571,4.214,4572,2.809,4593,1.993,4737,4.491,4748,4.871,5034,3.006,5209,2.621,5462,2.756,5697,5.061,5735,4.357,5799,2.663,5800,4.143,5815,5.061,5875,4.441,5966,2.756,6039,5.748,6057,5.137,6074,4.798,6077,2.868,6091,4.751,6100,4.741,6473,3.622,6476,4.859,6477,2.756,6580,2.868,6629,3.089,7074,5.013,7080,4.209,7271,3.87,7803,2.546,8369,2.391,8528,2.809,8586,3.006,8608,2.868,8776,4.789,8801,6.257,8917,2.809,8920,6.949,8926,5.137,8955,3.006,9627,3.006,9628,3.187,9629,3.187,9630,3.187,9631,3.187,9632,3.187,9633,2.809,9634,3.187,9647,5.307,9649,3.187,9652,3.187,9654,3.187,9656,3.187,9657,7.098,9659,3.187,9661,3.187,9663,3.187,9665,3.187,9667,8.65,9668,3.187,9670,3.187,9672,3.187,9674,2.756,9675,2.868,9676,3.187,9677,4.883,9678,6.881,9679,4.883,9680,5.037,9681,5.037,9682,7.73,9683,5.037,9684,3.187,9685,5.037,9686,3.187,9687,3.187,9688,5.037,9689,3.187,9690,3.187,9691,5.037,9692,3.187,9693,3.187,9694,3.187,9695,3.187,9696,3.187,9697,3.187,9698,3.187,9699,3.187,9700,3.187,9701,3.187,9702,6.246,9703,3.187,9704,3.187,9705,3.187,9706,3.187,9707,3.187,9708,3.187,9709,3.187,9710,3.187,9711,3.187,9712,3.187,9713,3.187,9714,5.037,9715,3.187,9716,3.089,9717,3.187,9718,4.143,9719,2.663,9720,3.089,9721,3.089,9722,3.187,9723,5.037,9724,3.187,9725,5.037,9726,3.187,9727,3.089,9728,3.187,9729,3.187,9730,3.187,9731,3.187,9732,3.187,9733,3.187,9734,3.187,9735,3.089,9736,3.089]],["title/classes/UserDataResponse.html",[0,0.232,19080,5.694]],["body/classes/UserDataResponse.html",[0,0.305,2,1,3,0.021,4,0.021,5,0.011,7,0.135,27,0.527,29,0.702,30,0.001,31,0.502,32,0.174,33,0.434,39,3.538,47,0.956,95,0.115,101,0.015,103,0.001,104,0.001,127,1.402,165,0.876,364,2.221,376,2.052,415,4.847,467,3.566,851,6.266,852,6.266,966,4.563,9538,5.958,9540,5.958,19080,11.005,20951,13.141,20952,8.969,20953,8.969,20954,8.969,20955,8.969,20956,8.969]],["title/classes/UserDoFactory.html",[0,0.232,20957,6.286]],["body/classes/UserDoFactory.html",[0,0.167,2,0.546,3,0.012,4,0.012,5,0.006,7,0.074,8,0.89,26,1.561,27,0.535,29,1.025,30,0.001,31,0.712,32,0.183,33,0.607,34,1.506,35,1.495,47,0.525,49,1.926,55,2.481,59,3.29,95,0.136,99,0.817,101,0.008,103,0,104,0,127,0.613,138,4.303,144,3.259,148,1.506,165,0.577,185,4.875,216,1.362,217,0.958,227,0.764,234,0.795,319,3.542,359,2.568,366,2.737,379,2.006,380,1.881,381,2.45,404,1.327,461,1.119,538,3.318,596,3.921,627,2.26,660,7.065,661,4.665,662,5.559,665,4.156,666,5.559,667,5.617,668,4.156,669,4.156,670,4.156,671,4.082,672,4.537,673,4.997,674,6.513,675,5.856,676,7.016,677,2.788,682,2.762,683,4.156,684,2.788,685,5.199,686,5.368,687,4.199,688,5.047,689,4.119,690,2.762,691,2.603,692,4.147,693,2.69,694,2.645,695,2.762,696,5.121,697,2.788,698,4.908,699,2.762,700,7.174,701,4.19,702,6.688,703,2.788,704,3.647,705,2.762,706,2.788,707,2.762,708,2.788,709,2.762,712,2.762,713,6.153,714,2.788,715,2.762,716,4.156,717,3.887,718,4.156,719,2.788,720,2.667,721,2.645,722,2.182,723,2.762,724,2.762,725,2.762,726,2.788,727,2.788,728,1.872,729,2.762,730,2.788,731,2.91,732,2.762,733,2.788,734,2.788,735,2.843,737,2.933,851,2.334,852,2.334,853,2.526,1790,2.066,3110,4.413,4205,1.65,4313,6.305,4315,3.558,4571,4.013,7074,2.563,7081,3.953,7743,4.281,12829,4.281,20957,8.185,20958,4.894,20959,7.364,20960,7.364,20961,4.894,20962,4.894,20963,4.524,20964,4.524]],["title/classes/UserDto.html",[0,0.232,20965,5.694]],["body/classes/UserDto.html",[0,0.236,2,0.772,3,0.016,4,0.016,5,0.008,7,0.105,26,2.564,27,0.567,29,0.542,30,0.001,31,0.388,32,0.187,33,0.674,34,1.829,47,0.968,83,3.534,95,0.089,99,1.155,101,0.012,103,0.001,104,0.001,127,0.867,144,2.598,165,0.74,319,2.823,347,1.91,380,1.47,461,2.16,618,2.83,722,3.085,738,3.598,851,5.127,852,5.127,853,5.549,854,5.396,1180,4.065,3146,4.597,3147,4.465,4198,7.512,4199,8.192,4205,3.624,4210,6.756,4282,4.103,4294,5.144,4756,5.59,6871,4.103,9538,4.597,9540,4.597,9542,5.272,11318,8.731,12583,8.42,12584,8.192,12585,7.993,12586,8.42,12591,5.795,12593,5.795,12595,5.795,12597,5.795,12599,5.795,12646,5.419,13131,6.053,14827,6.397,18373,6.397,20965,10.127,20966,6.92,20967,9.94,20968,6.92,20969,6.92,20970,6.92,20971,6.92,20972,6.92,20973,6.92,20974,6.92,20975,6.92,20976,6.92,20977,6.92,20978,6.92,20979,6.92,20980,6.92,20981,6.92,20982,6.92,20983,6.92,20984,6.92,20985,6.053,20986,6.92,20987,6.92]],["title/classes/UserFactory.html",[0,0.232,848,4.842]],["body/classes/UserFactory.html",[0,0.137,2,0.447,3,0.009,4,0.009,5,0.005,7,0.061,8,0.763,27,0.533,29,1.02,30,0.001,31,0.734,32,0.179,33,0.609,34,1.33,35,1.384,47,0.451,55,2.31,59,3.005,95,0.138,99,0.67,101,0.007,103,0,104,0,127,0.503,138,2.76,144,3.282,148,1.235,165,0.495,185,4.896,192,1.196,216,1.168,217,1.579,227,1.063,319,3.567,359,2.203,366,2.244,379,1.772,380,2.05,381,2.102,404,1.139,461,1.788,496,5.197,538,2.847,596,3.754,627,1.939,660,6.99,661,4.307,662,5.006,665,3.566,666,5.006,667,5.419,668,3.566,669,3.566,670,3.566,671,3.503,672,4.006,673,4.412,674,6.107,675,5.348,676,6.809,677,2.286,682,2.264,683,3.566,684,2.286,685,4.681,686,4.833,687,3.781,688,4.545,689,3.534,690,2.264,691,2.134,692,3.828,693,2.205,694,2.168,695,2.264,696,4.611,697,2.286,698,4.334,699,2.264,700,7.178,701,3.929,702,6.271,703,2.286,704,3.871,705,2.264,706,2.286,707,2.264,708,2.286,709,2.264,710,2.554,711,2.379,712,2.264,713,5.681,714,2.286,715,2.264,716,3.566,717,3.335,718,3.566,719,2.286,720,2.186,721,2.168,722,1.789,723,2.264,724,2.264,725,2.264,726,2.286,727,2.286,728,1.534,729,2.264,730,2.286,731,2.497,732,2.264,733,2.286,735,2.33,736,2.379,737,5.783,843,5.164,845,2.916,846,2.857,848,5.567,851,1.913,852,1.913,853,2.071,862,8.582,865,5.292,871,5.292,875,5.292,1849,5.382,2191,5.842,3110,5.108,4571,4.833,6736,3.142,6737,3.241,6746,3.142,9718,2.665,9719,2.708,12012,3.057,12581,3.241,12829,3.509,20158,3.709,20162,8.199,20963,3.709,20964,3.709,20988,4.012,20989,6.319,20990,6.319,20991,6.319,20992,6.319,20993,4.012,20994,4.012,20995,4.012,20996,6.319,20997,4.012,20998,6.319,20999,4.012,21000,6.319,21001,6.319,21002,6.319,21003,4.012,21004,4.012,21005,7.818,21006,4.012]],["title/classes/UserForGroupNotFoundLoggable.html",[0,0.232,16323,5.947]],["body/classes/UserForGroupNotFoundLoggable.html",[0,0.305,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,8,1.35,27,0.461,29,0.701,30,0.001,31,0.501,32,0.122,33,0.433,35,1.083,95,0.143,100,2.996,101,0.015,103,0.001,104,0.001,127,1.121,163,2.754,214,3.523,215,2.856,216,1.655,227,0.928,461,2.047,1166,6.121,1216,3.506,1345,3.55,1464,5.611,1465,6.288,1467,2.856,1469,6.318,1646,5.005,3049,6.505,4571,4.877,7027,5.553,8288,6.334,8289,6.585,8430,9.992,8443,5.945,10910,8.306,11156,6.505,16323,9.773,18258,8.273,18259,8.273,18260,8.273,21007,12.183,21008,8.949,21009,8.949,21010,8.949]],["title/interfaces/UserGroup.html",[334,0.731,9679,5.324]],["body/interfaces/UserGroup.html",[0,0.133,3,0.009,4,0.009,5,0.005,7,0.059,26,1.856,30,0.001,31,0.534,32,0.144,34,1.055,36,2.492,47,0.945,51,4.252,55,1.658,72,1.775,95,0.157,99,0.654,101,0.007,103,0,104,0,105,0.83,111,2.513,112,2.561,127,0.491,130,5.196,139,4.811,140,4.62,158,6.242,163,3.392,165,0.486,167,2.282,187,0.567,188,4.191,190,2.913,197,2.462,200,2.726,201,3.917,216,1.876,217,1.754,221,3.083,227,1.23,234,1.647,247,2.43,284,5.155,305,2.494,316,4.417,318,2.913,334,1.025,336,0.938,347,0.793,427,1.415,461,0.896,574,1.72,688,2.008,738,2.037,766,2.594,1166,4.2,1905,2.375,2210,6.855,2280,2.232,2439,2.299,2468,2.348,2633,2.976,4205,1.321,4324,4.777,4571,4.195,4572,2.79,4593,1.98,4737,4.471,4748,4.853,5034,2.985,5209,2.603,5462,2.738,5697,5.038,5735,4.333,5799,2.645,5800,4.121,5815,5.038,5875,4.417,5966,2.738,6039,5.723,6057,5.114,6074,4.777,6077,2.848,6091,4.726,6100,4.72,6473,3.603,6476,4.837,6477,2.738,6580,2.848,6629,3.068,7074,4.996,7080,4.186,7271,3.849,7803,2.528,8369,2.375,8528,2.79,8586,2.985,8608,2.848,8776,4.77,8801,6.234,8917,2.79,8920,6.937,8926,5.114,8955,2.985,9627,2.985,9628,3.165,9629,3.165,9630,3.165,9631,3.165,9632,3.165,9633,2.79,9634,3.165,9647,5.283,9649,3.165,9652,3.165,9654,3.165,9656,3.165,9657,7.071,9659,3.165,9661,3.165,9663,3.165,9665,3.165,9667,8.322,9668,3.165,9670,3.165,9672,3.165,9674,2.738,9675,2.848,9676,3.165,9677,4.857,9678,6.855,9679,6.028,9680,7.705,9681,7.705,9682,7.705,9683,5.01,9684,3.165,9685,5.01,9686,3.165,9687,3.165,9688,5.01,9689,3.165,9690,3.165,9691,5.01,9692,3.165,9693,3.165,9694,3.165,9695,3.165,9696,3.165,9697,3.165,9698,3.165,9699,3.165,9700,3.165,9701,3.165,9702,6.218,9703,3.165,9704,3.165,9705,3.165,9706,3.165,9707,3.165,9708,3.165,9709,3.165,9710,3.165,9711,3.165,9712,3.165,9713,3.165,9714,5.01,9715,3.165,9716,3.068,9717,3.165,9718,4.121,9719,2.645,9720,3.068,9721,3.068,9722,3.165,9723,5.01,9724,3.165,9725,5.01,9726,3.165,9727,3.068,9728,3.165,9729,3.165,9730,3.165,9731,3.165,9732,3.165,9733,3.165,9734,3.165,9735,3.068,9736,3.068]],["title/interfaces/UserGroups.html",[334,0.731,9678,5.324]],["body/interfaces/UserGroups.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.868,30,0.001,31,0.351,32,0.145,34,1.065,36,2.501,47,0.926,51,4.28,55,0.854,72,1.796,95,0.158,99,0.662,101,0.007,103,0,104,0,105,0.837,111,2.519,112,2.57,127,0.497,130,5.236,138,2.735,139,4.842,140,4.65,158,6.256,163,3.661,165,0.49,167,2.304,187,0.573,188,4.207,190,2.947,197,2.491,200,2.744,201,3.947,216,1.885,217,1.756,221,3.088,227,1.234,234,1.655,247,2.453,284,5.185,305,2.51,316,4.458,318,2.947,334,1.031,336,0.949,347,0.802,427,1.432,461,0.907,574,1.741,688,2.031,738,2.061,766,2.619,1166,4.227,1905,2.403,2210,6.9,2280,2.259,2439,2.326,2468,2.376,2633,3.003,4205,1.336,4324,4.814,4571,4.227,4572,2.823,4593,2.003,4737,4.506,4748,4.884,5034,3.021,5209,2.634,5462,2.77,5697,5.077,5735,4.374,5799,2.676,5800,4.159,5815,5.077,5875,4.458,5966,2.77,6039,5.767,6057,5.154,6074,4.814,6077,2.882,6091,4.77,6100,4.756,6473,3.636,6476,4.874,6477,2.77,6580,2.882,6629,3.105,7074,5.025,7080,4.225,7271,3.885,7803,2.558,8369,2.403,8528,2.823,8586,3.021,8608,2.882,8776,4.802,8801,6.274,8917,2.823,8920,6.958,8926,5.154,8955,3.021,9627,3.021,9628,3.203,9629,3.203,9630,3.203,9631,3.203,9632,3.203,9633,2.823,9634,3.203,9647,5.324,9649,3.203,9652,3.203,9654,3.203,9656,3.203,9657,7.117,9659,3.203,9661,3.203,9663,3.203,9665,3.203,9667,8.359,9668,3.203,9670,3.203,9672,3.203,9674,2.77,9675,2.882,9676,3.203,9677,4.902,9678,7.512,9679,4.902,9680,5.057,9681,5.057,9682,7.749,9683,5.057,9684,3.203,9685,5.057,9686,3.203,9687,3.203,9688,5.057,9689,3.203,9690,3.203,9691,5.057,9692,3.203,9693,3.203,9694,3.203,9695,3.203,9696,3.203,9697,3.203,9698,3.203,9699,3.203,9700,3.203,9701,3.203,9702,6.266,9703,3.203,9704,3.203,9705,3.203,9706,3.203,9707,3.203,9708,3.203,9709,3.203,9710,3.203,9711,3.203,9712,3.203,9713,3.203,9714,5.057,9715,3.203,9716,3.105,9717,3.203,9718,4.159,9719,2.676,9720,3.105,9721,3.105,9722,3.203,9723,5.057,9724,3.203,9725,5.057,9726,3.203,9727,3.105,9728,3.203,9729,3.203,9730,3.203,9731,3.203,9732,3.203,9733,3.203,9734,3.203,9735,3.105,9736,3.105]],["title/classes/UserInfoMapper.html",[0,0.232,15035,5.947]],["body/classes/UserInfoMapper.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,8,1.404,27,0.393,29,0.747,30,0.001,31,0.534,32,0.13,33,0.461,34,1.623,35,1.155,95,0.149,99,1.593,100,3.892,101,0.016,103,0.001,104,0.001,217,1.242,227,0.99,234,1.549,461,3.06,627,3.847,738,4.961,851,4.55,852,4.55,975,6.444,982,4.756,3146,6.34,3147,6.157,15006,10.541,15035,10.168,17413,10.168,18294,8.346,18296,8.346,21011,11.625]],["title/classes/UserInfoResponse.html",[0,0.232,15006,5.493]],["body/classes/UserInfoResponse.html",[0,0.283,2,0.928,3,0.02,4,0.02,5,0.01,7,0.126,27,0.512,29,0.652,30,0.001,31,0.72,32,0.169,33,0.621,34,2.274,47,0.937,95,0.107,101,0.014,103,0.001,104,0.001,127,1.337,165,0.836,364,2.146,375,4.487,376,1.903,379,2.816,380,2.267,461,3.007,467,2.8,475,4.067,575,6.395,618,3.403,851,6.126,852,6.126,966,4.233,1403,5.915,2213,6.515,2883,5.446,2884,5.676,2885,5.676,4344,7.692,6986,9.333,9538,5.528,9540,5.528,15006,10.378,18301,7.277,21012,12.848,21013,8.32,21014,7.692]],["title/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.232,18907,5.493]],["body/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.282,2,0.922,3,0.02,4,0.02,5,0.01,7,0.125,8,1.284,26,2.628,27,0.438,29,0.648,30,0.001,31,0.463,32,0.144,33,0.4,35,1.001,52,5.876,83,3.593,95,0.151,99,1.38,101,0.014,103,0.001,104,0.001,111,1.658,127,1.036,163,2.545,187,1.196,192,2.464,214,3.351,215,2.639,216,1.965,227,0.857,355,5.274,404,1.915,406,2.689,795,7.601,1216,3.24,1464,5.409,1465,6.062,1467,2.639,1469,6.138,1477,5.336,4476,5.237,8288,6.106,8289,6.348,8738,5.264,8740,5.889,8745,4.852,8746,5.07,9058,7.578,10340,6.475,12208,8.206,13984,6.475,18400,6.68,18907,8.585,19785,6.68,21015,9.836,21016,11.745,21017,7.644,21018,9.707,21019,8.269,21020,8.269]],["title/modules/UserLoginMigrationApiModule.html",[425,1.812,18511,5.493]],["body/modules/UserLoginMigrationApiModule.html",[0,0.237,3,0.016,4,0.016,5,0.008,30,0.001,52,3.297,95,0.174,101,0.012,103,0.001,104,0.001,187,1.006,191,3.856,192,2.073,206,3.539,349,4.695,355,4.652,425,2.873,427,2.513,428,2.703,429,2.783,430,2.771,431,2.76,432,3.967,433,2.629,438,5.856,442,3.792,443,2.725,444,2.66,446,4.37,447,3.929,449,3.76,461,1.591,1467,2.22,1507,8.304,1546,9.788,1878,6.756,2725,3.151,2727,3.337,4475,10.468,4476,3.101,5333,7.957,10423,5.447,13913,9.524,15420,5.447,15578,9.788,16469,10.468,17433,10.468,18511,11.573,18532,5.825,18899,10.468,20266,10.468,21021,6.956,21022,6.956,21023,6.956,21024,10.097,21025,9.43,21026,9.43,21027,9.478,21028,9.478,21029,6.956]],["title/controllers/UserLoginMigrationController.html",[481,2.611,21026,5.947]],["body/controllers/UserLoginMigrationController.html",[0,0.11,3,0.008,4,0.008,5,0.004,7,0.049,8,0.639,27,0.404,29,0.768,30,0.001,31,0.549,32,0.185,33,0.474,35,1.186,36,2.533,47,0.48,52,6.388,55,1.14,95,0.144,99,0.537,100,1.077,101,0.005,103,0,104,0,111,1.729,112,2.795,127,0.403,145,1.976,185,3.604,187,0.465,192,2.326,204,1.092,206,1.637,216,1.595,217,1.537,221,2.268,227,1.016,234,0.522,264,2.223,355,5.548,364,1.785,376,0.736,379,2.911,447,1.334,461,3.112,481,1.235,483,1.534,491,6.281,498,2.208,511,5.172,513,6.127,529,2.299,543,5.395,549,3.631,553,3.206,555,1.673,556,1.711,561,1.725,563,1.928,564,1.939,694,1.739,728,2.023,774,3.631,795,6.276,1014,2.523,1016,2.74,1433,3.244,1477,5.036,1583,3.462,1605,4.627,2537,5.108,2702,2.384,2727,1.544,2929,1.85,2930,1.725,3104,2.397,3743,5.06,4007,2.022,4475,5.642,4476,4.564,4479,4.627,4489,6.323,4491,5.754,4493,6.111,4494,5.946,4661,4.119,5438,2.106,6761,3.846,7088,5.946,9603,4.968,10933,4.43,12759,4.89,13733,3.846,13940,7.543,13941,7.441,13942,5.673,13946,8.269,13951,4.797,14855,4.627,15277,4.273,15497,6.826,16929,7.285,17433,5.642,17435,4.627,18276,6.111,18349,6.536,18350,6.536,18352,6.826,18397,4.43,18899,5.642,18902,4.627,18907,6.304,19298,2.974,19785,8.818,20266,5.642,20268,5.892,20348,2.974,20409,8.572,20835,2.814,21024,5.442,21026,4.627,21030,9.463,21031,2.974,21032,5.29,21033,6.228,21034,6.228,21035,6.737,21036,3.217,21037,3.217,21038,9.463,21039,5.29,21040,5.29,21041,3.217,21042,3.217,21043,3.217,21044,5.29,21045,3.217,21046,3.217,21047,3.217,21048,9.273,21049,3.217,21050,3.217,21051,3.217,21052,6.536,21053,3.217,21054,3.217,21055,3.217,21056,3.217,21057,3.217,21058,3.217,21059,3.217,21060,3.217,21061,3.217,21062,3.217,21063,5.29,21064,6.536,21065,3.217,21066,5.29,21067,3.217,21068,3.217,21069,6.826,21070,3.217,21071,3.217,21072,3.217,21073,4.89,21074,3.217,21075,3.217,21076,3.217,21077,3.217,21078,3.217,21079,3.217,21080,6.737,21081,5.29,21082,2.814,21083,6.304,21084,9.227,21085,6.826,21086,3.217,21087,3.217,21088,3.217,21089,3.217,21090,3.217,21091,3.217,21092,3.217,21093,3.217,21094,3.217,21095,5.29,21096,3.217,21097,6.737,21098,3.217,21099,3.217,21100,3.217,21101,3.217,21102,3.217,21103,3.217,21104,6.737,21105,3.217,21106,3.217,21107,3.217,21108,3.217,21109,3.217,21110,3.217,21111,3.217,21112,3.217,21113,3.217,21114,3.217,21115,3.217,21116,3.217,21117,3.217]],["title/classes/UserLoginMigrationDO.html",[0,0.232,4489,4.387]],["body/classes/UserLoginMigrationDO.html",[0,0.262,2,0.857,3,0.018,4,0.018,5,0.009,7,0.116,26,2.781,27,0.555,29,0.602,30,0.001,31,0.43,32,0.183,33,0.663,34,1.724,47,0.548,83,4.073,95,0.13,101,0.013,103,0.001,104,0.001,127,0.963,165,0.794,208,2.871,355,5.413,404,1.826,405,2.7,595,2.573,596,2.344,1872,7.001,4205,3.821,4282,4.557,4283,5.713,4489,8.084,5708,5.587,5712,5.856,7180,5.856,18325,8.428,18353,8.638,21018,8.878,21118,13.471,21119,7.686,21120,9.158,21121,8.878,21122,8.878,21123,10.134,21124,7.686,21125,7.686,21126,7.686,21127,7.686,21128,7.686,21129,7.686,21130,7.105,21131,7.105,21132,7.105,21133,7.105,21134,6.722,21135,6.722,21136,6.722,21137,6.722,21138,6.722,21139,6.722,21140,6.722,21141,6.722]],["title/entities/UserLoginMigrationEntity.html",[380,1.445,12185,5.055]],["body/entities/UserLoginMigrationEntity.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.104,27,0.526,30,0.001,32,0.177,33,0.628,83,3.975,95,0.148,96,1.887,101,0.016,103,0.001,104,0.001,145,2.718,165,0.738,192,3.199,216,1.275,240,3.955,355,5.221,364,2.325,369,2.883,370,4.204,371,2.598,380,2.002,381,2.294,386,6.114,398,2.032,399,3.738,400,3.043,402,2.858,404,1.243,405,1.838,406,2.243,844,5.254,1639,4.39,2641,7.379,4989,4.916,6543,4.279,6544,4.133,6751,6.36,8469,6.898,11044,4.818,12185,7.005,16482,8.67,16483,8.67,18074,6.375,18353,8.178,21018,8.405,21120,8.67,21122,8.405,21134,6.032,21135,6.032,21136,6.032,21137,6.032,21138,6.032,21139,6.032,21140,6.032,21141,6.032,21142,12.992,21143,6.896,21144,6.896,21145,6.896,21146,6.896,21147,6.896,21148,6.896,21149,6.896,21150,6.896,21151,6.896,21152,8.711,21153,6.896,21154,6.896,21155,6.896,21156,6.896,21157,6.896,21158,6.896]],["title/classes/UserLoginMigrationError.html",[0,0.232,21159,5.947]],["body/classes/UserLoginMigrationError.html",[0,0.262,2,0.857,3,0.018,4,0.018,5,0.009,7,0.116,8,1.224,27,0.541,29,0.602,30,0.001,31,0.43,32,0.185,33,0.548,35,0.93,47,0.808,52,5.374,55,1.655,59,2.394,95,0.13,101,0.013,103,0.001,104,0.001,127,0.963,165,0.794,187,1.111,204,4.09,216,2.515,355,4.844,364,2.282,404,1.826,406,2.5,461,1.758,558,3.687,564,2.818,596,3.925,798,6.367,1013,5.52,1016,2.698,1142,5.251,1180,5.188,1216,4.442,1395,8.26,1396,7.137,1397,4.036,1398,7.217,1402,4.959,1403,4.261,1404,4.959,1405,4.959,1406,4.959,1407,4.959,1408,4.959,1409,4.606,1410,4.338,1416,4.829,4476,4.518,6833,4.829,7027,4.769,8744,6.436,13723,5.713,13758,8.487,18279,6.722,21015,8.487,21159,8.863,21160,7.686]],["title/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.232,4493,5.324]],["body/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.279,2,0.913,3,0.019,4,0.019,5,0.01,7,0.124,8,1.275,26,2.618,27,0.435,29,0.641,30,0.001,31,0.458,32,0.144,33,0.396,35,0.991,52,5.853,83,3.576,95,0.15,99,1.366,101,0.014,103,0.001,104,0.001,111,1.641,127,1.025,163,2.519,187,1.184,214,3.329,215,2.613,216,1.952,227,0.849,355,5.351,404,1.903,406,2.662,461,1.872,1216,3.207,1464,5.383,1465,6.032,1467,2.613,1469,6.115,4476,5.211,4493,8.268,8288,6.077,8289,6.317,8745,4.803,8746,5.019,9058,7.542,12208,8.166,13984,6.41,14855,7.159,18349,10.342,18350,10.342,18351,7.567,18352,10.801,18353,9.409,21015,9.789,21017,7.567,21161,8.185,21162,8.185,21163,8.185,21164,8.185,21165,8.185]],["title/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.232,20273,5.947]],["body/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.285,2,0.934,3,0.02,4,0.02,5,0.01,7,0.126,8,1.294,26,2.838,27,0.442,29,0.656,30,0.001,31,0.469,32,0.114,33,0.405,35,1.013,39,3.181,52,5.903,95,0.138,99,1.397,101,0.014,103,0.001,104,0.001,111,2.368,127,1.342,163,2.577,192,3.193,214,3.378,216,2.185,227,0.868,347,2.39,355,5.379,415,4.525,461,1.915,540,6.086,564,3.069,1216,3.28,1464,5.441,1465,6.097,1467,2.672,1469,6.167,4476,5.267,8288,6.142,8289,6.385,10340,6.556,10696,6.763,11843,9.258,12208,8.701,13412,7.323,13984,6.556,20273,9.37,21166,10.921,21167,8.372,21168,8.372,21169,8.372,21170,8.372]],["title/classes/UserLoginMigrationMandatoryParams.html",[0,0.232,21069,5.947]],["body/classes/UserLoginMigrationMandatoryParams.html",[0,0.405,2,1.103,3,0.023,4,0.023,5,0.012,7,0.149,27,0.408,30,0.001,32,0.134,52,5.632,95,0.153,101,0.017,103,0.001,104,0.001,165,0.931,347,2.403,355,5.308,364,1.802,373,6.37,374,3.158,376,2.263,467,3.117,4476,5.298,7330,7.538,11843,9.467,21069,10.393,21171,10.984,21172,9.894,21173,9.894]],["title/classes/UserLoginMigrationMapper.html",[0,0.232,21082,5.947]],["body/classes/UserLoginMigrationMapper.html",[0,0.285,2,0.932,3,0.02,4,0.02,5,0.01,7,0.126,8,1.292,27,0.441,29,0.838,30,0.001,31,0.599,32,0.145,33,0.517,35,1.295,39,2.25,52,3.96,95,0.152,99,1.394,101,0.014,103,0.001,104,0.001,217,1.392,227,1.109,234,1.357,355,5.377,529,5.13,627,4.038,982,4.165,1016,3.756,1790,3.528,4476,5.262,4489,8.03,18325,6.211,18353,6.366,21018,6.542,21052,10.422,21082,9.358,21083,10.052,21084,10.391,21120,6.749,21121,6.542,21122,6.542,21174,11.802,21175,7.724,21176,10.699,21177,10.699,21178,10.699,21179,8.355,21180,8.355,21181,10.699,21182,8.355,21183,8.355,21184,8.355,21185,8.355,21186,8.355,21187,8.355,21188,8.355,21189,8.355,21190,8.355]],["title/modules/UserLoginMigrationModule.html",[425,1.812,13913,5.181]],["body/modules/UserLoginMigrationModule.html",[0,0.239,3,0.017,4,0.017,5,0.008,30,0.001,95,0.168,101,0.012,103,0.001,104,0.001,187,1.015,191,3.89,192,2.091,355,3.831,425,2.886,427,2.535,428,2.727,429,2.807,430,2.796,431,2.784,432,3.985,433,4.093,437,8.924,438,5.871,442,3.815,443,2.749,444,2.683,449,3.783,450,2.882,766,2.935,1467,2.239,1548,8.756,1564,5.346,1567,4.815,3568,7.874,4476,3.128,4482,9.686,4483,10.111,4484,10.987,4593,3.545,5333,7.977,13913,10.935,14813,11.391,14817,9.814,15396,10.651,18532,5.876,21191,7.016,21192,7.016,21193,7.016,21194,7.016,21195,7.016]],["title/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.232,4494,5.181]],["body/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.283,2,0.926,3,0.02,4,0.02,5,0.01,7,0.125,8,1.287,26,2.833,27,0.439,29,0.65,30,0.001,31,0.465,32,0.145,33,0.402,35,1.005,52,5.885,59,2.586,95,0.151,99,1.386,101,0.014,103,0.001,104,0.001,111,1.665,127,1.04,163,2.555,187,1.201,192,2.474,214,3.36,215,2.65,216,1.97,227,0.861,355,5.369,404,1.92,406,2.701,461,1.899,1216,3.253,1464,5.42,1465,6.073,1467,2.65,1469,6.148,2644,6.309,4205,3.966,4282,4.923,4476,5.247,4494,8.119,4661,4.382,5511,5.604,8288,6.118,8289,6.36,8738,5.285,8740,5.913,8745,4.872,8746,5.091,12208,8.674,13984,6.502,15325,10.879,18399,7.676,18400,6.707,21015,9.855,21196,8.303]],["title/interfaces/UserLoginMigrationQuery.html",[334,0.731,21083,5.493]],["body/interfaces/UserLoginMigrationQuery.html",[3,0.025,4,0.025,5,0.013,7,0.157,30,0.001,32,0.141,33,0.591,39,3.613,47,0.927,52,4.919,101,0.017,103,0.001,104,0.001,165,0.958,334,1.115,336,2.484,355,4.912,4476,4.627,9272,9.077,21083,9.875,21197,10.378]],["title/injectables/UserLoginMigrationRepo.html",[105,0.91,14817,5.324]],["body/injectables/UserLoginMigrationRepo.html",[0,0.162,3,0.011,4,0.011,5,0.006,7,0.072,8,0.87,10,2.906,12,3.298,18,3.638,26,2.677,27,0.541,29,1.02,30,0.001,31,0.729,32,0.177,33,0.63,34,1.65,35,1.562,36,2.578,40,2.293,95,0.146,96,1.97,97,2.054,99,0.793,101,0.008,103,0,104,0,105,0.963,107,1.145,111,2.354,112,2.87,127,0.595,145,1.203,148,1.462,165,0.372,167,2.649,187,0.687,192,2.146,216,1.331,217,1.263,221,1.099,227,1.138,234,1.169,355,4.19,359,2.51,380,2.062,398,1.399,404,1.297,595,1.59,596,3.897,661,3.654,844,2.163,878,5.03,884,3.393,885,5.268,915,2.633,1467,1.516,1790,3.671,2051,2.706,2343,9.006,2345,5.127,2346,5.127,2347,5.127,2348,5.127,2349,5.03,2350,5.03,2351,5.127,2352,5.03,2353,5.127,2354,3.453,2355,5.58,2356,3.985,2357,4.419,2359,5.234,2360,3.382,2362,5.58,2363,3.382,2365,3.382,2367,3.109,2368,5.03,2369,3.382,2371,3.382,2373,5.127,2377,5.127,2379,4.859,2380,5.03,2382,3.382,2384,2.847,2385,2.912,2386,3.382,2388,3.382,2390,3.319,2391,3.382,2397,3.206,4205,2.931,4369,3.065,4489,8.148,4491,4.468,5862,3.453,5863,3.453,5864,3.453,5865,3.453,5866,3.453,5867,3.453,5868,3.453,5869,3.453,5870,3.453,5878,3.619,8469,2.567,8997,4.391,9007,3.619,12185,8.729,12186,3.837,12187,3.837,14025,4.391,14052,6.656,14817,5.638,16482,3.837,16483,3.837,18121,6.656,18131,6.656,18140,3.837,18142,4.154,18143,4.154,18325,3.531,18353,5.486,21018,5.638,21120,5.816,21121,3.719,21122,5.638,21152,10.539,21198,9.702,21199,4.75,21200,4.75,21201,4.75,21202,4.75,21203,4.75,21204,4.75,21205,4.75,21206,4.75,21207,4.75,21208,4.75,21209,4.75,21210,4.75,21211,4.75,21212,4.75,21213,4.75,21214,7.2,21215,7.2,21216,4.75,21217,4.75,21218,4.75,21219,4.75,21220,4.75]],["title/classes/UserLoginMigrationResponse.html",[0,0.232,21084,5.493]],["body/classes/UserLoginMigrationResponse.html",[0,0.232,2,0.761,3,0.016,4,0.016,5,0.008,7,0.103,27,0.525,29,0.535,30,0.001,31,0.382,32,0.173,33,0.636,34,1.954,47,0.819,52,6.418,83,4.237,95,0.088,101,0.011,103,0.001,104,0.001,127,0.855,165,0.733,355,5.566,364,2.264,368,3.666,375,4.584,376,1.561,379,2.817,405,2.493,467,2.801,595,2.286,1013,4.285,1403,6.367,1477,6.038,2074,7.558,2702,4.216,3104,5.204,3264,6.962,4476,5.779,7921,8.184,10318,7.558,18325,7.937,18349,7.836,18350,7.836,18353,8.134,21018,8.36,21084,9.721,21120,8.624,21121,8.36,21122,8.36,21130,6.31,21131,6.31,21132,6.31,21133,6.31,21134,5.97,21135,5.97,21136,5.97,21137,5.97,21138,5.97,21139,5.97,21140,5.97,21141,5.97,21221,11.982,21222,6.31,21223,9.357,21224,6.826,21225,6.826,21226,6.826,21227,6.826,21228,6.826]],["title/injectables/UserLoginMigrationRevertService.html",[105,0.91,4484,5.493]],["body/injectables/UserLoginMigrationRevertService.html",[0,0.293,3,0.02,4,0.02,5,0.01,7,0.13,8,1.317,27,0.449,29,0.854,30,0.001,31,0.611,32,0.148,33,0.527,35,1.042,36,2.338,52,5.672,95,0.162,99,1.436,101,0.014,103,0.001,104,0.001,105,1.458,107,2.074,111,2.185,112,2.637,127,1.365,129,7.806,132,7.721,187,1.244,191,4.77,192,2.564,216,2.016,221,2.523,355,5.413,461,1.968,4476,5.335,4481,6.951,4482,9.443,4484,8.806,4489,8.117,4491,5.34,12184,6.128,13315,7.206,16335,7.526,21229,10.466,21230,8.605,21231,10.901,21232,8.605,21233,10.901,21234,8.605,21235,8.605,21236,8.605]],["title/injectables/UserLoginMigrationRule.html",[105,0.91,1899,5.694]],["body/injectables/UserLoginMigrationRule.html",[0,0.267,3,0.019,4,0.019,5,0.009,7,0.119,8,1.241,27,0.472,29,0.897,30,0.001,31,0.642,32,0.165,33,0.554,35,1.244,95,0.162,101,0.013,103,0.001,104,0.001,105,1.375,107,1.892,116,4.031,127,0.983,187,1.135,199,4.33,214,2.475,215,2.506,216,1.452,217,1.337,227,1.066,347,2.618,355,4.884,380,2.802,461,3.094,806,3.196,1795,6.569,1823,8.031,1844,4.705,1861,7.366,1899,8.606,2002,6.63,2006,6.376,2013,5.215,3385,6.827,3386,5.298,3389,6.725,3391,5.138,3392,5.298,3393,6.935,3394,5.836,4489,8.63,5987,5.59,18183,7.257,21237,12.153,21238,7.85,21239,7.85,21240,7.85,21241,7.85]],["title/classes/UserLoginMigrationSearchListResponse.html",[0,0.232,21085,5.947]],["body/classes/UserLoginMigrationSearchListResponse.html",[0,0.263,2,0.86,3,0.018,4,0.018,5,0.009,7,0.117,27,0.517,29,0.604,30,0.001,31,0.432,32,0.183,33,0.607,52,4.816,55,3.017,56,6.179,59,3.164,70,6.378,95,0.146,101,0.013,103,0.001,104,0.001,127,0.966,145,1.954,163,3.86,165,0.796,355,5.041,364,2.199,376,1.765,404,1.831,461,1.765,467,2.665,469,3.387,596,3.682,1005,7.235,1006,5.39,1007,8.051,1008,6.961,1009,5.787,1011,3.898,1013,5.202,1014,3.679,1015,4.315,1016,2.709,1017,5.39,1018,6.555,1019,5.901,1020,5.049,1021,4.104,1022,5.39,1023,5.39,1025,4.847,1026,4.277,4476,4.53,9265,7.132,9266,7.132,16121,7.132,21084,10.607,21085,8.886,21221,9.391]],["title/classes/UserLoginMigrationSearchParams.html",[0,0.232,21052,5.694]],["body/classes/UserLoginMigrationSearchParams.html",[0,0.402,2,1.093,3,0.023,4,0.023,5,0.012,7,0.148,27,0.404,30,0.001,32,0.133,33,0.571,39,3.415,47,0.842,52,5.599,95,0.152,101,0.016,103,0.001,104,0.001,165,0.925,355,5.291,364,1.785,374,3.127,375,4.499,376,2.241,470,4.941,471,4.788,4476,5.267,9267,8.569,9270,8.569,21052,9.892,21171,10.92,21242,9.798]],["title/injectables/UserLoginMigrationService.html",[105,0.91,4482,4.842]],["body/injectables/UserLoginMigrationService.html",[0,0.232,3,0.008,4,0.008,5,0.004,7,0.049,8,0.648,26,2.261,27,0.473,29,0.899,30,0.001,31,0.643,32,0.156,33,0.555,35,1.361,36,2.664,39,0.88,47,0.886,48,1.541,55,1.468,59,2.122,83,2.859,95,0.137,99,0.546,101,0.005,102,1.641,103,0,104,0,105,0.717,107,0.788,111,2.378,112,2.931,127,0.671,129,4.89,132,4.396,145,2.906,148,1.006,167,3.791,187,0.473,189,5.913,191,1.813,192,2.03,204,1.819,216,1.608,217,1.656,221,2.999,227,1.166,234,1.897,235,1.845,264,3.312,305,2.662,347,2.363,355,5.258,369,0.726,450,1.343,571,2.054,574,2.353,1345,1.297,1353,1.578,1567,2.244,1944,3.679,2130,1.428,2131,1.598,2132,1.541,2440,3.054,3104,1.481,3601,2.86,3859,1.829,4205,3.937,4476,5.209,4479,4.689,4482,3.817,4483,7.336,4489,8.359,4491,7.946,4494,2.491,4496,5.706,4498,5.335,4501,5.065,4502,4.689,4593,1.652,4661,1.726,4737,5.428,6741,2.56,7074,4.128,9058,2.11,9646,2.641,11196,7.027,11217,5.158,11224,4.198,11257,3.023,11843,5.858,12184,2.328,12641,3.023,13073,5.503,13315,2.738,13651,2.738,13926,5.959,13998,7.12,13999,7.12,14000,7.849,14101,3.023,14110,8.041,14116,3.023,14122,2.738,14123,7.285,14817,7.728,14822,2.641,14823,4.955,16335,2.86,17074,2.641,17435,4.689,17945,3.817,18320,3.023,18325,2.431,18366,6.298,18367,3.023,18385,4.955,18902,4.689,19373,2.56,19473,3.023,19506,3.023,20268,4.689,21121,4.198,21122,2.56,21229,10.218,21243,5.361,21244,5.361,21245,5.361,21246,5.361,21247,5.361,21248,5.361,21249,5.361,21250,3.27,21251,5.361,21252,3.27,21253,5.361,21254,3.27,21255,5.361,21256,3.27,21257,5.361,21258,3.27,21259,5.361,21260,3.27,21261,5.361,21262,3.27,21263,4.955,21264,3.023,21265,5.361,21266,3.27,21267,5.361,21268,3.27,21269,5.361,21270,3.27,21271,5.361,21272,5.361,21273,5.361,21274,5.361,21275,6.813,21276,2.641,21277,3.27,21278,5.361,21279,5.361,21280,5.361,21281,3.27,21282,5.361,21283,3.27,21284,5.361,21285,3.27,21286,3.27,21287,5.361,21288,3.27,21289,3.27,21290,3.27,21291,5.361,21292,3.27,21293,3.27,21294,3.27,21295,5.361,21296,4.955,21297,3.27]],["title/classes/UserLoginMigrationStartLoggable.html",[0,0.232,17440,5.694]],["body/classes/UserLoginMigrationStartLoggable.html",[0,0.295,2,0.966,3,0.02,4,0.02,5,0.01,7,0.131,8,1.322,26,2.86,27,0.451,29,0.678,30,0.001,31,0.485,32,0.118,33,0.419,35,1.048,39,3.232,52,5.977,95,0.141,99,1.445,101,0.014,103,0.001,104,0.001,111,1.736,127,1.085,163,2.665,192,3.262,214,3.451,215,2.764,216,2.024,227,0.898,355,5.338,415,4.681,540,6.295,1216,3.393,1464,5.527,1465,6.194,1467,2.764,1469,6.244,1477,5.588,4476,5.351,8288,6.24,8289,6.487,10696,6.996,12208,8.81,13984,6.782,17440,9.167,18288,8.006,18289,8.006,21166,11.095,21298,8.66]],["title/injectables/UserLoginMigrationUc.html",[105,0.91,21024,5.493]],["body/injectables/UserLoginMigrationUc.html",[0,0.128,3,0.009,4,0.009,5,0.005,7,0.057,8,0.726,26,2.57,27,0.411,29,0.781,30,0.001,31,0.559,32,0.136,33,0.482,34,0.641,35,1.133,36,2.33,39,2.926,47,0.956,52,2.85,59,2.667,95,0.16,99,0.629,100,1.262,101,0.006,103,0,104,0,105,0.804,107,0.908,111,2.351,112,2.631,127,0.753,145,1.9,148,1.16,163,2.88,167,2.761,187,0.545,189,5.187,192,3.119,204,2.905,216,2.01,217,1.362,221,2.658,227,0.778,234,1.765,247,1.476,305,2.841,349,2.543,355,5.046,461,2.14,511,1.904,529,3.261,549,4.127,564,1.381,766,1.576,784,2.037,806,1.534,843,1.663,905,1.569,954,2.801,1014,4.462,1142,3.966,1180,1.622,1216,2.939,1345,1.495,1369,2.053,1396,3.425,1423,3.935,1467,1.203,1549,7.78,1798,3.393,1799,2.284,1814,2.586,1852,2.539,1884,5.656,1961,4.201,1982,2.258,2303,2.437,2356,3.082,2357,3.9,2538,2.683,2725,1.707,2783,2.258,2848,4.133,3580,2.448,4184,2.543,4205,3.361,4476,4.666,4478,3.044,4482,7.453,4483,7.78,4489,4.841,4491,6.189,4495,2.951,4497,3.483,4614,2.871,4671,7.063,8369,2.284,8443,2.503,8452,3.778,9674,2.633,9675,2.739,10027,2.801,10708,3.156,11156,2.739,11415,7.973,11435,4.371,11568,5.25,11643,6.098,13063,3.296,13089,6.537,13122,7.558,13381,5.259,13829,5.558,13951,5.342,14424,3.483,14822,3.044,15277,4.857,15339,4.857,15395,8.195,15396,7.809,15420,2.951,15421,3.296,15434,3.044,15452,3.156,15506,3.483,15512,3.296,15513,3.296,15673,5.558,15844,2.951,16125,3.044,16204,3.483,16207,5.558,16212,3.483,16226,3.296,16227,8.723,16228,3.483,16229,5.558,16230,5.558,16232,3.483,16233,3.483,16327,3.483,16410,3.483,16458,4.708,16481,5.259,16482,6.917,16483,8.454,16484,7.49,16490,3.296,18303,3.296,18325,9.012,21024,4.857,21033,5.558,21034,5.558,21083,6.917,21159,5.259,21299,10.465,21300,5.558,21301,7.502,21302,3.768,21303,3.768,21304,6.013,21305,3.768,21306,6.013,21307,3.768,21308,5.558,21309,3.768,21310,3.768,21311,3.768,21312,3.768,21313,3.768,21314,7.502,21315,3.768,21316,3.768,21317,3.768,21318,3.768,21319,3.768,21320,8.563,21321,3.768,21322,3.768,21323,6.013,21324,3.483,21325,3.483,21326,3.768,21327,6.013,21328,6.013,21329,6.013,21330,3.768,21331,3.768,21332,3.768,21333,3.768,21334,3.768,21335,3.768,21336,3.768,21337,9.357,21338,3.768,21339,6.013,21340,3.768]],["title/classes/UserMapper.html",[0,0.232,21341,5.947]],["body/classes/UserMapper.html",[0,0.312,2,1.021,3,0.022,4,0.022,5,0.011,7,0.138,8,1.369,27,0.377,29,0.717,30,0.001,31,0.513,32,0.124,33,0.443,34,1.557,35,1.108,95,0.146,99,1.527,101,0.015,103,0.001,104,0.001,227,0.949,234,1.486,380,1.945,461,2.942,496,4.784,627,3.776,851,4.364,852,4.364,853,4.723,854,4.593,4198,6.394,4205,3.085,4210,5.75,4369,5.905,4379,8.005,7083,7.393,11028,7.665,12583,7.167,12584,6.973,12585,6.803,12586,7.167,17518,9.489,17522,9.489,18140,7.393,20925,8.46,20926,8.46,20927,8.46,20932,8.46,20933,8.46,20934,8.46,20935,8.46,20936,8.46,20965,10.771,20967,8.46,21341,9.91,21342,9.152,21343,9.152,21344,9.152,21345,9.152]],["title/classes/UserMatchListResponse.html",[0,0.232,12784,5.694]],["body/classes/UserMatchListResponse.html",[0,0.353,2,0.719,3,0.015,4,0.015,5,0.008,7,0.097,27,0.486,29,0.505,30,0.001,31,0.504,32,0.181,33,0.57,34,1.096,39,1.735,47,0.799,55,2.946,56,5.857,59,2.801,70,6.046,95,0.151,101,0.015,103,0.001,104,0.001,127,0.807,145,1.632,163,3.628,165,0.704,167,2.371,200,2.007,355,2.59,364,2.041,369,1.43,374,2.057,375,3.425,376,1.474,379,2.767,404,1.62,405,1.717,415,3.483,416,4.102,461,2.866,467,3.287,469,2.829,496,2.721,538,2.904,577,5.845,596,3.418,728,2.464,851,4.288,852,4.288,1000,3.661,1007,7.682,1008,6.599,1009,5.122,1011,3.256,1013,4.743,1014,3.073,1015,3.604,1016,2.262,1017,4.502,1018,5.802,1019,5.223,1020,4.218,1021,3.428,1022,4.502,1023,4.502,1025,4.049,1026,3.572,1031,2.818,1639,7.134,3104,2.919,3105,4.102,3106,3.637,3110,3.212,3282,4.049,4476,4.009,5022,4.102,5477,4.102,9538,4.281,9539,4.684,9540,4.281,9541,4.684,10659,4.423,10677,4.502,10678,4.589,10679,5.45,12008,4.91,12009,4.349,12026,7.53,12049,5.397,12784,7.53,12834,10.009,12836,7.89,12839,5.397,12840,5.397,12841,5.397,12842,5.397,12906,9.058,21346,8.312,21347,5.957,21348,6.444,21349,6.444,21350,5.636]],["title/classes/UserMatchMapper.html",[0,0.232,12776,5.694]],["body/classes/UserMatchMapper.html",[0,0.246,2,0.805,3,0.017,4,0.017,5,0.009,7,0.109,8,1.174,27,0.401,29,0.761,30,0.001,31,0.615,32,0.132,33,0.47,35,1.176,39,1.943,59,2.248,95,0.158,99,1.205,100,3.254,101,0.012,103,0.001,104,0.001,167,4.043,217,1.645,227,1.31,234,1.172,277,3.922,305,2.056,307,4.535,309,6.319,319,2.157,369,1.602,461,2.806,529,4.224,540,5.247,558,3.463,627,3.878,738,3.752,851,3.442,852,3.442,975,5.387,982,3.598,3105,4.594,3106,4.073,3146,4.795,3147,4.657,4476,4.899,4571,5.296,4572,5.14,10659,4.953,10693,9.844,12008,7.404,12009,6.559,12010,10.606,12055,9.495,12646,5.652,12776,8.139,12778,6.313,12834,9.204,12836,8.371,12859,5.652,12861,6.044,12913,5.652,17413,8.5,17536,8.984,17541,6.672,17542,6.672,17543,6.672,21351,10.987,21352,7.217,21353,9.718,21354,7.217,21355,7.217,21356,7.217,21357,7.217,21358,9.718,21359,7.217,21360,7.217,21361,7.217,21362,7.217,21363,9.718,21364,7.217,21365,7.217,21366,7.217,21367,7.217,21368,7.217]],["title/classes/UserMatchResponse.html",[0,0.232,12834,5.324]],["body/classes/UserMatchResponse.html",[0,0.345,2,0.689,3,0.015,4,0.015,5,0.007,7,0.093,27,0.511,29,0.484,30,0.001,31,0.567,32,0.179,33,0.489,34,1.485,39,2.725,47,0.902,55,2.18,56,4.188,70,4.322,95,0.149,101,0.015,103,0,104,0,127,0.774,163,2.686,165,0.684,167,2.273,200,2.719,355,3.508,364,2.194,369,1.937,374,1.972,375,3.325,376,1.413,379,2.73,404,1.113,405,2.326,415,3.339,416,3.932,461,3.069,467,3.248,469,2.712,496,2.608,538,3.933,577,6.549,595,2.068,728,3.338,851,5.533,852,5.533,1000,3.554,1007,5.352,1008,3.339,1009,3.519,1013,5.038,1025,3.881,1026,3.424,1031,3.447,1403,3.424,1639,8.05,3104,3.954,3105,5.556,3106,4.926,3110,4.351,3282,5.484,3795,3.625,4476,5.638,5022,5.556,5477,5.556,9538,4.104,9539,4.49,9540,4.104,9541,4.49,10659,6.947,10677,6.098,10678,6.216,10679,6.667,12008,7.712,12009,6.832,12026,7.31,12049,5.173,12784,5.173,12834,9.902,12836,8.841,12839,5.173,12840,5.173,12841,5.173,12842,5.173,12906,10.15,21346,11.69,21347,5.71,21350,7.634,21369,6.177,21370,6.177,21371,6.177,21372,6.177,21373,6.177,21374,6.177,21375,6.177]],["title/interfaces/UserMetdata.html",[334,0.731,9677,5.324]],["body/interfaces/UserMetdata.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,26,1.868,30,0.001,31,0.351,32,0.145,34,1.065,36,2.501,47,0.926,51,4.28,55,0.854,72,1.796,95,0.158,99,0.662,101,0.007,103,0,104,0,105,0.837,111,2.519,112,2.57,127,0.497,130,5.236,138,2.735,139,4.842,140,4.65,158,6.256,163,3.661,165,0.49,167,2.304,187,0.573,188,4.207,190,2.947,197,2.491,200,2.744,201,3.947,216,1.885,217,1.756,221,3.088,227,1.234,234,1.655,247,2.453,284,5.185,305,2.51,316,4.458,318,2.947,334,1.031,336,0.949,347,0.802,427,1.432,461,0.907,574,1.741,688,2.031,738,2.061,766,2.619,1166,4.227,1905,2.403,2210,6.9,2280,2.259,2439,2.326,2468,2.376,2633,3.003,4205,1.336,4324,4.814,4571,4.227,4572,2.823,4593,2.003,4737,4.506,4748,4.884,5034,3.021,5209,2.634,5462,2.77,5697,5.077,5735,4.374,5799,2.676,5800,4.159,5815,5.077,5875,4.458,5966,2.77,6039,5.767,6057,5.154,6074,4.814,6077,2.882,6091,4.77,6100,4.756,6473,3.636,6476,4.874,6477,2.77,6580,2.882,6629,3.105,7074,5.025,7080,4.225,7271,3.885,7803,2.558,8369,2.403,8528,2.823,8586,3.021,8608,2.882,8776,4.802,8801,6.274,8917,2.823,8920,6.958,8926,5.154,8955,3.021,9627,3.021,9628,3.203,9629,3.203,9630,3.203,9631,3.203,9632,3.203,9633,2.823,9634,3.203,9647,5.324,9649,3.203,9652,3.203,9654,3.203,9656,3.203,9657,7.117,9659,3.203,9661,3.203,9663,3.203,9665,3.203,9667,8.359,9668,3.203,9670,3.203,9672,3.203,9674,2.77,9675,2.882,9676,3.203,9677,6.075,9678,6.9,9679,4.902,9680,5.057,9681,5.057,9682,7.749,9683,5.057,9684,3.203,9685,5.057,9686,3.203,9687,3.203,9688,5.057,9689,3.203,9690,3.203,9691,5.057,9692,3.203,9693,3.203,9694,3.203,9695,3.203,9696,3.203,9697,3.203,9698,3.203,9699,3.203,9700,3.203,9701,3.203,9702,6.266,9703,3.203,9704,3.203,9705,3.203,9706,3.203,9707,3.203,9708,3.203,9709,3.203,9710,3.203,9711,3.203,9712,3.203,9713,3.203,9714,5.057,9715,3.203,9716,3.105,9717,3.203,9718,4.159,9719,2.676,9720,3.105,9721,3.105,9722,3.203,9723,5.057,9724,3.203,9725,5.057,9726,3.203,9727,3.105,9728,3.203,9729,3.203,9730,3.203,9731,3.203,9732,3.203,9733,3.203,9734,3.203,9735,3.105,9736,3.105]],["title/controllers/UserMigrationController.html",[481,2.611,21025,5.947]],["body/controllers/UserMigrationController.html",[0,0.286,3,0.02,4,0.02,5,0.01,7,0.127,8,1.297,27,0.347,29,0.659,30,0.001,31,0.471,32,0.114,33,0.407,35,1.018,36,2.303,52,5.092,95,0.169,100,2.815,101,0.014,102,4.219,103,0.001,104,0.001,111,1.685,112,2.609,187,1.216,206,4.278,215,2.683,216,1.986,217,1.398,221,1.946,227,0.872,355,4.757,364,1.531,376,1.923,447,3.485,461,1.923,481,3.228,483,4.009,529,3.654,555,4.371,1016,3.771,2303,4.798,2727,4.033,4476,4.789,12780,7.353,16125,6.791,16458,8.411,16469,9.913,16473,8.996,16478,10.91,20835,7.353,21024,8.677,21025,9.395,21030,9.93,21031,7.772,21376,10.742,21377,8.407,21378,10.742,21379,8.407,21380,10.742,21381,8.407,21382,8.407,21383,8.407,21384,8.407,21385,8.407,21386,8.407,21387,8.407,21388,8.407]],["title/classes/UserMigrationIsNotEnabled.html",[0,0.232,21389,6.286]],["body/classes/UserMigrationIsNotEnabled.html",[0,0.325,2,1.064,3,0.023,4,0.023,5,0.012,7,0.144,8,1.404,27,0.393,30,0.001,35,1.155,52,5.943,95,0.123,101,0.016,103,0.001,104,0.001,192,2.844,214,3.665,227,0.99,461,2.183,1188,4.496,1216,3.739,1464,5.774,1465,6.47,1467,3.046,1469,6.461,4476,5.183,6712,6.157,8288,6.518,8289,6.776,10691,7.093,12927,6.549,21389,10.746,21390,11.625,21391,9.542,21392,9.542,21393,9.542]],["title/classes/UserMigrationMapper.html",[0,0.232,16123,5.947]],["body/classes/UserMigrationMapper.html",[0,0.326,2,1.067,3,0.023,4,0.023,5,0.012,7,0.144,8,1.406,27,0.394,29,0.749,30,0.001,31,0.536,32,0.13,33,0.463,35,1.158,95,0.149,100,3.203,101,0.016,103,0.001,104,0.001,217,1.245,227,0.992,234,1.553,355,3.844,627,3.851,982,4.768,1016,4.087,2170,6.172,4593,4.833,13951,9.3,14834,10.182,14835,10.182,16115,8.366,16119,11.21,16123,10.182,21175,8.842,21394,11.642,21395,9.565,21396,9.565]],["title/classes/UserMigrationResponse.html",[0,0.232,16119,5.694]],["body/classes/UserMigrationResponse.html",[0,0.34,2,1.114,3,0.024,4,0.024,5,0.012,7,0.151,27,0.493,29,0.783,30,0.001,31,0.56,32,0.162,33,0.483,47,0.852,101,0.017,103,0.001,104,0.001,127,1.252,165,0.936,405,3.185,595,3.346,2170,8.252,2186,8.368,16119,11.346,21222,9.237,21397,12.789,21398,9.992,21399,9.992,21400,9.992]],["title/injectables/UserMigrationService.html",[105,0.91,15396,5.324]],["body/injectables/UserMigrationService.html",[0,0.11,3,0.008,4,0.008,5,0.004,7,0.049,8,0.643,26,1.663,27,0.488,29,0.804,30,0.001,31,0.575,32,0.158,33,0.497,35,1.243,36,2.347,47,1.001,52,1.537,55,0.699,59,1.659,66,7.063,83,0.992,85,5.06,94,4.521,95,0.152,99,0.541,101,0.005,102,1.628,103,0,104,0,105,0.712,107,0.782,111,2.681,112,2.645,127,0.667,128,2.62,129,4.866,132,3.436,144,1.863,150,2.346,154,1.485,165,0.417,167,1.193,187,0.469,189,2.952,191,1.798,192,2.337,204,1.807,216,2.332,217,1.628,221,2.596,227,1.135,234,1.922,256,2.837,305,1.93,307,2.038,309,3.896,319,2.344,355,4.935,369,0.72,461,0.742,784,1.753,818,7.492,1083,2.62,1216,1.271,1345,2.113,1369,1.767,1467,1.035,1583,2.123,1732,2.411,1852,2.248,2072,4.371,2097,2.411,2130,1.417,2131,1.585,2132,1.528,2170,4.371,2303,3.773,2356,2.783,2357,3.572,2362,3.063,2643,1.884,2644,1.739,3104,1.469,3405,3.655,3580,2.168,3859,1.814,4476,5.351,4593,1.639,4611,2.62,4671,3.594,4737,5.712,4866,2.54,5442,1.848,5511,2.189,6173,4.501,7027,2.013,7035,4.733,7074,6.201,7081,2.62,7363,3.346,7927,2.54,8443,6.822,8452,3.346,9058,2.093,10027,2.411,11196,7.003,11217,6.092,11828,2.411,11944,3.959,12311,3.871,12573,2.716,12605,5.926,13062,4.17,13082,4.923,13374,2.62,13651,2.716,13658,2.716,13778,2.31,13951,7.987,14104,4.658,14821,2.837,14822,2.62,14831,8.605,15396,4.17,15408,6.996,15439,4.923,15457,6.263,15477,6.263,15478,2.998,15994,2.471,16084,4.923,16458,7.701,16461,5.674,16462,5.674,16475,2.998,16481,5.926,16482,2.62,16483,2.62,16484,6.859,16490,2.837,18313,6.263,18317,6.263,18325,9.218,21121,6.141,21229,10.497,21264,4.923,21296,2.998,21300,4.923,21308,4.923,21401,7.842,21402,5.325,21403,5.325,21404,5.325,21405,7.842,21406,5.325,21407,3.243,21408,3.243,21409,3.243,21410,3.243,21411,5.325,21412,3.243,21413,5.325,21414,7.842,21415,3.243,21416,3.243,21417,3.243,21418,5.325,21419,3.243,21420,3.243,21421,8.661,21422,3.243,21423,6.775,21424,3.243,21425,3.243,21426,3.243,21427,3.243,21428,3.243,21429,3.243,21430,3.243,21431,6.775,21432,5.325,21433,3.243,21434,3.243,21435,3.243,21436,3.243,21437,3.243,21438,3.243,21439,3.243,21440,3.243,21441,3.243,21442,3.243,21443,3.243,21444,6.775,21445,3.243,21446,3.243,21447,3.243,21448,3.243,21449,3.243,21450,3.243,21451,3.243,21452,3.243,21453,3.243,21454,3.243,21455,3.243,21456,3.243,21457,5.325,21458,3.243,21459,3.243,21460,3.243,21461,3.243,21462,5.325,21463,3.243,21464,3.243,21465,3.243,21466,3.243,21467,3.243,21468,3.243,21469,3.243,21470,3.243,21471,3.243,21472,3.243,21473,3.243,21474,3.243,21475,3.243,21476,3.243,21477,3.243,21478,3.243]],["title/modules/UserModule.html",[425,1.812,3568,4.272]],["body/modules/UserModule.html",[0,0.27,3,0.019,4,0.019,5,0.01,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,187,1.149,191,4.403,192,2.367,425,3.07,427,2.869,428,3.087,429,3.178,430,3.165,431,3.151,432,4.239,433,4.354,437,9.246,438,6.082,441,8.309,442,4.143,443,3.112,444,3.038,449,4.108,450,3.263,1467,2.535,1547,9.651,1564,6.052,3568,8.953,4646,7.343,4737,8.052,5333,8.264,20884,10.873,21479,7.943,21480,7.943,21481,7.943,21482,7.943,21483,7.943,21484,7.343,21485,7.343,21486,7.943]],["title/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.232,15422,5.947]],["body/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.249,2,0.817,3,0.017,4,0.017,5,0.009,7,0.111,8,1.185,26,2.507,27,0.523,29,0.574,30,0.001,31,0.41,32,0.168,33,0.354,35,0.886,47,0.961,48,5.571,59,2.281,95,0.142,99,1.222,101,0.012,103,0.001,104,0.001,111,2.219,127,1.229,144,2.699,163,2.254,165,0.769,192,2.182,204,2.484,214,3.094,216,2.514,227,0.759,319,2.933,404,1.768,406,2.382,417,5.323,461,1.675,511,5.592,596,3.607,1216,4.336,1464,5.097,1465,5.712,1467,2.337,1469,5.855,3049,5.323,3849,5.579,4661,3.865,5438,4.792,5442,5.59,6712,4.725,6833,4.601,8288,5.754,8289,5.982,8443,7.353,8446,6.405,8452,7.429,8456,5.443,8738,4.661,8740,5.214,8741,6.405,8745,4.296,8746,4.49,11156,7.133,11432,9.23,11434,6.405,15341,8.583,15342,8.583,15343,8.218,15377,6.769,15378,6.132,15422,8.583,15446,6.405,21487,11.068,21488,11.068,21489,7.322,21490,7.322,21491,7.322,21492,7.322,21493,7.322,21494,7.322]],["title/classes/UserParams.html",[0,0.232,850,5.493]],["body/classes/UserParams.html",[0,0.401,2,1.087,3,0.023,4,0.023,5,0.012,7,0.147,27,0.402,30,0.001,32,0.133,34,2.003,39,3.408,47,0.84,95,0.151,101,0.016,103,0.001,104,0.001,165,0.923,361,6.529,364,1.776,368,4.615,369,2.614,370,3.88,371,3.248,374,3.112,376,2.23,379,2.209,461,2.694,467,3.09,850,9.514,1000,4.795,3795,5.721,21495,9.75,21496,9.75]],["title/injectables/UserRepo.html",[105,0.91,441,4.075]],["body/injectables/UserRepo.html",[0,0.125,3,0.009,4,0.009,5,0.004,7,0.056,8,0.713,10,2.382,12,2.703,18,2.982,26,2.198,27,0.489,29,0.893,30,0.001,31,0.639,32,0.155,33,0.551,34,1.257,35,1.41,36,2.749,39,1.589,40,2.849,47,0.793,48,3.982,49,1.449,55,0.793,56,1.766,59,1.838,70,1.823,72,2.674,95,0.133,96,1.615,97,1.592,98,2.183,99,0.614,101,0.006,103,0,104,0,105,0.79,107,0.888,111,1.481,112,2.909,144,1.013,148,1.133,167,2.172,187,0.532,192,2.518,217,1.668,221,2.494,227,1.075,234,0.958,247,3.624,305,1.049,307,3.709,309,5.32,319,2.208,367,2.815,369,1.31,371,1.628,380,0.782,381,1.963,398,1.085,404,1.064,425,1.573,441,3.538,461,2.372,496,3.568,558,1.766,577,4.769,596,2.578,692,4.353,701,3.49,731,2.919,779,2.737,844,3.849,851,1.756,852,1.756,853,3.046,854,2.962,877,6.084,879,6.829,881,5.456,883,2.504,884,2.781,885,3.733,905,1.533,908,2.258,909,2.285,910,2.258,911,2.285,913,2.258,914,2.285,915,2.041,919,2.805,929,3.22,1008,1.99,1015,2.059,1166,1.766,1167,4.06,1174,6.143,1187,3.523,1188,3.481,1189,3.481,1190,3.682,1191,2.007,1192,2.527,1195,2.805,1345,2.342,1498,2.232,1852,1.555,1854,2.446,2144,3.331,2384,3.538,3090,4,3110,3.682,3427,4.051,4205,1.989,4428,2.974,4431,2.313,4435,3.984,4659,6.145,4661,1.943,5209,5.614,5429,4.835,5880,4.908,6612,2.207,6677,3.084,6782,2.805,6901,5.261,6902,5.122,6912,4.388,6931,2.677,6932,2.677,6974,4.622,8894,4.497,9876,2.805,10293,3.301,10379,6.462,10969,3.22,10970,3.22,11981,3.404,12016,9.025,12017,2.622,12044,3.22,12055,6.826,12859,2.883,12913,2.883,13001,3.404,13012,3.084,13013,3.404,13015,3.404,13020,3.22,13021,3.404,13778,2.622,13814,4.943,20174,5.163,20176,5.163,20887,5.456,20894,5.456,20913,3.404,20916,3.404,20922,3.404,20924,3.404,21497,3.682,21498,5.456,21499,5.456,21500,7.388,21501,5.456,21502,3.682,21503,5.456,21504,3.682,21505,3.682,21506,3.682,21507,3.682,21508,3.682,21509,3.682,21510,3.682,21511,3.682,21512,3.682,21513,3.682,21514,3.682,21515,3.682,21516,3.682,21517,5.456,21518,3.682,21519,3.682,21520,5.903,21521,5.903,21522,5.903,21523,3.682,21524,3.682,21525,7.388,21526,3.682,21527,3.682,21528,3.682,21529,5.903,21530,3.682,21531,3.682,21532,3.084,21533,5.903,21534,3.682,21535,3.682,21536,5.903,21537,3.682,21538,3.682,21539,5.903,21540,5.903,21541,5.903,21542,5.903,21543,5.903,21544,5.903,21545,5.903,21546,7.388,21547,3.682,21548,3.682,21549,3.682,21550,3.682,21551,3.682,21552,3.682,21553,5.456,21554,3.682]],["title/injectables/UserRule.html",[105,0.91,1900,5.694]],["body/injectables/UserRule.html",[0,0.273,3,0.019,4,0.019,5,0.01,7,0.121,8,1.259,27,0.477,29,0.907,30,0.001,31,0.648,32,0.167,33,0.56,35,1.262,95,0.157,101,0.013,103,0.001,104,0.001,105,1.394,107,1.934,116,4.055,127,1.005,187,1.16,199,4.375,214,2.529,215,2.561,216,1.483,217,1.507,227,1.081,347,2.479,380,2.855,461,3.239,806,3.266,1795,6.623,1823,8.078,1844,4.808,1861,7.428,1900,8.728,2002,6.725,2006,6.467,2013,5.33,3385,6.924,3386,5.414,3389,6.821,3392,5.414,3393,7.034,3394,5.964,21555,8.022,21556,8.022,21557,8.022,21558,8.022,21559,10.422]],["title/classes/UserScope.html",[0,0.232,20902,5.947]],["body/classes/UserScope.html",[0,0.209,2,0.684,3,0.014,4,0.014,5,0.007,7,0.093,8,1.049,26,2.324,27,0.537,29,0.968,30,0.001,31,0.692,32,0.177,33,0.597,35,1.495,59,3.604,83,4.215,95,0.111,99,1.023,101,0.01,103,0,104,0,111,2.409,144,1.686,145,2.93,148,1.887,165,0.68,192,1.827,227,1.2,277,5.181,319,1.832,347,2.43,371,1.69,404,1.564,450,2.518,461,1.402,529,2.664,596,3.53,2394,5.977,2801,6.182,4205,3.397,5991,5.859,5992,5.859,5993,5.859,5998,5.859,5999,5.859,6000,4.207,6001,4.138,6002,4.207,6003,4.207,6012,4.138,6013,5.859,6014,4.207,6015,4.138,6016,4.207,6017,4.138,6018,7.81,6475,7.178,6922,4.952,10212,7.593,10221,7.593,12223,9.69,12584,7.68,12585,6.454,14273,5.362,18370,10.696,20902,11.625,20909,8.025,21560,6.13,21561,8.682,21562,8.682,21563,6.13,21564,8.682,21565,6.13,21566,8.682,21567,6.13,21568,8.682,21569,6.13,21570,8.682,21571,6.13,21572,8.682]],["title/injectables/UserService.html",[105,0.91,4737,3.949]],["body/injectables/UserService.html",[0,0.135,3,0.009,4,0.009,5,0.005,7,0.06,8,0.757,12,2.872,18,3.168,26,2.691,27,0.513,29,0.974,30,0.001,31,0.696,32,0.169,33,0.601,34,1.067,35,1.486,36,2.913,39,2.375,40,3.027,47,0.876,48,4.156,59,1.237,66,4.046,94,1.93,95,0.164,99,0.663,101,0.007,102,1.993,103,0,104,0,105,0.839,107,0.958,111,2.22,112,3.045,127,0.785,148,1.93,187,0.574,216,1.776,217,1.679,221,2.638,227,1.255,234,0.645,305,1.132,336,0.951,347,1.571,359,2.186,369,1.958,383,2.6,441,6.116,450,1.632,461,2.809,504,2.6,529,1.727,574,1.744,701,3.119,789,6.992,801,2.307,818,8.14,853,2.05,854,1.993,1014,2.99,1083,3.209,1131,3.672,1564,3.027,1732,2.953,1846,3.474,1849,3.146,2018,4.91,2280,2.263,2352,4.381,2368,4.381,2440,2.263,2643,4.512,3090,3.359,3146,2.639,3147,4.046,3391,2.6,4198,2.775,4199,8.14,4541,5.427,4552,2.953,4652,7.942,4674,3.327,4737,3.642,5698,3.19,6902,5.346,7062,2.953,7074,6.432,7077,4.661,7080,4.232,7086,3.474,9548,5.484,12232,3.209,14014,5.484,14018,5.484,16215,3.672,16354,5.796,17325,3.474,20838,5.796,20884,8.947,20891,8.154,20901,3.672,20914,3.672,20965,6.505,20985,3.474,21341,3.474,21484,3.672,21485,3.672,21498,5.796,21499,5.796,21501,5.796,21503,5.796,21553,5.796,21573,3.972,21574,6.27,21575,6.27,21576,6.27,21577,6.27,21578,5.796,21579,3.972,21580,6.27,21581,3.972,21582,3.972,21583,3.972,21584,3.972,21585,3.972,21586,6.27,21587,3.972,21588,6.27,21589,3.972,21590,6.27,21591,3.972,21592,6.27,21593,3.972,21594,5.796,21595,3.972,21596,5.796,21597,8.821,21598,3.972,21599,6.27,21600,3.972,21601,6.27,21602,3.972,21603,3.972,21604,3.972,21605,3.972,21606,3.972,21607,3.972,21608,3.972,21609,3.972,21610,3.972,21611,3.972,21612,3.972,21613,3.972,21614,6.27,21615,3.972,21616,3.972,21617,3.972,21618,3.972,21619,3.972,21620,6.27,21621,3.972,21622,3.972,21623,3.972,21624,3.972,21625,3.972,21626,3.672,21627,3.972,21628,3.672,21629,3.972]],["title/injectables/UserUc.html",[105,0.91,12787,5.493]],["body/injectables/UserUc.html",[0,0.252,3,0.018,4,0.018,5,0.009,7,0.112,8,1.194,26,2.756,27,0.49,29,0.93,30,0.001,31,0.665,32,0.161,33,0.574,35,1.347,36,2.546,39,2.662,95,0.163,99,1.236,101,0.012,103,0.001,104,0.001,105,1.322,107,1.785,111,2.381,112,2.806,127,0.927,148,3.042,185,4.325,187,1.071,204,3.354,215,2.363,216,1.828,217,1.448,221,2.576,227,1.025,234,1.202,305,2.109,336,1.772,369,2.194,383,4.845,441,7.63,450,3.041,461,2.716,789,8.507,801,4.3,982,3.69,1846,6.475,1849,4.961,2018,7.741,2643,4.3,4196,9.946,4199,9.048,12232,5.98,12787,7.985,17325,6.475,20985,6.475,21578,9.138,21594,9.138,21596,9.138,21626,6.844,21628,6.844,21630,7.403,21631,9.885,21632,7.403,21633,9.885,21634,7.403,21635,7.403,21636,7.403,21637,7.403,21638,7.403,21639,7.403,21640,7.403]],["title/classes/UsersList.html",[0,0.232,6538,5.694]],["body/classes/UsersList.html",[0,0.21,2,0.855,3,0.009,4,0.009,5,0.005,7,0.16,26,2.248,27,0.316,30,0.001,31,0.43,32,0.144,34,1.618,39,2.065,47,0.902,62,2.286,83,3.096,95,0.155,96,1.066,101,0.013,103,0,104,0,111,1.749,116,3.614,127,0.488,145,2.562,148,1.9,165,0.484,188,3.223,192,1.84,208,1.455,214,1.228,217,1.685,227,1.343,234,1.786,240,3.489,305,1.759,319,2.292,334,0.419,347,1.249,369,2.441,370,3.133,371,1.074,379,1.738,380,1.312,394,3.517,398,1.148,399,2.449,400,1.719,402,1.615,404,0.702,405,1.038,406,1.267,461,2.315,475,1.904,535,2.089,565,3.077,618,1.593,627,1.894,686,2.123,701,1.377,738,2.025,770,3.661,844,3.974,851,4.161,852,4.161,905,1.622,922,3.262,1031,2.403,1107,2.722,1353,2.98,1397,1.304,1843,2.926,1852,2.607,1858,2.04,1946,2.588,2075,2.141,2095,3.462,2632,4.66,2636,5.514,2640,4.179,2648,2.722,2650,2.417,3090,3.774,3146,2.588,3147,2.514,3319,2.361,3429,2.48,3753,2.417,3777,4.041,3778,4.041,3981,2.832,4052,2.286,4205,1.313,4206,5.461,4221,3.262,4255,5.575,4281,2.697,4324,4.759,4748,2.16,4878,2.389,4989,2.828,6375,2.896,6436,2.774,6468,3.407,6469,6.319,6470,5.176,6471,5.461,6472,4.102,6473,4.454,6474,2.674,6475,5.461,6476,4.818,6477,4.313,6478,5.575,6480,3.407,6482,3.407,6485,3.407,6486,2.514,6488,3.407,6490,6.708,6493,3.407,6495,3.407,6504,3.407,6508,2.417,6509,3.407,6510,3.407,6511,3.742,6512,4.396,6513,3.407,6514,5.701,6515,3.407,6516,4.488,6517,3.147,6518,3.623,6519,2.588,6520,4.041,6521,2.389,6522,3.879,6523,2.179,6524,4.987,6525,4.987,6526,3.407,6527,3.147,6528,2.774,6529,3.407,6530,3.407,6531,3.262,6532,2.896,6533,3.407,6534,3.407,6535,3.051,6536,3.407,6537,3.785,6538,10.484,6539,5.461,6540,3.147,6541,4.167,6542,2.55,6543,2.417,6544,2.335,6545,3.147,6546,3.407,6547,3.407,6548,5.4,6549,5.4,6550,5.4,6551,7.048,6552,4.987,6553,4.704,6554,5.4,6555,4.589,6556,4.704,6557,2.896,6558,3.407,6559,3.407,6560,2.48,6561,4.102,6562,3.407,6563,3.407,6564,3.407,6565,5.4,6566,3.407,6567,3.407,6568,3.407,6569,3.407,6570,3.407,6571,3.407,6572,3.407,6573,6.195,6574,6.708,6575,3.407,6576,3.407,6577,3.407,6578,3.407,6579,3.407,6580,2.832,6581,3.407,6582,3.407,6583,3.407,6584,3.407,6585,3.407,6586,2.629,6587,3.407,6588,3.262,6589,3.407,6590,6.708,6591,5.4,6592,3.407,6593,3.407,6594,3.147,6595,3.147,6596,2.674,6597,3.407,6598,6.195,6599,3.407,6600,3.407,6601,3.407,6602,3.407,21641,3.896,21642,3.896,21643,3.896]],["title/classes/ValidationError.html",[0,0.232,503,4.169]],["body/classes/ValidationError.html",[0,0.265,2,0.867,3,0.018,4,0.018,5,0.009,7,0.117,8,1.233,27,0.542,29,0.609,30,0.001,31,0.435,32,0.185,33,0.551,35,0.941,47,0.92,55,1.675,59,2.422,95,0.131,101,0.013,103,0.001,104,0.001,127,0.974,165,0.8,187,1.124,204,4.267,216,2.52,364,2.29,404,1.84,406,2.529,503,6.26,564,2.85,596,3.937,1013,5.545,1016,2.73,1142,5.281,1180,5.211,1216,5.057,1395,8.278,1396,7.494,1397,4.054,1398,7.258,1402,5.016,1403,4.31,1404,5.016,1405,5.016,1406,5.016,1407,5.016,1408,5.016,1409,4.66,1410,4.388,1411,6.088,1412,6.511,1415,4.767,1416,4.885,1417,6.088,1817,6.088,21644,7.775,21645,7.775,21646,7.775]],["title/classes/ValidationErrorDetailResponse.html",[0,0.232,1427,5.947]],["body/classes/ValidationErrorDetailResponse.html",[0,0.346,2,1.134,3,0.024,4,0.024,5,0.012,27,0.419,29,0.796,30,0.001,31,0.57,32,0.138,33,0.492,47,0.984,101,0.017,103,0.001,104,0.001,127,1.274,204,4.098,216,1.88,1412,8.516,1423,8.433,1427,10.564,12043,8.978,21647,12.078,21648,10.168,21649,10.168,21650,10.168]],["title/modules/ValidationModule.html",[425,1.812,6428,5.694]],["body/modules/ValidationModule.html",[0,0.347,3,0.024,4,0.024,5,0.012,30,0.001,95,0.166,101,0.017,103,0.001,104,0.001,187,1.474,425,3.223,427,3.683,432,3.751,836,5.921,6428,10.13,6441,11.182,8370,7.767,8374,7.767,10856,10.58,21651,10.194,21652,10.194,21653,10.194]],["title/entities/VideoConference.html",[380,1.445,6537,4.169]],["body/entities/VideoConference.html",[0,0.356,3,0.019,4,0.019,5,0.01,7,0.185,27,0.478,30,0.001,32,0.167,47,0.745,95,0.134,96,2.203,101,0.02,103,0.001,104,0.001,165,0.908,216,1.489,240,4.134,347,2.346,364,2.113,380,2.22,381,2.679,396,6.307,398,2.373,399,4.146,400,3.554,402,3.338,404,1.451,405,2.146,406,2.62,701,4.339,1031,2.524,2702,5.53,3434,5.987,4748,5.792,5106,6.506,6537,6.407,6857,7.277,6883,5.627,8012,4.505,8014,5.272,8033,5.528,8034,5.528,8035,5.855,11645,8.182,15013,6.307,15169,9.369,21654,11.346,21655,7.446,21656,9.124,21657,8.054,21658,8.054,21659,8.054,21660,7.045,21661,7.446,21662,7.446,21663,6.506,21664,6.745,21665,6.506,21666,6.307,21667,9.139,21668,7.446,21669,7.446,21670,7.446,21671,7.446,21672,7.446]],["title/classes/VideoConference-1.html",[0,0.193,905,2.354,6537,3.466]],["body/classes/VideoConference-1.html",[0,0.302,2,0.989,3,0.021,4,0.021,5,0.011,7,0.134,27,0.524,29,0.695,30,0.001,31,0.497,32,0.173,33,0.587,95,0.156,99,1.48,100,2.97,101,0.015,103,0.001,104,0.001,127,1.111,165,0.87,460,6.979,843,5.897,2049,6.76,2059,6.197,2065,5.316,2237,10.182,3890,9.306,6537,8.031,8012,4.961,8014,5.805,8025,6.594,8027,7.165,21673,11.456,21674,8.87,21675,11.112,21676,8.87,21677,9.245,21678,8.87,21679,8.2,21680,8.2,21681,8.87,21682,8.87,21683,8.2]],["title/modules/VideoConferenceApiModule.html",[425,1.812,18512,5.493]],["body/modules/VideoConferenceApiModule.html",[0,0.282,3,0.02,4,0.02,5,0.01,30,0.001,95,0.169,101,0.014,103,0.001,104,0.001,187,1.196,425,3.13,427,2.987,428,3.214,429,3.309,430,3.295,431,3.281,432,4.322,433,3.125,442,4.253,443,3.24,444,3.162,446,5.196,447,4.405,449,4.217,481,3.175,1878,7.093,2049,4.268,2725,3.746,2727,3.967,3568,8.246,4593,4.178,8012,4.625,8014,5.412,18512,11.502,18535,6.68,21684,8.269,21685,8.269,21686,8.269,21687,10.991,21688,10.991,21689,10.991,21690,10.991,21691,10.991,21692,9.836,21693,8.269]],["title/classes/VideoConferenceBaseResponse.html",[0,0.232,8015,5.324]],["body/classes/VideoConferenceBaseResponse.html",[0,0.382,2,1.388,3,0.018,4,0.018,5,0.009,7,0.114,27,0.493,29,0.59,30,0.001,31,0.422,32,0.162,33,0.543,47,0.8,95,0.128,99,1.256,101,0.019,102,5.999,103,0.001,104,0.001,127,0.943,150,2.606,165,0.783,234,1.941,347,2.27,404,1.801,460,6.454,564,4.114,574,5.249,701,2.661,843,5.644,1016,4.197,1178,4.857,2037,4.417,2049,6.422,2439,7.015,6196,4.068,8010,7.827,8011,9.744,8012,7.578,8013,6.584,8014,8.144,8015,10.22,8016,9.362,8018,5.735,8021,9.065,8024,6.304,8025,5.596,8026,6.304,8027,6.081,8028,6.584,8029,8.074,8030,8.742,8031,6.304,8032,5.361,8033,5.166,8034,5.166,8035,5.472,8036,6.304,21694,9.995,21695,7.528,21696,7.528]],["title/classes/VideoConferenceConfiguration.html",[0,0.232,21697,5.947]],["body/classes/VideoConferenceConfiguration.html",[0,0.29,2,0.949,3,0.02,4,0.02,5,0.01,7,0.129,27,0.446,30,0.001,32,0.147,47,0.97,95,0.153,101,0.014,103,0.001,104,0.001,144,2.978,165,0.848,319,3.559,334,0.915,347,2.19,627,4.058,1308,6.563,1322,8.479,2049,6.145,2065,7.926,2130,3.719,2131,4.162,2132,4.012,2246,8.747,2247,9.471,2249,9.618,3859,4.762,4866,8.479,6537,7.301,8012,6.659,11577,5.746,12603,10.414,12605,9.471,18535,9.618,21697,9.471,21698,10.828,21699,10.828,21700,10.828,21701,8.514,21702,10.828,21703,10.01,21704,8.514]],["title/controllers/VideoConferenceController.html",[481,2.611,21692,5.694]],["body/controllers/VideoConferenceController.html",[0,0.129,3,0.02,4,0.009,5,0.005,7,0.057,8,0.731,27,0.355,29,0.854,30,0.001,31,0.482,32,0.148,33,0.416,35,1.448,36,2.337,95,0.148,100,2.526,101,0.006,103,0,104,0,111,1.725,112,2.637,127,0.476,145,3.185,163,3.355,185,2.932,187,0.55,204,1.289,216,1.591,217,1.462,221,1.991,227,0.628,234,1.625,264,3.949,305,1.083,334,0.408,364,1.567,367,4.103,368,4.271,376,0.869,379,3.141,447,1.575,461,2.493,481,1.459,483,1.812,491,5.976,504,7.135,513,6.138,538,2.728,543,3.08,553,5.695,554,7.976,555,1.976,556,2.021,561,2.037,563,5.157,564,4.692,574,4.786,843,4.81,883,2.568,1021,4.998,1410,2.145,1417,6.738,1433,7.061,1477,5.552,1744,2.655,2049,4.849,2145,6.849,2189,8.559,2226,8.546,2241,6.756,2255,6.127,2262,5.294,2280,4.901,2412,3.853,2681,8.805,2727,1.823,2794,3.589,2930,2.037,3049,7.924,4007,2.388,6616,2.278,8012,7.533,8014,8.495,8018,6.555,8744,7.206,10253,6.396,10709,2.895,10710,7.954,10966,7.954,13057,3.324,18474,8.559,21656,6.396,21688,6.318,21689,6.318,21690,6.318,21691,6.318,21692,5.069,21705,8.686,21706,3.8,21707,3.8,21708,3.513,21709,11.966,21710,10.625,21711,3.8,21712,9.254,21713,3.8,21714,7.954,21715,3.8,21716,3.513,21717,3.8,21718,3.8,21719,3.8,21720,3.8,21721,3.8,21722,3.8,21723,6.053,21724,3.8,21725,3.8,21726,3.8,21727,6.95,21728,3.8,21729,6.053,21730,3.8,21731,3.182,21732,3.182,21733,3.07,21734,4.612,21735,4.612,21736,6.318,21737,6.318,21738,3.513,21739,3.8,21740,3.8,21741,3.513,21742,3.8,21743,6.053,21744,3.8,21745,8.604,21746,8.604,21747,3.8,21748,3.8,21749,3.8,21750,3.8,21751,3.8,21752,3.8,21753,3.8,21754,3.8,21755,3.8,21756,3.8,21757,3.8]],["title/classes/VideoConferenceCreateParams.html",[0,0.232,21727,5.493]],["body/classes/VideoConferenceCreateParams.html",[0,0.343,2,0.851,3,0.018,4,0.018,5,0.009,7,0.115,27,0.496,30,0.001,32,0.163,33,0.643,47,0.719,95,0.145,101,0.013,103,0.001,104,0.001,150,4.161,165,0.79,319,3.376,334,0.819,346,6.418,347,2.597,364,2.189,371,2.103,373,6.443,374,2.435,375,4.76,376,1.745,379,1.728,444,3.856,471,5.066,1216,3.951,1403,4.228,1477,6.506,1904,4.218,2049,6.45,2072,7.288,2257,6.111,3090,4.361,3580,4.105,8012,7.323,8032,8.043,8033,7.752,8034,7.752,8616,6.161,8623,7.051,16496,9.321,20439,7.896,21727,8.145,21758,11.552,21759,11.295,21760,11.295,21761,7.627,21762,7.627,21763,10.083,21764,8.819,21765,10.083,21766,10.083,21767,10.083,21768,7.627,21769,7.627,21770,7.627,21771,10.083,21772,6.388,21773,6.671,21774,6.671,21775,6.671,21776,7.627]],["title/injectables/VideoConferenceCreateUc.html",[105,0.91,21688,5.694]],["body/injectables/VideoConferenceCreateUc.html",[0,0.175,3,0.012,4,0.012,5,0.006,7,0.078,8,0.924,26,2.483,27,0.466,29,0.886,30,0.001,31,0.656,32,0.154,33,0.547,35,1.307,36,2.426,47,0.807,95,0.155,99,0.86,100,1.725,101,0.009,103,0,104,0,105,1.023,107,1.242,111,2.648,112,2.709,127,0.958,145,2.311,148,1.585,187,0.745,188,1.902,216,1.688,217,1.472,221,2.895,227,0.534,234,1.242,277,5.049,284,2.784,305,1.467,334,0.553,461,1.75,496,3.231,701,4.543,766,2.155,784,4.135,883,3.246,947,4.761,957,2.855,1021,2.74,1141,3.158,1369,4.17,1636,8.837,1982,3.087,2015,4.033,2048,5.688,2049,6.045,2053,5.448,2065,3.087,2066,4.161,2071,4.505,2111,9.894,2134,8.409,2149,4.161,2177,4.505,2211,8.454,2237,5.829,2239,8.619,2362,2.962,2487,3.279,2783,3.087,3961,3.196,4205,1.736,4593,2.602,4671,6.161,4737,6.803,6537,3.158,6847,3.122,7074,4.008,8012,6.551,12227,8.721,14098,4.033,14266,4.761,15994,3.924,18474,9.531,21656,9.299,21666,4.033,21688,6.408,21777,9.809,21778,5.151,21779,7.651,21780,9.128,21781,7.651,21782,7.651,21783,4.313,21784,9.461,21785,5.151,21786,7.651,21787,5.151,21788,7.651,21789,5.151,21790,5.151,21791,9.443,21792,5.151,21793,7.651,21794,5.151,21795,7.651,21796,5.151,21797,4.313,21798,5.151,21799,5.151,21800,7.645,21801,5.151,21802,4.505,21803,4.505,21804,5.151,21805,4.761,21806,7.645,21807,4.761,21808,4.505,21809,5.151,21810,5.151,21811,9.128,21812,5.151,21813,5.151,21814,5.151,21815,5.151,21816,5.151,21817,5.151,21818,4.505,21819,5.151,21820,5.151,21821,4.761]],["title/classes/VideoConferenceDO.html",[0,0.232,21822,5.324]],["body/classes/VideoConferenceDO.html",[0,0.365,2,0.934,3,0.02,4,0.02,5,0.01,7,0.126,27,0.531,29,0.656,30,0.001,31,0.469,32,0.175,33,0.571,34,1.822,47,0.842,95,0.138,101,0.018,103,0.001,104,0.001,127,1.049,165,0.839,347,2.39,404,1.93,596,2.554,701,4.177,1790,3.535,1872,7.234,2702,5.323,5106,6.763,5708,6.086,6857,7.005,6883,5.849,7180,6.379,7183,8.389,7184,6.556,8012,4.683,8032,5.962,8033,5.746,8034,5.746,8035,6.086,15013,6.556,18475,9.251,21663,6.763,21664,7.012,21665,6.763,21666,6.556,21818,7.323,21822,10.08,21823,11.899,21824,7.74,21825,10.713,21826,10.43,21827,8.372,21828,8.372,21829,7.74,21830,7.74,21831,7.323,21832,7.74,21833,7.74,21834,7.74]],["title/controllers/VideoConferenceDeprecatedController.html",[481,2.611,21835,5.947]],["body/controllers/VideoConferenceDeprecatedController.html",[0,0.15,3,0.022,4,0.01,5,0.005,7,0.067,8,0.821,10,1.779,27,0.342,29,0.835,30,0.001,31,0.465,32,0.183,33,0.401,35,1.344,36,2.285,47,0.839,95,0.157,100,3.124,101,0.007,102,4.166,103,0,104,0,112,2.593,163,3.279,185,3.226,187,0.637,215,1.407,216,0.815,217,1.214,221,2.334,227,0.861,264,1.852,277,5.131,334,0.473,364,1.512,368,4.175,376,1.008,379,3.027,447,1.827,461,2.437,481,3.187,483,2.101,491,5.912,498,4.666,502,6.611,504,6.973,506,6.973,513,6.072,538,3.064,543,3.459,553,5.656,554,7.685,555,2.291,556,2.344,561,2.363,563,4.975,564,4.406,574,2.985,843,4.701,883,2.884,1353,5.36,1433,7.031,1477,4.387,1744,3.079,2049,4.816,2059,3.079,2065,2.641,2189,5.18,2226,6.783,2241,5.602,2255,6.645,2262,5.947,2280,4.729,2439,3.989,2440,3.873,2643,6.45,2681,8.606,2727,2.114,2783,6.655,2929,2.535,2930,2.363,3049,7.745,3709,2.928,4878,2.702,6537,5.089,8010,6.5,8012,7.18,8014,7.865,8015,3.451,8032,3.138,8033,3.025,8034,3.025,8362,8.343,9571,10.27,18475,9.41,21677,3.358,21692,5.694,21705,8.626,21708,4.074,21712,9.849,21714,7.673,21716,4.074,21727,7.538,21734,6.324,21735,5.18,21738,4.074,21772,3.691,21773,3.855,21774,3.855,21775,3.855,21835,5.947,21836,4.407,21837,8.301,21838,4.407,21839,4.407,21840,4.407,21841,4.407,21842,4.407,21843,4.407,21844,4.407,21845,4.407,21846,3.855,21847,4.407,21848,6.285,21849,4.407,21850,4.074,21851,4.407,21852,4.407,21853,4.407,21854,8.301,21855,8.301,21856,4.407,21857,6.799,21858,4.407,21859,3.691,21860,4.407,21861,4.074,21862,4.074,21863,4.074,21864,4.407,21865,4.407,21866,4.407,21867,4.407,21868,4.407,21869,4.407,21870,4.407]],["title/injectables/VideoConferenceEndUc.html",[105,0.91,21689,5.694]],["body/injectables/VideoConferenceEndUc.html",[0,0.235,3,0.016,4,0.016,5,0.008,7,0.104,8,1.14,26,2.447,27,0.389,29,0.739,30,0.001,31,0.528,32,0.128,33,0.456,35,0.836,36,2.023,39,1.86,47,0.673,95,0.167,99,1.153,100,2.313,101,0.012,103,0.001,104,0.001,105,1.262,107,1.665,111,2.154,112,2.368,127,1.182,154,3.164,187,0.999,188,2.552,216,1.986,217,1.692,221,2.887,227,0.716,234,1.744,277,4.659,284,3.734,305,1.968,460,3.973,461,2.158,738,3.591,766,2.89,843,3.048,957,3.83,1982,4.14,2015,5.409,2048,7.986,2049,5.544,2053,4.919,2059,4.826,2065,4.14,2066,5.58,2134,8.581,2149,5.58,2237,8.795,2239,9.504,2241,6.367,2783,4.14,4593,3.49,4671,4.662,4737,7.416,6537,7.078,6847,4.187,7074,4.941,8012,6.008,12227,7.62,14098,5.409,15994,5.263,18474,8.795,18534,5.58,21677,5.263,21689,7.9,21732,5.785,21733,5.58,21777,8.997,21783,5.785,21784,10.314,21791,6.042,21797,5.785,21800,7.9,21802,6.042,21803,6.042,21806,7.9,21808,6.042,21821,6.386,21871,6.908,21872,6.908,21873,9.434,21874,6.908,21875,6.042,21876,5.785,21877,6.042,21878,6.908,21879,6.908,21880,6.908,21881,6.386,21882,6.386]],["title/classes/VideoConferenceInfo.html",[0,0.232,21734,5.181]],["body/classes/VideoConferenceInfo.html",[0,0.303,2,0.991,3,0.021,4,0.021,5,0.011,7,0.134,27,0.525,29,0.696,30,0.001,31,0.498,32,0.173,33,0.43,47,0.634,95,0.156,100,2.976,101,0.015,103,0.001,104,0.001,127,1.113,165,0.872,240,2.82,334,0.955,364,2.027,396,6.961,404,2.005,596,3.705,701,4.294,2049,5.743,2065,5.328,2211,6.961,2702,5.014,3890,9.319,6537,8.198,6857,6.598,8012,6.793,8014,5.818,8035,6.462,11925,7.775,15169,7.181,21656,9.029,21673,9.732,21734,9.986,21883,8.89,21884,8.89,21885,8.89,21886,8.89,21887,8.89,21888,8.89]],["title/classes/VideoConferenceInfoResponse.html",[0,0.232,21736,5.694]],["body/classes/VideoConferenceInfoResponse.html",[0,0.289,2,0.945,3,0.02,4,0.02,5,0.01,7,0.128,27,0.49,29,0.664,30,0.001,31,0.475,32,0.162,33,0.41,95,0.153,101,0.014,103,0.001,104,0.001,127,1.062,165,0.846,364,1.967,376,1.939,379,2.693,460,7.432,467,3.118,701,4.569,1013,3.883,1031,2.657,2049,6.457,2213,6.639,2888,5.138,2889,5.347,8011,9.798,8012,7.734,8014,8.646,8016,8.456,8018,6.459,8021,10.844,8024,7.1,8025,6.302,8026,7.1,8035,6.163,8036,7.1,21014,9.983,21736,10.822,21889,9.952,21890,8.478,21891,7.837]],["title/injectables/VideoConferenceInfoUc.html",[105,0.91,21690,5.694]],["body/injectables/VideoConferenceInfoUc.html",[0,0.198,3,0.014,4,0.014,5,0.007,7,0.088,8,1.011,26,2.27,27,0.404,29,0.767,30,0.001,31,0.549,32,0.133,33,0.474,35,1.013,36,2.296,95,0.163,99,0.971,100,1.949,101,0.01,103,0,104,0,105,1.119,107,1.403,111,2.368,112,2.603,127,1.048,154,2.666,187,0.842,188,2.15,216,1.811,217,1.65,221,2.935,227,0.868,234,1.739,277,4.578,284,3.146,305,1.658,334,0.625,347,1.177,460,4.812,461,1.914,701,4.483,766,2.435,784,4.522,843,3.692,957,3.226,1016,3.759,1369,4.559,1982,3.488,2015,4.558,2048,7.281,2049,5.526,2053,4.145,2065,3.488,2066,4.702,2134,8.432,2149,6.758,2211,4.558,2237,8.158,2239,8.998,2244,7.734,2783,3.488,4593,2.941,4671,6.61,4737,7.067,6847,3.528,7074,4.382,8012,5.989,12227,6.758,14098,4.558,15994,4.434,18474,9.27,18534,4.702,21656,7.281,21666,4.558,21677,4.434,21690,7.006,21732,4.874,21733,4.702,21734,8.158,21772,7.006,21777,8.967,21783,4.874,21784,9.829,21791,5.091,21797,4.874,21800,8.202,21802,5.091,21803,5.091,21805,5.38,21806,8.967,21807,5.38,21808,7.317,21822,6.551,21826,8.202,21859,4.874,21875,5.091,21876,4.874,21877,5.091,21882,7.734,21892,5.82,21893,8.366,21894,5.82,21895,8.366,21896,5.82,21897,8.366,21898,5.82,21899,5.82,21900,5.82,21901,5.38,21902,5.38,21903,5.82,21904,5.82,21905,5.82,21906,5.82,21907,5.82,21908,5.38,21909,5.82]],["title/classes/VideoConferenceJoin.html",[0,0.232,21735,5.181]],["body/classes/VideoConferenceJoin.html",[0,0.304,2,0.996,3,0.021,4,0.021,5,0.011,7,0.135,27,0.526,29,0.699,30,0.001,31,0.5,32,0.173,33,0.432,47,0.796,95,0.143,99,1.49,100,2.99,101,0.015,103,0.001,104,0.001,127,1.118,150,4.214,165,0.874,460,7,843,5.907,2049,6.773,3890,9.344,6196,4.826,8012,7.486,8014,5.844,8025,6.638,8027,7.213,21673,11.479,21677,9.273,21679,8.254,21680,8.254,21683,8.254,21735,9.999,21910,8.929,21911,11.158,21912,8.929,21913,8.929,21914,8.929]],["title/classes/VideoConferenceJoinResponse.html",[0,0.232,21737,5.694]],["body/classes/VideoConferenceJoinResponse.html",[0,0.32,2,1.049,3,0.022,4,0.022,5,0.011,7,0.142,27,0.475,29,0.737,30,0.001,31,0.527,32,0.157,33,0.455,47,0.822,95,0.121,101,0.016,103,0.001,104,0.001,127,1.179,150,4.613,165,0.903,364,1.714,376,2.152,379,2.132,467,3.024,1013,4.309,2049,6.43,2189,8.781,2206,8.698,6196,5.085,8011,9.757,8012,7.452,8014,7.543,8016,9.025,8018,7.168,8031,7.879,21737,11.158,21915,11.525]],["title/injectables/VideoConferenceJoinUc.html",[105,0.91,21691,5.694]],["body/injectables/VideoConferenceJoinUc.html",[0,0.232,3,0.016,4,0.016,5,0.008,7,0.103,8,1.129,26,2.433,27,0.385,29,0.732,30,0.001,31,0.523,32,0.127,33,0.452,35,0.825,36,2.004,47,0.486,95,0.166,99,1.137,100,2.282,101,0.011,103,0.001,104,0.001,105,1.25,107,1.643,111,2.139,112,2.351,127,1.171,150,3.236,187,0.985,216,1.972,217,1.617,221,2.784,227,0.707,234,1.732,277,4.305,305,1.941,460,3.919,461,1.559,496,3.946,766,2.851,843,3.007,1308,4.13,2049,5.505,2053,4.853,2065,4.084,2066,5.505,2134,5.066,2168,5.96,2188,9.33,2189,8.127,2239,9.465,2783,5.602,3147,4.397,4593,3.443,4671,6.308,4737,7.389,6537,4.178,7074,4.895,7420,5.066,8012,6.42,15994,5.192,18474,8.745,18534,5.505,21677,5.192,21691,7.827,21732,5.707,21733,5.505,21735,9.163,21777,8.933,21783,5.707,21784,10.276,21797,5.707,21800,8.933,21806,7.827,21822,7.319,21859,5.707,21875,5.96,21876,5.707,21877,5.96,21902,9.861,21908,6.3,21916,6.815,21917,6.815,21918,9.346,21919,6.815,21920,6.815,21921,6.815,21922,6.815,21923,6.815,21924,6.815,21925,9.346,21926,6.815,21927,9.346,21928,6.815,21929,6.815,21930,6.815,21931,6.815,21932,6.815,21933,6.815]],["title/classes/VideoConferenceMapper.html",[0,0.232,21731,5.694]],["body/classes/VideoConferenceMapper.html",[0,0.24,2,0.787,3,0.017,4,0.017,5,0.009,7,0.107,8,1.156,27,0.48,29,0.912,30,0.001,31,0.652,32,0.158,33,0.563,35,1.41,95,0.161,99,1.177,101,0.016,103,0.001,104,0.001,150,2.442,185,2.741,217,1.245,227,1.207,234,1.763,334,0.758,460,5.503,627,4.177,701,2.494,843,3.112,982,3.516,1744,4.928,2049,6.282,2065,4.227,2072,4.551,2134,5.243,2149,5.697,2151,6.52,8012,3.945,8021,8.771,8032,5.023,8033,4.841,8034,4.841,21656,8.072,21677,8.872,21727,9.406,21731,8.013,21734,9.274,21735,9.274,21736,9.751,21737,9.751,21741,6.52,21772,5.907,21773,6.169,21774,6.169,21775,6.169,21859,5.907,21861,6.52,21862,6.52,21863,6.52,21876,5.907,21881,6.52,21889,5.907,21891,6.52,21901,6.52,21934,12.172,21935,7.053,21936,9.568,21937,9.568,21938,9.568,21939,9.568,21940,9.568,21941,7.053,21942,9.568,21943,7.053,21944,9.568,21945,7.053,21946,9.568,21947,7.053,21948,6.52,21949,7.053,21950,7.053,21951,7.053,21952,7.053,21953,7.053,21954,7.053,21955,7.053,21956,7.053,21957,7.053,21958,7.053]],["title/modules/VideoConferenceModule.html",[425,1.812,21687,5.694]],["body/modules/VideoConferenceModule.html",[0,0.206,3,0.014,4,0.014,5,0.007,30,0.001,80,7.512,95,0.177,101,0.01,102,3.03,103,0,104,0,154,2.766,187,0.873,191,3.347,192,1.799,334,0.649,425,2.664,427,2.181,428,2.347,429,2.416,430,2.406,431,2.396,432,4.007,433,4.115,438,5.601,442,3.437,443,2.366,444,2.309,447,3.56,449,3.408,450,2.48,481,2.318,558,2.897,766,2.526,836,4.989,1155,3.507,1307,6.116,1467,1.927,1852,4.221,1878,6.462,1923,8.888,1936,8.206,1959,5.448,1961,6.984,2049,3.116,2065,3.619,2239,10.099,2250,10.013,2252,7.512,2725,2.736,2727,2.897,3568,8.037,3583,4.728,3911,10.013,3917,5.797,4593,3.051,5333,7.61,5343,5.057,8012,4.804,8014,6.543,10142,4.219,10424,4.878,10425,4.878,12606,7.94,13848,8.514,14107,4.489,18535,4.878,21687,11.94,21697,5.281,21703,5.582,21784,10.707,21835,9.524,21848,11.371,21959,6.038,21960,6.038,21961,6.038,21962,6.038,21963,10.457,21964,6.038,21965,6.038,21966,6.038,21967,6.038,21968,6.038,21969,6.038,21970,6.038,21971,6.038,21972,8.589]],["title/classes/VideoConferenceOptions.html",[0,0.232,21656,5.055]],["body/classes/VideoConferenceOptions.html",[0,0.354,2,0.891,3,0.019,4,0.019,5,0.01,7,0.185,27,0.505,29,0.626,30,0.001,31,0.448,32,0.172,33,0.386,47,0.57,95,0.133,96,2.186,101,0.02,103,0.001,104,0.001,127,1.001,165,0.905,216,1.478,240,3.882,347,2.63,380,2.209,398,2.354,399,4.124,400,3.526,402,3.312,404,1.44,405,2.129,406,2.599,701,4.085,1031,2.504,2702,4.684,3434,5.94,4748,5.763,5106,8.397,6537,4.899,6857,6.164,6883,5.583,8012,4.469,8014,5.23,8033,7.93,8034,7.93,8035,5.808,11645,8.14,15013,6.257,15169,8.397,21654,11.727,21655,7.387,21656,9.667,21660,10.106,21661,7.387,21662,7.387,21663,6.454,21664,6.692,21665,6.454,21666,6.257,21667,9.092,21668,7.387,21669,7.387,21670,7.387,21671,7.387,21672,7.387,21973,10.395,21974,7.99,21975,7.99]],["title/classes/VideoConferenceOptionsDO.html",[0,0.232,21826,5.694]],["body/classes/VideoConferenceOptionsDO.html",[0,0.371,2,0.96,3,0.02,4,0.02,5,0.01,7,0.13,27,0.519,29,0.674,30,0.001,31,0.482,32,0.171,33,0.416,47,0.614,95,0.14,101,0.018,103,0.001,104,0.001,127,1.078,165,0.854,347,2.682,404,1.551,701,3.854,1872,6.332,2702,3.877,5106,8.806,6857,5.102,6883,6.012,7180,6.556,7183,6.738,7184,6.738,8012,4.813,8032,8.521,8033,8.212,8034,8.212,8035,6.255,15013,6.738,18475,8.537,21663,6.951,21664,7.206,21665,6.951,21666,6.738,21818,7.526,21822,8.537,21823,11.999,21824,7.955,21826,11.106,21829,7.955,21830,7.955,21831,7.526,21832,7.955,21833,7.955,21834,7.955,21976,10.901,21977,8.605,21978,8.605]],["title/classes/VideoConferenceOptionsResponse.html",[0,0.232,21889,5.694]],["body/classes/VideoConferenceOptionsResponse.html",[0,0.278,2,0.909,3,0.019,4,0.019,5,0.01,7,0.123,27,0.508,29,0.639,30,0.001,31,0.457,32,0.168,33,0.394,95,0.105,101,0.014,103,0.001,104,0.001,127,1.021,165,0.825,347,2.644,364,2.125,369,2.337,371,3.4,376,1.865,379,2.644,467,3.235,1013,5.343,2049,6.589,2177,10.784,2189,8.023,2230,11.398,2536,7.836,8011,9.997,8012,7.14,8016,8.246,8018,6.211,8032,8.307,8033,8.006,8034,8.006,13046,8.819,21663,6.585,21665,6.585,21831,7.13,21889,10.691,21979,8.152,21980,10.531,21981,12.33,21982,10.531,21983,8.152,21984,8.152,21985,10.531,21986,8.152,21987,8.152,21988,8.152]],["title/injectables/VideoConferenceRepo.html",[105,0.91,21963,5.947]],["body/injectables/VideoConferenceRepo.html",[0,0.17,3,0.012,4,0.012,5,0.006,7,0.075,8,0.901,10,3.011,12,3.417,18,3.769,26,2.525,27,0.541,29,1.02,30,0.001,31,0.729,32,0.177,33,0.63,34,1.69,35,1.576,36,2.612,40,2.403,47,0.638,95,0.143,96,1.362,99,0.831,101,0.008,103,0,104,0,105,0.998,107,1.2,111,2.388,112,2.894,148,1.532,165,0.39,187,0.72,217,1.164,221,1.152,227,1.104,234,1.211,359,2.601,380,2.261,398,1.467,404,1.344,595,1.667,596,3.935,661,5.006,701,2.638,878,5.212,884,3.515,885,5.377,915,2.76,1790,3.777,2051,2.836,2343,9.078,2345,5.312,2346,5.312,2347,5.312,2348,5.312,2349,5.212,2350,5.212,2351,5.312,2352,5.212,2353,5.312,2360,3.545,2362,5.714,2363,3.545,2365,3.545,2367,3.259,2368,5.212,2369,3.545,2371,3.545,2373,5.312,2377,5.312,2379,5.035,2380,5.212,2382,3.545,2384,2.984,2385,3.053,2386,3.545,2388,3.545,2390,3.478,2391,3.545,2409,3.701,2702,4.031,4052,4.377,4369,3.213,4878,3.053,5862,3.619,5863,3.619,5864,3.619,5865,3.619,5866,3.619,5867,3.619,5868,3.619,5869,5.423,5870,5.423,6537,7.102,6857,5.304,8032,3.545,8033,5.12,8034,5.12,9007,3.793,9571,6.026,14700,4.17,15169,4.022,18475,9.07,21660,4.355,21667,9.771,21822,9.07,21963,6.525,21989,8.946,21990,4.979,21991,7.46,21992,7.46,21993,4.979,21994,4.979,21995,4.979,21996,4.979,21997,4.979,21998,4.979,21999,7.46,22000,7.46,22001,7.46,22002,7.46,22003,4.979,22004,4.979,22005,4.979,22006,4.979,22007,4.603,22008,4.979,22009,4.979,22010,4.979,22011,4.979,22012,4.979,22013,4.979,22014,4.979,22015,4.979,22016,4.979]],["title/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.232,21846,5.947]],["body/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.263,2,0.862,3,0.018,4,0.018,5,0.009,7,0.117,8,1.229,27,0.469,29,0.891,30,0.001,31,0.637,32,0.155,33,0.55,35,1.376,95,0.155,101,0.013,102,6.467,103,0.001,104,0.001,150,2.676,227,1.179,234,1.846,460,6.539,574,4.466,627,4.138,701,2.733,843,5.017,974,4.583,1744,5.4,2049,6.235,2059,5.4,2065,4.633,2439,5.969,2440,5.795,5955,6.761,6537,7.407,8010,9.46,8012,4.323,8014,5.059,8015,9.46,8029,9.758,17597,7.146,18171,7.146,21731,6.473,21733,6.244,21734,9.204,21735,9.204,21846,8.897,21850,7.146,21948,7.146,22017,12.08,22018,10.172,22019,10.172,22020,10.172,22021,10.172,22022,10.172,22023,10.172,22024,10.172,22025,11.369,22026,11.369,22027,7.73,22028,7.73]],["title/classes/VideoConferenceScopeParams.html",[0,0.232,21710,5.947]],["body/classes/VideoConferenceScopeParams.html",[0,0.38,2,0.998,3,0.021,4,0.021,5,0.011,7,0.135,27,0.461,30,0.001,32,0.152,47,0.797,95,0.156,99,1.493,101,0.015,103,0.001,104,0.001,165,0.875,277,4.917,364,2.035,368,4.999,369,2.704,370,3.681,371,3.519,374,2.856,376,2.047,467,3.196,1000,4.549,1031,3.501,1044,4.293,2049,6.288,2889,5.533,5761,9.773,8012,6.814,9571,9.841,18475,10.488,21710,9.773,21758,11.262,22029,8.949,22030,8.949,22031,8.949,22032,8.949,22033,8.949,22034,8.949]],["title/classes/VisibilitySettingsResponse.html",[0,0.232,4074,5.694]],["body/classes/VisibilitySettingsResponse.html",[0,0.33,2,1.082,3,0.023,4,0.023,5,0.012,7,0.147,27,0.484,29,0.76,30,0.001,31,0.543,32,0.16,33,0.611,47,0.837,95,0.125,101,0.016,103,0.001,104,0.001,127,1.471,165,0.92,364,1.767,375,4.81,376,2.22,966,4.937,4074,11.255,22035,12.629,22036,9.703,22037,13.439,22038,9.703,22039,9.703,22040,9.703]],["title/dependencies.html",[428,3.184,22041,4.945]],["body/dependencies.html",[0,0.25,4,0.012,5,0.009,10,1.968,30,0.001,32,0.066,34,0.829,36,1.894,56,2.339,96,2.417,97,2.109,103,0,104,0,112,1.947,187,0.705,346,3.104,367,3.502,374,2.82,376,1.115,381,1.622,398,1.437,428,1.895,543,2.481,734,2.778,766,2.04,775,2.99,801,2.832,846,3.472,853,2.517,948,3.715,1016,1.712,1069,4.265,1155,2.832,1157,3.192,1161,3.347,1303,4.265,1351,3.407,1352,3.146,1431,2.778,1560,4.265,1562,3.625,1570,3.625,1605,2.891,1639,4.675,1738,3.545,1770,2.832,1804,2.955,1905,5.355,2007,8.52,2033,5.131,2065,2.923,2075,2.68,2131,2.384,2132,3.461,2133,3.104,2222,3.472,2374,3.818,2449,3.347,3364,2.752,3491,3.064,3492,2.891,3579,2.399,3580,4.003,3861,5.596,3871,4.265,3872,5.751,3873,8.259,4515,3.939,5030,2.805,5072,5.339,5120,3.939,5121,3.939,5438,3.192,5442,2.778,5609,3.625,5610,3.818,5835,3.064,6137,4.508,6430,3.818,6432,4.084,6528,3.472,6616,6.321,6855,3.625,7772,4.508,7803,3.146,7961,6.151,8342,5.751,8370,3.715,8716,3.939,8798,4.508,9748,4.265,9821,4.508,9925,8.191,10327,4.508,10581,3.472,10679,2.955,11506,4.084,11507,4.084,11616,3.347,11643,3.472,12850,3.818,13158,7.699,13229,3.625,13421,3.715,13769,4.508,14559,4.508,14896,3.939,15250,4.265,15559,4.265,15560,4.508,16431,4.508,16666,4.508,17351,4.265,17854,4.508,17855,4.508,18483,4.265,22042,4.876,22043,7.344,22044,4.876,22045,10.547,22046,4.876,22047,4.876,22048,8.835,22049,7.344,22050,4.876,22051,4.876,22052,4.876,22053,4.876,22054,7.344,22055,4.876,22056,9.832,22057,7.344,22058,9.832,22059,4.876,22060,4.876,22061,4.876,22062,4.876,22063,4.876,22064,4.876,22065,4.876,22066,4.876,22067,4.876,22068,4.876,22069,4.876,22070,4.876,22071,4.876,22072,4.876,22073,4.876,22074,4.876,22075,4.876,22076,4.876,22077,4.876,22078,4.876,22079,4.876,22080,4.876,22081,7.344,22082,4.876,22083,4.876,22084,4.876,22085,7.344,22086,4.876,22087,4.876,22088,7.344,22089,4.876,22090,4.876,22091,4.876,22092,4.876,22093,7.344,22094,7.344,22095,4.876,22096,4.876,22097,4.876,22098,4.876,22099,4.876,22100,4.876,22101,4.876,22102,4.876,22103,4.876,22104,4.876,22105,4.876,22106,4.876,22107,4.876,22108,4.876,22109,4.876,22110,4.876,22111,4.876,22112,4.876,22113,7.344,22114,4.876,22115,4.876,22116,4.876,22117,4.876,22118,4.876,22119,4.876,22120,4.876,22121,4.876,22122,4.876,22123,4.265,22124,4.876,22125,4.876,22126,8.167,22127,4.876,22128,4.876,22129,4.876,22130,4.876,22131,8.835,22132,4.876,22133,4.876,22134,7.344,22135,4.876,22136,4.876,22137,4.876,22138,4.876,22139,4.876,22140,4.876,22141,4.876,22142,4.876,22143,4.876,22144,4.876,22145,4.876,22146,7.344,22147,4.508,22148,4.876,22149,4.876,22150,7.344,22151,4.876,22152,4.876,22153,4.876,22154,4.876,22155,4.876,22156,4.876,22157,4.876,22158,4.876,22159,4.876,22160,4.876,22161,4.876,22162,4.876,22163,4.876,22164,4.876,22165,7.344,22166,4.876,22167,4.876,22168,4.876,22169,4.508,22170,4.876,22171,4.876,22172,4.876,22173,4.876,22174,4.876,22175,4.876,22176,4.876,22177,4.508,22178,4.876,22179,4.876,22180,4.876,22181,4.876,22182,4.876,22183,4.876,22184,4.876,22185,6.789,22186,4.508,22187,4.876,22188,4.876,22189,4.876,22190,4.876,22191,4.876,22192,4.876,22193,4.876,22194,4.876,22195,4.876,22196,4.876]],["title/index.html",[7,0.085,1477,3.648,22197,4.945]],["body/index.html",[30,0.001,31,0.482,34,1.029,55,2.155,102,3.035,103,0,104,0.001,199,2.286,200,2.678,204,2.917,234,0.982,319,1.807,367,4.1,379,1.37,428,2.35,483,4.771,511,3.056,571,5.402,574,2.655,575,3.625,576,7.098,577,3.413,671,3.352,688,3.099,722,3.834,728,2.313,769,3.586,883,4.244,946,3.958,951,4.608,956,3.958,1021,3.217,1042,5.065,1125,3.586,1126,4.736,1128,10.306,1141,3.708,1142,4.634,1216,2.369,1396,3.445,1397,2.025,1414,4.809,1433,5.272,1647,6.25,1770,3.513,1804,3.665,1855,3.8,1905,6.977,1920,3.849,1939,4.225,1959,3.296,1965,8.802,2075,4.725,2130,2.642,2132,2.85,2144,3.413,2450,6.207,2468,6.531,2469,5.548,2470,5.901,2475,4.15,2487,5.473,2536,3.625,2537,3.958,2769,6.286,3104,2.74,3281,4.018,3492,6.825,3495,7.131,3834,6.551,3835,8.51,3909,4.608,3981,4.396,4140,3.958,4518,4.885,4661,3.192,5030,3.478,5183,5.402,5289,5.065,5406,5.335,5449,4.396,5463,4.608,5684,4.885,6064,3.849,6153,4.15,6250,5.627,6333,4.885,6436,4.306,6437,4.396,6616,6.531,6712,5.548,6858,4.898,6863,4.608,7453,4.496,7821,4.15,8745,3.548,8890,6.551,9511,5.289,9570,4.736,10303,8.302,10686,4.885,11372,4.306,11614,4.082,11757,4.736,11762,6.25,11774,5.473,11808,5.289,12042,6.551,13062,7.834,13637,8.082,13838,4.496,14107,4.496,14167,6.733,14305,4.885,14851,4.885,15238,4.608,15254,5.065,15598,5.065,15599,4.885,16436,7.52,16790,4.736,16796,6.945,17014,4.306,18262,5.289,20439,4.736,21532,5.065,21764,5.289,22198,7.201,22199,4.608,22200,5.289,22201,5.065,22202,5.289,22203,4.885,22204,7.201,22205,6.945,22206,5.289,22207,5.289,22208,5.289,22209,7.948,22210,7.201,22211,5.59,22212,5.59,22213,5.59,22214,5.065,22215,7.623,22216,5.289,22217,7.948,22218,5.065,22219,5.065,22220,7.948,22221,5.289,22222,4.608,22223,5.065,22224,5.289,22225,5.289,22226,4.885,22227,5.59,22228,5.289,22229,5.59,22230,5.065,22231,4.736,22232,5.289,22233,7.948,22234,7.948,22235,8.751,22236,10.068,22237,5.289,22238,5.59,22239,7.948,22240,5.289,22241,5.59,22242,5.59,22243,5.59,22244,7.948,22245,5.59,22246,5.59,22247,5.59,22248,5.065,22249,5.59,22250,4.885,22251,5.59,22252,6.945,22253,7.201,22254,5.59,22255,5.065,22256,5.59,22257,5.289,22258,5.59,22259,5.065]],["title/license.html",[1477,3.648,12097,4.202,22197,4.945]],["body/license.html",[0,0.041,4,0.029,5,0.003,8,0.147,27,0.05,30,0,53,2.839,55,0.484,56,1.078,72,3.48,74,0.982,76,1.124,77,0.774,79,1.966,83,0.372,87,0.61,95,0.016,103,0,104,0,111,0.244,116,3.37,148,0.374,163,0.965,192,0.362,199,0.459,227,0.126,234,1.004,240,0.386,277,0.491,309,2.246,334,0.613,336,0.75,359,3.378,363,1.431,368,1.53,380,0.478,444,0.465,460,0.699,461,1.945,494,1.879,511,0.614,520,0.808,534,1.124,535,3.316,538,1.013,543,0.619,564,0.446,565,0.606,574,4.253,575,0.729,578,1.124,685,0.642,688,2.001,701,0.43,704,1.934,711,0.721,713,0.674,721,2.476,722,1.741,731,0.48,744,0.884,766,0.94,768,0.834,772,1.063,782,1.063,783,2.367,795,0.745,836,3.007,843,3.09,905,1.907,907,2.151,954,1.671,956,4.048,957,2.165,959,1.063,960,9.137,1021,0.647,1126,1.76,1142,5.316,1184,2.165,1189,0.573,1198,1.57,1342,0.764,1396,0.693,1422,1.671,1430,4.841,1433,3.793,1498,0.737,1499,3.849,1516,3.7,1588,3.617,1639,1.431,1645,7.057,1646,2.184,1733,1.816,1750,0.997,1770,2.268,1820,0.754,1821,1.063,1849,3.515,1854,5.103,1855,3.253,1906,0.952,1939,4.893,1941,0.774,1945,0.834,1950,1.601,1951,2.532,1952,1.124,1959,1.225,2035,0.657,2074,0.982,2075,4.043,2115,8.114,2143,1.966,2144,1.268,2226,2.839,2241,0.82,2257,2.367,2280,1.28,2303,0.493,2362,1.293,2449,2.151,2450,3.99,2461,4.459,2464,4.612,2487,3.296,2503,2.078,2504,1.712,2524,6.02,2536,4.781,2537,0.796,2538,1.601,2686,3.764,2688,7.827,2736,2.556,2997,1.018,3090,3.182,3104,2.075,3144,0.952,3195,0.754,3281,5.3,3282,1.412,3303,1.601,3430,3.2,3541,4.612,3578,2.015,3579,0.598,3602,1.76,3649,3.989,3812,0.952,3831,0.982,3833,1.543,3835,0.774,3837,1.76,3901,0.982,3961,1.945,4137,1.063,4139,2.742,4140,3.389,4143,1.124,4198,1.57,4277,1.018,4514,0.884,4518,4.612,4520,1.063,4603,1.018,4661,1.186,4662,1.018,4663,1.543,4670,1.882,4882,1.412,5007,6.084,5022,1.431,5030,0.699,5058,2.594,5059,1.517,5101,1.76,5295,0.982,5406,1.395,5441,1.063,5449,2.278,5455,2.388,5630,3.144,6064,0.774,6153,2.151,6160,2.898,6375,2.33,6432,1.018,6531,1.018,6616,1.347,6712,0.784,6740,0.904,6761,2.278,6832,3.587,6860,0.866,6887,1.634,7041,0.926,7047,0.884,7059,1.063,7060,3.154,7453,2.33,7483,3.2,7493,0.926,7921,1.063,7922,1.882,7982,2.903,8178,0.745,8244,4.997,8887,0.884,8890,2.975,9342,2.454,9589,2.975,9595,2.898,9603,3.296,9620,2.454,9633,2.232,10039,0.82,10055,2.33,10298,0.926,10318,4.997,10686,6.204,10709,1.712,10761,0.82,10862,0.952,10870,1.966,10877,1.816,11350,1.712,11352,1.063,11603,0.926,11609,0.884,11616,2.68,11617,0.904,11636,0.982,11681,1.124,11714,4.766,11726,1.063,11762,2.278,11774,1.995,11784,0.904,11798,4.006,11805,2.078,11844,1.124,11865,5.078,12042,0.926,12097,9.977,12224,1.063,12537,1.018,12718,0.952,13063,4.994,13381,1.063,13403,1.063,13412,4.006,13413,1.124,13474,2.078,13546,6.435,13637,0.982,13733,0.884,13831,1.063,13895,0.982,13899,0.982,13917,2.232,14409,4.994,14519,9.185,14554,1.124,14561,2.839,14849,0.982,14854,1.124,14909,3.27,14998,2.078,15167,1.124,15235,3.27,15238,2.388,15598,1.018,15601,7.121,16529,1.018,16546,1.124,17081,4.529,17090,1.063,17194,7.1,17234,1.124,18261,2.898,18346,1.063,18485,1.124,18566,1.063,18607,0.952,18612,1.882,18625,1.712,18877,2.388,19284,2.898,19835,1.966,19838,3.7,19840,1.063,19845,6.474,20033,1.063,20035,8.071,20077,2.078,20229,0.904,20292,1.816,20487,4.529,20567,2.078,20777,5.786,21038,8.277,21064,1.018,22208,1.063,22210,9.921,22215,4.35,22222,7.12,22223,9.141,22224,2.742,22252,2.532,22255,1.882,22260,8.954,22261,8.737,22262,1.216,22263,1.216,22264,3.134,22265,10.719,22266,8.483,22267,4.58,22268,1.216,22269,1.216,22270,2.248,22271,4.58,22272,3.134,22273,3.134,22274,1.216,22275,1.216,22276,2.248,22277,4.234,22278,5.278,22279,2.248,22280,2.248,22281,7.627,22282,6.186,22283,1.216,22284,1.124,22285,5.178,22286,1.124,22287,7.357,22288,11.79,22289,3.134,22290,1.216,22291,1.216,22292,3.905,22293,6.615,22294,1.216,22295,6.615,22296,1.216,22297,4.58,22298,0.982,22299,1.018,22300,3.61,22301,1.124,22302,8.503,22303,0.982,22304,1.124,22305,7.004,22306,7.357,22307,4.58,22308,7.681,22309,1.216,22310,2.248,22311,1.216,22312,1.216,22313,2.898,22314,1.216,22315,1.216,22316,1.216,22317,1.216,22318,1.216,22319,3.61,22320,1.124,22321,1.063,22322,1.124,22323,3.134,22324,1.216,22325,1.216,22326,1.216,22327,2.248,22328,1.216,22329,1.216,22330,2.625,22331,1.124,22332,2.248,22333,2.248,22334,3.134,22335,6.681,22336,4.58,22337,4.786,22338,3.134,22339,2.248,22340,1.216,22341,1.216,22342,1.216,22343,3.134,22344,1.216,22345,1.216,22346,2.248,22347,1.216,22348,1.216,22349,1.216,22350,3.905,22351,2.248,22352,10.262,22353,3.134,22354,6.615,22355,3.415,22356,1.216,22357,2.248,22358,3.134,22359,6.615,22360,7.004,22361,1.124,22362,3.905,22363,2.248,22364,3.905,22365,1.216,22366,3.134,22367,0.982,22368,10.384,22369,2.248,22370,1.124,22371,6.186,22372,1.216,22373,3.134,22374,4.336,22375,8.503,22376,3.134,22377,2.248,22378,7.357,22379,5.178,22380,1.216,22381,2.248,22382,7.978,22383,2.248,22384,1.216,22385,1.216,22386,2.898,22387,1.216,22388,1.216,22389,1.063,22390,3.134,22391,3.905,22392,1.124,22393,1.216,22394,1.216,22395,1.063,22396,2.898,22397,3.134,22398,1.216,22399,4.58,22400,1.124,22401,2.898,22402,1.216,22403,1.124,22404,1.216,22405,1.216,22406,1.216,22407,2.898,22408,1.018,22409,6.435,22410,2.248,22411,1.063,22412,1.216,22413,2.248,22414,1.216,22415,1.966,22416,4.006,22417,1.216,22418,5.709,22419,3.61,22420,1.216,22421,4.58,22422,1.216,22423,1.216,22424,1.216,22425,1.216,22426,1.216,22427,3.134,22428,1.216,22429,2.248,22430,1.216,22431,1.216,22432,1.216,22433,1.124,22434,1.216,22435,1.216,22436,3.134,22437,0.952,22438,1.216,22439,0.982,22440,1.216,22441,1.216,22442,1.216,22443,4.58,22444,1.216,22445,1.216,22446,3.134,22447,1.216,22448,1.216,22449,3.905,22450,1.216,22451,2.248,22452,1.216,22453,1.216,22454,1.216,22455,1.216,22456,1.216,22457,1.216,22458,2.248,22459,1.216,22460,1.216,22461,1.216,22462,2.248,22463,1.216,22464,1.216,22465,1.216,22466,1.216,22467,1.216,22468,2.078,22469,6.115,22470,1.216,22471,5.178,22472,1.216,22473,1.216,22474,3.134,22475,3.905,22476,3.905,22477,3.905,22478,1.216,22479,4.58,22480,4.006,22481,1.124,22482,3.134,22483,1.216,22484,2.248,22485,1.216,22486,1.966,22487,2.248,22488,3.61,22489,3.905,22490,1.216,22491,3.134,22492,4.58,22493,1.216,22494,1.216,22495,2.898,22496,2.248,22497,1.124,22498,1.216,22499,1.124,22500,1.216,22501,1.216,22502,2.898,22503,1.216,22504,1.216,22505,2.248,22506,1.216,22507,1.216,22508,1.216,22509,3.134,22510,1.216,22511,3.134,22512,2.248,22513,5.178,22514,3.134,22515,2.248,22516,2.248,22517,2.248,22518,3.415,22519,1.966,22520,1.216,22521,1.216,22522,1.216,22523,5.178,22524,2.248,22525,1.216,22526,1.216,22527,1.216,22528,2.248,22529,1.216,22530,2.248,22531,1.216,22532,1.216,22533,4.997,22534,1.216,22535,6.801,22536,1.216,22537,1.216,22538,1.216,22539,1.216,22540,2.248,22541,1.216,22542,4.006,22543,3.905,22544,2.248,22545,1.216,22546,1.216,22547,1.216,22548,1.216,22549,1.216,22550,2.248,22551,1.216,22552,1.216,22553,1.063,22554,1.216,22555,2.248,22556,2.248,22557,1.216,22558,1.216,22559,1.216,22560,1.216,22561,1.216,22562,1.216,22563,1.216,22564,1.216,22565,1.124,22566,1.216,22567,1.216,22568,1.216,22569,1.216,22570,4.58,22571,1.216,22572,1.216,22573,3.905,22574,1.216,22575,1.216,22576,1.216,22577,1.216,22578,1.216,22579,1.216,22580,1.216,22581,5.709,22582,2.898,22583,1.216,22584,3.905,22585,1.216,22586,1.216,22587,3.134,22588,1.216,22589,1.216,22590,3.134,22591,1.216,22592,2.248,22593,1.216,22594,1.216,22595,1.216,22596,1.216,22597,1.216,22598,1.063,22599,2.078,22600,1.216,22601,1.063,22602,2.248,22603,2.078,22604,1.216,22605,3.905,22606,1.216,22607,2.898,22608,1.216,22609,2.078,22610,3.134,22611,2.248,22612,1.216,22613,3.134,22614,5.709,22615,1.216,22616,2.248,22617,1.216,22618,2.078,22619,1.216,22620,1.216,22621,1.216,22622,3.905,22623,3.134,22624,1.216,22625,1.216,22626,1.216,22627,1.216,22628,1.216,22629,1.216,22630,2.248,22631,2.248,22632,2.248,22633,3.134,22634,1.216,22635,2.248,22636,1.124,22637,3.134,22638,1.216,22639,2.078,22640,2.248,22641,1.216,22642,1.216,22643,2.248,22644,9.991,22645,3.134,22646,1.216,22647,4.58,22648,7.004,22649,3.134,22650,1.216,22651,1.216,22652,3.905,22653,1.216,22654,3.134,22655,1.216,22656,1.216,22657,1.216,22658,1.216,22659,1.216,22660,1.216,22661,1.216,22662,1.216,22663,3.905,22664,1.216,22665,1.216,22666,3.134,22667,1.216,22668,2.248,22669,3.134,22670,1.063,22671,2.248,22672,1.216,22673,1.216,22674,1.216,22675,1.216,22676,2.248,22677,3.134,22678,1.124,22679,1.216,22680,1.216,22681,1.216,22682,1.124,22683,1.216,22684,1.216,22685,1.216,22686,3.134,22687,2.248,22688,1.124,22689,1.216,22690,1.216,22691,3.905,22692,1.216,22693,3.134,22694,1.216,22695,1.216,22696,1.216,22697,1.216,22698,1.216,22699,3.134,22700,2.248,22701,2.248,22702,1.216,22703,2.248,22704,5.709,22705,2.248,22706,3.134,22707,3.905,22708,1.124,22709,1.124,22710,2.248,22711,1.216,22712,3.134,22713,1.216,22714,1.216,22715,1.216,22716,1.216,22717,1.216,22718,3.134,22719,2.248,22720,1.216,22721,1.216,22722,1.216,22723,1.216,22724,2.248,22725,2.248,22726,1.216,22727,2.078,22728,1.216,22729,1.124,22730,1.124,22731,1.216,22732,3.134,22733,1.216,22734,1.216,22735,1.216,22736,2.248,22737,3.134,22738,1.216,22739,1.216,22740,1.216,22741,1.216,22742,2.248,22743,1.216,22744,1.216,22745,1.216,22746,1.216,22747,1.216,22748,1.216,22749,1.216,22750,1.216,22751,1.216,22752,1.216,22753,1.216,22754,1.216,22755,1.216,22756,3.905,22757,1.216,22758,1.216,22759,2.248,22760,1.216,22761,1.124,22762,1.216,22763,1.216,22764,1.216,22765,1.216,22766,1.216,22767,1.216,22768,1.124,22769,1.216,22770,1.216,22771,1.216,22772,1.216,22773,2.248,22774,1.216,22775,1.216,22776,1.216,22777,1.216,22778,1.063,22779,2.248,22780,1.216,22781,1.216,22782,1.216,22783,1.124,22784,1.124,22785,1.018,22786,1.216,22787,2.248,22788,1.124,22789,2.078,22790,1.216,22791,1.216,22792,3.134,22793,2.078,22794,1.216,22795,2.078,22796,2.248,22797,2.248,22798,1.124,22799,1.063,22800,1.216,22801,1.216,22802,1.124,22803,1.216,22804,1.216,22805,1.216,22806,2.248,22807,1.216,22808,3.134,22809,1.216,22810,1.216,22811,1.216,22812,1.216,22813,1.216,22814,1.216,22815,1.216,22816,1.216,22817,1.216,22818,1.216,22819,1.216,22820,1.018,22821,1.216,22822,1.216,22823,1.216,22824,1.216,22825,1.216,22826,1.216,22827,1.216,22828,1.216,22829,1.216,22830,1.216,22831,1.216,22832,1.216,22833,1.063,22834,1.124,22835,2.248,22836,2.078,22837,1.216,22838,1.216,22839,1.216,22840,1.216,22841,1.216,22842,1.216,22843,1.216,22844,1.216,22845,1.216,22846,1.018,22847,1.216,22848,1.124,22849,0.982,22850,1.216,22851,1.216,22852,1.124,22853,1.216]],["title/modules.html",[427,3.371]],["body/modules.html",[30,0,103,0,104,0,426,3.906,427,1.747,437,3.443,438,2.265,817,3.786,1295,4.049,1503,3.786,1507,3.212,1545,3.906,1546,3.786,1547,3.594,1548,3.378,1878,2.613,1883,3.906,1923,3.594,1954,3.594,1956,3.684,2449,9.965,2461,7.582,2711,3.906,3566,3.786,3567,3.594,3568,3.038,3911,4.049,4402,4.049,4578,4.049,4583,3.594,4631,3.906,5328,3.515,5333,3.078,5610,9.796,5808,3.906,5813,3.684,5814,3.786,6338,3.515,6422,3.212,6426,3.906,6427,4.049,6428,4.049,7856,4.049,8255,3.515,8835,3.786,8836,3.684,10344,4.049,10355,4.049,10409,4.229,10413,3.906,10418,3.786,10575,3.443,10576,3.378,10585,4.049,10588,3.594,10642,4.229,10645,3.378,10746,4.229,10757,4.229,10935,3.906,10939,3.906,11390,4.049,11399,4.229,12657,3.786,12658,3.906,12918,3.906,13296,4.049,13844,3.906,13848,3.443,13849,3.594,13867,3.594,13909,3.906,13913,3.684,14126,3.906,14680,4.049,14744,3.786,14758,3.786,14772,4.049,14779,4.049,15063,3.906,15574,3.906,15578,3.786,15756,3.906,15760,4.049,16607,4.229,16610,4.049,16914,3.906,17317,3.906,17501,3.906,18488,4.229,18502,4.049,18505,3.786,18506,3.906,18507,3.906,18508,3.906,18509,3.906,18510,3.906,18511,3.906,18512,3.906,18582,4.049,18862,4.049,20166,4.049,20543,4.049,21687,4.049,22854,14.52,22855,14.52,22856,13.459]],["title/properties.html",[165,0.642,22041,4.945]],["body/properties.html",[30,0.001,103,0.001,104,0.001,165,0.817,379,2.364,1904,4.364,1905,6.323,2075,5.733,2532,9.643,4533,6.473,7803,6.731,12097,7.755,17014,7.429,20218,7.948,22618,9.643,22852,9.643,22857,10.725,22858,9.643,22859,8.736,22860,10.432,22861,10.432,22862,10.432,22863,10.432]],["title/todo.html",[1477,3.648,1852,2.387,22197,4.945]],["body/todo.html",[0,0.191,5,0.007,30,0.001,31,0.457,32,0.111,34,1.387,36,1.205,47,0.401,72,2.545,99,0.937,100,2.73,103,0,104,0,112,2.116,127,0.704,150,1.945,165,0.44,199,3.082,204,2.767,319,3.148,336,1.344,359,1.959,367,3.888,368,2.201,380,2.62,381,1.869,425,2.98,433,2.123,444,3.118,449,2.229,461,1.865,481,2.157,483,2.679,509,4.083,524,3.231,571,3.53,574,4.624,576,5.418,667,2.663,685,2.965,701,3.394,704,2.782,722,4.987,778,3.791,779,7.136,798,3.53,839,2.679,1021,2.988,1125,7.137,1129,5.521,1141,5.886,1174,4.083,1184,3.114,1188,3.842,1272,4.28,1414,5.891,1415,3.444,1423,3.677,1431,4.645,1605,3.331,1630,5.928,1647,5.928,1750,2.492,1852,2.372,1874,7.965,1904,4.406,1905,4.942,1942,3.855,1948,3.367,1959,6.958,2051,4.645,2075,3.087,2130,2.454,2132,3.842,2142,4.176,2146,3.791,2222,4,2356,2.307,2440,3.2,2449,3.855,2465,8.039,2468,4.887,2469,7.957,2531,3.036,2727,2.695,3280,3.855,3282,3.53,3319,4.942,3495,3.677,3578,5.773,3649,3.925,3937,4.176,4007,5.124,4140,3.677,4519,3.855,4565,9.035,4588,2.899,4661,5.066,4662,6.829,4663,3.855,4882,3.53,5022,3.576,5058,3.732,5467,4.538,6115,4.913,6153,5.597,6430,6.385,6436,5.807,6439,3.925,6440,4.913,6443,4.704,6532,7.136,6854,3.036,6858,3.2,6885,3.677,7027,3.486,7801,4.399,7802,4.176,7803,7.217,7804,7.314,7810,3.444,8244,4.538,8303,4.28,8310,5.697,8312,4.176,8369,3.405,9603,3.576,9756,6.829,9925,6.836,10289,4.704,10793,5.193,10862,4.399,11609,4.083,11614,3.791,11616,3.855,11617,4.176,11635,4.083,11714,3.486,11762,5.928,12312,6.385,12927,3.855,13143,4.704,13817,4.913,13895,4.538,14909,4.704,15599,4.538,16740,4.913,16790,4.399,17014,4,17784,5.193,18607,7.517,18919,5.193,19652,5.193,20218,4.28,20229,4.176,20499,4.913,21073,5.193,22041,4.913,22169,5.193,22199,6.213,22216,4.913,22219,4.704,22259,4.704,22298,4.538,22403,5.193,22408,4.704,22433,5.193,22553,4.913,22833,7.132,22849,4.538,22864,5.617,22865,5.193,22866,4.704,22867,4.913,22868,5.193,22869,5.617,22870,5.617,22871,5.617,22872,4.704,22873,5.617,22874,5.617,22875,5.617,22876,4.704,22877,5.617,22878,5.617,22879,5.193,22880,5.617,22881,5.617,22882,5.617,22883,5.617,22884,5.617,22885,4.704,22886,4.913,22887,5.617,22888,5.617,22889,5.617,22890,5.617,22891,5.193,22892,5.617,22893,5.193,22894,5.617,22895,5.617,22896,5.617,22897,5.617,22898,5.617,22899,5.617,22900,4.913,22901,5.617,22902,5.617,22903,5.617,22904,5.617,22905,5.193,22906,5.617,22907,5.617,22908,5.617,22909,5.617,22910,5.617,22911,5.617,22912,5.617,22913,5.617,22914,9.6,22915,5.617,22916,5.617,22917,5.617,22918,5.617,22919,5.617,22920,5.617,22921,4.704,22922,8.154,22923,5.617,22924,5.617]],["title/additional-documentation/nestjs-application.html",[1014,2.307,1430,2.839,3492,2.868,3835,3.079]],["body/additional-documentation/nestjs-application.html",[5,0.012,18,1.888,30,0.001,31,0.418,33,0.289,72,1.693,78,6.289,87,1.875,95,0.048,103,0,104,0,163,3.21,185,1.452,210,2.446,240,1.185,319,1.117,336,0.894,355,1.502,359,2.082,367,1.782,368,1.464,404,0.673,425,2.271,427,2.158,443,2.34,475,1.827,511,3.77,524,2.149,574,4.905,577,2.109,627,2.289,667,4.417,704,2.957,722,4.154,744,2.716,766,1.563,774,4.099,779,5.546,781,3.268,784,2.02,803,3.706,845,2.716,948,4.55,951,4.55,956,3.909,957,3.311,1014,2.848,1021,4.956,1125,5.525,1126,7.296,1129,3.435,1141,3.662,1142,4.602,1184,3.311,1187,4.064,1190,2.977,1323,7.287,1336,3.268,1352,5.499,1396,3.402,1414,4.766,1430,2.193,1431,2.129,1433,4.574,1477,5.499,1583,2.446,1618,3.469,1630,5.423,1644,3.129,1645,3.018,1646,5.557,1734,2.778,1855,2.348,1874,2.661,1905,3.62,1939,2.611,1941,2.379,1942,4.099,1948,3.58,1950,2.661,1959,2.036,2075,5.461,2130,1.632,2131,1.827,2132,4.016,2226,4.342,2276,5.224,2303,1.515,2362,3.435,2374,7.781,2440,2.129,2461,2.265,2468,3.58,2469,7.911,2470,2.565,2471,2.446,2487,2.379,2536,4.472,2538,2.661,2615,2.661,2736,3.909,2794,5.053,2800,2.446,2850,2.24,3104,1.693,3281,2.482,3282,3.753,3490,5.12,3491,6.243,3492,6.793,3495,4.883,3578,1.928,3579,5.496,3580,1.521,3586,2.926,3832,3.018,3833,2.565,3835,7.448,3861,2.847,4661,3.152,5007,2.02,5058,2.482,5295,3.018,5445,3.268,5460,3.909,5530,1.863,6154,2.482,6234,2.522,6250,2.446,6251,2.482,6327,5.521,6375,2.778,6433,3.454,6472,3.968,6528,2.661,6616,2.24,6712,2.411,7044,2.379,7799,6.51,7803,6.012,7818,5.002,7821,5.849,7963,4.824,7982,6.335,8268,3.454,8745,2.193,8887,4.342,9589,4.55,10005,4.677,10289,3.129,10293,4.766,10298,2.847,10340,2.926,10609,4.44,10610,4.55,10677,2.611,10679,2.265,11350,2.847,11372,4.253,11526,3.129,11603,2.847,11614,2.522,11615,4.253,11635,5.423,11637,2.716,11644,2.926,11685,3.268,11714,5.288,11774,2.379,11812,3.268,11838,9.185,11842,3.454,11843,2.778,11950,3.129,11980,3.268,12329,2.482,12850,2.926,13044,3.018,13142,3.018,13380,3.268,13637,3.018,13838,2.778,13897,3.018,13899,3.018,14469,6.897,14849,8.026,14896,6.026,15238,2.847,15254,3.129,15599,3.018,15601,3.129,16529,3.129,16740,8.15,17945,2.661,20218,6.493,20228,3.268,20229,6.927,20623,3.454,20677,5.521,21064,3.129,21276,4.824,22126,3.454,22177,3.454,22185,3.454,22186,3.454,22198,3.129,22199,9.341,22200,5.224,22201,3.129,22203,3.018,22206,3.268,22214,6.248,22215,10.078,22235,3.268,22321,3.268,22367,3.018,22400,5.521,22407,3.454,22408,6.248,22409,5.224,22518,3.268,22533,3.018,22542,5.224,22601,3.268,22639,3.454,22682,3.454,22688,3.454,22799,5.224,22820,3.129,22856,3.454,22872,9.356,22885,5.002,22886,5.224,22900,5.224,22905,8.614,22925,3.737,22926,3.737,22927,7.803,22928,3.737,22929,3.737,22930,3.737,22931,3.737,22932,3.737,22933,5.973,22934,3.737,22935,6.525,22936,3.737,22937,3.737,22938,3.737,22939,3.737,22940,3.737,22941,3.737,22942,3.737,22943,3.737,22944,3.737,22945,3.737,22946,3.737,22947,3.737,22948,3.737,22949,3.737,22950,8.614,22951,3.454,22952,3.454,22953,3.454,22954,3.454,22955,3.454,22956,3.454,22957,3.454,22958,3.454,22959,3.737,22960,3.454,22961,3.737,22962,3.737,22963,3.737,22964,5.973,22965,3.268,22966,3.454,22967,3.268,22968,3.268,22969,3.737,22970,9.318,22971,3.454,22972,3.737,22973,3.737,22974,9.936,22975,3.737,22976,3.737,22977,3.737,22978,3.737,22979,5.973,22980,8.522,22981,3.737,22982,5.973,22983,3.737,22984,5.973,22985,5.973,22986,3.737,22987,3.737,22988,8.522,22989,3.737,22990,3.737,22991,3.737,22992,3.737,22993,5.973,22994,3.737,22995,3.737,22996,3.737,22997,3.737,22998,5.973,22999,3.737,23000,3.737,23001,3.737,23002,3.454,23003,3.737,23004,3.737,23005,3.737,23006,5.973,23007,3.737,23008,3.737,23009,3.737,23010,3.737,23011,3.737,23012,3.737,23013,3.737,23014,5.973,23015,7.461,23016,3.737,23017,3.737,23018,7.461,23019,5.973,23020,3.737,23021,3.737,23022,3.737,23023,3.737,23024,3.737,23025,3.737,23026,3.737,23027,3.737,23028,5.973,23029,3.737,23030,5.973,23031,5.973,23032,3.454,23033,3.737,23034,6.897,23035,3.737,23036,3.737,23037,3.737,23038,3.454,23039,3.454,23040,3.737,23041,3.737,23042,3.737,23043,3.737,23044,3.737,23045,3.737,23046,3.737,23047,3.737]],["title/additional-documentation/nestjs-application/software-architecture.html",[1014,2.307,1430,2.839,22205,3.908,22266,4.051]],["body/additional-documentation/nestjs-application/software-architecture.html",[0,0.326,2,0.695,5,0.005,7,0.06,8,0.476,27,0.394,30,0.001,72,4.607,95,0.051,101,0.015,103,0,104,0,105,0.527,107,0.95,116,2.407,200,2.979,208,2.887,234,0.64,334,1.186,336,2.721,381,2.073,425,3.433,427,4.578,428,1.532,432,2.844,433,1.49,447,3.203,449,2.472,461,0.902,481,1.513,535,3.341,565,1.965,569,2.705,571,2.476,573,3.003,574,2.736,667,2.954,672,4.5,687,1.68,694,2.13,711,2.337,744,2.865,766,1.649,768,5.304,784,3.368,883,1.672,946,2.58,950,3.086,956,5.058,957,4.284,960,2.705,1142,5.114,1184,3.454,1198,4.353,1312,2.446,1342,2.476,1414,6.511,1415,2.417,1433,2.417,1646,2.204,1734,7.111,1852,1.664,1854,2.618,1855,5.518,1904,5.428,1939,6.136,1941,2.509,1945,4.277,1946,6.355,1947,3.086,1948,2.362,1950,2.807,2045,2.754,2075,4.247,2144,3.517,2146,4.206,2241,4.206,2257,5.323,2268,3.55,2440,3.55,2450,6.068,2460,3.301,2461,2.389,2464,3.184,2469,2.543,2470,2.705,2487,3.966,2504,3.003,2535,3.643,2536,6.096,2537,4.078,2538,2.807,2630,2.476,2727,1.891,2736,2.58,3104,4.825,3281,2.618,3282,4.855,3364,3.517,3492,2.337,3578,2.034,3588,4.632,3602,3.086,3649,4.353,3813,4.277,3831,3.184,3833,6.027,3835,3.966,3961,2.446,4007,2.476,4140,6.656,4198,2.754,4466,2.289,4514,2.865,4565,5.033,4603,3.301,5058,5.835,5285,3.643,5406,4.795,5449,2.865,5455,3.003,5466,3.301,5574,5.76,5609,5.745,5610,3.086,6152,3.086,6154,4.14,6164,3.643,6434,2.754,6833,2.476,6834,4.53,7027,2.446,7128,3.184,7493,4.747,7804,3.003,7982,2.93,8303,3.003,8312,4.632,8890,3.003,9589,3.003,9603,4.919,9621,7.453,9786,3.003,9914,2.93,10039,2.66,10142,2.754,10293,3.485,10318,3.184,10709,3.003,10863,5.76,10877,3.184,11613,2.58,11614,4.206,11714,3.867,11743,8.011,11762,4.53,11763,5.218,11784,4.632,12311,6.384,12312,3.086,12617,3.301,12718,4.879,12850,3.086,13046,6.472,13142,3.184,13838,4.632,13890,3.086,13895,5.033,13897,3.184,14106,5.76,14167,6.051,14409,3.447,14519,3.447,15256,3.643,15844,3.086,16535,3.447,17014,6.812,17861,5.45,18607,4.879,18612,3.301,18877,3.003,19456,3.643,19650,3.184,19785,3.184,19833,3.447,20034,3.301,20292,3.184,20621,10.161,20777,3.447,21064,3.301,21350,3.447,22199,3.003,22205,8.215,22207,5.45,22218,3.301,22219,3.301,22222,3.003,22231,4.879,22252,5.033,22255,3.301,22266,5.218,22298,3.184,22299,8.011,22330,3.301,22331,7.144,22337,3.643,22352,3.447,22355,5.45,22367,3.184,22374,3.301,22386,3.643,22389,3.447,22411,3.447,22416,6.759,22437,3.086,22468,3.643,22480,3.447,22488,3.643,22518,3.447,22519,3.447,22542,5.45,22678,7.144,22729,3.643,22768,3.643,22783,3.643,22785,6.472,22834,5.76,22846,3.301,22859,3.301,22866,6.472,22876,8.011,22968,3.447,23048,3.941,23049,3.941,23050,9.566,23051,3.941,23052,3.941,23053,3.941,23054,3.941,23055,3.941,23056,8.782,23057,3.941,23058,3.643,23059,3.941,23060,3.941,23061,7.728,23062,3.941,23063,3.941,23064,7.144,23065,3.941,23066,3.941,23067,3.941,23068,3.447,23069,3.643,23070,3.941,23071,3.301,23072,3.941,23073,7.728,23074,8.366,23075,5.218,23076,3.941,23077,3.941,23078,7.681,23079,3.941,23080,6.231,23081,3.447,23082,3.941,23083,6.231,23084,3.941,23085,3.941,23086,3.941,23087,3.941,23088,3.941,23089,3.941,23090,3.941,23091,3.643,23092,3.941,23093,3.941,23094,3.643,23095,3.941,23096,6.231,23097,3.643,23098,3.941,23099,3.941,23100,3.941,23101,8.119,23102,3.941,23103,3.643,23104,3.941,23105,3.941,23106,3.941,23107,3.643,23108,3.941,23109,3.941,23110,6.231,23111,3.941,23112,3.941,23113,3.941,23114,3.447,23115,3.941,23116,3.643,23117,3.941,23118,3.941,23119,3.941,23120,3.941,23121,3.643,23122,3.941,23123,3.941,23124,3.941,23125,3.941,23126,3.941,23127,5.76,23128,3.941,23129,3.941,23130,6.231,23131,6.231,23132,7.728,23133,7.728,23134,6.231,23135,6.231,23136,3.643,23137,3.941,23138,3.941,23139,3.301,23140,6.231,23141,3.941,23142,3.941,23143,3.941,23144,3.941,23145,3.447,23146,3.941,23147,3.941,23148,3.941,23149,3.941,23150,3.941,23151,6.231,23152,3.941,23153,3.643,23154,3.941]],["title/additional-documentation/nestjs-application/file-structure.html",[5,0.006,1014,2.307,1430,2.839,5283,3.788]],["body/additional-documentation/nestjs-application/file-structure.html",[0,0.376,2,0.371,3,0.008,5,0.014,9,2.56,27,0.388,30,0.001,31,0.557,32,0.074,34,0.565,36,1.165,72,3.975,95,0.07,100,3.327,101,0.016,103,0,104,0,105,0.727,112,1.519,127,0.416,154,1.522,163,2.449,165,0.54,185,1.292,192,2.053,206,4.464,208,2.574,215,1.061,217,1.036,221,1.257,227,0.715,234,1.119,235,1.876,240,1.054,309,5.046,319,0.993,331,2.116,334,0.357,336,1.3,355,1.336,359,1.894,364,1.45,368,1.302,374,2.199,380,2.112,381,3.133,425,3.35,427,4.082,428,1.292,431,1.319,432,1.999,433,3.559,441,1.992,447,2.856,449,2.155,461,1.576,481,3.981,491,2.673,494,1.992,513,2.745,535,5.558,543,1.691,569,2.281,571,2.088,574,5.472,575,1.992,577,1.876,667,1.575,672,4.496,687,1.417,696,1.728,704,3.941,722,1.482,744,3.949,766,5.051,768,4.729,769,3.221,782,2.907,839,2.591,845,2.416,883,3.376,940,5.022,951,2.532,954,2.471,956,3.556,957,1.842,1016,1.167,1021,1.768,1125,3.221,1141,5.774,1142,2.516,1174,5.009,1184,3.012,1190,1.657,1273,5.396,1294,4.254,1414,5.558,1415,4.225,1422,5.916,1423,2.175,1430,4.043,1431,1.893,1583,2.175,1605,1.971,1646,1.859,1647,5.009,1750,3.056,1843,1.575,1854,2.208,1855,3.414,1856,2.685,1870,4.752,1878,1.796,1883,5.566,1884,2.936,1890,6.428,1904,2.882,1905,6.989,1906,2.603,1920,3.458,1939,2.322,1942,2.281,2051,1.893,2075,1.827,2146,3.667,2241,3.667,2257,2.014,2268,3.095,2303,2.202,2450,1.893,2469,4.446,2471,5.209,2476,2.783,2477,2.907,2531,3.724,2536,5.259,2538,2.367,2630,2.088,2727,1.594,2736,4.51,2848,1.604,2929,1.912,3050,2.532,3282,3.414,3341,2.685,3364,1.876,3405,2.281,3452,2.088,3492,6.361,3578,3.556,3649,2.322,3743,1.95,3812,4.254,3813,2.281,3814,2.471,3833,3.729,3834,4.139,3835,2.116,3961,2.062,3981,3.949,4007,2.088,4137,2.907,4140,2.175,4466,3.156,4565,4.389,4588,1.715,4614,2.532,4661,1.754,4663,2.281,5022,5.066,5159,2.145,5283,2.603,5406,4.276,5449,2.416,5461,2.532,6064,2.116,6098,2.175,6116,3.072,6153,2.281,6154,2.208,6161,2.367,6430,5.396,6439,3.796,6444,2.685,6472,4.578,6858,3.925,7031,4.389,7044,3.458,7088,2.532,7493,2.532,7745,2.532,7821,4.729,8050,2.416,8155,6.37,8252,2.532,8303,2.532,8313,2.783,8369,2.014,8404,6.846,8890,2.532,9062,2.907,9545,3.072,9550,3.072,9589,2.532,9603,3.458,9620,2.603,9621,6.998,9622,5.566,9623,2.685,9624,2.783,9625,2.783,9739,2.907,9756,4.55,9757,2.603,9914,2.471,9925,2.367,10657,2.783,10708,2.783,10820,2.685,11317,2.685,11349,5.022,11350,2.532,11742,2.783,11743,5.771,11774,4.386,11784,5.122,11798,2.907,11837,6.027,12041,4.55,12042,2.532,12311,5.009,12850,6.871,13132,2.907,13197,3.072,13890,4.254,14851,2.685,14912,3.072,14974,3.072,14975,3.072,14976,3.072,14977,2.907,15015,2.907,15238,2.532,15276,6.027,15844,2.603,16790,2.603,17014,2.367,17504,4.752,18607,7.374,18850,2.907,19658,4.55,19750,3.072,20621,7.374,22205,4.389,22214,2.783,22230,2.783,22231,5.396,22240,2.907,22248,5.771,22250,2.685,22252,6.428,22257,2.907,22259,2.783,22301,3.072,22303,2.685,22374,2.783,22389,2.907,22395,2.907,22396,3.072,22415,2.907,22419,3.072,22439,2.685,22495,3.072,22533,2.685,22601,2.907,22708,6.37,22778,2.907,22785,2.783,22802,3.072,22820,2.783,22848,3.072,22849,4.389,22859,2.783,22866,6.665,22867,6.027,22876,2.783,22921,5.771,22927,4.55,22966,3.072,22967,6.027,22968,2.907,22971,3.072,23068,2.907,23074,2.907,23075,2.783,23078,2.907,23136,3.072,23155,7.357,23156,4.752,23157,6.37,23158,3.072,23159,3.324,23160,5.433,23161,3.324,23162,9.417,23163,7.958,23164,3.324,23165,3.324,23166,3.324,23167,5.433,23168,7.958,23169,3.324,23170,3.324,23171,3.324,23172,3.324,23173,5.433,23174,2.907,23175,3.324,23176,3.324,23177,3.324,23178,3.324,23179,3.324,23180,3.324,23181,3.324,23182,3.324,23183,3.324,23184,3.324,23185,3.324,23186,3.324,23187,3.324,23188,3.072,23189,3.324,23190,3.324,23191,3.324,23192,3.324,23193,3.324,23194,3.324,23195,3.324,23196,3.324,23197,3.324,23198,3.324,23199,3.324,23200,3.324,23201,3.072,23202,3.324,23203,3.072,23204,5.022,23205,3.324,23206,3.324,23207,3.324,23208,3.324,23209,3.324,23210,3.324,23211,3.324,23212,3.324,23213,3.324,23214,3.324,23215,3.324,23216,3.324,23217,3.324,23218,3.324,23219,3.324,23220,3.324,23221,3.324,23222,3.324,23223,3.324,23224,3.072,23225,3.324,23226,3.324,23227,3.324,23228,3.324,23229,3.324,23230,3.072,23231,3.324,23232,3.324,23233,3.324,23234,3.324,23235,3.324,23236,3.324,23237,6.37,23238,2.907,23239,5.433,23240,3.324,23241,3.324,23242,3.324,23243,3.324,23244,3.324,23245,3.324]],["title/additional-documentation/nestjs-application/api-design.html",[1014,2.307,1414,2.706,1430,2.839,22859,4.051]],["body/additional-documentation/nestjs-application/api-design.html",[30,0.001,103,0.001,104,0.001,22598,9.81]],["title/additional-documentation/nestjs-application/logging.html",[1014,2.696,1430,3.317,6437,4.109]],["body/additional-documentation/nestjs-application/logging.html",[0,0.35,3,0.019,8,0.948,26,1.664,30,0.001,39,3.085,95,0.101,101,0.017,103,0.001,104,0.001,116,2.445,163,3.74,199,2.967,204,3.486,214,3.24,215,3.28,216,1.452,227,0.814,234,1.275,235,4.431,277,3.168,334,0.843,415,4.243,425,2.092,574,4.511,675,4.352,688,4.022,728,3.002,738,4.081,777,8.047,839,3.743,883,3.33,1141,4.813,1216,4.942,1423,6.725,1464,5.597,1465,5.303,1467,2.506,1469,3.887,2356,5.649,2357,3.576,2450,4.472,2461,4.758,2475,5.388,2536,7.284,4007,4.932,4619,6.866,4663,7.862,5460,5.138,5467,6.341,6333,6.341,6437,8.835,6834,5.707,6887,5.707,7810,4.813,8310,9.212,8311,7.257,8342,6.147,8369,4.758,10877,6.341,11601,5.981,11743,6.574,12043,5.836,12079,8.988,12080,6.866,12312,6.147,12617,6.574,13897,6.341,14433,6.574,18980,6.866,20439,8.047,22437,6.147,22481,7.257,22533,6.341,22849,6.341,23246,7.85,23247,7.85,23248,7.85,23249,10.276,23250,7.85,23251,7.85,23252,7.85,23253,7.85,23254,7.85,23255,7.85,23256,7.85,23257,7.85,23258,7.85,23259,7.85,23260,7.257,23261,7.257,23262,7.85]],["title/additional-documentation/nestjs-application/exception-handling.html",[1014,2.307,1430,2.839,6436,3.445,8369,2.932]],["body/additional-documentation/nestjs-application/exception-handling.html",[0,0.309,9,3.076,30,0.001,31,0.366,32,0.161,47,0.804,48,5.31,51,4.407,72,4.11,101,0.015,103,0.001,104,0.001,111,1.309,116,2.033,163,3.209,204,4.52,214,2.86,215,2.083,216,1.678,217,0.849,227,0.677,234,1.83,240,2.878,305,2.971,319,3.117,334,0.701,367,3.113,404,1.176,406,2.123,407,5.273,417,4.745,425,1.739,503,5.563,565,4.522,571,4.101,574,4.578,672,4.649,676,3.528,685,3.445,689,3.651,722,4.045,744,4.745,784,3.528,883,2.769,954,4.852,1016,3.185,1142,4.83,1216,4.803,1342,4.101,1369,3.557,1396,3.719,1397,2.186,1413,6.034,1414,5.074,1415,6.394,1421,6.595,1423,8.023,1430,5.323,1431,5.94,1433,4.002,1438,4.212,1464,5.646,1469,3.232,1733,5.273,1741,5.467,1748,6.034,1855,4.101,2004,4.48,2268,3.719,2466,5.467,2468,3.912,2475,4.48,2536,7.348,3050,4.973,3281,4.337,3303,4.648,3492,6.183,3580,2.658,3812,5.111,3831,9.567,3832,5.273,3837,8.166,4007,6.552,4614,4.973,4663,4.48,5469,5.467,6436,4.648,6437,6.595,6443,5.467,7990,5.467,8288,3.394,8303,7.945,8310,4.56,8362,5.111,8368,6.034,8369,7.991,8371,5.467,8745,3.83,8746,4.002,9603,5.775,9757,5.111,10803,6.034,12043,4.852,13899,5.273,14909,5.467,20764,6.034,22198,5.467,22277,6.034,22437,5.111,22603,12.037,23075,5.467,23139,5.467,23188,6.034,23263,6.034,23264,6.528,23265,9.073,23266,6.528,23267,6.528,23268,6.528,23269,6.528,23270,6.528,23271,6.528,23272,6.528,23273,6.528,23274,6.528,23275,6.528,23276,6.528,23277,6.528,23278,6.528,23279,6.034,23280,6.528,23281,6.528,23282,6.528,23283,6.528,23284,6.034,23285,6.528]],["title/additional-documentation/nestjs-application/domain-object-validation.html",[359,1.474,1014,2.016,1415,2.592,1430,2.481,1904,1.768]],["body/additional-documentation/nestjs-application/domain-object-validation.html",[0,0.306,30,0.001,103,0.001,104,0.001,116,2.8,188,3.32,334,1.204,347,1.818,359,4.585,475,5.477,574,3.946,667,4.261,685,4.744,692,3.358,704,4.451,783,5.448,957,6.211,1415,5.511,1805,5.972,1855,5.648,1904,5.501,1945,6.169,2146,6.067,2439,6.574,2460,7.528,2468,6.716,2475,7.69,2531,4.858,2536,5.387,2649,4.996,2849,3.888,3106,5.073,3498,7.528,5443,7.862,5449,6.534,6098,5.883,7982,6.682,8179,6.067,9621,6.067,9888,6.682,10298,8.537,11615,6.401,12311,6.534,13890,7.039,18877,6.848,22226,7.261,22335,9.383,22367,7.261,22497,8.309,22778,7.862,22788,10.358,23069,8.309,23237,12.815,23286,8.989,23287,8.989,23288,8.989,23289,8.989,23290,11.205,23291,8.989,23292,8.989,23293,8.989,23294,8.989,23295,11.205,23296,8.989]],["title/additional-documentation/nestjs-application/testing.html",[1014,2.696,1430,3.317,11372,4.026]],["body/additional-documentation/nestjs-application/testing.html",[0,0.18,27,0.165,29,0.415,30,0.001,31,0.297,32,0.106,35,0.485,36,1.675,51,1.125,72,4.368,79,3.504,94,1.125,95,0.03,96,0.633,100,0.775,103,0,104,0,112,2.407,144,1.736,150,1.387,163,3.065,188,1.48,199,0.875,200,1.65,204,3.475,209,0.765,217,1.395,221,2.305,227,0.81,234,0.376,235,3.563,290,1.358,309,4.492,319,1.197,379,0.908,380,0.851,381,1.762,394,2.282,425,2.362,428,2.453,432,1.949,443,0.907,444,0.885,447,1.661,449,0.919,460,3.046,461,0.916,475,1.132,481,0.889,500,1.589,511,1.17,535,3.384,569,1.589,571,2.517,573,1.764,574,4.706,575,1.388,672,1.186,687,4.366,688,3.234,691,4.154,698,1.283,704,4.389,711,1.373,728,2.728,744,1.683,766,2.64,768,2.75,774,1.589,779,4.692,784,1.251,795,1.42,836,2.327,839,1.104,883,3.314,905,0.964,948,3.053,954,1.721,1018,1.494,1125,7.604,1126,1.813,1129,2.304,1142,4.105,1174,1.683,1184,3.499,1189,1.091,1190,1.154,1195,1.764,1307,1.649,1369,2.183,1414,4.957,1422,1.721,1423,1.515,1431,1.319,1433,1.42,1435,3.504,1477,1.494,1581,4.495,1584,2.14,1627,2.025,1646,1.295,1647,1.683,1734,2.978,1750,3.464,1804,1.403,1805,2.662,1854,1.538,1855,1.455,1857,1.764,1869,1.813,1939,3.7,1942,2.75,1945,1.589,1946,1.538,1948,5.779,1949,3.504,1951,4.278,2051,1.319,2075,2.202,2142,1.721,2144,1.307,2145,2.517,2222,1.649,2226,1.683,2276,2.025,2355,3.046,2401,4.589,2412,2.55,2439,1.358,2440,3.596,2450,4.773,2461,3.21,2468,2.401,2469,8.241,2471,1.515,2476,1.939,2479,2.025,2504,1.764,2524,1.358,2531,4.529,2536,5.779,2537,5.112,2538,4.495,2630,1.455,2642,1.683,2688,3.355,2929,1.332,3010,2.241,3090,1.001,3104,1.049,3106,1.307,3110,1.154,3144,4.943,3281,1.538,3303,1.649,3319,2.428,3364,1.307,3430,1.618,3492,2.376,3495,6.868,3586,1.813,3649,1.618,3813,2.75,3833,1.589,3834,1.764,3835,1.474,3937,2.978,4139,2.025,4140,2.622,4514,4.589,4588,2.068,4614,3.053,4661,1.222,4663,3.635,4669,1.813,5022,1.474,5050,1.474,5058,1.538,5183,3.328,5283,5.586,5289,1.939,5406,2.486,5449,2.912,5460,1.515,5461,1.764,5463,1.764,5464,1.87,5465,1.764,5471,1.764,5496,1.939,5609,1.721,5630,2.75,5684,1.87,6098,1.515,6111,1.939,6154,2.662,6229,1.538,6434,1.618,6436,2.853,6472,1.538,6528,1.649,6532,1.721,6761,4.589,6833,1.455,6834,1.683,6844,1.721,6858,1.319,6885,3.466,6935,6.239,7027,1.437,7034,1.813,7483,1.618,7493,3.053,7773,3.053,7801,1.813,7803,3.417,7812,3.504,7818,3.355,7821,2.75,7920,2.025,8050,2.912,8252,1.764,8312,6.588,8716,7.495,9342,1.813,9589,5.435,9590,2.14,9603,4.541,9620,3.137,9621,1.563,9757,6.94,9786,1.764,10004,1.813,10298,1.764,10299,2.14,10318,3.236,10607,1.683,10610,3.053,10645,2.799,10651,5.678,10654,1.721,10687,1.939,10862,1.813,10872,2.14,11350,1.764,11351,1.813,11370,7.22,11372,7.778,11609,1.683,11614,2.704,11615,1.649,11757,1.813,11758,2.14,11762,1.683,11774,2.55,11837,2.025,12042,3.053,12311,2.912,12618,2.14,13037,4.278,13044,1.87,13143,1.939,13403,2.025,13410,5.521,13638,1.87,13785,2.14,13831,2.025,13836,2.025,13889,3.504,13890,1.813,13897,1.87,13898,2.14,13899,1.87,13917,1.649,14107,3.937,14167,1.813,14429,3.704,14433,3.355,15016,2.025,15068,3.236,15235,3.355,15445,2.14,15844,1.813,16796,1.87,17014,3.772,17084,1.939,17094,2.025,17313,1.939,17827,2.025,17861,2.025,17964,3.504,18612,1.939,18877,1.764,19033,2.025,19650,1.87,19658,1.939,19785,3.236,19835,3.504,19837,2.14,19843,2.14,20034,1.939,20035,1.87,20216,3.704,20218,4.809,20219,5.835,20223,5.835,20228,5.521,20229,2.978,20487,3.504,20621,3.137,21263,7.746,21276,3.236,21517,4.896,22123,2.025,22147,2.14,22199,3.053,22201,3.355,22210,3.355,22215,1.764,22222,1.764,22226,1.87,22228,2.025,22231,4.943,22250,1.87,22266,1.939,22278,2.14,22281,2.14,22284,2.14,22286,2.14,22298,1.87,22299,1.939,22303,1.87,22304,2.14,22319,2.14,22320,2.14,22335,3.355,22352,3.504,22367,4.278,22374,1.939,22392,2.14,22395,2.025,22401,2.14,22409,2.025,22411,2.025,22416,2.025,22439,1.87,22480,2.025,22486,2.025,22519,2.025,22533,1.87,22553,2.025,22598,2.025,22709,2.14,22727,2.14,22761,2.14,22789,2.14,22793,2.14,22799,2.025,22833,2.025,22846,1.939,22866,1.939,22867,2.025,22876,4.436,22891,4.896,22893,3.704,22921,1.939,22927,7.422,22965,2.025,23032,2.14,23064,2.14,23074,2.025,23075,1.939,23078,3.504,23081,2.025,23094,2.14,23101,2.14,23103,2.14,23114,3.504,23116,2.14,23121,8.913,23139,3.355,23145,3.504,23153,3.704,23155,4.896,23156,2.025,23157,3.704,23158,2.14,23174,3.504,23203,2.14,23204,2.14,23230,2.14,23261,2.14,23263,2.14,23279,2.14,23297,2.315,23298,2.315,23299,2.315,23300,6.312,23301,2.025,23302,2.315,23303,5.296,23304,2.315,23305,4.007,23306,2.315,23307,2.315,23308,4.007,23309,2.315,23310,2.315,23311,2.315,23312,2.025,23313,2.315,23314,2.315,23315,2.315,23316,2.315,23317,2.315,23318,2.315,23319,2.315,23320,2.315,23321,2.315,23322,2.315,23323,2.315,23324,2.315,23325,6.312,23326,2.315,23327,2.14,23328,2.315,23329,2.315,23330,2.14,23331,2.315,23332,2.315,23333,7.811,23334,2.315,23335,2.315,23336,2.315,23337,2.315,23338,2.315,23339,2.14,23340,3.704,23341,4.007,23342,7.133,23343,4.007,23344,2.315,23345,2.315,23346,2.025,23347,2.315,23348,5.296,23349,4.007,23350,4.007,23351,7.811,23352,4.007,23353,2.315,23354,2.315,23355,2.14,23356,2.025,23357,5.296,23358,2.315,23359,5.296,23360,4.007,23361,7.133,23362,4.007,23363,5.296,23364,2.315,23365,2.315,23366,2.315,23367,4.007,23368,8.379,23369,2.315,23370,2.315,23371,2.315,23372,2.315,23373,2.315,23374,2.315,23375,2.315,23376,2.315,23377,2.315,23378,2.315,23379,2.315,23380,2.315,23381,2.315,23382,2.315,23383,2.315,23384,2.315,23385,2.315,23386,4.007,23387,2.315,23388,2.14,23389,5.296,23390,2.315,23391,2.315,23392,2.315,23393,2.315,23394,5.296,23395,2.315,23396,4.007,23397,4.007,23398,2.315,23399,2.315,23400,2.315,23401,2.315,23402,2.315,23403,4.007,23404,4.007,23405,4.007,23406,5.296,23407,2.315,23408,2.315,23409,4.007,23410,4.007,23411,4.007,23412,5.296,23413,2.315,23414,2.315,23415,2.315,23416,4.007,23417,2.315,23418,4.007,23419,2.315,23420,2.315,23421,2.315,23422,2.315,23423,4.007,23424,4.007,23425,2.315,23426,2.315,23427,2.315,23428,2.315,23429,7.133,23430,2.315,23431,5.296,23432,2.14,23433,2.025,23434,2.315,23435,2.315,23436,2.315,23437,2.315,23438,2.315,23439,2.315,23440,2.315,23441,2.315,23442,6.312,23443,2.315,23444,2.315,23445,4.007,23446,4.007,23447,2.315,23448,4.007,23449,2.315,23450,2.315,23451,2.315,23452,2.315,23453,2.315,23454,2.315,23455,2.315,23456,2.14,23457,2.315,23458,2.315,23459,2.315,23460,2.315,23461,2.315,23462,2.315,23463,4.007,23464,2.315,23465,2.315,23466,2.315,23467,2.315,23468,2.315,23469,2.315,23470,2.315,23471,2.315,23472,2.315,23473,2.315,23474,2.315]],["title/additional-documentation/nestjs-application/vscode.html",[1014,2.696,1430,3.317,22203,4.567]],["body/additional-documentation/nestjs-application/vscode.html",[5,0.014,30,0.001,72,4.364,103,0.001,104,0.001,210,6.305,722,5.213,795,5.907,950,7.544,1021,5.124,1125,5.712,2226,7.003,2469,7.544,3492,6.933,3578,6.034,3834,7.34,3835,7.443,4661,6.171,6154,6.4,6229,6.4,6432,8.068,7982,7.161,11779,7.782,11784,7.161,14401,8.426,20218,8.908,22203,9.445,22232,10.227,22408,8.068,22499,8.906,22670,8.426,22784,8.906,22836,11.638,22865,8.906,22872,8.068,22927,8.068,22967,8.426,23002,8.906,23038,8.906,23071,8.068,23174,8.426,23238,10.227,23475,9.634,23476,9.634,23477,9.634,23478,9.634,23479,9.634,23480,9.634,23481,9.634]],["title/additional-documentation/nestjs-application/git.html",[1014,2.696,1430,3.317,22204,4.734]],["body/additional-documentation/nestjs-application/git.html",[30,0.001,31,0.419,55,2.41,72,3.391,77,4.765,103,0.001,104,0.001,154,3.428,309,4.305,319,2.237,379,1.696,444,2.863,543,3.809,569,5.138,574,3.286,722,3.338,728,2.863,957,6.203,1021,3.982,1128,6.269,1142,5.183,1189,3.527,1216,2.933,1397,2.506,1644,6.269,1645,6.047,1646,5.57,1805,6.616,1854,7.435,1874,7.091,1941,4.765,1946,4.973,1959,4.079,1965,10.033,1966,9.788,2144,4.225,2241,5.052,2268,4.264,2439,4.392,2450,4.264,2469,6.426,2471,4.899,2524,4.392,2536,6.707,2659,3.507,2794,4.438,2848,4.807,3430,5.23,4661,3.951,5058,7.435,5406,4.645,5465,5.703,6115,8.71,6439,5.23,6712,4.83,6829,5.862,7044,4.765,7745,5.703,7821,5.138,8312,5.565,9342,5.862,10142,5.23,11613,4.899,11617,5.565,11757,5.862,11869,5.331,11870,5.331,12014,6.547,12041,6.269,12310,6.547,13836,6.547,13838,8.867,14107,5.565,15157,6.547,19666,6.92,22204,9.99,22221,6.547,22226,6.047,22236,6.547,22237,6.547,22248,9.372,22253,8.34,22299,9.99,22300,6.92,22313,9.206,22437,7.798,22439,6.047,22486,9.788,22565,6.92,22730,6.92,22849,9.039,22879,6.92,22900,8.71,23058,6.92,23071,8.34,23091,6.92,23156,8.71,23201,6.92,23432,6.92,23433,6.547,23482,7.486,23483,7.486,23484,7.486,23485,7.486,23486,7.486,23487,7.486,23488,7.486,23489,7.486,23490,7.486,23491,7.486,23492,7.486,23493,7.486,23494,7.486,23495,7.486,23496,9.958,23497,7.486,23498,7.486,23499,9.958,23500,7.486,23501,7.486,23502,7.486,23503,7.486,23504,7.486,23505,7.486,23506,7.486,23507,7.486,23508,7.486,23509,7.486,23510,7.486,23511,7.486]],["title/additional-documentation/nestjs-application/keycloak.html",[773,3.598,1014,2.696,1430,3.317]],["body/additional-documentation/nestjs-application/keycloak.html",[5,0.005,18,2.269,30,0.001,31,0.601,51,3.351,53,6.105,78,7.985,87,3.462,95,0.121,101,0.016,103,0,104,0,163,3.304,235,2.534,355,1.804,363,4.391,379,1.563,432,1.652,443,1.759,444,1.717,461,1.578,538,2.023,540,5.014,569,3.082,573,3.421,574,4.138,722,3.076,728,2.638,773,8.566,774,3.082,803,2.786,883,1.905,938,3.264,954,3.338,958,5.777,960,3.082,1021,5.409,1125,4.09,1161,3.082,1184,2.489,1270,2.662,1271,5.346,1323,3.137,1396,3.93,1414,3.858,1423,2.939,1615,5.777,1639,5.346,1646,3.858,1849,3.462,1854,4.583,1920,2.858,1941,2.858,2035,3.728,2075,6.34,2132,4.441,2144,2.534,2226,3.264,2257,2.722,2362,6.635,2374,9.034,2385,2.753,2461,2.722,2470,5.764,2471,2.939,2475,3.082,2536,6.915,2615,3.198,2800,7.905,2850,6.915,2929,3.967,3090,3.633,3104,2.034,3282,5.277,3490,5.764,3495,4.515,3580,1.828,3584,3.031,3835,2.858,3909,6.399,4514,3.264,4588,4.335,4663,3.082,5406,2.786,5455,3.421,5510,3.928,6154,2.983,6375,3.338,6431,3.516,6473,2.608,6712,4.451,6761,3.264,6833,4.334,7027,4.28,7044,2.858,7280,6.851,7799,5.868,7982,5.128,8310,4.819,8312,3.338,8716,8.671,9621,3.031,10049,3.516,10289,3.761,10609,3.338,10679,2.722,11156,6.105,11372,5.981,11585,2.558,11603,7.748,11613,2.939,11614,5.669,11631,3.516,11644,7.38,11685,8.243,11714,4.28,11742,3.761,11812,3.928,11941,3.627,12927,6.468,13283,7.346,13380,7.346,13383,7.613,13421,7.18,13515,3.928,13638,3.627,13640,4.151,13838,6.244,14401,3.928,14849,3.627,14896,6.784,15255,4.151,15378,3.761,15601,3.761,17014,5.981,19840,3.928,20218,3.421,20229,5.128,21276,3.627,22199,3.421,22202,3.928,22215,9.5,22225,3.928,22253,3.761,22303,3.627,22321,3.928,22361,4.151,22437,5.402,22469,4.151,22502,4.151,22535,4.151,22607,4.151,22857,8.894,22872,7.892,22935,10.748,22950,9.401,22951,7.764,22952,6.377,22953,6.377,22954,6.377,22955,8.712,22956,6.377,22957,6.377,22958,8.712,22960,4.151,23034,6.377,23330,4.151,23339,4.151,23346,3.928,23388,4.151,23512,4.49,23513,4.49,23514,4.49,23515,4.49,23516,9.424,23517,4.49,23518,4.49,23519,4.49,23520,6.898,23521,4.49,23522,4.49,23523,6.898,23524,4.49,23525,4.49,23526,4.49,23527,4.49,23528,6.898,23529,4.49,23530,6.898,23531,6.898,23532,6.898,23533,6.898,23534,11.179,23535,6.898,23536,6.898,23537,6.898,23538,6.898,23539,4.49,23540,4.49,23541,4.49,23542,10.169,23543,6.898,23544,6.898,23545,4.49,23546,4.49,23547,6.898,23548,4.49,23549,4.49,23550,4.49,23551,4.49,23552,4.49,23553,4.49,23554,4.49,23555,6.898,23556,4.49,23557,4.49,23558,4.49,23559,6.898,23560,6.898,23561,4.49,23562,4.49,23563,4.49,23564,4.49,23565,4.49,23566,4.49,23567,4.49,23568,4.49,23569,4.49,23570,4.49]],["title/additional-documentation/nestjs-application/rocket.chat.html",[1014,2.696,1430,3.317,23571,5.226]],["body/additional-documentation/nestjs-application/rocket.chat.html",[5,0.009,30,0.001,31,0.416,103,0.001,104,0.001,210,4.863,247,2.911,574,3.262,948,9.912,1021,3.952,1129,4.274,1141,6.076,1167,4.084,1183,5.191,1248,5.661,1294,7.76,1322,5.819,1856,6.002,2075,5.446,2132,3.501,2362,8.247,2374,5.819,2439,4.36,2536,7.426,2850,4.453,3104,3.366,3490,5.1,3491,4.669,3495,4.863,3580,4.034,3835,4.73,6375,5.524,7041,5.661,8887,5.401,10039,5.015,11637,5.401,14896,6.002,15158,6.499,15276,6.499,16529,6.223,17504,8.667,19650,6.002,19659,6.869,20229,5.524,21532,6.223,22215,7.55,22439,6.002,22857,6.499,22885,6.223,22935,10.836,23238,6.499,23571,10.307,23572,7.43,23573,7.43,23574,7.43,23575,7.43,23576,7.43,23577,9.909,23578,7.43,23579,7.43,23580,7.43,23581,7.43,23582,7.43,23583,7.43,23584,9.909,23585,7.43,23586,7.43,23587,7.43,23588,7.43,23589,7.43,23590,7.43,23591,7.43,23592,7.43,23593,7.43,23594,7.43,23595,7.43,23596,7.43,23597,7.43,23598,7.43,23599,7.43,23600,7.43,23601,7.43,23602,7.43,23603,7.43,23604,7.43,23605,7.43,23606,7.43,23607,7.43,23608,7.43,23609,7.43,23610,7.43,23611,7.43,23612,7.43,23613,7.43,23614,7.43,23615,7.43,23616,7.43,23617,7.43,23618,7.43,23619,9.909,23620,9.909,23621,7.43,23622,7.43]],["title/additional-documentation/nestjs-application/configuration.html",[1014,2.696,1430,3.317,2130,2.469]],["body/additional-documentation/nestjs-application/configuration.html",[30,0.001,31,0.482,34,1.029,55,2.155,102,3.035,103,0,104,0.001,199,2.286,200,2.678,204,2.917,234,0.982,319,1.807,367,4.1,379,1.37,428,2.35,483,4.771,511,3.056,571,5.402,574,2.655,575,3.625,576,7.098,577,3.413,671,3.352,688,3.099,722,3.834,728,2.313,769,3.586,883,4.244,946,3.958,951,4.608,956,3.958,1021,3.217,1042,5.065,1125,3.586,1126,4.736,1128,10.306,1141,3.708,1142,4.634,1216,2.369,1396,3.445,1397,2.025,1414,4.809,1433,5.272,1647,6.25,1770,3.513,1804,3.665,1855,3.8,1905,6.977,1920,3.849,1939,4.225,1959,3.296,1965,8.802,2075,4.725,2130,2.642,2132,2.85,2144,3.413,2450,6.207,2468,6.531,2469,5.548,2470,5.901,2475,4.15,2487,5.473,2536,3.625,2537,3.958,2769,6.286,3104,2.74,3281,4.018,3492,6.825,3495,7.131,3834,6.551,3835,8.51,3909,4.608,3981,4.396,4140,3.958,4518,4.885,4661,3.192,5030,3.478,5183,5.402,5289,5.065,5406,5.335,5449,4.396,5463,4.608,5684,4.885,6064,3.849,6153,4.15,6250,5.627,6333,4.885,6436,4.306,6437,4.396,6616,6.531,6712,5.548,6858,4.898,6863,4.608,7453,4.496,7821,4.15,8745,3.548,8890,6.551,9511,5.289,9570,4.736,10303,8.302,10686,4.885,11372,4.306,11614,4.082,11757,4.736,11762,6.25,11774,5.473,11808,5.289,12042,6.551,13062,7.834,13637,8.082,13838,4.496,14107,4.496,14167,6.733,14305,4.885,14851,4.885,15238,4.608,15254,5.065,15598,5.065,15599,4.885,16436,7.52,16790,4.736,16796,6.945,17014,4.306,18262,5.289,20439,4.736,21532,5.065,21764,5.289,22198,7.201,22199,4.608,22200,5.289,22201,5.065,22202,5.289,22203,4.885,22204,7.201,22205,6.945,22206,5.289,22207,5.289,22208,5.289,22209,7.948,22210,7.201,22211,5.59,22212,5.59,22213,5.59,22214,5.065,22215,7.623,22216,5.289,22217,7.948,22218,5.065,22219,5.065,22220,7.948,22221,5.289,22222,4.608,22223,5.065,22224,5.289,22225,5.289,22226,4.885,22227,5.59,22228,5.289,22229,5.59,22230,5.065,22231,4.736,22232,5.289,22233,7.948,22234,7.948,22235,8.751,22236,10.068,22237,5.289,22238,5.59,22239,7.948,22240,5.289,22241,5.59,22242,5.59,22243,5.59,22244,7.948,22245,5.59,22246,5.59,22247,5.59,22248,5.065,22249,5.59,22250,4.885,22251,5.59,22252,6.945,22253,7.201,22254,5.59,22255,5.065,22256,5.59,22257,5.289,22258,5.59,22259,5.065]],["title/additional-documentation/nestjs-application/authorisation.html",[1014,2.696,1430,3.317,3586,4.427]],["body/additional-documentation/nestjs-application/authorisation.html",[0,0.075,5,0.006,8,0.464,9,1.04,10,1.551,26,1.925,27,0.091,30,0.001,31,0.342,32,0.052,33,0.107,34,0.868,47,0.617,72,4.28,74,1.782,94,1.072,101,0.009,103,0,104,0,105,0.295,111,1.224,112,1.526,116,1.197,137,6.074,185,2.69,188,4.218,192,3.313,199,3.693,200,0.687,208,1.435,214,0.696,215,0.704,216,0.944,217,1.535,221,1.891,227,0.898,234,1.124,235,2.169,240,0.7,277,5.038,290,1.294,307,2.414,309,2.936,334,0.237,347,1.032,359,2.65,367,1.052,368,2.393,369,1.355,371,1.06,379,0.5,380,1.929,381,1.698,404,0.398,406,0.718,425,2.517,427,1.388,433,1.452,461,2.91,475,1.878,483,1.052,495,5.645,496,4.247,535,2.06,540,3.71,571,3.837,574,4.529,575,1.322,672,1.969,687,0.94,688,2.615,691,3.682,698,1.223,722,0.984,728,1.469,731,2.413,744,1.604,766,4.833,768,4.751,769,3.621,781,1.93,795,3.744,806,0.898,843,3.055,851,1.052,852,1.052,853,1.139,883,3.673,905,0.919,950,1.728,954,3.794,956,3.341,957,5.033,960,1.514,1021,1.173,1031,1.599,1127,1.404,1129,4.98,1141,1.353,1142,1.022,1184,3.838,1193,2.593,1198,1.541,1352,3.94,1369,1.202,1414,3.415,1423,1.444,1430,3.583,1433,1.353,1583,3.341,1587,2.039,1588,1.541,1605,1.308,1643,1.93,1646,3.872,1750,1.704,1795,1.192,1798,5.952,1799,4.606,1804,3.093,1805,3.391,1820,8.044,1821,6.055,1823,2.384,1843,2.419,1849,6.264,1854,2.553,1855,4.35,1856,1.782,1857,1.681,1858,2.013,1861,3.093,1865,1.005,1869,1.728,1875,2.927,1889,3.794,1904,4.578,1905,1.337,1906,5.951,1941,4.837,1942,1.514,1944,4.191,1945,2.637,1947,1.728,1948,1.322,1949,5.341,1950,4.93,1951,4.123,1959,3.773,1977,2.039,1982,4.149,1984,1.728,2002,1.424,2006,5.862,2007,1.782,2013,1.466,2045,2.684,2051,2.908,2075,2.805,2114,1.489,2132,1.04,2144,1.245,2146,2.593,2257,1.337,2258,2.039,2439,3.583,2440,1.257,2450,4.329,2451,4.123,2452,2.039,2461,1.337,2466,3.218,2468,1.322,2471,1.444,2487,6.403,2524,2.995,2536,6.845,2537,2.515,2538,5.412,2553,0.94,2633,2.449,2649,0.984,2659,2.391,2702,2.3,2727,3.646,2794,1.308,2801,5.818,2925,1.322,3050,3.889,3090,1.662,3102,1.782,3104,3.701,3105,2.446,3106,3.447,3110,4.709,3195,1.369,3282,5.134,3364,1.245,3389,1.444,3393,2.593,3405,3.503,3429,1.404,3491,1.386,3492,2.278,3578,3.573,3579,3.004,3580,0.898,3588,1.64,3649,4.837,3811,1.782,3813,4.751,3832,1.782,3834,1.681,3835,4.407,4140,5.942,4184,4.122,4205,1.295,4515,1.782,4519,2.637,4520,1.93,4533,5.07,4618,1.514,4659,1.466,4661,1.164,4663,6.706,4878,1.353,5022,2.446,5058,2.553,5183,4.775,5283,3.009,5455,1.681,5464,1.782,5684,1.782,6098,2.515,6153,1.514,6251,1.466,6430,1.728,6434,1.541,6439,1.541,6471,1.571,6525,1.782,6532,2.856,6616,1.322,6712,3.94,6761,1.604,6791,1.93,6792,1.848,6834,1.604,6854,2.077,6858,4.932,6860,1.571,6862,3.889,6876,1.728,6881,1.681,6985,2.039,7029,5.341,7039,1.404,7047,2.793,7279,1.782,7363,1.386,7453,1.64,7483,1.541,7773,1.681,7795,1.728,7809,3.889,8050,1.604,8303,1.681,8312,3.794,8313,1.848,8745,1.294,8887,1.604,9062,1.93,9603,3.887,9621,5.129,9623,4.123,9786,1.681,9888,1.64,10039,1.489,10142,1.541,10496,1.848,10502,1.93,10679,3.093,10691,1.64,10709,5.79,10870,1.93,11379,4.718,11615,1.571,11617,1.64,11695,2.039,11714,1.369,11762,5.032,11774,1.404,11839,2.039,11936,2.553,12030,1.782,12043,1.64,12311,5.524,12617,4.274,12942,1.93,13046,3.218,13143,1.848,13144,4.274,13790,3.552,13791,1.848,13834,2.039,13838,1.64,13889,1.93,13890,3.009,13895,1.782,13917,1.571,14167,3.009,14184,3.218,14250,2.039,14261,2.039,14305,1.782,14433,1.848,14561,2.793,14851,3.104,15235,3.218,15238,1.681,15250,1.93,15844,1.728,16337,2.039,16535,1.93,16560,2.039,16637,1.93,16790,1.728,16796,1.782,17014,2.736,17084,1.848,17671,3.361,18346,1.93,18839,2.039,19650,3.104,19651,2.039,19658,1.848,19731,2.039,19833,6.647,19838,4.123,19864,5.645,19982,2.039,20035,1.782,20229,2.856,20247,2.039,20292,3.104,20621,3.009,20622,2.039,21276,4.933,21324,2.039,21325,2.039,22007,3.552,22123,7.941,22218,1.848,22222,3.889,22223,1.848,22230,1.848,22231,1.728,22250,1.782,22298,3.104,22303,5.592,22322,2.039,22330,1.848,22335,3.218,22355,1.93,22370,2.039,22415,3.361,22582,2.039,22599,2.039,22670,5.341,22785,1.848,22795,2.039,22798,2.039,22820,1.848,22846,1.848,22868,2.039,22885,1.848,22886,1.93,22965,4.464,23039,2.039,23068,1.93,23071,3.218,23081,1.93,23097,4.718,23107,2.039,23114,1.93,23127,3.552,23145,4.464,23224,3.552,23260,2.039,23301,1.93,23312,1.93,23327,2.039,23340,2.039,23346,1.93,23355,2.039,23433,1.93,23456,3.552,23623,2.206,23624,2.206,23625,3.842,23626,2.206,23627,5.104,23628,2.206,23629,2.206,23630,2.039,23631,6.107,23632,3.842,23633,2.206,23634,2.206,23635,3.842,23636,3.842,23637,3.842,23638,2.206,23639,2.206,23640,3.842,23641,8.658,23642,2.206,23643,2.206,23644,2.206,23645,3.842,23646,2.206,23647,2.206,23648,2.206,23649,2.206,23650,2.206,23651,2.206,23652,3.842,23653,2.206,23654,2.206,23655,2.206,23656,2.206,23657,5.104,23658,2.206,23659,3.842,23660,3.842,23661,2.206,23662,3.842,23663,2.206,23664,2.206,23665,2.206,23666,2.206,23667,2.206,23668,2.206,23669,2.206,23670,2.206,23671,2.206,23672,2.206,23673,2.206,23674,2.206,23675,3.842,23676,3.842,23677,2.206,23678,2.206,23679,2.206,23680,2.206,23681,3.842,23682,2.206,23683,2.206,23684,2.206,23685,2.206,23686,2.206,23687,2.206,23688,5.104,23689,2.206,23690,2.206,23691,2.206,23692,2.206,23693,2.206,23694,2.206,23695,2.206,23696,2.206,23697,5.104,23698,2.206,23699,6.107,23700,2.206,23701,2.206,23702,3.842,23703,2.206,23704,2.206,23705,2.206,23706,2.206,23707,2.206,23708,2.206,23709,2.206,23710,2.206,23711,2.206,23712,2.206,23713,2.206,23714,2.206,23715,3.842,23716,2.206,23717,2.206,23718,3.842,23719,2.206,23720,2.206,23721,2.206,23722,2.039,23723,2.206,23724,2.206,23725,2.206,23726,3.842,23727,2.206,23728,2.206,23729,2.206,23730,2.206,23731,2.206,23732,2.206,23733,2.206,23734,2.206,23735,2.206,23736,2.206,23737,2.206,23738,2.206,23739,2.206,23740,2.206,23741,2.206]],["title/additional-documentation/nestjs-application/code-style.html",[1014,2.307,1142,2.24,1430,2.839,23356,4.231]],["body/additional-documentation/nestjs-application/code-style.html",[0,0.293,2,1.216,8,1.445,30,0.001,31,0.705,35,1.042,47,0.853,101,0.014,103,0.001,104,0.001,127,1.365,165,0.937,188,3.178,204,3.699,227,0.892,305,2.451,347,2.205,405,2.293,430,3.428,483,5.706,533,7.526,574,3.778,687,5.741,905,3.583,957,4.77,1129,6.27,1142,3.985,1184,6.043,1804,5.215,1855,6.85,1861,5.215,1988,6.397,2144,6.153,2268,4.902,2536,6.534,2538,6.128,3004,7.955,3284,7.206,3541,6.951,3847,7.955,5503,7.526,6588,7.206,7483,6.012,7982,6.397,10859,11.062,11714,5.34,12500,6.738,15600,7.955,22222,6.556,22330,7.206,22609,7.955,22636,7.955,22858,7.955,22921,7.206,23139,7.206,23301,7.526,23312,9.535,23356,7.526,23722,7.955,23742,8.605,23743,8.605,23744,8.605,23745,8.605,23746,8.605,23747,8.605,23748,8.605,23749,8.605]],["title/additional-documentation/nestjs-application/s3clientmodule.html",[1014,2.696,1430,3.317,10588,4.202]],["body/additional-documentation/nestjs-application/s3clientmodule.html",[0,0.373,30,0.001,31,0.486,101,0.02,103,0.001,104,0.001,105,1.161,111,1.74,127,1.087,216,1.605,217,1.426,235,4.898,351,5.5,394,4.944,425,3.201,427,3.135,432,4.033,449,3.443,569,8.245,574,5.274,728,3.319,766,3.63,883,4.65,950,6.796,957,4.811,1858,4.546,2130,3.791,2145,5.453,2146,5.858,2536,5.202,3579,4.27,3580,4.891,4140,7.174,6267,6.977,6268,6.796,6269,6.064,6270,6.064,6271,6.064,6272,6.064,7963,10.901,10496,7.268,10603,7.268,10765,7.011,10766,6.452,11616,7.523,11757,6.796,11980,9.587,13421,6.612,17095,7.591,20292,7.011,20621,6.796,20628,8.023,23284,8.023,23630,8.023,23750,8.679,23751,8.679,23752,8.679,23753,8.679,23754,8.679,23755,12.014,23756,8.679,23757,8.679,23758,8.679,23759,8.679]]],"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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/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":{},"injectables/FeathersRosterService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesService.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICleanOptions.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":{},"entities/LessonEntity.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"injectables/LtiToolRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OpenGraphProxyService.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/SortHelper.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["0.0.19",{"_index":22068,"title":{},"body":{"dependencies.html":{}}}],["0.1.1",{"_index":22141,"title":{},"body":{"dependencies.html":{}}}],["0.1.13",{"_index":22170,"title":{},"body":{"dependencies.html":{}}}],["0.1.4",{"_index":22179,"title":{},"body":{"dependencies.html":{}}}],["0.14.0",{"_index":22102,"title":{},"body":{"dependencies.html":{}}}],["0.4.0",{"_index":22088,"title":{},"body":{"dependencies.html":{}}}],["0.4.11",{"_index":22076,"title":{},"body":{"dependencies.html":{}}}],["0.5.1",{"_index":22193,"title":{},"body":{"dependencies.html":{}}}],["0.5.19",{"_index":22182,"title":{},"body":{"dependencies.html":{}}}],["0.5.2",{"_index":22155,"title":{},"body":{"dependencies.html":{}}}],["0.5.4",{"_index":22145,"title":{},"body":{"dependencies.html":{}}}],["0.5.9",{"_index":22077,"title":{},"body":{"dependencies.html":{}}}],["0.6.0",{"_index":22146,"title":{},"body":{"dependencies.html":{}}}],["0.7.0",{"_index":22181,"title":{},"body":{"dependencies.html":{}}}],["0.8.0",{"_index":22083,"title":{},"body":{"dependencies.html":{}}}],["0.8.1",{"_index":22149,"title":{},"body":{"dependencies.html":{}}}],["0.9.7",{"_index":22143,"title":{},"body":{"dependencies.html":{}}}],["0000d231816abba584714c9e",{"_index":23259,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0000dcfbfb5c7a3f00bf21ab",{"_index":5766,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["0000dcfbfb5c7a3f00bf21ab'})@ismongoid",{"_index":5762,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["05",{"_index":23256,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["08",{"_index":18981,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["0]?.id",{"_index":13279,"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/ICleanOptions.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":{},"classes/SortHelper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"classes/UsersList.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":22165,"title":{},"body":{"dependencies.html":{}}}],["1.0.3",{"_index":22049,"title":{},"body":{"dependencies.html":{}}}],["1.0.5",{"_index":22129,"title":{},"body":{"dependencies.html":{}}}],["1.0.56",{"_index":22117,"title":{},"body":{"dependencies.html":{}}}],["1.0a",{"_index":14559,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"dependencies.html":{}}}],["1.1",{"_index":23445,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.1.1",{"_index":22163,"title":{},"body":{"dependencies.html":{}}}],["1.1.4",{"_index":22171,"title":{},"body":{"dependencies.html":{}}}],["1.15.2",{"_index":22095,"title":{},"body":{"dependencies.html":{}}}],["1.17.3",{"_index":22122,"title":{},"body":{"dependencies.html":{}}}],["1.2",{"_index":23446,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.2.0",{"_index":22093,"title":{},"body":{"dependencies.html":{}}}],["1.21.2",{"_index":22092,"title":{},"body":{"dependencies.html":{}}}],["1.25.0",{"_index":22130,"title":{},"body":{"dependencies.html":{}}}],["1.25.1",{"_index":22070,"title":{},"body":{"dependencies.html":{}}}],["1.28.1",{"_index":22133,"title":{},"body":{"dependencies.html":{}}}],["1.3.4",{"_index":22050,"title":{},"body":{"dependencies.html":{}}}],["1.5.0",{"_index":22091,"title":{},"body":{"dependencies.html":{}}}],["1.6.0",{"_index":22097,"title":{},"body":{"dependencies.html":{}}}],["1.6.2",{"_index":22107,"title":{},"body":{"dependencies.html":{}}}],["1.9.4",{"_index":22157,"title":{},"body":{"dependencies.html":{}}}],["10",{"_index":907,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICleanOptions.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":22062,"title":{},"body":{"dependencies.html":{}}}],["10.1.1",{"_index":22060,"title":{},"body":{"dependencies.html":{}}}],["10.2.4",{"_index":22058,"title":{},"body":{"dependencies.html":{}}}],["100",{"_index":894,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{}}}],["1000",{"_index":1763,"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":19689,"title":{},"body":{"classes/TaskFactory.html":{}}}],["100000",{"_index":7018,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/FileRecordFactory.html":{},"classes/JwtTestFactory.html":{}}}],["1010",{"_index":21970,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["1055",{"_index":1962,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["10start",{"_index":23579,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["11",{"_index":22451,"title":{},"body":{"license.html":{}}}],["123",{"_index":13996,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["1234",{"_index":23489,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["12345",{"_index":19351,"title":{},"body":{"classes/SystemFactory.html":{}}}],["124",{"_index":15275,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["1296",{"_index":17233,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["13",{"_index":4277,"title":{},"body":{"entities/ClassEntity.html":{},"classes/GroupUcMapper.html":{},"interfaces/IClassEntityProps.html":{},"license.html":{}}}],["13.1.0",{"_index":22166,"title":{},"body":{"dependencies.html":{}}}],["14.14",{"_index":10341,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["15",{"_index":11805,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["150",{"_index":4122,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{}}}],["15672:15672",{"_index":22937,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["15:20:30.888",{"_index":23258,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["16",{"_index":22616,"title":{},"body":{"license.html":{}}}],["172.29.173.128",{"_index":23583,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["173",{"_index":2437,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["17t14:17:51.958+00:00",{"_index":18982,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["18.5.0",{"_index":22127,"title":{},"body":{"dependencies.html":{}}}],["19",{"_index":22262,"title":{},"body":{"license.html":{}}}],["1993",{"_index":23502,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["1996",{"_index":22457,"title":{},"body":{"license.html":{}}}],["2",{"_index":7483,"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":14481,"title":{},"body":{"controllers/LoginController.html":{}}}],["2.0",{"_index":5510,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["2.0.0",{"_index":22099,"title":{},"body":{"dependencies.html":{}}}],["2.0.1",{"_index":22066,"title":{},"body":{"dependencies.html":{}}}],["2.0.5",{"_index":22135,"title":{},"body":{"dependencies.html":{}}}],["2.1.0",{"_index":22057,"title":{},"body":{"dependencies.html":{}}}],["2.1.2",{"_index":22101,"title":{},"body":{"dependencies.html":{}}}],["2.1375.0",{"_index":22090,"title":{},"body":{"dependencies.html":{}}}],["2.19.2",{"_index":22142,"title":{},"body":{"dependencies.html":{}}}],["2.2.5",{"_index":22072,"title":{},"body":{"dependencies.html":{}}}],["2.2.6",{"_index":22158,"title":{},"body":{"dependencies.html":{}}}],["2.3.2",{"_index":22131,"title":{},"body":{"dependencies.html":{}}}],["2.8.1",{"_index":22112,"title":{},"body":{"dependencies.html":{}}}],["2.8.32",{"_index":22074,"title":{},"body":{"dependencies.html":{}}}],["2.9.0",{"_index":22098,"title":{},"body":{"dependencies.html":{}}}],["20",{"_index":22455,"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":22264,"title":{},"body":{"license.html":{}}}],["200})@apiinternalservererrorresponse({description",{"_index":21059,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["201",{"_index":2902,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/ShareTokenController.html":{}}}],["2023",{"_index":18980,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["204",{"_index":2947,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["204})@apiresponse({status",{"_index":2910,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["21.1.2",{"_index":22051,"title":{},"body":{"dependencies.html":{}}}],["24",{"_index":6739,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["250",{"_index":3554,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["28",{"_index":22752,"title":{},"body":{"license.html":{}}}],["2984",{"_index":17780,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["2a$10$/dsztv5o6p5piw2ewjsxw.4nhovmjgba.qnwitmuz/uvuc40b.uhu",{"_index":743,"title":{},"body":{"classes/AccountFactory.html":{}}}],["2auth",{"_index":22895,"title":{},"body":{"todo.html":{}}}],["3",{"_index":3541,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LdapService.html":{},"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["3.0",{"_index":22863,"title":{},"body":{"properties.html":{}}}],["3.0.0",{"_index":22056,"title":{},"body":{"dependencies.html":{}}}],["3.0.1",{"_index":22059,"title":{},"body":{"dependencies.html":{}}}],["3.0.2",{"_index":22173,"title":{},"body":{"dependencies.html":{}}}],["3.1.0",{"_index":22160,"title":{},"body":{"dependencies.html":{}}}],["3.100.0",{"_index":22042,"title":{},"body":{"dependencies.html":{}}}],["3.13.0",{"_index":22174,"title":{},"body":{"dependencies.html":{}}}],["3.2.2",{"_index":22081,"title":{},"body":{"dependencies.html":{}}}],["3.3",{"_index":15602,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["3.3.4",{"_index":22156,"title":{},"body":{"dependencies.html":{}}}],["3.8.2",{"_index":22196,"title":{},"body":{"dependencies.html":{}}}],["30",{"_index":22659,"title":{},"body":{"license.html":{}}}],["300",{"_index":13782,"title":{},"body":{"injectables/LdapService.html":{}}}],["3000:3000",{"_index":23616,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["302",{"_index":11446,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["3030/api/v3/docs",{"_index":23024,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["3030/docs",{"_index":23029,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["31",{"_index":23257,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["335",{"_index":12649,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["3532",{"_index":23503,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["389:389",{"_index":23543,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["3990",{"_index":1967,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["4",{"_index":7453,"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":22048,"title":{},"body":{"dependencies.html":{}}}],["4.0.1",{"_index":22164,"title":{},"body":{"dependencies.html":{}}}],["4.1.6",{"_index":22188,"title":{},"body":{"dependencies.html":{}}}],["4.13.2",{"_index":22121,"title":{},"body":{"dependencies.html":{}}}],["4.14.0",{"_index":22120,"title":{},"body":{"dependencies.html":{}}}],["4.17.19",{"_index":22139,"title":{},"body":{"dependencies.html":{}}}],["4.18.2",{"_index":22187,"title":{},"body":{"dependencies.html":{}}}],["4.2.0",{"_index":22114,"title":{},"body":{"dependencies.html":{}}}],["4.2.5",{"_index":22103,"title":{},"body":{"dependencies.html":{}}}],["4.5.11",{"_index":22045,"title":{},"body":{"dependencies.html":{}}}],["4.5.16",{"_index":22044,"title":{},"body":{"dependencies.html":{}}}],["4.6.0",{"_index":22096,"title":{},"body":{"dependencies.html":{}}}],["4.x",{"_index":22930,"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":{},"injectables/OpenGraphProxyService.html":{},"controllers/ShareTokenController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["400/bad",{"_index":23274,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["401",{"_index":5475,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["4011:80",{"_index":23531,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.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":23272,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["4096",{"_index":7001,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["4444",{"_index":22987,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["456",{"_index":14001,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["47494638",{"_index":8788,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["4xx",{"_index":10949,"title":{},"body":{"controllers/GroupController.html":{}}}],["5",{"_index":17090,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["5.0.0",{"_index":22085,"title":{},"body":{"dependencies.html":{}}}],["5.0.1",{"_index":22086,"title":{},"body":{"dependencies.html":{}}}],["5.0.3",{"_index":22124,"title":{},"body":{"dependencies.html":{}}}],["5.1.1",{"_index":22162,"title":{},"body":{"dependencies.html":{}}}],["5.13.20",{"_index":22144,"title":{},"body":{"dependencies.html":{}}}],["5.2.1",{"_index":22055,"title":{},"body":{"dependencies.html":{}}}],["5.4.2",{"_index":22054,"title":{},"body":{"dependencies.html":{}}}],["500",{"_index":8362,"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":18637,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["5069",{"_index":2016,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["5672",{"_index":22939,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["5672:5672",{"_index":22936,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["59",{"_index":13262,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["5xx",{"_index":10951,"title":{},"body":{"controllers/GroupController.html":{}}}],["6.0.0",{"_index":22109,"title":{},"body":{"dependencies.html":{}}}],["6.1.3",{"_index":22110,"title":{},"body":{"dependencies.html":{}}}],["6.2.2",{"_index":22159,"title":{},"body":{"dependencies.html":{}}}],["6.3.0",{"_index":22125,"title":{},"body":{"dependencies.html":{}}}],["6.9.7",{"_index":22167,"title":{},"body":{"dependencies.html":{}}}],["60",{"_index":6740,"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":17557,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["632",{"_index":15439,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["64",{"_index":23486,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["673",{"_index":14105,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["699615164",{"_index":22888,"title":{},"body":{"todo.html":{}}}],["6b",{"_index":22529,"title":{},"body":{"license.html":{}}}],["6d",{"_index":22548,"title":{},"body":{"license.html":{}}}],["7",{"_index":10055,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/TaskUC.html":{},"license.html":{}}}],["7.0.0",{"_index":22113,"title":{},"body":{"dependencies.html":{}}}],["7.1.10",{"_index":22064,"title":{},"body":{"dependencies.html":{}}}],["7.3.1",{"_index":22175,"title":{},"body":{"dependencies.html":{}}}],["789",{"_index":14002,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["8",{"_index":10311,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["8.1.0",{"_index":22105,"title":{},"body":{"dependencies.html":{}}}],["8.3.0",{"_index":22195,"title":{},"body":{"dependencies.html":{}}}],["8.8.2",{"_index":22079,"title":{},"body":{"dependencies.html":{}}}],["80",{"_index":23022,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080",{"_index":22994,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080:8080",{"_index":22952,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["820",{"_index":21323,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["8443:8443",{"_index":22953,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["86400000",{"_index":10119,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["885",{"_index":21972,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["89504e47",{"_index":8786,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["9.0.0",{"_index":22134,"title":{},"body":{"dependencies.html":{}}}],["9.2.0",{"_index":22053,"title":{},"body":{"dependencies.html":{}}}],["9000:9000",{"_index":22944,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001",{"_index":22949,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001:9001",{"_index":22945,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["91",{"_index":15962,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["9229",{"_index":22982,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["99",{"_index":1038,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["990",{"_index":9785,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["999",{"_index":22239,"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":10786,"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":10784,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9]{24",{"_index":2885,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["_${now.getdate()}_${now.gethours()}_${now.getminutes()}_${now.getseconds",{"_index":11694,"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":14893,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.snakecase(classname).touppercase",{"_index":10844,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.snakecase(exceptionname).touppercase",{"_index":10854,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.spec.ts",{"_index":23159,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["_.startcase(exceptionname",{"_index":10855,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.startcase(name",{"_index":10845,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.test.[ts|js",{"_index":23001,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["_.times(20",{"_index":14892,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.union(userpermissions",{"_index":21005,"title":{},"body":{"classes/UserFactory.html":{}}}],["_\\w\\d",{"_index":14905,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["__v",{"_index":9911,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_allowemptyquery",{"_index":5991,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_collectdefaultmetrics",{"_index":16734,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_collectmetricsroutemetrics",{"_index":16735,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_columnboardid",{"_index":4874,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["_contextid",{"_index":3366,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_contexttype",{"_index":3368,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["_creatorid",{"_index":9872,"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":2359,"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":1167,"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":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["_id.$oid",{"_index":11777,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_instance",{"_index":16736,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_iscopyfrom",{"_index":10006,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_isenabled",{"_index":16737,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_lockid",{"_index":9873,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_oauthconfigcache",{"_index":13516,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["_operator",{"_index":5992,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_origintoolid",{"_index":7127,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["_ownerid",{"_index":9874,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_parentid",{"_index":9875,"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":16738,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_queries",{"_index":5993,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_route",{"_index":16739,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_schoolid",{"_index":10007,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_self",{"_index":5319,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["_updatedat",{"_index":1177,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["a.getmetadata().title",{"_index":7468,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["a.localecompare(b",{"_index":18890,"title":{},"body":{"classes/SortHelper.html":{}}}],["a.m",{"_index":22256,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["a.position",{"_index":3274,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["a.userid.$oid",{"_index":13706,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["a.width",{"_index":16444,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["aaa",{"_index":23331,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["abbreviation",{"_index":6456,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ability",{"_index":22589,"title":{},"body":{"license.html":{}}}],["aborted",{"_index":13681,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["above",{"_index":22252,"title":{},"body":{"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":22478,"title":{},"body":{"license.html":{}}}],["absolute",{"_index":11681,"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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/INewsProperties.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":{},"classes/RpcMessageProducer.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/AccountServiceDb.html":{}}}],["abstractaccountservice:108",{"_index":1050,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:113",{"_index":1051,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:117",{"_index":1063,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:122",{"_index":1062,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:127",{"_index":1067,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:146",{"_index":1058,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:18",{"_index":1054,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:24",{"_index":1059,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:29",{"_index":1055,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:34",{"_index":1056,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:42",{"_index":1057,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:47",{"_index":1061,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:83",{"_index":1066,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:91",{"_index":1064,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:99",{"_index":1065,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractbootstrapconsole",{"_index":20214,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["abstraction",{"_index":23630,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["abstraction/detail",{"_index":23062,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractions",{"_index":23099,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractlaunchstrategy",{"_index":106,"title":{"injectables/AbstractLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:114",{"_index":2606,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:125",{"_index":2607,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:141",{"_index":2603,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:167",{"_index":2612,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:18",{"_index":2601,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:19",{"_index":15337,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:204",{"_index":2611,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:24",{"_index":15338,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:249",{"_index":2604,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:26",{"_index":2609,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:33",{"_index":2602,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:50",{"_index":2610,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:65",{"_index":2608,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:9",{"_index":2600,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:91",{"_index":2605,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["acacac",{"_index":6535,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.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/ExternalToolElement.html":{},"classes/FileElement.html":{},"controllers/FwuLearningContentsController.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["accept(visitor",{"_index":2759,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptance",{"_index":22663,"title":{},"body":{"license.html":{}}}],["acceptasync",{"_index":2752,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["acceptasync(visitor",{"_index":2763,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptconsentrequest",{"_index":15809,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequest(challenge",{"_index":15815,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequestbody",{"_index":335,"title":{"interfaces/AcceptConsentRequestBody.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["accepted",{"_index":22875,"title":{},"body":{"todo.html":{}}}],["acceptloginrequest",{"_index":15967,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(challenge",{"_index":16041,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptloginrequest(currentuserid",{"_index":15971,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["acceptloginrequestbody",{"_index":354,"title":{"interfaces/AcceptLoginRequestBody.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest",{"_index":15848,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(@param",{"_index":15926,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptlogoutrequest(challenge",{"_index":16043,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(params",{"_index":15853,"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":{}}}],["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":{},"controllers/ToolReferenceController.html":{},"classes/UsersList.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":1194,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["access.token.claim",{"_index":13482,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["access_token",{"_index":352,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["accessed",{"_index":6863,"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":22327,"title":{},"body":{"license.html":{}}}],["accessing",{"_index":23116,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["accesskeyid",{"_index":6271,"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":{},"classes/ExternalToolElement.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"classes/Group.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"classes/LinkElement.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":{}}}],["accesstoken",{"_index":1625,"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":{},"classes/OauthLoginResponse.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/TestApiClient.html":{},"classes/TokenRequestMapper.html":{}}}],["accesstokendto",{"_index":14548,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accesstokendto.accesstoken",{"_index":14550,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accompanied",{"_index":22514,"title":{},"body":{"license.html":{}}}],["accompanies",{"_index":22831,"title":{},"body":{"license.html":{}}}],["accomplish",{"_index":22329,"title":{},"body":{"license.html":{}}}],["accord",{"_index":22477,"title":{},"body":{"license.html":{}}}],["according",{"_index":22823,"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/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":{},"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":{},"interfaces/OauthCurrentUser.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":12690,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["account.'})@apiresponse({status",{"_index":501,"title":{},"body":{"controllers/AccountController.html":{}}}],["account._id.$oid",{"_index":13716,"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":13576,"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":13577,"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":{},"injectables/Oauth2Strategy.html":{}}}],["account.interface",{"_index":13699,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.interface.ts",{"_index":12059,"title":{},"body":{"interfaces/IJsonAccount.html":{}}}],["account.lastname",{"_index":13578,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.lasttriedfailedlogin",{"_index":647,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["account.lasttriedfailedlogin.gettime",{"_index":1762,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["account.module",{"_index":451,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["account.params.ts",{"_index":16525,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:13",{"_index":16536,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:24",{"_index":16534,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:33",{"_index":16530,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:42",{"_index":16531,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:51",{"_index":16532,"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":1070,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["account.systemid",{"_index":1083,"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":20819,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:28",{"_index":20812,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:34",{"_index":20816,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:49",{"_index":20818,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:61",{"_index":20814,"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":13717,"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?.id",{"_index":1148,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["account?.systemid?.tostring",{"_index":1149,"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":21421,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountcopy.systemid",{"_index":21457,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountdbcaccountid",{"_index":12696,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdbcuserid",{"_index":12699,"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/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":1087,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.credentialhash",{"_index":1092,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.expiresat",{"_index":1088,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.id",{"_index":1080,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.lasttriedfailedlogin",{"_index":1089,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.password",{"_index":1090,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.systemid",{"_index":1084,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.token",{"_index":1093,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.username",{"_index":1086,"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":1073,"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":1076,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(await",{"_index":1109,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(foundaccounts",{"_index":654,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentitytodtomapper.mapsearchresult(accountentities",{"_index":1101,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapsearchresult(await",{"_index":1132,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.maptodto(account",{"_index":1095,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"classes/IdentityManagementService.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/UserMigrationService.html":{}}}],["accountid?.tostring",{"_index":1146,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountidmtodtomapper",{"_index":748,"title":{"injectables/AccountIdmToDtoMapper.html":{}},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.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":{}}}],["accountidmtodtomapperfactory(configservice",{"_index":834,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountidmtodtomapperidm",{"_index":761,"title":{"classes/AccountIdmToDtoMapperIdm.html":{}},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.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":14395,"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/ICleanOptions.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":1135,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accounts.find((a",{"_index":13705,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["accounts.find((foundaccount",{"_index":1747,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["accounts.length",{"_index":13662,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["accounts.map((accountentity",{"_index":656,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accounts_allowanonymousread=false",{"_index":23599,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowemailchange=false",{"_index":23598,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowrealnamechange=false",{"_index":23596,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowusernamechange=false",{"_index":23597,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_method=get",{"_index":23614,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_url=http://localhost:4000/rocketchat/authget",{"_index":23595,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_enabled=true",{"_index":23593,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_url=http://localhost:4000/rocketchat/iframe",{"_index":23594,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_activating=false",{"_index":23600,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_deactivating=false",{"_index":23601,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_setdefaultavatar=false",{"_index":23612,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_usedefaultblockeddomainslist=false",{"_index":23602,"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/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":{},"body":{"modules/AccountModule.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/AccountServiceDb.html":{}}}],["accountserviceidm",{"_index":822,"title":{},"body":{"modules/AccountModule.html":{}}}],["accountsfile",{"_index":12066,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["accountuc",{"_index":439,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountuserid",{"_index":14398,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountvalidationservice",{"_index":819,"title":{"injectables/AccountValidationService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{}}}],["achieve",{"_index":22834,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["achieved",{"_index":23430,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["acknowledges",{"_index":22425,"title":{},"body":{"license.html":{}}}],["acquired",{"_index":22710,"title":{},"body":{"license.html":{}}}],["acr",{"_index":356,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["acr_values",{"_index":16265,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["act",{"_index":23330,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["action",{"_index":1798,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/BaseDomainObject.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.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/KeycloakConfigurationService.html":{},"injectables/LessonRule.html":{},"classes/PatchMyAccountParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["action.enum",{"_index":1800,"title":{},"body":{"interfaces/AuthorizationContext.html":{}}}],["action.read",{"_index":1814,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/LessonRule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["action.write",{"_index":1813,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/ElementUc.html":{},"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{}}}],["actions",{"_index":22670,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.loggable",{"_index":16628,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["actions.loggable.ts",{"_index":16576,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:4",{"_index":16578,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.loggable.ts:7",{"_index":16579,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["actions.read",{"_index":2452,"title":{},"body":{"classes/BaseDomainObject.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.write",{"_index":23688,"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":11613,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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/SystemEntity.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":22366,"title":{},"body":{"license.html":{}}}],["activity",{"_index":22747,"title":{},"body":{"license.html":{}}}],["actor",{"_index":23102,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["actual",{"_index":22730,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["actually",{"_index":22565,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["adapt",{"_index":22348,"title":{},"body":{"license.html":{}}}],["adapter",{"_index":4515,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adapter.mapper",{"_index":4551,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.mapper.ts",{"_index":4560,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.mapper.ts:16",{"_index":4563,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.module",{"_index":4640,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["adapter.module.ts",{"_index":4587,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.service",{"_index":15427,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthModule.html":{}}}],["adapter.service.ts",{"_index":15546,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:11",{"_index":15549,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:14",{"_index":15551,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:23",{"_index":15556,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:37",{"_index":15554,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapters",{"_index":23470,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["add",{"_index":1646,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GroupRoleUnknownLoggable.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/OpenGraphProxyService.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":2753,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addchild(child",{"_index":2766,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addclientprotocolmappers",{"_index":13318,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addclientprotocolmappers(defaultclientinternalid",{"_index":13335,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["added",{"_index":11774,"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":{},"injectables/ToolPermissionHelper.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":13399,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addexternaloauth2datatoconfig",{"_index":9273,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addexternaloauth2datatoconfig(config",{"_index":9287,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addgroupmoderator(groupname",{"_index":1237,"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":{},"classes/UsersList.html":{}}}],["additional",{"_index":1430,"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":{}}}],["additionalinfo",{"_index":13110,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["additionallaunchdataproperties",{"_index":223,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["additionally",{"_index":22230,"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":13670,"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":{}}}],["additionaly",{"_index":22975,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["addlessons",{"_index":4995,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addlessons(builder",{"_index":5005,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addorganization",{"_index":5104,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addorganization(props",{"_index":5113,"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/OAuth2ToolLaunchStrategy.html":{}}}],["addparameters(propertydata",{"_index":133,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addprometheusmetricsmiddlewaresifenabled",{"_index":16797,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["addproperty",{"_index":114,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addproperty(propertydata",{"_index":142,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addquery",{"_index":5998,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addquery(query",{"_index":6012,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addreferences",{"_index":10878,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addreferences(anotherreference",{"_index":7461,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addresourcetofile",{"_index":5105,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addresourcetofile(props",{"_index":5117,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization",{"_index":5267,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization(props",{"_index":5131,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["address",{"_index":16529,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["addressed",{"_index":22345,"title":{},"body":{"license.html":{}}}],["addroom",{"_index":7397,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["addroom(room",{"_index":7418,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["adds",{"_index":11695,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addtasks",{"_index":4996,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addtasks(builder",{"_index":5010,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addteacherroleifadmin",{"_index":17974,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addteacherroleifadmin(externaluser",{"_index":17978,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addtokentowhitelist",{"_index":13203,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtokentowhitelist(redisidentifier",{"_index":13211,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist",{"_index":13186,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist(accountid",{"_index":13192,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["adduser",{"_index":10906,"title":{},"body":{"classes/Group.html":{}}}],["adduser(user",{"_index":10909,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["adduserids",{"_index":15302,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adduserids.tostring",{"_index":15306,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adjust",{"_index":5341,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["adm",{"_index":5120,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["admin",{"_index":10679,"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":23591,"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":1163,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminidandtoken",{"_index":1151,"title":{"interfaces/AdminIdAndToken.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.id",{"_index":1262,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.token",{"_index":1261,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["administration.module",{"_index":12663,"title":{},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration.module.ts",{"_index":13227,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["administration.service",{"_index":13234,"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":13237,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:21",{"_index":13254,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:26",{"_index":13261,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:35",{"_index":13258,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:39",{"_index":13255,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:43",{"_index":13256,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:47",{"_index":13257,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:57",{"_index":13260,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:62",{"_index":13259,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:66",{"_index":13253,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:7",{"_index":13263,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:9",{"_index":13251,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration/interface/keycloak",{"_index":12071,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["administration/keycloak",{"_index":12662,"title":{},"body":{"modules/IdentityManagementModule.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration/service/keycloak",{"_index":13236,"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":1162,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminpermissions",{"_index":21000,"title":{},"body":{"classes/UserFactory.html":{}}}],["adminstrator",{"_index":23655,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["admintoken",{"_index":1164,"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":5111,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["adopted",{"_index":22454,"title":{},"body":{"license.html":{}}}],["adversely",{"_index":22595,"title":{},"body":{"license.html":{}}}],["advised",{"_index":22819,"title":{},"body":{"license.html":{}}}],["aes",{"_index":19267,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["aes_key",{"_index":8268,"title":{},"body":{"modules/EncryptionModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["aeskey",{"_index":8265,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["affected",{"_index":23283,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["affecteduserid",{"_index":21458,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["affects",{"_index":11844,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["affero",{"_index":22261,"title":{},"body":{"license.html":{}}}],["affirmed",{"_index":22692,"title":{},"body":{"license.html":{}}}],["affirms",{"_index":22423,"title":{},"body":{"license.html":{}}}],["afterall",{"_index":23418,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterall(async",{"_index":23409,"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":19806,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["afterduedateornone(duedate",{"_index":19888,"title":{},"body":{"classes/TaskScope.html":{}}}],["aftereach",{"_index":23325,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterwards",{"_index":23230,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["again",{"_index":6251,"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":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["against",{"_index":11350,"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":11344,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["against.ts:8",{"_index":11348,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["age",{"_index":23647,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["aggregate",{"_index":22502,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["aggregate.attrs",{"_index":13478,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["agility",{"_index":23052,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["agnostic",{"_index":13021,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["ago",{"_index":7923,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["agpl",{"_index":22852,"title":{},"body":{"license.html":{},"properties.html":{}}}],["agree",{"_index":22765,"title":{},"body":{"license.html":{}}}],["agreed",{"_index":22807,"title":{},"body":{"license.html":{}}}],["agreement",{"_index":22718,"title":{},"body":{"license.html":{}}}],["aims",{"_index":23048,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["aint",{"_index":23087,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ajax",{"_index":11388,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["ajv",{"_index":22078,"title":{},"body":{"dependencies.html":{}}}],["aktuelle",{"_index":4828,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["alert",{"_index":8328,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alert(loggable",{"_index":8333,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alg",{"_index":1617,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["algorithm",{"_index":1568,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/JwtConstants.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["algorithms",{"_index":1589,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{}}}],["algorithms.includes(jwtconstants.jwtoptions.algorithm",{"_index":1603,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["alias",{"_index":12329,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"additional-documentation/nestjs-application.html":{}}}],["all('seed",{"_index":7843,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["all_entities",{"_index":10583,"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":{}}}],["allcollectionswithfilepaths",{"_index":11711,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.filter",{"_index":11718,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.map((file",{"_index":11722,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["alleging",{"_index":22698,"title":{},"body":{"license.html":{}}}],["allforcreator",{"_index":19796,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(allforfinishedcoursesandlessonsforcreator.query",{"_index":19799,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closeddraftsforcreator.query",{"_index":19798,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closedwithoutparentforcreator.query",{"_index":19797,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons",{"_index":19782,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.addquery(parentsfinished.query",{"_index":19783,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.bydraft(false",{"_index":19784,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator",{"_index":19793,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.addquery(parentsfinished.query",{"_index":19794,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.bycreatorid(parentids.creatorid",{"_index":19795,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allmappers",{"_index":13438,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allmappers.find((mapper",{"_index":13441,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allow",{"_index":6229,"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":3961,"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":{},"controllers/ToolReferenceController.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":4173,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedcontexttype",{"_index":18844,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["alloweddos",{"_index":4189,"title":{},"body":{"injectables/CardUc.html":{}}}],["alloweddos.push(boarddo",{"_index":4188,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedparenttype",{"_index":18837,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["allowedstrings",{"_index":10477,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowedstrings.includes(input",{"_index":10479,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowemptyquery",{"_index":5999,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(isemptyqueryallowed",{"_index":6015,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(true",{"_index":8989,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["allowglobalcontext",{"_index":14898,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{}}}],["allowmodstounmuteusers",{"_index":2069,"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":17013,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["allrooms",{"_index":7398,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["allteacherpseudonyms",{"_index":9711,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["allteacherpseudonyms.map((pseudonym",{"_index":9715,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["alone",{"_index":23322,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["along",{"_index":22480,"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":{},"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":{},"classes/SchoolNumberDuplicateLoggableException.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":4701,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["alternate",{"_index":22314,"title":{},"body":{"license.html":{}}}],["alternative",{"_index":13413,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["alternativetext",{"_index":3253,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["alternativetext(value",{"_index":9842,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["although",{"_index":23227,"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":2091,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["always_deny",{"_index":2092,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["ambiguous",{"_index":19839,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["amount",{"_index":1018,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BoardManagementUc.html":{},"classes/ClassInfoSearchListResponse.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":{}}}],["amqp",{"_index":22080,"title":{},"body":{"dependencies.html":{}}}],["amqp.module.ts",{"_index":10415,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["amqpconnection",{"_index":1338,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{}}}],["amqpconnectionmanager",{"_index":17077,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqplib",{"_index":22082,"title":{},"body":{"dependencies.html":{}}}],["amr",{"_index":357,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["analysis",{"_index":23019,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["analytics",{"_index":22192,"title":{},"body":{"dependencies.html":{}}}],["analytics_features_messages=false",{"_index":23603,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_rooms=false",{"_index":23604,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_users=false",{"_index":23605,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ancestor",{"_index":3646,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestorids",{"_index":3132,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["ancestornodes",{"_index":3655,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestornodes.foreach((node",{"_index":3657,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestors",{"_index":3644,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancillary",{"_index":22664,"title":{},"body":{"license.html":{}}}],["and/opr",{"_index":23366,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["and/or",{"_index":22307,"title":{},"body":{"license.html":{}}}],["annotations",{"_index":23170,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["anonymous",{"_index":7113,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["another",{"_index":15844,"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":10892,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["antareskey",{"_index":6448,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["anti",{"_index":22442,"title":{},"body":{"license.html":{}}}],["antivirus.service",{"_index":1305,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirus_service_options",{"_index":1306,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["antivirusmodule",{"_index":1295,"title":{"modules/AntivirusModule.html":{}},"body":{"modules/AntivirusModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["antivirusmodule.forroot",{"_index":10596,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["antivirusmoduleoptions",{"_index":1299,"title":{"interfaces/AntivirusModuleOptions.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["antivirusservice",{"_index":1304,"title":{"injectables/AntivirusService.html":{}},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["antivirusservice:checkstream",{"_index":1372,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusservice:send",{"_index":1385,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["antivirusserviceoptions",{"_index":1329,"title":{"interfaces/AntivirusServiceOptions.html":{}},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["anyboarddo",{"_index":2557,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.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":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/RecursiveCopyVisitor.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":4169,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["anycontentelementresponse",{"_index":2556,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{}}}],["anyelementcontentbody",{"_index":5604,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":1587,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anyone",{"_index":22489,"title":{},"body":{"license.html":{}}}],["anything",{"_index":22355,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anywhere",{"_index":23136,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["api",{"_index":1414,"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":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.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":{},"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":10653,"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/PseudonymApiModule.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":23003,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v1",{"_index":22211,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3",{"_index":22212,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/docs",{"_index":23025,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v3/news",{"_index":22220,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/sso/oauth",{"_index":15479,"title":{},"body":{"injectables/OAuthService.html":{}}}],["api/v3/sso/oauth/migration",{"_index":15478,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["api_enable_cors=true",{"_index":23607,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_enable_rate_limiter_limit_calls_default=255",{"_index":23592,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_keys",{"_index":23650,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["api_response_time_metric_middleware_successfully_added",{"_index":16788,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["api_validation_error",{"_index":1413,"title":{},"body":{"classes/ApiValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["api_version_path",{"_index":1356,"title":{},"body":{"injectables/AntivirusService.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["api_version_path}/file/download/${filerecord.id}/${encodeuricomponent(filerecord.name",{"_index":6197,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["apibadrequestresponse",{"_index":20502,"title":{},"body":{"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apibody",{"_index":4932,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apicreatedresponse",{"_index":20408,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiexcludeendpoint",{"_index":10259,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10254,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@put(filesstorageinternalactions.updatesecuritystatus",{"_index":10257,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiextramodels",{"_index":4008,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(lti11toolconfigcreateparams",{"_index":8629,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["apiextramodels(lti11toolconfigupdateparams",{"_index":9429,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(submissionitemresponse",{"_index":8224,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiforbiddenresponse",{"_index":16929,"title":{},"body":{"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apifoundresponse",{"_index":13939,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiinternalservererrorresponse",{"_index":21080,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinocontentresponse",{"_index":21081,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinotfoundresponse",{"_index":13940,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiokresponse",{"_index":13941,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/OauthSSOController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.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/GroupController.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"controllers/PseudonymController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apioperation({summary",{"_index":2900,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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/ExternalSourceResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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/OauthLoginResponse.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/PseudonymParams.html":{},"classes/PseudonymResponse.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/SubmissionsResponse.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":18059,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["apiproperty()@apipropertyoptional",{"_index":7260,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["apiproperty()@decodehtmlentities",{"_index":2742,"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":5821,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileRecordParams.html":{},"classes/SchoolIdParams.html":{},"classes/SingleFileParams.html":{}}}],["apiproperty()@isnumber",{"_index":5833,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["apiproperty()@isstring",{"_index":6223,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/DownloadFileParams.html":{}}}],["apiproperty()@isstring()@ismongoid",{"_index":18110,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["apiproperty()@isstring()@isnotempty",{"_index":17335,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["apiproperty()@matches('([a",{"_index":10781,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["apiproperty()@validatenested",{"_index":6226,"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/ClassInfoSearchListResponse.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/TooManyPseudonymsLoggableException.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":2888,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassInfoResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.html":{},"classes/LinkElementResponse.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":5761,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty({pattern",{"_index":2883,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementResponse.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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileUrlParams.html":{},"classes/GroupResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/LinkElementContentBody.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/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionsResponse.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/ClassInfoResponse.html":{},"classes/ClassSortParams.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/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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/GroupResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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/OauthLoginResponse.html":{},"classes/PaginationParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.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/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.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/UpdateElementContentBodyParams.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":3457,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{}}}],["apipropertyoptional()@isoptional()@isboolean",{"_index":10664,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["apipropertyoptional()@isoptional()@isstring()@isnotempty",{"_index":10662,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["apipropertyoptional()@isstring()@isoptional",{"_index":21242,"title":{},"body":{"classes/UserLoginMigrationSearchParams.html":{}}}],["apipropertyoptional({default",{"_index":21759,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({description",{"_index":1403,"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/OauthLoginResponse.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SystemFilterParams.html":{},"classes/TaskResponse.html":{},"classes/TooManyPseudonymsLoggableException.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":10669,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/PreviewParams.html":{}}}],["apipropertyoptional({nullable",{"_index":20674,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["apipropertyoptional({type",{"_index":6159,"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/GroupController.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":17378,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetrichistogram.observe(labels",{"_index":17385,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetriclabelnames",{"_index":17364,"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/GroupController.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/PseudonymController.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/ToolReferenceController.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":14487,"title":{},"body":{"controllers/LoginController.html":{}}}],["apitags('board",{"_index":2937,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apitags('collaborative",{"_index":4625,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["apitags('courses",{"_index":6625,"title":{},"body":{"controllers/CourseController.html":{}}}],["apitags('dashboard",{"_index":7381,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apitags('file",{"_index":10261,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apitags('fwu",{"_index":10726,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["apitags('group",{"_index":10964,"title":{},"body":{"controllers/GroupController.html":{}}}],["apitags('h5p",{"_index":11373,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["apitags('lesson",{"_index":14142,"title":{},"body":{"controllers/LessonController.html":{}}}],["apitags('news",{"_index":14972,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["apitags('oauth2",{"_index":15897,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["apitags('pseudonym",{"_index":16934,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apitags('rooms",{"_index":17704,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apitags('school",{"_index":13947,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["apitags('sharetoken",{"_index":18649,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apitags('sso",{"_index":16128,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apitags('submission",{"_index":19010,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apitags('systems",{"_index":19301,"title":{},"body":{"controllers/SystemController.html":{}}}],["apitags('task",{"_index":19572,"title":{},"body":{"controllers/TaskController.html":{}}}],["apitags('tool",{"_index":20345,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["apitags('user",{"_index":20834,"title":{},"body":{"controllers/UserController.html":{}}}],["apitags('userimport",{"_index":12785,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["apitags('userloginmigration",{"_index":21091,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apitags('usermigration",{"_index":21382,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["apitags('videoconference",{"_index":21738,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiunauthorizedresponse",{"_index":13942,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/PseudonymController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiunprocessableentityresponse",{"_index":20409,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apivalidationerror",{"_index":1392,"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":{}}}],["apivalidationerror(errors",{"_index":10875,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apivalidationerror.validationerrors.foreach((validationerror",{"_index":1446,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apivalidationerrorresponse",{"_index":1418,"title":{"classes/ApiValidationErrorResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/GlobalErrorFilter.html":{}}}],["apivalidationerrorresponse(error",{"_index":10847,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apivalidationerror})@apiresponse({status",{"_index":2904,"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":1647,"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":23231,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["app.use(createapiresponsetimemetricmiddleware",{"_index":16801,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["app_filter",{"_index":6443,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["app_guard",{"_index":6442,"title":{},"body":{"modules/CoreModule.html":{}}}],["app_interceptor",{"_index":6440,"title":{},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"todo.html":{}}}],["app_pipe",{"_index":6441,"title":{},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{}}}],["append",{"_index":22924,"title":{},"body":{"todo.html":{}}}],["appendedattachment",{"_index":1482,"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":2697,"title":{},"body":{"entities/Board.html":{}}}],["applicable",{"_index":22359,"title":{},"body":{"license.html":{}}}],["applicaiton",{"_index":22984,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["application",{"_index":3835,"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":1631,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/CalendarService.html":{},"classes/TestApiClient.html":{}}}],["application/octet",{"_index":9827,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{}}}],["application/x",{"_index":13544,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["application/xml",{"_index":2304,"title":{},"body":{"injectables/BBBService.html":{}}}],["application/zip",{"_index":6637,"title":{},"body":{"controllers/CourseController.html":{}}}],["applications",{"_index":22198,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["applied",{"_index":11742,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["applies",{"_index":4520,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["apply",{"_index":11714,"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":13088,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["applypagination",{"_index":11189,"title":{},"body":{"injectables/GroupUc.html":{}}}],["applypagination(combinedclassinfo",{"_index":11199,"title":{},"body":{"injectables/GroupUc.html":{}}}],["applypropertiestopathparams",{"_index":115,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["applypropertiestopathparams(url",{"_index":149,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["appname",{"_index":1461,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["approach",{"_index":23428,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appropriate",{"_index":4518,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["appropriately",{"_index":22473,"title":{},"body":{"license.html":{}}}],["approve",{"_index":21985,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["approximate",{"_index":4136,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["approximates",{"_index":22827,"title":{},"body":{"license.html":{}}}],["apps/server",{"_index":22971,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["apps/server/doc",{"_index":23033,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src",{"_index":23037,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src/apps/helpers/app",{"_index":1459,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["apps/server/src/apps/helpers/prometheus",{"_index":16775,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["apps/server/src/config/database.config.ts",{"_index":10788,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["apps/server/src/console/api",{"_index":20211,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["apps/server/src/console/console.module.ts",{"_index":18491,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["apps/server/src/console/server.console.ts",{"_index":18477,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:11",{"_index":18481,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:17",{"_index":18484,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:6",{"_index":18480,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/core/core.module.ts",{"_index":6429,"title":{},"body":{"modules/CoreModule.html":{}}}],["apps/server/src/core/error/dto/api",{"_index":1419,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts",{"_index":8375,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:10",{"_index":8381,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:15",{"_index":8380,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:20",{"_index":8379,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:25",{"_index":8378,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:30",{"_index":8377,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/validation",{"_index":21647,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["apps/server/src/core/error/error.module.ts",{"_index":8367,"title":{},"body":{"modules/ErrorModule.html":{}}}],["apps/server/src/core/error/filter/global",{"_index":10792,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apps/server/src/core/error/interface/error",{"_index":11961,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["apps/server/src/core/error/interface/feathers",{"_index":9613,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts",{"_index":8276,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:11",{"_index":8284,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:13",{"_index":8287,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:34",{"_index":8286,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:47",{"_index":8291,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:56",{"_index":8293,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:8",{"_index":8282,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts",{"_index":8382,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:16",{"_index":8391,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:20",{"_index":8396,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:24",{"_index":8388,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:6",{"_index":8393,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/interceptor/interceptor.module.ts",{"_index":13043,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["apps/server/src/core/interfaces/core",{"_index":11927,"title":{},"body":{"interfaces/ICoreModuleConfig.html":{}}}],["apps/server/src/core/logger/error",{"_index":8326,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["apps/server/src/core/logger/interfaces/legacy",{"_index":12077,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts",{"_index":14406,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts:4",{"_index":14407,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/logger",{"_index":12094,"title":{},"body":{"interfaces/ILoggerConfig.html":{}}}],["apps/server/src/core/logger/legacy",{"_index":13870,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["apps/server/src/core/logger/logger.module.ts",{"_index":14428,"title":{},"body":{"modules/LoggerModule.html":{}}}],["apps/server/src/core/logger/logger.ts",{"_index":14408,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:13",{"_index":14420,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:18",{"_index":14417,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:23",{"_index":14415,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:28",{"_index":14413,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:33",{"_index":14418,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:9",{"_index":14411,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logging.utils.ts",{"_index":14449,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:13",{"_index":14459,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:18",{"_index":14457,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:6",{"_index":14454,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/validation/pipe/global",{"_index":10857,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apps/server/src/core/validation/validation.module.ts",{"_index":21651,"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":{}}}],["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":16524,"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.validation.service.ts",{"_index":1111,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:11",{"_index":1117,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:29",{"_index":1121,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:34",{"_index":1119,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:8",{"_index":1115,"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":1509,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["apps/server/src/modules/authentication/authentication.module.ts",{"_index":1557,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["apps/server/src/modules/authentication/constants.ts",{"_index":13137,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/ldap",{"_index":13736,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/local",{"_index":14373,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts",{"_index":14511,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts:5",{"_index":14512,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth",{"_index":15714,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth2",{"_index":15496,"title":{},"body":{"classes/Oauth2AuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts",{"_index":14463,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:31",{"_index":14473,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:47",{"_index":14477,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:62",{"_index":14482,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/mapper/login",{"_index":14532,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["apps/server/src/modules/authentication/errors/brute",{"_index":3797,"title":{},"body":{"classes/BruteForceError.html":{}}}],["apps/server/src/modules/authentication/errors/ldap",{"_index":13756,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["apps/server/src/modules/authentication/errors/school",{"_index":18278,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["apps/server/src/modules/authentication/errors/unauthorized.loggable",{"_index":20762,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["apps/server/src/modules/authentication/guard/jwt",{"_index":13133,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["apps/server/src/modules/authentication/interface/jwt",{"_index":7023,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["apps/server/src/modules/authentication/interface/user.ts",{"_index":11939,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["apps/server/src/modules/authentication/mapper/current",{"_index":7063,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts",{"_index":1706,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:17",{"_index":1715,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:25",{"_index":1722,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:42",{"_index":1720,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:57",{"_index":1728,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:65",{"_index":1717,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:76",{"_index":1731,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:80",{"_index":1726,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:84",{"_index":1724,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts",{"_index":13762,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:14",{"_index":13766,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:23",{"_index":13768,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:9",{"_index":13764,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt",{"_index":13152,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts",{"_index":13161,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12",{"_index":13164,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25",{"_index":13166,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts",{"_index":13794,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16",{"_index":13799,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28",{"_index":13808,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56",{"_index":13805,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68",{"_index":13803,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75",{"_index":13801,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:91",{"_index":13806,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts",{"_index":14376,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:15",{"_index":14380,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:25",{"_index":14388,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:46",{"_index":14386,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:54",{"_index":14383,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts",{"_index":15503,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15",{"_index":15504,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20",{"_index":15505,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts",{"_index":14503,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts:2",{"_index":14504,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts",{"_index":14540,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:12",{"_index":14545,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:9",{"_index":14543,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authorization/authorization",{"_index":1937,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["apps/server/src/modules/authorization/authorization.module.ts",{"_index":1901,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["apps/server/src/modules/authorization/domain/error/forbidden.loggable",{"_index":10695,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["apps/server/src/modules/authorization/domain/mapper/authorization",{"_index":1802,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["apps/server/src/modules/authorization/domain/rules/board",{"_index":3383,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/context",{"_index":5982,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course",{"_index":6785,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts",{"_index":6939,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:10",{"_index":6942,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:16",{"_index":6941,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/course.rule.ts:7",{"_index":6940,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts",{"_index":11160,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:11",{"_index":11163,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:17",{"_index":11162,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/group.rule.ts:8",{"_index":11161,"title":{},"body":{"injectables/GroupRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/legacy",{"_index":14056,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts",{"_index":14233,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:16",{"_index":14245,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:22",{"_index":14244,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:40",{"_index":14247,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:53",{"_index":14249,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:59",{"_index":14251,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:73",{"_index":14243,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:79",{"_index":14241,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/lesson.rule.ts:9",{"_index":14239,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/school",{"_index":18182,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts",{"_index":19171,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:11",{"_index":19189,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:17",{"_index":19184,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:27",{"_index":19179,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:41",{"_index":19188,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:47",{"_index":19186,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:61",{"_index":19183,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:70",{"_index":19181,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/submission.rule.ts:8",{"_index":19177,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts",{"_index":19863,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:16",{"_index":19869,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:22",{"_index":19868,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:43",{"_index":19867,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/task.rule.ts:9",{"_index":19865,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts",{"_index":20113,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:10",{"_index":20116,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:14",{"_index":20115,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/team.rule.ts:7",{"_index":20114,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user",{"_index":21237,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts",{"_index":21555,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:10",{"_index":21558,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:16",{"_index":21557,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/rules/user.rule.ts:7",{"_index":21556,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization",{"_index":1963,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts",{"_index":1824,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:14",{"_index":1837,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:21",{"_index":1839,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:32",{"_index":1833,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:38",{"_index":1842,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.helper.ts:7",{"_index":1835,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts",{"_index":1985,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:11",{"_index":1991,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:18",{"_index":1997,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:24",{"_index":2003,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:31",{"_index":1993,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:38",{"_index":2000,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:42",{"_index":1995,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:49",{"_index":2001,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/authorization.service.ts:53",{"_index":1999,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts",{"_index":12123,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:39",{"_index":17326,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:69",{"_index":17329,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/reference.loader.ts:77",{"_index":17328,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/domain/service/rule",{"_index":17788,"title":{},"body":{"injectables/RuleManager.html":{}}}],["apps/server/src/modules/authorization/domain/type/authorization",{"_index":1796,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts",{"_index":17785,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:6",{"_index":17787,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/domain/type/rule.interface.ts:7",{"_index":17786,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/feathers/feathers",{"_index":9544,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{}}}],["apps/server/src/modules/board/board",{"_index":2719,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["apps/server/src/modules/board/board.module.ts",{"_index":3577,"title":{},"body":{"modules/BoardModule.html":{}}}],["apps/server/src/modules/board/controller/board",{"_index":3718,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts",{"_index":2891,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:33",{"_index":2921,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:50",{"_index":2916,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:68",{"_index":2927,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:83",{"_index":2912,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:93",{"_index":2907,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts",{"_index":3966,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:113",{"_index":3988,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:141",{"_index":3984,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:47",{"_index":3995,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:68",{"_index":3999,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:83",{"_index":4003,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:98",{"_index":4006,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts",{"_index":4909,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:34",{"_index":4928,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:49",{"_index":4931,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:64",{"_index":4924,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:75",{"_index":4921,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board",{"_index":2880,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts",{"_index":3693,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:17",{"_index":3697,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:21",{"_index":3700,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:26",{"_index":3696,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:29",{"_index":3699,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:6",{"_index":3695,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts",{"_index":3794,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11",{"_index":3796,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/card",{"_index":4132,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts",{"_index":4948,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:17",{"_index":4951,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:21",{"_index":4953,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:26",{"_index":4950,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:29",{"_index":4952,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:6",{"_index":4949,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts",{"_index":4984,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11",{"_index":4985,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/content",{"_index":5690,"title":{},"body":{"classes/ContentElementUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/move",{"_index":14913,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts",{"_index":17331,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12",{"_index":17334,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/set",{"_index":18588,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts",{"_index":4190,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts:11",{"_index":4191,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card",{"_index":4048,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts",{"_index":4066,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:21",{"_index":4068,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:34",{"_index":4071,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:38",{"_index":4073,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:41",{"_index":4070,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:55",{"_index":4069,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:58",{"_index":4075,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:61",{"_index":4072,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/create",{"_index":6977,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/move",{"_index":14923,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["apps/server/src/modules/board/controller/dto/card/visibility",{"_index":22035,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/create",{"_index":6982,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/element/external",{"_index":8649,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/file",{"_index":9848,"title":{},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/link",{"_index":14338,"title":{},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/rich",{"_index":17479,"title":{},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/submission",{"_index":18979,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/update",{"_index":8170,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":7055,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionsResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts",{"_index":20260,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:11",{"_index":20264,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:14",{"_index":20262,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:17",{"_index":20263,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:3",{"_index":20261,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/user",{"_index":20951,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts",{"_index":8191,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:110",{"_index":8202,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:125",{"_index":8198,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:51",{"_index":8206,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:89",{"_index":8211,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/mapper/base",{"_index":2548,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/board",{"_index":3705,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/card",{"_index":4080,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/column",{"_index":4956,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/content",{"_index":5573,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["apps/server/src/modules/board/controller/mapper/external",{"_index":8671,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/file",{"_index":9867,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/link",{"_index":14352,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/rich",{"_index":17490,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/submission",{"_index":18988,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["apps/server/src/modules/board/repo/board",{"_index":3197,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["apps/server/src/modules/board/repo/recursive",{"_index":17198,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["apps/server/src/modules/board/service/board",{"_index":3116,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoService.html":{},"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["apps/server/src/modules/board/service/card.service.ts",{"_index":4089,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:16",{"_index":4103,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:20",{"_index":4106,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:29",{"_index":4097,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:50",{"_index":4101,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:54",{"_index":4109,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:58",{"_index":4111,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:64",{"_index":4113,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:70",{"_index":4099,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:9",{"_index":4093,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/column",{"_index":4736,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts",{"_index":4965,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:11",{"_index":4971,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:16",{"_index":4967,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:32",{"_index":4969,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:36",{"_index":4975,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:40",{"_index":4977,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:8",{"_index":4966,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/content",{"_index":5593,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["apps/server/src/modules/board/service/open",{"_index":16419,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["apps/server/src/modules/board/service/submission",{"_index":19093,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts",{"_index":4146,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:19",{"_index":4165,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:30",{"_index":4157,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:49",{"_index":4160,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:58",{"_index":4168,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:75",{"_index":4155,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:8",{"_index":4153,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:83",{"_index":4163,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts",{"_index":8228,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:17",{"_index":8230,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:29",{"_index":8235,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:38",{"_index":8233,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:76",{"_index":8231,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/submission",{"_index":19108,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["apps/server/src/modules/class/class.module.ts",{"_index":4408,"title":{},"body":{"modules/ClassModule.html":{}}}],["apps/server/src/modules/class/domain/class",{"_index":4440,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts",{"_index":4203,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:22",{"_index":4216,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:26",{"_index":4218,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:30",{"_index":4220,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:34",{"_index":4222,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:38",{"_index":4224,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:42",{"_index":4226,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:46",{"_index":4228,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:50",{"_index":4230,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:54",{"_index":4232,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:58",{"_index":4234,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:62",{"_index":4236,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:66",{"_index":4237,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:70",{"_index":4238,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:74",{"_index":4214,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts",{"_index":4312,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8",{"_index":4314,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/entity/class",{"_index":4447,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts",{"_index":4256,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:26",{"_index":4260,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:30",{"_index":4261,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:34",{"_index":4269,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:38",{"_index":4268,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:41",{"_index":4258,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:44",{"_index":4270,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:47",{"_index":4257,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:50",{"_index":4259,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:53",{"_index":4267,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:57",{"_index":4263,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:60",{"_index":4266,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts",{"_index":4302,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7",{"_index":4305,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts",{"_index":4453,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:12",{"_index":4459,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:20",{"_index":4461,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:28",{"_index":4463,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:9",{"_index":4457,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts",{"_index":4355,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:26",{"_index":4367,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:43",{"_index":4363,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:47",{"_index":4365,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:7",{"_index":4361,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/service/class.service.ts",{"_index":4409,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:10",{"_index":4417,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:16",{"_index":4415,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:7",{"_index":4413,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/collaborative",{"_index":4600,"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":6150,"title":{},"body":{"classes/CopyApiResponse.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["apps/server/src/modules/files",{"_index":6170,"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/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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/TestHelper.html":{}}}],["apps/server/src/modules/files/entity/file",{"_index":9979,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts",{"_index":9871,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:106",{"_index":9898,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:109",{"_index":9887,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:116",{"_index":9912,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:39",{"_index":9894,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:42",{"_index":9893,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:45",{"_index":9895,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:48",{"_index":9896,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:51",{"_index":9904,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:54",{"_index":9910,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:57",{"_index":9905,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:60",{"_index":9892,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:63",{"_index":9907,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:66",{"_index":9908,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:69",{"_index":9909,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:72",{"_index":9902,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:76",{"_index":9903,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:80",{"_index":9891,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:88",{"_index":9890,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:95",{"_index":9900,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:99",{"_index":9885,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/files.module.ts",{"_index":10359,"title":{},"body":{"modules/FilesModule.html":{}}}],["apps/server/src/modules/files/job/delete",{"_index":7912,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts",{"_index":10360,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:10",{"_index":10364,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:15",{"_index":10373,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:19",{"_index":10372,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:33",{"_index":10366,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:44",{"_index":10369,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/service/files.service.ts",{"_index":10388,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:10",{"_index":10395,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:14",{"_index":10401,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:28",{"_index":10397,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:32",{"_index":10399,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:7",{"_index":10393,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/uc/delete",{"_index":7936,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["apps/server/src/modules/fwu",{"_index":10712,"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/controller/dto/request/class",{"_index":4427,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["apps/server/src/modules/group/controller/dto/request/group",{"_index":11051,"title":{},"body":{"classes/GroupIdParams.html":{}}}],["apps/server/src/modules/group/controller/dto/response/class",{"_index":4343,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/external",{"_index":8474,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group",{"_index":11316,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts",{"_index":11091,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:11",{"_index":11096,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:14",{"_index":11098,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:17",{"_index":11100,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:20",{"_index":11094,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:23",{"_index":11093,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/dto/response/group.response.ts:8",{"_index":11095,"title":{},"body":{"classes/GroupResponse.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts",{"_index":10945,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:23",{"_index":10953,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/group.controller.ts:51",{"_index":10959,"title":{},"body":{"controllers/GroupController.html":{}}}],["apps/server/src/modules/group/controller/mapper/group",{"_index":11110,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["apps/server/src/modules/group/domain/group",{"_index":11303,"title":{},"body":{"classes/GroupUser.html":{}}}],["apps/server/src/modules/group/domain/group.ts",{"_index":10905,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["apps/server/src/modules/group/domain/group.ts:25",{"_index":10915,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:29",{"_index":10916,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:33",{"_index":10918,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:37",{"_index":10920,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:41",{"_index":10922,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:45",{"_index":10914,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:49",{"_index":10912,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/domain/group.ts:53",{"_index":10911,"title":{},"body":{"classes/Group.html":{}}}],["apps/server/src/modules/group/entity/group",{"_index":11309,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts",{"_index":11035,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:32",{"_index":11037,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:35",{"_index":11039,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:38",{"_index":11036,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:41",{"_index":11041,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:44",{"_index":11040,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:47",{"_index":11038,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/group",{"_index":10941,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["apps/server/src/modules/group/group.module.ts",{"_index":11058,"title":{},"body":{"modules/GroupModule.html":{}}}],["apps/server/src/modules/group/repo/group",{"_index":10978,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts",{"_index":11063,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:10",{"_index":11066,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:100",{"_index":11067,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:13",{"_index":11070,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:27",{"_index":11069,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:46",{"_index":11072,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:60",{"_index":11073,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:75",{"_index":11074,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/service/group.service.ts",{"_index":11166,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:12",{"_index":11173,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:22",{"_index":11179,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:28",{"_index":11172,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:34",{"_index":11174,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:40",{"_index":11175,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:46",{"_index":11177,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:52",{"_index":11171,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:9",{"_index":11169,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/uc/dto/class",{"_index":4319,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["apps/server/src/modules/group/uc/dto/resolved",{"_index":17402,"title":{},"body":{"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts",{"_index":11188,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:117",{"_index":11211,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:137",{"_index":11213,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:155",{"_index":11200,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:161",{"_index":11215,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:172",{"_index":11202,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:18",{"_index":11198,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:30",{"_index":11204,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:60",{"_index":11207,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:71",{"_index":11205,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/group.uc.ts:94",{"_index":11209,"title":{},"body":{"injectables/GroupUc.html":{}}}],["apps/server/src/modules/group/uc/mapper/group",{"_index":11276,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["apps/server/src/modules/group/util/sort",{"_index":18885,"title":{},"body":{"classes/SortHelper.html":{}}}],["apps/server/src/modules/h5p",{"_index":11355,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["apps/server/src/modules/learnroom/common",{"_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":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts",{"_index":6604,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:23",{"_index":6613,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:36",{"_index":6610,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts",{"_index":7362,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:15",{"_index":7365,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:22",{"_index":7370,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:38",{"_index":7375,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course",{"_index":6822,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts",{"_index":6890,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14",{"_index":6892,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts",{"_index":6975,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11",{"_index":6976,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts",{"_index":7581,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100",{"_index":7590,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105",{"_index":7586,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108",{"_index":7755,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118",{"_index":7757,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124",{"_index":7756,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16",{"_index":7605,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22",{"_index":7607,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27",{"_index":7606,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32",{"_index":7604,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35",{"_index":7585,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4",{"_index":7603,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62",{"_index":7592,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68",{"_index":7595,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73",{"_index":7593,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78",{"_index":7587,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83",{"_index":7596,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88",{"_index":7597,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94",{"_index":7591,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts",{"_index":7785,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11",{"_index":7786,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson",{"_index":14147,"title":{},"body":{"classes/LessonCopyApiParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts",{"_index":14311,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11",{"_index":14312,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/move",{"_index":14927,"title":{},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/patch",{"_index":16520,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room",{"_index":17649,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts",{"_index":17652,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11",{"_index":17653,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/single",{"_index":2732,"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":17681,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:33",{"_index":17693,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:43",{"_index":17696,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:57",{"_index":17699,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:67",{"_index":17687,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:78",{"_index":17690,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/learnroom",{"_index":13853,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["apps/server/src/modules/learnroom/learnroom.module.ts",{"_index":13868,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["apps/server/src/modules/learnroom/mapper/board",{"_index":3768,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts",{"_index":6808,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts:5",{"_index":6811,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts",{"_index":7608,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15",{"_index":7612,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36",{"_index":7614,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5",{"_index":7616,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/room",{"_index":17590,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["apps/server/src/modules/learnroom/service/board",{"_index":2959,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/column",{"_index":4887,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["apps/server/src/modules/learnroom/service/common",{"_index":4992,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["apps/server/src/modules/learnroom/service/course",{"_index":6641,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts",{"_index":6953,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:13",{"_index":6961,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:19",{"_index":6958,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:29",{"_index":6959,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:6",{"_index":6956,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:9",{"_index":6963,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts",{"_index":6795,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:15",{"_index":6801,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:6",{"_index":6799,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:9",{"_index":6803,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts",{"_index":17721,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:10",{"_index":17725,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:19",{"_index":17729,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:33",{"_index":17727,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/uc/course",{"_index":6696,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts",{"_index":6969,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:10",{"_index":6973,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:7",{"_index":6971,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts",{"_index":7758,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13",{"_index":7764,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26",{"_index":7766,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41",{"_index":7768,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57",{"_index":7770,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7",{"_index":7763,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/lesson",{"_index":14150,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["apps/server/src/modules/learnroom/uc/room",{"_index":8054,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts",{"_index":17654,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11",{"_index":17662,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17",{"_index":17660,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24",{"_index":17666,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45",{"_index":17664,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts",{"_index":17744,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:10",{"_index":17748,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:20",{"_index":17750,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:31",{"_index":17755,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:52",{"_index":17753,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/legacy",{"_index":9777,"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":14309,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11",{"_index":14310,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts",{"_index":14137,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts:14",{"_index":14141,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/lesson",{"_index":14131,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["apps/server/src/modules/lesson/lesson.module.ts",{"_index":14208,"title":{},"body":{"modules/LessonModule.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts",{"_index":8401,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:12",{"_index":8407,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:9",{"_index":8405,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts",{"_index":14274,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:13",{"_index":14281,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:19",{"_index":14288,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:23",{"_index":14286,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:27",{"_index":14285,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:33",{"_index":14283,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:7",{"_index":14279,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts",{"_index":15217,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:12",{"_index":15221,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:9",{"_index":15219,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts",{"_index":14299,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:13",{"_index":14302,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:7",{"_index":14300,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lti",{"_index":14685,"title":{},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{}}}],["apps/server/src/modules/management/console/board",{"_index":3477,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["apps/server/src/modules/management/console/database",{"_index":7788,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["apps/server/src/modules/management/controller/database",{"_index":7827,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts",{"_index":3805,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:11",{"_index":3818,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:21",{"_index":3809,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/management",{"_index":14775,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["apps/server/src/modules/management/management.module.ts",{"_index":14762,"title":{},"body":{"modules/ManagementModule.html":{}}}],["apps/server/src/modules/management/uc/board",{"_index":3503,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["apps/server/src/modules/management/uc/database",{"_index":11668,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["apps/server/src/modules/news/controller/dto/create",{"_index":7032,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/filter",{"_index":10683,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts",{"_index":15001,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:101",{"_index":15116,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:106",{"_index":15112,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:111",{"_index":15124,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:116",{"_index":15111,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:12",{"_index":15109,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:121",{"_index":15123,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:126",{"_index":15115,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:129",{"_index":15002,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:51",{"_index":15114,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:56",{"_index":15122,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:61",{"_index":15110,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:66",{"_index":15113,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:73",{"_index":15117,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:78",{"_index":15118,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:85",{"_index":15121,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:91",{"_index":15120,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:96",{"_index":15119,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts",{"_index":15214,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts:11",{"_index":15216,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/school",{"_index":18300,"title":{},"body":{"classes/SchoolInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/target",{"_index":19514,"title":{},"body":{"classes/TargetInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts",{"_index":20136,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts:11",{"_index":20137,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/update",{"_index":20774,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/user",{"_index":21012,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts",{"_index":14948,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:26",{"_index":14951,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:40",{"_index":14956,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:61",{"_index":14960,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:71",{"_index":14965,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:89",{"_index":14954,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/team",{"_index":20069,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["apps/server/src/modules/news/loggable/news",{"_index":14991,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts",{"_index":15017,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:38",{"_index":15025,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:52",{"_index":15023,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:65",{"_index":15031,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:74",{"_index":15027,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:9",{"_index":15029,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/school",{"_index":18293,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/target",{"_index":19509,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/user",{"_index":21011,"title":{},"body":{"classes/UserInfoMapper.html":{}}}],["apps/server/src/modules/news/news.module.ts",{"_index":15069,"title":{},"body":{"modules/NewsModule.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts",{"_index":15143,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:100",{"_index":15160,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:122",{"_index":15172,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:148",{"_index":15153,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:159",{"_index":15164,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:179",{"_index":15170,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:197",{"_index":15162,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:207",{"_index":15166,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:23",{"_index":15150,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:39",{"_index":15152,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:67",{"_index":15155,"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":1908,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11",{"_index":1912,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15",{"_index":1915,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19",{"_index":1916,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23",{"_index":1917,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27",{"_index":1918,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/sso",{"_index":17931,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["apps/server/src/modules/oauth/controller/dto/stateless",{"_index":18912,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/system",{"_index":19377,"title":{},"body":{"classes/SystemIdParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/user",{"_index":21397,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["apps/server/src/modules/oauth/controller/oauth",{"_index":16080,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apps/server/src/modules/oauth/interface/oauth",{"_index":15486,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["apps/server/src/modules/oauth/loggable/oauth",{"_index":15374,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["apps/server/src/modules/oauth/loggable/user",{"_index":21487,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["apps/server/src/modules/oauth/mapper/oauth",{"_index":15734,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/token",{"_index":20280,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/user",{"_index":21394,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["apps/server/src/modules/oauth/oauth",{"_index":15580,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["apps/server/src/modules/oauth/oauth.module.ts",{"_index":15754,"title":{},"body":{"modules/OauthModule.html":{}}}],["apps/server/src/modules/oauth/service/dto/authentication",{"_index":1515,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts",{"_index":6140,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2",{"_index":6144,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4",{"_index":6143,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts",{"_index":11466,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13",{"_index":11470,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15",{"_index":11471,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17",{"_index":11469,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19",{"_index":11472,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21",{"_index":11468,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4",{"_index":11467,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/oauth",{"_index":15360,"title":{},"body":{"classes/OAuthProcessDto.html":{},"interfaces/OauthTokenResponse.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts",{"_index":11483,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:126",{"_index":11495,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:19",{"_index":11490,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:27",{"_index":11503,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:29",{"_index":11497,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:43",{"_index":11502,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:79",{"_index":11499,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:99",{"_index":11493,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/oauth",{"_index":15545,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts",{"_index":15384,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:116",{"_index":15404,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:132",{"_index":15413,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:142",{"_index":15417,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:154",{"_index":15419,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:169",{"_index":15409,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:189",{"_index":15406,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:205",{"_index":15411,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:214",{"_index":15402,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:22",{"_index":15397,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:37",{"_index":15400,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:63",{"_index":15415,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/uc/dto/oauth",{"_index":15722,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["apps/server/src/modules/oauth/uc/hydra",{"_index":11406,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts",{"_index":16196,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:142",{"_index":16203,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:26",{"_index":16201,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:40",{"_index":16211,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:66",{"_index":16209,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:97",{"_index":16206,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/provisioning/dto/external",{"_index":8420,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalUserDto.html":{}}}],["apps/server/src/modules/provisioning/dto/oauth",{"_index":15693,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning",{"_index":16889,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts",{"_index":16831,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2",{"_index":16833,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/loggable/group",{"_index":11148,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/school",{"_index":18257,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/user",{"_index":21007,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/mapper/provisioning",{"_index":16894,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["apps/server/src/modules/provisioning/provisioning.module.ts",{"_index":16841,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts",{"_index":16847,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:16",{"_index":16868,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:19",{"_index":16856,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:32",{"_index":16867,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:36",{"_index":16860,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:50",{"_index":16858,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:56",{"_index":16865,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:62",{"_index":16862,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts",{"_index":16885,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:5",{"_index":16888,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:7",{"_index":16887,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:9",{"_index":16886,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv",{"_index":13067,"title":{},"body":{"classes/IservMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts",{"_index":13084,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19",{"_index":13087,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65",{"_index":13092,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc",{"_index":16291,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts",{"_index":16402,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9",{"_index":16404,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/service/oidc",{"_index":16301,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis",{"_index":17938,"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":17996,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis",{"_index":17999,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts",{"_index":17973,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21",{"_index":17976,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:69",{"_index":17979,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym",{"_index":16959,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts",{"_index":16961,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:11",{"_index":16962,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:5",{"_index":16963,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:8",{"_index":16964,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts",{"_index":16923,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/controller/pseudonym.controller.ts:27",{"_index":16928,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["apps/server/src/modules/pseudonym/domain/pseudonym",{"_index":16978,"title":{},"body":{"interfaces/PseudonymSearchQuery.html":{}}}],["apps/server/src/modules/pseudonym/entity/external",{"_index":8918,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts",{"_index":16941,"title":{},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18",{"_index":16942,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21",{"_index":16943,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24",{"_index":16944,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts",{"_index":16967,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:13",{"_index":16976,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:20",{"_index":16974,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.scope.ts:6",{"_index":16972,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["apps/server/src/modules/pseudonym/loggable/too",{"_index":20291,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts",{"_index":16946,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/mapper/pseudonym.mapper.ts:5",{"_index":16948,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym",{"_index":16919,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym.module.ts",{"_index":16957,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["apps/server/src/modules/pseudonym/repo/external",{"_index":8932,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts",{"_index":17044,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10",{"_index":17050,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21",{"_index":17049,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36",{"_index":17048,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44",{"_index":17046,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65",{"_index":17047,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7",{"_index":17045,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71",{"_index":17052,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82",{"_index":17051,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/service/feathers",{"_index":9628,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts",{"_index":16979,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:105",{"_index":16992,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:11",{"_index":16988,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:112",{"_index":17007,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:120",{"_index":17001,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:126",{"_index":17000,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:132",{"_index":17005,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:17",{"_index":16994,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:27",{"_index":16995,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:50",{"_index":16999,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:74",{"_index":16990,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:87",{"_index":17003,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:93",{"_index":16997,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:99",{"_index":16993,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts",{"_index":17031,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:16",{"_index":17035,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/pseudonym/uc/pseudonym.uc.ts:9",{"_index":17033,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["apps/server/src/modules/rocketchat/rocket",{"_index":1152,"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":17516,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:13",{"_index":17520,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:5",{"_index":17523,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/role.module.ts",{"_index":17532,"title":{},"body":{"modules/RoleModule.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts",{"_index":17511,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:4",{"_index":17513,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:6",{"_index":17514,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:8",{"_index":17512,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/role.service.ts",{"_index":17563,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:11",{"_index":17570,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:16",{"_index":17567,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:22",{"_index":17568,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:28",{"_index":17569,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:8",{"_index":17566,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts",{"_index":17581,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:10",{"_index":17584,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:7",{"_index":17583,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts",{"_index":18500,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts:7",{"_index":18501,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/server.config.ts",{"_index":12231,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["apps/server/src/modules/server/server.module.ts",{"_index":18513,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:154",{"_index":18516,"title":{},"body":{"modules/ServerModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:185",{"_index":18586,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:189",{"_index":18587,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/sharing/controller/dto/share",{"_index":18600,"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":18619,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apps/server/src/modules/sharing/domainobject/share",{"_index":18668,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["apps/server/src/modules/sharing/entity/share",{"_index":12250,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["apps/server/src/modules/sharing/mapper/context",{"_index":18616,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/metadata",{"_index":14801,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/parent",{"_index":18710,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/share",{"_index":18704,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["apps/server/src/modules/sharing/repo/share",{"_index":18722,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["apps/server/src/modules/sharing/service/share",{"_index":18755,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["apps/server/src/modules/sharing/service/token",{"_index":20276,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["apps/server/src/modules/sharing/sharing.module.ts",{"_index":18863,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["apps/server/src/modules/sharing/uc/dto/share",{"_index":18696,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["apps/server/src/modules/sharing/uc/share",{"_index":18786,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["apps/server/src/modules/system/controller/dto/oauth",{"_index":15667,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/public",{"_index":17061,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/system",{"_index":19378,"title":{},"body":{"classes/SystemIdParams-1.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts",{"_index":19369,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:10",{"_index":19375,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:16",{"_index":19372,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/mapper/system",{"_index":19443,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts",{"_index":19279,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:23",{"_index":19286,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:38",{"_index":19292,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/mapper/system",{"_index":19401,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts",{"_index":19380,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:20",{"_index":19386,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:39",{"_index":19383,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:6",{"_index":19384,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/service/dto/oauth",{"_index":15637,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/oidc",{"_index":16245,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts",{"_index":19313,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:10",{"_index":19323,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:12",{"_index":19316,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:14",{"_index":19317,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:16",{"_index":19320,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:18",{"_index":19321,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:20",{"_index":19319,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:22",{"_index":19315,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:6",{"_index":19318,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:8",{"_index":19322,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/system",{"_index":19414,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts",{"_index":19459,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:10",{"_index":19462,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:16",{"_index":19463,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:25",{"_index":19465,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:40",{"_index":19469,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:66",{"_index":19467,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/system",{"_index":19274,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["apps/server/src/modules/system/system.module.ts",{"_index":19397,"title":{},"body":{"modules/SystemModule.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts",{"_index":19501,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:11",{"_index":19504,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:25",{"_index":19505,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:8",{"_index":19502,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts",{"_index":19217,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:14",{"_index":19224,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:17",{"_index":19227,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:20",{"_index":19226,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:23",{"_index":19223,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:26",{"_index":19225,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:29",{"_index":19228,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:3",{"_index":19222,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:32",{"_index":19218,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:38",{"_index":19219,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts",{"_index":19246,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts:11",{"_index":19247,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task",{"_index":19591,"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":19691,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:22",{"_index":19857,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:26",{"_index":19860,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:29",{"_index":19849,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:32",{"_index":19856,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:36",{"_index":19851,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:39",{"_index":19859,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:42",{"_index":19850,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:49",{"_index":19854,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:52",{"_index":19858,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:55",{"_index":19855,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:58",{"_index":19852,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:61",{"_index":19862,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:64",{"_index":19861,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:67",{"_index":19692,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:9",{"_index":19848,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts",{"_index":20028,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts:11",{"_index":20029,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts",{"_index":18998,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:15",{"_index":19006,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:29",{"_index":19002,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts",{"_index":19541,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:100",{"_index":19550,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:22",{"_index":19551,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:30",{"_index":19554,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:37",{"_index":19556,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:54",{"_index":19559,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:63",{"_index":19562,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:72",{"_index":19565,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:85",{"_index":19548,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts",{"_index":19139,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts:5",{"_index":19142,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/task",{"_index":19929,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts",{"_index":19698,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:39",{"_index":19705,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:54",{"_index":19702,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:6",{"_index":19707,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts",{"_index":19201,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:13",{"_index":19211,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:17",{"_index":19208,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:23",{"_index":19206,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:7",{"_index":19204,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/task",{"_index":19593,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts",{"_index":19913,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:15",{"_index":19922,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:24",{"_index":19917,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:32",{"_index":19919,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:39",{"_index":19921,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:8",{"_index":19915,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/task",{"_index":19535,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["apps/server/src/modules/task/task.module.ts",{"_index":19739,"title":{},"body":{"modules/TaskModule.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts",{"_index":19229,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:13",{"_index":19237,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:22",{"_index":19233,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:39",{"_index":19235,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:7",{"_index":19232,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/task",{"_index":19627,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts",{"_index":19940,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:110",{"_index":19965,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:126",{"_index":19955,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:155",{"_index":19957,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:185",{"_index":19961,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:19",{"_index":19946,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:197",{"_index":19963,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:218",{"_index":19958,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:225",{"_index":19949,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:28",{"_index":19953,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:69",{"_index":19951,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:85",{"_index":19948,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts",{"_index":20121,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:15",{"_index":20127,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:6",{"_index":20125,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:9",{"_index":20129,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/teams",{"_index":20167,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["apps/server/src/modules/teams/teams.module.ts",{"_index":20172,"title":{},"body":{"modules/TeamsModule.html":{}}}],["apps/server/src/modules/tool/common/common",{"_index":5337,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["apps/server/src/modules/tool/common/domain/custom",{"_index":7205,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntry.html":{}}}],["apps/server/src/modules/tool/common/entity/custom",{"_index":7248,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["apps/server/src/modules/tool/common/interface/external",{"_index":9271,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{}}}],["apps/server/src/modules/tool/common/interface/tool",{"_index":20759,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["apps/server/src/modules/tool/common/mapper/tool",{"_index":20752,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["apps/server/src/modules/tool/common/service/common",{"_index":5344,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{}}}],["apps/server/src/modules/tool/common/uc/tool",{"_index":20615,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["apps/server/src/modules/tool/context",{"_index":5694,"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":{},"classes/ToolReference.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["apps/server/src/modules/tool/external",{"_index":2559,"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":{}}}],["apps/server/src/modules/tool/school",{"_index":7252,"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":{},"classes/AuthenticationValues.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11EncryptionService.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":20614,"title":{},"body":{"modules/ToolModule.html":{}}}],["apps/server/src/modules/user",{"_index":4476,"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":17423,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts",{"_index":4197,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts:8",{"_index":4201,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts",{"_index":19257,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:3",{"_index":19259,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:9",{"_index":19260,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts",{"_index":20826,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:15",{"_index":20833,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:25",{"_index":20830,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/interfaces/user",{"_index":12580,"title":{},"body":{"interfaces/IUserConfig.html":{}}}],["apps/server/src/modules/user/mapper/resolved",{"_index":17412,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts",{"_index":21342,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts:5",{"_index":21343,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/service/user.service.ts",{"_index":21573,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:103",{"_index":21598,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:112",{"_index":21581,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:118",{"_index":21582,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:20",{"_index":21579,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:29",{"_index":21595,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:39",{"_index":21593,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:46",{"_index":21591,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:55",{"_index":21585,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:61",{"_index":21600,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:67",{"_index":21602,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:73",{"_index":21587,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:79",{"_index":21584,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:85",{"_index":21583,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:91",{"_index":21589,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts",{"_index":20966,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:20",{"_index":20973,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:22",{"_index":20969,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:24",{"_index":20971,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:26",{"_index":20976,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:28",{"_index":20980,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:3",{"_index":20968,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:30",{"_index":20981,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:32",{"_index":20977,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:34",{"_index":20970,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:36",{"_index":20974,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:38",{"_index":20972,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:41",{"_index":20979,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:43",{"_index":20975,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:45",{"_index":20978,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts",{"_index":21630,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:12",{"_index":21636,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:19",{"_index":21634,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:25",{"_index":21637,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:9",{"_index":21632,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/user",{"_index":20823,"title":{},"body":{"modules/UserApiModule.html":{}}}],["apps/server/src/modules/user/user.module.ts",{"_index":21483,"title":{},"body":{"modules/UserModule.html":{}}}],["apps/server/src/modules/video",{"_index":2049,"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":{}}}],["apps/server/src/shared/common/error/api",{"_index":1393,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts",{"_index":1816,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts:4",{"_index":1818,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts",{"_index":3830,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:12",{"_index":3839,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:15",{"_index":3842,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:18",{"_index":3841,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:21",{"_index":3840,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:25",{"_index":3838,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:47",{"_index":3843,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/entity",{"_index":8270,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["apps/server/src/shared/common/error/forbidden",{"_index":10704,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["apps/server/src/shared/common/error/user",{"_index":20805,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts",{"_index":21644,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts:4",{"_index":21645,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/interceptor/duration",{"_index":8153,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/interfaces/interceptor",{"_index":12056,"title":{},"body":{"interfaces/IInterceptorConfig.html":{}}}],["apps/server/src/shared/common/interceptor/request",{"_index":17387,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts",{"_index":20245,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11",{"_index":20249,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14",{"_index":20250,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/loggable",{"_index":15323,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts",{"_index":6131,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts:9",{"_index":6134,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/guard",{"_index":11343,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts",{"_index":18949,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:10",{"_index":18952,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:2",{"_index":18954,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts",{"_index":16499,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:14",{"_index":16500,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:8",{"_index":16501,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts",{"_index":16504,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:11",{"_index":16507,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:14",{"_index":16510,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:17",{"_index":16509,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:20",{"_index":16508,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:3",{"_index":16506,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts",{"_index":18894,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:13",{"_index":18895,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:18",{"_index":18897,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/domain/domain",{"_index":1788,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts",{"_index":2340,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts:5",{"_index":2342,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/board/board",{"_index":2750,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts",{"_index":3941,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:10",{"_index":3949,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:14",{"_index":3951,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:18",{"_index":3953,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:22",{"_index":3955,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column",{"_index":4719,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts",{"_index":4710,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:10",{"_index":4714,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:6",{"_index":4713,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/content",{"_index":5548,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["apps/server/src/shared/domain/domainobject/board/external",{"_index":8633,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/file",{"_index":9830,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/link",{"_index":14314,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/rich",{"_index":17460,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/submission",{"_index":18969,"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":2805,"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":8459,"title":{},"body":{"classes/ExternalSource.html":{}}}],["apps/server/src/shared/domain/domainobject/legacy",{"_index":13960,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts",{"_index":7175,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:17",{"_index":14659,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:19",{"_index":14668,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:21",{"_index":14655,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:23",{"_index":14666,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:25",{"_index":14656,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:27",{"_index":14657,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:29",{"_index":14658,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:31",{"_index":14664,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:33",{"_index":14665,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:35",{"_index":14663,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:37",{"_index":14650,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:39",{"_index":14654,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:41",{"_index":14653,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:43",{"_index":14662,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:45",{"_index":14660,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:47",{"_index":14651,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:49",{"_index":14667,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:51",{"_index":14661,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:53",{"_index":14652,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:55",{"_index":14649,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:6",{"_index":7178,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:8",{"_index":7177,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts",{"_index":16454,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:2",{"_index":16456,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:4",{"_index":16455,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts",{"_index":16902,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13",{"_index":16904,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17",{"_index":16906,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21",{"_index":16907,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25",{"_index":16908,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29",{"_index":16909,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/role",{"_index":17547,"title":{},"body":{"classes/RoleReference.html":{}}}],["apps/server/src/shared/domain/domainobject/user",{"_index":21118,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts",{"_index":20843,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:11",{"_index":20846,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:13",{"_index":20849,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:15",{"_index":20855,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:17",{"_index":20860,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:19",{"_index":20861,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:21",{"_index":20857,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:23",{"_index":20848,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:25",{"_index":20852,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:27",{"_index":20850,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:29",{"_index":20856,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:31",{"_index":20847,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:33",{"_index":20853,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:35",{"_index":20851,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:37",{"_index":20859,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:39",{"_index":20854,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:41",{"_index":20858,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:43",{"_index":20844,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:7",{"_index":20845,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:9",{"_index":20862,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/video",{"_index":21823,"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":2454,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:11",{"_index":2459,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:25",{"_index":2481,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:28",{"_index":2483,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:31",{"_index":2482,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:34",{"_index":2485,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:8",{"_index":2457,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts",{"_index":3587,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29",{"_index":3591,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32",{"_index":3589,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35",{"_index":3592,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39",{"_index":3595,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42",{"_index":3593,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/card",{"_index":4058,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/column",{"_index":4770,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/external",{"_index":8658,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/file",{"_index":9855,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/link",{"_index":14343,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/rich",{"_index":17484,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/submission",{"_index":18985,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/types/board",{"_index":3156,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts",{"_index":6468,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:100",{"_index":6492,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:103",{"_index":6481,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:106",{"_index":6494,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:44",{"_index":21642,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:46",{"_index":21641,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:48",{"_index":21643,"title":{},"body":{"classes/UsersList.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:57",{"_index":6496,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:60",{"_index":6489,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:64",{"_index":6498,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:68",{"_index":6503,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:72",{"_index":6506,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:76",{"_index":6505,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:79",{"_index":6487,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:83",{"_index":6483,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:86",{"_index":6501,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:90",{"_index":6507,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:93",{"_index":6484,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:97",{"_index":6500,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts",{"_index":6747,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:21",{"_index":6750,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:25",{"_index":6755,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:29",{"_index":6749,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:33",{"_index":6753,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts",{"_index":7396,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:100",{"_index":10902,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:108",{"_index":10891,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:117",{"_index":10897,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:138",{"_index":10901,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:14",{"_index":11995,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:142",{"_index":10904,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:16",{"_index":11997,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:161",{"_index":7416,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:163",{"_index":7414,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:165",{"_index":7415,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:167",{"_index":7417,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:169",{"_index":7438,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:176",{"_index":7444,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:18",{"_index":11996,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:180",{"_index":7413,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:193",{"_index":7432,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:197",{"_index":7436,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:20",{"_index":11993,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:201",{"_index":7430,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:213",{"_index":7427,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:22",{"_index":11992,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:221",{"_index":7442,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:231",{"_index":7451,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:24",{"_index":11998,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:240",{"_index":7448,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:255",{"_index":7423,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:266",{"_index":7421,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:272",{"_index":7419,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:278",{"_index":7429,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:286",{"_index":7435,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:298",{"_index":7446,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:307",{"_index":7440,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:38",{"_index":10887,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:40",{"_index":10890,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:42",{"_index":10889,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:52",{"_index":10886,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:60",{"_index":10895,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:64",{"_index":10894,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:68",{"_index":10896,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:72",{"_index":10893,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:76",{"_index":10888,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:78",{"_index":10900,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:8",{"_index":11994,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:82",{"_index":10898,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:86",{"_index":10899,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:90",{"_index":10903,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts",{"_index":7549,"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":7556,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45",{"_index":7557,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48",{"_index":7558,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52",{"_index":7555,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56",{"_index":7553,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76",{"_index":7637,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81",{"_index":7639,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/external",{"_index":8464,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/federal",{"_index":6446,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["apps/server/src/shared/domain/entity/import",{"_index":12006,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["apps/server/src/shared/domain/entity/legacy",{"_index":2628,"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":11864,"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":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:101",{"_index":14193,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:104",{"_index":14186,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:107",{"_index":14191,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:110",{"_index":14194,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:81",{"_index":12093,"title":{},"body":{"interfaces/ILessonParent.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:87",{"_index":14192,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:91",{"_index":14190,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:95",{"_index":14187,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:98",{"_index":14188,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts",{"_index":7102,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:101",{"_index":14630,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:33",{"_index":14637,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:36",{"_index":14648,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:39",{"_index":14633,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:42",{"_index":14646,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:45",{"_index":14634,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:48",{"_index":14635,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:51",{"_index":14636,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:54",{"_index":14642,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:58",{"_index":14645,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:65",{"_index":14641,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:68",{"_index":14627,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:71",{"_index":14632,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:74",{"_index":14631,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:77",{"_index":14626,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:85",{"_index":14638,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:89",{"_index":14628,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:92",{"_index":14647,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:95",{"_index":14639,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:98",{"_index":14629,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts",{"_index":12096,"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":14783,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:34",{"_index":14784,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:37",{"_index":14785,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:40",{"_index":14786,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:43",{"_index":14787,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:46",{"_index":14788,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:49",{"_index":14789,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:52",{"_index":14790,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:55",{"_index":14791,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:58",{"_index":14792,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts",{"_index":6845,"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":18391,"title":{},"body":{"entities/SchoolNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:116",{"_index":6846,"title":{},"body":{"entities/CourseNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:127",{"_index":20068,"title":{},"body":{"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:34",{"_index":14945,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:38",{"_index":14935,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:43",{"_index":14937,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:46",{"_index":14938,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:49",{"_index":14941,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:52",{"_index":14942,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:55",{"_index":14943,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:59",{"_index":14944,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:62",{"_index":14940,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:65",{"_index":14936,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:68",{"_index":14946,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:70",{"_index":14939,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts",{"_index":12159,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:15",{"_index":17507,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:18",{"_index":17508,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:21",{"_index":17510,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts",{"_index":12180,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:104",{"_index":18075,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:107",{"_index":18065,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:47",{"_index":18405,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:50",{"_index":18404,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:56",{"_index":18406,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:59",{"_index":18407,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:66",{"_index":18064,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:69",{"_index":18066,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:72",{"_index":18067,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:75",{"_index":18063,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:78",{"_index":18071,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:81",{"_index":18068,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:84",{"_index":18069,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:87",{"_index":18073,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:90",{"_index":18070,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:93",{"_index":18072,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts",{"_index":12222,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:13",{"_index":18440,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:16",{"_index":18441,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:19",{"_index":18439,"title":{},"body":{"entities/SchoolYearEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts",{"_index":12261,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:15",{"_index":18941,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:18",{"_index":18940,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:21",{"_index":18943,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:24",{"_index":18942,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts",{"_index":12274,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:30",{"_index":18962,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:34",{"_index":18966,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:37",{"_index":18963,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:40",{"_index":18958,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:43",{"_index":18967,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:46",{"_index":18957,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:49",{"_index":18964,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:52",{"_index":18961,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:55",{"_index":18959,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:58",{"_index":18960,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts",{"_index":12328,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:102",{"_index":13746,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:105",{"_index":13747,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:108",{"_index":13745,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:111",{"_index":13754,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:114",{"_index":13751,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:117",{"_index":13752,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:120",{"_index":13753,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:123",{"_index":13749,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:126",{"_index":13750,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:153",{"_index":16236,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:166",{"_index":16238,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:169",{"_index":16239,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:172",{"_index":16241,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:175",{"_index":16237,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:178",{"_index":16243,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:18",{"_index":15623,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:181",{"_index":16242,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:184",{"_index":16244,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:187",{"_index":16240,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:206",{"_index":19340,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:209",{"_index":19341,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:212",{"_index":19331,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:215",{"_index":19332,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:218",{"_index":19335,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:222",{"_index":19338,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:225",{"_index":19336,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:228",{"_index":19334,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:231",{"_index":19339,"title":{},"body":{"entities/SystemEntity.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:36",{"_index":15625,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:39",{"_index":15626,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:42",{"_index":15628,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:45",{"_index":15633,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:48",{"_index":15627,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:51",{"_index":15636,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:54",{"_index":15624,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:57",{"_index":15634,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:60",{"_index":15635,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:63",{"_index":15632,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:66",{"_index":15631,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:69",{"_index":15629,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:72",{"_index":15630,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:76",{"_index":13742,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:93",{"_index":13743,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:96",{"_index":13744,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:99",{"_index":13748,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts",{"_index":12441,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:16",{"_index":20031,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:18",{"_index":20030,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:35",{"_index":12442,"title":{},"body":{"interfaces/ITaskParent.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:45",{"_index":19524,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:48",{"_index":19518,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:51",{"_index":19519,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:54",{"_index":19515,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:58",{"_index":19520,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:61",{"_index":19525,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:64",{"_index":19526,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:67",{"_index":19529,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:71",{"_index":19517,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:75",{"_index":19516,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:79",{"_index":19527,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:83",{"_index":19523,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:86",{"_index":19528,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:90",{"_index":19521,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts",{"_index":12551,"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":20141,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:27",{"_index":20144,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:30",{"_index":20142,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:33",{"_index":20143,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:36",{"_index":20145,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:40",{"_index":20147,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:44",{"_index":20149,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:48",{"_index":20151,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:56",{"_index":20040,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:59",{"_index":20041,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/user",{"_index":21142,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts",{"_index":12582,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:41",{"_index":20786,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:44",{"_index":20789,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:47",{"_index":20795,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:51",{"_index":20802,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:55",{"_index":20803,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:59",{"_index":20797,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:62",{"_index":20788,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:65",{"_index":20800,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:69",{"_index":20792,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:72",{"_index":20790,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:75",{"_index":20796,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:78",{"_index":20787,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:81",{"_index":20793,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:84",{"_index":20791,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:87",{"_index":20799,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:91",{"_index":20785,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:94",{"_index":20794,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:97",{"_index":20798,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/video",{"_index":21654,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["apps/server/src/shared/domain/interface/base",{"_index":2446,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["apps/server/src/shared/domain/interface/entity.ts",{"_index":11957,"title":{},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/interface/find",{"_index":11990,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["apps/server/src/shared/domain/interface/learnroom.ts",{"_index":12075,"title":{},"body":{"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts",{"_index":16551,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:17",{"_index":16557,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:26",{"_index":16562,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:51",{"_index":16555,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/types/importuser.types.ts",{"_index":12052,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["apps/server/src/shared/domain/types/news.types.ts",{"_index":11931,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["apps/server/src/shared/domain/types/rich",{"_index":17449,"title":{},"body":{"classes/RichText.html":{}}}],["apps/server/src/shared/domain/types/task.types.ts",{"_index":12434,"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":1296,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts:8",{"_index":1300,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts",{"_index":1333,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:10",{"_index":1340,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:17",{"_index":1343,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:44",{"_index":1349,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:62",{"_index":1347,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/interfaces/antivirus.ts",{"_index":1327,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/ScanResult.html":{}}}],["apps/server/src/shared/infra/cache/cache.module.ts",{"_index":3868,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts",{"_index":3855,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts:7",{"_index":3857,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/calendar/calendar.module.ts",{"_index":3916,"title":{},"body":{"modules/CalendarModule.html":{}}}],["apps/server/src/shared/infra/calendar/dto/calendar",{"_index":3887,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["apps/server/src/shared/infra/calendar/interface/calendar",{"_index":11582,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts",{"_index":3897,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7",{"_index":3900,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts",{"_index":3920,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:15",{"_index":3930,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:17",{"_index":3924,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:24",{"_index":3927,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:46",{"_index":3929,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/collaborative",{"_index":4511,"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":5540,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{}}}],["apps/server/src/shared/infra/database/management/database",{"_index":7861,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{}}}],["apps/server/src/shared/infra/database/mongo",{"_index":14884,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts",{"_index":11948,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:5",{"_index":11954,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:6",{"_index":11952,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.module.ts",{"_index":8258,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts",{"_index":19262,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:15",{"_index":19265,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:23",{"_index":19264,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:8",{"_index":19263,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/feathers/feathers",{"_index":9738,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["apps/server/src/shared/infra/feathers/feathers.module.ts",{"_index":9619,"title":{},"body":{"modules/FeathersModule.html":{}}}],["apps/server/src/shared/infra/file",{"_index":10274,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["apps/server/src/shared/infra/identity",{"_index":11585,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":1483,"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":14745,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts:11",{"_index":14747,"title":{},"body":{"modules/MailModule.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts",{"_index":14751,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:12",{"_index":14753,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:18",{"_index":14754,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts",{"_index":16733,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:12",{"_index":16750,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:14",{"_index":16755,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:18",{"_index":16749,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:20",{"_index":16757,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:24",{"_index":16745,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:26",{"_index":16759,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:30",{"_index":16746,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:32",{"_index":16761,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:34",{"_index":16744,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:4",{"_index":16747,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:44",{"_index":16762,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:52",{"_index":16751,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:6",{"_index":16748,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:8",{"_index":16753,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts",{"_index":17338,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10",{"_index":17345,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12",{"_index":17347,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14",{"_index":17349,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16",{"_index":17343,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32",{"_index":17432,"title":{},"body":{"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6",{"_index":17346,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8",{"_index":17344,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/oauth",{"_index":337,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.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/preview",{"_index":16574,"title":{},"body":{"classes/PreviewActionsLoggable.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["apps/server/src/shared/infra/rabbitmq/error.mapper.ts",{"_index":8352,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/error.mapper.ts:6",{"_index":8356,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["apps/server/src/shared/infra/rabbitmq/exchange/files",{"_index":11917,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts",{"_index":17076,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:55",{"_index":17099,"title":{},"body":{"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rpc",{"_index":11959,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{}}}],["apps/server/src/shared/infra/redis/redis.module.ts",{"_index":17320,"title":{},"body":{"modules/RedisModule.html":{}}}],["apps/server/src/shared/infra/s3",{"_index":6263,"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":2344,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:11",{"_index":2393,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:111",{"_index":2372,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:116",{"_index":2376,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:13",{"_index":2375,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:15",{"_index":2381,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:17",{"_index":2378,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:19",{"_index":2387,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:24",{"_index":2389,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:42",{"_index":2361,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:50",{"_index":2392,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:63",{"_index":2364,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:77",{"_index":2383,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:8",{"_index":2358,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:85",{"_index":2366,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:98",{"_index":2370,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts",{"_index":2530,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:13",{"_index":2539,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:16",{"_index":2544,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:18",{"_index":2540,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:22",{"_index":2543,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:26",{"_index":2541,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:30",{"_index":2542,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts",{"_index":3660,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:11",{"_index":3668,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:17",{"_index":3671,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:25",{"_index":3666,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:38",{"_index":3673,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:7",{"_index":3674,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/contextexternaltool/context",{"_index":5838,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts",{"_index":6894,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:120",{"_index":6907,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:129",{"_index":6910,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:21",{"_index":6952,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:32",{"_index":6951,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:37",{"_index":6948,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:47",{"_index":6950,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:55",{"_index":6911,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:59",{"_index":6900,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:71",{"_index":6903,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:9",{"_index":6949,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:95",{"_index":6905,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts",{"_index":6774,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19",{"_index":6777,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26",{"_index":6780,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9",{"_index":6781,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts",{"_index":7641,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112",{"_index":7664,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128",{"_index":7659,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16",{"_index":7652,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19",{"_index":7670,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24",{"_index":7666,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34",{"_index":7661,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42",{"_index":7672,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51",{"_index":7668,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64",{"_index":7657,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75",{"_index":7674,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95",{"_index":7654,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts",{"_index":7726,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14",{"_index":11946,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15",{"_index":11945,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16",{"_index":11947,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20",{"_index":7730,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24",{"_index":7736,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30",{"_index":7738,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36",{"_index":7732,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42",{"_index":7734,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/externaltool/external",{"_index":8992,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["apps/server/src/shared/repo/federalstate/federal",{"_index":9771,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts",{"_index":12928,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:11",{"_index":12943,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:27",{"_index":12941,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:34",{"_index":12937,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:52",{"_index":12939,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:69",{"_index":12934,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts",{"_index":12983,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:10",{"_index":13007,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:100",{"_index":13003,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:113",{"_index":13011,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:17",{"_index":13009,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:24",{"_index":12996,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:38",{"_index":12998,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:54",{"_index":13000,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:69",{"_index":13005,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:86",{"_index":12994,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson",{"_index":14268,"title":{},"body":{"classes/LessonScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts",{"_index":14209,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:13",{"_index":14213,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:23",{"_index":14215,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:41",{"_index":14217,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:9",{"_index":14218,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts",{"_index":14687,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17",{"_index":14693,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26",{"_index":14695,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31",{"_index":14692,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9",{"_index":14698,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts",{"_index":14798,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts:7",{"_index":14799,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts",{"_index":14903,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts:6",{"_index":14907,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/news/news",{"_index":15125,"title":{},"body":{"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts",{"_index":15074,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:10",{"_index":15088,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:12",{"_index":15089,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:21",{"_index":15081,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:36",{"_index":15083,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:51",{"_index":15087,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:58",{"_index":15085,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts",{"_index":17550,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:11",{"_index":17558,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:13",{"_index":17554,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:23",{"_index":17556,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:28",{"_index":17553,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:7",{"_index":17559,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/school/legacy",{"_index":14012,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["apps/server/src/shared/repo/schoolexternaltool/school",{"_index":18118,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["apps/server/src/shared/repo/scope.ts",{"_index":18457,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:11",{"_index":18460,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:13",{"_index":18459,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:20",{"_index":18465,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:31",{"_index":18462,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:35",{"_index":18463,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:9",{"_index":18461,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts",{"_index":18944,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12",{"_index":18947,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16",{"_index":18946,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7",{"_index":18945,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts",{"_index":19148,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:10",{"_index":19161,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:21",{"_index":19155,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:30",{"_index":19157,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:35",{"_index":19153,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:41",{"_index":19160,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/system/system",{"_index":19457,"title":{},"body":{"classes/SystemScope.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts",{"_index":19427,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:12",{"_index":19431,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:31",{"_index":19429,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:8",{"_index":19432,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/task/task",{"_index":19877,"title":{},"body":{"classes/TaskScope.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts",{"_index":19740,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:106",{"_index":19749,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:11",{"_index":19760,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:15",{"_index":19759,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:164",{"_index":19755,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:190",{"_index":19757,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:26",{"_index":19747,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:38",{"_index":19753,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts",{"_index":20173,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:12",{"_index":20178,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:35",{"_index":20175,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:42",{"_index":20177,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:8",{"_index":20179,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts",{"_index":18918,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:10",{"_index":18924,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:21",{"_index":18927,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:36",{"_index":18929,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/user/user",{"_index":20885,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts",{"_index":21497,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:158",{"_index":21504,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:166",{"_index":21502,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:173",{"_index":21510,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:185",{"_index":21512,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:189",{"_index":21509,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:21",{"_index":21513,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:36",{"_index":21505,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:48",{"_index":21508,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts",{"_index":21560,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:12",{"_index":21569,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:19",{"_index":21567,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:28",{"_index":21571,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:35",{"_index":21563,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:5",{"_index":21565,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/userloginmigration/user",{"_index":21198,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["apps/server/src/shared/repo/videoconference/video",{"_index":21989,"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":2020,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts",{"_index":2486,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:110",{"_index":2492,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:122",{"_index":2499,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:134",{"_index":2502,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:144",{"_index":2500,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:148",{"_index":2497,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:15",{"_index":2490,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:160",{"_index":2501,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:32",{"_index":2498,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:47",{"_index":2493,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:60",{"_index":2496,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:75",{"_index":2494,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:84",{"_index":2495,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:98",{"_index":2491,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts",{"_index":6724,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:12",{"_index":6728,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:19",{"_index":6729,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:26",{"_index":6731,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:33",{"_index":6734,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts",{"_index":6769,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts:8",{"_index":6770,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/board/column",{"_index":4764,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/do",{"_index":8038,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/domain",{"_index":8046,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/legacy",{"_index":13988,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/context",{"_index":5792,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/external",{"_index":7262,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/school",{"_index":18093,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/external",{"_index":8700,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts",{"_index":10114,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts:10",{"_index":10116,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/import",{"_index":12817,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts",{"_index":6991,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:18",{"_index":13184,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:22",{"_index":13183,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/lesson.factory.ts",{"_index":14196,"title":{},"body":{"classes/LessonFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts",{"_index":14670,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:14",{"_index":14674,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:7",{"_index":14672,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/material.factory.ts",{"_index":14794,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["apps/server/src/shared/testing/factory/readable",{"_index":17101,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["apps/server/src/shared/testing/factory/share",{"_index":18681,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts",{"_index":19022,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:15",{"_index":19027,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:21",{"_index":19026,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:27",{"_index":19029,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:9",{"_index":19025,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts",{"_index":19342,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:28",{"_index":19347,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:40",{"_index":19350,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:7",{"_index":19349,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts",{"_index":19683,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:11",{"_index":19684,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:17",{"_index":19687,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:23",{"_index":19688,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:29",{"_index":19686,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts",{"_index":20043,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:14",{"_index":20049,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:7",{"_index":20047,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts",{"_index":20152,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:19",{"_index":20155,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:9",{"_index":20153,"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":20958,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts:8",{"_index":20961,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts",{"_index":20988,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:11",{"_index":20999,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:17",{"_index":20997,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:23",{"_index":20994,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:32",{"_index":20995,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:41",{"_index":20993,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/test",{"_index":1623,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["apps\\server\\src\\shared\\testing\\factory",{"_index":23458,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appstartinfo",{"_index":1458,"title":{"interfaces/AppStartInfo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["appstartloggable",{"_index":1468,"title":{"classes/AppStartLoggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["appthis",{"_index":22213,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["arbitrary",{"_index":23247,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["arc",{"_index":2534,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["architectural",{"_index":23059,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["architecture",{"_index":22205,"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":23235,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["archive",{"_index":22847,"title":{},"body":{"license.html":{}}}],["archived",{"_index":6831,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["archivegroup(groupname",{"_index":1227,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["are.claim.values.regex",{"_index":13473,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["area",{"_index":23639,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["areas",{"_index":23327,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["aresubmissionspublic",{"_index":12507,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["arg",{"_index":22084,"title":{},"body":{"dependencies.html":{}}}],["args",{"_index":18483,"title":{},"body":{"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{}}}],["argument",{"_index":1195,"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":10804,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["arising",{"_index":22811,"title":{},"body":{"license.html":{}}}],["around",{"_index":19652,"title":{},"body":{"injectables/TaskCopyUC.html":{},"todo.html":{}}}],["arrange",{"_index":22727,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["arrangement",{"_index":22737,"title":{},"body":{"license.html":{}}}],["array",{"_index":1858,"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/FederalStateEntity.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["array(length).keys()].map((_",{"_index":3557,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["array.from(modelentity.gridelements).foreach((el",{"_index":7717,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["array.from(new",{"_index":11262,"title":{},"body":{"injectables/GroupUc.html":{}}}],["array.isarray(boardnode",{"_index":3289,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(cardidparams.ids",{"_index":4019,"title":{},"body":{"controllers/CardController.html":{}}}],["array.isarray(collectionnamefilter",{"_index":11715,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["array.isarray(domainobjects",{"_index":2432,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(id",{"_index":2441,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(matches",{"_index":12037,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(permissions",{"_index":9600,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["array.isarray(props.classnames",{"_index":12023,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(props.rolenames",{"_index":12020,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(requiredpermissions",{"_index":1859,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["array.isarray(t",{"_index":3285,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(user.attributes[attributename",{"_index":13615,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.isarray(user.permissions",{"_index":9565,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["array.isarray(value",{"_index":13627,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["arraybuffer",{"_index":8806,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["article",{"_index":22450,"title":{},"body":{"license.html":{}}}],["asadmin",{"_index":20989,"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":10375,"title":{},"body":{"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["asguest",{"_index":2190,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["asguest(isguest",{"_index":21924,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["asguest(value",{"_index":2193,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["ask",{"_index":14266,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["ask_moderator",{"_index":2093,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["asks",{"_index":5444,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["aspnetcore_environment='development",{"_index":23532,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["assert",{"_index":22304,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assets",{"_index":22682,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["assigned",{"_index":3498,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["assignemnt",{"_index":12849,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["assigning",{"_index":23203,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assignment",{"_index":1204,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["assignment,@typescript",{"_index":1201,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["associated",{"_index":20033,"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":20990,"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":22802,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["assumption",{"_index":22830,"title":{},"body":{"license.html":{}}}],["assumptions",{"_index":22632,"title":{},"body":{"license.html":{}}}],["asteacher",{"_index":20991,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"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":23365,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["atm",{"_index":1643,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["attach",{"_index":22836,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["attachment",{"_index":1491,"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":1493,"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":22642,"title":{},"body":{"license.html":{}}}],["attempted",{"_index":14877,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["attendee",{"_index":2230,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["attendeepw",{"_index":2070,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["attendees",{"_index":2214,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["attends",{"_index":12848,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["attention",{"_index":23694,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["attribute",{"_index":12710,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["attributename",{"_index":12707,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributes",{"_index":3906,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["attributes.summary",{"_index":3910,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributes['x",{"_index":3908,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributevalue",{"_index":12712,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributions",{"_index":22619,"title":{},"body":{"license.html":{}}}],["aud",{"_index":6992,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["audience",{"_index":1609,"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":4813,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["autenticationresponse",{"_index":1640,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["auth",{"_index":1272,"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":13134,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["auth.provider",{"_index":9596,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["auth.provider.ts",{"_index":9545,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["auth.provider.ts:13",{"_index":9551,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:16",{"_index":9559,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:26",{"_index":9561,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:38",{"_index":9555,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:55",{"_index":9553,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:60",{"_index":9557,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth_token",{"_index":2207,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["authcode",{"_index":15399,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authconfig",{"_index":13141,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.jwtoptions",{"_index":13150,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.secret",{"_index":13149,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authendpoint",{"_index":11557,"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/SystemEntity.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/GroupController.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/PseudonymController.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/ToolReferenceController.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/GroupController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["authenticate('jwt')@delete('auth/sessions/consent",{"_index":15883,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@delete('clients/:id",{"_index":15858,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('auth/sessions/consent",{"_index":15871,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients",{"_index":15873,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients/:id",{"_index":15866,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('consentrequest/:challenge",{"_index":15861,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('consentrequest/:challenge",{"_index":15876,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('loginrequest/:challenge",{"_index":15879,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('logoutrequest/:challenge",{"_index":15854,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@post('clients",{"_index":15856,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@put('clients/:id",{"_index":15885,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticated",{"_index":522,"title":{},"body":{"controllers/AccountController.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"interfaces/OauthCurrentUser.html":{}}}],["authenticateuser",{"_index":15385,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticateuser(systemid",{"_index":15398,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticating",{"_index":23113,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["authentication",{"_index":1920,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentResponse.html":{},"interfaces/ICleanOptions.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":1511,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["authentication/authentication",{"_index":11403,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["authentication/authentication.module",{"_index":10753,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["authentication/local",{"_index":1635,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationapimodule",{"_index":1503,"title":{"modules/AuthenticationApiModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["authenticationcodegranttokenrequest",{"_index":1514,"title":{"classes/AuthenticationCodeGrantTokenRequest.html":{}},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/TokenRequestMapper.html":{}}}],["authenticationexecutioninforepresentation",{"_index":13365,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationflowrepresentation",{"_index":13367,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationmodule",{"_index":1507,"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":1622,"title":{"interfaces/AuthenticationResponse.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationresponse.accesstoken",{"_index":1705,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationservice",{"_index":1549,"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":15468,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["authenticationurl.searchparams.append('client_id",{"_index":15470,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('kc_idp_hint",{"_index":15475,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('redirect_uri",{"_index":15471,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('response_type",{"_index":15472,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('scope",{"_index":15473,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('state",{"_index":15474,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.tostring",{"_index":15476,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationvalues",{"_index":1776,"title":{"classes/AuthenticationValues.html":{}},"body":{"classes/AuthenticationValues.html":{}}}],["authguard",{"_index":13136,"title":{},"body":{"injectables/JwtAuthGuard.html":{},"controllers/LoginController.html":{}}}],["authguard('jwt",{"_index":13135,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["authheader",{"_index":16184,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.split",{"_index":16187,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.tolowercase().startswith('bearer",{"_index":16186,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["author",{"_index":22618,"title":{},"body":{"license.html":{},"properties.html":{}}}],["authoriation",{"_index":23707,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorisation",{"_index":3586,"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":{}}}],["authorisation.checkpermission",{"_index":14180,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorisationservice",{"_index":8056,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["authorizable",{"_index":19136,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["authorizable.service.ts",{"_index":3117,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:11",{"_index":5727,"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":5726,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.ts",{"_index":3089,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizable.ts:32",{"_index":3093,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:36",{"_index":3095,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:40",{"_index":3098,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizableobject",{"_index":1787,"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":{},"injectables/CopyHelperService.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":1973,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.boardnode",{"_index":10561,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.contextexternaltoolentity",{"_index":6079,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.course",{"_index":6707,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.lesson",{"_index":10557,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.school",{"_index":10555,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{}}}],["authorizablereferencetype.submission",{"_index":10559,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.task",{"_index":10550,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.user",{"_index":10553,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizableuser",{"_index":14098,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["authorization",{"_index":1820,"title":{},"body":{"classes/AuthorizationError.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/CalendarService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/CourseCopyUC.html":{},"injectables/HydraOauthUc.html":{},"modules/ImportUserModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.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":13737,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:12",{"_index":13741,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:13",{"_index":14374,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:17",{"_index":13738,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:21",{"_index":13739,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:7",{"_index":13740,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:8",{"_index":14375,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.helper",{"_index":2005,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["authorization.module",{"_index":1958,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorization.params",{"_index":16127,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authorization.params.ts",{"_index":18913,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:12",{"_index":18915,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:16",{"_index":18916,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:20",{"_index":18917,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:8",{"_index":18914,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.service",{"_index":1979,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["authorization.service.ts",{"_index":9581,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:16",{"_index":9592,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:32",{"_index":9588,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:54",{"_index":9594,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:6",{"_index":9586,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization_code",{"_index":11561,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{}}}],["authorization_operation",{"_index":1819,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["authorization_timebox_ms",{"_index":13238,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorizationapimodule",{"_index":1943,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["authorizationcontext",{"_index":1795,"title":{"interfaces/AuthorizationContext.html":{}},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationReferenceService.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/GroupRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ShareTokenUC.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":1801,"title":{"classes/AuthorizationContextBuilder.html":{}},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/GroupUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read",{"_index":17043,"title":{},"body":{"injectables/PseudonymUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{}}}],["authorizationcontextbuilder.read([permission.class_list",{"_index":11226,"title":{},"body":{"injectables/GroupUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_admin",{"_index":6095,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_user",{"_index":20607,"title":{},"body":{"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read([permission.course_edit",{"_index":6720,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["authorizationcontextbuilder.read([permission.filestorage_view",{"_index":23666,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([permission.group_view",{"_index":11275,"title":{},"body":{"injectables/GroupUc.html":{}}}],["authorizationcontextbuilder.read([permission.school_edit",{"_index":14124,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["authorizationcontextbuilder.read([permission.school_tool_admin",{"_index":8587,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["authorizationcontextbuilder.read([permission.submissions_view",{"_index":19245,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.read([permission.topic_create",{"_index":14178,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorizationcontextbuilder.read([permissions.course_view",{"_index":23663,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write",{"_index":14184,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.change_team_roles",{"_index":4682,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["authorizationcontextbuilder.write([permission.context_tool_admin",{"_index":6076,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["authorizationcontextbuilder.write([permission.course_create",{"_index":6705,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_create",{"_index":23665,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_edit",{"_index":23667,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_remove",{"_index":23668,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.instance",{"_index":23675,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.submissions_edit",{"_index":19242,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.write([permission.topic_view",{"_index":14307,"title":{},"body":{"injectables/LessonUC.html":{}}}],["authorizationcontextbuilder.write([permission.user_login_migration_admin",{"_index":17444,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["authorizationcontextbuilder.write(requiredpermissions",{"_index":18842,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["authorizationerror",{"_index":1815,"title":{"classes/AuthorizationError.html":{}},"body":{"classes/AuthorizationError.html":{}}}],["authorizationhelper",{"_index":1823,"title":{"injectables/AuthorizationHelper.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":1868,"title":{"interfaces/AuthorizationLoaderService.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizationloaderservicegeneric",{"_index":1876,"title":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/GroupService.html":{}}}],["authorizationmodule",{"_index":1878,"title":{"modules/AuthorizationModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.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/PseudonymApiModule.html":{},"modules/PseudonymModule.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":1907,"title":{"classes/AuthorizationParams.html":{}},"body":{"classes/AuthorizationParams.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["authorizationreferencemodule",{"_index":1923,"title":{"modules/AuthorizationReferenceModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["authorizationreferenceservice",{"_index":1928,"title":{"injectables/AuthorizationReferenceService.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ShareTokenUC.html":{}}}],["authorizations",{"_index":19651,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationservice",{"_index":1884,"title":{"injectables/AuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/GroupUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/NewsUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PermissionService.html":{},"injectables/PseudonymUc.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":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationurl",{"_index":12417,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["authorize",{"_index":16535,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizeaccess",{"_index":13240,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorized",{"_index":1821,"title":{},"body":{"classes/AuthorizationError.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizes",{"_index":22705,"title":{},"body":{"license.html":{}}}],["authorizing",{"_index":22741,"title":{},"body":{"license.html":{}}}],["authors",{"_index":22623,"title":{},"body":{"license.html":{}}}],["authparams",{"_index":11453,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["authservice",{"_index":4654,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LoginUc.html":{}}}],["authtoken",{"_index":1213,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["auto",{"_index":10677,"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":23297,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["automatic",{"_index":22674,"title":{},"body":{"license.html":{}}}],["automatically",{"_index":8890,"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":8877,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameters.includes(customparameter.type",{"_index":8915,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["avaible",{"_index":1875,"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":2461,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementOauthService.html":{},"classes/OauthLoginResponse.html":{},"injectables/OpenGraphProxyService.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":12238,"title":{},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{}}}],["availabledate",{"_index":3752,"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":19807,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["availableschoolexternaltools",{"_index":8521,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["availableschoolexternaltools.map",{"_index":8548,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["availabletools",{"_index":8538,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["availabletools.foreach((externaltool",{"_index":8591,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext",{"_index":8599,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext.foreach((tooltemplateinfo",{"_index":8602,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["avoid",{"_index":1949,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["awaited",{"_index":23367,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["awaiting_scan_status",{"_index":10033,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["awaits",{"_index":20628,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["away",{"_index":22284,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["aws",{"_index":7961,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"dependencies.html":{}}}],["axios",{"_index":2033,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{},"dependencies.html":{}}}],["axiosconfig",{"_index":11447,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosheaders",{"_index":2028,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaders(props.headers",{"_index":2042,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaderskeyvalue",{"_index":2034,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheadervalue",{"_index":2032,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosrequestconfig",{"_index":3928,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponse",{"_index":2022,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponsefactory",{"_index":2046,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseimp",{"_index":2019,"title":{"classes/AxiosResponseImp.html":{}},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseprops",{"_index":2024,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["b",{"_index":2686,"title":{},"body":{"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"injectables/GroupUc.html":{},"interfaces/IGridElement.html":{},"injectables/OpenGraphProxyService.html":{},"classes/SortHelper.html":{},"license.html":{}}}],["b.getmetadata().title",{"_index":7470,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["b.position",{"_index":3275,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["b.width",{"_index":16445,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["b[sortby",{"_index":11231,"title":{},"body":{"injectables/GroupUc.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":14528,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["backchannelsupported",{"_index":16288,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["backend",{"_index":23618,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["backendurl",{"_index":8791,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["backendurl}${filledtemplate",{"_index":8795,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["background",{"_index":10049,"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":11678,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["backup/idm/keycloak",{"_index":23567,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup/setup/accounts.json",{"_index":13292,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["backup/setup/users.json",{"_index":13293,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["bad",{"_index":12310,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["badrequest",{"_index":19653,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["badrequestexception",{"_index":2643,"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":{}}}],["badrequestexception('dashboard",{"_index":7492,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('destination",{"_index":18833,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["badrequestexception('elements",{"_index":2680,"title":{},"body":{"entities/Board.html":{}}}],["badrequestexception('language",{"_index":21628,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["badrequestexception('this",{"_index":7478,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('unknown",{"_index":21450,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["badrequestexception(`cannot",{"_index":2793,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(`invalid",{"_index":2791,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(errorobj.message",{"_index":8360,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["badrequestexception(errortype.file_name_empty",{"_index":10081,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["badrequestexception})@apiresponse({status",{"_index":11363,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["badrequestloggableexception",{"_index":23281,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["base",{"_index":2051,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BaseDORepo.html":{},"classes/BusinessError.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LtiToolRepo.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":7180,"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":14025,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["base.do.repo.ts",{"_index":2480,"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/FederalStateEntity.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/SchoolYearEntity.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UsersList.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":8039,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["base.interface.strategy",{"_index":15258,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["base.repo",{"_index":3675,"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":2165,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{}}}],["base.response.ts",{"_index":2061,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["base.strategy",{"_index":13099,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{}}}],["base64",{"_index":8798,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"dependencies.html":{}}}],["base64content",{"_index":1486,"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":8802,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["base_string",{"_index":14565,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["base_url",{"_index":17365,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["based",{"_index":2487,"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/ToolPermissionHelper.html":{},"injectables/VideoConferenceCreateUc.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":11682,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["basedo",{"_index":1872,"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":5708,"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":2445,"title":{"classes/BaseDomainObject.html":{}},"body":{"classes/BaseDomainObject.html":{}}}],["basedorepo",{"_index":2343,"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":5860,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:111",{"_index":5866,"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":9007,"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":20897,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:13",{"_index":14690,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["basedorepo:19",{"_index":5868,"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":8997,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:24",{"_index":5869,"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":18729,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:28",{"_index":18127,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:29",{"_index":20890,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:34",{"_index":5852,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:37",{"_index":21994,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:40",{"_index":21203,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:42",{"_index":5862,"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":14697,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:45",{"_index":14017,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:46",{"_index":18728,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:49",{"_index":14023,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:50",{"_index":5870,"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:55",{"_index":21202,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:56",{"_index":5855,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:60",{"_index":20896,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:63",{"_index":5863,"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:66",{"_index":14022,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:69",{"_index":14696,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:74",{"_index":18133,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:77",{"_index":5867,"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":5861,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:84",{"_index":9006,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:85",{"_index":5864,"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":9005,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["basedorepo:98",{"_index":5865,"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":2395,"title":{"classes/BaseEntity.html":{}},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYearEntity.html":{}}}],["baseentityproperties",{"_index":2396,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["baseentityproperties.includes(key",{"_index":2429,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["baseentityreference",{"_index":2463,"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/FederalStateEntity.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/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.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":2047,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalToolEntityFactory.html":{}}}],["basefactory.define(readablestreamwithfiletypeimp",{"_index":17111,"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":8048,"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":4315,"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":14769,"title":{},"body":{"modules/ManagementModule.html":{}}}],["basepath",{"_index":1462,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/ICollectionFilePath.html":{}}}],["basepermission",{"_index":23696,"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":6779,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["baserepo:14",{"_index":19158,"title":{},"body":{"injectables/SubmissionRepo.html":{},"injectables/TeamsRepo.html":{}}}],["baserepo:15",{"_index":12935,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["baserepo:17",{"_index":14216,"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":21506,"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":3669,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["baserepo:63",{"_index":6908,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["baseresponsemapper",{"_index":2547,"title":{"interfaces/BaseResponseMapper.html":{}},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["baseroute",{"_index":1648,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["baseurl",{"_index":238,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"classes/BasicToolConfig.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/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchData.html":{}}}],["baseurl.com",{"_index":7275,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["bash",{"_index":23516,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["basic",{"_index":13403,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["basictoolconfig",{"_index":2558,"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":9127,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["basictoolconfigentity",{"_index":2570,"title":{"classes/BasicToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["basictoolconfigfactory",{"_index":7272,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigfactory.build",{"_index":7320,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigparams",{"_index":2580,"title":{"classes/BasicToolConfigParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["basictoolconfigresponse",{"_index":2590,"title":{"classes/BasicToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["basictoollaunchstrategy",{"_index":2598,"title":{"injectables/BasicToolLaunchStrategy.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["batch",{"_index":7929,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["batchcounter",{"_index":7967,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["batchsize",{"_index":7919,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["bbb",{"_index":2065,"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":{},"dependencies.html":{}}}],["bbbbasemeetingconfig",{"_index":2048,"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":2089,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["bbbbaseresponse",{"_index":2059,"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":2067,"title":{"classes/BBBCreateConfig.html":{}},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbcreateconfigbuilder",{"_index":2111,"title":{"classes/BBBCreateConfigBuilder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["bbbcreateresponse",{"_index":2154,"title":{"interfaces/BBBCreateResponse.html":{}},"body":{"interfaces/BBBCreateResponse.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfig",{"_index":2166,"title":{"classes/BBBJoinConfig.html":{}},"body":{"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfigbuilder",{"_index":2188,"title":{"classes/BBBJoinConfigBuilder.html":{}},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["bbbjoinresponse",{"_index":2205,"title":{"interfaces/BBBJoinResponse.html":{}},"body":{"interfaces/BBBJoinResponse.html":{}}}],["bbbmeetinginforesponse",{"_index":2211,"title":{"interfaces/BBBMeetingInfoResponse.html":{}},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbresp",{"_index":2309,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.message",{"_index":2315,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.returncode",{"_index":2312,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresponse",{"_index":2237,"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":2134,"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":{}}}],["bbbrole.moderator",{"_index":2149,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbrole.viewer",{"_index":2151,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/VideoConferenceMapper.html":{}}}],["bbbservice",{"_index":2239,"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":2318,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:end",{"_index":2324,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:getmeetinginfo",{"_index":2326,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbsettings",{"_index":2252,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbstatus",{"_index":2064,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/BBBService.html":{}}}],["bbbstatus.success",{"_index":2313,"title":{},"body":{"injectables/BBBService.html":{}}}],["bc",{"_index":1966,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["bcc",{"_index":1501,"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":1068,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LocalStrategy.html":{}}}],["bcrypt.compare(comparepassword",{"_index":1104,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcrypt.compare(enteredpassword",{"_index":14405,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["bcrypt.hash(password",{"_index":1108,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcryptjs",{"_index":1069,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/LocalStrategy.html":{},"dependencies.html":{}}}],["bearer",{"_index":1633,"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":22326,"title":{},"body":{"license.html":{}}}],["becoming",{"_index":23633,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["beetween",{"_index":4279,"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":23416,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeall(async",{"_index":23394,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeeach",{"_index":23417,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforehand",{"_index":22985,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["beginning",{"_index":22240,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["behalf",{"_index":22431,"title":{},"body":{"license.html":{}}}],["behaves",{"_index":23282,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["behavior",{"_index":947,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["behaviour",{"_index":6434,"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":20247,"title":{},"body":{"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["being",{"_index":2504,"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":22735,"title":{},"body":{"license.html":{}}}],["belong",{"_index":4120,"title":{},"body":{"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["belongs",{"_index":5503,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["below",{"_index":22437,"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":22310,"title":{},"body":{"license.html":{}}}],["ber",{"_index":4858,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["berechtigungen",{"_index":4841,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["beside",{"_index":22967,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["best",{"_index":22833,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["better",{"_index":22849,"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":{}}}],["bettermarks",{"_index":9632,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["between",{"_index":768,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TaskCopyUC.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":23083,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["beyond",{"_index":22504,"title":{},"body":{"license.html":{}}}],["bezeichnung",{"_index":17940,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["big",{"_index":23072,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bigbluebutton",{"_index":21763,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["bigbluebutton/api/${callname",{"_index":2339,"title":{},"body":{"injectables/BBBService.html":{}}}],["binary",{"_index":6236,"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":9977,"title":{},"body":{"classes/FileParams.html":{}}}],["bind",{"_index":13790,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["binding",{"_index":13837,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["bis",{"_index":17955,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["blackbox",{"_index":23305,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["block",{"_index":23339,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["blocked",{"_index":10029,"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":23308,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["blti",{"_index":5185,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_bundle",{"_index":5192,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_icon",{"_index":5194,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["bn",{"_index":3283,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["bn.type",{"_index":3287,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["board",{"_index":2627,"title":{"entities/Board.html":{}},"body":{"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":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardUrlParams.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"controllers/GroupController.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":{},"entities/LessonEntity.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.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":{},"modules/ToolApiModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["board.'})@apiresponse({status",{"_index":2901,"title":{},"body":{"controllers/BoardController.html":{}}}],["board.children.map((column",{"_index":3711,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.createdat",{"_index":3717,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.displaycolor",{"_index":17605,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.do",{"_index":2844,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["board.do.factory.ts",{"_index":4765,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.factory.ts:9",{"_index":4767,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.ts",{"_index":4720,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["board.do.ts:10",{"_index":4725,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:14",{"_index":4727,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:18",{"_index":4729,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:6",{"_index":4724,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.elements.foreach((element",{"_index":17607,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.getbytargetid(elementid",{"_index":17765,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.id",{"_index":3549,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{}}}],["board.isarchived",{"_index":17606,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.module",{"_index":2726,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["board.references.getitems",{"_index":3684,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.references.init",{"_index":3683,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.reorderelements(orderedlist",{"_index":17768,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.response",{"_index":3445,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.response.ts",{"_index":2734,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:15",{"_index":2740,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:19",{"_index":2743,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:22",{"_index":2741,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:25",{"_index":2739,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:28",{"_index":2744,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:31",{"_index":2738,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:4",{"_index":2737,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.roomid",{"_index":17604,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.service.ts",{"_index":4783,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:130",{"_index":4791,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:18",{"_index":4787,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:25",{"_index":4798,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:31",{"_index":4799,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:37",{"_index":4801,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:42",{"_index":4789,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:57",{"_index":4796,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:61",{"_index":4804,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:66",{"_index":4793,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.syncboardelementreferences(boardelementtargets",{"_index":17737,"title":{},"body":{"injectables/RoomsService.html":{}}}],["board.title",{"_index":3710,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardService.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.types",{"_index":8095,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["board.updatedat",{"_index":3716,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board/board",{"_index":2733,"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":2629,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:29",{"_index":2635,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:32",{"_index":2639,"title":{},"body":{"entities/Board.html":{}}}],["board/board.response.ts",{"_index":18870,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:19",{"_index":18875,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:25",{"_index":18876,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:30",{"_index":18872,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:36",{"_index":18873,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:41",{"_index":18874,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:6",{"_index":18871,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/boardelement.entity.ts",{"_index":3425,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:26",{"_index":3428,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:30",{"_index":3426,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/column",{"_index":4872,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{}}}],["board/lesson",{"_index":14134,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["board/task",{"_index":19539,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardapimodule",{"_index":2711,"title":{"modules/BoardApiModule.html":{}},"body":{"modules/BoardApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["boardauthorizable",{"_index":19125,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardauthorizable.users.filter((user",{"_index":19127,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boardcolumnboardresponse",{"_index":2731,"title":{"classes/BoardColumnBoardResponse.html":{}},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardcomposite",{"_index":2749,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcomposite:13",{"_index":8637,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:14",{"_index":4712,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:17",{"_index":8635,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["boardcomposite:19",{"_index":3945,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:21",{"_index":8636,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{}}}],["boardcomposite:22",{"_index":4723,"title":{},"body":{"classes/ColumnBoard.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:23",{"_index":4711,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:25",{"_index":9831,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:26",{"_index":3944,"title":{},"body":{"classes/Card.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:27",{"_index":4721,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:28",{"_index":19039,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:29",{"_index":9832,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:30",{"_index":17461,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:31",{"_index":4722,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:32",{"_index":19040,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:35",{"_index":3947,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:36",{"_index":3942,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:37",{"_index":14317,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:39",{"_index":3946,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:40",{"_index":3943,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:41",{"_index":14315,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcomposite:45",{"_index":14316,"title":{},"body":{"classes/LinkElement.html":{}}}],["boardcompositeprops",{"_index":2804,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitor",{"_index":2760,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitorasync",{"_index":2764,"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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcontext",{"_index":2944,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse",{"_index":2879,"title":{"classes/BoardContextResponse.html":{}},"body":{"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{}}}],["boardcontextresponse(boardcontext",{"_index":2946,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse})@apiresponse({status",{"_index":2914,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontroller",{"_index":2720,"title":{"controllers/BoardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{}}}],["boardcopy",{"_index":3020,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyparams",{"_index":2977,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyservice",{"_index":2958,"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/CardUc.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddo.id",{"_index":3134,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boarddoauthorizable",{"_index":3088,"title":{"classes/BoardDoAuthorizable.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizable.requireduserrole",{"_index":3397,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddoauthorizable.users.find",{"_index":3396,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find((u",{"_index":19133,"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/CardUc.html":{},"injectables/ElementUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["boarddobuilder",{"_index":3155,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boarddobuilderimpl",{"_index":3196,"title":{"classes/BoardDoBuilderImpl.html":{}},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(children).builddomainobject(boardnode",{"_index":3358,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(descendants).builddomainobject(boardnode",{"_index":3349,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddocopyparams",{"_index":3296,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["boarddocopyservice",{"_index":3293,"title":{"injectables/BoardDoCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.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/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["boarddorule",{"_index":1886,"title":{"injectables/BoardDoRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/BoardDoRule.html":{},"injectables/RuleManager.html":{}}}],["boarddos",{"_index":4162,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddos.map((boarddo",{"_index":4185,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddoservice",{"_index":3402,"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":2651,"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":{},"injectables/ToolPermissionHelper.html":{}}}],["boardelement.entity",{"_index":2653,"title":{},"body":{"entities/Board.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts",{"_index":14135,"title":{},"body":{"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts:13",{"_index":14136,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["boardelement.entity.ts:16",{"_index":19540,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardelement.ts",{"_index":4986,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelement.ts:13",{"_index":4988,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelementprops",{"_index":3431,"title":{},"body":{"entities/BoardElement.html":{}}}],["boardelementreference",{"_index":2652,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{}}}],["boardelementresponse",{"_index":3435,"title":{"classes/BoardElementResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["boardelements",{"_index":2982,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelements.map((element",{"_index":3032,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelementservice",{"_index":20616,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardelementtarget",{"_index":2709,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets",{"_index":17736,"title":{},"body":{"injectables/RoomsService.html":{}}}],["boardelementtargets.filter(isnotcontained).map(maptoboardelement",{"_index":2705,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets.includes(ref.target",{"_index":2695,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtype",{"_index":3001,"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":3044,"title":{},"body":{"injectables/BoardCopyService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.lesson",{"_index":3041,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.task",{"_index":3037,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardexternalreference",{"_index":3329,"title":{"interfaces/BoardExternalReference.html":{}},"body":{"injectables/BoardDoRepo.html":{},"interfaces/BoardExternalReference.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{}}}],["boardexternalreferencetype",{"_index":2887,"title":{},"body":{"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/RoomsService.html":{}}}],["boardexternalreferencetype.course",{"_index":3066,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/RoomsService.html":{}}}],["boardid",{"_index":3499,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/BoardUrlParams.html":{},"injectables/ColumnBoardService.html":{}}}],["boardids",{"_index":4802,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["boardlessonresponse",{"_index":3439,"title":{"classes/BoardLessonResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardmanagementconsole",{"_index":3476,"title":{"classes/BoardManagementConsole.html":{}},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["boardmanagementuc",{"_index":3482,"title":{"injectables/BoardManagementUc.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ManagementModule.html":{}}}],["boardmodule",{"_index":1956,"title":{"modules/BoardModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/LearnroomModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["boardnode",{"_index":3143,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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.alternativetext",{"_index":3254,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.ancestorids",{"_index":3376,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.caption",{"_index":3252,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.completed",{"_index":3265,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.context",{"_index":3240,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.contextexternaltool?.id",{"_index":3268,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.createdat",{"_index":3238,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.duedate",{"_index":3263,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.entity",{"_index":4061,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnode.foreach((bn",{"_index":3290,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.height",{"_index":3249,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.id",{"_index":3236,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnode.imageurl",{"_index":3257,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.inputformat",{"_index":3260,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.joinpath(props.parent.path",{"_index":3604,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.joinpath(this.path",{"_index":3616,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.parentid",{"_index":3373,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.text",{"_index":3258,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.title",{"_index":3237,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.updatedat",{"_index":3239,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.url",{"_index":3255,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.usedobuilder(this",{"_index":3231,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.userid",{"_index":3266,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnodeauthorizableservice",{"_index":12126,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["boardnodeprops",{"_index":3598,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnoderepo",{"_index":3315,"title":{"injectables/BoardNodeRepo.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnodes",{"_index":3353,"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":3356,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.map((o",{"_index":3370,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.reduce((map",{"_index":3361,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodetype",{"_index":3222,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnodetype.card",{"_index":3241,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["boardnodetype.column",{"_index":3233,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{}}}],["boardnodetype.column_board",{"_index":4775,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["boardnodetype.external_tool",{"_index":3247,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["boardnodetype.file_element",{"_index":3243,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["boardnodetype.link_element",{"_index":3244,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["boardnodetype.rich_text_element",{"_index":3245,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["boardnodetype.submission_container_element",{"_index":3246,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["boardnodetype.submission_item",{"_index":3261,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardprops",{"_index":2661,"title":{},"body":{"entities/Board.html":{}}}],["boardrepo",{"_index":2970,"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":2931,"title":{"classes/BoardResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper",{"_index":2935,"title":{"classes/BoardResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper.maptoresponse(board",{"_index":2942,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardresponse})@apiresponse({status",{"_index":2919,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardroles",{"_index":3099,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"interfaces/UserBoardRoles.html":{}}}],["boardroles.editor",{"_index":3148,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boardroles.reader",{"_index":3153,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boards",{"_index":2892,"title":{},"body":{"controllers/BoardController.html":{},"injectables/ColumnBoardService.html":{}}}],["boardservice",{"_index":20617,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["boardstatus",{"_index":3000,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["boardstatus.elements",{"_index":3078,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardsubmissioncontroller",{"_index":2724,"title":{"controllers/BoardSubmissionController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["boardtask",{"_index":17613,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.availabledate",{"_index":17628,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.course",{"_index":17624,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.createdat",{"_index":17621,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.description",{"_index":17634,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.duedate",{"_index":17630,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.getparentdata",{"_index":17615,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.id",{"_index":17619,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.name",{"_index":17620,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.updatedat",{"_index":17622,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc",{"_index":17614,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc.color",{"_index":17632,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskresponse",{"_index":3438,"title":{"classes/BoardTaskResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatus",{"_index":17616,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper",{"_index":3767,"title":{"classes/BoardTaskStatusMapper.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper.maptoresponse(status",{"_index":17617,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusresponse",{"_index":3763,"title":{"classes/BoardTaskStatusResponse.html":{}},"body":{"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{}}}],["boardtaskstatusresponse(status",{"_index":3773,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["boarduc",{"_index":2715,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["boardurlparams",{"_index":2899,"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":{},"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":21116,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.create",{"_index":20101,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.delete",{"_index":20102,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.destinationcourseid",{"_index":18666,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.expiresindays",{"_index":18655,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.mandatory",{"_index":21110,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.newname",{"_index":18665,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parentid",{"_index":18653,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parenttype",{"_index":18652,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.read",{"_index":20103,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.redirecturi",{"_index":21117,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.schoolexclusive",{"_index":18654,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.session",{"_index":15840,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["body.share",{"_index":20104,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.systemid",{"_index":21115,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.write",{"_index":20105,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["bodyparams",{"_index":2923,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.completed",{"_index":3750,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.data.content",{"_index":8221,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.height",{"_index":4031,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.title",{"_index":2951,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["bodyparams.toboardid",{"_index":4939,"title":{},"body":{"controllers/ColumnController.html":{}}}],["bodyparams.tocardid",{"_index":8217,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.tocolumnid",{"_index":4027,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.toposition",{"_index":4028,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyproperties",{"_index":2617,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["bom",{"_index":22184,"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":{},"interfaces/AntivirusModuleOptions.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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRule.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IAccountConfig.html":{},"interfaces/ICleanOptions.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/IFileStorageConfig.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/IRetryOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.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":{},"interfaces/OauthCurrentUser.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":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.html":{},"classes/PrometheusMetricsConfig.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/PseudonymScope.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":{},"interfaces/ScanResult.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"interfaces/UserData.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"classes/UsersList.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":{},"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":11651,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["bootstrap",{"_index":431,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bootstrap.boot([process.argv0",{"_index":20231,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts",{"_index":20213,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts:8",{"_index":20215,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrapconsole",{"_index":20222,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstraps",{"_index":23392,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["both",{"_index":22768,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bound",{"_index":14365,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["box",{"_index":23388,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["branch",{"_index":1128,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["break",{"_index":5209,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"injectables/ContentElementFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{}}}],["breaking",{"_index":23624,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["breakout",{"_index":2215,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["breakoutrooms",{"_index":2216,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["bring",{"_index":6985,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["broadcast",{"_index":1172,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["broken",{"_index":23080,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["broker",{"_index":13380,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["brokerconfig",{"_index":19492,"title":{},"body":{"injectables/SystemService.html":{}}}],["brokering",{"_index":23523,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["browse",{"_index":22856,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application.html":{}}}],["browser",{"_index":22854,"title":{},"body":{"modules.html":{}}}],["brute",{"_index":73,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{}}}],["bruteforceerror",{"_index":1740,"title":{"classes/BruteForceError.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["bruteforceerror(timetowait",{"_index":1768,"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/PseudonymScope.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"dependencies.html":{}}}],["bson/ejson",{"_index":3816,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["bsonconverter",{"_index":3804,"title":{"injectables/BsonConverter.html":{}},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["bsondocuments",{"_index":3815,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["btw",{"_index":2477,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bucket",{"_index":6270,"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":23753,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buffer",{"_index":6996,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"classes/JwtTestFactory.html":{}}}],["buffer.from(externaltool.logo",{"_index":8797,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(manifest",{"_index":5161,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(newresource.content",{"_index":5142,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(resource.content",{"_index":5147,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(response.data",{"_index":8809,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(tool.logo",{"_index":8818,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.length",{"_index":8799,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.tostring('base64",{"_index":8811,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["bufferencoding",{"_index":10321,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["bug",{"_index":12556,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["bugs",{"_index":22862,"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":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.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":10234,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["build(id",{"_index":6260,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["build(name",{"_index":9814,"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(props",{"_index":18418,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["build(requiredpermissions",{"_index":1806,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["build(schoolid",{"_index":9971,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["build(type",{"_index":5555,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["build(userid",{"_index":6281,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["buildaccount",{"_index":20810,"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":20813,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildcard",{"_index":3158,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcard(boardnode",{"_index":3167,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren",{"_index":3201,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren(boardnode",{"_index":3209,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn",{"_index":3159,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn(boardnode",{"_index":3170,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard",{"_index":3160,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard(boardnode",{"_index":3173,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcopyentitydict",{"_index":6348,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["buildcopyentitydict(status",{"_index":6351,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["builddomainobject",{"_index":3202,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddomainobject(boardnode",{"_index":3213,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddtowithelements",{"_index":8058,"title":{},"body":{"classes/DtoCreator.html":{}}}],["builddtowithelements(elements",{"_index":8072,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["builder",{"_index":2114,"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":5047,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.build",{"_index":5042,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.buildcard(this",{"_index":4065,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["builder.buildcolumn(this",{"_index":4947,"title":{},"body":{"entities/ColumnNode.html":{}}}],["builder.buildcolumnboard(this",{"_index":4782,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["builder.buildexternaltoolelement(this",{"_index":8665,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["builder.buildfileelement(this",{"_index":9861,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["builder.buildlinkelement(this",{"_index":14347,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["builder.buildrichtextelement(this",{"_index":17489,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["builder.buildsubmissioncontainerelement(this",{"_index":18987,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["builder.buildsubmissionitem(this",{"_index":19067,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["builder.ts",{"_index":5099,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:24",{"_index":11862,"title":{},"body":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:28",{"_index":11859,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:30",{"_index":11860,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:32",{"_index":11861,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:35",{"_index":5268,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:42",{"_index":5271,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:46",{"_index":5273,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:52",{"_index":5269,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:63",{"_index":5110,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:65",{"_index":5112,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:67",{"_index":5109,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:69",{"_index":5108,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:73",{"_index":5115,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:79",{"_index":5118,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:88",{"_index":5119,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder:2",{"_index":2120,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["builder:26",{"_index":2121,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["builder:8",{"_index":2199,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["buildexternaltool",{"_index":5550,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildexternaltoolelement",{"_index":3161,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildexternaltoolelement(boardnode",{"_index":3176,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfile",{"_index":5551,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/PreviewGeneratorBuilder.html":{}}}],["buildfile(preview",{"_index":16615,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["buildfileelement",{"_index":3162,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfileelement(boardnode",{"_index":3179,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfromaxiosresponse",{"_index":9812,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromaxiosresponse(name",{"_index":9816,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest",{"_index":9813,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest(fileinfo",{"_index":9818,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildgroupsclaim",{"_index":12622,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildgroupsclaim(teams",{"_index":12628,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildlink",{"_index":5552,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildlinkelement",{"_index":3163,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildlinkelement(boardnode",{"_index":3182,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.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":7263,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["buildlistwitheachtype(params",{"_index":7264,"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":8758,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildlogourl(template",{"_index":8765,"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":{}}}],["buildparams",{"_index":16586,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildparams(filerecord",{"_index":16588,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload",{"_index":16587,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildpayload(params",{"_index":16590,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["buildrichtext",{"_index":5553,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildrichtextelement",{"_index":3164,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildrichtextelement(boardnode",{"_index":3185,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["builds",{"_index":2276,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["buildscope",{"_index":5840,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildscope(query",{"_index":5845,"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":20815,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildsubmissioncontainer",{"_index":5554,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildsubmissioncontainerelement",{"_index":3165,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissioncontainerelement(boardnode",{"_index":3188,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem",{"_index":3166,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem(boardnode",{"_index":3191,"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":20817,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildtokenrequestpayload",{"_index":15386,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtokenrequestpayload(code",{"_index":15401,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtoollaunchdatafromconcreteconfig",{"_index":117,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromconcreteconfig(userid",{"_index":153,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool",{"_index":118,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool(externaltool",{"_index":157,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools",{"_index":119,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools(data",{"_index":161,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload",{"_index":120,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload(url",{"_index":164,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl",{"_index":121,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl(toollaunchdatado",{"_index":168,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.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":13405,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["bundle",{"_index":22868,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["busboy",{"_index":9821,"title":{},"body":{"classes/FileDtoBuilder.html":{},"dependencies.html":{}}}],["business",{"_index":3831,"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":1411,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ForbiddenOperationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/ValidationError.html":{}}}],["businesserror",{"_index":1395,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:12",{"_index":1402,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:15",{"_index":1407,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:18",{"_index":1406,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:21",{"_index":1405,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:25",{"_index":1404,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:47",{"_index":1408,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businessexception",{"_index":23265,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["businesslogic",{"_index":23126,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["button",{"_index":16496,"title":{},"body":{"classes/PageContentResponse.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["byavailable",{"_index":19878,"title":{},"body":{"classes/TaskScope.html":{}}}],["byavailable(availabledate",{"_index":19890,"title":{},"body":{"classes/TaskScope.html":{}}}],["byclasses",{"_index":12984,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclasses(classes",{"_index":12993,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclientid",{"_index":9254,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(clientid",{"_index":9257,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(query.clientid",{"_index":9017,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["bycontextid",{"_index":5994,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontextid(contextid",{"_index":6004,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype",{"_index":5995,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype(contexttype",{"_index":6006,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycourseids",{"_index":14269,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycourseids(courseids",{"_index":14270,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycreator",{"_index":15126,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreator(creatorid",{"_index":15130,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreatorid",{"_index":19879,"title":{},"body":{"classes/TaskScope.html":{}}}],["bycreatorid(creatorid",{"_index":19892,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft",{"_index":19880,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft(isdraft",{"_index":19893,"title":{},"body":{"classes/TaskScope.html":{}}}],["byexpires",{"_index":10191,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["byfilerecordid",{"_index":10209,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfilerecordid(filerecordid",{"_index":10214,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfinished",{"_index":19881,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfinished(userid",{"_index":19895,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfirstname",{"_index":12985,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byfirstname(firstname",{"_index":12995,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byhidden",{"_index":9255,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(ishidden",{"_index":9259,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(query.ishidden",{"_index":9018,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byid",{"_index":5996,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byid(id",{"_index":6008,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bylastname",{"_index":12986,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylastname(lastname",{"_index":12997,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylessonids",{"_index":19882,"title":{},"body":{"classes/TaskScope.html":{}}}],["bylessonids(lessonids",{"_index":19896,"title":{},"body":{"classes/TaskScope.html":{}}}],["byloginname",{"_index":12987,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byloginname(loginname",{"_index":12999,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymarkedfordelete",{"_index":10210,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymarkedfordelete(ismarked",{"_index":10216,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymatches",{"_index":12988,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymatches(matches",{"_index":13002,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byname",{"_index":9256,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(name",{"_index":9261,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(query.name",{"_index":9016,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byonlycreatorid",{"_index":19883,"title":{},"body":{"classes/TaskScope.html":{}}}],["byonlycreatorid(creatorid",{"_index":19898,"title":{},"body":{"classes/TaskScope.html":{}}}],["byparentid",{"_index":10211,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byparentid(parentid",{"_index":10219,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bypassdocumentvalidation",{"_index":7897,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["bypasstest",{"_index":1325,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["bypseudonym",{"_index":16968,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(pseudonym",{"_index":16971,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["bypseudonym(query.pseudonym",{"_index":8986,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bypublished",{"_index":15127,"title":{},"body":{"classes/NewsScope.html":{}}}],["byrole",{"_index":12989,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byrole(rolename",{"_index":13004,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool",{"_index":12990,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool(school",{"_index":13006,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschoolid",{"_index":10212,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschoolid(query.schoolid",{"_index":20906,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["byschoolid(schoolid",{"_index":10221,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschooltoolid",{"_index":5997,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byschooltoolid(schooltoolid",{"_index":6010,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bysecuritycheckrequesttoken",{"_index":10213,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bysecuritycheckrequesttoken(token",{"_index":10223,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bytargets",{"_index":15128,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytargets(targets",{"_index":15132,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytes",{"_index":10736,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["bytesrange",{"_index":10730,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["bytoolid",{"_index":16969,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["bytoolid(query.toolid",{"_index":8987,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["bytoolid(toolid",{"_index":16973,"title":{},"body":{"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["byunpublished",{"_index":15129,"title":{},"body":{"classes/NewsScope.html":{}}}],["byuserid",{"_index":16970,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuserid(query.userid",{"_index":8988,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["byuserid(userid",{"_index":16975,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["byuseridquery",{"_index":19149,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byuseridquery(userid",{"_index":19152,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byusermatch",{"_index":12991,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byusermatch(user",{"_index":13008,"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":19973,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished",{"_index":19992,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished()).map((c",{"_index":19972,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.user",{"_index":14296,"title":{},"body":{"injectables/LessonService.html":{}}}],["cache",{"_index":3872,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/OauthAdapterService.html":{},"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{},"dependencies.html":{}}}],["cache_manager",{"_index":13201,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachedstate",{"_index":16205,"title":{},"body":{"injectables/OauthUc.html":{}}}],["cacheexpiration",{"_index":17551,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["cachemanager",{"_index":13191,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachemodule",{"_index":3869,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemodule.registerasync",{"_index":3876,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemoduleoptions",{"_index":3870,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cacheservice",{"_index":3854,"title":{"injectables/CacheService.html":{}},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cacheservice.getstoretype",{"_index":3877,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachestoretype",{"_index":3858,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachestoretype.memory",{"_index":3864,"title":{},"body":{"injectables/CacheService.html":{}}}],["cachestoretype.redis",{"_index":3863,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachewrappermodule",{"_index":1545,"title":{"modules/CacheWrapperModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CacheWrapperModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["caf",{"_index":13023,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["cafe",{"_index":13025,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["calculatenumberofsubmitters(submissions",{"_index":12514,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["calculations",{"_index":23106,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["calendareventdto",{"_index":3886,"title":{"classes/CalendarEventDto.html":{}},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["calendarmapper",{"_index":3896,"title":{"injectables/CalendarMapper.html":{}},"body":{"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarmodule",{"_index":3911,"title":{"modules/CalendarModule.html":{}},"body":{"modules/CalendarModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["calendarservice",{"_index":3915,"title":{"injectables/CalendarService.html":{}},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarservice:findevent",{"_index":3939,"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/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":2277,"title":{},"body":{"injectables/BBBService.html":{}}}],["callback",{"_index":23370,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["callback_uri",{"_index":1382,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["callbackuri",{"_index":1376,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["calld",{"_index":23415,"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":{},"injectables/FeathersRosterService.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":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":8160,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["calling",{"_index":16560,"title":{},"body":{"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callkcadminclient",{"_index":13241,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["callname",{"_index":2269,"title":{},"body":{"injectables/BBBService.html":{}}}],["calls",{"_index":16796,"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":23202,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["can't",{"_index":1585,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cancel",{"_index":16495,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["cancelbuttonurl",{"_index":16461,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["caninline",{"_index":5167,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["canmap",{"_index":2550,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["canmap(element",{"_index":2551,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["cant",{"_index":23138,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["capabilities",{"_index":22996,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["caption",{"_index":3251,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["caption(value",{"_index":9840,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["card",{"_index":2818,"title":{"classes/Card.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.'})@apiextramodels(externaltoolelementresponse",{"_index":3976,"title":{},"body":{"controllers/CardController.html":{}}}],["card.'})@apiresponse({status",{"_index":3986,"title":{},"body":{"controllers/CardController.html":{}}}],["card.addchild(text1",{"_index":4834,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text2",{"_index":4850,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text3",{"_index":4862,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text4",{"_index":4869,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.body.params",{"_index":4934,"title":{},"body":{"controllers/ColumnController.html":{}}}],["card.body.params.ts",{"_index":6978,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:10",{"_index":14916,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:13",{"_index":6981,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["card.body.params.ts:18",{"_index":14918,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.children.map((element",{"_index":4086,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.constructor.name",{"_index":4962,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["card.createdat",{"_index":4088,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.do",{"_index":2843,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["card.height",{"_index":4085,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.id",{"_index":4083,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.response",{"_index":4057,"title":{},"body":{"classes/CardListResponse.html":{}}}],["card.title",{"_index":4084,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.updatedat",{"_index":4087,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["cardcontroller",{"_index":2722,"title":{"controllers/CardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{}}}],["cardid",{"_index":4104,"title":{},"body":{"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardidparams",{"_index":3990,"title":{},"body":{"controllers/CardController.html":{}}}],["cardidparams.ids",{"_index":4020,"title":{},"body":{"controllers/CardController.html":{}}}],["cardids",{"_index":4018,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardidsparams",{"_index":3991,"title":{"classes/CardIdsParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardIdsParams.html":{}}}],["cardlistresponse",{"_index":4010,"title":{"classes/CardListResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardListResponse.html":{}}}],["cardlistresponse})@apiresponse({status",{"_index":3993,"title":{},"body":{"controllers/CardController.html":{}}}],["cardnode",{"_index":3168,"title":{"entities/CardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["cardnodefactory",{"_index":3528,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodefactory.build",{"_index":3552,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodeprops",{"_index":4062,"title":{"interfaces/CardNodeProps.html":{}},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["cardprops",{"_index":3964,"title":{"interfaces/CardProps.html":{}},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["cardresponse",{"_index":4055,"title":{"classes/CardResponse.html":{}},"body":{"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper",{"_index":4015,"title":{"classes/CardResponseMapper.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper.maptoresponse(card",{"_index":4023,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["cardresponses",{"_index":4022,"title":{},"body":{"controllers/CardController.html":{}}}],["cardresponse})@apiresponse({status",{"_index":4918,"title":{},"body":{"controllers/ColumnController.html":{}}}],["cards",{"_index":3242,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cards.map((card",{"_index":3545,"title":{},"body":{"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{}}}],["cards.some((card",{"_index":4118,"title":{},"body":{"injectables/CardService.html":{}}}],["cardservice",{"_index":3569,"title":{"injectables/CardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardskeletonresponse",{"_index":4131,"title":{"classes/CardSkeletonResponse.html":{}},"body":{"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardspercolumn",{"_index":3538,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardspercolumn.flat",{"_index":3542,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["carduc",{"_index":2716,"title":{"injectables/CardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["cardurlparams",{"_index":3974,"title":{"classes/CardUrlParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardUrlParams.html":{}}}],["care",{"_index":23174,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["careful",{"_index":23490,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["carefully",{"_index":23438,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cares",{"_index":23268,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["carry",{"_index":22484,"title":{},"body":{"license.html":{}}}],["cartridge",{"_index":4993,"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":11852,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{}}}],["cartridge/common",{"_index":5098,"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":5033,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["cartridge_basiclti_link",{"_index":5176,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_bundle",{"_index":5190,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_icon",{"_index":5193,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cascading",{"_index":5340,"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":{},"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":5397,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["cases",{"_index":1951,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/TaskFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cast",{"_index":1638,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["catch",{"_index":1369,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.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/TaskCopyUC.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["catch((error",{"_index":2316,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["catch(error",{"_index":10803,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["catcherror",{"_index":1158,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["catcherror((e",{"_index":1274,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["catcherror((err",{"_index":17400,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["cause",{"_index":3837,"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":8398,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["caution",{"_index":13888,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["cc",{"_index":1500,"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":22646,"title":{},"body":{"license.html":{}}}],["ceating",{"_index":11932,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["centralldap",{"_index":18291,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["certain",{"_index":22609,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cessation",{"_index":22655,"title":{},"body":{"license.html":{}}}],["ch.id",{"_index":2798,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["chaining",{"_index":23276,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["chains",{"_index":22891,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["chalk",{"_index":22100,"title":{},"body":{"dependencies.html":{}}}],["challenge",{"_index":4194,"title":{},"body":{"classes/ChallengeParams.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.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":4192,"title":{"classes/ChallengeParams.html":{}},"body":{"classes/ChallengeParams.html":{},"controllers/OauthProviderController.html":{}}}],["change",{"_index":5058,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.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":10340,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"additional-documentation/nestjs-application.html":{}}}],["changefinishedforuser",{"_index":19941,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changefinishedforuser(userid",{"_index":19947,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changelanguage",{"_index":20827,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguage(params",{"_index":20828,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguageparams",{"_index":4196,"title":{"classes/ChangeLanguageParams.html":{}},"body":{"classes/ChangeLanguageParams.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["changes",{"_index":13838,"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":21064,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["channel",{"_index":17088,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["chapter",{"_index":2535,"title":{},"body":{"injectables/BaseRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["character",{"_index":937,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["characterized",{"_index":22586,"title":{},"body":{"license.html":{}}}],["characters",{"_index":10297,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/MongoPatterns.html":{}}}],["charge",{"_index":22293,"title":{},"body":{"license.html":{}}}],["chat",{"_index":1294,"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":17502,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.module.ts:7",{"_index":17503,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service",{"_index":17505,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service.ts",{"_index":1153,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["chat.service.ts:42",{"_index":17500,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:44",{"_index":17499,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:47",{"_index":17498,"title":{},"body":{"classes/RocketChatError.html":{}}}],["check",{"_index":1129,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/GuardAgainst.html":{},"interfaces/ICleanOptions.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":9915,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["check.entity.ts",{"_index":10238,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["check.entity.ts:14",{"_index":10246,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:17",{"_index":10242,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:20",{"_index":10243,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:23",{"_index":10241,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:26",{"_index":10240,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.service.ts",{"_index":14815,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:15",{"_index":14820,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:8",{"_index":14818,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["checkallpermissions",{"_index":1986,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkallpermissions(user",{"_index":1992,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkandaddprefix",{"_index":20189,"title":{},"body":{"classes/TestApiClient.html":{}}}],["checkandaddprefix(inputpath",{"_index":1683,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["checkavaiblelanguages",{"_index":21631,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavaiblelanguages(settedlanguage",{"_index":21633,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavailablelanguages",{"_index":21574,"title":{},"body":{"injectables/UserService.html":{}}}],["checkavailablelanguages(language",{"_index":21580,"title":{},"body":{"injectables/UserService.html":{}}}],["checkbrutforce",{"_index":1707,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkbrutforce(account",{"_index":1716,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkcontextreadpermission",{"_index":18788,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcontextreadpermission(userid",{"_index":18794,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission",{"_index":18789,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission(userid",{"_index":18796,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcredentials",{"_index":13795,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["checkcredentials(account",{"_index":13800,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkcredentials(enteredpassword",{"_index":14381,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["checkcustomparameterentries",{"_index":5364,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkcustomparameterentries(loadedexternaltool",{"_index":5372,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkdestinationcourseauthorisation",{"_index":19628,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorisation(authorizableuser",{"_index":19635,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationcourseauthorization",{"_index":14151,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationcourseauthorization(user",{"_index":14155,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkdestinationlessonauthorization",{"_index":19629,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkdestinationlessonauthorization(authorizableuser",{"_index":19637,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkduplicateincontext",{"_index":6097,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checkduplicateincontext(contextexternaltool",{"_index":6102,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checked",{"_index":1586,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/HydraSsoService.html":{}}}],["checkentitypermissions",{"_index":9582,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkentitypermissions(userid",{"_index":9587,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkerror",{"_index":10614,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkerror(response",{"_index":10623,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["checkexpired",{"_index":18756,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkexpired(sharetoken",{"_index":18763,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkfeatureenabled",{"_index":6698,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["checkfeatureenabled(parenttype",{"_index":18798,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkforduplicateparameters",{"_index":5365,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkforduplicateparameters(validatabletool",{"_index":5376,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkifpreviewpossible",{"_index":16694,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checkifpreviewpossible(filerecord",{"_index":16700,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checking",{"_index":10859,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkinputisvalid",{"_index":23748,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["checkldapcredentials",{"_index":13763,"title":{},"body":{"injectables/LdapService.html":{}}}],["checkldapcredentials(system",{"_index":13765,"title":{},"body":{"injectables/LdapService.html":{}}}],["checklist",{"_index":22245,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checklistscontainingequalentities(first",{"_index":2683,"title":{},"body":{"entities/Board.html":{}}}],["checkofficialschoolnumbersmatch",{"_index":18312,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkofficialschoolnumbersmatch(schooldo",{"_index":18321,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkoneofpermissions",{"_index":1987,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoneofpermissions(user",{"_index":1994,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoptionalparameter",{"_index":5366,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoptionalparameter(param",{"_index":5378,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoriginallessonauthorization",{"_index":14152,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginallessonauthorization(user",{"_index":14158,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["checkoriginaltaskauthorization",{"_index":19630,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkoriginaltaskauthorization(authorizableuser",{"_index":19640,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["checkout",{"_index":22249,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checkparameterregex",{"_index":5367,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparameterregex(foundentry",{"_index":5381,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype",{"_index":5368,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype(foundentry",{"_index":5383,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparentwritepermission",{"_index":18790,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkparentwritepermission(userid",{"_index":18800,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkpermission",{"_index":1988,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/GroupUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkpermission(user",{"_index":1996,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermission(userid",{"_index":4154,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/GroupUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["checkpermissionbyreferences",{"_index":1968,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpermissionbyreferences(userid",{"_index":1972,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["checkpreconditions",{"_index":18901,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checkpreconditions(userid",{"_index":18903,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checks",{"_index":11615,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":{}}}],["checkschoolauthorization",{"_index":14094,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkschoolauthorization(authorizableuser",{"_index":14096,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["checkscopeandvalidateparameter",{"_index":5369,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkscopeandvalidateparameter(validatabletool",{"_index":5385,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkshorttitle",{"_index":7481,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["checkstream",{"_index":1334,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstream(stream",{"_index":1341,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["checkstreamresponsive",{"_index":17823,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checkstreamresponsive(stream",{"_index":17830,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checksum",{"_index":2267,"title":{},"body":{"injectables/BBBService.html":{}}}],["checkvalue",{"_index":13796,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkvalue(value",{"_index":13802,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkversionmatch",{"_index":18245,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["checkversionmatch(schoolexternaltoolversion",{"_index":18247,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["child",{"_index":2769,"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":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["child.accept(this",{"_index":17269,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["child.acceptasync(this",{"_index":17188,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["child.constructor.name",{"_index":2789,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["child.id",{"_index":2799,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["childcopy",{"_index":17195,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childid",{"_index":3333,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["children",{"_index":2757,"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/RecursiveCopyVisitor.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["children.length",{"_index":3277,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["children.sort((a",{"_index":3273,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["childrenmap",{"_index":3200,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["childrenmap[boardnode.pathofchildren",{"_index":3357,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["childstatus",{"_index":17191,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses",{"_index":17189,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["childstatusses.push(childstatus",{"_index":17193,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["choose",{"_index":22789,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["choosing",{"_index":22791,"title":{},"body":{"license.html":{}}}],["chunk",{"_index":22168,"title":{},"body":{"dependencies.html":{}}}],["circumstances",{"_index":22435,"title":{},"body":{"license.html":{}}}],["circumvention",{"_index":22443,"title":{},"body":{"license.html":{}}}],["civil",{"_index":22829,"title":{},"body":{"license.html":{}}}],["cjs",{"_index":13231,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["cjs/keycloak",{"_index":13230,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["claim",{"_index":13474,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["claim.name",{"_index":13483,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["claims",{"_index":22707,"title":{},"body":{"license.html":{}}}],["clamconnection",{"_index":1339,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["clamdscan",{"_index":1321,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["clamscan",{"_index":1303,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"dependencies.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/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"classes/ClassSortParams.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/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/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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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/OauthLoginResponse.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.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/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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/RpcMessageProducer.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/SchoolSpecificFileCopyServiceImpl.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/SortHelper.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/SubmissionsResponse.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/TooManyPseudonymsLoggableException.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/ToolStatusResponseMapper.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/UsersList.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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"classes/AuthenticationValues.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":4316,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classattributenamemapping",{"_index":12402,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classentity",{"_index":4255,"title":{"entities/ClassEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"entities/Course.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["classentity.id",{"_index":4473,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classentityfactory",{"_index":4301,"title":{"classes/ClassEntityFactory.html":{}},"body":{"classes/ClassEntityFactory.html":{}}}],["classentityfactory.define(classentity",{"_index":4308,"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/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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/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/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":{},"entities/Course.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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/OauthLoginResponse.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.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/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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/RpcMessageProducer.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/SchoolSpecificFileCopyServiceImpl.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/SortHelper.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/SubmissionsResponse.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/TooManyPseudonymsLoggableException.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/ToolStatusResponseMapper.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/UsersList.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.map(async",{"_index":11241,"title":{},"body":{"injectables/GroupUc.html":{}}}],["classes.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13035,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["classesentities",{"_index":4468,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesentities.map((classentity",{"_index":4471,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesrepo",{"_index":4407,"title":{"injectables/ClassesRepo.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{}}}],["classfactory",{"_index":4311,"title":{"classes/ClassFactory.html":{}},"body":{"classes/ClassFactory.html":{}}}],["classfactory.define(class",{"_index":4317,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classids",{"_index":6480,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["classinfo",{"_index":11119,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.externalsourcename",{"_index":11131,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.id",{"_index":11128,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.isupgradable",{"_index":11134,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.name",{"_index":11130,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.schoolyear",{"_index":11133,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.teachers",{"_index":11132,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfo.type",{"_index":11129,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfodto",{"_index":4318,"title":{"classes/ClassInfoDto.html":{}},"body":{"classes/ClassInfoDto.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["classinforesponse",{"_index":4342,"title":{"classes/ClassInfoResponse.html":{}},"body":{"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfos",{"_index":11116,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.data.map((classinfo",{"_index":11125,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfos.total",{"_index":11127,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse",{"_index":4352,"title":{"classes/ClassInfoSearchListResponse.html":{}},"body":{"classes/ClassInfoSearchListResponse.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["classinfosearchlistresponse})@apiresponse({status",{"_index":10948,"title":{},"body":{"controllers/GroupController.html":{}}}],["classinfosfromclasses",{"_index":11236,"title":{},"body":{"injectables/GroupUc.html":{}}}],["classinfosfromgroups",{"_index":11237,"title":{},"body":{"injectables/GroupUc.html":{}}}],["classmapper",{"_index":4354,"title":{"classes/ClassMapper.html":{}},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{}}}],["classmapper.maptodos(classes",{"_index":4467,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper.maptoentities(classes",{"_index":4469,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmodule",{"_index":4402,"title":{"modules/ClassModule.html":{}},"body":{"modules/ClassModule.html":{},"modules/GroupApiModule.html":{},"modules.html":{}}}],["classname",{"_index":9615,"title":{},"body":{"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["classnames",{"_index":12007,"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":12392,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["classprops",{"_index":4241,"title":{"interfaces/ClassProps.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{}}}],["classroottype",{"_index":4331,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupUcMapper.html":{}}}],["classroottype.class",{"_index":11299,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classroottype.group",{"_index":11288,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["classserializerinterceptor",{"_index":13045,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["classservice",{"_index":4406,"title":{"injectables/ClassService.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/GroupUc.html":{}}}],["classsortby",{"_index":4432,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["classsortparams",{"_index":4426,"title":{"classes/ClassSortParams.html":{}},"body":{"classes/ClassSortParams.html":{},"controllers/GroupController.html":{}}}],["classsourceoptions",{"_index":4239,"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":4264,"title":{"classes/ClassSourceOptionsEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["classsourceoptionsentityprops",{"_index":4449,"title":{"interfaces/ClassSourceOptionsEntityProps.html":{}},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["classsourceoptionsprops",{"_index":4442,"title":{"interfaces/ClassSourceOptionsProps.html":{}},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classvalidatormetadatastorage",{"_index":8277,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["clause",{"_index":955,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["clazz",{"_index":11242,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel",{"_index":11294,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.gradelevel}${clazz.name",{"_index":11295,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.id",{"_index":11298,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.name",{"_index":11296,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.source",{"_index":11300,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.successor",{"_index":11297,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["clazz.teacherids.map((teacherid",{"_index":11243,"title":{},"body":{"injectables/GroupUc.html":{}}}],["clazz.year",{"_index":11245,"title":{},"body":{"injectables/GroupUc.html":{}}}],["clean",{"_index":10142,"title":{},"body":{"classes/FileRecordMapper.html":{},"interfaces/ICleanOptions.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":11624,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["clean(pagesize",{"_index":13488,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["cleans",{"_index":11620,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleanup",{"_index":6532,"title":{},"body":{"entities/Course.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICourseProperties.html":{},"injectables/TaskCopyUC.html":{},"classes/UsersList.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cleanupinput",{"_index":14377,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanupinput(username",{"_index":14385,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanuppath",{"_index":20190,"title":{},"body":{"classes/TestApiClient.html":{}}}],["cleanuppath(inputpath",{"_index":1686,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["clear",{"_index":11726,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"license.html":{}}}],["clearcollection",{"_index":7865,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearcollection(collectionname",{"_index":7873,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearly",{"_index":23139,"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":17916,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["cli",{"_index":23034,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["click",{"_index":21765,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["client",{"_index":3580,"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/FileDto.html":{},"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.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/IServerConfig.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/IdParams.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/LdapService.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":{},"interfaces/PreviewConfig.html":{},"classes/PreviewGeneratorBuilder.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.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":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":17924,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.adapter.ts",{"_index":17821,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:111",{"_index":17843,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:134",{"_index":17845,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:155",{"_index":17833,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:179",{"_index":17838,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:199",{"_index":17840,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:21",{"_index":17829,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:226",{"_index":17831,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:32",{"_index":17836,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:49",{"_index":17841,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:82",{"_index":17835,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.bind(username",{"_index":13786,"title":{},"body":{"injectables/LdapService.html":{}}}],["client.body.ts",{"_index":15586,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:10",{"_index":15589,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:15",{"_index":15590,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:20",{"_index":15591,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:26",{"_index":15596,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:36",{"_index":15617,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:46",{"_index":15611,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:56",{"_index":15606,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:65",{"_index":15594,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:71",{"_index":15595,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:77",{"_index":15597,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.getsigningkey",{"_index":15563,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["client.histogram",{"_index":17379,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["client.interface",{"_index":16821,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["client.mapper",{"_index":9974,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["client.mapper.ts",{"_index":10448,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:17",{"_index":10456,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:27",{"_index":10464,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:39",{"_index":10458,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:49",{"_index":10466,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:62",{"_index":10460,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:7",{"_index":10462,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.module.ts",{"_index":10489,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"modules/S3ClientModule.html":{}}}],["client.module.ts:25",{"_index":17923,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.on('connect",{"_index":3883,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.on('error",{"_index":3881,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.response",{"_index":5522,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["client.send(deletioncommand",{"_index":8009,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["client.service",{"_index":6310,"title":{},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{}}}],["client.service.ts",{"_index":10427,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:11",{"_index":10433,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:16",{"_index":10435,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:23",{"_index":10439,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:31",{"_index":10437,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.ts",{"_index":1624,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["client.ts:104",{"_index":20205,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:110",{"_index":20196,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:120",{"_index":20197,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:129",{"_index":20202,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:136",{"_index":20204,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:142",{"_index":20201,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:26",{"_index":20194,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:28",{"_index":20195,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:30",{"_index":20193,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:38",{"_index":20200,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:45",{"_index":20198,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:54",{"_index":20209,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:64",{"_index":20207,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:74",{"_index":20208,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:84",{"_index":20206,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client/dto",{"_index":18413,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["client/dto/copy",{"_index":6171,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["client/dto/file.dto.ts",{"_index":9801,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:10",{"_index":9806,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:12",{"_index":9803,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:6",{"_index":9804,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:8",{"_index":9805,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/files",{"_index":10488,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["client/interface/index.ts",{"_index":6264,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/S3Config-1.html":{}}}],["client/interfaces/copy",{"_index":11923,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["client/interfaces/file",{"_index":11963,"title":{},"body":{"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{}}}],["client/interfaces/files",{"_index":11989,"title":{},"body":{"interfaces/IFilesStorageClientConfig.html":{}}}],["client/lib/defs/authenticationexecutioninforepresentation",{"_index":13366,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/authenticationflowrepresentation",{"_index":13368,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/clientrepresentation",{"_index":13370,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityprovidermapperrepresentation",{"_index":13371,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityproviderrepresentation",{"_index":13372,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["client/lib/defs/protocolmapperrepresentation",{"_index":13373,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/userrepresentation",{"_index":13573,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["client/mapper/copy",{"_index":6279,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["client/mapper/files",{"_index":9970,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["client/s3",{"_index":17820,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["client/service/copy",{"_index":6292,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["client/service/files",{"_index":10426,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["client_id",{"_index":1518,"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":5526,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ListOauthClientsParams.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{}}}],["client_secret",{"_index":1519,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["client_secret_basic",{"_index":15615,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client_secret_post",{"_index":15614,"title":{},"body":{"classes/OauthClientBody.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["clientauthmethod",{"_index":16287,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["clientid",{"_index":5530,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["clientinternalid",{"_index":13277,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clientname",{"_index":5528,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["clientrepresentation",{"_index":13369,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["clients",{"_index":7990,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["clients.map",{"_index":15910,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["clients.params.ts",{"_index":14361,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:16",{"_index":14366,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:27",{"_index":14369,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:36",{"_index":14362,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:45",{"_index":14370,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients_configuration_path='/tmp/config/clients",{"_index":23536,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["clientsecret",{"_index":7278,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["clientsecret.value",{"_index":13281,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clienttype",{"_index":2235,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["clienturl",{"_index":4865,"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":2523,"title":{},"body":{"classes/BaseFactory.html":{}}}],["close",{"_index":17094,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed",{"_index":19785,"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":21016,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["closedat",{"_index":21018,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["closeddraftsforcreator",{"_index":19789,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.addquery(parentsopen.query",{"_index":19790,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.bycreatorid(parentids.creatorid",{"_index":19792,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.byfinished(parentids.creatorid",{"_index":19791,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons",{"_index":19778,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.addquery(parentsopen.query",{"_index":19779,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.bydraft(false",{"_index":19780,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.byfinished(parentids.creatorid",{"_index":19781,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator",{"_index":19786,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byfinished(parentids.creatorid",{"_index":19787,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byonlycreatorid(parentids.creatorid",{"_index":19788,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closely",{"_index":22826,"title":{},"body":{"license.html":{}}}],["closemigration",{"_index":4479,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["closemigration(@currentuser",{"_index":21112,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(currentuser",{"_index":21036,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(schoolid",{"_index":21249,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["closemigration(userid",{"_index":4486,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["closeuserloginmigrationuc",{"_index":4475,"title":{"injectables/CloseUserLoginMigrationUc.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["closing",{"_index":23453,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cloud",{"_index":15254,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["cloud.github.io/schulcloud",{"_index":22909,"title":{},"body":{"todo.html":{}}}],["cloud/commons",{"_index":2133,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LessonCopyUC.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.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":3859,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"classes/DtoCreator.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IToolFeatures.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PseudonymService.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":23582,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["cloud/erwin",{"_index":22956,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/node",{"_index":22137,"title":{},"body":{"dependencies.html":{}}}],["cloud/sc",{"_index":23544,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/schulcloud",{"_index":22886,"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":814,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_imports",{"_index":815,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_providers",{"_index":816,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_authenticationapimodule",{"_index":1504,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_imports",{"_index":1505,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_providers",{"_index":1506,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationmodule",{"_index":1541,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_exports",{"_index":1542,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_imports",{"_index":1544,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_providers",{"_index":1543,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authorizationmodule",{"_index":1879,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_exports",{"_index":1880,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_imports",{"_index":1881,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_providers",{"_index":1882,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationreferencemodule",{"_index":1924,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_exports",{"_index":1925,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_imports",{"_index":1927,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_authorizationreferencemodule_providers",{"_index":1926,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["cluster_boardapimodule",{"_index":2712,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_imports",{"_index":2713,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_providers",{"_index":2714,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardmodule",{"_index":3562,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_exports",{"_index":3564,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_imports",{"_index":3565,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_providers",{"_index":3563,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_cachewrappermodule",{"_index":3865,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_exports",{"_index":3866,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_providers",{"_index":3867,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_calendarmodule",{"_index":3912,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_exports",{"_index":3914,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_providers",{"_index":3913,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_classmodule",{"_index":4403,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_exports",{"_index":4405,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_providers",{"_index":4404,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_collaborativestorageadaptermodule",{"_index":4579,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_exports",{"_index":4580,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_imports",{"_index":4581,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_providers",{"_index":4582,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestoragemodule",{"_index":4632,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_exports",{"_index":4633,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_imports",{"_index":4634,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_providers",{"_index":4635,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_commontoolmodule",{"_index":5329,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_exports",{"_index":5330,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_imports",{"_index":5331,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_providers",{"_index":5332,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_consolewritermodule",{"_index":5537,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_exports",{"_index":5538,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_providers",{"_index":5539,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_contextexternaltoolmodule",{"_index":5809,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_exports",{"_index":5810,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_imports",{"_index":5811,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_providers",{"_index":5812,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_copyhelpermodule",{"_index":6339,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_exports",{"_index":6340,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_providers",{"_index":6341,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_coremodule",{"_index":6423,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_exports",{"_index":6424,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_imports",{"_index":6425,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_databasemanagementmodule",{"_index":7857,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_exports",{"_index":7859,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_providers",{"_index":7858,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_encryptionmodule",{"_index":8256,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_encryptionmodule_imports",{"_index":8257,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_errormodule",{"_index":8365,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_errormodule_imports",{"_index":8366,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_externaltoolmodule",{"_index":8831,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_exports",{"_index":8832,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_imports",{"_index":8833,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_providers",{"_index":8834,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_feathersmodule",{"_index":9616,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_exports",{"_index":9617,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_providers",{"_index":9618,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_filesmodule",{"_index":10356,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_imports",{"_index":10357,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_providers",{"_index":10358,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesstorageamqpmodule",{"_index":10410,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_imports",{"_index":10411,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_providers",{"_index":10412,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageapimodule",{"_index":10419,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_imports",{"_index":10421,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_providers",{"_index":10420,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageclientmodule",{"_index":10484,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_exports",{"_index":10487,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_imports",{"_index":10486,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_providers",{"_index":10485,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstoragemodule",{"_index":10571,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_exports",{"_index":10574,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_imports",{"_index":10573,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_providers",{"_index":10572,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragetestmodule",{"_index":10643,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesstoragetestmodule_imports",{"_index":10644,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesystemmodule",{"_index":10345,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_exports",{"_index":10346,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_providers",{"_index":10347,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_fwulearningcontentsmodule",{"_index":10747,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_imports",{"_index":10748,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_providers",{"_index":10749,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentstestmodule",{"_index":10758,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_imports",{"_index":10760,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_providers",{"_index":10759,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_groupapimodule",{"_index":10936,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_imports",{"_index":10937,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_providers",{"_index":10938,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupmodule",{"_index":11053,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_exports",{"_index":11054,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_providers",{"_index":11055,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_h5peditormodule",{"_index":11391,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_imports",{"_index":11393,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_providers",{"_index":11392,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditortestmodule",{"_index":11400,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_h5peditortestmodule_imports",{"_index":11401,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_identitymanagementmodule",{"_index":12654,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_exports",{"_index":12655,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_imports",{"_index":12656,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_importusermodule",{"_index":12919,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_imports",{"_index":12920,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_providers",{"_index":12921,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_keycloakadministrationmodule",{"_index":13223,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_exports",{"_index":13225,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_providers",{"_index":13224,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakconfigurationmodule",{"_index":13297,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_exports",{"_index":13300,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_imports",{"_index":13299,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_providers",{"_index":13298,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakmodule",{"_index":13682,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_exports",{"_index":13683,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_imports",{"_index":13685,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_providers",{"_index":13684,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_learnroomapimodule",{"_index":13845,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_imports",{"_index":13847,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_providers",{"_index":13846,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroommodule",{"_index":13863,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_exports",{"_index":13866,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_imports",{"_index":13865,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_providers",{"_index":13864,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_legacyschoolapimodule",{"_index":13910,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_imports",{"_index":13912,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_providers",{"_index":13911,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolmodule",{"_index":14005,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_exports",{"_index":14008,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_imports",{"_index":14007,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_providers",{"_index":14006,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_lessonapimodule",{"_index":14127,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_imports",{"_index":14129,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_providers",{"_index":14128,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonmodule",{"_index":14203,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_exports",{"_index":14206,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_imports",{"_index":14205,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_providers",{"_index":14204,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_loggermodule",{"_index":14425,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_exports",{"_index":14427,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_providers",{"_index":14426,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_ltitoolmodule",{"_index":14681,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_exports",{"_index":14683,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_providers",{"_index":14682,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_managementmodule",{"_index":14759,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_imports",{"_index":14760,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_providers",{"_index":14761,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementservermodule",{"_index":14773,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservermodule_imports",{"_index":14774,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservertestmodule",{"_index":14780,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_managementservertestmodule_imports",{"_index":14781,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_newsmodule",{"_index":15064,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_exports",{"_index":15066,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_imports",{"_index":15067,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_providers",{"_index":15065,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_oauthapimodule",{"_index":15575,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_imports",{"_index":15577,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_providers",{"_index":15576,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthmodule",{"_index":15750,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_exports",{"_index":15753,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_imports",{"_index":15751,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_providers",{"_index":15752,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthproviderapimodule",{"_index":15757,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_imports",{"_index":15759,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_providers",{"_index":15758,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthprovidermodule",{"_index":16009,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_exports",{"_index":16010,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_imports",{"_index":16012,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_providers",{"_index":16011,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthproviderservicemodule",{"_index":16066,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_oauthproviderservicemodule_exports",{"_index":16067,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_previewgeneratoramqpmodule",{"_index":16608,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratoramqpmodule_imports",{"_index":16609,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["cluster_previewgeneratorproducermodule",{"_index":16645,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_exports",{"_index":16648,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_imports",{"_index":16646,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_previewgeneratorproducermodule_providers",{"_index":16647,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["cluster_provisioningmodule",{"_index":16835,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_exports",{"_index":16838,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_imports",{"_index":16837,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_providers",{"_index":16836,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_pseudonymapimodule",{"_index":16915,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_imports",{"_index":16917,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymapimodule_providers",{"_index":16916,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["cluster_pseudonymmodule",{"_index":16952,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_exports",{"_index":16953,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_imports",{"_index":16955,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_providers",{"_index":16954,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_redismodule",{"_index":17318,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_redismodule_imports",{"_index":17319,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_rolemodule",{"_index":17527,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_exports",{"_index":17529,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_providers",{"_index":17528,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_schoolexternaltoolmodule",{"_index":18102,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_exports",{"_index":18105,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_imports",{"_index":18103,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_providers",{"_index":18104,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_serverconsolemodule",{"_index":18489,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_serverconsolemodule_imports",{"_index":18490,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_servermodule",{"_index":18503,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servermodule_imports",{"_index":18504,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servertestmodule",{"_index":18584,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_servertestmodule_imports",{"_index":18585,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_sharingapimodule",{"_index":18859,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_imports",{"_index":18861,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_providers",{"_index":18860,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingmodule",{"_index":18866,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_exports",{"_index":18868,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_imports",{"_index":18869,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_providers",{"_index":18867,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_systemapimodule",{"_index":19270,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_imports",{"_index":19272,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_providers",{"_index":19271,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemmodule",{"_index":19393,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_exports",{"_index":19395,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_imports",{"_index":19394,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_providers",{"_index":19396,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_taskapimodule",{"_index":19530,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_imports",{"_index":19531,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_providers",{"_index":19532,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskmodule",{"_index":19735,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_exports",{"_index":19737,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_imports",{"_index":19738,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_providers",{"_index":19736,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_teamsapimodule",{"_index":20164,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsapimodule_imports",{"_index":20165,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsmodule",{"_index":20169,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_exports",{"_index":20171,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_providers",{"_index":20170,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_toolapimodule",{"_index":20298,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_imports",{"_index":20300,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_providers",{"_index":20299,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toollaunchmodule",{"_index":20544,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_exports",{"_index":20546,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_imports",{"_index":20545,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_providers",{"_index":20547,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toolmodule",{"_index":20610,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_exports",{"_index":20612,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_imports",{"_index":20613,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_providers",{"_index":20611,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_userapimodule",{"_index":20820,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_imports",{"_index":20821,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_providers",{"_index":20822,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userloginmigrationapimodule",{"_index":21021,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_imports",{"_index":21022,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_providers",{"_index":21023,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationmodule",{"_index":21191,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_exports",{"_index":21192,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_imports",{"_index":21193,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_providers",{"_index":21194,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_usermodule",{"_index":21479,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_exports",{"_index":21482,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_imports",{"_index":21481,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_providers",{"_index":21480,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_videoconferenceapimodule",{"_index":21684,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_imports",{"_index":21685,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_providers",{"_index":21686,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferencemodule",{"_index":21959,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_exports",{"_index":21960,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_imports",{"_index":21961,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_providers",{"_index":21962,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["code",{"_index":1142,"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/TooManyPseudonymsLoggableException.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":15383,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["codebase",{"_index":23124,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["coded",{"_index":11840,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["coersion",{"_index":10865,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["cohesion",{"_index":23150,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["collaborative",{"_index":4516,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/NextcloudStrategy.html":{}}}],["collaborativestorage",{"_index":11659,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["collaborativestorageadapter",{"_index":4510,"title":{"injectables/CollaborativeStorageAdapter.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["collaborativestorageadaptermapper",{"_index":4528,"title":{"injectables/CollaborativeStorageAdapterMapper.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["collaborativestorageadaptermodule",{"_index":4578,"title":{"modules/CollaborativeStorageAdapterModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules.html":{}}}],["collaborativestoragecontroller",{"_index":4599,"title":{"controllers/CollaborativeStorageController.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["collaborativestoragemodule",{"_index":4631,"title":{"modules/CollaborativeStorageModule.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["collaborativestorageservice",{"_index":4636,"title":{"injectables/CollaborativeStorageService.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collaborativestorageuc",{"_index":4620,"title":{"injectables/CollaborativeStorageUc.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collect",{"_index":22767,"title":{},"body":{"license.html":{}}}],["collectdefaultmetrics",{"_index":16742,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collected",{"_index":16794,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting",{"_index":16793,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_default_metrics_disabled",{"_index":16792,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_metrics_route_metrics_disabled",{"_index":16795,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collection",{"_index":1843,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["collection(this",{"_index":2636,"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":{},"classes/UsersList.html":{}}}],["collection.deletemany",{"_index":7900,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.find({}).toarray",{"_index":7898,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.insertmany(jsondocuments",{"_index":7895,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.name",{"_index":7905,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionexists",{"_index":7866,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionexists(collectionname",{"_index":7875,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname",{"_index":7836,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter",{"_index":11709,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter.length",{"_index":11716,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter?.includes(collectionname",{"_index":11719,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnames",{"_index":7903,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname}.json",{"_index":11701,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionname}:${data.length",{"_index":11739,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections",{"_index":7795,"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":7907,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.includes(data.collectionname",{"_index":11734,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.length",{"_index":11733,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.map((collection",{"_index":7904,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.map((collectionname",{"_index":11699,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport",{"_index":11768,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport.map(async",{"_index":11770,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed",{"_index":11747,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed.map(async",{"_index":11749,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionswithfilepaths",{"_index":11698,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectmetricsroutemetrics",{"_index":16743,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collects",{"_index":23706,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["color",{"_index":6469,"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":{},"classes/UsersList.html":{}}}],["column",{"_index":2655,"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/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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsService.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["column.'})@apiresponse({status",{"_index":4917,"title":{},"body":{"controllers/ColumnController.html":{}}}],["column.addchild(card",{"_index":4817,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["column.body.params.ts",{"_index":14919,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:11",{"_index":14921,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:19",{"_index":14922,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.children.map((card",{"_index":4960,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.constructor.name",{"_index":3713,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["column.createdat",{"_index":4964,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.do",{"_index":2845,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["column.id",{"_index":4958,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.response",{"_index":3701,"title":{},"body":{"classes/BoardResponse.html":{}}}],["column.title",{"_index":4959,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.updatedat",{"_index":4963,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["columnboard",{"_index":2823,"title":{"classes/ColumnBoard.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomsService.html":{}}}],["columnboard.addchild(column",{"_index":4811,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["columnboard.context",{"_index":17275,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.id",{"_index":17271,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.title",{"_index":17272,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboardboardelement",{"_index":2654,"title":{"entities/ColumnboardBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardcopyservice",{"_index":2973,"title":{"injectables/ColumnBoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["columnboardelement",{"_index":3072,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["columnboardelements",{"_index":3691,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["columnboardfactory",{"_index":4763,"title":{"classes/ColumnBoardFactory.html":{}},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardfactory.define(columnboard",{"_index":4769,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardid",{"_index":2735,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"injectables/BoardCopyService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardids",{"_index":4895,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardids.length",{"_index":17740,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardids.map((id",{"_index":4902,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardids.push(columnboard.id",{"_index":17742,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardinfo",{"_index":17640,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.columnboardid",{"_index":17643,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.createdat",{"_index":17646,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.id",{"_index":17642,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.published",{"_index":17645,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.title",{"_index":17644,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.updatedat",{"_index":17647,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardmetadata",{"_index":8092,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardnode",{"_index":3174,"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":3529,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodefactory.build",{"_index":3534,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodeprops",{"_index":4776,"title":{"interfaces/ColumnBoardNodeProps.html":{}},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["columnboardprops",{"_index":4734,"title":{"interfaces/ColumnBoardProps.html":{}},"body":{"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{}}}],["columnboardservice",{"_index":3570,"title":{"injectables/ColumnBoardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget",{"_index":2656,"title":{"entities/ColumnBoardTarget.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.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":3063,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.createdat",{"_index":8140,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.id",{"_index":8138,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.published",{"_index":8142,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.title",{"_index":8139,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.updatedat",{"_index":8141,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtargetprops",{"_index":4879,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["columnboardtargets",{"_index":4901,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardtargetservice",{"_index":4886,"title":{"injectables/ColumnBoardTargetService.html":{}},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["columncontroller",{"_index":2721,"title":{"controllers/ColumnController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ColumnController.html":{}}}],["columnid",{"_index":4972,"title":{},"body":{"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{}}}],["columnnode",{"_index":3171,"title":{"entities/ColumnNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnnodefactory",{"_index":3530,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnnodefactory.build",{"_index":3551,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnprops",{"_index":4717,"title":{"interfaces/ColumnProps.html":{}},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["columnresponse",{"_index":2932,"title":{"classes/ColumnResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper",{"_index":2936,"title":{"classes/ColumnResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper.maptoresponse(column",{"_index":2957,"title":{},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["columnresponse})@apiresponse({status",{"_index":2903,"title":{},"body":{"controllers/BoardController.html":{}}}],["columns",{"_index":3234,"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":3539,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnservice",{"_index":3571,"title":{"injectables/ColumnService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnService.html":{}}}],["columnurlparams",{"_index":4915,"title":{"classes/ColumnUrlParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{}}}],["colums",{"_index":7490,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["combination",{"_index":17084,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["combinations",{"_index":23557,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["combine",{"_index":22778,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["combined",{"_index":18877,"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":{}}}],["combinedclassinfo",{"_index":11201,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combinedclassinfo.length",{"_index":11235,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combinedclassinfo.slice(skip",{"_index":11272,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combinedclassinfo.sort((a",{"_index":11229,"title":{},"body":{"injectables/GroupUc.html":{}}}],["combineduri",{"_index":21451,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.pathname",{"_index":21453,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.tostring",{"_index":21454,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combines",{"_index":23739,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["come",{"_index":22322,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["comes",{"_index":22490,"title":{},"body":{"license.html":{}}}],["coming",{"_index":23658,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["command",{"_index":3490,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICleanOptions.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":3486,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/KeycloakConsole.html":{},"classes/ServerConsole.html":{}}}],["commander",{"_index":22104,"title":{},"body":{"dependencies.html":{}}}],["commandname",{"_index":13513,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["commandoption",{"_index":11590,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["commandoutput",{"_index":17877,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["commandresponse",{"_index":20230,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["commands",{"_index":11603,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["comment",{"_index":8894,"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":23499,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["commercial",{"_index":22568,"title":{},"body":{"license.html":{}}}],["commit",{"_index":22253,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["commitment",{"_index":22719,"title":{},"body":{"license.html":{}}}],["commits",{"_index":23496,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["committing",{"_index":22247,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common",{"_index":5030,"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":{},"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":5781,"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":{},"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/SchoolExternalToolService.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["common/interface",{"_index":5711,"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/mapper/tool",{"_index":5964,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["common/service",{"_index":6105,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["common/uc/tool",{"_index":6073,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["commoncartridgeexportservice",{"_index":4991,"title":{"injectables/CommonCartridgeExportService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomModule.html":{}}}],["commoncartridgefilebuilder",{"_index":5006,"title":{"classes/CommonCartridgeFileBuilder.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeintendedusetype",{"_index":5028,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeintendedusetype.assignment",{"_index":5096,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeintendedusetype.unspecified",{"_index":5071,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeltiresource",{"_index":5163,"title":{"classes/CommonCartridgeLtiResource.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeltiresource(props",{"_index":5299,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgemanifestelement",{"_index":5126,"title":{"classes/CommonCartridgeManifestElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgemetadataelement",{"_index":5228,"title":{"classes/CommonCartridgeMetadataElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["commoncartridgemetadataelement(this.metadataprops).transform",{"_index":5245,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeorganizationbuilder",{"_index":5132,"title":{"classes/CommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationbuilder(props",{"_index":5143,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement",{"_index":5130,"title":{"classes/CommonCartridgeOrganizationItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement(this.props",{"_index":5133,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationwrapperelement",{"_index":5229,"title":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["commoncartridgeorganizationwrapperelement(this.organizations).transform",{"_index":5246,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeresourceitemelement",{"_index":5128,"title":{"classes/CommonCartridgeResourceItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(props",{"_index":5138,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(resourceprops",{"_index":5135,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourcetype",{"_index":5029,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.lti",{"_index":5174,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeresourcetype.web_content",{"_index":5069,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeresourcetype.web_link_v1",{"_index":5078,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.web_link_v3",{"_index":5077,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcewrapperelement",{"_index":5231,"title":{"classes/CommonCartridgeResourceWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["commoncartridgeresourcewrapperelement(this.resources).transform",{"_index":5247,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeversion",{"_index":5008,"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":5095,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeversion.v_1_3_0",{"_index":5076,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgewebcontentresource",{"_index":5294,"title":{"classes/CommonCartridgeWebContentResource.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgewebcontentresource(props",{"_index":5300,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeweblinkresourceelement",{"_index":5296,"title":{"classes/CommonCartridgeWebLinkResourceElement.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeweblinkresourceelement(props",{"_index":5301,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commonobject",{"_index":5175,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$.xmlns",{"_index":5196,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:blti",{"_index":5198,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticm",{"_index":5200,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticp",{"_index":5202,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xsi:schemalocation",{"_index":5204,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonprops",{"_index":5062,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commontags",{"_index":5318,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commontoolmodule",{"_index":5328,"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":5334,"title":{"injectables/CommonToolService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceService.html":{}}}],["commontoolvalidationservice",{"_index":5335,"title":{"injectables/CommonToolValidationService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["commontoolvalidationservice.typecheckers[type",{"_index":5395,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["communicate",{"_index":23722,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["communication",{"_index":22415,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["community",{"_index":22280,"title":{},"body":{"license.html":{}}}],["comparator",{"_index":23206,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["comparealphabetic",{"_index":2685,"title":{},"body":{"entities/Board.html":{}}}],["compared",{"_index":23508,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["compareparameters",{"_index":9467,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["compareparameters(oldparams",{"_index":9475,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["comparepassword",{"_index":92,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["compass",{"_index":23461,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["compatible",{"_index":22942,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["compilation",{"_index":22496,"title":{},"body":{"license.html":{}}}],["compilation's",{"_index":22503,"title":{},"body":{"license.html":{}}}],["compilations",{"_index":22750,"title":{},"body":{"license.html":{}}}],["compile",{"_index":20228,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["compiler",{"_index":22405,"title":{},"body":{"license.html":{}}}],["complete",{"_index":14851,"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":3264,"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":19050,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["completed.loggable.ts",{"_index":14844,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:3",{"_index":14846,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:6",{"_index":14847,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completion",{"_index":23413,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["completly",{"_index":23705,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["complex",{"_index":13890,"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":23625,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["compliance",{"_index":22679,"title":{},"body":{"license.html":{}}}],["comply",{"_index":22430,"title":{},"body":{"license.html":{}}}],["compodoc",{"_index":23031,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["component",{"_index":5630,"title":{},"body":{"injectables/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":{},"entities/LessonEntity.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["component.constructor.name",{"_index":5688,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["components",{"_index":22231,"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":{}}}],["componenttype",{"_index":5026,"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.etherpad",{"_index":5079,"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":5074,"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":11879,"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.lernstore",{"_index":11880,"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.nexboard",{"_index":11881,"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":5068,"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":6378,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["composite",{"_index":2806,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["composite.do",{"_index":3956,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["composite.do.ts",{"_index":2751,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["composite.do.ts:11",{"_index":2780,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:15",{"_index":2782,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:19",{"_index":2768,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:33",{"_index":2773,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:35",{"_index":2775,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:39",{"_index":2771,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:45",{"_index":2761,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:47",{"_index":2765,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:7",{"_index":2778,"title":{},"body":{"classes/BoardComposite.html":{}}}],["compression",{"_index":22106,"title":{},"body":{"dependencies.html":{}}}],["computer",{"_index":22362,"title":{},"body":{"license.html":{}}}],["concatenating",{"_index":15244,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["concept",{"_index":23163,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concepts",{"_index":23162,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concern",{"_index":23096,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["concerns",{"_index":22785,"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":23226,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concurrently",{"_index":22108,"title":{},"body":{"dependencies.html":{}}}],["cond",{"_index":19874,"title":{},"body":{"injectables/TaskRule.html":{}}}],["condition",{"_index":23312,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["conditioned",{"_index":22744,"title":{},"body":{"license.html":{}}}],["conditions",{"_index":22335,"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":2302,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference",{"_index":8012,"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":21712,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference.controller.ts",{"_index":21706,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:105",{"_index":21719,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:132",{"_index":21715,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:44",{"_index":21730,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:77",{"_index":21725,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.do.ts",{"_index":21824,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:19",{"_index":21827,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:21",{"_index":21828,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:23",{"_index":21825,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:5",{"_index":21977,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:7",{"_index":21978,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:9",{"_index":21976,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.entity",{"_index":21997,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.entity.ts",{"_index":21655,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:10",{"_index":21974,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:12",{"_index":21975,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:14",{"_index":21973,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:31",{"_index":21658,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:34",{"_index":21659,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:37",{"_index":21657,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.mapper",{"_index":21733,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference.mapper.ts",{"_index":21935,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:25",{"_index":21941,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:32",{"_index":21943,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:38",{"_index":21947,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:42",{"_index":21945,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.module",{"_index":21693,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["conference.module.ts",{"_index":21964,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo",{"_index":21967,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo.ts",{"_index":21990,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:20",{"_index":21995,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:28",{"_index":21993,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.ts",{"_index":21674,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:10",{"_index":21675,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:6",{"_index":21678,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:8",{"_index":21676,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference/bbb/bbb",{"_index":11579,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["conference/bbb/bbb.service.ts",{"_index":2240,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:107",{"_index":2273,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:136",{"_index":2264,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:14",{"_index":2251,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:150",{"_index":2282,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:167",{"_index":2275,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:21",{"_index":2286,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:25",{"_index":2288,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:29",{"_index":2290,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:39",{"_index":2254,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:61",{"_index":2271,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:72",{"_index":2279,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:84",{"_index":2261,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/builder/bbb",{"_index":2112,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["conference/bbb/builder/builder.ts",{"_index":3824,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:2",{"_index":3826,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:8",{"_index":3828,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/request/bbb",{"_index":2050,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["conference/bbb/response/bbb",{"_index":2060,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["conference/bbb/response/bbb.response.ts",{"_index":2238,"title":{},"body":{"interfaces/BBBResponse.html":{}}}],["conference/controller/dto/request/video",{"_index":21758,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference/controller/dto/response/video",{"_index":8011,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["conference/controller/video",{"_index":21705,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference/error/error",{"_index":21875,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/error/invalid",{"_index":13058,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["conference/interface/video",{"_index":12604,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["conference/mapper/vc",{"_index":22017,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference/mapper/video",{"_index":21934,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference/uc/dto/scope",{"_index":12228,"title":{},"body":{"interfaces/IScopeInfo.html":{},"classes/ScopeRef.html":{}}}],["conference/uc/dto/video",{"_index":21673,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["conference/uc/video",{"_index":21777,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/video",{"_index":18535,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["conferences",{"_index":21971,"title":{},"body":{"modules/VideoConferenceModule.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":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.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":19371,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["config.allowmodstounmuteusers",{"_index":2108,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.attendeepw",{"_index":2106,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.builder.ts",{"_index":2113,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:10",{"_index":2196,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:11",{"_index":2129,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:15",{"_index":2198,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:16",{"_index":2123,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:21",{"_index":2127,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:5",{"_index":2194,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:6",{"_index":2125,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.clientid",{"_index":9729,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["config.connectionname",{"_index":17928,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["config.do",{"_index":2567,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts",{"_index":2561,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:11",{"_index":14573,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:13",{"_index":14574,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:15",{"_index":14571,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:17",{"_index":15518,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:4",{"_index":2563,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{}}}],["config.do.ts:5",{"_index":14572,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:6",{"_index":8499,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["config.do.ts:7",{"_index":14576,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:9",{"_index":14575,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.dto",{"_index":19325,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["config.dto.ts",{"_index":15638,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:1",{"_index":16248,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:10",{"_index":15644,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:12",{"_index":15652,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:14",{"_index":15641,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:16",{"_index":15650,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:18",{"_index":15651,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:2",{"_index":15642,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:20",{"_index":15648,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:22",{"_index":16249,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:24",{"_index":16252,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:25",{"_index":15647,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:26",{"_index":16251,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:27",{"_index":15646,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:28",{"_index":16253,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:29",{"_index":15640,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:30",{"_index":16250,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:4",{"_index":15643,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:6",{"_index":15645,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:8",{"_index":15649,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.entity",{"_index":2576,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts",{"_index":2572,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:10",{"_index":8504,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:11",{"_index":15536,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:12",{"_index":14597,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:15",{"_index":14596,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:18",{"_index":14594,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:21",{"_index":14595,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:24",{"_index":14592,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:6",{"_index":2573,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["config.entity.ts:7",{"_index":8505,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:8",{"_index":15537,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:9",{"_index":14593,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.frontchannellogouturi",{"_index":9363,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.fullname",{"_index":2180,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guest",{"_index":2185,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guestpolicy",{"_index":2102,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.json",{"_index":23534,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["config.logouturl",{"_index":2098,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.meetingid",{"_index":2058,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"injectables/BBBService.html":{}}}],["config.moderatorpw",{"_index":2104,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.module",{"_index":8845,"title":{},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{}}}],["config.module.ts",{"_index":20318,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["config.name",{"_index":2096,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.params",{"_index":2588,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["config.params.ts",{"_index":2582,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:4",{"_index":8502,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:6",{"_index":8501,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.redirect",{"_index":2187,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.redirecturis",{"_index":9361,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.response",{"_index":2597,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["config.response.ts",{"_index":2592,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:10",{"_index":2594,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["config.response.ts:13",{"_index":14600,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:16",{"_index":14603,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:19",{"_index":14601,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:22",{"_index":14602,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:23",{"_index":15677,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:25",{"_index":14599,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:28",{"_index":15541,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:30",{"_index":15672,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:37",{"_index":15680,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:4",{"_index":8508,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:44",{"_index":15670,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:51",{"_index":15678,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:58",{"_index":15679,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:6",{"_index":8507,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:65",{"_index":15676,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:72",{"_index":15675,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:79",{"_index":15674,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:86",{"_index":15669,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:9",{"_index":15671,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.role",{"_index":2182,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.scope",{"_index":9357,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.tokenendpointauthmethod",{"_index":9359,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.ts",{"_index":11577,"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":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{},"classes/ToolConfiguration.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:12",{"_index":21704,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:14",{"_index":20320,"title":{},"body":{"classes/ToolConfiguration.html":{}}}],["config.ts:4",{"_index":13294,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["config.ts:5",{"_index":13221,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["config.ts:6",{"_index":21701,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.type",{"_index":8497,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["config.userid",{"_index":2183,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.welcome",{"_index":2100,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config/development.json",{"_index":11982,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config/test.json",{"_index":11983,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config['meta_bbb",{"_index":2110,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["configbuilder",{"_index":21811,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withguestpolicy(guestpolicy.ask_moderator",{"_index":21817,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withmuteonstart(true",{"_index":21819,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configmodule",{"_index":10582,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions",{"_index":16644,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(config",{"_index":10595,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(serverconfig",{"_index":14770,"title":{},"body":{"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configs",{"_index":13448,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/S3ClientModule.html":{}}}],["configs.flatmap((config",{"_index":17927,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["configservice",{"_index":789,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.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/PreviewProducer.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["configservice.get('feature_identity_management_login_enabled",{"_index":835,"title":{},"body":{"modules/AccountModule.html":{}}}],["configservice.get('incoming_request_timeout",{"_index":13048,"title":{},"body":{"modules/InterceptorModule.html":{},"injectables/PreviewProducer.html":{}}}],["configservice.get('incoming_request_timeout_copy_api",{"_index":10631,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["configservice.get('nest_log_level",{"_index":14435,"title":{},"body":{"modules/LoggerModule.html":{}}}],["configservice.get(aeskey",{"_index":8266,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["configtoupdate",{"_index":9412,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["configtype",{"_index":20529,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["configuration",{"_index":2130,"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/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/PseudonymService.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":{},"classes/SchoolExternalToolResponse.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":13307,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.console.ts",{"_index":11588,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:121",{"_index":13508,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:156",{"_index":13511,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:172",{"_index":13512,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:201",{"_index":13510,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:23",{"_index":13504,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:32",{"_index":13505,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:51",{"_index":13506,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:77",{"_index":13507,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:99",{"_index":13514,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.controller",{"_index":13314,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.controller.ts",{"_index":13630,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:109",{"_index":20337,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:19",{"_index":13634,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration.controller.ts:38",{"_index":20331,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:60",{"_index":20327,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:86",{"_index":20341,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.externaltoolid",{"_index":5748,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.get",{"_index":12243,"title":{},"body":{"interfaces/IServerConfig.html":{},"injectables/ShareTokenUC.html":{}}}],["configuration.get('antivirus_exchange",{"_index":10599,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('antivirus_routing_key",{"_index":10600,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('calendar_uri",{"_index":3932,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('clamav__service_hostname",{"_index":10601,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('clamav__service_port",{"_index":10602,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('column_board_feedback_link",{"_index":4853,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('column_board_help_link",{"_index":4837,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('cookie__expires_seconds",{"_index":16175,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__http_only",{"_index":16168,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__same_site",{"_index":16170,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__secure",{"_index":16174,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('ctl_tools__external_tool_max_logo_size_in_bytes",{"_index":12572,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('enable_file_security_check",{"_index":10597,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('feature_column_board_enabled",{"_index":8112,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["configuration.get('feature_copy_service_enabled",{"_index":6710,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["configuration.get('feature_course_share_new",{"_index":18851,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_ctl_context_configuration_enabled",{"_index":12571,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_ctl_tools_tab_enabled",{"_index":12569,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_fwu_content_enabled",{"_index":10728,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["configuration.get('feature_identity_management_enabled",{"_index":12245,"title":{},"body":{"interfaces/IServerConfig.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["configuration.get('feature_identity_management_login_enabled",{"_index":12247,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_identity_management_store_enabled",{"_index":12246,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_imscc_course_export_enabled",{"_index":12244,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_lesson_share",{"_index":18853,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_lti_tools_tab_enabled",{"_index":12570,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_prometheus_metrics_enabled",{"_index":16768,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('feature_sanis_group_provisioning_enabled",{"_index":16414,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["configuration.get('feature_task_share",{"_index":18854,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_videoconference_enabled",{"_index":21702,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('files_storage__exchange",{"_index":11919,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["configuration.get('files_storage__incoming_request_timeout",{"_index":11974,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__max_file_size",{"_index":11978,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_access_key_id",{"_index":11987,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_bucket",{"_index":11986,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_endpoint",{"_index":11984,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_region",{"_index":11985,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_secret_access_key",{"_index":11988,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__service_base_url",{"_index":10598,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('files_storage__use_stream_to_antivirus",{"_index":11979,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('host",{"_index":4866,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/HydraSsoService.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('hydra_public_uri",{"_index":11425,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["configuration.get('i18n__available_languages",{"_index":12239,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('identity_management__admin_clientid",{"_index":13220,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_password",{"_index":13219,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_user",{"_index":13218,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__clientid",{"_index":13217,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__tenant",{"_index":13216,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__uri",{"_index":13215,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('incoming_request_timeout_api",{"_index":12237,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('incoming_request_timeout_copy_api",{"_index":11977,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('login_block_time",{"_index":12242,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('mail_send_exchange",{"_index":17092,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('mail_send_routing_key",{"_index":18543,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('migration_end_grace_period_ms",{"_index":21273,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["configuration.get('nest_log_level",{"_index":11972,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('nextcloud_scopes",{"_index":11570,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["configuration.get('nextcloud_sociallogin_oidc_internal_name",{"_index":4598,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["configuration.get('node_env",{"_index":12241,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_default_metrics",{"_index":16771,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_metrics_route_metrics",{"_index":16772,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_port",{"_index":16770,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_route",{"_index":16769,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('public_backend_url",{"_index":12573,"title":{},"body":{"interfaces/IToolFeatures.html":{},"injectables/OAuthService.html":{},"classes/ToolConfiguration.html":{},"injectables/UserMigrationService.html":{}}}],["configuration.get('rabbitmq_uri",{"_index":17093,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('redis_uri",{"_index":3879,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["configuration.get('request_option__timeout_ms",{"_index":3934,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('rocket_chat_admin_id",{"_index":18546,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_password",{"_index":18549,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_token",{"_index":18547,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_user",{"_index":18548,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_uri",{"_index":18545,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('s3_key",{"_index":18931,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["configuration.get('sc_domain",{"_index":2141,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('sc_theme",{"_index":4864,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('session__expires_seconds",{"_index":18552,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__http_only",{"_index":18571,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__name",{"_index":18565,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__proxy",{"_index":18568,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__same_site",{"_index":18570,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secret",{"_index":18561,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secure",{"_index":18569,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('videoconference_default_presentation",{"_index":21700,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_host",{"_index":21698,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_salt",{"_index":21699,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get(placeholder",{"_index":11820,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.has('column_board_feedback_link",{"_index":4851,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('column_board_help_link",{"_index":4835,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('redis_uri",{"_index":3862,"title":{},"body":{"injectables/CacheService.html":{},"modules/RedisModule.html":{}}}],["configuration.has('session__name",{"_index":18564,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has('session__proxy",{"_index":18567,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has(placeholder",{"_index":11819,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.logourl",{"_index":5753,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.mapper",{"_index":20344,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.mapper.ts",{"_index":20361,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:12",{"_index":20375,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:28",{"_index":20373,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:41",{"_index":20370,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:60",{"_index":20367,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.module",{"_index":14763,"title":{},"body":{"modules/ManagementModule.html":{}}}],["configuration.module.ts",{"_index":13304,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.name",{"_index":5751,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.parameters",{"_index":5754,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.schoolexternaltoolid",{"_index":5750,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.service",{"_index":13311,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.service.ts",{"_index":8511,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:108",{"_index":13339,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:12",{"_index":8518,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:128",{"_index":13340,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:15",{"_index":8531,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:155",{"_index":13341,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:167",{"_index":13336,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:191",{"_index":13358,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:214",{"_index":13344,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:224",{"_index":13362,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:235",{"_index":13349,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:24",{"_index":8527,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:240",{"_index":13364,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:254",{"_index":13346,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:26",{"_index":13333,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:262",{"_index":13353,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:277",{"_index":13350,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:34",{"_index":13338,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:46",{"_index":8522,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:77",{"_index":8533,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.uc",{"_index":11593,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["configuration.uc.ts",{"_index":8559,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:116",{"_index":8580,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:136",{"_index":8578,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:16",{"_index":13487,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:165",{"_index":8572,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:17",{"_index":8568,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:177",{"_index":8570,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:20",{"_index":13489,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:24",{"_index":13492,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:28",{"_index":8576,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:32",{"_index":13490,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:64",{"_index":8574,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:8",{"_index":13486,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.version",{"_index":5756,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration/console/keycloak",{"_index":11587,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration/controller/keycloak",{"_index":13629,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration/interface/json",{"_index":12058,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["configuration/interface/keycloak",{"_index":12064,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["configuration/keycloak",{"_index":13290,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{}}}],["configuration/mapper/identity",{"_index":16275,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["configuration/service/keycloak",{"_index":13317,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["configuration/uc/keycloak",{"_index":13484,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configurations",{"_index":11980,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configure",{"_index":11637,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":18514,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configure(options",{"_index":11638,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configureaction",{"_index":13377,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.action",{"_index":13430,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.create",{"_index":13431,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.delete",{"_index":13435,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.update",{"_index":13433,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureactions",{"_index":13428,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurebrokerflows",{"_index":13319,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureclient",{"_index":13320,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configured",{"_index":14878,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["configureidentityproviders",{"_index":13321,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurerealm",{"_index":13322,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configures",{"_index":6431,"title":{},"body":{"modules/CoreModule.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["confirmed",{"_index":16540,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["confirmpassword",{"_index":16538,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["conflict",{"_index":6665,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["conflicts",{"_index":23161,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["conjunction",{"_index":23541,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["connect",{"_index":13421,"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":13767,"title":{},"body":{"injectables/LdapService.html":{}}}],["connected",{"_index":18262,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["connecting",{"_index":22962,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["connection",{"_index":11616,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":13774,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error",{"_index":13771,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error.ts",{"_index":13757,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.error.ts:4",{"_index":13759,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.managedconnection.close",{"_index":17098,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["connection.unbind",{"_index":13775,"title":{},"body":{"injectables/LdapService.html":{}}}],["connectionname",{"_index":6268,"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":17095,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connectredis",{"_index":18536,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis(session",{"_index":18555,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis.redisstore",{"_index":18553,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connects",{"_index":13635,"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":17446,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.params.ts:7",{"_index":17447,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.response",{"_index":16826,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consent_request",{"_index":16825,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consentflowuc",{"_index":15898,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequest",{"_index":15931,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequestbody",{"_index":5430,"title":{"classes/ConsentRequestBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["consentresponse",{"_index":5480,"title":{"classes/ConsentResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consentresponse.client?.client_id",{"_index":15835,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentresponse.requested_scope",{"_index":15834,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentsessionresponse",{"_index":5523,"title":{"classes/ConsentSessionResponse.html":{}},"body":{"classes/ConsentSessionResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consequence",{"_index":22666,"title":{},"body":{"license.html":{}}}],["consequential",{"_index":22810,"title":{},"body":{"license.html":{}}}],["considerations",{"_index":23148,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["considered",{"_index":22634,"title":{},"body":{"license.html":{}}}],["consistent",{"_index":2143,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/GlobalErrorFilter.html":{},"license.html":{}}}],["console",{"_index":3491,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICleanOptions.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":5547,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["console/board",{"_index":14764,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/database",{"_index":14766,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/keycloak",{"_index":13306,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["consolelogger",{"_index":13896,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["consolemodule",{"_index":18496,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["consolewriter",{"_index":3484,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{}}}],["consolewritermodule",{"_index":3566,"title":{"modules/ConsoleWriterModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["consolewriterservice",{"_index":3481,"title":{"injectables/ConsoleWriterService.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["conspicuously",{"_index":22472,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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/AuthorizationReferenceService.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/BoardDoCopyService.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/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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/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":{},"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":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.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":{},"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":1572,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{},"injectables/S3ClientAdapter.html":{}}}],["constitutes",{"_index":22424,"title":{},"body":{"license.html":{}}}],["constraint",{"_index":17087,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthenticationValues.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationReferenceService.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":{},"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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/FeathersRosterService.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/GroupResponse.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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":{},"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/OauthLoginResponse.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":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/PseudonymResponse.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/SubmissionsResponse.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":{},"classes/TooManyPseudonymsLoggableException.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.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":{},"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":16282,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(@inject(mikroorm",{"_index":14900,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["constructor(@inject(request",{"_index":9752,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["constructor(@inject(toolfeatures",{"_index":8534,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["constructor(@inject(winston_module_provider",{"_index":8345,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["constructor(_em",{"_index":2354,"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(accountrepo",{"_index":1048,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["constructor(adapter",{"_index":4651,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["constructor(amqpconnection",{"_index":1337,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["constructor(apivalidationerror",{"_index":1425,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["constructor(app",{"_index":1650,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["constructor(authenticationservice",{"_index":14378,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["constructor(authorisation",{"_index":14153,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["constructor(authorisationservice",{"_index":17586,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["constructor(authorization",{"_index":6699,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["constructor(authorizationhelper",{"_index":3386,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":4151,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["constructor(authservice",{"_index":14542,"title":{},"body":{"injectables/LoginUc.html":{}}}],["constructor(bbbservice",{"_index":21783,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["constructor(bbbsettings",{"_index":2248,"title":{},"body":{"injectables/BBBService.html":{}}}],["constructor(boarddorepo",{"_index":3120,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["constructor(cachemanager",{"_index":13189,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["constructor(classesrepo",{"_index":4412,"title":{},"body":{"injectables/ClassService.html":{}}}],["constructor(client",{"_index":17828,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["constructor(clientid",{"_index":5527,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/IdTokenCreationLoggableException.html":{}}}],["constructor(columnboardservice",{"_index":4891,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["constructor(config",{"_index":2054,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["constructor(configuration",{"_index":5738,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["constructor(consentresponse",{"_index":5488,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["constructor(console",{"_index":13503,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["constructor(consolewriter",{"_index":3480,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ServerConsole.html":{}}}],["constructor(content",{"_index":5626,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["constructor(contextexternaltool",{"_index":14874,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["constructor(contextexternaltoolrepo",{"_index":5725,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{}}}],["constructor(contextexternaltoolservice",{"_index":6099,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolReferenceUc.html":{}}}],["constructor(copyhelperservice",{"_index":6297,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["constructor(county",{"_index":6450,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["constructor(courseexportservice",{"_index":6714,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["constructor(courserepo",{"_index":6646,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{},"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["constructor(courserule",{"_index":17792,"title":{},"body":{"injectables/RuleManager.html":{}}}],["constructor(courseservice",{"_index":5001,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["constructor(customkey",{"_index":18923,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["constructor(dashboardrepo",{"_index":7762,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["constructor(data",{"_index":1009,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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":16278,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(deletefilesuc",{"_index":7915,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["constructor(descendants",{"_index":3205,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["constructor(descriptionoroptions",{"_index":13725,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["constructor(details",{"_index":13758,"title":{},"body":{"classes/LdapConnectionError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["constructor(domainobject",{"_index":7183,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(dto",{"_index":3890,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["constructor(e",{"_index":1186,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["constructor(em",{"_index":3314,"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":2489,"title":{},"body":{"classes/BaseFactory.html":{}}}],["constructor(entityname",{"_index":8272,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["constructor(error",{"_index":8281,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["constructor(externaltoolid",{"_index":8753,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["constructor(externaltoollogo",{"_index":8730,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["constructor(externaltoolrepo",{"_index":9282,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["constructor(externaltoolservice",{"_index":8566,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["constructor(externaluserid",{"_index":21489,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["constructor(feathersauthprovider",{"_index":9585,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["constructor(feathersserviceprovider",{"_index":8403,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/NexboardService.html":{}}}],["constructor(federalstaterepo",{"_index":9781,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["constructor(field",{"_index":21649,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(file",{"_index":9792,"title":{},"body":{"classes/FileDto.html":{}}}],["constructor(filecopyservice",{"_index":17120,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["constructor(filerecord",{"_index":6193,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["constructor(filesrepo",{"_index":7943,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["constructor(filesstorageclientadapterservice",{"_index":18416,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["constructor(filesstorageservice",{"_index":10495,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["constructor(group",{"_index":11092,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["constructor(grouprepo",{"_index":11168,"title":{},"body":{"injectables/GroupService.html":{}}}],["constructor(groupservice",{"_index":11195,"title":{},"body":{"injectables/GroupUc.html":{}}}],["constructor(groupuser",{"_index":21008,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["constructor(httpservice",{"_index":3923,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/OauthAdapterService.html":{}}}],["constructor(id",{"_index":2341,"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":1479,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["constructor(init",{"_index":3825,"title":{},"body":{"classes/Builder.html":{}}}],["constructor(inusermigration",{"_index":14845,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["constructor(jwtservice",{"_index":1713,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["constructor(jwtvalidationadapter",{"_index":13163,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["constructor(kcadmin",{"_index":13331,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["constructor(kcadminclient",{"_index":13249,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["constructor(kcadminservice",{"_index":13518,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["constructor(key",{"_index":7176,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["constructor(ldapconfig",{"_index":12360,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(lessonrepo",{"_index":14278,"title":{},"body":{"injectables/LessonService.html":{}}}],["constructor(loader",{"_index":1970,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["constructor(logger",{"_index":2969,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ErrorLogger.html":{},"injectables/FilesStorageClientAdapterService.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":14515,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["constructor(logourl",{"_index":8739,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["constructor(logouturl",{"_index":13060,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["constructor(ltirepo",{"_index":11488,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["constructor(ltitoolrepo",{"_index":14739,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["constructor(ltitoolservice",{"_index":15951,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["constructor(message",{"_index":1817,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/ForbiddenOperationError.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/PreviewActionsLoggable.html":{},"classes/ValidationError.html":{}}}],["constructor(newsrepo",{"_index":15149,"title":{},"body":{"injectables/NewsUc.html":{}}}],["constructor(oauthconfig",{"_index":12337,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oauthconfigdto",{"_index":15639,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["constructor(oauthconfigresponse",{"_index":15668,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["constructor(oauthproviderloginflowservice",{"_index":12625,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["constructor(oauthproviderservice",{"_index":15781,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["constructor(oauthservice",{"_index":11414,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["constructor(officialschoolnumber",{"_index":18395,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["constructor(oidcconfig",{"_index":12404,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["constructor(oidcconfigdto",{"_index":16247,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["constructor(oidcprovisioningservice",{"_index":16403,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["constructor(operation",{"_index":14993,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["constructor(operator",{"_index":18458,"title":{},"body":{"classes/Scope.html":{}}}],["constructor(options",{"_index":5106,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(organizationelements",{"_index":5278,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["constructor(parametertype",{"_index":16515,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["constructor(params",{"_index":13962,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["constructor(payload",{"_index":18715,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["constructor(previewgeneratorservice",{"_index":16620,"title":{},"body":{"injectables/PreviewGeneratorConsumer.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":{},"injectables/AuthorizationReferenceService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.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/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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/SchoolSpecificFileCopyServiceFactory.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.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":{},"classes/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalUserDto.html":{},"entities/FederalStateEntity.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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/OauthLoginResponse.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":{},"classes/ResolvedGroupUser.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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/SystemEntity.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":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["constructor(protected",{"_index":2397,"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":16832,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["constructor(pseudonym",{"_index":20294,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["constructor(pseudonymrepo",{"_index":16987,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["constructor(pseudonymservice",{"_index":17032,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["constructor(readonly",{"_index":1412,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(redirectreponse",{"_index":17309,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["constructor(relation",{"_index":11150,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["constructor(repo",{"_index":6798,"title":{},"body":{"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/FilesService.html":{}}}],["constructor(req",{"_index":17342,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(request",{"_index":9763,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["constructor(requesttimeout",{"_index":20248,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["constructor(res",{"_index":17362,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(resourceelements",{"_index":5306,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["constructor(resourcename",{"_index":15326,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["constructor(resp",{"_index":8016,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["constructor(response",{"_index":5931,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["constructor(responsemapper",{"_index":17975,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["constructor(rolerepo",{"_index":17565,"title":{},"body":{"injectables/RoleService.html":{}}}],["constructor(roleservice",{"_index":17582,"title":{},"body":{"injectables/RoleUc.html":{}}}],["constructor(rulemanager",{"_index":1990,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["constructor(schoolexternaltoolrepo",{"_index":18194,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["constructor(schoolexternaltoolservice",{"_index":18226,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["constructor(schoolid",{"_index":18399,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["constructor(schoolname",{"_index":18283,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["constructor(schoolrepo",{"_index":14068,"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":18451,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["constructor(service",{"_index":4692,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["constructor(sharetokenservice",{"_index":18792,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["constructor(state",{"_index":16777,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["constructor(storageclient",{"_index":16656,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["constructor(strategy",{"_index":4526,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["constructor(submissionitemsresponse",{"_index":19249,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["constructor(submissionrepo",{"_index":19203,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["constructor(submissionservice",{"_index":19231,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["constructor(successful",{"_index":19258,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["constructor(system",{"_index":17066,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{}}}],["constructor(systemrepo",{"_index":13798,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["constructor(systemresponses",{"_index":17062,"title":{},"body":{"classes/PublicSystemListResponse.html":{}}}],["constructor(systemservice",{"_index":16852,"title":{},"body":{"injectables/ProvisioningService.html":{},"injectables/SystemUc.html":{}}}],["constructor(task",{"_index":12449,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["constructor(taskrepo",{"_index":19596,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["constructor(taskservice",{"_index":17724,"title":{},"body":{"injectables/RoomsService.html":{}}}],["constructor(teamsrepo",{"_index":20124,"title":{},"body":{"injectables/TeamService.html":{}}}],["constructor(timetowait",{"_index":3799,"title":{},"body":{"classes/BruteForceError.html":{}}}],["constructor(tokengenerator",{"_index":18760,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["constructor(toolfeatures",{"_index":8516,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{}}}],["constructor(toollaunchservice",{"_index":20603,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["constructor(toolpermissionhelper",{"_index":6055,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["constructor(toolreference",{"_index":20632,"title":{},"body":{"classes/ToolReference.html":{}}}],["constructor(toolreferenceresponse",{"_index":20670,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["constructor(total",{"_index":16505,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["constructor(type",{"_index":8376,"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/LinkElementContent.html":{},"classes/LinkElementResponse.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":11318,"title":{},"body":{"classes/GroupUserResponse.html":{},"classes/UserDto.html":{}}}],["constructor(userid",{"_index":10696,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["constructor(userloginmigrationid",{"_index":21017,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["constructor(userloginmigrationservice",{"_index":4481,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["constructor(usermatchschoolid",{"_index":18269,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["constructor(usermigrationdto",{"_index":14829,"title":{},"body":{"classes/MigrationDto.html":{}}}],["constructor(usermigrationservice",{"_index":21302,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["constructor(username",{"_index":20763,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["constructor(userrepo",{"_index":17325,"title":{},"body":{"injectables/ReferenceLoader.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["constructor(userservice",{"_index":9646,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["constructor(validationerrors",{"_index":1399,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["construed",{"_index":22754,"title":{},"body":{"license.html":{}}}],["consumer",{"_index":14561,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewProducer.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["consumer.authorize(requestdata",{"_index":14569,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["consumer.module.ts",{"_index":16636,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["consumer.module.ts:13",{"_index":16639,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["contact",{"_index":22843,"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":5021,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["container",{"_index":2850,"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":3725,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["container.url.params.ts",{"_index":18994,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["container.url.params.ts:11",{"_index":18996,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["containing",{"_index":15598,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["contains",{"_index":5406,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICurrentUser.html":{},"classes/ImportUserScope.html":{},"classes/LoginRequestBody.html":{},"injectables/NewsRepo.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"interfaces/OauthCurrentUser.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":2303,"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/ContentElementService.html":{},"injectables/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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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.body.params.ts",{"_index":8171,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:13",{"_index":8173,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["content.body.params.ts:133",{"_index":20766,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:19",{"_index":9790,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:23",{"_index":9789,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:32",{"_index":9853,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["content.body.params.ts:37",{"_index":14313,"title":{},"body":{"classes/LinkContentBody.html":{}}}],["content.body.params.ts:46",{"_index":14341,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["content.body.params.ts:52",{"_index":17459,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:56",{"_index":17458,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:65",{"_index":17482,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["content.body.params.ts:74",{"_index":18968,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["content.body.params.ts:83",{"_index":18983,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["content.body.params.ts:90",{"_index":8613,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["content.body.params.ts:99",{"_index":8656,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["content.component",{"_index":5067,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.description",{"_index":5081,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.url",{"_index":5080,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.dto",{"_index":16475,"title":{},"body":{"injectables/PageContentMapper.html":{},"injectables/UserMigrationService.html":{}}}],["content.dto.ts",{"_index":16460,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:2",{"_index":16464,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:4",{"_index":16463,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.identifier",{"_index":5277,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.mapper.ts",{"_index":16471,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.mapper.ts:7",{"_index":16472,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.numberofdrafttasks",{"_index":8133,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.numberofplannedtasks",{"_index":8135,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.response.ts",{"_index":16493,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:12",{"_index":16494,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:7",{"_index":16498,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.title",{"_index":5066,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.title}${content.content.text",{"_index":5073,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content/:contentid/:file",{"_index":11385,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["content_developer",{"_index":7107,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdeveloper",{"_index":7108,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdisposition",{"_index":1485,"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":3574,"title":{"injectables/ContentElementFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["contentelementid",{"_index":5692,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"injectables/ElementUc.html":{}}}],["contentelementresponsefactory",{"_index":4016,"title":{"classes/ContentElementResponseFactory.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{}}}],["contentelementresponsefactory.maptoresponse(element",{"_index":4047,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ElementController.html":{}}}],["contentelementservice",{"_index":3572,"title":{"injectables/ContentElementService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contentelementtype",{"_index":4096,"title":{},"body":{"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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":8172,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["contentelementtype.external_tool",{"_index":5570,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.file",{"_index":5562,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.link",{"_index":5564,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.rich_text",{"_index":5566,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":5568,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":5607,"title":{"injectables/ContentElementUpdateVisitor.html":{}},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["contentelementupdatevisitor(content",{"_index":5619,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["contentelementurlparams",{"_index":5689,"title":{"classes/ContentElementUrlParams.html":{}},"body":{"classes/ContentElementUrlParams.html":{},"controllers/ElementController.html":{}}}],["contentid",{"_index":1490,"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":6276,"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":6277,"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":10761,"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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"license.html":{}}}],["contents.config",{"_index":10756,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["contents.controller",{"_index":10755,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.controller.ts",{"_index":10715,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.controller.ts:25",{"_index":10720,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.module.ts",{"_index":10751,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["contents.params",{"_index":10725,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.params.ts",{"_index":10779,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.params.ts:11",{"_index":10785,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.push(element",{"_index":14201,"title":{},"body":{"classes/LessonFactory.html":{}}}],["contents.uc",{"_index":10723,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.uc.ts",{"_index":10764,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:15",{"_index":10768,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:7",{"_index":10767,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents/controller/dto/fwu",{"_index":10778,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents/controller/fwu",{"_index":10714,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents/fwu",{"_index":10750,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents/interface/config.ts",{"_index":17930,"title":{},"body":{"interfaces/S3Config.html":{}}}],["contents/uc/fwu",{"_index":10763,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contenttype",{"_index":6275,"title":{},"body":{"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":8782,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["contenttypedetector[imagesignature",{"_index":8822,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["context",{"_index":199,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"controllers/BoardController.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardManagementUc.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/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/GroupRule.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonRule.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.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/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusResponseMapper.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.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":20326,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["context(context",{"_index":4731,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["context.action",{"_index":3399,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["context.builder",{"_index":23715,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["context.builder.ts",{"_index":1803,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:11",{"_index":1811,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:17",{"_index":1809,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:5",{"_index":1807,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.contextid",{"_index":18846,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["context.controller.ts",{"_index":20384,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:122",{"_index":20399,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:146",{"_index":20407,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:44",{"_index":20390,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:70",{"_index":20394,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:89",{"_index":20403,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.getclass",{"_index":20257,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.gethandler",{"_index":20256,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.interface",{"_index":16823,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/Rule.html":{}}}],["context.interface.ts",{"_index":1797,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/ProviderOidcContext.html":{}}}],["context.params.ts",{"_index":5759,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:18",{"_index":5765,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:8",{"_index":5763,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.reponse",{"_index":2934,"title":{},"body":{"controllers/BoardController.html":{}}}],["context.reponse.ts",{"_index":2881,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:13",{"_index":2886,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:16",{"_index":2890,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:4",{"_index":2882,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.requiredpermissions",{"_index":3394,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/GroupRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["context.response",{"_index":5520,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["context.response.ts",{"_index":16264,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:12",{"_index":16271,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:15",{"_index":16272,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:19",{"_index":16274,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:6",{"_index":16269,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:9",{"_index":16270,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.switchtohttp().getrequest",{"_index":17393,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["context_external_tools",{"_index":5784,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextcanwrite",{"_index":14183,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextconfigurationenabled",{"_index":12564,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["contextdo",{"_index":20625,"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":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"controllers/ToolContextController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltool'})@httpcode(httpstatus.no_content",{"_index":20393,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltool(contextexternaltooldto",{"_index":6081,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.contextref",{"_index":6114,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref.id",{"_index":313,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltool.contextref.type",{"_index":315,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool.displayname",{"_index":5967,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.id",{"_index":5965,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltool.parameters",{"_index":282,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["contextexternaltool.schooltoolref",{"_index":6113,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.schooltoolref.schoolid",{"_index":6087,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool.schooltoolref.schooltoolid",{"_index":5966,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltool.toolversion",{"_index":5968,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltoolauthorizableservice",{"_index":5723,"title":{"injectables/ContextExternalToolAuthorizableService.html":{}},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse",{"_index":5729,"title":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20383,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplateresponse",{"_index":5731,"title":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolcontextparams",{"_index":5757,"title":{"classes/ContextExternalToolContextParams.html":{}},"body":{"classes/ContextExternalToolContextParams.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltooldto",{"_index":5915,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltooldto.schooltoolref.schoolid",{"_index":6080,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltooldto.schooltoolref.schooltoolid",{"_index":6078,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltoolentity",{"_index":5768,"title":{"entities/ContextExternalToolEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["contextexternaltoolentity(props",{"_index":5879,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltoolfactory",{"_index":5791,"title":{"classes/ContextExternalToolFactory.html":{}},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolfactory.define(contextexternaltool",{"_index":5801,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolid",{"_index":3267,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ElementContentBody.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contextexternaltoolid(value",{"_index":8643,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["contextexternaltoolidparams",{"_index":5802,"title":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{}},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolmodule",{"_index":5808,"title":{"modules/ContextExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["contextexternaltoolpostparams",{"_index":5819,"title":{"classes/ContextExternalToolPostParams.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolprops",{"_index":5701,"title":{"interfaces/ContextExternalToolProps.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["contextexternaltoolquery",{"_index":5846,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{}}}],["contextexternaltoolrepo",{"_index":5336,"title":{"injectables/ContextExternalToolRepo.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{}}}],["contextexternaltoolrequestmapper",{"_index":5908,"title":{"classes/ContextExternalToolRequestMapper.html":{}},"body":{"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolrequestmapper.mapcontextexternaltoolrequest(body",{"_index":20411,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse",{"_index":5929,"title":{"classes/ContextExternalToolResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper",{"_index":5950,"title":{"classes/ContextExternalToolResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(contextexternaltool",{"_index":20425,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(createdtool",{"_index":20413,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(tool",{"_index":20421,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(updatedtool",{"_index":20428,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponse(toolreference",{"_index":20658,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponsemapper.maptotoolreferenceresponses(toolreferences",{"_index":20661,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiunprocessableentityresponse()@apioperation({summary",{"_index":20406,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20388,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apioperation({summary",{"_index":20397,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolrule",{"_index":1887,"title":{"injectables/ContextExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/RuleManager.html":{}}}],["contextexternaltools",{"_index":6039,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltools.length",{"_index":9732,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltools.map",{"_index":20420,"title":{},"body":{"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolscope",{"_index":5848,"title":{"classes/ContextExternalToolScope.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["contextexternaltoolsearchlistresponse",{"_index":6019,"title":{"classes/ContextExternalToolSearchListResponse.html":{}},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse(mappedtools",{"_index":20422,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse})@apioperation({summary",{"_index":20402,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolservice",{"_index":5815,"title":{"injectables/ContextExternalToolService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextexternaltoolsinuse",{"_index":8526,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["contextexternaltoolsinuse.some",{"_index":8545,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["contextexternaltooltemplateinfo",{"_index":8524,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltooltype",{"_index":5773,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltooltype.board_element",{"_index":5906,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooltype.course",{"_index":5904,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooluc",{"_index":6047,"title":{"injectables/ContextExternalToolUc.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolvalidationservice",{"_index":5816,"title":{"injectables/ContextExternalToolValidationService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["contextid",{"_index":5760,"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":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextparameter",{"_index":7303,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["contextreadwithtopiccreate",{"_index":14177,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["contextref",{"_index":5697,"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/FeathersRosterService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextref.id",{"_index":9734,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["contextrefparams",{"_index":6126,"title":{"classes/ContextRefParams.html":{}},"body":{"classes/ContextRefParams.html":{},"controllers/ToolConfigurationController.html":{}}}],["contexttoolid",{"_index":5975,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["contexttype",{"_index":4773,"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":{}}}],["continue",{"_index":22592,"title":{},"body":{"license.html":{}}}],["continued",{"_index":22576,"title":{},"body":{"license.html":{}}}],["contractual",{"_index":22631,"title":{},"body":{"license.html":{}}}],["contradict",{"_index":22761,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contrast",{"_index":22286,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contributor",{"_index":22704,"title":{},"body":{"license.html":{}}}],["contributor's",{"_index":22706,"title":{},"body":{"license.html":{}}}],["control",{"_index":20487,"title":{},"body":{"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controlled",{"_index":22709,"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/GroupController.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/PseudonymController.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/ToolReferenceController.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":{},"modules/GroupApiModule.html":{},"controllers/GroupController.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/PseudonymController.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/ToolReferenceController.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":14488,"title":{},"body":{"controllers/LoginController.html":{}}}],["controller('board",{"_index":3739,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["controller('boards",{"_index":2938,"title":{},"body":{"controllers/BoardController.html":{}}}],["controller('cards",{"_index":4017,"title":{},"body":{"controllers/CardController.html":{}}}],["controller('collaborative",{"_index":4626,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["controller('columns",{"_index":4935,"title":{},"body":{"controllers/ColumnController.html":{}}}],["controller('courses",{"_index":6626,"title":{},"body":{"controllers/CourseController.html":{}}}],["controller('dashboard",{"_index":7382,"title":{},"body":{"controllers/DashboardController.html":{}}}],["controller('elements",{"_index":8213,"title":{},"body":{"controllers/ElementController.html":{}}}],["controller('fwu",{"_index":10727,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["controller('groups",{"_index":10965,"title":{},"body":{"controllers/GroupController.html":{}}}],["controller('h5p",{"_index":11374,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["controller('lessons",{"_index":14143,"title":{},"body":{"controllers/LessonController.html":{}}}],["controller('management/database",{"_index":7848,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["controller('management/idm",{"_index":13643,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["controller('news",{"_index":14973,"title":{},"body":{"controllers/NewsController.html":{}}}],["controller('oauth2",{"_index":15896,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["controller('pseudonyms",{"_index":16935,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["controller('rooms",{"_index":17705,"title":{},"body":{"controllers/RoomsController.html":{}}}],["controller('school",{"_index":13948,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["controller('sharetoken",{"_index":18650,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["controller('sso",{"_index":16129,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["controller('submissions",{"_index":19011,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["controller('systems",{"_index":19302,"title":{},"body":{"controllers/SystemController.html":{}}}],["controller('tasks",{"_index":19573,"title":{},"body":{"controllers/TaskController.html":{}}}],["controller('team",{"_index":20076,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["controller('tools",{"_index":20346,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolLaunchController.html":{}}}],["controller('tools/context",{"_index":20410,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["controller('tools/external",{"_index":20459,"title":{},"body":{"controllers/ToolController.html":{}}}],["controller('tools/school",{"_index":20731,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["controller('tools/tool",{"_index":20655,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["controller('user",{"_index":20835,"title":{},"body":{"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["controller('user/import",{"_index":12786,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["controller('videoconference",{"_index":21851,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["controller('videoconference2",{"_index":21739,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["controller.ts",{"_index":23173,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["controller/account.controller",{"_index":452,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["controller/api",{"_index":23468,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["controller/collaborative",{"_index":4647,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["controller/course.controller",{"_index":13856,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/dashboard.controller",{"_index":13857,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/database",{"_index":14767,"title":{},"body":{"modules/ManagementModule.html":{}}}],["controller/dto",{"_index":982,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/ContentElementService.html":{},"injectables/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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/PseudonymMapper.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":21356,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["controller/dto/password",{"_index":1002,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["controller/dto/response/video",{"_index":21948,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["controller/dto/single",{"_index":17601,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["controller/dto/target",{"_index":19511,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["controller/dto/task",{"_index":19932,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["controller/dto/team",{"_index":4702,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["controller/fwu",{"_index":10754,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["controller/h5p",{"_index":11396,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["controller/import",{"_index":12925,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["controller/keycloak",{"_index":13313,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["controller/legacy",{"_index":13920,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["controller/news.controller",{"_index":15071,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/oauth",{"_index":15582,"title":{},"body":{"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{}}}],["controller/pseudonym.controller",{"_index":16922,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["controller/rooms.controller",{"_index":13858,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/server.controller",{"_index":18539,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["controller/share",{"_index":18864,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["controller/team",{"_index":15072,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/transformer/sanitize",{"_index":17454,"title":{},"body":{"classes/RichText.html":{}}}],["controller/user",{"_index":21027,"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":{},"modules/GroupApiModule.html":{},"controllers/GroupController.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.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/ToolReferenceController.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":13810,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["controllers/login.controller",{"_index":1512,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["convenient",{"_index":22380,"title":{},"body":{"license.html":{}}}],["convention",{"_index":23307,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["conventions",{"_index":23156,"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":15289,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter((userid",{"_index":15303,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter(boolean",{"_index":15296,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.includes(userid",{"_index":15299,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["converter/bson.converter",{"_index":11670,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["converterutil",{"_index":2250,"title":{"injectables/ConverterUtil.html":{}},"body":{"injectables/BBBService.html":{},"injectables/ConverterUtil.html":{},"modules/VideoConferenceModule.html":{}}}],["converts",{"_index":794,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["converttodatabasevalue",{"_index":18921,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttodatabasevalue(value",{"_index":18926,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue",{"_index":18922,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue(value",{"_index":18928,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["convey",{"_index":22368,"title":{},"body":{"license.html":{}}}],["conveyance",{"_index":22739,"title":{},"body":{"license.html":{}}}],["conveyed",{"_index":22587,"title":{},"body":{"license.html":{}}}],["conveying",{"_index":22375,"title":{},"body":{"license.html":{}}}],["conveys",{"_index":22630,"title":{},"body":{"license.html":{}}}],["cookie",{"_index":11530,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["cookie.parse(request.headers.cookie",{"_index":13159,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookie.startswith('oauth2",{"_index":11546,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["cookiedefaultoptions",{"_index":16166,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookieoptions",{"_index":16116,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookies",{"_index":11456,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{}}}],["cookies[name",{"_index":13160,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookiesdto",{"_index":6139,"title":{"classes/CookiesDto.html":{}},"body":{"classes/CookiesDto.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["cooperation",{"_index":22279,"title":{},"body":{"license.html":{}}}],["copied",{"_index":1582,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/LessonCopyApiParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/TaskCopyApiParams.html":{}}}],["copies",{"_index":17194,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"license.html":{}}}],["copies.push(childcopy",{"_index":17197,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy",{"_index":2524,"title":{},"body":{"classes/BaseFactory.html":{},"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CourseCopyService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyUC.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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(original",{"_index":17123,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy(params",{"_index":3295,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy(paths",{"_index":17832,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copy(userid",{"_index":10072,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["copy.id",{"_index":17170,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.interface",{"_index":3302,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.interface.ts",{"_index":18409,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.interface.ts:18",{"_index":18412,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{}}}],["copy.params",{"_index":6401,"title":{},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{}}}],["copy.params.ts",{"_index":14148,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:14",{"_index":14149,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:22",{"_index":19592,"title":{},"body":{"classes/TaskCopyApiParams.html":{}}}],["copy.service",{"_index":3006,"title":{},"body":{"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/CourseCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["copy.service.ts",{"_index":2960,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:112",{"_index":2986,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:120",{"_index":2989,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:128",{"_index":2984,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:14",{"_index":3297,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.service.ts:143",{"_index":2993,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:15",{"_index":6648,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.service.ts:16",{"_index":4739,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copy.service.ts:164",{"_index":2999,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:177",{"_index":2996,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:18",{"_index":19597,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:25",{"_index":4741,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:36",{"_index":2975,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:42",{"_index":19602,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:46",{"_index":2978,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:56",{"_index":6652,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:63",{"_index":19607,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:70",{"_index":19605,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:72",{"_index":6657,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:78",{"_index":2981,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["copy.service.ts:9",{"_index":18422,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copy.uc",{"_index":17701,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/TaskController.html":{}}}],["copy.uc.ts",{"_index":6697,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:10",{"_index":6700,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:102",{"_index":19649,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:11",{"_index":19634,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:112",{"_index":19639,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:12",{"_index":14154,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:16",{"_index":6703,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:21",{"_index":14162,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:27",{"_index":6701,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:55",{"_index":14159,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:61",{"_index":19641,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:63",{"_index":14156,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:68",{"_index":14157,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:69",{"_index":19636,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:74",{"_index":19638,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:81",{"_index":19644,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:92",{"_index":19647,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.visitor",{"_index":3300,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["copy.visitor.ts",{"_index":17114,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:126",{"_index":17142,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:146",{"_index":17144,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:165",{"_index":17146,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:183",{"_index":17148,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:192",{"_index":17138,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:21",{"_index":17122,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:210",{"_index":17132,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:214",{"_index":17128,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:227",{"_index":17126,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:23",{"_index":17121,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:27",{"_index":17124,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:38",{"_index":17136,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:59",{"_index":17134,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:77",{"_index":17130,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy.visitor.ts:96",{"_index":17140,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copy_files_of_parent",{"_index":11920,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["copyapiresponse",{"_index":6149,"title":{"classes/CopyApiResponse.html":{}},"body":{"classes/CopyApiResponse.html":{},"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copyapiresponse})@apiresponse({status",{"_index":18634,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["copyboard",{"_index":2961,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboard(params",{"_index":2976,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements",{"_index":2962,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements(boardelements",{"_index":2979,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard",{"_index":2963,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["copycolumnboard(columnboardtarget",{"_index":2983,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycolumnboard(props",{"_index":4740,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copycourse",{"_index":6642,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourse(currentuser",{"_index":17685,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copycourse(undefined",{"_index":6649,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourse(userid",{"_index":6702,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourseentity",{"_index":6643,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourseentity(params",{"_index":6650,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copydict",{"_index":3076,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copydictionary",{"_index":6353,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copyelementtype",{"_index":3007,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.board",{"_index":3021,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.card",{"_index":17162,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.column",{"_index":17160,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.columnboard",{"_index":17157,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.content",{"_index":19623,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.course",{"_index":6694,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.coursegroup_group",{"_index":6691,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.external_tool_element",{"_index":17186,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file",{"_index":6331,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_element",{"_index":17176,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.file_group",{"_index":6336,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.lesson",{"_index":3082,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.link_element",{"_index":17179,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.ltitool_group",{"_index":6686,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.metadata",{"_index":6684,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.richtext_element",{"_index":17182,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_container_element",{"_index":17184,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.submission_group",{"_index":19624,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.submission_item",{"_index":17185,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyelementtype.task",{"_index":19626,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.time_group",{"_index":6687,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.user_group",{"_index":6685,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyentity",{"_index":3023,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copyentity.course?.id",{"_index":6413,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyentity.id",{"_index":6411,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyfiledto",{"_index":6169,"title":{"classes/CopyFileDto.html":{}},"body":{"classes/CopyFileDto.html":{},"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfiledto.id",{"_index":17173,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.name",{"_index":17174,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfiledto.sourceid",{"_index":17175,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copyfilelistresponse",{"_index":6182,"title":{"classes/CopyFileListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse.map((response",{"_index":10470,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["copyfileparams",{"_index":6220,"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":6185,"title":{"classes/CopyFileResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["copyfileresponsebuilder",{"_index":6257,"title":{"classes/CopyFileResponseBuilder.html":{}},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["copyfiles",{"_index":6262,"title":{"interfaces/CopyFiles.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["copyfilesofentity",{"_index":6294,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofentity(originalentity",{"_index":6300,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparent",{"_index":10428,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(param",{"_index":10434,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["copyfilesofparent(params",{"_index":18410,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["copyfilesofparent(payload",{"_index":10499,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:finished",{"_index":10635,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:started",{"_index":10633,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparentparambuilder",{"_index":6278,"title":{"classes/CopyFilesOfParentParamBuilder.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparambuilder.build(userid",{"_index":6317,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparams",{"_index":6242,"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":6243,"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":6291,"title":{"injectables/CopyFilesService.html":{}},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["copyhelpermodule",{"_index":6338,"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":2974,"title":{"injectables/CopyHelperService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copying",{"_index":6832,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"license.html":{}}}],["copyingsince",{"_index":6470,"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":{},"classes/UsersList.html":{}}}],["copyleft",{"_index":22275,"title":{},"body":{"license.html":{}}}],["copylesson",{"_index":2964,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copylesson(currentuser",{"_index":17688,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copylesson(originallesson",{"_index":2985,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copylesson(userid",{"_index":14160,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copymap",{"_index":17115,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["copymapper",{"_index":6386,"title":{"classes/CopyMapper.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maplessoncopytodomain(params",{"_index":17720,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copymapper.maptaskcopytodomain(params",{"_index":19589,"title":{},"body":{"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(copystatus",{"_index":17717,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(element",{"_index":6417,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyname",{"_index":6659,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copyobjectcommand",{"_index":17847,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyobjectcommandoutput",{"_index":17848,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths",{"_index":17883,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths.map((p",{"_index":17893,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyprops",{"_index":1794,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["copyrequest",{"_index":17887,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyrequests",{"_index":17897,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyright",{"_index":22265,"title":{},"body":{"license.html":{}}}],["copyrightable",{"_index":22342,"title":{},"body":{"license.html":{}}}],["copyrighted",{"_index":22434,"title":{},"body":{"license.html":{}}}],["copyrightowners",{"_index":5036,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["copysource",{"_index":17899,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copystatus",{"_index":2992,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"classes/RecursiveCopyVisitor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copystatus.copyentity",{"_index":6409,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.copyentity.context",{"_index":4760,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["copystatus.elements",{"_index":6414,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.status",{"_index":6408,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.title",{"_index":6406,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.type",{"_index":6407,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatusenum",{"_index":3008,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.fail",{"_index":3031,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["copystatusenum.not_doing",{"_index":6367,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.not_implemented",{"_index":6692,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copystatusenum.partial",{"_index":6361,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copystatusenum.success",{"_index":6332,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["copytask",{"_index":2965,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copytask(currentuser",{"_index":19546,"title":{},"body":{"controllers/TaskController.html":{}}}],["copytask(originaltask",{"_index":2988,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copytask(params",{"_index":19598,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytask(userid",{"_index":18804,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copytaskentity",{"_index":19594,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytaskentity(params",{"_index":19600,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["core",{"_index":6430,"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":23511,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["core/error",{"_index":23269,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["core/logger/logger.module",{"_index":454,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["coremodule",{"_index":6422,"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":4614,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.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":22805,"title":{},"body":{"license.html":{}}}],["correctly",{"_index":23300,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["correctness",{"_index":23055,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["corresponding",{"_index":14519,"title":{},"body":{"classes/LoginResponse-1.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["cors",{"_index":22111,"title":{},"body":{"dependencies.html":{}}}],["cost",{"_index":22524,"title":{},"body":{"license.html":{}}}],["count",{"_index":5880,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/FileRecordRepo.html":{},"interfaces/ICleanOptions.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/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.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":12965,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["countednewslist",{"_index":15093,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["countedtasklist",{"_index":19803,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["counterclaim",{"_index":22696,"title":{},"body":{"license.html":{}}}],["counties",{"_index":6457,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countpipeline",{"_index":21533,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countpipeline.push",{"_index":21534,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countries",{"_index":22365,"title":{},"body":{"license.html":{}}}],["country",{"_index":22732,"title":{},"body":{"license.html":{}}}],["counts",{"_index":6830,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["county",{"_index":6445,"title":{"classes/County.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.antareskey",{"_index":6462,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.countyid",{"_index":6460,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.name",{"_index":6458,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countyid",{"_index":6449,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["coupling",{"_index":23151,"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/ColumnBoardCopyService.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":{},"injectables/FeathersRosterService.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/LessonCopyUC.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/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.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":5039,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.description",{"_index":23684,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.entity",{"_index":2646,"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.extractids(this.students",{"_index":6562,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.substitutionteachers",{"_index":6566,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractids(this.teachers",{"_index":6563,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.extractuserlist(users",{"_index":6574,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["course.factory",{"_index":6771,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["course.getmetadata",{"_index":6814,"title":{},"body":{"classes/CourseMapper.html":{}}}],["course.getstudentslist().map((user",{"_index":3152,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getsubstitutionteacherslist().map((user",{"_index":3150,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getteacherslist().map((user",{"_index":3145,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.id",{"_index":9691,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.name",{"_index":318,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CourseCopyService.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.removeuser(userid",{"_index":6967,"title":{},"body":{"injectables/CourseService.html":{}}}],["course.rule",{"_index":6790,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["course.school",{"_index":23682,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.school.id",{"_index":4754,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["course.service",{"_index":5031,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.students.contains(user",{"_index":17670,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.students.length",{"_index":9692,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.students.loaditems",{"_index":9698,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.substitutionteachers.contains(user",{"_index":17668,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.substitutionteachers.loaditems",{"_index":9700,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["course.teachers",{"_index":5082,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.teachers.contains(user",{"_index":17669,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.teachers.loaditems",{"_index":9699,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursecolumnboardtargets",{"_index":17734,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursecontroller",{"_index":6603,"title":{"controllers/CourseController.html":{}},"body":{"controllers/CourseController.html":{},"modules/LearnroomApiModule.html":{}}}],["coursecopy",{"_index":6654,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.copyingsince",{"_index":6682,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.name",{"_index":6693,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyparams",{"_index":6651,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyservice",{"_index":6640,"title":{"injectables/CourseCopyService.html":{}},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenUC.html":{}}}],["coursecopyuc",{"_index":6695,"title":{"injectables/CourseCopyUC.html":{}},"body":{"injectables/CourseCopyUC.html":{},"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["courseexportservice",{"_index":6716,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["courseexportuc",{"_index":6619,"title":{"injectables/CourseExportUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomApiModule.html":{}}}],["coursefactory",{"_index":6723,"title":{"classes/CourseFactory.html":{}},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.build",{"_index":6773,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.define(course",{"_index":6744,"title":{},"body":{"classes/CourseFactory.html":{}}}],["coursefeatures",{"_index":6490,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["coursegroup",{"_index":6518,"title":{"entities/CourseGroup.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.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":{},"classes/UsersList.html":{}}}],["coursegroup.course",{"_index":14222,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["coursegroup.entity",{"_index":6519,"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":{},"classes/UsersList.html":{}}}],["coursegroup.removestudent(userid",{"_index":6806,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupfactory",{"_index":6768,"title":{"classes/CourseGroupFactory.html":{}},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupfactory.define(coursegroup",{"_index":6772,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupid",{"_index":11883,"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":12295,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["coursegrouppermission",{"_index":14234,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouppermission(user",{"_index":14240,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouprepo",{"_index":1929,"title":{"injectables/CourseGroupRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["coursegrouprule",{"_index":1888,"title":{"injectables/CourseGroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{}}}],["coursegroups",{"_index":6471,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["coursegroups.foreach((coursegroup",{"_index":6805,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupservice",{"_index":6794,"title":{"injectables/CourseGroupService.html":{}},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupsexist",{"_index":6688,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursegroupsofuser",{"_index":19166,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["courseid",{"_index":2633,"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":{},"injectables/FeathersRosterService.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["courseids",{"_index":6778,"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":17731,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursemapper",{"_index":6623,"title":{"classes/CourseMapper.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMapper.html":{}}}],["coursemapper.maptometadataresponse(course",{"_index":6630,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadata",{"_index":6813,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.copyingsince",{"_index":6821,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.displaycolor",{"_index":6818,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.id",{"_index":6815,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.shorttitle",{"_index":6817,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.startdate",{"_index":6819,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.title",{"_index":6816,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.untildate",{"_index":6820,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadatalistresponse",{"_index":6622,"title":{"classes/CourseMetadataListResponse.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursemetadatalistresponse(courseresponses",{"_index":6631,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadataresponse",{"_index":6812,"title":{"classes/CourseMetadataResponse.html":{}},"body":{"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursename",{"_index":3451,"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":6844,"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":6877,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["coursepermission",{"_index":14235,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursepermission(user",{"_index":14242,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursequeryparams",{"_index":6608,"title":{"classes/CourseQueryParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseQueryParams.html":{}}}],["coursereference",{"_index":4794,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/RoomsService.html":{}}}],["courserepo",{"_index":1930,"title":{"injectables/CourseRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.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":6628,"title":{},"body":{"controllers/CourseController.html":{}}}],["courserule",{"_index":1889,"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":4748,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/DashboardUc.html":{},"injectables/FeathersRosterService.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["courses.filter((c",{"_index":19971,"title":{},"body":{"injectables/TaskUC.html":{}}}],["courses.foreach((course",{"_index":6966,"title":{},"body":{"injectables/CourseService.html":{}}}],["courses.map((course",{"_index":6629,"title":{},"body":{"controllers/CourseController.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["courses.map(async",{"_index":9724,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursescope",{"_index":6913,"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":{},"injectables/FeathersRosterService.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["coursestatus",{"_index":6675,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursetasks",{"_index":17733,"title":{},"body":{"injectables/RoomsService.html":{}}}],["courseuc",{"_index":6617,"title":{"injectables/CourseUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"modules/LearnroomApiModule.html":{}}}],["courseurlparams",{"_index":6607,"title":{"classes/CourseUrlParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseUrlParams.html":{}}}],["court",{"_index":22760,"title":{},"body":{"license.html":{}}}],["courts",{"_index":22825,"title":{},"body":{"license.html":{}}}],["covenant",{"_index":22722,"title":{},"body":{"license.html":{}}}],["cover",{"_index":23303,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["coverage",{"_index":1126,"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":22352,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["cp",{"_index":23566,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cr",{"_index":13418,"title":{},"body":{"injectables/KeycloakConfigurationService.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":14974,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["create(config",{"_index":2253,"title":{},"body":{"injectables/BBBService.html":{}}}],["create(context",{"_index":4788,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["create(currentuser",{"_index":14950,"title":{},"body":{"controllers/NewsController.html":{}}}],["create(currentuserid",{"_index":21786,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create(data",{"_index":9740,"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":4094,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["create(path",{"_index":17834,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["create(userid",{"_index":15151,"title":{},"body":{"injectables/NewsUc.html":{},"injectables/SubmissionItemService.html":{}}}],["create.config.ts",{"_index":2068,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:23",{"_index":2087,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:25",{"_index":2081,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:27",{"_index":2085,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:29",{"_index":2083,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:31",{"_index":2088,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:33",{"_index":2082,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:35",{"_index":2086,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:37",{"_index":2080,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:39",{"_index":2084,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:9",{"_index":2079,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.params.ts",{"_index":8616,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:14",{"_index":21762,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:16",{"_index":19676,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:17",{"_index":8624,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:19",{"_index":21770,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:21",{"_index":14587,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:22",{"_index":8627,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:25",{"_index":15531,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{}}}],["create.params.ts:26",{"_index":14586,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:27",{"_index":8623,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:30",{"_index":14583,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:33",{"_index":19681,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:34",{"_index":14585,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:35",{"_index":15530,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:38",{"_index":14581,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:39",{"_index":15529,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:41",{"_index":19678,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:43",{"_index":15533,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:48",{"_index":8621,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:49",{"_index":19674,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:55",{"_index":8626,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:57",{"_index":19680,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:59",{"_index":8622,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:63",{"_index":8625,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:9",{"_index":21761,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.response.ts",{"_index":2155,"title":{},"body":{"interfaces/BBBCreateResponse.html":{}}}],["create.uc.ts",{"_index":21778,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:19",{"_index":21785,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:26",{"_index":21789,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:40",{"_index":21787,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:67",{"_index":21792,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:88",{"_index":21796,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:92",{"_index":21794,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create_tokens_for_users=true",{"_index":23589,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["createaccount",{"_index":12678,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createaccount(account",{"_index":12687,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createandjoin",{"_index":21837,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandjoin(currentuser",{"_index":21838,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandstartprometheusmetricsappifenabled",{"_index":16803,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createapiresponsetimemetricmiddleware",{"_index":16781,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["createauthenticationcodegranttokenrequestpayload",{"_index":20281,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createauthenticationcodegranttokenrequestpayload(clientid",{"_index":20283,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createboard",{"_index":3479,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboard(courseid",{"_index":3485,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboardelementfor(boardelementtarget",{"_index":2708,"title":{},"body":{"entities/Board.html":{}}}],["createboardforcourse",{"_index":3661,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createboardforcourse(courseid",{"_index":3665,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createbucket",{"_index":17824,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createbucketcommand",{"_index":17849,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createcard",{"_index":4910,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcard(urlparams",{"_index":4914,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcardbodyparams",{"_index":4916,"title":{"classes/CreateCardBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["createcardbodyparams})@post(':columnid/cards",{"_index":4920,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcards",{"_index":3505,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcards(amount",{"_index":3513,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createclient",{"_index":7939,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["createclient(storageprovider",{"_index":7947,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["createcollection",{"_index":7867,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcollection(collectionname",{"_index":7877,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcolumn",{"_index":2893,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumn(urlparams",{"_index":2898,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumns",{"_index":3506,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcolumns(amount",{"_index":3515,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createconfigmoduleoptions",{"_index":10592,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["createcontentelementbodyparams",{"_index":3975,"title":{"classes/CreateContentElementBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CreateContentElementBodyParams.html":{}}}],["createcontextexternaltool",{"_index":6050,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(currentuser",{"_index":20386,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(userid",{"_index":6059,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["createcourse",{"_index":6895,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["createcourse(course",{"_index":6899,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["createcourse(userid",{"_index":23686,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["created",{"_index":2412,"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":21729,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["created.id",{"_index":2415,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["createdaccountid",{"_index":13677,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdaccountid.id",{"_index":13679,"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":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"entities/FederalStateEntity.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/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/LinkElementResponseMapper.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["createdat.$date",{"_index":11778,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createdate",{"_index":2156,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createddate",{"_index":756,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createdir",{"_index":10278,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdir(folderpath",{"_index":10287,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdmodel",{"_index":7697,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["createdschoolexternaltool",{"_index":18217,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["createdschoolexternaltooldo",{"_index":20746,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createdto",{"_index":8149,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createdto(undefined",{"_index":17588,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["createdtool",{"_index":6084,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createelement",{"_index":3967,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["createelement(urlparams",{"_index":3973,"title":{},"body":{"controllers/CardController.html":{}}}],["createelement(userid",{"_index":4156,"title":{},"body":{"injectables/CardUc.html":{}}}],["createelements",{"_index":3507,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createelements(amount",{"_index":3517,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createemptyelements",{"_index":4090,"title":{},"body":{"injectables/CardService.html":{}}}],["createemptyelements(card",{"_index":4098,"title":{},"body":{"injectables/CardService.html":{}}}],["createentity",{"_index":2345,"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":2360,"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":10795,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorloggable(error",{"_index":10806,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse",{"_index":10796,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse(error",{"_index":10808,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror",{"_index":10797,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror(error",{"_index":10810,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror",{"_index":10798,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror(error",{"_index":10812,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception",{"_index":10799,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception(exception",{"_index":10814,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforunknownerror",{"_index":10800,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createetherpad",{"_index":8402,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createetherpad(userid",{"_index":8406,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createexternaltool",{"_index":9274,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["createexternaltool(currentuser",{"_index":20432,"title":{},"body":{"controllers/ToolController.html":{}}}],["createexternaltool(externaltool",{"_index":9289,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["createexternaltool(userid",{"_index":9394,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["createfile",{"_index":20234,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileresponse",{"_index":20235,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileurlreplacements",{"_index":6295,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createfileurlreplacements(filedtos",{"_index":6302,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createflowrequest",{"_index":13396,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["creategridelement",{"_index":7642,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategridelement(elementwithposition",{"_index":7653,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategroup(name",{"_index":1247,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createhttpexceptionoptions",{"_index":8383,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createhttpexceptionoptions(error",{"_index":8387,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createidentifier",{"_index":5032,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["createidentifier(content._id",{"_index":5063,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(courseid",{"_index":5035,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lesson.id",{"_index":5048,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lessonid)}/${createidentifier(content._id)}.html",{"_index":5065,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(task.id",{"_index":5091,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentityprovider",{"_index":13323,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidentityprovider(oidcconfig",{"_index":13342,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper",{"_index":13324,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper(idpalias",{"_index":13345,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidtoken",{"_index":12623,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createidtoken(userid",{"_index":12630,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createifnotrunning",{"_index":21779,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createifnotrunning(currentuserid",{"_index":21788,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createiframesubject",{"_index":12624,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createiframesubject(user",{"_index":12632,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createinstance(targetmodel",{"_index":6875,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["createjwt",{"_index":13182,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["createjwt(params",{"_index":7009,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtparams",{"_index":6990,"title":{"interfaces/CreateJwtParams.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtpayload",{"_index":1719,"title":{"interfaces/CreateJwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/JwtPayload.html":{},"injectables/LoginUc.html":{}}}],["createlaunchdata",{"_index":122,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchdata(userid",{"_index":171,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest",{"_index":123,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdata",{"_index":173,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdatado",{"_index":12578,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["createlesson",{"_index":14210,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(lesson",{"_index":14212,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(userid",{"_index":23690,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createlogmessageforvalidationerrors",{"_index":8278,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createlogmessageforvalidationerrors(error",{"_index":8285,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createmessage",{"_index":13872,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessage(message",{"_index":13876,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessagewithcontext",{"_index":14450,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmessagewithcontext(loggable",{"_index":14453,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmikroormmodule",{"_index":14894,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["createmock",{"_index":20216,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["createnewaccount",{"_index":16343,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["createnewentityfromdo",{"_index":2346,"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":2363,"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":21243,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewmigration(school",{"_index":21251,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewsparams",{"_index":7031,"title":{"classes/CreateNewsParams.html":{}},"body":{"classes/CreateNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["createnexboard",{"_index":15218,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createnexboard(userid",{"_index":15220,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createoauth2client",{"_index":15776,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["createoauth2client(currentuser",{"_index":15783,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["createoauth2client(data",{"_index":16045,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["createorupdate",{"_index":8934,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdate(domainobject",{"_index":8943,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdateboardnode",{"_index":17241,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateboardnode(boardnode",{"_index":17245,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateidmaccount",{"_index":13652,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdateidmaccount(account",{"_index":13654,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createpath",{"_index":16592,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpath(schoolid",{"_index":16596,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewdirectorypath",{"_index":16711,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewdirectorypath(filerecord.getschoolid",{"_index":16718,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewfilepath",{"_index":16593,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewfilepath(schoolid",{"_index":16599,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash",{"_index":16594,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createpreviewnamehash(id",{"_index":16598,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["createprometheusmetricsapp",{"_index":16782,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createprometheusmetricsapp(route",{"_index":16811,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createqueryordermap",{"_index":20886,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createqueryordermap(sort",{"_index":20888,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createredisidentifierfromjwtdata",{"_index":13204,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createredisidentifierfromjwtdata(accountid",{"_index":13210,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createrequest",{"_index":10615,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrequest(event",{"_index":10625,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["createrichtextelement",{"_index":4784,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createrichtextelement(text",{"_index":4790,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creates",{"_index":2255,"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":17925,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["creates3clientadapter(config",{"_index":17929,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["createschoolbysuperhero(userid",{"_index":23671,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createschoolexternaltool",{"_index":18222,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(currentuser",{"_index":20713,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(userid",{"_index":18228,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["createsharetoken",{"_index":18621,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["createsharetoken(currentuser",{"_index":18624,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["createsharetoken(userid",{"_index":18806,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["createstudentstatusforuser(user",{"_index":12534,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createsubmissionitem",{"_index":8192,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["createsubmissionitem(urlparams",{"_index":8194,"title":{},"body":{"controllers/ElementController.html":{}}}],["createsubmissionitem(userid",{"_index":8232,"title":{},"body":{"injectables/ElementUc.html":{}}}],["createsubmissionitembodyparams",{"_index":7054,"title":{"classes/CreateSubmissionItemBodyParams.html":{}},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{}}}],["createsubmissionitembodyparams})@post(':contentelementid/submissions",{"_index":8197,"title":{},"body":{"controllers/ElementController.html":{}}}],["createtask",{"_index":19741,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtask(task",{"_index":19746,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtaskstatus",{"_index":8059,"title":{},"body":{"classes/DtoCreator.html":{}}}],["createtaskstatus(task",{"_index":8076,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createteacherstatusforuser(user",{"_index":12525,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createteam",{"_index":4521,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createteam(team",{"_index":4530,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createtestingmodule",{"_index":23414,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["createtime",{"_index":2157,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createtmpdir",{"_index":10279,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtmpdir(dirnameprefix",{"_index":10291,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtoken",{"_index":18757,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createtoken(payload",{"_index":18765,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createuser(email",{"_index":1253,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createuserbyadmin(userid",{"_index":23674,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createusermigrationdto",{"_index":21402,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusermigrationdto(urlpath",{"_index":21406,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusersearchindex",{"_index":11787,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createusertoken(userid",{"_index":1217,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createwelcomecolumnboard",{"_index":4785,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createwelcomecolumnboard(coursereference",{"_index":4792,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creating",{"_index":7034,"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":3502,"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":5038,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["creator",{"_index":6854,"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":9884,"title":{},"body":{"entities/FileEntity.html":{}}}],["creatorid",{"_index":6216,"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/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{}}}],["credential",{"_index":13584,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["credentialdata",{"_index":13671,"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":7995,"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":8329,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["crit(loggable",{"_index":8335,"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":22388,"title":{},"body":{"license.html":{}}}],["cross",{"_index":6432,"title":{},"body":{"modules/CoreModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["crossing",{"_index":23233,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["crud",{"_index":2451,"title":{},"body":{"classes/BaseDomainObject.html":{},"controllers/CollaborativeStorageController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["crud.uc",{"_index":15893,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crud.uc.ts",{"_index":15774,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:15",{"_index":15794,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:22",{"_index":15790,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:41",{"_index":15788,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:50",{"_index":15784,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:59",{"_index":15792,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:72",{"_index":15786,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:9",{"_index":15782,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crudoperation",{"_index":14994,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["cruduc",{"_index":15900,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crypto",{"_index":1738,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BBBService.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"dependencies.html":{}}}],["crypto.createhash('sha1",{"_index":2329,"title":{},"body":{"injectables/BBBService.html":{}}}],["crypto.generatekeypairsync('rsa",{"_index":6999,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["cryptojs",{"_index":14557,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(data",{"_index":19269,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(value",{"_index":18938,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.aes.encrypt(data",{"_index":19268,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.encrypt(value",{"_index":18935,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.hmacsha1(base_string",{"_index":14567,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["cryptojs.sha256(saveduser.id",{"_index":16358,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["ctl",{"_index":9631,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["ctltoolstabenabled",{"_index":12565,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["cumbersome",{"_index":2467,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["cure",{"_index":22658,"title":{},"body":{"license.html":{}}}],["curl",{"_index":13640,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currenlty",{"_index":17676,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["current",{"_index":4618,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"controllers/GroupController.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":18446,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["currentdatetime",{"_index":11691,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["currentldapid",{"_index":13130,"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":11454,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{}}}],["currentrooms",{"_index":7517,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentrooms.foreach((room",{"_index":7519,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentteacher",{"_index":5088,"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":{},"classes/CurrentUserMapper.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.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":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.accountid",{"_index":7087,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.impersonated",{"_index":7091,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.isexternaluser",{"_index":7092,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.roles",{"_index":7089,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["currentuser.schoolid",{"_index":7088,"title":{},"body":{"classes/CurrentUserMapper.html":{},"controllers/GroupController.html":{},"controllers/NewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.systemid",{"_index":7090,"title":{},"body":{"classes/CurrentUserMapper.html":{},"controllers/OauthSSOController.html":{}}}],["currentuser.userid",{"_index":3743,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CourseController.html":{},"classes/CurrentUserMapper.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/GroupController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuserid",{"_index":4671,"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":7062,"title":{"classes/CurrentUserMapper.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserService.html":{}}}],["currentusermapper.jwttoicurrentuser(payload",{"_index":13180,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["currentusermapper.mapcurrentusertocreatejwtpayload(userinfo",{"_index":14547,"title":{},"body":{"injectables/LoginUc.html":{}}}],["currentusermapper.maptooauthcurrentuser",{"_index":15516,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["currentusermapper.maptooauthcurrentuser(account.id",{"_index":21611,"title":{},"body":{"injectables/UserService.html":{}}}],["currentusermapper.usertoicurrentuser(account.id",{"_index":13823,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["currentyear",{"_index":12206,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["custom",{"_index":1431,"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":23266,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["customarily",{"_index":22516,"title":{},"body":{"license.html":{}}}],["customary",{"_index":22775,"title":{},"body":{"license.html":{}}}],["customer",{"_index":22521,"title":{},"body":{"license.html":{}}}],["customfields",{"_index":1171,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["customizations",{"_index":18580,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["customizing",{"_index":6435,"title":{},"body":{"modules/CoreModule.html":{}}}],["customkey",{"_index":18925,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["customltiproperty",{"_index":7101,"title":{"interfaces/CustomLtiProperty.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["customltipropertydo",{"_index":7174,"title":{"classes/CustomLtiPropertyDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["customltipropertydo('key",{"_index":14676,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["customparam",{"_index":7313,"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":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter.default",{"_index":328,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regex",{"_index":8913,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regexcomment",{"_index":8914,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.scope",{"_index":327,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some",{"_index":8905,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some((item",{"_index":8903,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.type",{"_index":308,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameter.type}/${contextexternaltool.contextref.type",{"_index":320,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdo.default",{"_index":9247,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.description",{"_index":9246,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.displayname",{"_index":9245,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.isoptional",{"_index":9253,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.name",{"_index":9244,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regex",{"_index":9248,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regexcomment",{"_index":9249,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdos",{"_index":135,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["customparameterdos.filter",{"_index":289,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdto",{"_index":9130,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterentity",{"_index":7230,"title":{"classes/CustomParameterEntity.html":{}},"body":{"classes/CustomParameterEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["customparameterentityfactory",{"_index":8714,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentityfactory.build",{"_index":8721,"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/OAuth2ToolLaunchStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterentryentity",{"_index":5776,"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":5827,"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":5937,"title":{"classes/CustomParameterEntryResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterfactory",{"_index":7261,"title":{"classes/CustomParameterFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.buildlist(number",{"_index":7314,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.define(customparameter",{"_index":7304,"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/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.body",{"_index":7306,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.path",{"_index":8717,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.query",{"_index":9161,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocationparams",{"_index":7332,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.body",{"_index":9162,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.path",{"_index":9159,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.query",{"_index":9160,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterparam",{"_index":5971,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparam.defaultvalue",{"_index":9197,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.description",{"_index":9196,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.displayname",{"_index":9195,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.isoptional",{"_index":9203,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.name",{"_index":5927,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparam.regex",{"_index":9198,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.regexcomment",{"_index":9199,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.value",{"_index":5928,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams",{"_index":5918,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams.map",{"_index":5970,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparams.map((customparameterparam",{"_index":5926,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterpostparams",{"_index":7322,"title":{"classes/CustomParameterPostParams.html":{}},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["customparameterresponse",{"_index":5743,"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":9099,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["customparameters.map((customparameterdo",{"_index":9243,"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":7338,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.context",{"_index":9157,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.global",{"_index":9155,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.school",{"_index":9156,"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":321,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.boolean",{"_index":324,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.number",{"_index":325,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.string",{"_index":326,"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":7341,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextid",{"_index":9167,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextname",{"_index":9168,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolid",{"_index":9169,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolnumber",{"_index":9170,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.boolean",{"_index":9165,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.number",{"_index":9166,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.string",{"_index":9164,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customproviderclass.name",{"_index":13887,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["customs",{"_index":7123,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["customtoparameterlocationmapping",{"_index":20532,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["customtoparameterlocationmapping[location",{"_index":20539,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["cycle",{"_index":3585,"title":{},"body":{"modules/BoardModule.html":{}}}],["cycles",{"_index":1735,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["d",{"_index":6375,"title":{},"body":{"injectables/CopyHelperService.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["damages",{"_index":22808,"title":{},"body":{"license.html":{}}}],["das",{"_index":4822,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["dash",{"_index":22241,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dashboard",{"_index":7363,"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":7782,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.getid",{"_index":7617,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboard.getuserid",{"_index":7784,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.model.mapper",{"_index":7739,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboard.moveelement(from",{"_index":7781,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.setlearnrooms(courses",{"_index":7777,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard_repo",{"_index":13862,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardcontroller",{"_index":7361,"title":{"controllers/DashboardController.html":{}},"body":{"controllers/DashboardController.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardelement",{"_index":7561,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardentity",{"_index":7395,"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":7690,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["dashboardentity(new",{"_index":7742,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardgridelementmodel",{"_index":7548,"title":{"entities/DashboardGridElementModel.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementmodelproperties",{"_index":7559,"title":{"interfaces/DashboardGridElementModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementresponse",{"_index":7580,"title":{"classes/DashboardGridElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse",{"_index":7588,"title":{"classes/DashboardGridSubElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse(metadata",{"_index":7636,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardid",{"_index":7386,"title":{},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{}}}],["dashboardmapper",{"_index":7376,"title":{"classes/DashboardMapper.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{}}}],["dashboardmapper.mapgridelement(elementwithposition",{"_index":7619,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maplearnroom(groupmetadata",{"_index":7635,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maptoresponse(dashboard",{"_index":7385,"title":{},"body":{"controllers/DashboardController.html":{}}}],["dashboardmodel",{"_index":7750,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelentity",{"_index":7560,"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":7640,"title":{"injectables/DashboardModelMapper.html":{}},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardprops",{"_index":7412,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["dashboardrepo",{"_index":7725,"title":{"injectables/DashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardresponse",{"_index":7380,"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":7378,"title":{"injectables/DashboardUc.html":{}},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardurl",{"_index":15457,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["dashboardurl.tostring",{"_index":15465,"title":{},"body":{"injectables/OAuthService.html":{}}}],["dashboardurlparams",{"_index":7367,"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":{},"modules/AuthorizationReferenceModule.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/ClassInfoSearchListResponse.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/FeathersRosterService.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":{},"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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"controllers/LoginController.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PreviewActionsLoggable.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.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":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/TooManyPseudonymsLoggableException.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":{},"interfaces/UserData.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":1474,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.body",{"_index":17866,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentlength",{"_index":17869,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentrange",{"_index":17870,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents.map((p",{"_index":17907,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents?.length",{"_index":17906,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contenttype",{"_index":17868,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.dto.ts",{"_index":15694,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:11",{"_index":15697,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:13",{"_index":15696,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:7",{"_index":15700,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:9",{"_index":15698,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.etag",{"_index":17871,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.externalgroups",{"_index":16415,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalgroups.map((externalgroup",{"_index":16417,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalschool",{"_index":16226,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.externalid",{"_index":16229,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.officialschoolnumber",{"_index":16230,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool?.officialschoolnumber",{"_index":15435,"title":{},"body":{"injectables/OAuthService.html":{}}}],["data.externaluser",{"_index":16412,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externaluser.externalid",{"_index":15434,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externaluser?.externalid",{"_index":13125,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["data.gridelement.getcontent",{"_index":7621,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.id",{"_index":6178,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.mountsdescription",{"_index":1476,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.name",{"_index":6181,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.port",{"_index":1472,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.pos",{"_index":7622,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.response",{"_index":19253,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["data.response.ts",{"_index":20952,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:11",{"_index":20954,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:14",{"_index":20955,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:17",{"_index":20956,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:3",{"_index":20953,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.result.ogdescription",{"_index":16439,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["data.result.ogimage",{"_index":16440,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["data.result.ogtitle",{"_index":16438,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["data.sourceid",{"_index":6180,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.system.systemid",{"_index":16410,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.ts",{"_index":16815,"title":{},"body":{"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["data.ts:11",{"_index":20509,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:4",{"_index":16817,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:5",{"_index":20510,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:6",{"_index":16818,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:7",{"_index":20513,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:8",{"_index":16816,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:9",{"_index":20511,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data/generateseeddata",{"_index":11672,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["database",{"_index":1948,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/DatabaseManagementConsole.html":{},"modules/DatabaseManagementModule.html":{},"interfaces/GlobalConstants.html":{},"interfaces/ICleanOptions.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":10608,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["database.module.ts",{"_index":14886,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:31",{"_index":14887,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:42",{"_index":14889,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/mongo",{"_index":14885,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/types",{"_index":10652,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["databasemanagementconsole",{"_index":7787,"title":{"classes/DatabaseManagementConsole.html":{}},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["databasemanagementcontroller",{"_index":7826,"title":{"controllers/DatabaseManagementController.html":{}},"body":{"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementmodule",{"_index":7856,"title":{"modules/DatabaseManagementModule.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["databasemanagementservice",{"_index":7860,"title":{"injectables/DatabaseManagementService.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementuc",{"_index":7792,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["dataformats",{"_index":23464,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["datamodel",{"_index":23123,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["datawithdefaults",{"_index":15802,"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/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":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/FederalStateEntity.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/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/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/LinkContentBody.html":{},"classes/LinkElementContentBody.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/RecursiveCopyVisitor.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/SchoolYearEntity.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/SystemEntity.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"license.html":{}}}],["date().gettime",{"_index":1761,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["date(2020",{"_index":13997,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["date(date.now",{"_index":6741,"title":{},"body":{"classes/CourseFactory.html":{},"classes/FileRecordFactory.html":{},"controllers/OauthSSOController.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"injectables/UserLoginMigrationService.html":{}}}],["date(now.gettime",{"_index":21283,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["date(user.createdtimestamp",{"_index":13620,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["date.now",{"_index":4508,"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":18848,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["days",{"_index":7922,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"license.html":{}}}],["dayssincedeletion",{"_index":7925,"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":{}}}],["db.service.ts",{"_index":1046,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:13",{"_index":1049,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:134",{"_index":1060,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:142",{"_index":1053,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db_password",{"_index":10589,"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":10590,"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":10591,"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":12695,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["dbcaccountid",{"_index":13579,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcaccountid:${accountdbcaccountid",{"_index":13595,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbcsystemid",{"_index":13581,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid",{"_index":13580,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid:${accountdbcuserid",{"_index":13599,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbildungscloud",{"_index":22857,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["dbname",{"_index":14891,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["dd",{"_index":14445,"title":{},"body":{"modules/LoggerModule.html":{}}}],["de",{"_index":7299,"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":23125,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["debug",{"_index":5460,"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":{},"injectables/OpenGraphProxyService.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":14412,"title":{},"body":{"injectables/Logger.html":{}}}],["debug(message",{"_index":12081,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["debugger",{"_index":22232,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["debugging",{"_index":10610,"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":{}}}],["debugmode",{"_index":1320,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["december",{"_index":22456,"title":{},"body":{"license.html":{}}}],["decide",{"_index":4662,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"todo.html":{}}}],["decides",{"_index":13359,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["decisions",{"_index":23090,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":17082,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["declared",{"_index":3847,"title":{},"body":{"classes/BusinessError.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declining",{"_index":22624,"title":{},"body":{"license.html":{}}}],["decodedjwt",{"_index":1755,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/OAuthService.html":{}}}],["decodedjwt.accountid",{"_index":1758,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodedjwt.jti",{"_index":1757,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodehtmlentities",{"_index":2745,"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":{}}}],["decodehtmlentities()@apiproperty({description",{"_index":7594,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["decorated",{"_index":10869,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["decorator",{"_index":8313,"title":{},"body":{"classes/ErrorLoggable.html":{},"controllers/LoginController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.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/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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.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/ExternalSourceResponse.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"classes/ExternalToolElementResponse.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/FederalStateEntity.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":{},"controllers/GroupController.html":{},"entities/GroupEntity.html":{},"classes/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"classes/LinkElementResponse.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":{},"classes/OauthLoginResponse.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":{},"injectables/PreviewGeneratorConsumer.html":{},"classes/PreviewParams.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.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/SchoolYearEntity.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"controllers/SystemController.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"controllers/ToolReferenceController.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":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.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":23462,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["decrypt",{"_index":11949,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decrypt(data",{"_index":11951,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decryptedclientsecret",{"_index":15482,"title":{},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["decryptedstring",{"_index":18937,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["deemed",{"_index":22444,"title":{},"body":{"license.html":{}}}],["deepmocked",{"_index":23403,"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":319,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.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":{},"classes/ClassSortParams.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":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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":{},"classes/KeycloakSeedService.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PaginationParams.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"classes/RecursiveCopyVisitor.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/UsersList.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.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":6529,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.color",{"_index":6482,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.description",{"_index":6488,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.name",{"_index":6495,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["default.schema.json",{"_index":22932,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["default_errorcode",{"_index":15341,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["default_language",{"_index":11806,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["default_message",{"_index":15342,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["defaultclientinternalid",{"_index":13337,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultcolumns",{"_index":7452,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["defaultconfig",{"_index":11970,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["defaultencryptionservice",{"_index":8259,"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":11594,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultmapper",{"_index":13440,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper.id",{"_index":13466,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper?.id",{"_index":13443,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmessage",{"_index":1416,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["defaultmikroormoptions",{"_index":10604,"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":15775,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["defaultoptions",{"_index":14901,"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":16285,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["defaultscopes",{"_index":12420,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["defaultsecretreplacementhinttext",{"_index":11676,"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":7325,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultvideoconferenceoptions",{"_index":21772,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everyattendeejoinsmuted",{"_index":21773,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everybodyjoinsasmoderator",{"_index":21774,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.moderatormustapprovejoinrequests",{"_index":21775,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defective",{"_index":22801,"title":{},"body":{"license.html":{}}}],["defending",{"_index":22311,"title":{},"body":{"license.html":{}}}],["defenses",{"_index":22757,"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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"classes/GroupIdParams.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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/UsersList.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":{},"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":22968,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["defining",{"_index":2476,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definition",{"_index":1422,"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":11784,"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":11612,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["delay(ms",{"_index":13509,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["delete",{"_index":10,"title":{},"body":{"classes/AbstractAccountService.html":{},"controllers/AccountController.html":{},"injectables/AccountRepo.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":{},"interfaces/ICleanOptions.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacySchoolRepo.html":{},"controllers/LessonController.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/RecursiveDeleteVisitor.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":2952,"title":{},"body":{"controllers/BoardController.html":{}}}],["delete(':cardid",{"_index":4034,"title":{},"body":{"controllers/CardController.html":{}}}],["delete(':columnid",{"_index":4942,"title":{},"body":{"controllers/ColumnController.html":{}}}],["delete(':contentelementid",{"_index":8222,"title":{},"body":{"controllers/ElementController.html":{}}}],["delete(':contextexternaltoolid",{"_index":20415,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20392,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':externaltoolid",{"_index":20480,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':externaltoolid')@apiforbiddenresponse({description",{"_index":20437,"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":12756,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["delete(':lessonid",{"_index":14140,"title":{},"body":{"controllers/LessonController.html":{}}}],["delete(':newsid",{"_index":14953,"title":{},"body":{"controllers/NewsController.html":{}}}],["delete(':schoolexternaltoolid",{"_index":20744,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20717,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':scope/:scopeid",{"_index":21868,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':scope/:scopeid')@apioperation({summary",{"_index":21842,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':submissionid",{"_index":19001,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["delete(':taskid",{"_index":19549,"title":{},"body":{"controllers/TaskController.html":{}}}],["delete('auth/sessions/consent",{"_index":15942,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete('clients/:id",{"_index":15915,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete(@param",{"_index":14144,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(board",{"_index":4795,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["delete(card",{"_index":4100,"title":{},"body":{"injectables/CardService.html":{}}}],["delete(column",{"_index":4968,"title":{},"body":{"injectables/ColumnService.html":{}}}],["delete(domainobject",{"_index":2438,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{}}}],["delete(domainobjects",{"_index":2365,"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":5597,"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":11170,"title":{},"body":{"injectables/GroupService.html":{}}}],["delete(id",{"_index":25,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/NewsUc.html":{}}}],["delete(path",{"_index":1663,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(paths",{"_index":17837,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["delete(submission",{"_index":19205,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["delete(subpath",{"_index":1661,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(task",{"_index":19916,"title":{},"body":{"injectables/TaskService.html":{}}}],["delete(urlparams",{"_index":14138,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(userid",{"_index":14301,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{}}}],["delete.vistor",{"_index":3344,"title":{},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{}}}],["delete.vistor.ts",{"_index":17199,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:20",{"_index":17202,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:26",{"_index":17209,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:31",{"_index":17208,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:36",{"_index":17205,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:41",{"_index":17211,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:48",{"_index":17212,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:54",{"_index":17213,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:59",{"_index":17214,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:64",{"_index":17215,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:69",{"_index":17210,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:76",{"_index":17204,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:80",{"_index":17207,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete_files_of_parent",{"_index":11922,"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":12691,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["deleteaccountbyid(currentuser",{"_index":490,"title":{},"body":{"controllers/AccountController.html":{}}}],["deleteaccountbyid(id",{"_index":13554,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteboard",{"_index":2894,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(@param",{"_index":2953,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(urlparams",{"_index":2909,"title":{},"body":{"controllers/BoardController.html":{}}}],["deletebyexternaltoolid",{"_index":18119,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyexternaltoolid(toolid",{"_index":18125,"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":2369,"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":6021,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":6027,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolids",{"_index":5841,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":5849,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyuserid",{"_index":11,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletebyuserid(userid",{"_index":37,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletecard",{"_index":3968,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(@param",{"_index":4035,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(urlparams",{"_index":3985,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecolumn",{"_index":4911,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(@param",{"_index":4943,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(urlparams",{"_index":4922,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecontextexternaltool",{"_index":6022,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(contextexternaltool",{"_index":6029,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletecontextexternaltool(currentuser",{"_index":20391,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(userid",{"_index":6061,"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":9876,"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":7899,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["deletedexternaltoolpseudonyms",{"_index":17019,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedfoldername",{"_index":17822,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedid",{"_index":14988,"title":{},"body":{"controllers/NewsController.html":{}}}],["deletedirectory",{"_index":17825,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedirectory(path",{"_index":17839,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedpseudonyms",{"_index":17018,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedsince",{"_index":6218,"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":{}}}],["deletedusernumber",{"_index":21553,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deletedusers",{"_index":13708,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["deleteelement",{"_index":4147,"title":{},"body":{"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["deleteelement(urlparams",{"_index":8199,"title":{},"body":{"controllers/ElementController.html":{}}}],["deleteelement(userid",{"_index":4158,"title":{},"body":{"injectables/CardUc.html":{}}}],["deleteentitybyid",{"_index":2347,"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":2371,"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":9275,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["deleteexternaltool(currentuser",{"_index":20436,"title":{},"body":{"controllers/ToolController.html":{}}}],["deleteexternaltool(toolid",{"_index":9291,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["deleteexternaltool(userid",{"_index":9396,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["deleteexternaltoolpseudonymsbyuserid",{"_index":16980,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deleteexternaltoolpseudonymsbyuserid(userid",{"_index":16991,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletefile",{"_index":7940,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefile(file",{"_index":7952,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage",{"_index":7941,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage(file",{"_index":7955,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefilesconsole",{"_index":7911,"title":{"classes/DeleteFilesConsole.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{}}}],["deletefilesofparent",{"_index":10429,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent(@rabbitpayload",{"_index":10528,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["deletefilesofparent(parentid",{"_index":10436,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["deletefilesofparent(payload",{"_index":10505,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:finished",{"_index":10641,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:started",{"_index":10639,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesuc",{"_index":7916,"title":{"injectables/DeleteFilesUc.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["deletegroup(groupname",{"_index":1251,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteidentityprovider",{"_index":13325,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteidentityprovider(alias",{"_index":13348,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteimportusersbyschool",{"_index":12929,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deleteimportusersbyschool(school",{"_index":12933,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deletelesson",{"_index":14275,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletelesson(lesson",{"_index":14280,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletemarkedfiles",{"_index":7914,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["deletemarkedfiles(dayssincedeletion",{"_index":7918,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["deletemarkedfiles(thresholddate",{"_index":7957,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletenode",{"_index":17200,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deletenode(domainobject",{"_index":17203,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deleteoauth2client",{"_index":15777,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["deleteoauth2client(@currentuser",{"_index":15916,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(currentuser",{"_index":15785,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(id",{"_index":16047,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["deleteobjectcommand",{"_index":7960,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deleteobjects",{"_index":17892,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deleteobjectscommand",{"_index":17850,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletepreviews",{"_index":16695,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepreviews(filerecords",{"_index":16702,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepseudonymsbyuserid",{"_index":8935,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletepseudonymsbyuserid(userid",{"_index":8945,"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":18223,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(currentuser",{"_index":20716,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(userid",{"_index":18230,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["deleteschoolexternaltoolbyid",{"_index":18188,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18195,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deletesubmissions",{"_index":19914,"title":{},"body":{"injectables/TaskService.html":{}}}],["deletesubmissions(task",{"_index":19918,"title":{},"body":{"injectables/TaskService.html":{}}}],["deleteteam",{"_index":4522,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteteam(teamid",{"_index":4534,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteuser",{"_index":21498,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(userid",{"_index":21501,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["deleteuser(username",{"_index":1256,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteuserdatafromclasses",{"_index":4410,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromclasses(userid",{"_index":4414,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromcourse",{"_index":6954,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcourse(userid",{"_index":6957,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcoursegroup",{"_index":6796,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromcoursegroup(userid",{"_index":6800,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromlessons",{"_index":14276,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromlessons(userid",{"_index":14282,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromteams",{"_index":20122,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserdatafromteams(userid",{"_index":20126,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserloginmigration",{"_index":21244,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deleteuserloginmigration(userloginmigration",{"_index":21253,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deletevisitor",{"_index":3316,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["deletewithdescendants",{"_index":3404,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deletewithdescendants(domainobject",{"_index":3407,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deleting",{"_index":7928,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["deletion",{"_index":5339,"title":{},"body":{"modules/CommonToolModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/S3ClientAdapter.html":{}}}],["deletioncommand",{"_index":8006,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletions",{"_index":7980,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["dem",{"_index":4814,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["demand",{"_index":15319,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["denied",{"_index":22593,"title":{},"body":{"license.html":{}}}],["denominated",{"_index":22720,"title":{},"body":{"license.html":{}}}],["depend",{"_index":23074,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":1734,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/BoardModule.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependent",{"_index":23588,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["depending",{"_index":10313,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["depends",{"_index":10299,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deployment",{"_index":13636,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["deployments",{"_index":23144,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["deprecated",{"_index":102,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AuthorizationParams.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/CourseCopyUC.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":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["deprecated.controller.ts",{"_index":21836,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:106",{"_index":21843,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:46",{"_index":21841,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:86",{"_index":21845,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.response",{"_index":21850,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecated.response.ts",{"_index":8013,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:10",{"_index":21695,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:12",{"_index":21694,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:25",{"_index":8037,"title":{},"body":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["deprecated.response.ts:37",{"_index":8019,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:43",{"_index":8017,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:8",{"_index":21696,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecatedvideoconferenceinforesponse",{"_index":8010,"title":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecatedvideoconferencejoinresponse",{"_index":8029,"title":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprive",{"_index":22728,"title":{},"body":{"license.html":{}}}],["depth",{"_index":3322,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["der",{"_index":4827,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["derivecopyname",{"_index":6349,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopyname(name",{"_index":6354,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopystatus",{"_index":6296,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filecopystatus",{"_index":19603,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filedtos",{"_index":6306,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["derivecoursestatus",{"_index":6644,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivecoursestatus(originalcourse",{"_index":6653,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivestatusfromelements",{"_index":6350,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivestatusfromelements(elements",{"_index":6357,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["des",{"_index":4845,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["desc",{"_index":3654,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["descendant",{"_index":3645,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendant.path.match(`^${n.pathofchildren",{"_index":3653,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendants",{"_index":3207,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["describe",{"_index":23121,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"course",{"_index":23316,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"when",{"_index":23318,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('[method",{"_index":23347,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('createcourse",{"_index":23317,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('somefunction",{"_index":23421,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('when",{"_index":23348,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["described",{"_index":15600,"title":{},"body":{"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["describes",{"_index":2460,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"modules/FeathersModule.html":{},"injectables/FeathersRosterService.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/ICleanOptions.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"classes/OauthLoginResponse.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"injectables/OpenGraphProxyService.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":{},"controllers/PseudonymController.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/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"controllers/SystemController.html":{},"entities/SystemEntity.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":{},"controllers/ToolReferenceController.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":{},"classes/UsersList.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(value",{"_index":14330,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["description.a",{"_index":23292,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["descriptioncommit",{"_index":23494,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["descriptioninputformat",{"_index":12435,"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":13727,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["descriptions",{"_index":12539,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptive",{"_index":12014,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["deserialize",{"_index":3806,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["deserialize(bsondocuments",{"_index":3808,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["deserializes",{"_index":3810,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["design",{"_index":22859,"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":22531,"title":{},"body":{"license.html":{}}}],["designed",{"_index":22278,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["desireable",{"_index":15964,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["desired",{"_index":23346,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["destination",{"_index":6157,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["destinationcourse",{"_index":2980,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destinationcourse).then((status",{"_index":3040,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourse.id",{"_index":3065,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourseid",{"_index":6155,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["destinationexternalreference",{"_index":3064,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["destinationlesson",{"_index":19601,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destroyed",{"_index":17096,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["detail",{"_index":22783,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["detail.response",{"_index":1444,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["detail.response.ts",{"_index":21648,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detail.response.ts:1",{"_index":21650,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detailed",{"_index":23057,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["details",{"_index":1396,"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/TooManyPseudonymsLoggableException.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":11745,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["detectable",{"_index":20553,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["detectcontenttypeorthrow",{"_index":8759,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detectcontenttypeorthrow(imagebuffer",{"_index":8767,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detected",{"_index":10148,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["detection",{"_index":75,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["determine",{"_index":23054,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["determineinput",{"_index":16848,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determineinput(systemid",{"_index":16857,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determinelaunchrequestmethod",{"_index":124,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinelaunchrequestmethod(properties",{"_index":176,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinenewroomsin",{"_index":7399,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["determinenewroomsin(rooms",{"_index":7422,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["determinestatus",{"_index":18189,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinestatus(tool",{"_index":18197,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinetoolconfigurationstatus",{"_index":5346,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determinetoolconfigurationstatus(externaltool",{"_index":5348,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determining",{"_index":16546,"title":{},"body":{"classes/PatchOrderParams.html":{},"license.html":{}}}],["deubg",{"_index":23475,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["dev",{"_index":22980,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["develop",{"_index":13637,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["developer",{"_index":5464,"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":22300,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["development",{"_index":11614,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":4141,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["dfsdfsf",{"_index":22258,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["di",{"_index":23185,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dialnumber",{"_index":2158,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["dictionary",{"_index":10577,"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":23506,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["diffenrent",{"_index":22916,"title":{},"body":{"todo.html":{}}}],["differ",{"_index":22782,"title":{},"body":{"license.html":{}}}],["different",{"_index":4140,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/NewsRepo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ToolPermissionHelper.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":23643,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["differently",{"_index":22615,"title":{},"body":{"license.html":{}}}],["differs",{"_index":23336,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dir",{"_index":11685,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["direct",{"_index":13379,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["direction",{"_index":22432,"title":{},"body":{"license.html":{}}}],["directions",{"_index":22537,"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":9920,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["directory",{"_index":10289,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dirnameprefix",{"_index":10295,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["dirpath",{"_index":10335,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["disable",{"_index":1188,"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":{},"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":15446,"title":{},"body":{"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["disallow",{"_index":23646,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["disclaim",{"_index":22466,"title":{},"body":{"license.html":{}}}],["disclaimer",{"_index":22792,"title":{},"body":{"license.html":{}}}],["disclaiming",{"_index":22612,"title":{},"body":{"license.html":{}}}],["discovery",{"_index":2465,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"todo.html":{}}}],["discriminator",{"_index":8183,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["discriminatorcolumn",{"_index":3432,"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":2577,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":22742,"title":{},"body":{"license.html":{}}}],["discussed",{"_index":2533,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["discussion",{"_index":23108,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["discussion_enabled=false",{"_index":23608,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["display",{"_index":9633,"title":{},"body":{"injectables/FeathersRosterService.html":{},"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/PublicSystemResponse.html":{},"classes/ToolReferenceResponse.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"license.html":{}}}],["displayat",{"_index":6853,"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":3753,"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":{},"classes/UsersList.html":{}}}],["displayed",{"_index":7041,"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":5698,"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/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":22377,"title":{},"body":{"license.html":{}}}],["disposable",{"_index":22115,"title":{},"body":{"dependencies.html":{}}}],["disposition",{"_index":6638,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["dist",{"_index":22186,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["distinguish",{"_index":15256,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["distinguished",{"_index":23328,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["distinguishing",{"_index":22786,"title":{},"body":{"license.html":{}}}],["distingush",{"_index":23648,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["distribute",{"_index":22272,"title":{},"body":{"license.html":{}}}],["distributed",{"_index":22841,"title":{},"body":{"license.html":{}}}],["distributing",{"_index":22745,"title":{},"body":{"license.html":{}}}],["distribution",{"_index":22336,"title":{},"body":{"license.html":{}}}],["dn",{"_index":4309,"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/SystemEntity.html":{}}}],["do.builder",{"_index":3198,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["do.builder.ts",{"_index":3157,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:23",{"_index":3175,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:24",{"_index":3172,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:25",{"_index":3169,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:26",{"_index":3181,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:27",{"_index":3184,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:28",{"_index":3187,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:29",{"_index":3190,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:30",{"_index":3193,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:31",{"_index":3178,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.mapper",{"_index":13101,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["do.mapper.ts",{"_index":13068,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:13",{"_index":13075,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:5",{"_index":13072,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.repo",{"_index":21485,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["do.repo.ts",{"_index":3307,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/UserDORepo.html":{}}}],["do.repo.ts:11",{"_index":3318,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:141",{"_index":20889,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:151",{"_index":20898,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:18",{"_index":3325,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:25",{"_index":20899,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:26",{"_index":3323,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:33",{"_index":20892,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:39",{"_index":3327,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:53",{"_index":3337,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:65",{"_index":3330,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:71",{"_index":20895,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:75",{"_index":3332,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:79",{"_index":20893,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:82",{"_index":3335,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:87",{"_index":3340,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:93",{"_index":3320,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.rule.ts",{"_index":3384,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:11",{"_index":3390,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:17",{"_index":3388,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:8",{"_index":3387,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.service",{"_index":4114,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["do.service.ts",{"_index":3403,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:20",{"_index":3412,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:6",{"_index":3406,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:9",{"_index":3408,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["dobasefactory",{"_index":4313,"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":7273,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["dobasefactory.define(lti11toolconfig",{"_index":7292,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["docker",{"_index":22935,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/mongo",{"_index":23575,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/rocketchat/rocket.chat:4.7.2envs",{"_index":23617,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["doclass",{"_index":3324,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["doclass.name",{"_index":3352,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["docs",{"_index":22904,"title":{},"body":{"todo.html":{}}}],["document",{"_index":6153,"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":22199,"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":22598,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["documents",{"_index":3811,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doe",{"_index":20964,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["doe${sequence",{"_index":12828,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["doescourseexist",{"_index":3508,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doescourseexist(courseid",{"_index":3519,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doesn't",{"_index":14305,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/OAuthService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doesnt",{"_index":17305,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["doing",{"_index":23105,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["domain",{"_index":1904,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"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/ExternalToolPseudonymRepo.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"classes/ResolvedGroupDto.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.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":23654,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain.mapper",{"_index":11075,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["domain.mapper.ts",{"_index":10979,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:15",{"_index":10986,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:43",{"_index":10989,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:60",{"_index":10993,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:72",{"_index":10991,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:81",{"_index":10998,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:90",{"_index":10996,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain/class",{"_index":4368,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domain/external",{"_index":8779,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["domain/rules",{"_index":1903,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["domainentity",{"_index":7676,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["domainerror",{"_index":17781,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["domainobject",{"_index":1790,"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/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":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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/GroupRule.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["domainobject.acceptasync(this.deletevisitor",{"_index":3382,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["domainobject.closedat",{"_index":21188,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.context",{"_index":18678,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.context?.contextid",{"_index":18743,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.context?.contexttype",{"_index":18742,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.createdat",{"_index":20863,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.customs",{"_index":7194,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.email",{"_index":20865,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.emailsearchvalues",{"_index":20877,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.expiresat",{"_index":18679,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.externalid",{"_index":20869,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.finishedat",{"_index":21189,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.firstname",{"_index":20866,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.firstnamesearchvalues",{"_index":20873,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.forcepasswordchange",{"_index":20879,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.friendlyurl",{"_index":7200,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.frontchannel_logout_uri",{"_index":7203,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.gradelevel",{"_index":4393,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.id",{"_index":2403,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["domainobject.importhash",{"_index":20871,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.invitationlink",{"_index":4390,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.ishidden",{"_index":7204,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.islocal",{"_index":7196,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.istemplate",{"_index":7195,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.key",{"_index":7186,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.language",{"_index":20878,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastloginsystemchange",{"_index":20881,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastname",{"_index":20867,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastnamesearchvalues",{"_index":20875,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.ldapdn",{"_index":4394,"title":{},"body":{"classes/ClassMapper.html":{},"classes/UserDO.html":{}}}],["domainobject.logo_url",{"_index":7188,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_message_type",{"_index":7189,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_version",{"_index":7190,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.mandatorysince",{"_index":21190,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.name",{"_index":4385,"title":{},"body":{"classes/ClassMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.oauthclientid",{"_index":7199,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.opennewtab",{"_index":7202,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.options",{"_index":21834,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.organizationid",{"_index":11165,"title":{},"body":{"injectables/GroupRule.html":{}}}],["domainobject.origintoolid",{"_index":7198,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.outdatedsince",{"_index":20882,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.payload",{"_index":18677,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.payload.parentid",{"_index":18741,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.payload.parenttype",{"_index":18740,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.preferences",{"_index":20880,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.previousexternalid",{"_index":20883,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.privacy_permission",{"_index":7193,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.removeuser(userid",{"_index":4423,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.resource_link_id",{"_index":7191,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.roles",{"_index":7192,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["domainobject.schoolid",{"_index":20868,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.secret",{"_index":7187,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.skipconsent",{"_index":7201,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.source",{"_index":4397,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourceoptions",{"_index":4398,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourcesystemid",{"_index":21185,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.startedat",{"_index":21187,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.successor",{"_index":4395,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.target",{"_index":21832,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetmodel",{"_index":21833,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetsystemid",{"_index":21186,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.teacherids.map((teacherid",{"_index":4387,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.token",{"_index":18676,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.updatedat",{"_index":20864,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.url",{"_index":7185,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.userids",{"_index":4422,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.userids?.map((userid",{"_index":4389,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.year",{"_index":4391,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject/share",{"_index":12256,"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":2776,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/LinkElement.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobject:8",{"_index":2758,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/LinkElement.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobjectfactory",{"_index":8045,"title":{"classes/DomainObjectFactory.html":{}},"body":{"classes/DomainObjectFactory.html":{}}}],["domainobjects",{"_index":2367,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/GroupRepo.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":17267,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["domainobjects.map((domainobject",{"_index":4400,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassService.html":{}}}],["domainrolenames",{"_index":21363,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles",{"_index":21361,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles.map((role",{"_index":21364,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domains",{"_index":22116,"title":{},"body":{"dependencies.html":{}}}],["domigration",{"_index":18313,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["domigration(externalid",{"_index":18324,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["domigration(userdo",{"_index":21409,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["don't",{"_index":2475,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/OAuthService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.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":{}}}],["done",{"_index":8312,"title":{},"body":{"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":19666,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["dos",{"_index":2431,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["dos.map((domainobj",{"_index":2433,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["dosomethingcrazy",{"_index":23357,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z",{"_index":23362,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).catch(err",{"_index":23377,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).then(result",{"_index":23372,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazysync(wrong",{"_index":23380,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["doubtful",{"_index":22562,"title":{},"body":{"license.html":{}}}],["down",{"_index":23081,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["download",{"_index":16696,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download(filerecord",{"_index":16704,"title":{},"body":{"injectables/PreviewService.html":{}}}],["download_uri",{"_index":1381,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downloadbysecuritytoken",{"_index":10250,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(@param('token",{"_index":10263,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(token",{"_index":10252,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadfileparams",{"_index":6237,"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":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["downloadoriginfile",{"_index":16654,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloadoriginfile(pathtofile",{"_index":16658,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["downloaduri",{"_index":1374,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["downstream",{"_index":22676,"title":{},"body":{"license.html":{}}}],["draft",{"_index":12487,"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":2532,"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":11756,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dropcollection",{"_index":7868,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollection(collectionname",{"_index":7879,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollectionifexists(collectionname",{"_index":11724,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dry",{"_index":23094,"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/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":{},"classes/ExternalToolElementResponseMapper.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":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":{},"classes/LinkElementResponseMapper.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":{},"controllers/PseudonymController.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/ToolReferenceController.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":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dto's",{"_index":23168,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dto.availabledate",{"_index":19721,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.bbbresponse",{"_index":21682,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["dto.builder.ts",{"_index":9811,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:13",{"_index":9820,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:19",{"_index":9817,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:7",{"_index":9815,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.cancelbuttonurl",{"_index":16477,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.classes",{"_index":12891,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.cookies",{"_index":11533,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["dto.createdat",{"_index":17416,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.currentredirect",{"_index":11462,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.description",{"_index":19719,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.descriptioninputformat",{"_index":19734,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.destinationcourseid",{"_index":6412,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.displaycolor",{"_index":19725,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.duedate",{"_index":19723,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.elements",{"_index":6415,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.enablemigrationstart",{"_index":14841,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.factory",{"_index":17757,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["dto.factory.ts",{"_index":8055,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:102",{"_index":8090,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:121",{"_index":8088,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:129",{"_index":8077,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:139",{"_index":8086,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:158",{"_index":8084,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:173",{"_index":8074,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:186",{"_index":17587,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:192",{"_index":17589,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:28",{"_index":8070,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:30",{"_index":8069,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:32",{"_index":8071,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:34",{"_index":8068,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:36",{"_index":8067,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:58",{"_index":8082,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:67",{"_index":8079,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:89",{"_index":8080,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:95",{"_index":8081,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.firstname",{"_index":12879,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.flagged",{"_index":12898,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.groupelements",{"_index":7633,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.groupid",{"_index":7632,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.id",{"_index":6410,"title":{},"body":{"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lastname",{"_index":12882,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lessonhidden",{"_index":19729,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.lessonname",{"_index":19728,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.loginname",{"_index":12885,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.mapper",{"_index":1123,"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":12877,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.matchedby",{"_index":21368,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["dto.matches",{"_index":12894,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.oauthmigrationfinalfinish",{"_index":14840,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationfinished",{"_index":14839,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationmandatory",{"_index":14838,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationpossible",{"_index":14837,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.options",{"_index":21888,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["dto.permission",{"_index":21683,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.permissions",{"_index":15265,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.proceedbuttonurl",{"_index":16476,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.provisioningstrategy",{"_index":16899,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.provisioningurl",{"_index":16901,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.redirect",{"_index":21396,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["dto.response",{"_index":11465,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.response.status",{"_index":11461,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.role",{"_index":12888,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.rolename",{"_index":15322,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.roles",{"_index":17422,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.schoolid",{"_index":17420,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.state",{"_index":21680,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.target",{"_index":15054,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.teamid",{"_index":3895,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto.teamname",{"_index":15321,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.title",{"_index":3893,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["dto.unpublished",{"_index":15056,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.updatedat",{"_index":17418,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.updater",{"_index":15051,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.url",{"_index":21914,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["dto/board/board",{"_index":2933,"title":{},"body":{"controllers/BoardController.html":{}}}],["dto/board/set",{"_index":4013,"title":{},"body":{"controllers/CardController.html":{}}}],["dto/card/create",{"_index":4933,"title":{},"body":{"controllers/ColumnController.html":{}}}],["dto/class",{"_index":11287,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["dto/context",{"_index":6075,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["dto/copy.response",{"_index":6405,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto/element/rich",{"_index":17494,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["dto/file.dto",{"_index":9822,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto/fwu",{"_index":10724,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["dto/migration.dto",{"_index":21429,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/oauth",{"_index":14103,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{}}}],["dto/oauth2",{"_index":21086,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/page",{"_index":21430,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/pseudonym",{"_index":16933,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["dto/public",{"_index":19295,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["dto/request/school",{"_index":21088,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/request/user",{"_index":21089,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/response/consent.response",{"_index":15892,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/redirect.response",{"_index":15894,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["dto/response/video",{"_index":21849,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["dto/role.dto",{"_index":17572,"title":{},"body":{"injectables/RoleService.html":{}}}],["dto/school",{"_index":18239,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["dto/stateless",{"_index":16126,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dto/submission",{"_index":3736,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["dto/system",{"_index":19297,"title":{},"body":{"controllers/SystemController.html":{}}}],["dto/task",{"_index":19571,"title":{},"body":{"controllers/TaskController.html":{}}}],["dto/team",{"_index":4567,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto/team.dto",{"_index":4676,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["dto/user",{"_index":16120,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dtocreator",{"_index":8053,"title":{"classes/DtoCreator.html":{}},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dtolist",{"_index":12793,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["dtos",{"_index":4565,"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":3584,"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":3262,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/BoardTaskResponse.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.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":18973,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["dummy",{"_index":11361,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["dummypasswd!1",{"_index":741,"title":{},"body":{"classes/AccountFactory.html":{}}}],["dummyresponse",{"_index":11371,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["duplicate",{"_index":6111,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["duplicate.filter",{"_index":6117,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.id",{"_index":8902,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["duplicate.length",{"_index":6121,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.loggable",{"_index":18394,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["duplicates",{"_index":16566,"title":{},"body":{"injectables/PermissionService.html":{}}}],["duplicatetool",{"_index":6118,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.displayname",{"_index":6120,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.id",{"_index":6119,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplication",{"_index":2474,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["durable",{"_index":22515,"title":{},"body":{"license.html":{}}}],["duration",{"_index":2159,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/DurationLoggingInterceptor.html":{}}}],["durationlogginginterceptor",{"_index":8152,"title":{"injectables/DurationLoggingInterceptor.html":{}},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["during",{"_index":7027,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakConsole.html":{},"interfaces/OauthCurrentUser.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":22561,"title":{},"body":{"license.html":{}}}],["dynamically",{"_index":22412,"title":{},"body":{"license.html":{}}}],["dynamicmodule",{"_index":1301,"title":{},"body":{"modules/AntivirusModule.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/PreviewGeneratorConsumerModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["e",{"_index":2362,"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":2468,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/ConsentRequestBody.html":{},"injectables/FeathersRosterService.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/OauthCurrentUser.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":8308,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.response.data",{"_index":1206,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.data.errortype",{"_index":1208,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.statuscode",{"_index":1203,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.target",{"_index":8314,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.value",{"_index":8316,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["each",{"_index":2450,"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/ICleanOptions.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":12030,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolExternalToolEntity.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["earlier",{"_index":22351,"title":{},"body":{"license.html":{}}}],["ease",{"_index":23714,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["easier",{"_index":23437,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["easily",{"_index":23340,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["easy",{"_index":23050,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["eathers",{"_index":9743,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["edit",{"_index":6862,"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":23680,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["editor",{"_index":3100,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/UserBoardRoles.html":{}}}],["editor.config",{"_index":11398,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller",{"_index":11397,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller.ts",{"_index":11357,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:33",{"_index":11367,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:44",{"_index":11365,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.module",{"_index":11404,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["editor.module.ts",{"_index":11395,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor/controller/h5p",{"_index":11356,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor/h5p",{"_index":11394,"title":{},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["editusernameallowed",{"_index":13437,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["effect",{"_index":22822,"title":{},"body":{"license.html":{}}}],["effected",{"_index":22463,"title":{},"body":{"license.html":{}}}],["effective",{"_index":22445,"title":{},"body":{"license.html":{}}}],["effectively",{"_index":22838,"title":{},"body":{"license.html":{}}}],["effects",{"_index":2259,"title":{},"body":{"injectables/BBBService.html":{}}}],["efficient",{"_index":3648,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["effortless",{"_index":23302,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["efforts",{"_index":22690,"title":{},"body":{"license.html":{}}}],["einsatz",{"_index":4844,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ejson",{"_index":3820,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.deserialize(bsondocuments",{"_index":3823,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.serialize(documents",{"_index":3821,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["el",{"_index":3687,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CopyHelperService.html":{}}}],["el.getreferences()).flat",{"_index":7530,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["el.status",{"_index":6364,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["el.target.id",{"_index":2677,"title":{},"body":{"entities/Board.html":{}}}],["elapsedtimemilliseconds",{"_index":13288,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["electronic",{"_index":22844,"title":{},"body":{"license.html":{}}}],["element",{"_index":2553,"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":{},"injectables/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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponseMapper.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PatchGroupParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/RecursiveSaveVisitor.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":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["element.'})@apiextramodels(fileelementcontentbody",{"_index":8208,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiextramodels(submissionitemresponse)@apiresponse({status",{"_index":8195,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiresponse({status",{"_index":8200,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.acceptasync(updater",{"_index":5621,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.alternativetext",{"_index":9870,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.boardelementtype",{"_index":3036,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.body.params.ts",{"_index":6983,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:10",{"_index":14925,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:12",{"_index":14933,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:14",{"_index":6989,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:17",{"_index":14934,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:18",{"_index":14926,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:23",{"_index":14932,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:25",{"_index":6987,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:29",{"_index":14929,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.body.params.ts:33",{"_index":14930,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.caption",{"_index":9869,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.constructor.name",{"_index":5591,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["element.contextexternaltoolid",{"_index":8679,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["element.createdat",{"_index":8678,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.description",{"_index":14357,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.do",{"_index":2846,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["element.do.ts",{"_index":8634,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["element.do.ts:10",{"_index":17465,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:13",{"_index":9836,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:14",{"_index":17467,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:17",{"_index":9838,"title":{},"body":{"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:18",{"_index":17469,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:21",{"_index":14321,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:25",{"_index":14323,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:29",{"_index":14325,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:33",{"_index":14327,"title":{},"body":{"classes/LinkElement.html":{}}}],["element.do.ts:5",{"_index":8639,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.do.ts:6",{"_index":17463,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:9",{"_index":8641,"title":{},"body":{"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{}}}],["element.duedate",{"_index":18991,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.factory.ts",{"_index":5549,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:13",{"_index":5556,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:43",{"_index":5558,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:56",{"_index":5559,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:68",{"_index":5560,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:81",{"_index":5561,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:93",{"_index":5557,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.getreferences",{"_index":7518,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.getreferences().length",{"_index":7522,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.gridelement",{"_index":7500,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.id",{"_index":8676,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.imageurl",{"_index":14358,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.inputformat",{"_index":17497,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["element.interface",{"_index":5125,"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":11854,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.interface.ts:2",{"_index":11855,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.publish",{"_index":17766,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.removereference(room",{"_index":7521,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.removereferencebyindex(position.groupindex",{"_index":7543,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.response",{"_index":17495,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["element.response.ts",{"_index":3436,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:11",{"_index":8651,"title":{},"body":{"classes/ExternalToolElementContent.html":{}}}],["element.response.ts:12",{"_index":9850,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{}}}],["element.response.ts:14",{"_index":8666,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:15",{"_index":9849,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:17",{"_index":3443,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:18",{"_index":9862,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:20",{"_index":14339,"title":{},"body":{"classes/LinkElementContent.html":{}}}],["element.response.ts:22",{"_index":3440,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:23",{"_index":8668,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementContent.html":{}}}],["element.response.ts:26",{"_index":8670,"title":{},"body":{"classes/ExternalToolElementResponse.html":{},"classes/LinkElementResponse.html":{}}}],["element.response.ts:27",{"_index":9864,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:29",{"_index":8667,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:30",{"_index":9866,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:32",{"_index":8669,"title":{},"body":{"classes/ExternalToolElementResponse.html":{}}}],["element.response.ts:33",{"_index":9863,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:35",{"_index":14349,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:36",{"_index":9865,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:38",{"_index":14351,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:41",{"_index":14348,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:44",{"_index":14350,"title":{},"body":{"classes/LinkElementResponse.html":{}}}],["element.response.ts:5",{"_index":8650,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/FileElementContent.html":{},"classes/LinkElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:7",{"_index":3437,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.service",{"_index":4115,"title":{},"body":{"injectables/CardService.html":{}}}],["element.service.ts",{"_index":5594,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:17",{"_index":5595,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:25",{"_index":5600,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:35",{"_index":5596,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:42",{"_index":5598,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:46",{"_index":5602,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:50",{"_index":5605,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.status",{"_index":6419,"title":{},"body":{"classes/CopyMapper.html":{}}}],["element.target",{"_index":2667,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.text",{"_index":4871,"title":{},"body":{"injectables/ColumnBoardService.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["element.title",{"_index":14356,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.ts",{"_index":5222,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:11",{"_index":5226,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:12",{"_index":5274,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:14",{"_index":5254,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:15",{"_index":5275,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:19",{"_index":5227,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["element.ts:21",{"_index":5290,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:3",{"_index":5279,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:38",{"_index":5291,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:42",{"_index":5292,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:46",{"_index":5293,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:6",{"_index":5281,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.type",{"_index":17608,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["element.unpublish",{"_index":17767,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.updatedat",{"_index":8677,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.url",{"_index":14355,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["element.url.params.ts",{"_index":5691,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:11",{"_index":5693,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:19",{"_index":17650,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["elementcontentbody",{"_index":8169,"title":{"classes/ElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["elementcontentbody:28",{"_index":9854,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["elementcontentbody:42",{"_index":14342,"title":{},"body":{"classes/LinkElementContentBody.html":{}}}],["elementcontentbody:61",{"_index":17483,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["elementcontentbody:79",{"_index":18984,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["elementcontentbody:95",{"_index":8657,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{}}}],["elementcontroller",{"_index":2723,"title":{"controllers/ElementController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ElementController.html":{}}}],["elementcopystatus",{"_index":3084,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementcopystatus.type",{"_index":3081,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementdata",{"_index":7620,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.copyingsince",{"_index":7628,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.displaycolor",{"_index":7625,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group",{"_index":7630,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group.map((groupmetadata",{"_index":7634,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.groupid",{"_index":7631,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.referencedid",{"_index":7629,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.shorttitle",{"_index":7624,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.title",{"_index":7623,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementid",{"_index":4159,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{}}}],["elementmapper",{"_index":5587,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmapper.maptoresponse(element",{"_index":5592,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmodel",{"_index":7675,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.dashboard",{"_index":7712,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.references.set(references",{"_index":7711,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.title",{"_index":7707,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.xpos",{"_index":7702,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.ypos",{"_index":7704,"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/NewsRepo.html":{},"classes/PaginationParams.html":{},"classes/PatchOrderParams.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskCopyService.html":{}}}],["elements.filter((el",{"_index":3686,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["elements.filter((element",{"_index":8105,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.foreach((element",{"_index":8115,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.map((el",{"_index":6363,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elements.map((elementcopystatus",{"_index":3080,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elements.push",{"_index":6690,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["elements.push(this.mapcolumnboard(element.content",{"_index":17611,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maplesson(element.content",{"_index":17610,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maptask(element.content",{"_index":17609,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elementservice",{"_index":4152,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["elementspercard",{"_index":3544,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementspercard.flat",{"_index":3547,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementsstatuses",{"_index":6362,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementsstatuses.filter((status",{"_index":6366,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementstoadd",{"_index":2704,"title":{},"body":{"entities/Board.html":{}}}],["elementtomove",{"_index":7506,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.getreferences",{"_index":7539,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.isgroup",{"_index":7538,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementuc",{"_index":2717,"title":{"injectables/ElementUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["elementwithposition",{"_index":7655,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.x",{"_index":7703,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.y",{"_index":7705,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elemmatch",{"_index":10380,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["em",{"_index":3319,"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":{},"classes/UsersList.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["em.config.options.clienturl",{"_index":23459,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["em.getreference(role",{"_index":11031,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(schoolentity",{"_index":11015,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(systementity",{"_index":11026,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(user",{"_index":11030,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["email",{"_index":853,"title":{},"body":{"interfaces/AccountParams.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":23118,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["emailsearchvalues",{"_index":11803,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["embeddable",{"_index":2574,"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/FederalStateEntity.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/SystemEntity.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded",{"_index":4271,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalStateEntity.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/SystemEntity.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded(undefined",{"_index":4265,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalStateEntity.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/TeamEntity.html":{}}}],["embedded({entity",{"_index":19333,"title":{},"body":{"entities/SystemEntity.html":{}}}],["embodied",{"_index":22512,"title":{},"body":{"license.html":{}}}],["emerg",{"_index":8330,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["emerg(loggable",{"_index":8337,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["employer",{"_index":22850,"title":{},"body":{"license.html":{}}}],["empty",{"_index":1857,"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":15134,"title":{},"body":{"classes/NewsScope.html":{},"classes/Scope.html":{}}}],["emptyresultquerytype",{"_index":6013,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["en",{"_index":12587,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["enable",{"_index":10862,"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":21391,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable.loggable.ts:4",{"_index":21392,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable_ldap_sync_during_migration",{"_index":12199,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enabled",{"_index":1308,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.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":{},"interfaces/ScanResult.html":{},"injectables/ShareTokenUC.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TaskCopyUC.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["enableimplicitconversion",{"_index":10867,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["enableldapsyncduringmigration",{"_index":12200,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enablemigrationstart",{"_index":14121,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["enableoauthmigrationfeature",{"_index":21245,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enableoauthmigrationfeature(schooldo",{"_index":21255,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enables",{"_index":22370,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["encapsulates",{"_index":4619,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/ConverterUtil.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["encoded",{"_index":2266,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FileSystemAdapter.html":{}}}],["encodeuricomponent(token",{"_index":1388,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["encoding",{"_index":10277,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["encouraged",{"_index":22318,"title":{},"body":{"license.html":{}}}],["encrypt",{"_index":11950,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application.html":{}}}],["encrypt(data",{"_index":11953,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encrypted",{"_index":1173,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["encryptedstring",{"_index":18934,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["encryption",{"_index":12660,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.interface",{"_index":8261,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.service",{"_index":8263,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryption.service.ts",{"_index":14553,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryption.service.ts:7",{"_index":14556,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryptionmodule",{"_index":8255,"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(configservice",{"_index":8264,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["encryptionservice",{"_index":9284,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["encryptpassword",{"_index":1047,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptpassword(password",{"_index":1052,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptsecrets(collectionname",{"_index":11824,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["encryptsecretsinsystems(systems",{"_index":11826,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["end",{"_index":2241,"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":21756,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["end(config",{"_index":2260,"title":{},"body":{"injectables/BBBService.html":{}}}],["end(currentuser",{"_index":21708,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["end(currentuserid",{"_index":21873,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.loggable.ts",{"_index":18282,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:3",{"_index":18284,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:6",{"_index":18285,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.uc.ts",{"_index":21871,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:11",{"_index":21872,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:18",{"_index":21874,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end2end",{"_index":23480,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["enddate",{"_index":12223,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["ended",{"_index":21767,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["endings",{"_index":23510,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["endpoint",{"_index":2145,"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/OauthConfigDto.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":11379,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["endpointurl",{"_index":12262,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["ends",{"_index":2262,"title":{},"body":{"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["endschoolinmaintenance",{"_index":12737,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(@currentuser",{"_index":12814,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(currentuser",{"_index":12745,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endtime",{"_index":2217,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["enforce",{"_index":20077,"title":{},"body":{"controllers/TeamNewsController.html":{},"license.html":{}}}],["enforces",{"_index":23337,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["enforcing",{"_index":22468,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["enities",{"_index":17521,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enities.map((entity",{"_index":17525,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enrichdatafromexternaltool",{"_index":18190,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichdatafromexternaltool(tool",{"_index":18199,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichedtools",{"_index":18212,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools",{"_index":18191,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools(tools",{"_index":18201,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["ensure",{"_index":9589,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"classes/NewsScope.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":3203,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureboardnodetype(boardnode",{"_index":3221,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurecontextpermissions",{"_index":8560,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensurecontextpermissions(userid",{"_index":8569,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureleafnode",{"_index":3204,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureleafnode(boardnode",{"_index":3224,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurepermission",{"_index":9389,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensurepermission(userid",{"_index":9398,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensures",{"_index":22214,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ensureschoolpermissions",{"_index":8561,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureschoolpermissions(userid",{"_index":8571,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensuretokeniswhitelisted",{"_index":13205,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["ensuretoolpermissions",{"_index":20691,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["ensuretoolpermissions(userid",{"_index":20694,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["entered",{"_index":22751,"title":{},"body":{"license.html":{}}}],["enteredpassword",{"_index":14384,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["entire",{"_index":22488,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["entirely",{"_index":22770,"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/ExternalToolElementNodeEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FederalStateEntity.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":{},"injectables/GroupRepo.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/LinkElementNode.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"dependencies.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":10404,"title":{},"body":{"injectables/FilesService.html":{}}}],["entities.length",{"_index":10403,"title":{},"body":{"injectables/FilesService.html":{},"injectables/LtiToolRepo.html":{}}}],["entities.map((entity",{"_index":2408,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/GroupRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SystemMapper.html":{},"injectables/UserDORepo.html":{}}}],["entitieswithfiles",{"_index":9972,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["entitiyids",{"_index":9610,"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/ExternalToolElementNodeEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalStateEntity.html":{},"entities/FileElementNode.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/ImportUser.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"entities/LinkElementNode.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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"entities/SubmissionItemNode.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.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":{},"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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/FederalStateEntity.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":{},"injectables/FilesService.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/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":{},"classes/PreviewBuilder.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.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":19388,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.closedat",{"_index":21212,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.config.type",{"_index":9063,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.contextid",{"_index":5892,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["entity.contexttype",{"_index":18737,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.course",{"_index":6793,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["entity.coursegroup",{"_index":14263,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.createdat",{"_index":4383,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.customs",{"_index":14714,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.displayname",{"_index":5894,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.email",{"_index":20925,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.emailsearchvalues",{"_index":20931,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.expiresat",{"_index":18739,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.externalid",{"_index":11028,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.externalsource",{"_index":11021,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.factory.ts",{"_index":8701,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:21",{"_index":8710,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:28",{"_index":8707,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:38",{"_index":8712,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:50",{"_index":8708,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:66",{"_index":8706,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.features",{"_index":14033,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{}}}],["entity.features.includes(feature",{"_index":14083,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["entity.federalstate",{"_index":14042,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.finishedat",{"_index":21213,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.firstname",{"_index":20926,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.firstnamesearchvalues",{"_index":20929,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.forcepasswordchange",{"_index":20933,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.friendlyurl",{"_index":14719,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.frontchannel_logout_uri",{"_index":14721,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.getgrid().map((elementwithposition",{"_index":7715,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getid",{"_index":7722,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getuserid",{"_index":7724,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.gradelevel",{"_index":4378,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.hidden",{"_index":14259,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.id",{"_index":4369,"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":20928,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.inmaintenancesince",{"_index":14034,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.inusermigration",{"_index":14035,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.invitationlink",{"_index":4376,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.isdraft",{"_index":19872,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.ishidden",{"_index":9072,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.islocal",{"_index":14716,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.istemplate",{"_index":14715,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.key",{"_index":14706,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.language",{"_index":20932,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastloginsystemchange",{"_index":20935,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastname",{"_index":20927,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastnamesearchvalues",{"_index":20930,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.ldapconfig?.active",{"_index":19392,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.ldapdn",{"_index":4379,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lesson",{"_index":19875,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.logo_url",{"_index":14708,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.logobase64",{"_index":9070,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.logourl",{"_index":9069,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.lti_message_type",{"_index":14709,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.lti_version",{"_index":14710,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.mandatorysince",{"_index":21210,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.markfordeletion",{"_index":10408,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.name",{"_index":4370,"title":{},"body":{"classes/ClassMapper.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RoleMapper.html":{}}}],["entity.oauthclientid",{"_index":14718,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.officialschoolnumber",{"_index":14037,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.oidcconfig",{"_index":19409,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["entity.opennewtab",{"_index":9073,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.options.everyattendejoinsmuted",{"_index":22010,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.everybodyjoinsasmoderator",{"_index":22009,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.moderatormustapprovejoinrequests",{"_index":22011,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.organization?.id",{"_index":11024,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.origintoolid",{"_index":14717,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.outdatedsince",{"_index":20936,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.parentid",{"_index":18736,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.parenttype",{"_index":18735,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.permissions",{"_index":17524,"title":{},"body":{"classes/RoleMapper.html":{}}}],["entity.preferences",{"_index":20934,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.previousexternalid",{"_index":14036,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.privacy_permission",{"_index":14713,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.provisioningstrategy",{"_index":19389,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.provisioningurl",{"_index":19390,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.pseudonym",{"_index":8979,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.removepermissionsbyrefid(userid",{"_index":10405,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.resource_link_id",{"_index":14711,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.role.id",{"_index":11034,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.roles",{"_index":14712,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.roles.getitems().map((role",{"_index":21345,"title":{},"body":{"classes/UserMapper.html":{}}}],["entity.roles.isinitialized",{"_index":20937,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.school.id",{"_index":18140,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{}}}],["entity.schoolid",{"_index":18183,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["entity.schoolid.tohexstring",{"_index":4371,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.schooltool.id",{"_index":5891,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltool.school.id",{"_index":5988,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schooltool.school?.id",{"_index":5890,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltoolref.schoolid",{"_index":5989,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schoolyear",{"_index":14038,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.secret",{"_index":14707,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.skipconsent",{"_index":14720,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.source",{"_index":4381,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourceoptions?.tspuid",{"_index":4382,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourcesystem?.id",{"_index":21208,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.startedat",{"_index":21211,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.successor?.tohexstring",{"_index":4380,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.system.id",{"_index":11029,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.systems.getitems().map((system",{"_index":14040,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.systems.isinitialized",{"_index":14039,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.target",{"_index":22007,"title":{},"body":{"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetmodel",{"_index":23702,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetsystem.id",{"_index":21209,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.teacherids.map((teacherid",{"_index":4374,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.teamusers.find((teamuser",{"_index":20118,"title":{},"body":{"injectables/TeamRule.html":{}}}],["entity.token",{"_index":18738,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.tool.id",{"_index":18139,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entity.toolid.tohexstring",{"_index":8980,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.toolversion",{"_index":5895,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entity.ts",{"_index":23167,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["entity.type",{"_index":19387,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.updatedat",{"_index":4384,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.url",{"_index":9068,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.user.id",{"_index":11033,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.userid.tohexstring",{"_index":8981,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.userids?.map((userid",{"_index":4372,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.userloginmigration?.id",{"_index":14041,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.users.map((groupuser",{"_index":11016,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod",{"_index":11018,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.from",{"_index":11019,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.until",{"_index":11020,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.version",{"_index":9074,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.year?.tohexstring",{"_index":4377,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity/course.entity",{"_index":11933,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/import",{"_index":12054,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["entity/pseudonym.scope",{"_index":8963,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["entity/role.entity",{"_index":16564,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity/school.entity",{"_index":11934,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/share",{"_index":18731,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity/team.entity",{"_index":11935,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/user.entity",{"_index":16565,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity[key",{"_index":2430,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entity[prop",{"_index":1866,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["entity_not_found",{"_index":3801,"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":10374,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["entitydo",{"_index":2379,"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":21219,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.config.type",{"_index":9087,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.contextref.id",{"_index":5897,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.customs",{"_index":14730,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.displayname",{"_index":5899,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.email",{"_index":20940,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.externalid",{"_index":14043,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.features",{"_index":14044,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.federalstate",{"_index":14055,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.finishedat",{"_index":21220,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.firstname",{"_index":20941,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.forcepasswordchange",{"_index":20947,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.friendlyurl",{"_index":14735,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.frontchannel_logout_uri",{"_index":14737,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.id",{"_index":17059,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["entitydo.inmaintenancesince",{"_index":14045,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.inusermigration",{"_index":14046,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.ishidden",{"_index":9096,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.islocal",{"_index":14732,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.istemplate",{"_index":14731,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.key",{"_index":14722,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.language",{"_index":20946,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastloginsystemchange",{"_index":20949,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastname",{"_index":20942,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.ldapdn",{"_index":20945,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.logo",{"_index":9094,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.logo_url",{"_index":14724,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.logourl",{"_index":9093,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.lti_message_type",{"_index":14725,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.lti_version",{"_index":14726,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.mandatorysince",{"_index":21217,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.name",{"_index":9091,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.oauthclientid",{"_index":14734,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.officialschoolnumber",{"_index":14048,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.opennewtab",{"_index":9097,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.options.everyattendeejoinsmuted",{"_index":22015,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.everybodyjoinsasmoderator",{"_index":22014,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.moderatormustapprovejoinrequests",{"_index":22016,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.origintoolid",{"_index":14733,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.outdatedsince",{"_index":20950,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.preferences",{"_index":20948,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.previousexternalid",{"_index":14047,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.privacy_permission",{"_index":14729,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.pseudonym",{"_index":8982,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entitydo.resource_link_id",{"_index":14727,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles",{"_index":14728,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles.map((roleref",{"_index":20943,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.schoolid",{"_index":18143,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.schooltoolref.schooltoolid",{"_index":5901,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.schoolyear",{"_index":14049,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.secret",{"_index":14723,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.skipconsent",{"_index":14736,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.sourcesystemid",{"_index":21215,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.startedat",{"_index":21218,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.systems",{"_index":14050,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.systems.map((systemid",{"_index":14051,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.target",{"_index":22012,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.targetsystemid",{"_index":21216,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.toolid",{"_index":18145,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.toolversion",{"_index":5902,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.url",{"_index":9092,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.userloginmigrationid",{"_index":14053,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.version",{"_index":9098,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydos",{"_index":2390,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.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":2402,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entityfactory",{"_index":2348,"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":2373,"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/AuthorizationReferenceService.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/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/ColumnBoardCopyService.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/FeathersRosterService.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":{},"injectables/GroupUc.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/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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.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":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"interfaces/OauthCurrentUser.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/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entitymanager",{"_index":2355,"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/AuthorizationReferenceService.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":{}}}],["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":1078,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror('user",{"_index":20920,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitynotfounderror(`account",{"_index":1106,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror(`user",{"_index":13612,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["entitynotfounderror(systementity.name",{"_index":19424,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["entitypermissions",{"_index":9604,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entitypermissions.includes(p",{"_index":9608,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entityprops",{"_index":2422,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entityschema",{"_index":2472,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["entitytype",{"_index":15062,"title":{},"body":{"classes/NewsMapper.html":{}}}],["entitywithembeddedfiles",{"_index":6308,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["entitywithid",{"_index":2512,"title":{},"body":{"classes/BaseFactory.html":{}}}],["entries",{"_index":9042,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entries.map",{"_index":9103,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry",{"_index":5427,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/JwtStrategy.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.do.ts",{"_index":7244,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:2",{"_index":7246,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:4",{"_index":7245,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.entity.ts",{"_index":7249,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:6",{"_index":7251,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:9",{"_index":7250,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.name",{"_index":9104,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.params",{"_index":18113,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["entry.params.ts",{"_index":7254,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:12",{"_index":7256,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:7",{"_index":7255,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.response",{"_index":18160,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["entry.response.ts",{"_index":7257,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:5",{"_index":7259,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:9",{"_index":7258,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.value",{"_index":9105,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["enum",{"_index":1031,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.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":{},"classes/ClassInfoResponse.html":{},"classes/ClassSortParams.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolResponse.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.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/SystemEntity.html":{},"entities/TeamNews.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["enum({array",{"_index":14643,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({fieldname",{"_index":12727,"title":{},"body":{"entities/ImportUser.html":{}}}],["enum({items",{"_index":14640,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({nullable",{"_index":6491,"title":{},"body":{"entities/Course.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"entities/ShareToken.html":{}}}],["enumname",{"_index":2889,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ContextExternalToolContextParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["enums",{"_index":5123,"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":14896,"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":22878,"title":{},"body":{"todo.html":{}}}],["envirement",{"_index":19672,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["envirements",{"_index":6709,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["envirment",{"_index":18849,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["environment",{"_index":13638,"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":10285,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["eq",{"_index":14273,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["equal",{"_index":19836,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["equivalent",{"_index":22427,"title":{},"body":{"license.html":{}}}],["eric",{"_index":23286,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["erorr",{"_index":19664,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["err",{"_index":1370,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.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":23378,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["err?.cause?.name",{"_index":17889,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["err?.code",{"_index":17872,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["error",{"_index":204,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICleanOptions.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":{},"injectables/LessonCopyUC.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":{},"classes/RpcMessageProducer.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/ScanResult.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/TaskCopyUC.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TooManyPseudonymsLoggableException.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":{},"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":3278,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["error('broken",{"_index":3034,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error('error",{"_index":11655,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('gradelevel",{"_index":4278,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["error('idm",{"_index":11595,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('invalid",{"_index":12913,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["error('multiple",{"_index":13597,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error('not",{"_index":2710,"title":{},"body":{"entities/Board.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["error('nothing",{"_index":17151,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["error('resource",{"_index":5302,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["error('rocket",{"_index":1293,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["error('roles",{"_index":12163,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["error('root",{"_index":3142,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["error('unexpected",{"_index":13033,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["error('unknown",{"_index":5907,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["error('user",{"_index":739,"title":{},"body":{"classes/AccountFactory.html":{}}}],["error(`${jwtconstants.jwtoptions.algorithm",{"_index":1604,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["error(`${testreqestconst.errormessage",{"_index":1703,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(`account",{"_index":13590,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error(`boardcopyservice",{"_index":3051,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error(`cannot",{"_index":5687,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["error(`duplicate",{"_index":13680,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["error(`login",{"_index":14400,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["error(`mapping",{"_index":10480,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["error(`no",{"_index":13777,"title":{},"body":{"injectables/LdapService.html":{}}}],["error(`opengraphproxyservice",{"_index":16435,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["error(`system",{"_index":19441,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["error(error",{"_index":1700,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(json.stringify(cause",{"_index":3852,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(json.stringify(error",{"_index":8399,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["error(loggable",{"_index":8339,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["error(message",{"_index":12083,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["error(string(cause",{"_index":3853,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(util.inspect(error",{"_index":10830,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.enum",{"_index":1921,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error.exception",{"_index":6510,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["error.filter",{"_index":8373,"title":{},"body":{"modules/ErrorModule.html":{}}}],["error.filter.ts",{"_index":10793,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"todo.html":{}}}],["error.filter.ts:102",{"_index":10816,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:15",{"_index":10802,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:19",{"_index":10805,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:34",{"_index":10807,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:49",{"_index":10818,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:56",{"_index":10809,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:72",{"_index":10813,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:80",{"_index":10811,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:92",{"_index":10815,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getresponse",{"_index":10848,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getstatus",{"_index":8813,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["error.interface.ts",{"_index":9614,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["error.mapper",{"_index":17774,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["error.officialschoolnumberfromsource",{"_index":21328,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.officialschoolnumberfromtarget",{"_index":21329,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.response",{"_index":1443,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts",{"_index":1420,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:10",{"_index":1426,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:21",{"_index":1442,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.ts",{"_index":20807,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.ts:3",{"_index":20808,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.validationerrors.map((e",{"_index":8306,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["error/error",{"_index":21798,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["error/id",{"_index":12634,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["error_debug",{"_index":5433,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_description",{"_index":1909,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error_hint",{"_index":5434,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_uri",{"_index":1910,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["errorcode",{"_index":15343,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["errorhandler",{"_index":16082,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorhandler(error",{"_index":16089,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorloggable",{"_index":8275,"title":{"classes/ErrorLoggable.html":{}},"body":{"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LdapStrategy.html":{}}}],["errorloggable(error",{"_index":10828,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorloggable(unknownerror",{"_index":10831,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorlogger",{"_index":8325,"title":{"injectables/ErrorLogger.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"modules/LoggerModule.html":{}}}],["errorlogmessage",{"_index":8288,"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/TooManyPseudonymsLoggableException.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":8351,"title":{"classes/ErrorMapper.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["errormapper.maprpcerrorresponsetodomainerror(error",{"_index":17782,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["errormessage",{"_index":1636,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["errormessages",{"_index":8305,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errormodule",{"_index":6426,"title":{"modules/ErrorModule.html":{}},"body":{"modules/CoreModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules.html":{}}}],["errorobj",{"_index":8357,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorobj.status",{"_index":8359,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorredirect",{"_index":16136,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('error",{"_index":16138,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('provider",{"_index":16140,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('sourceschoolnumber",{"_index":16146,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('targetschoolnumber",{"_index":16147,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorresponse",{"_index":1409,"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":{},"controllers/GroupController.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["errorresponse(type",{"_index":10846,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorresponse:10",{"_index":1436,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:15",{"_index":1434,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:20",{"_index":1432,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:25",{"_index":1428,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:30",{"_index":1429,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse})@apiresponse({status",{"_index":10950,"title":{},"body":{"controllers/GroupController.html":{}}}],["errorresponse})@get('/class",{"_index":10952,"title":{},"body":{"controllers/GroupController.html":{}}}],["errors",{"_index":1423,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/AuthenticationService.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/GlobalValidationPipe.html":{},"injectables/TaskCopyUC.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/ldap",{"_index":13770,"title":{},"body":{"injectables/LdapService.html":{}}}],["errors/school",{"_index":15508,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["errorstatus",{"_index":21797,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["errorstatus.guests_cannot_join_conference",{"_index":21929,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["errortype",{"_index":1185,"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":21468,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('sourcesystem",{"_index":21470,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('targetsystem",{"_index":21471,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.tostring",{"_index":21472,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorutils",{"_index":1354,"title":{"classes/ErrorUtils.html":{}},"body":{"injectables/AntivirusService.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":1371,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(error",{"_index":2317,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["errorutils.createhttpexceptionoptions(errorobj",{"_index":8364,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorutils.isbusinesserror(error",{"_index":10839,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isbusinesserror(this.error",{"_index":8301,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isfeatherserror(error",{"_index":10837,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isfeatherserror(this.error",{"_index":8299,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isnesthttpexception(error",{"_index":10841,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isnesthttpexception(this.error",{"_index":8302,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["erweitern",{"_index":4821,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["erwin",{"_index":22950,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["erwinidm",{"_index":22951,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["es",{"_index":12588,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["es256",{"_index":1596,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es384",{"_index":1597,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es512",{"_index":1598,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es6",{"_index":22118,"title":{},"body":{"dependencies.html":{}}}],["escape",{"_index":14908,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["escaped",{"_index":11816,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["escapedclasses",{"_index":13034,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedfirstname",{"_index":13018,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedlastname",{"_index":13026,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedloginname",{"_index":13029,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedname",{"_index":21525,"title":{},"body":{"injectables/UserRepo.html":{}}}],["escapedusername",{"_index":941,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["escapes",{"_index":936,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["eslint",{"_index":1187,"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":{},"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":21529,"title":{},"body":{"injectables/UserRepo.html":{}}}],["eslint/dot",{"_index":2527,"title":{},"body":{"classes/BaseFactory.html":{}}}],["eslint/no",{"_index":1191,"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":{},"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/restrict",{"_index":1267,"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":23021,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["especially",{"_index":23153,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["essential",{"_index":22401,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["etag",{"_index":6274,"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":22216,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["etherpad",{"_index":8418,"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":{}}}],["etherpadservice",{"_index":8400,"title":{"injectables/EtherpadService.html":{}},"body":{"injectables/EtherpadService.html":{},"modules/LessonModule.html":{}}}],["evaluate",{"_index":23270,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evaluated",{"_index":23271,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evans",{"_index":23287,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["even",{"_index":22255,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["event",{"_index":3901,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"license.html":{}}}],["event.data[0",{"_index":3907,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["event.dto",{"_index":3905,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.dto.ts",{"_index":3888,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:2",{"_index":3892,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:4",{"_index":3891,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.interface",{"_index":3903,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.interface.ts",{"_index":11583,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["eventid",{"_index":3926,"title":{},"body":{"injectables/CalendarService.html":{}}}],["events",{"_index":11645,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["everyattendeejoinsmuted",{"_index":8032,"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":21660,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everybodyjoinsasmoderator",{"_index":8033,"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":22270,"title":{},"body":{"license.html":{}}}],["everything",{"_index":23638,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exact",{"_index":12718,"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":21350,"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":2536,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceOptionsResponse.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/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":{}}}],["example'example",{"_index":23548,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["exampleapimodule",{"_index":23143,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplecolor",{"_index":7486,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["examplecontroller",{"_index":23142,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplemodule",{"_index":23133,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examples",{"_index":23629,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exampleuc",{"_index":23141,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exceeded",{"_index":8823,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/HydraOauthUc.html":{}}}],["except",{"_index":14909,"title":{},"body":{"classes/MongoPatterns.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception",{"_index":8369,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"modules/ErrorModule.html":{},"injectables/FeathersRosterService.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":10852,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.getstatus",{"_index":10849,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.loggable",{"_index":12635,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["exception.loggable.ts",{"_index":12613,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:4",{"_index":12614,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:9",{"_index":12615,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.message",{"_index":10850,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.ts",{"_index":8738,"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/TooManyPseudonymsLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:10",{"_index":18400,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["exception.ts:14",{"_index":15330,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:16",{"_index":10698,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["exception.ts:17",{"_index":8741,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:18",{"_index":20296,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:20",{"_index":8825,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["exception.ts:26",{"_index":14875,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:4",{"_index":8754,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception.ts:5",{"_index":8740,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:6",{"_index":20295,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["exception.ts:7",{"_index":10697,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:9",{"_index":8755,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception/not",{"_index":15324,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exceptionfactory",{"_index":10874,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["exceptionfilter",{"_index":10794,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptionname",{"_index":10851,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptions",{"_index":22603,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exceptionshandler",{"_index":19063,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["exchange",{"_index":1312,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.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":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"interfaces/ScanResult.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exchanges",{"_index":17091,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["excluded",{"_index":22552,"title":{},"body":{"license.html":{}}}],["excludedraftsofothers",{"_index":19884,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludedraftsofothers(creatorid",{"_index":19900,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers",{"_index":19885,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers(creatorid",{"_index":19902,"title":{},"body":{"classes/TaskScope.html":{}}}],["excluding",{"_index":22755,"title":{},"body":{"license.html":{}}}],["exclusion",{"_index":22839,"title":{},"body":{"license.html":{}}}],["exclusive",{"_index":22714,"title":{},"body":{"license.html":{}}}],["exclusively",{"_index":18612,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["excuse",{"_index":22762,"title":{},"body":{"license.html":{}}}],["exec",{"_index":23559,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["executable",{"_index":22397,"title":{},"body":{"license.html":{}}}],["execute",{"_index":20229,"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":21276,"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":{}}}],["executes",{"_index":22974,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["executing",{"_index":22361,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["execution",{"_index":13410,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["execution.id",{"_index":13411,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executioncontext",{"_index":8159,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["executionprovider",{"_index":13408,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executionproviders",{"_index":13386,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executions",{"_index":13409,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["exercise",{"_index":22691,"title":{},"body":{"license.html":{}}}],["exercising",{"_index":22464,"title":{},"body":{"license.html":{}}}],["exist",{"_index":1583,"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":2794,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/ContentElementUpdateVisitor.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":13676,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["existingaccounts",{"_index":13673,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts.length",{"_index":13674,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts[0].id",{"_index":13675,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingcourses",{"_index":6666,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingcourses.map((course",{"_index":6668,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingelements",{"_index":2675,"title":{},"body":{"entities/Board.html":{}}}],["existingentity",{"_index":11083,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["existinggroup",{"_index":16360,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.externalsource?.systemid",{"_index":16391,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.id",{"_index":16367,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.users",{"_index":16372,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupfromsystem.externalsource?.externalid",{"_index":16396,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser",{"_index":16387,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroupsofuser.filter",{"_index":16390,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinglessons",{"_index":14172,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existinglessons.map((l",{"_index":14174,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existingmatch",{"_index":21520,"title":{},"body":{"injectables/UserRepo.html":{}}}],["existingnames",{"_index":6355,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["existingnames.includes(composedname",{"_index":6379,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingnames.includes(name",{"_index":6372,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingrooms",{"_index":7524,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingrooms.includes(room",{"_index":7527,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingschool",{"_index":16324,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingschool.externalid",{"_index":18364,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["existingschool.id",{"_index":16364,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existingschool.officialschoolnumber",{"_index":16330,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingtargets",{"_index":4898,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtargets.find((item",{"_index":4904,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtasks",{"_index":19667,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existingtasks.map((t",{"_index":19669,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existinguser",{"_index":15441,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["existinguser.email",{"_index":16349,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.firstname",{"_index":16345,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.lastname",{"_index":16347,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.roles",{"_index":16351,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.schoolid",{"_index":16352,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguserloginmigration",{"_index":14110,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["existinguserloginmigration?.closedat",{"_index":14114,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["exists",{"_index":2801,"title":{},"body":{"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":{}}}],["existssync",{"_index":10325,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["existssync(folderpath",{"_index":10333,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["exitonerror",{"_index":14436,"title":{},"body":{"modules/LoggerModule.html":{}}}],["exp",{"_index":7017,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["expect",{"_index":23114,"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":23379,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazy(x,y,z)).to",{"_index":23360,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazysync(wrong",{"_index":23382,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(mockservice.getuser).tohavebeencalled",{"_index":23425,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).to",{"_index":23363,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).toequal(resultuser",{"_index":23426,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expectation",{"_index":23352,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expected",{"_index":3144,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["expecting",{"_index":23368,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expects",{"_index":22566,"title":{},"body":{"license.html":{}}}],["expensive",{"_index":19844,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["expert",{"_index":23636,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["expiration",{"_index":7030,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtValidationAdapter.html":{}}}],["expire",{"_index":18605,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["expireafterseconds",{"_index":10054,"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":18352,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["expires",{"_index":10190,"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":1611,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{}}}],["expiresindays",{"_index":18602,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["explains",{"_index":23504,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["explanation",{"_index":23628,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicit",{"_index":2045,"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":1198,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":6719,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.service.ts",{"_index":4994,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:140",{"_index":5020,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:148",{"_index":5024,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:18",{"_index":5004,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:25",{"_index":5013,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:41",{"_index":5009,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:65",{"_index":5011,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:85",{"_index":5016,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.uc",{"_index":6621,"title":{},"body":{"controllers/CourseController.html":{}}}],["export.uc.ts",{"_index":6713,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:15",{"_index":6717,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:9",{"_index":6715,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["exportcollection",{"_index":7830,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(@param('collectionname",{"_index":7854,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(collectionname",{"_index":7833,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollections",{"_index":7789,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{}}}],["exportcollections(options",{"_index":7794,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["exportcollectionstofilesystem(collections",{"_index":11765,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportcourse",{"_index":4997,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(courseid",{"_index":5012,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(currentuser",{"_index":6606,"title":{},"body":{"controllers/CourseController.html":{}}}],["exported",{"_index":11743,"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":11769,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportedcollections.push(`${collectionname}:${sortedbsondocuments.length",{"_index":11783,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exporting",{"_index":22966,"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":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":12312,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"injectables/TaskCopyUC.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["exposed",{"_index":5466,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exposes",{"_index":23260,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["express",{"_index":6616,"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":22794,"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":22641,"title":{},"body":{"license.html":{}}}],["ext",{"_index":13052,"title":{},"body":{"interfaces/IntrospectResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["ext_official_school_missing",{"_index":18361,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_mismatch",{"_index":18387,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_missing",{"_index":18357,"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":23051,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extended",{"_index":3812,"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":18896,"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/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":{},"classes/ClassInfoSearchListResponse.html":{},"interfaces/ClassProps.html":{},"classes/ClassSortParams.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":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.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/FederalStateEntity.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":{},"injectables/FilesStorageProducer.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":{},"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/ICurrentUser.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":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"classes/LoginRequestBody.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"interfaces/PlainTextMailContent.html":{},"injectables/PreviewProducer.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymScope.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/SchoolYearEntity.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/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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/UsersList.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":23065,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extensions",{"_index":22499,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["extent",{"_index":22379,"title":{},"body":{"license.html":{}}}],["external",{"_index":200,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.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":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersRosterService.html":{},"classes/GroupResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRepoLoader.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":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthLoginResponse.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PseudonymScope.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.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/ToolReference.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusResponseMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"interfaces/UserMetdata.html":{},"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":{}}}],["external_source_name",{"_index":4438,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["external_sub",{"_index":6993,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["external_tool_logo_fetch_failed",{"_index":8742,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["external_tool_logo_fetched",{"_index":8751,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["external_tool_logo_not_found",{"_index":8756,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}}}],["external_tool_logo_size_exceeded",{"_index":8826,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["external_tool_logo_wrong_file_type",{"_index":8828,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["external_tools",{"_index":8696,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["externalauthconfig",{"_index":13139,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["externalgroup",{"_index":16311,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalid",{"_index":16362,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalorganizationid",{"_index":16363,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.from",{"_index":16370,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.name",{"_index":16368,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.type",{"_index":16369,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.until",{"_index":16371,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.map(async",{"_index":16376,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupdto",{"_index":8419,"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":18263,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroups",{"_index":15695,"title":{},"body":{"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalgroups.some",{"_index":16395,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuser",{"_index":16377,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuserdto",{"_index":8430,"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/ExternalSourceResponse.html":{},"classes/ExternalUserDto.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.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":{}}}],["externalidtoken",{"_index":7075,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginResponseMapper.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{}}}],["externalorganizationid",{"_index":8422,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalrolename",{"_index":11158,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["externalschool",{"_index":13120,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalschool.externalid",{"_index":16326,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.name",{"_index":16328,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.officialschoolnumber",{"_index":16329,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschooldto",{"_index":8450,"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":13829,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["externalsource",{"_index":8458,"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":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupDto.html":{}}}],["externalsource.externalid",{"_index":11025,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsource.systemid",{"_index":11027,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsourceentity",{"_index":8463,"title":{"classes/ExternalSourceEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["externalsourceentityprops",{"_index":8466,"title":{"interfaces/ExternalSourceEntityProps.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["externalsourcename",{"_index":4321,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassSortParams.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["externalsourceresponse",{"_index":8473,"title":{"classes/ExternalSourceResponse.html":{}},"body":{"classes/ExternalSourceResponse.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["externalsub",{"_index":7021,"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":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltool'})@httpcode(httpstatus.no_content",{"_index":20441,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltool.config",{"_index":9236,"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":9457,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientsecret",{"_index":9460,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.secret",{"_index":9316,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.type",{"_index":9453,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.id",{"_index":8801,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersRosterService.html":{},"classes/ToolConfigurationMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltool.ishidden",{"_index":8609,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.islti11config(externaltool.config",{"_index":9315,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(externaltool.config",{"_index":9318,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(loadedtool.config",{"_index":9452,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(tool.config",{"_index":9329,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.isoauth2config(toupdate.config",{"_index":9346,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.logo",{"_index":8796,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{}}}],["externaltool.logourl",{"_index":8593,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.name",{"_index":8880,"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":8556,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltool.parameters.foreach((param",{"_index":8882,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["externaltool.url",{"_index":9241,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.version",{"_index":9242,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolconfig",{"_index":2562,"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":2566,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:6",{"_index":2564,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfigcreateparams",{"_index":2583,"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":2585,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:9",{"_index":2587,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigdo",{"_index":9227,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltoolconfigentity",{"_index":2575,"title":{"classes/ExternalToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigparams",{"_index":9126,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolconfigresponse",{"_index":2593,"title":{"classes/ExternalToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:10",{"_index":2595,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:7",{"_index":2596,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigurationservice",{"_index":8509,"title":{"injectables/ExternalToolConfigurationService.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"modules/ToolApiModule.html":{}}}],["externaltoolconfigurationuc",{"_index":8557,"title":{"injectables/ExternalToolConfigurationUc.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["externaltoolcontentbody",{"_index":5643,"title":{"classes/ExternalToolContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["externaltoolcreate",{"_index":9120,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams",{"_index":8614,"title":{"classes/ExternalToolCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams.config",{"_index":9185,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.ishidden",{"_index":9193,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.logourl",{"_index":9192,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.name",{"_index":9190,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.opennewtab",{"_index":9194,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.parameters",{"_index":9189,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.url",{"_index":9191,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltooldomapper",{"_index":20460,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolelement",{"_index":2826,"title":{"classes/ExternalToolElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelement.contextexternaltoolid",{"_index":5685,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelement.id",{"_index":17300,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementcontent",{"_index":8648,"title":{"classes/ExternalToolElementContent.html":{}},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementcontentbody",{"_index":8181,"title":{"classes/ExternalToolElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["externaltoolelementnodeentity",{"_index":3177,"title":{"entities/ExternalToolElementNodeEntity.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["externaltoolelementnodeentityprops",{"_index":8662,"title":{"interfaces/ExternalToolElementNodeEntityProps.html":{}},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["externaltoolelementprops",{"_index":8646,"title":{"interfaces/ExternalToolElementProps.html":{}},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["externaltoolelementresponse",{"_index":4011,"title":{"classes/ExternalToolElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementresponsemapper",{"_index":5582,"title":{"classes/ExternalToolElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolelementresponsemapper.getinstance",{"_index":5579,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["externaltoolelementresponsemapper.instance",{"_index":8675,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{}}}],["externaltoolentity",{"_index":8680,"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":9012,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolentityfactory",{"_index":8699,"title":{"classes/ExternalToolEntityFactory.html":{}},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolentityfactory.define",{"_index":8719,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolfactory",{"_index":7307,"title":{"classes/ExternalToolFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolfactory.define(externaltool",{"_index":7318,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolid",{"_index":5735,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/FeathersRosterService.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/ToolConfigurationMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltoolidparams",{"_index":8727,"title":{"classes/ExternalToolIdParams.html":{}},"body":{"classes/ExternalToolIdParams.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo",{"_index":8728,"title":{"classes/ExternalToolLogo.html":{}},"body":{"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.contenttype",{"_index":8735,"title":{},"body":{"classes/ExternalToolLogo.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.logo",{"_index":8733,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["externaltoollogofetchedloggable",{"_index":8748,"title":{"classes/ExternalToolLogoFetchedLoggable.html":{}},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchedloggable(logourl",{"_index":8808,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception",{"_index":8736,"title":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception(logourl",{"_index":8812,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception",{"_index":8752,"title":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception(toolid",{"_index":8816,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogoservice",{"_index":8567,"title":{"classes/ExternalToolLogoService.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"controllers/ToolController.html":{},"injectables/ToolReferenceService.html":{}}}],["externaltoollogosizeexceededloggableexception",{"_index":8780,"title":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["externaltoollogowrongfiletypeloggableexception",{"_index":8781,"title":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["externaltoolmodule",{"_index":5813,"title":{"modules/ExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["externaltoolparametervalidationservice",{"_index":8839,"title":{"injectables/ExternalToolParameterValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolparams",{"_index":20433,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolprops",{"_index":7268,"title":{"interfaces/ExternalToolProps.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolpseudonymentity",{"_index":8917,"title":{"entities/ExternalToolPseudonymEntity.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"classes/PseudonymScope.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltoolpseudonymentity(entityprops",{"_index":8973,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["externaltoolpseudonympromise",{"_index":17023,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolpseudonymrepo",{"_index":8931,"title":{"injectables/ExternalToolPseudonymRepo.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["externaltoolpseudonyms",{"_index":17010,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolrepo",{"_index":8840,"title":{"injectables/ExternalToolRepo.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["externaltoolrepomapper",{"_index":5876,"title":{"classes/ExternalToolRepoMapper.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentrydostoentities(entitydo.parameters",{"_index":5903,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.parameters",{"_index":5896,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.schoolparameters",{"_index":18141,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapdotoentityproperties(entitydo",{"_index":9021,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapentitytodo(entity",{"_index":9020,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrequestmapper",{"_index":9106,"title":{"injectables/ExternalToolRequestMapper.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponse",{"_index":9208,"title":{"classes/ExternalToolResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper",{"_index":9219,"title":{"injectables/ExternalToolResponseMapper.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.mapcustomparametertoresponse(externaltool.parameters",{"_index":20376,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(created",{"_index":20463,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(externaltool",{"_index":20475,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(tool",{"_index":20470,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(updated",{"_index":20479,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20457,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20434,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltools",{"_index":8523,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltools.data",{"_index":8601,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["externaltools.data.filter((tool",{"_index":8536,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.find",{"_index":8549,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.map",{"_index":20378,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltools.map((tooldo",{"_index":18173,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["externaltoolscope",{"_index":9011,"title":{"classes/ExternalToolScope.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{}}}],["externaltoolsearchlistresponse",{"_index":9264,"title":{"classes/ExternalToolSearchListResponse.html":{}},"body":{"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20725,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":20445,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolsearchparams",{"_index":9122,"title":{"classes/ExternalToolSearchParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSearchParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolsearchquery",{"_index":8998,"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":6100,"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/FeathersRosterService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["externaltoolservice.deleteexternaltool",{"_index":5342,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["externaltoolservicemapper",{"_index":8841,"title":{"injectables/ExternalToolServiceMapper.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["externaltoolsortby",{"_index":18882,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["externaltoolsortingmapper",{"_index":9009,"title":{"classes/ExternalToolSortingMapper.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["externaltoolsortingmapper.mapdosortordertoqueryorder",{"_index":9014,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltooluc",{"_index":9388,"title":{"injectables/ExternalToolUc.html":{}},"body":{"injectables/ExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdate",{"_index":9153,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams",{"_index":9151,"title":{"classes/ExternalToolUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams.config",{"_index":9172,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.id",{"_index":9179,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.ishidden",{"_index":9183,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.logourl",{"_index":9182,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.name",{"_index":9180,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.opennewtab",{"_index":9184,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.parameters",{"_index":9178,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.url",{"_index":9181,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolvalidationservice",{"_index":8837,"title":{"injectables/ExternalToolValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolversion",{"_index":18248,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["externaltoolversionservice",{"_index":8838,"title":{"injectables/ExternalToolVersionService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["externaluser",{"_index":13118,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.email",{"_index":16348,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.externalid",{"_index":16353,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.firstname",{"_index":16344,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.lastname",{"_index":16346,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.roles",{"_index":16339,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.includes(rolename.administrator",{"_index":17994,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.push(rolename.teacher",{"_index":17995,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluserdto",{"_index":9534,"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":8443,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["extra",{"_index":23701,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["extract",{"_index":12034,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["extractaccount",{"_index":13550,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractaccount(user",{"_index":13556,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue",{"_index":13551,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue(value",{"_index":13559,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractids(users",{"_index":6567,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extracting",{"_index":10872,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["extractjwt",{"_index":13168,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromauthheaderasbearertoken",{"_index":13172,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromextractors",{"_index":13171,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor",{"_index":13169,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor.ts",{"_index":13153,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.ts:6",{"_index":13156,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractparamsfromrequest",{"_index":13797,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractparamsfromrequest(request",{"_index":13804,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractreferences",{"_index":2966,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extractreferences(statuses",{"_index":2991,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extracts",{"_index":2283,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["extractuserlist(users",{"_index":6579,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["extractvalidationerrordetails",{"_index":1424,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["extractvalidationerrordetails(validationerror",{"_index":1440,"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":2884,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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":23314,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["facilitating",{"_index":22776,"title":{},"body":{"license.html":{}}}],["facilities",{"_index":22429,"title":{},"body":{"license.html":{}}}],["factories",{"_index":7812,"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":2506,"title":{},"body":{"classes/BaseFactory.html":{}}}],["factory/account.factory",{"_index":1628,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["fail",{"_index":22321,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failafter",{"_index":13783,"title":{},"body":{"injectables/LdapService.html":{}}}],["failed",{"_index":798,"title":{},"body":{"injectables/AccountLookupService.html":{},"classes/ApiValidationError.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"interfaces/ICleanOptions.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":14401,"title":{},"body":{"injectables/LocalStrategy.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failingfileids",{"_index":7970,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.length",{"_index":7971,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.push(result.fileid",{"_index":7978,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.tostring",{"_index":7983,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["fails",{"_index":11609,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":11352,"title":{},"body":{"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"license.html":{}}}],["fair",{"_index":22426,"title":{},"body":{"license.html":{}}}],["fallback",{"_index":19987,"title":{},"body":{"injectables/TaskUC.html":{}}}],["fallbackimage",{"_index":16451,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["false",{"_index":371,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"classes/CurrentUserMapper.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalStateEntity.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":{},"classes/GroupIdParams.html":{},"injectables/GroupRepo.html":{},"interfaces/ICleanOptions.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.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/PseudonymParams.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["false})@index",{"_index":9889,"title":{},"body":{"entities/FileEntity.html":{}}}],["false})@isoptional",{"_index":21769,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["false})@sanitizehtml",{"_index":17333,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["familiar",{"_index":23634,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["familienname",{"_index":17958,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["family",{"_index":22557,"title":{},"body":{"license.html":{}}}],["fantasy",{"_index":22243,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["far",{"_index":13715,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fashion",{"_index":22349,"title":{},"body":{"license.html":{}}}],["fast",{"_index":23311,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["favicon",{"_index":22178,"title":{},"body":{"dependencies.html":{}}}],["favor",{"_index":22563,"title":{},"body":{"license.html":{}}}],["featherjs",{"_index":7029,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathers",{"_index":1905,"title":{},"body":{"modules/AuthorizationModule.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtValidationAdapter.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":9754,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersapp.service(path",{"_index":9761,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersauthorizationservice",{"_index":1885,"title":{"injectables/FeathersAuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/NewsUc.html":{}}}],["feathersauthprovider",{"_index":1890,"title":{"injectables/FeathersAuthProvider.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["featherserror",{"_index":8394,"title":{"interfaces/FeathersError.html":{}},"body":{"classes/ErrorUtils.html":{},"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["featherserror)?.type",{"_index":8397,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["feathersexpress",{"_index":9759,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersexpress.services['nest",{"_index":23228,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersjs/authentication",{"_index":22043,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/configuration",{"_index":22046,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/errors",{"_index":7772,"title":{},"body":{"injectables/DashboardUc.html":{},"dependencies.html":{}}}],["feathersjs/express",{"_index":9748,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"dependencies.html":{}}}],["feathersjs/feathers",{"_index":22047,"title":{},"body":{"dependencies.html":{}}}],["feathersmodule",{"_index":1883,"title":{"modules/FeathersModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/FeathersModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersrosterservice",{"_index":9627,"title":{"injectables/FeathersRosterService.html":{}},"body":{"injectables/FeathersRosterService.html":{},"modules/PseudonymModule.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["feathersservice",{"_index":9737,"title":{"interfaces/FeathersService.html":{}},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceparams",{"_index":9741,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceprovider",{"_index":8404,"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":9750,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feature",{"_index":6712,"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":{},"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":22251,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature/sc",{"_index":22242,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature_disabled_app_will_not_be_created",{"_index":16791,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_disabled_middlewares_will_not_be_created",{"_index":16784,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_identity_management_enabled",{"_index":12002,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_login_enabled",{"_index":12003,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_store_enabled",{"_index":12004,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_imscc_course_export_enabled",{"_index":11853,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["features",{"_index":6472,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["featureundertest",{"_index":23405,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["federal",{"_index":12189,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolFactory.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstate",{"_index":9787,"title":{},"body":{"injectables/FederalStateService.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/SystemEntity.html":{}}}],["federalstateentity",{"_index":6464,"title":{"entities/FederalStateEntity.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstatefactory",{"_index":13990,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatefactory.build",{"_index":14003,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatenames",{"_index":16320,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstatenames.niedersachen",{"_index":16334,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstaterepo",{"_index":9770,"title":{"injectables/FederalStateRepo.html":{}},"body":{"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{}}}],["federalstates",{"_index":6463,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["federalstateservice",{"_index":9776,"title":{"injectables/FederalStateService.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{}}}],["fee",{"_index":22482,"title":{},"body":{"license.html":{}}}],["feedback",{"_index":4859,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feedbacklink",{"_index":4852,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feel",{"_index":1644,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fetch",{"_index":2681,"title":{},"body":{"entities/Board.html":{},"injectables/CourseCopyService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["fetchbase64logo",{"_index":8760,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchbase64logo(logourl",{"_index":8770,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetched",{"_index":8743,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["fetchedentity",{"_index":2417,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["fetchlogo",{"_index":8761,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchlogo(externaltool",{"_index":8772,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchopengraphdata",{"_index":16421,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["fetchopengraphdata(url",{"_index":16423,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["few",{"_index":23742,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["ffd8ffe0",{"_index":8783,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffd8ffe1",{"_index":8785,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffffff",{"_index":6745,"title":{},"body":{"classes/CourseFactory.html":{}}}],["field",{"_index":12043,"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":2632,"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":{},"classes/UsersList.html":{}}}],["fields",{"_index":2142,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":8003,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.collectionname",{"_index":11723,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["file.data",{"_index":9799,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.dto.ts",{"_index":6172,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:5",{"_index":6176,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:7",{"_index":6177,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:9",{"_index":6175,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.id",{"_index":8001,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.interface",{"_index":5173,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["file.interface.ts",{"_index":11856,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:2",{"_index":11857,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:3",{"_index":11858,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.isdirectory",{"_index":7998,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.mimetype",{"_index":9800,"title":{},"body":{"classes/FileDto.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.name",{"_index":9798,"title":{},"body":{"classes/FileDto.html":{}}}],["file.storagefilename",{"_index":8005,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.storageprovider",{"_index":8007,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file_could_not_be_copied_hint",{"_index":6311,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filecontent",{"_index":11750,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filecontentbody",{"_index":5644,"title":{"classes/FileContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["filecopy",{"_index":17165,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopy.map((copyfiledto",{"_index":17172,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservice",{"_index":3304,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["filecopyservicefactory",{"_index":4738,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["filecopystatus",{"_index":6321,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/TaskCopyService.html":{}}}],["filecouldnotbecopied",{"_index":6312,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedto",{"_index":6324,"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":{}}}],["filedtobuilder",{"_index":9809,"title":{"classes/FileDtoBuilder.html":{}},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(fileinfo.filename",{"_index":9823,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(name",{"_index":9828,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtos",{"_index":6304,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map",{"_index":6330,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map((filedto",{"_index":6323,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileelement",{"_index":2829,"title":{"classes/FileElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.alternativetext",{"_index":5654,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.caption",{"_index":5651,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.id",{"_index":17283,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["fileelementcontent",{"_index":9847,"title":{"classes/FileElementContent.html":{}},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementcontentbody",{"_index":8174,"title":{"classes/FileElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["fileelementnode",{"_index":3180,"title":{"entities/FileElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelementnodeprops",{"_index":9858,"title":{"interfaces/FileElementNodeProps.html":{}},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["fileelementprops",{"_index":9845,"title":{"interfaces/FileElementProps.html":{}},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["fileelementresponse",{"_index":3977,"title":{"classes/FileElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper",{"_index":5583,"title":{"classes/FileElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper.getinstance",{"_index":5575,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["fileelementresponsemapper.instance",{"_index":9868,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["fileentity",{"_index":7953,"title":{"entities/FileEntity.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/ServerConsoleModule.html":{}}}],["fileentityprops",{"_index":9917,"title":{"interfaces/FileEntityProps.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["filegroupstatus",{"_index":6335,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileid",{"_index":6334,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/DeleteFilesUc.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["fileinfo",{"_index":9819,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfo.mimetype",{"_index":9824,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfos",{"_index":10443,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filename",{"_index":6234,"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":{},"additional-documentation/nestjs-application.html":{}}}],["filename.split('.')[0",{"_index":11706,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filename=\"${encodeuri(fileresponse.name",{"_index":10569,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filename=\"${encodeuri(params.fwulearningcontent",{"_index":10744,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["filenameobj",{"_index":10110,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameobj.name",{"_index":10112,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filenameprefix",{"_index":6222,"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":10307,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filenames.map((filename",{"_index":11704,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filenamewithoutextension",{"_index":10109,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["fileownermodel",{"_index":9899,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["fileownermodel.user",{"_index":10378,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["fileparambuilder",{"_index":6309,"title":{"classes/FileParamBuilder.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileParamBuilder.html":{}}}],["fileparambuilder.build(copyentity.getschoolid",{"_index":6316,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparambuilder.build(originalentity.getschoolid",{"_index":6315,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparams",{"_index":6235,"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":10312,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filepermissionentity",{"_index":9897,"title":{"classes/FilePermissionEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionentityprops",{"_index":9983,"title":{"interfaces/FilePermissionEntityProps.html":{}},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionreferencemodel",{"_index":9988,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filerecord",{"_index":6188,"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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"modules/ServerConsoleModule.html":{}}}],["filerecord.creatorid",{"_index":6205,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.deletedsince",{"_index":6211,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.getpreviewstatus",{"_index":6213,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.id",{"_index":6194,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.mimetype",{"_index":6207,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name",{"_index":6195,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.parentid",{"_index":6203,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.parenttype",{"_index":6209,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.schoolid",{"_index":10565,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filerecord.securitycheck.status",{"_index":6201,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.size",{"_index":6199,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordcopy",{"_index":10074,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordcopy.securitycheck",{"_index":10076,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordfactory",{"_index":10113,"title":{"classes/FileRecordFactory.html":{}},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordfactory.define(filerecord",{"_index":10120,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordid",{"_index":6238,"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":{}}}],["filerecordlistresponse",{"_index":6219,"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":10141,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse.map((record",{"_index":10468,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordmapper",{"_index":10125,"title":{"classes/FileRecordMapper.html":{}},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordmapper.maptofilerecordresponse(filerecord",{"_index":10140,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordparams",{"_index":6225,"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":{}}}],["filerecordparenttype",{"_index":6189,"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/RecursiveCopyVisitor.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SingleFileParams.html":{}}}],["filerecordparenttype'})@isenum(filerecordparenttype",{"_index":10152,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["filerecordparenttype.boardnode",{"_index":17171,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["filerecordparenttype.course",{"_index":10122,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordparenttype.lesson",{"_index":10481,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.submission",{"_index":10483,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.task",{"_index":10482,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordrepo",{"_index":10155,"title":{"injectables/FileRecordRepo.html":{}},"body":{"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{}}}],["filerecordresponse",{"_index":6192,"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":10137,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse.id",{"_index":10473,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.name",{"_index":10474,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.parentid",{"_index":10475,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecords",{"_index":10048,"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":{}}}],["filerecords.map((filerecord",{"_index":10139,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/PreviewService.html":{}}}],["filerecordscanstatus",{"_index":6214,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordscope",{"_index":10166,"title":{"classes/FileRecordScope.html":{}},"body":{"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(false",{"_index":10183,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(true",{"_index":10185,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byparentid(parentid).bymarkedfordelete(false",{"_index":10186,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(false",{"_index":10188,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(true",{"_index":10189,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().bysecuritycheckrequesttoken(token",{"_index":10192,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordsecuritycheck",{"_index":10021,"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":6286,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["fileresponse",{"_index":10237,"title":{},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"classes/TestHelper.html":{}}}],["fileresponse.contentlength",{"_index":10570,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponse.contenttype",{"_index":10568,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponsebuilder",{"_index":10233,"title":{"classes/FileResponseBuilder.html":{}},"body":{"classes/FileResponseBuilder.html":{},"injectables/PreviewService.html":{}}}],["fileresponsebuilder.build(file",{"_index":16729,"title":{},"body":{"injectables/PreviewService.html":{}}}],["files",{"_index":3578,"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":{},"modules/PreviewGeneratorAMQPModule.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":7913,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:15",{"_index":7924,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:6",{"_index":7917,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.interface",{"_index":13295,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["files.interface.ts",{"_index":12065,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["files.length",{"_index":7979,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.map((file",{"_index":7973,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.service",{"_index":10490,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/TaskCopyService.html":{}}}],["files.service.ts",{"_index":6293,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:17",{"_index":6299,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:23",{"_index":6301,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:42",{"_index":6303,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:58",{"_index":6307,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.uc.ts",{"_index":7937,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:106",{"_index":7956,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:12",{"_index":7946,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:22",{"_index":7958,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:66",{"_index":7959,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:76",{"_index":7949,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:91",{"_index":7954,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files_storage_s3_connection",{"_index":11969,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{}}}],["filesdto",{"_index":10467,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesecuritycheckentity",{"_index":9901,"title":{"classes/FileSecurityCheckEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckentityprops",{"_index":10239,"title":{"interfaces/FileSecurityCheckEntityProps.html":{}},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus",{"_index":10244,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus.pending",{"_index":10245,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycontroller",{"_index":10247,"title":{"controllers/FileSecurityController.html":{}},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filesmodule",{"_index":10355,"title":{"modules/FilesModule.html":{}},"body":{"modules/FilesModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["filespreviewevents",{"_index":16626,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{}}}],["filespreviewevents.generate_preview",{"_index":16631,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["filespreviewexchange",{"_index":16624,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["filesrepo",{"_index":7944,"title":{"injectables/FilesRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{}}}],["filesservice",{"_index":10387,"title":{"injectables/FilesService.html":{}},"body":{"injectables/FilesService.html":{}}}],["filesservicebaseurl",{"_index":1310,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["filesstorageamqpmodule",{"_index":10409,"title":{"modules/FilesStorageAMQPModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules.html":{}}}],["filesstorageapimodule",{"_index":10418,"title":{"modules/FilesStorageApiModule.html":{}},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filesstorageclientadapterservice",{"_index":6298,"title":{"injectables/FilesStorageClientAdapterService.html":{}},"body":{"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SubmissionService.html":{},"injectables/TaskService.html":{}}}],["filesstorageclientmapper",{"_index":9973,"title":{"classes/FilesStorageClientMapper.html":{}},"body":{"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapcopyfilelistresponsetocopyfilesdto(response",{"_index":10444,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapcopyfileresponsetocopyfiledto(response",{"_index":10471,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapentitytoparenttype(parent",{"_index":9975,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["filesstorageclientmapper.mapfilerecordlistresponsetodomainfilesdto(response",{"_index":10446,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapfilerecordresponsetofiledto(record",{"_index":10469,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapstringtoparenttype(filerecordresponse.parenttype",{"_index":10472,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmodule",{"_index":3567,"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":10414,"title":{"injectables/FilesStorageConsumer.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageConsumer.html":{}}}],["filesstoragecontroller",{"_index":10422,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["filesstorageevents",{"_index":10514,"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":10521,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.delete_files_of_parent",{"_index":10527,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.list_files_of_parent",{"_index":10523,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageexchange",{"_index":10501,"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":1357,"title":{},"body":{"injectables/AntivirusService.html":{},"controllers/FileSecurityController.html":{}}}],["filesstoragemapper",{"_index":10518,"title":{"classes/FilesStorageMapper.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{}}}],["filesstoragemapper.maptofilerecordlistresponse(filerecords",{"_index":10526,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstoragemapper.maptofilerecordresponse(filerecord",{"_index":10566,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filesstoragemodule",{"_index":10413,"title":{"modules/FilesStorageModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["filesstorageproducer",{"_index":10432,"title":{"injectables/FilesStorageProducer.html":{}},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{}}}],["filesstorageservice",{"_index":10496,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["filesstoragetestmodule",{"_index":10642,"title":{"modules/FilesStorageTestModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules.html":{}}}],["filesstorageuc",{"_index":10260,"title":{},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filestatuses",{"_index":6329,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filestorageauthorizationcontext",{"_index":23664,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["filestorageconfig",{"_index":11975,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["filestoragemqproducer",{"_index":10431,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesystem",{"_index":7796,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["filesystemadapter",{"_index":10273,"title":{"injectables/FileSystemAdapter.html":{}},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filesystemmodule",{"_index":10344,"title":{"modules/FileSystemModule.html":{}},"body":{"modules/FileSystemModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filetype",{"_index":17104,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["filetyperesult",{"_index":17107,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["fileupload_enabled=false",{"_index":23609,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["fileurlparams",{"_index":6233,"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":6305,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements",{"_index":6319,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements.foreach",{"_index":19619,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["fill",{"_index":23457,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["filled",{"_index":8891,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["filledpathparams",{"_index":261,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledpathparams.join",{"_index":271,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledtemplate",{"_index":8793,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["filter",{"_index":7810,"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/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":11732,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filter((element",{"_index":6418,"title":{},"body":{"classes/CopyMapper.html":{}}}],["filter((entity",{"_index":19413,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["filter((group",{"_index":18051,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((groupuser",{"_index":11290,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["filter((key",{"_index":9385,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["filter((match",{"_index":13039,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["filter((rolename",{"_index":21366,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["filter((sanisgroupuser",{"_index":18040,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((systemid",{"_index":11260,"title":{},"body":{"injectables/GroupUc.html":{}}}],["filter((user",{"_index":13711,"title":{},"body":{"classes/KeycloakSeedService.html":{},"injectables/SanisResponseMapper.html":{}}}],["filter(issubmissionitem",{"_index":8249,"title":{},"body":{"injectables/ElementUc.html":{}}}],["filter.ts",{"_index":15142,"title":{},"body":{"interfaces/NewsTargetFilter.html":{}}}],["filter/global",{"_index":8372,"title":{},"body":{"modules/ErrorModule.html":{}}}],["filterallowed",{"_index":4148,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterallowed(userid",{"_index":4161,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterbypermission",{"_index":8060,"title":{},"body":{"classes/DtoCreator.html":{}}}],["filterbypermission(elements",{"_index":8078,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtercoursesbytoolavailability",{"_index":9635,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["filtercoursesbytoolavailability(courses",{"_index":9649,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["filtered",{"_index":6365,"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":6369,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filtered.length",{"_index":6368,"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":6371,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filteredaccounts",{"_index":1134,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts.length",{"_index":1138,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts[0].id.tostring",{"_index":1145,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredcollectionswithfilepaths",{"_index":11717,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredcollectionswithfilepaths.length",{"_index":11720,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredpathobjects",{"_index":17909,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["filteredtoolreferences",{"_index":20706,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["filteredusers",{"_index":16384,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["filterforavailableexternaltools",{"_index":8512,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableexternaltools(externaltools",{"_index":8520,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools",{"_index":8513,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools(schoolexternaltools",{"_index":8525,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools",{"_index":8514,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools(externaltools",{"_index":8529,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterimportuserparams",{"_index":10655,"title":{"classes/FilterImportUserParams.html":{}},"body":{"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["filtermatchtype",{"_index":10668,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.auto",{"_index":12907,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.manual",{"_index":12909,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.none",{"_index":12911,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filternewsparams",{"_index":10682,"title":{"classes/FilterNewsParams.html":{}},"body":{"classes/FilterNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["filterparametersforscope",{"_index":8515,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparametersforscope(externaltool",{"_index":8532,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparams",{"_index":19288,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterparams.onlyoauth",{"_index":19307,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterquery",{"_index":2394,"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/PseudonymScope.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":10673,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/RoleNameMapper.html":{}}}],["filterroletype.admin",{"_index":17544,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.student",{"_index":17546,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.teacher",{"_index":17545,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filters",{"_index":6901,"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":19825,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.classes",{"_index":12959,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.finished.value",{"_index":19818,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.firstname",{"_index":12951,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.flagged",{"_index":12963,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.lastname",{"_index":12953,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.loginname",{"_index":12955,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.matches",{"_index":12961,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.name.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":21526,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters.role",{"_index":12957,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters?.afterduedateornone",{"_index":19821,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.availableon",{"_index":19823,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.draft",{"_index":19829,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.finished",{"_index":19816,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.hidden",{"_index":14224,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["filters?.name",{"_index":21523,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters?.nofutureavailabledate",{"_index":19831,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.onlyactivecourses",{"_index":6928,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["filtersubmissionsbypermission",{"_index":19230,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtersubmissionsbypermission(submissions",{"_index":19234,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtertoolswithpermissions",{"_index":6051,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filtertoolswithpermissions(userid",{"_index":6063,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filterundefined",{"_index":14624,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["filteruserparams",{"_index":10693,"title":{"classes/FilterUserParams.html":{}},"body":{"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/UserMatchMapper.html":{}}}],["final",{"_index":11381,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["finally",{"_index":14854,"title":{},"body":{"classes/MigrationResponse.html":{},"license.html":{}}}],["find",{"_index":4661,"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":{},"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((item",{"_index":8250,"title":{},"body":{"injectables/ElementUc.html":{}}}],["find(@query",{"_index":19304,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(filterparams",{"_index":19281,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(params",{"_index":9744,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["find(query",{"_index":5853,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["findaccountbydbcaccountid",{"_index":12679,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcaccountid(accountdbcaccountid",{"_index":12693,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid",{"_index":12680,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid(accountdbcuserid",{"_index":12697,"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":12700,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["findaccountbyid(currentuser",{"_index":514,"title":{},"body":{"controllers/AccountController.html":{}}}],["findaccountbyid(id",{"_index":13563,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername",{"_index":12681,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername(username",{"_index":12702,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findall",{"_index":14949,"title":{},"body":{"controllers/NewsController.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findall(currentuser",{"_index":14955,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TaskController.html":{}}}],["findall(userid",{"_index":19950,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallbyconfigtype",{"_index":8993,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbyconfigtype(type",{"_index":9000,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbycontext",{"_index":6023,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycontext(contextref",{"_index":6031,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycourseids",{"_index":14211,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbycourseids(courseids",{"_index":14214,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbyparentids",{"_index":19742,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyparentids(parentids",{"_index":19748,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyschoolid",{"_index":4454,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbyschoolid(schoolid",{"_index":4458,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["findallbytask",{"_index":19202,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{}}}],["findallbytask(taskid",{"_index":19207,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findallbytask(userid",{"_index":19236,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["findallbytaskids",{"_index":19150,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbytaskids(taskids",{"_index":19154,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbyuser",{"_index":6970,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuser(userid",{"_index":6972,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuserid",{"_index":4455,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallbyuserid(userid",{"_index":4460,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/SubmissionRepo.html":{}}}],["findallclassesforschool",{"_index":11190,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findallclassesforschool(userid",{"_index":11203,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findallcoursegroupsbyuserid",{"_index":6797,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursegroupsbyuserid(userid",{"_index":6802,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["findallcoursesbyuserid",{"_index":6955,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallcoursesbyuserid(userid",{"_index":6960,"title":{},"body":{"injectables/CourseService.html":{}}}],["findallfinished",{"_index":19542,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findallfinished(currentuser",{"_index":19552,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallfinished(userid",{"_index":19952,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallfinishedbyparentids",{"_index":19743,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallfinishedbyparentids(parentids",{"_index":19752,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallforstudent",{"_index":19942,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforstudent(user",{"_index":19954,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher",{"_index":6896,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/TaskUC.html":{}}}],["findallforteacher(user",{"_index":19956,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher(userid",{"_index":6904,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher",{"_index":6897,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher(userid",{"_index":6906,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findallforteam",{"_index":20071,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforteam(urlparams",{"_index":20072,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforuser",{"_index":15144,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallforuser(userid",{"_index":15154,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallimportusers",{"_index":12738,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallimportusers(currentuser",{"_index":12748,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findalllessonsbyuserid",{"_index":14277,"title":{},"body":{"injectables/LessonService.html":{}}}],["findalllessonsbyuserid(userid",{"_index":14284,"title":{},"body":{"injectables/LessonService.html":{}}}],["findallpublished",{"_index":15076,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallpublished(targets",{"_index":15079,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findalltasks",{"_index":19543,"title":{},"body":{"controllers/TaskController.html":{}}}],["findalltasks(currentuser",{"_index":19555,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallunmatchedusers",{"_index":12739,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunmatchedusers(currentuser",{"_index":12751,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunpublishedbyuser",{"_index":15077,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallunpublishedbyuser(targets",{"_index":15082,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findandcount",{"_index":10157,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findandcount(scope",{"_index":10165,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyclassandid",{"_index":3308,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclassandid(doclass",{"_index":3321,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclientidandislocal",{"_index":14688,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(clientid",{"_index":14741,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(oauthclientid",{"_index":14691,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbycourseid",{"_index":3662,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseid(courseid",{"_index":3667,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseids",{"_index":6775,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbycourseids(courseids",{"_index":6776,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbyemail",{"_index":21499,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyemail(email",{"_index":21503,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid",{"_index":14014,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid(externalid",{"_index":14018,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalidorfail",{"_index":20887,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalidorfail(externalid",{"_index":20894,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalsource",{"_index":11064,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternalsource(externalid",{"_index":11068,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternaltoolid",{"_index":18120,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyexternaltoolid(toolid",{"_index":18129,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyfilter",{"_index":19428,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyfilter(type",{"_index":19430,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyid",{"_index":12,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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/ContextExternalToolService.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.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/SchoolExternalToolService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.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":4797,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyid(cardid",{"_index":4102,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyid(columnid",{"_index":4970,"title":{},"body":{"injectables/ColumnService.html":{}}}],["findbyid(contextexternaltoolid",{"_index":6033,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findbyid(courseid",{"_index":6962,"title":{},"body":{"injectables/CourseService.html":{}}}],["findbyid(elementid",{"_index":5599,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["findbyid(id",{"_index":40,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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/ExternalToolService.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/SchoolYearService.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":14287,"title":{},"body":{"injectables/LessonService.html":{}}}],["findbyid(schoolexternaltoolid",{"_index":18203,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findbyid(submissionid",{"_index":19210,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findbyid(taskid",{"_index":19920,"title":{},"body":{"injectables/TaskService.html":{}}}],["findbyids",{"_index":3309,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyids(cardids",{"_index":4105,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyids(ids",{"_index":3326,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyname",{"_index":8994,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbyname(name",{"_index":9002,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbynames",{"_index":17552,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbynames(names",{"_index":17555,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbyoauth2configclientid",{"_index":8995,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauth2configclientid(clientid",{"_index":9004,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauthclientid",{"_index":14689,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyoauthclientid(oauthclientid",{"_index":14694,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyowneruserid",{"_index":10361,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyowneruserid(owneruserid",{"_index":10365,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyparentid",{"_index":10158,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyparentid(parentid",{"_index":10168,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbypermissionrefid",{"_index":10362,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbypermissionrefid(permissionrefid",{"_index":10368,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyschoolid",{"_index":18121,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolid(schoolid",{"_index":18131,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolidandparentid",{"_index":10159,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentid(schoolid",{"_index":10170,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete",{"_index":10160,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete(schoolid",{"_index":10172,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolnumber",{"_index":14015,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyschoolnumber(officialschoolnumber",{"_index":14020,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyscopeandscopeid",{"_index":21991,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbyscopeandscopeid(scopeid",{"_index":21992,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbysecuritycheckrequesttoken",{"_index":10161,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysecuritycheckrequesttoken(token",{"_index":10174,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysingleparent",{"_index":19744,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbysingleparent(creatorid",{"_index":19754,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbytype",{"_index":19460,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbytype(type",{"_index":19464,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbyuser",{"_index":11065,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuser(user",{"_index":11071,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyuserandtoolorthrow",{"_index":16981,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findbyuserandtoolorthrow(user",{"_index":15293,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/PseudonymService.html":{}}}],["findbyuserid",{"_index":13,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/LessonRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["findbyuseridandtoolid",{"_index":8936,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolid(userid",{"_index":8948,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail",{"_index":8937,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail(userid",{"_index":8950,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridorfail",{"_index":14,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyuseridorfail(userid",{"_index":44,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid",{"_index":15,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid(username",{"_index":46,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findcards",{"_index":4149,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcards(userid",{"_index":4164,"title":{},"body":{"injectables/CardUc.html":{}}}],["findclassesforschool",{"_index":4411,"title":{},"body":{"injectables/ClassService.html":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{}}}],["findclassesforschool(pagination",{"_index":10946,"title":{},"body":{"controllers/GroupController.html":{}}}],["findclassesforschool(schoolid",{"_index":4416,"title":{},"body":{"injectables/ClassService.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{}}}],["findcombinedclasslistforschool",{"_index":11191,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findcombinedclasslistforschool(schoolid",{"_index":11206,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findcontextexternaltools",{"_index":6024,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcontextexternaltools(query",{"_index":6035,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcurrentyear",{"_index":18443,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["finddescendants",{"_index":3623,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendants(node",{"_index":3627,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany",{"_index":3624,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany(nodes",{"_index":3629,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddocumentsofcollection",{"_index":7869,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["finddocumentsofcollection(collectionname",{"_index":7881,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["findevent",{"_index":3922,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findevent(userid",{"_index":3925,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findexistinggridelement",{"_index":7643,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistinggridelement(elementwithposition",{"_index":7656,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistingtargets",{"_index":4889,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexistingtargets(columnboardids",{"_index":4893,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexternaltool",{"_index":9390,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["findexternaltool(currentuser",{"_index":20443,"title":{},"body":{"controllers/ToolController.html":{}}}],["findexternaltool(userid",{"_index":9400,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["findexternaltoolbyname",{"_index":9276,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname(name",{"_index":9294,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid",{"_index":9277,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid(clientid",{"_index":9296,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolpseudonymsbyuserid",{"_index":16982,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltoolpseudonymsbyuserid(userid",{"_index":16996,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltools",{"_index":9278,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltools(query",{"_index":9298,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findfederalstatebyname",{"_index":9780,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfederalstatebyname(name",{"_index":9783,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfilesaccessiblebyuser",{"_index":10389,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesaccessiblebyuser(userid",{"_index":10394,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser",{"_index":10390,"title":{},"body":{"injectables/FilesService.html":{}}}],["findfilesownedbyuser(userid",{"_index":10396,"title":{},"body":{"injectables/FilesService.html":{}}}],["findforcleanup",{"_index":10363,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforcleanup(thresholddate",{"_index":10371,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforuser",{"_index":6605,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findforuser(@currentuser",{"_index":7383,"title":{},"body":{"controllers/DashboardController.html":{}}}],["findforuser(currentuser",{"_index":6611,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findgroupsoftypeclassforschool",{"_index":11192,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findgroupsoftypeclassforschool(schoolid",{"_index":11208,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findidsbyexternalreference",{"_index":3310,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findidsbyexternalreference(reference",{"_index":3328,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findimportusers",{"_index":12930,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusers(school",{"_index":12936,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount",{"_index":12931,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount(query",{"_index":12938,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["finding",{"_index":3642,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["findlegacyltitool",{"_index":15228,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findmany",{"_index":16,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findmany(offset",{"_index":54,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findmigrationbyschool",{"_index":21246,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyschool(schoolid",{"_index":21257,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser",{"_index":21247,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser(userid",{"_index":21259,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmultiplebyuserid",{"_index":17,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findmultiplebyuserid(userids",{"_index":60,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["findnewsandcount",{"_index":15078,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnewsandcount(query",{"_index":15084,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnextcloudtool",{"_index":15229,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findone",{"_index":6898,"title":{},"body":{"injectables/CourseRepo.html":{},"controllers/NewsController.html":{}}}],["findone(@param",{"_index":14983,"title":{},"body":{"controllers/NewsController.html":{}}}],["findone(courseid",{"_index":6909,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findone(urlparams",{"_index":14958,"title":{},"body":{"controllers/NewsController.html":{}}}],["findonebyid",{"_index":10162,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyid(id",{"_index":10176,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyidforuser",{"_index":15145,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidforuser(id",{"_index":15159,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidmarkedfordelete",{"_index":10163,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebyidmarkedfordelete(id",{"_index":10178,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebytoken",{"_index":18724,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findonebytoken(token",{"_index":18725,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findoneorfail",{"_index":10164,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfail(scope",{"_index":10180,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfailhandler",{"_index":10605,"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":16983,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatepseudonym(user",{"_index":16998,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatetargets",{"_index":4890,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findorcreatetargets(columnboardids",{"_index":4896,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findparentofid",{"_index":3311,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findparentofid(childid",{"_index":3331,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findpseudonym",{"_index":8938,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonym(query",{"_index":8952,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{}}}],["findpseudonymbypseudonym",{"_index":8939,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{}}}],["findpseudonymbypseudonym(pseudonym",{"_index":8955,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/PseudonymService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["findpseudonymbypseudonym(userid",{"_index":17034,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["findpseudonymsbyuserid",{"_index":16984,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findpseudonymsbyuserid(userid",{"_index":17002,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["finds",{"_index":890,"title":{},"body":{"injectables/AccountRepo.html":{},"controllers/SystemController.html":{},"injectables/TeamsRepo.html":{}}}],["findschoolexternaltools",{"_index":18192,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["findschoolexternaltools(query",{"_index":18204,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findschoolexternaltools(userid",{"_index":18233,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["findstatusesbytask",{"_index":18999,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findstatusesbytask(currentuser",{"_index":19003,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findsubmissionitems",{"_index":19110,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsubmissionitems(userid",{"_index":19114,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsystemnamesforgroups",{"_index":11193,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findsystemnamesforgroups(groups",{"_index":11210,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findtasksandcount",{"_index":19745,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findtasksandcount(query",{"_index":19756,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findteambyid",{"_index":4650,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findteambyid(teamid",{"_index":4658,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findtoolbyclientid",{"_index":15949,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["findtoolbyclientid(clientid",{"_index":15953,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["finduserafterprovisioningorthrow",{"_index":15387,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserafterprovisioningorthrow(externaluserid",{"_index":15403,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserdatafromteams",{"_index":20123,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserdatafromteams(userid",{"_index":20128,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserloginmigrationbyschool",{"_index":21033,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["finduserloginmigrationbyschool(user",{"_index":21046,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["finduserloginmigrationbyschool(userid",{"_index":21304,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["findusers",{"_index":21575,"title":{},"body":{"injectables/UserService.html":{}}}],["findusers(query",{"_index":21586,"title":{},"body":{"injectables/UserService.html":{}}}],["findusersforgroup",{"_index":11194,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findusersforgroup(group",{"_index":11212,"title":{},"body":{"injectables/GroupUc.html":{}}}],["findwithoutimportuser",{"_index":21500,"title":{},"body":{"injectables/UserRepo.html":{}}}],["findwithoutimportuser(school",{"_index":21507,"title":{},"body":{"injectables/UserRepo.html":{}}}],["fine",{"_index":23345,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["finish",{"_index":19544,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(@param",{"_index":19582,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(urlparams",{"_index":19557,"title":{},"body":{"controllers/TaskController.html":{}}}],["finishcoursecopying",{"_index":6645,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishcoursecopying(coursecopy",{"_index":6656,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finished",{"_index":7935,"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":19685,"title":{},"body":{"classes/TaskFactory.html":{}}}],["finishedat",{"_index":18353,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["finishedcoursecopy",{"_index":6673,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishedcourseids",{"_index":19769,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["finishedids",{"_index":12484,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids",{"_index":12482,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids.map((id",{"_index":12485,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserid",{"_index":12496,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids",{"_index":12492,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids.some((finisheduserid",{"_index":12495,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishforuser(user",{"_index":12545,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishing",{"_index":18351,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["first",{"_index":575,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"entities/ImportUser.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/NewsUc.html":{},"interfaces/OauthCurrentUser.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":16283,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["firstchar",{"_index":6590,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["firstclass",{"_index":12830,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["firstname",{"_index":851,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.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":{},"interfaces/UserBoardRoles.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["firstname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13019,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["firstnamesearchvalues",{"_index":11801,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["firstvaluefrom",{"_index":2293,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["firstvaluefrom(observable",{"_index":2307,"title":{},"body":{"injectables/BBBService.html":{}}}],["firstvaluefrom(respobservable",{"_index":11575,"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":5428,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["fitness",{"_index":22797,"title":{},"body":{"license.html":{}}}],["fix",{"_index":1874,"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":23017,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["fixed",{"_index":6887,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/RpcMessageProducer.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["fixes",{"_index":22889,"title":{},"body":{"todo.html":{}}}],["fixing",{"_index":23734,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["fixme",{"_index":5057,"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":23440,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fixups",{"_index":23507,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["flag",{"_index":10691,"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":20768,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flag.params.ts:7",{"_index":20770,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flagged",{"_index":10658,"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":7809,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["flags.ts",{"_index":18308,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["flexible",{"_index":23092,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["flow",{"_index":13381,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["flow.id",{"_index":13395,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flow.service",{"_index":12638,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["flow.service.ts",{"_index":15948,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:11",{"_index":15952,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:18",{"_index":15954,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:39",{"_index":15956,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.uc",{"_index":15891,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["flow.uc.ts",{"_index":15808,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:106",{"_index":15978,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:15",{"_index":15814,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:19",{"_index":15970,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:21",{"_index":15818,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:26",{"_index":15820,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:28",{"_index":15974,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:33",{"_index":15976,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:48",{"_index":15972,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:50",{"_index":15823,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:58",{"_index":15816,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:6",{"_index":16004,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:80",{"_index":15826,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:9",{"_index":16006,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:94",{"_index":15980,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flowalias",{"_index":13378,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["flows",{"_index":13391,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flows.find((tempflow",{"_index":13393,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flush",{"_index":879,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["fn",{"_index":3522,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fn(i",{"_index":3558,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fname",{"_index":1168,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["folder",{"_index":7821,"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":11336,"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":15262,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foldername",{"_index":15273,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["folderpath",{"_index":10290,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["folders",{"_index":15276,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["folgendem",{"_index":4861,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["follow",{"_index":5455,"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":7982,"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":23530,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["foo",{"_index":23036,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["foractivecourses",{"_index":6919,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forallgrouptypes",{"_index":6944,"title":{},"body":{"classes/CourseScope.html":{}}}],["forallgrouptypes(userid",{"_index":6914,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forbid",{"_index":22462,"title":{},"body":{"license.html":{}}}],["forbidden",{"_index":10708,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/ToolLaunchController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["forbidden'})@apibadrequestresponse({description",{"_index":20498,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["forbidden_exception",{"_index":10701,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["forbidden_operation",{"_index":10707,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["forbiddenexception",{"_index":2783,"title":{},"body":{"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/UserLoginMigrationUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["forbiddenexception(\"you",{"_index":15843,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["forbiddenexception('accessing",{"_index":21315,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["forbiddenexception('could",{"_index":14182,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["forbiddenexception('some",{"_index":23278,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["forbiddenexception('user",{"_index":19135,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["forbiddenexception('you",{"_index":17763,"title":{},"body":{"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["forbiddenexception(`cannot",{"_index":2788,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["forbiddenexception(errorobj.message",{"_index":8361,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["forbiddenexception(errorstatus.guests_cannot_join_conference",{"_index":21906,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["forbiddenexception(errorstatus.insufficient_permission",{"_index":21821,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["forbiddenexception})@apiresponse({status",{"_index":2905,"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":3994,"title":{},"body":{"controllers/CardController.html":{}}}],["forbiddenexception})@get(':submissioncontainerid",{"_index":3727,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["forbiddenloggableexception",{"_index":1978,"title":{"classes/ForbiddenLoggableException.html":{}},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenloggableexception(user.id",{"_index":2009,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenloggableexception(userid",{"_index":1981,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["forbiddenoperationerror",{"_index":507,"title":{"classes/ForbiddenOperationError.html":{}},"body":{"controllers/AccountController.html":{},"classes/ForbiddenOperationError.html":{},"controllers/LoginController.html":{}}}],["forbidnonwhitelisted",{"_index":10871,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["forbidunknownvalues",{"_index":10873,"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.ts",{"_index":3798,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force.error.ts:5",{"_index":3800,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force_subject_identifier",{"_index":358,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["forcepasswordchange",{"_index":12583,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["forcepathstyle",{"_index":7992,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["forceserverobjectid",{"_index":7896,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["forceupdate",{"_index":6252,"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":6945,"title":{},"body":{"classes/CourseScope.html":{}}}],["forcourseid(courseid",{"_index":6923,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["foreach((key",{"_index":9387,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["foreign",{"_index":13835,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["foreignfield",{"_index":21531,"title":{},"body":{"injectables/UserRepo.html":{}}}],["form",{"_index":13546,"title":{},"body":{"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/GetFileResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"classes/JwtTestFactory.html":{},"modules/LoggerModule.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/UsersList.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["format.'})@apioperation({summary",{"_index":20389,"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":12444,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/RichText.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["formatted",{"_index":776,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["formattedjwt",{"_index":1649,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["formatting",{"_index":23015,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["forms",{"_index":22508,"title":{},"body":{"license.html":{}}}],["forroot",{"_index":1297,"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":1298,"title":{},"body":{"modules/AntivirusModule.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":18573,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forteacher",{"_index":6946,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacher(userid",{"_index":6918,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher",{"_index":6947,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher(userid",{"_index":6917,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forwardref",{"_index":1953,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/PseudonymModule.html":{},"injectables/SubmissionItemUc.html":{},"modules/TaskModule.html":{},"modules/ToolLaunchModule.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":{},"classes/KeycloakSeedService.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":{},"controllers/PseudonymController.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/TooManyPseudonymsLoggableException.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":8271,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.error.ts:4",{"_index":8273,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.exception",{"_index":8582,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["found.loggable",{"_index":15325,"title":{},"body":{"classes/NotFoundLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["found.loggable.ts",{"_index":18258,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:4",{"_index":18259,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:7",{"_index":18260,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["foundaccount.systemid",{"_index":1136,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{}}}],["foundaccounts",{"_index":651,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/KeycloakMigrationService.html":{}}}],["foundation",{"_index":22267,"title":{},"body":{"license.html":{}}}],["foundentry",{"_index":5379,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.name",{"_index":5422,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.value",{"_index":5419,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry?.value",{"_index":5416,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundproperty",{"_index":266,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundproperty.value",{"_index":269,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundpseudonym",{"_index":17036,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundpseudonym.userid",{"_index":17038,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["foundschool",{"_index":18436,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundschool.id",{"_index":18438,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundtools",{"_index":15315,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools.length",{"_index":15317,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools[0",{"_index":15320,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundusers",{"_index":1124,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["foundusers.length",{"_index":1137,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers[0].id.tostring",{"_index":1143,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["frame",{"_index":11369,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["free",{"_index":1645,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["freedom",{"_index":22285,"title":{},"body":{"license.html":{}}}],["freejoin",{"_index":2236,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["freeport",{"_index":22128,"title":{},"body":{"dependencies.html":{}}}],["freuen",{"_index":4855,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["friendly",{"_index":7305,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["friendlyurl",{"_index":7132,"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":21768,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["from.options",{"_index":22028,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.permission",{"_index":22026,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.url",{"_index":22027,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["fromcookie",{"_index":13154,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromcookie(name",{"_index":13155,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromgroup",{"_index":10879,"title":{},"body":{"classes/GridElement.html":{}}}],["fromgroup(title",{"_index":7476,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedgroup",{"_index":10880,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedgroup(id",{"_index":7474,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedreference",{"_index":10881,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedreference(id",{"_index":7473,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["fromsinglereference",{"_index":10882,"title":{},"body":{"classes/GridElement.html":{}}}],["fromsinglereference(reference",{"_index":7475,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["front",{"_index":14527,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["frontchannel",{"_index":15593,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["frontchannel_logout_uri",{"_index":7134,"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":7281,"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":10326,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.accountsfile",{"_index":13718,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.usersfile",{"_index":13720,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.rm",{"_index":10339,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fsp",{"_index":10324,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fulfil",{"_index":23467,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fulfill",{"_index":23103,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fulfilling",{"_index":22448,"title":{},"body":{"license.html":{}}}],["fulfills",{"_index":23290,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["fulfils",{"_index":23746,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["full",{"_index":10298,"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":17366,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fullname",{"_index":2168,"title":{},"body":{"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["fullpath",{"_index":17339,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fully",{"_index":21324,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["function",{"_index":687,"title":{},"body":{"classes/AccountFactory.html":{},"modules/AccountModule.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"modules/EncryptionModule.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.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/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SchoolExternalToolFactory.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":{},"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":6433,"title":{},"body":{"modules/CoreModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["functionalities",{"_index":23514,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["functionality",{"_index":20034,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["functioning",{"_index":22577,"title":{},"body":{"license.html":{}}}],["functions",{"_index":21263,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["funktionen",{"_index":4826,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["further",{"_index":22533,"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":23404,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fut.somefunction",{"_index":23424,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["future",{"_index":1941,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":10716,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["fwu_content_s3_connection",{"_index":10769,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["fwulearningcontent",{"_index":10780,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["fwulearningcontentscontroller",{"_index":10711,"title":{"controllers/FwuLearningContentsController.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["fwulearningcontentsmodule",{"_index":10746,"title":{"modules/FwuLearningContentsModule.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules.html":{}}}],["fwulearningcontentstestmodule",{"_index":10757,"title":{"modules/FwuLearningContentsTestModule.html":{}},"body":{"modules/FwuLearningContentsTestModule.html":{},"modules.html":{}}}],["fwulearningcontentsuc",{"_index":10721,"title":{"injectables/FwuLearningContentsUc.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["g",{"_index":6327,"title":{},"body":{"injectables/CopyFilesService.html":{},"additional-documentation/nestjs-application.html":{}}}],["gates",{"_index":23018,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["general",{"_index":20035,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["generall",{"_index":2453,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["generally",{"_index":22411,"title":{},"body":{"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/PreviewProducer.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":{}}}],["generate(payload",{"_index":16687,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generatearray",{"_index":3509,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatearray(length",{"_index":3521,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatebrokersystems",{"_index":19461,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatebrokersystems(systems",{"_index":19466,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatechecksum",{"_index":2242,"title":{},"body":{"injectables/BBBService.html":{}}}],["generatechecksum(callname",{"_index":2263,"title":{},"body":{"injectables/BBBService.html":{}}}],["generateconfig",{"_index":11484,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generateconfig(oauthclientid",{"_index":11492,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generated",{"_index":6250,"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":2511,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedid.tohexstring",{"_index":2514,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedsystem",{"_index":19494,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.id",{"_index":19496,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig",{"_index":19497,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.idphint",{"_index":19498,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.redirecturi",{"_index":19500,"title":{},"body":{"injectables/SystemService.html":{}}}],["generateemptydashboard",{"_index":7740,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generateemptydashboard(userid",{"_index":7753,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generategroupfoldername",{"_index":15230,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupfoldername(teamid",{"_index":15241,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid",{"_index":15231,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid(dto",{"_index":15245,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generatejwt",{"_index":1708,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatejwt(user",{"_index":1718,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatelaunchrequest",{"_index":20573,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatelaunchrequest(toollaunchdata",{"_index":20578,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatepreview",{"_index":16619,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(@rabbitpayload",{"_index":16632,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generatepreview(params",{"_index":16661,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{}}}],["generatepreview(payload",{"_index":16623,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generates",{"_index":15243,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generateseeddata",{"_index":11671,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generateseeddata((s",{"_index":11730,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generatesharetoken",{"_index":20277,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generating",{"_index":23026,"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":{},"modules/FilesStorageModule.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/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewService.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.builder",{"_index":16667,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.builder.ts",{"_index":16614,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.builder.ts:6",{"_index":16616,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{}}}],["generator.consumer",{"_index":16640,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["generator.consumer.ts",{"_index":16618,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:10",{"_index":16622,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.consumer.ts:20",{"_index":16625,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["generator.service",{"_index":16629,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/ShareTokenService.html":{}}}],["generator.service.ts",{"_index":16652,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"injectables/TokenGenerator.html":{}}}],["generator.service.ts:12",{"_index":16657,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:18",{"_index":16662,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:37",{"_index":16659,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:43",{"_index":16664,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["generator.service.ts:7",{"_index":20278,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generator/interface/preview",{"_index":16602,"title":{},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["generator/interface/preview.ts",{"_index":16605,"title":{},"body":{"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["generator/loggable/preview",{"_index":16575,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["generator/preview",{"_index":16613,"title":{},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["generator/preview.producer.ts",{"_index":16685,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:11",{"_index":16686,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["generator/preview.producer.ts:23",{"_index":16688,"title":{},"body":{"injectables/PreviewProducer.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":23730,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["generic",{"_index":23068,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["genericdata",{"_index":1179,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["genericsortfunction",{"_index":18887,"title":{},"body":{"classes/SortHelper.html":{}}}],["genericsortfunction(a",{"_index":18888,"title":{},"body":{"classes/SortHelper.html":{}}}],["geogebra",{"_index":11869,"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":17965,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["get('*/:fwulearningcontent",{"_index":10719,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get('/:contentid/edit",{"_index":11378,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contentid/play",{"_index":11375,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contexttype/:contextid",{"_index":20659,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:contexttype/:contextid')@apioperation({summary",{"_index":20651,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["get('/:externaltoolid/logo",{"_index":20482,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo')@apioperation({summary",{"_index":20451,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:groupid",{"_index":10973,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/:groupid')@apioperation({summary",{"_index":10956,"title":{},"body":{"controllers/GroupController.html":{}}}],["get('/class",{"_index":10967,"title":{},"body":{"controllers/GroupController.html":{}}}],["get(':boardid",{"_index":2939,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':boardid/context",{"_index":2943,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':contextexternaltoolid",{"_index":20423,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apinotfoundresponse()@apiokresponse({description",{"_index":20396,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid",{"_index":20418,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid')@apiforbiddenresponse()@apiunauthorizedresponse()@apiokresponse({description",{"_index":20401,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid/available",{"_index":20324,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get(':courseid/export",{"_index":6609,"title":{},"body":{"controllers/CourseController.html":{}}}],["get(':externaltoolid",{"_index":20472,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':externaltoolid')@apioperation({summary",{"_index":20448,"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":14959,"title":{},"body":{"controllers/NewsController.html":{}}}],["get(':pseudonym",{"_index":16936,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':pseudonym')@apifoundresponse({description",{"_index":16926,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["get(':roomid/board",{"_index":17692,"title":{},"body":{"controllers/RoomsController.html":{}}}],["get(':schoolexternaltoolid",{"_index":20736,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":20721,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolid/migration",{"_index":13958,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':schoolid/migration')@authenticate('jwt')@apifoundresponse({description",{"_index":13929,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':scope/:scopeid",{"_index":21866,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid')@apioperation({summary",{"_index":21844,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid/end",{"_index":21755,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/end')@apioperation({summary",{"_index":21711,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info",{"_index":21752,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info')@apioperation({summary",{"_index":21717,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join",{"_index":21749,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join')@apioperation({summary",{"_index":21721,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':submissioncontainerid",{"_index":3740,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["get(':teamid/news",{"_index":20074,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["get(':token",{"_index":18658,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["get('auth/:oauthclientid",{"_index":16183,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/:oauthclientid')@authenticate('jwt",{"_index":16108,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/sessions/consent",{"_index":15936,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('baseurl",{"_index":15868,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients",{"_index":15904,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients/:id",{"_index":15901,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('consentrequest/:challenge",{"_index":15929,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('context",{"_index":20333,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolReferenceController.html":{}}}],["get('context/:contextexternaltoolid/launch",{"_index":20504,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('context/:contextexternaltoolid/launch')@apioperation({summary",{"_index":20494,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('finished",{"_index":19553,"title":{},"body":{"controllers/TaskController.html":{}}}],["get('hydra/:oauthclientid",{"_index":16179,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('hydra/:oauthclientid')@authenticate('jwt",{"_index":16098,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('login/:systemid",{"_index":16094,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('loginrequest/:challenge",{"_index":15864,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('me",{"_index":20832,"title":{},"body":{"controllers/UserController.html":{}}}],["get('oauth",{"_index":16113,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration",{"_index":16189,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration')@authenticate('jwt')@apiokresponse({description",{"_index":16101,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('page",{"_index":21378,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["get('public",{"_index":19303,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public')@apioperation({summary",{"_index":19283,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid",{"_index":19309,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid')@apioperation({summary",{"_index":19290,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('school",{"_index":20339,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('school/:schoolid/available",{"_index":20329,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('schools/:schoolid",{"_index":21099,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('schools/:schoolid')@apiforbiddenresponse()@apiokresponse({description",{"_index":21047,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('status/task/:taskid",{"_index":19005,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["get('unassigned",{"_index":12752,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["get()@apiforbiddenresponse()@apioperation({summary",{"_index":21053,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get()@apifoundresponse({description",{"_index":20444,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["get()@apioperation({summary",{"_index":531,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(`${this.options.uri}${path",{"_index":1269,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":10262,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["get(id",{"_index":9746,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["get(path",{"_index":1265,"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":10717,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get(subpath",{"_index":1656,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["get(url",{"_index":11494,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["get/post",{"_index":11389,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getadditionalerrorinfo",{"_index":13085,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadditionalerrorinfo(email",{"_index":13091,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadminidandtoken",{"_index":1279,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getadminuser",{"_index":13242,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getallaccounts",{"_index":12682,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getalternativetext",{"_index":9835,"title":{},"body":{"classes/FileElement.html":{}}}],["getancestorids",{"_index":3312,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getancestorids(boarddo",{"_index":3334,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getandpseudonyms",{"_index":9636,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getandpseudonyms(users",{"_index":9652,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getapiresponsetimemetriclabels",{"_index":17368,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getapiresponsetimemetriclabels(req",{"_index":17384,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getasadmin(path",{"_index":1263,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getauthenticationurl",{"_index":15388,"title":{},"body":{"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{}}}],["getauthenticationurl(oauthconfig",{"_index":15405,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getauthenticationurl(session",{"_index":16091,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getavailabletoolsforcontext",{"_index":8562,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(currentuser",{"_index":20323,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(userid",{"_index":8573,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getavailabletoolsforschool",{"_index":8563,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(currentuser",{"_index":20328,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(userid",{"_index":8575,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getbaseurl",{"_index":2285,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig",{"_index":2243,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig(presentationurl",{"_index":2270,"title":{},"body":{"injectables/BBBService.html":{}}}],["getboard",{"_index":17745,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboard(roomid",{"_index":17749,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboardauthorizable",{"_index":3118,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardauthorizable(boarddo",{"_index":3124,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardcontext",{"_index":2895,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardcontext(urlparams",{"_index":2913,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardobjecttitlesbyid",{"_index":4786,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardobjecttitlesbyid(boardids",{"_index":4800,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardskeleton",{"_index":2896,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardskeleton(urlparams",{"_index":2917,"title":{},"body":{"controllers/BoardController.html":{}}}],["getbydraftforcreatorquery",{"_index":19886,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftforcreatorquery(creatorid",{"_index":19904,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery",{"_index":19887,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery(isdraft",{"_index":19906,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbyid(externaltoolpseudonymentity.name",{"_index":8971,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["getbyid(pseudonymentity.name",{"_index":17056,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["getbytargetid(id",{"_index":2665,"title":{},"body":{"entities/Board.html":{}}}],["getcaption",{"_index":9833,"title":{},"body":{"classes/FileElement.html":{}}}],["getcards",{"_index":3969,"title":{},"body":{"controllers/CardController.html":{}}}],["getcards(currentuser",{"_index":3989,"title":{},"body":{"controllers/CardController.html":{}}}],["getchildren",{"_index":2777,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["getchildren(boardnode",{"_index":3226,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["getclientid",{"_index":13243,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getclientsecret",{"_index":13244,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getcollectdefaultmetrics",{"_index":16758,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcollectionnames",{"_index":7870,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getcollectmetricsroutemetrics",{"_index":16760,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcompleted",{"_index":19042,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["getconfigurationtemplateforcontext",{"_index":20321,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforcontext(currentuser",{"_index":20332,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool",{"_index":20322,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool(currentuser",{"_index":20338,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconsentrequest",{"_index":15810,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(@param",{"_index":15930,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getconsentrequest(challenge",{"_index":15817,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(params",{"_index":15860,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getcontent",{"_index":7455,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getcontentfile",{"_index":11384,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getcontext",{"_index":4726,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["getcontextexternaltool",{"_index":6052,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(currentuser",{"_index":20395,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(userid",{"_index":6066,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcontextexternaltoolid",{"_index":8638,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["getcontextexternaltoolsforcontext",{"_index":6053,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(currentuser",{"_index":20400,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(userid",{"_index":6068,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcopiesforchildrenof",{"_index":17117,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopiesforchildrenof(original",{"_index":17125,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopyname",{"_index":19631,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopyname(originaltaskname",{"_index":19642,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopystatusesforchildrenof",{"_index":17118,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcopystatusesforchildrenof(original",{"_index":17127,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["getcoursegroupitems",{"_index":6583,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getcoursegroupstudentids",{"_index":12294,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getcoursesfromuserspseudonym",{"_index":9637,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getcoursesfromuserspseudonym(pseudonym",{"_index":9654,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getcreatedat",{"_index":2779,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["getcurrentschoolyear",{"_index":18450,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["getdashboardbyid",{"_index":7727,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdashboardbyid(id",{"_index":7731,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdata",{"_index":13086,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(input",{"_index":13093,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(systemid",{"_index":16859,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getdatabasecollection",{"_index":7871,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdatabasecollection(collectionname",{"_index":7884,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdb",{"_index":7888,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdefaultmaxduedate",{"_index":19943,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getdescription",{"_index":14320,"title":{},"body":{"classes/LinkElement.html":{}}}],["getdestinationcourse",{"_index":19632,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationcourse(courseid",{"_index":19646,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson",{"_index":19633,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson(lessonid",{"_index":19648,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdisplayname",{"_index":21576,"title":{},"body":{"injectables/UserService.html":{}}}],["getdisplayname(user",{"_index":21588,"title":{},"body":{"injectables/UserService.html":{}}}],["getduedate",{"_index":18970,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["geteditor",{"_index":11359,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getelement",{"_index":7400,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getelement(position",{"_index":7425,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getelements",{"_index":2668,"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":9583,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getentitypermissions(userid",{"_index":9591,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["geteol",{"_index":10322,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["getestet",{"_index":4832,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getexternalid",{"_index":785,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalid(id",{"_index":792,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalsource",{"_index":10917,"title":{},"body":{"classes/Group.html":{}}}],["getexternalsubclientmapperconfiguration",{"_index":13326,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getexternaltool",{"_index":9391,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["getexternaltool(currentuser",{"_index":20447,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltool(userid",{"_index":9402,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["getexternaltoolbinarylogo",{"_index":8762,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoolbinarylogo(toolid",{"_index":8774,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoollogo",{"_index":20431,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(@param",{"_index":20483,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(params",{"_index":20450,"title":{},"body":{"controllers/ToolController.html":{}}}],["getfile",{"_index":6273,"title":{"interfaces/GetFile.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileResponseBuilder.html":{},"interfaces/GetFile.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["getfileresponse",{"_index":10236,"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":10494,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(@rabbitpayload",{"_index":10524,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(payload",{"_index":10507,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilteredgroupusers",{"_index":16303,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfilteredgroupusers(externalgroup",{"_index":16309,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfinisheduserids",{"_index":12479,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getfirstopenindex",{"_index":7401,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getflowexecutionsrequest",{"_index":13397,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getflowsrequest",{"_index":13387,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getformat",{"_index":16595,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getformat(previewparams.outputformat",{"_index":16597,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["getfwulearningcontentparams",{"_index":10718,"title":{"classes/GetFwuLearningContentParams.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{}}}],["getgradedsubmissions",{"_index":12508,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getgradelevel",{"_index":4227,"title":{},"body":{"classes/Class.html":{}}}],["getgrid",{"_index":7402,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getgroup",{"_index":9638,"title":{},"body":{"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{},"injectables/GroupUc.html":{}}}],["getgroup(courseid",{"_index":9656,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getgroup(currentuser",{"_index":10954,"title":{},"body":{"controllers/GroupController.html":{}}}],["getgroup(userid",{"_index":11214,"title":{},"body":{"injectables/GroupUc.html":{}}}],["getgroupdata(groupname",{"_index":1245,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmembers(groupname",{"_index":1243,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmoderators(groupname",{"_index":1241,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getheight",{"_index":3952,"title":{},"body":{"classes/Card.html":{}}}],["gethello",{"_index":18478,"title":{},"body":{"classes/ServerConsole.html":{},"controllers/ServerController.html":{}}}],["gethydraoauthtoken",{"_index":16083,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["gethydraoauthtoken(query",{"_index":16096,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getid",{"_index":7403,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getidpmapperconfiguration",{"_index":13327,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getidpmapperconfiguration(idpalias",{"_index":13352,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getiframesubject",{"_index":16985,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getiframesubject(pseudonym",{"_index":17004,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getimageurl",{"_index":14324,"title":{},"body":{"classes/LinkElement.html":{}}}],["getinout",{"_index":18479,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinout(whatever",{"_index":18482,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinputformat",{"_index":17466,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getinstance",{"_index":8672,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.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":4223,"title":{},"body":{"classes/Class.html":{}}}],["getisenabled",{"_index":16752,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getitems",{"_index":20938,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["getjwtforuser",{"_index":16198,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtforuser(userid",{"_index":16202,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtfromresponse",{"_index":20191,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getjwtfromresponse(response",{"_index":1697,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getlaunchdata",{"_index":20574,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getlaunchdata(userid",{"_index":20580,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getldapdn",{"_index":4229,"title":{},"body":{"classes/Class.html":{}}}],["getlessoncomponents",{"_index":11907,"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":11908,"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":11909,"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":11382,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getlogindata",{"_index":14541,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getlogindata(userinfo",{"_index":14544,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getloginrequest",{"_index":15849,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(@param",{"_index":15918,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginrequest(challenge",{"_index":15973,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(params",{"_index":15863,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginurl",{"_index":21403,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getloginurl(system",{"_index":21411,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getlogmessage",{"_index":1469,"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/PreviewActionsLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.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":12486,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getmeetinginfo",{"_index":2244,"title":{},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["getmeetinginfo(config",{"_index":2272,"title":{},"body":{"injectables/BBBService.html":{}}}],["getmeetinginfo(currentuserid",{"_index":21895,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getmetadata",{"_index":6594,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"classes/UsersList.html":{}}}],["getmetadatastorage",{"_index":8283,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getmigration",{"_index":13925,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolid",{"_index":14099,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolparams",{"_index":13927,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["getmigrationconsentpageredirect",{"_index":21404,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationconsentpageredirect(officialschoolnumber",{"_index":21413,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationpagedetails",{"_index":21376,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(@query",{"_index":21383,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(pagetypequery",{"_index":21377,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationredirecturi",{"_index":21405,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrations",{"_index":21034,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["getmigrations(user",{"_index":21051,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["getmigrations(userid",{"_index":21306,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["getname",{"_index":4215,"title":{},"body":{"classes/Class.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getnewspermissions",{"_index":15146,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnewspermissions(userid",{"_index":15161,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnumberofdrafttasks",{"_index":11903,"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":11905,"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":11899,"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":15778,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getoauth2client(currentuser",{"_index":15787,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["getoauth2client(id",{"_index":16051,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["getoauthconfig",{"_index":12669,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["getoauthtoken",{"_index":11411,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getoauthtoken(oauthclientid",{"_index":11418,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getobjectcommand",{"_index":17851,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["getobjectreference",{"_index":880,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getobjectreference(entityname",{"_index":897,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getorconstructdashboardmodelentity",{"_index":7644,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorconstructdashboardmodelentity(entity",{"_index":7658,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorcreatecourseboard",{"_index":3663,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorcreatecourseboard(courseid",{"_index":3670,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorganization",{"_index":5270,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getorganizationid",{"_index":10919,"title":{},"body":{"classes/Group.html":{}}}],["getpagecontent",{"_index":21300,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getpagecontent(pagetype",{"_index":21308,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getparametervalue",{"_index":125,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparametervalue(customparameter",{"_index":179,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparent",{"_index":11894,"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":12538,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentinfo",{"_index":10097,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpath",{"_index":20192,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getpath(routenameinput",{"_index":1689,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getpermittedcourses",{"_index":19944,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedcourses(user",{"_index":19959,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedentities",{"_index":9584,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedentities(userid",{"_index":9593,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedlessonids",{"_index":20001,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons",{"_index":19945,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons(user",{"_index":19962,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedschools",{"_index":9546,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedschools(userid",{"_index":9552,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedtargets",{"_index":9547,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getpermittedtargets(userid",{"_index":9554,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getplayer",{"_index":11360,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getport",{"_index":16756,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getpostloginredirecturl",{"_index":15389,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpostloginredirecturl(idtoken",{"_index":15407,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpresentationurl",{"_index":2289,"title":{},"body":{"injectables/BBBService.html":{}}}],["getpreviewfile",{"_index":16697,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile(params",{"_index":16707,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname",{"_index":16712,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname(filerecord",{"_index":16726,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewstatus",{"_index":10098,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpropertyvalue",{"_index":8279,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getpropertyvalue(e",{"_index":8290,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getprops",{"_index":1793,"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/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/LinkElement.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["getprotectedroles",{"_index":17564,"title":{},"body":{"injectables/RoleService.html":{}}}],["getprovisioningstrategy",{"_index":16849,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getprovisioningstrategy(systemstrategy",{"_index":16861,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getpseudonym",{"_index":16903,"title":{},"body":{"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{}}}],["getpseudonym(params",{"_index":16924,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["getpublickey",{"_index":7008,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OauthAdapterService.html":{}}}],["getpublickey(jwksuri",{"_index":15550,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["getquery",{"_index":18464,"title":{},"body":{"classes/Scope.html":{}}}],["getredirecturi",{"_index":15390,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getredirecturi(migration",{"_index":15410,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getreferences",{"_index":7460,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getreferencesfromposition",{"_index":7404,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getreferencesfromposition(position",{"_index":7433,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getrepository",{"_index":16986,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrepository(tool",{"_index":17006,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrequiredpermissions",{"_index":15147,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequiredpermissions(unpublished",{"_index":15165,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequireduserrole",{"_index":3094,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getresolveduser",{"_index":21577,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolveduser(userid",{"_index":21590,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolvedvalues",{"_index":3011,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresolvedvalues(results",{"_index":3053,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresources",{"_index":5272,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getresponse",{"_index":1398,"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/TooManyPseudonymsLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["getroomboard",{"_index":17682,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroomboard(urlparams",{"_index":17691,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroute",{"_index":16754,"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":2287,"title":{},"body":{"injectables/BBBService.html":{}}}],["getschemapath",{"_index":4009,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(basictoolconfigparams",{"_index":8630,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(externaltoolelementcontentbody",{"_index":8190,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(externaltoolelementresponse",{"_index":4039,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(fileelementcontentbody",{"_index":8186,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(fileelementresponse",{"_index":4040,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(linkelementcontentbody",{"_index":8187,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(linkelementresponse",{"_index":4041,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(lti11toolconfigcreateparams",{"_index":8631,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(lti11toolconfigupdateparams",{"_index":9430,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(oauth2toolconfigcreateparams",{"_index":8632,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(oauth2toolconfigupdateparams",{"_index":9431,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(richtextelementcontentbody",{"_index":8188,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(richtextelementresponse",{"_index":4042,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschemapath(submissioncontainerelementcontentbody",{"_index":8189,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(submissioncontainerelementresponse",{"_index":4043,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{}}}],["getschool",{"_index":20148,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["getschoolbyexternalid",{"_index":14063,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyexternalid(externalid",{"_index":14070,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid",{"_index":14064,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid(id",{"_index":14072,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber",{"_index":14065,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber(schoolnumber",{"_index":14074,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolexternaltool",{"_index":18224,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(currentuser",{"_index":20720,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(userid",{"_index":18235,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["getschoolexternaltools",{"_index":20712,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltools(currentuser",{"_index":20723,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolid",{"_index":4217,"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":{}}}],["getsecuritytoken",{"_index":10071,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getseedfolder",{"_index":11686,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["getservice",{"_index":9762,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["getservice(path",{"_index":9753,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["getshorttitle",{"_index":6588,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["getsource",{"_index":4233,"title":{},"body":{"classes/Class.html":{}}}],["getsourceoptions",{"_index":4235,"title":{},"body":{"classes/Class.html":{}}}],["getstoretype",{"_index":3856,"title":{},"body":{"injectables/CacheService.html":{}}}],["getstudentids",{"_index":6560,"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":{},"classes/UsersList.html":{}}}],["getstudentslist",{"_index":6571,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubmissionitems",{"_index":3721,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissionitems(currentuser",{"_index":3723,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["getsubmittedsubmissions",{"_index":12502,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmitterids",{"_index":12313,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getsubstitutionteacherids",{"_index":6564,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsubstitutionteacherslist",{"_index":6577,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getsuccessor",{"_index":4231,"title":{},"body":{"classes/Class.html":{}}}],["getsystem",{"_index":19280,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(@param",{"_index":19310,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(params",{"_index":19289,"title":{},"body":{"controllers/SystemController.html":{}}}],["gettargetfilters",{"_index":15148,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfilters(userid",{"_index":15168,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfolder(toseedfolder",{"_index":11688,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["gettasksitems",{"_index":11895,"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":4221,"title":{},"body":{"classes/Class.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteacherslist",{"_index":6575,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["getteammemberids",{"_index":12297,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["gettempfile",{"_index":11386,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["gettemplateforcontextexternaltool",{"_index":8564,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforcontextexternaltool(userid",{"_index":8577,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool",{"_index":8565,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool(userid",{"_index":8579,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getter",{"_index":6527,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["gettext",{"_index":17462,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getting",{"_index":22197,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{}}],["gettitle",{"_index":3948,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/LinkElement.html":{}}}],["gettitlesbyids",{"_index":3313,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettitlesbyids(id",{"_index":3336,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettoolid",{"_index":16905,"title":{},"body":{"classes/Pseudonym.html":{}}}],["gettoollaunchrequest",{"_index":20491,"title":{},"body":{"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["gettoollaunchrequest(currentuser",{"_index":20492,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["gettoollaunchrequest(userid",{"_index":20605,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["gettoolreference",{"_index":20643,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreference(contextexternaltoolid",{"_index":20686,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["gettoolreference(currentuser",{"_index":20645,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreference(userid",{"_index":20696,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext",{"_index":20644,"title":{},"body":{"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreferencesforcontext(currentuser",{"_index":20650,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["gettoolreferencesforcontext(userid",{"_index":20698,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettspuid",{"_index":4444,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["gettype",{"_index":10921,"title":{},"body":{"classes/Group.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getunitofwork",{"_index":8970,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["getupdatedat",{"_index":2781,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["geturl",{"_index":1335,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/LinkElement.html":{},"controllers/OauthProviderController.html":{}}}],["geturl(callname",{"_index":2274,"title":{},"body":{"injectables/BBBService.html":{}}}],["geturl(path",{"_index":1346,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["getuser",{"_index":9548,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/TeamUserEntity.html":{},"injectables/UserService.html":{}}}],["getuser(id",{"_index":21592,"title":{},"body":{"injectables/UserService.html":{}}}],["getuser(userid",{"_index":9556,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserattribute",{"_index":12683,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserattribute(userid",{"_index":12706,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getusergroups",{"_index":9639,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusergroups(pseudonym",{"_index":9659,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getuserid",{"_index":7405,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/Pseudonym.html":{},"classes/SubmissionItem.html":{}}}],["getuserids",{"_index":4219,"title":{},"body":{"classes/Class.html":{}}}],["getuserlist(querystring",{"_index":1221,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getuserparams",{"_index":20811,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["getuserparams(params",{"_index":857,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["getuserrole",{"_index":9640,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getuserrole(user",{"_index":9661,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusers",{"_index":3092,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"classes/Group.html":{}}}],["getuserschoolpermissions",{"_index":9549,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserschoolpermissions(userid",{"_index":9558,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getusersdashboard",{"_index":7728,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersdashboard(userid",{"_index":7733,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersmetadata",{"_index":9641,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["getusersmetadata(pseudonym",{"_index":9663,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["getusertargetpermissions",{"_index":9550,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["getusertargetpermissions(userid",{"_index":9560,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserwithpermissions",{"_index":1989,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getuserwithpermissions(userid",{"_index":1998,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["getversion",{"_index":5700,"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":21893,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getvideoconferenceoptions(scope",{"_index":21897,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getwellknownurl",{"_index":13245,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getyear",{"_index":4225,"title":{},"body":{"classes/Class.html":{}}}],["ghcr.io/hpi",{"_index":22955,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ghcr.io/soluto/oidc",{"_index":23538,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["gi",{"_index":14906,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["gid",{"_index":11061,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["git",{"_index":22204,"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":22136,"title":{},"body":{"dependencies.html":{}}}],["git://github.com/leeroybrun/mongoose",{"_index":22152,"title":{},"body":{"dependencies.html":{}}}],["github",{"_index":22200,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["give",{"_index":22479,"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/OpenGraphProxyService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["givenname",{"_index":12395,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["gives",{"_index":9620,"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":22485,"title":{},"body":{"license.html":{}}}],["global",{"_index":6439,"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":10787,"title":{"interfaces/GlobalConstants.html":{}},"body":{"interfaces/GlobalConstants.html":{}}}],["globalerrorfilter",{"_index":8371,"title":{"classes/GlobalErrorFilter.html":{}},"body":{"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["globally",{"_index":13044,"title":{},"body":{"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["globalparameter",{"_index":7300,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["globals",{"_index":10789,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["globalsetup",{"_index":23190,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalteardown",{"_index":23191,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalvalidationpipe",{"_index":10856,"title":{"classes/GlobalValidationPipe.html":{}},"body":{"classes/GlobalValidationPipe.html":{},"modules/ValidationModule.html":{}}}],["gm",{"_index":16666,"title":{},"body":{"injectables/PreviewGeneratorService.html":{},"dependencies.html":{}}}],["gnu",{"_index":22260,"title":{},"body":{"license.html":{}}}],["go",{"_index":21764,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["goal",{"_index":22912,"title":{},"body":{"todo.html":{}}}],["goals",{"_index":22331,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["golevelup",{"_index":23401,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["golevelup/nestjs",{"_index":1351,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"dependencies.html":{}}}],["golevelup/ts",{"_index":20217,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["gonna",{"_index":23088,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["good",{"_index":13836,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["governed",{"_index":22605,"title":{},"body":{"license.html":{}}}],["gpl",{"_index":22332,"title":{},"body":{"license.html":{}}}],["grace",{"_index":18349,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["graceperiodduration",{"_index":21282,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["grade",{"_index":12105,"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":12275,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["graded",{"_index":3775,"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":12509,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradelevel",{"_index":4209,"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":1516,"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":1520,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/TokenRequestMapper.html":{}}}],["grant_types",{"_index":15587,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["granted",{"_index":22418,"title":{},"body":{"license.html":{}}}],["grants",{"_index":22669,"title":{},"body":{"license.html":{}}}],["granttype",{"_index":11560,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["graph",{"_index":5610,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{},"dependencies.html":{},"modules.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["gratis",{"_index":22532,"title":{},"body":{"license.html":{}}}],["greatest",{"_index":22832,"title":{},"body":{"license.html":{}}}],["grep",{"_index":23586,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["grid",{"_index":6828,"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":7741,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["gridelement",{"_index":7465,"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":7684,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.fromsinglereference(referenceforindex",{"_index":7542,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.fromsinglereference(room",{"_index":7533,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.getcontent().title",{"_index":7708,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.getid",{"_index":7701,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.hasid",{"_index":7699,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.isgroup",{"_index":7706,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.setgroupname(params",{"_index":7783,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["gridelementcontent",{"_index":7456,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelements",{"_index":7572,"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":7431,"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":7406,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["gridindexfromposition(pos",{"_index":7437,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridposition",{"_index":7426,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridpositionwithgroupindex",{"_index":7434,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["group",{"_index":1166,"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":{},"injectables/FeathersRosterService.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"interfaces/UserData.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{}}}],["group(props",{"_index":11078,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group(savedprops",{"_index":11089,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group.adduser(user",{"_index":16374,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.dto",{"_index":15703,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["group.dto.ts",{"_index":8421,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:10",{"_index":17407,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:11",{"_index":8425,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:12",{"_index":17408,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:13",{"_index":8429,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:14",{"_index":17404,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:15",{"_index":8428,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:16",{"_index":17403,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:17",{"_index":8423,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:5",{"_index":8424,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:6",{"_index":17405,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:7",{"_index":8426,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:8",{"_index":17406,"title":{},"body":{"classes/ResolvedGroupDto.html":{}}}],["group.dto.ts:9",{"_index":8431,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.externalsource",{"_index":11107,"title":{},"body":{"classes/GroupResponse.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.externalsource?.systemid",{"_index":11259,"title":{},"body":{"injectables/GroupUc.html":{}}}],["group.getprops",{"_index":11005,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["group.gruppe.bezeichnung",{"_index":18047,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.id",{"_index":18050,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.bis",{"_index":18049,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.von",{"_index":18048,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppenzugehoerigkeit.rollen",{"_index":18039,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.id",{"_index":11104,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.isempty",{"_index":16399,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.module",{"_index":10944,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["group.name",{"_index":1249,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["group.organizationid",{"_index":11109,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.params.ts",{"_index":16521,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.params.ts:14",{"_index":16523,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.removeuser(user",{"_index":16398,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["group.rule",{"_index":14252,"title":{},"body":{"injectables/LessonRule.html":{}}}],["group.rule.ts",{"_index":6786,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:11",{"_index":6789,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:17",{"_index":6788,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:8",{"_index":6787,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.type",{"_index":11105,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.users",{"_index":11106,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["group.users.map(async",{"_index":11268,"title":{},"body":{"injectables/GroupUc.html":{}}}],["group_id",{"_index":9680,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["groupapimodule",{"_index":10935,"title":{"modules/GroupApiModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["groupcontroller",{"_index":10942,"title":{"controllers/GroupController.html":{}},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{}}}],["groupdata",{"_index":7487,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupdomainmapper",{"_index":10977,"title":{"classes/GroupDomainMapper.html":{}},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapdomainobjecttoentityproperties(domainobject",{"_index":11081,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(entity",{"_index":11077,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(savedentity",{"_index":11088,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapgroupusertogroupuserentity(groupuser",{"_index":11013,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupelements",{"_index":7582,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["groupentity",{"_index":6514,"title":{"entities/GroupEntity.html":{}},"body":{"entities/Course.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["groupentity(entityprops",{"_index":11082,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupentityprops",{"_index":10987,"title":{"interfaces/GroupEntityProps.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes",{"_index":10999,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes.class",{"_index":11002,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypestogrouptypesmapping",{"_index":11001,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping[entity.type",{"_index":11023,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupfolder",{"_index":15236,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupfolders",{"_index":11333,"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":11337,"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":11335,"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":7464,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"classes/GroupIdParams.html":{},"injectables/GroupUc.html":{},"interfaces/IGridElement.html":{},"injectables/NextcloudStrategy.html":{}}}],["groupidparams",{"_index":10955,"title":{"classes/GroupIdParams.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupIdParams.html":{}}}],["groupids",{"_index":6493,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["groupindex",{"_index":7489,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["groupinfo",{"_index":1230,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupinfo.group._id",{"_index":1234,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["grouping",{"_index":3650,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["groupmetadata",{"_index":7484,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupmodule",{"_index":10939,"title":{"modules/GroupModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/ProvisioningModule.html":{},"modules.html":{}}}],["groupname",{"_index":1226,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupnameidtuple",{"_index":11059,"title":{"interfaces/GroupNameIdTuple.html":{}},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["groupprops",{"_index":10923,"title":{"interfaces/GroupProps.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{}}}],["grouprepo",{"_index":11057,"title":{"injectables/GroupRepo.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["groupresponse",{"_index":10962,"title":{"classes/GroupResponse.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper",{"_index":10963,"title":{"classes/GroupResponseMapper.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{}}}],["groupresponsemapper.maptoclassinfostolistresponse",{"_index":10972,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponsemapper.maptogroupresponse(group",{"_index":10976,"title":{},"body":{"controllers/GroupController.html":{}}}],["groupresponse})@apiresponse({status",{"_index":10958,"title":{},"body":{"controllers/GroupController.html":{}}}],["grouprolemapping",{"_index":18019,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprolemapping[relation.rollen[0",{"_index":18052,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable",{"_index":11147,"title":{"classes/GroupRoleUnknownLoggable.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable(relation",{"_index":18053,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprule",{"_index":1891,"title":{"injectables/GroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/GroupRule.html":{},"injectables/RuleManager.html":{}}}],["groups",{"_index":6473,"title":{},"body":{"entities/Course.html":{},"injectables/FeathersRosterService.html":{},"controllers/GroupController.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/SanisResponseMapper.html":{},"interfaces/SuccessfulRes.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["groupservice",{"_index":11056,"title":{"injectables/GroupService.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem",{"_index":16389,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupsfromsystem.filter((existinggroupfromsystem",{"_index":16393,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupsoftypeclass",{"_index":11248,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupsoftypeclass.map(async",{"_index":11252,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupswithoutuser",{"_index":16392,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["groupswithoutuser.map(async",{"_index":16397,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["grouptype",{"_index":18034,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping",{"_index":18022,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping[group.gruppe.typ",{"_index":18035,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptyperesponse",{"_index":11097,"title":{},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{}}}],["grouptyperesponse.class",{"_index":11123,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["grouptypes",{"_index":8427,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponseMapper.html":{},"classes/ResolvedGroupDto.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypes.class",{"_index":11003,"title":{},"body":{"classes/GroupDomainMapper.html":{},"classes/GroupResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypestogroupentitytypesmapping",{"_index":11004,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["grouptypestogroupentitytypesmapping[props.type",{"_index":11009,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuc",{"_index":10940,"title":{"injectables/GroupUc.html":{}},"body":{"modules/GroupApiModule.html":{},"controllers/GroupController.html":{},"injectables/GroupUc.html":{}}}],["groupucmapper",{"_index":11220,"title":{"classes/GroupUcMapper.html":{}},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["groupucmapper.mapclasstoclassinfodto(clazz",{"_index":11247,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupucmapper.mapgrouptoclassinfodto(group",{"_index":11256,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupucmapper.maptoresolvedgroupdto(group",{"_index":11274,"title":{},"body":{"injectables/GroupUc.html":{}}}],["groupuser",{"_index":10910,"title":{"classes/GroupUser.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupUc.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["groupuser.role.name",{"_index":11291,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.roleid",{"_index":11032,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser.user.lastname",{"_index":11293,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["groupuser.userid",{"_index":10929,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{}}}],["groupuserentity",{"_index":10995,"title":{"classes/GroupUserEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserentityprops",{"_index":11311,"title":{"interfaces/GroupUserEntityProps.html":{}},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserids",{"_index":15285,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.filter((userid",{"_index":15298,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.includes(userid",{"_index":15304,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserresponse",{"_index":11099,"title":{"classes/GroupUserResponse.html":{}},"body":{"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{}}}],["groupusers",{"_index":11324,"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":11000,"title":{"classes/GroupValidPeriodEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["groupvalidperiodentityprops",{"_index":11339,"title":{"interfaces/GroupValidPeriodEntityProps.html":{}},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["gruppe",{"_index":17939,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["gruppen",{"_index":17947,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["gruppenzugehoerige",{"_index":17952,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["gruppenzugehoerigkeit",{"_index":17948,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["gruppenzugehoerigkeiten",{"_index":18043,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["gt",{"_index":3635,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/NewsScope.html":{}}}],["gte",{"_index":6922,"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":23205,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["guardagainst",{"_index":11342,"title":{"classes/GuardAgainst.html":{}},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined",{"_index":14399,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(account.password",{"_index":14396,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(jwt",{"_index":14394,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(password",{"_index":14404,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(username",{"_index":14403,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guards",{"_index":11349,"title":{},"body":{"classes/GuardAgainst.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guest",{"_index":2169,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["guest:guest",{"_index":22941,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["guestpolicy",{"_index":2071,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["guests",{"_index":21930,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["guide",{"_index":23471,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["h5p",{"_index":11358,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["h5peditorcontroller",{"_index":11354,"title":{"controllers/H5PEditorController.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{}}}],["h5peditormodule",{"_index":11390,"title":{"modules/H5PEditorModule.html":{}},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["h5peditortestmodule",{"_index":11399,"title":{"modules/H5PEditorTestModule.html":{}},"body":{"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["halper",{"_index":20776,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["handed",{"_index":8179,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["handle",{"_index":3050,"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":{}}}],["handlecolumnboardintegration",{"_index":17722,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handlecolumnboardintegration(roomid",{"_index":17726,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handled",{"_index":3832,"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":14439,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handleparameterstoinclude",{"_index":126,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handleparameterstoinclude(propertydata",{"_index":183,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handler",{"_index":22901,"title":{},"body":{"todo.html":{}}}],["handlerejections",{"_index":14440,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handles",{"_index":23456,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handling",{"_index":6436,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"modules/CoreModule.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.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":15445,"title":{},"body":{"injectables/OAuthService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["happened",{"_index":23225,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["hard",{"_index":11839,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasaccesstoentity",{"_index":1825,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstoentity(user",{"_index":1830,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstosubmission",{"_index":19172,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasaccesstosubmission(user",{"_index":19178,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasallpermissions",{"_index":1826,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CourseGroupRule.html":{}}}],["hasallpermissions(user",{"_index":1834,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasallpermissionsbyrole",{"_index":1827,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasallpermissionsbyrole(role",{"_index":1836,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasbeenforciblyended",{"_index":2160,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasbodyproperty",{"_index":2623,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["haschangedparameternames",{"_index":9468,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameternames(oldparams",{"_index":9479,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex",{"_index":9469,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex(newparams",{"_index":9481,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope",{"_index":9470,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope(newparams",{"_index":9484,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes",{"_index":9471,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes(newparams",{"_index":9486,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters",{"_index":9472,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters(newparams",{"_index":9488,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschild",{"_index":2754,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["haschild(child",{"_index":2770,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["hascontextexternaltool",{"_index":8544,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["hascoursepermission",{"_index":17673,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{}}}],["hascoursereadpermission",{"_index":17655,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursereadpermission(user",{"_index":17659,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission",{"_index":17656,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission(user",{"_index":17661,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasduplicateattributes",{"_index":8846,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicateattributes(customparameter",{"_index":8857,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["haserror",{"_index":10087,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasfeature",{"_index":14066,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hasfeature(schoolid",{"_index":14077,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hash",{"_index":10775,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{}}}],["hash_function",{"_index":14564,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashiterations",{"_index":13672,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["hashiterations(310000",{"_index":13286,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["hashkey",{"_index":14566,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashkey).tostring(cryptojs.enc.base64",{"_index":14568,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hasid",{"_index":7454,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["hasjoinedvoice",{"_index":2233,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haslessonpermission",{"_index":14253,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["haslessonreadpermission",{"_index":17657,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["haslessonreadpermission(user",{"_index":17663,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasmatch",{"_index":12932,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmatch(user",{"_index":12940,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmigrated",{"_index":14826,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["hasname",{"_index":10083,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasname(name",{"_index":10082,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasnewrequiredparameter",{"_index":9473,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewrequiredparameter(oldparams",{"_index":9490,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewspermission",{"_index":23699,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasoneofpermissions",{"_index":1828,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasoneofpermissions(user",{"_index":1838,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasparent",{"_index":3617,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["hasparentpermission",{"_index":19864,"title":{},"body":{"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasparentpermission(user",{"_index":19866,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasparentreadpermission",{"_index":14260,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasparenttaskreadaccess",{"_index":19173,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskreadaccess(user",{"_index":19180,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess",{"_index":19174,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess(user",{"_index":19182,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparentwritepermission",{"_index":14262,"title":{},"body":{"injectables/LessonRule.html":{}}}],["haspath",{"_index":17341,"title":{},"body":{"classes/RequestInfo.html":{}}}],["haspath(reqroute",{"_index":17348,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["haspermission",{"_index":1861,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":2002,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":1969,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissionbyreferences(userid",{"_index":1975,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["haspermissions",{"_index":9606,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"injectables/PermissionService.html":{}}}],["hasreadaccess",{"_index":19175,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasreadaccess(user",{"_index":19185,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasrequiredpermission",{"_index":19871,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasscanstatuserror",{"_index":10086,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasscanstatuswontcheck",{"_index":10089,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasschoolmigrated",{"_index":18314,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrated(sourceexternalid",{"_index":18327,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser",{"_index":4504,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser(schoolid",{"_index":18331,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hastaskreadpermission",{"_index":17658,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hastaskreadpermission(user",{"_index":17665,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasuserallschoolpermissions",{"_index":16552,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserallschoolpermissions(user",{"_index":16554,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserjoined",{"_index":2161,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasusermigrated",{"_index":21295,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["hasuserpermission",{"_index":14257,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasvideo",{"_index":2234,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haswontcheckstatus",{"_index":10090,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["haswriteaccess",{"_index":19176,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["haswriteaccess(user",{"_index":19187,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["having",{"_index":3602,"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":1615,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"controllers/OauthSSOController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["headerconst",{"_index":1629,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headerconst.json",{"_index":1674,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headercookies",{"_index":11534,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["headers",{"_index":1270,"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/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":22317,"title":{},"body":{"license.html":{}}}],["height",{"_index":3248,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.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/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SetHeightBodyParams.html":{}}}],["height(height",{"_index":3960,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["height.body.params",{"_index":4014,"title":{},"body":{"controllers/CardController.html":{}}}],["height.body.params.ts",{"_index":18589,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height.body.params.ts:10",{"_index":18591,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height=100",{"_index":5322,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hell",{"_index":6530,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["help",{"_index":5461,"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":3010,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.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/LessonCopyUC.html":{},"modules/LessonModule.html":{},"classes/PreviewBuilder.html":{},"injectables/PreviewService.html":{},"classes/RecursiveCopyVisitor.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":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["helper.module",{"_index":19537,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["helper.module.ts",{"_index":6343,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service",{"_index":6345,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service.ts",{"_index":6347,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:10",{"_index":6358,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:28",{"_index":6356,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:45",{"_index":6352,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.ts",{"_index":18886,"title":{},"body":{"classes/SortHelper.html":{},"classes/TestHelper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:13",{"_index":20618,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:21",{"_index":20237,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper.ts:26",{"_index":20619,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:4",{"_index":18889,"title":{},"body":{"classes/SortHelper.html":{}}}],["helper.ts:51",{"_index":20620,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:6",{"_index":20236,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper/copy",{"_index":6342,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/TaskApiModule.html":{}}}],["helper/dto/copy.response.ts",{"_index":6151,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:17",{"_index":6163,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:22",{"_index":6166,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:29",{"_index":6167,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:34",{"_index":6158,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:41",{"_index":6165,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:47",{"_index":6162,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:7",{"_index":6156,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/mapper/copy.mapper.ts",{"_index":6387,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:10",{"_index":6399,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:30",{"_index":6392,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:39",{"_index":6396,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/service/copy",{"_index":6346,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper/types/copy.types",{"_index":6168,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helpers",{"_index":23189,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["helpful",{"_index":23369,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helplink",{"_index":4836,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["helps",{"_index":23354,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helpto",{"_index":22999,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["hendt/xml2json",{"_index":6137,"title":{},"body":{"injectables/ConverterUtil.html":{},"dependencies.html":{}}}],["here",{"_index":2471,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"modules/CommonToolModule.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/NextcloudStrategy.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":22711,"title":{},"body":{"license.html":{}}}],["hex",{"_index":780,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["hh:mm:ss.sss",{"_index":14446,"title":{},"body":{"modules/LoggerModule.html":{}}}],["hidden",{"_index":3452,"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":{},"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":4831,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hierarchy",{"_index":5285,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["high",{"_index":23149,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["higher",{"_index":23076,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["highly",{"_index":23640,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hilfebereich",{"_index":4848,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hint",{"_index":5471,"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":22871,"title":{},"body":{"todo.html":{}}}],["historywindows",{"_index":23509,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["hmac",{"_index":14563,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["holder",{"_index":22648,"title":{},"body":{"license.html":{}}}],["holders",{"_index":22611,"title":{},"body":{"license.html":{}}}],["holds",{"_index":23718,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["homepage",{"_index":22860,"title":{},"body":{"properties.html":{}}}],["homework",{"_index":23166,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["homeworkid",{"_index":12278,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["homeworkid'})@index",{"_index":18965,"title":{},"body":{"entities/Submission.html":{}}}],["homeworks",{"_index":12453,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["hook",{"_index":23728,"title":{},"body":{"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":22123,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hope",{"_index":6531,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"license.html":{}}}],["horizontal",{"_index":23146,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["host",{"_index":1322,"title":{},"body":{"modules/AntivirusModule.html":{},"classes/GlobalErrorFilter.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["host.gettype",{"_index":10824,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host.switchtohttp",{"_index":10834,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host=http://localhost:4000",{"_index":23527,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["hostname",{"_index":1328,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{},"interfaces/ScanResult.html":{}}}],["hosts",{"_index":22539,"title":{},"body":{"license.html":{}}}],["hosturl",{"_index":12605,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["hot",{"_index":22905,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["household",{"_index":22558,"title":{},"body":{"license.html":{}}}],["hpi",{"_index":2131,"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/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":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/PseudonymService.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":5064,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hs256",{"_index":1590,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs384",{"_index":1591,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs512",{"_index":1592,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["html",{"_index":5072,"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":{}}}],["html.transformer",{"_index":17455,"title":{},"body":{"classes/RichText.html":{}}}],["htmlcontent",{"_index":1495,"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":1497,"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":1421,"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":12086,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["http(s",{"_index":23726,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["http://:4011",{"_index":23525,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://fsf.org",{"_index":22269,"title":{},"body":{"license.html":{}}}],["http://localhost:3030",{"_index":13416,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["http://localhost:3030/api/v1/sync?target=ldap",{"_index":23547,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://localhost:3030/api/v3/sso/oauth",{"_index":13529,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["http://localhost:8080",{"_index":23518,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/manifest",{"_index":5249,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/resource",{"_index":5250,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/manifest",{"_index":5236,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/resource",{"_index":5238,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://mock.de",{"_index":19366,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/auth",{"_index":19355,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/jwks",{"_index":19359,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/logout",{"_index":19357,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/mock/auth/public/mocktoken",{"_index":19353,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mockhost:3030/api/v3/sso/oauth",{"_index":19354,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://www.gnu.org/licenses",{"_index":22853,"title":{},"body":{"license.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd",{"_index":5252,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lommanifest_v1p0.xsd",{"_index":5253,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lomresource_v1p0.xsd",{"_index":5251,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd",{"_index":5244,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd",{"_index":5242,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd",{"_index":5325,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lommanifest_v1p0.xsd",{"_index":5243,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lomresource_v1p0.xsd",{"_index":5241,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsbasiclti_v1p0",{"_index":5199,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1",{"_index":5248,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1",{"_index":5326,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2",{"_index":5240,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1",{"_index":5234,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3",{"_index":5324,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3",{"_index":5197,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3.xsd",{"_index":5205,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticm_v1p0",{"_index":5201,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticp_v1p0",{"_index":5203,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.w3.org/2001/xmlschema",{"_index":5182,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["httpargumenthost",{"_index":10833,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpargumenthost.getresponse",{"_index":10835,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpcode",{"_index":2928,"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(201",{"_index":8218,"title":{},"body":{"controllers/ElementController.html":{}}}],["httpcode(204",{"_index":2948,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["httpcode(httpstatus.no_content",{"_index":20416,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(httpstatus.ok",{"_index":14490,"title":{},"body":{"controllers/LoginController.html":{}}}],["httpexception",{"_index":3708,"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":19123,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["httpexception(`unsupported",{"_index":4961,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["httpexceptionoptions",{"_index":8389,"title":{},"body":{"classes/ErrorUtils.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["httpexceptions",{"_index":23264,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["httpmodule",{"_index":3917,"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":16167,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["https://${scdomain",{"_index":13417,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["https://${scdomain}/api/v3/sso/oauth",{"_index":13530,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["https://${this.content.url",{"_index":5660,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["https://dbildungscloud.de",{"_index":22861,"title":{},"body":{"properties.html":{}}}],["https://docs.nestjs.com/first",{"_index":23193,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://example.com/tool",{"_index":20569,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["https://github.com/goldbergyoni/javascript",{"_index":23473,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["https://github.com/hpi",{"_index":22885,"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":10050,"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":2488,"title":{},"body":{"classes/BaseFactory.html":{}}}],["https://hpi",{"_index":22908,"title":{},"body":{"todo.html":{}}}],["https://jestjs.io",{"_index":23041,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://khalilstemmler.com/articles/software",{"_index":23234,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://logo.com",{"_index":7321,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://logourl.com",{"_index":8720,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["https://mikro",{"_index":23042,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://min.io",{"_index":23044,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://mock.tld/auth",{"_index":19361,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/logout",{"_index":19364,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/token",{"_index":19362,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/userinfo",{"_index":19363,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://nestjs.com",{"_index":23040,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://provisioningurl.de",{"_index":19368,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://stackoverflow.com/a/61909588",{"_index":22870,"title":{},"body":{"todo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/arc",{"_index":2436,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/bc",{"_index":17779,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/n21",{"_index":14104,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["https://url.com",{"_index":7319,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.basic",{"_index":7274,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.frontchannel.com",{"_index":7282,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.geogebra.org/m/${content.content.materialid",{"_index":5075,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd",{"_index":5327,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["https://www.lti11",{"_index":7294,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.npmjs.com/package/@golevelup/nestjs",{"_index":17079,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["https://www.oauth2",{"_index":7290,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.rabbitmq.com",{"_index":23045,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://www.redirect.com",{"_index":7284,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["httpservice",{"_index":1154,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["httpstatus",{"_index":1410,"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":{},"controllers/GroupController.html":{},"classes/LdapConnectionError.html":{},"controllers/LoginController.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SubmissionItemUc.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.bad_gateway",{"_index":13761,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["httpstatus.bad_request",{"_index":1417,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.conflict",{"_index":3848,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["httpstatus.forbidden",{"_index":10710,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.internal_server_error",{"_index":8744,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.not_acceptable",{"_index":8253,"title":{},"body":{"injectables/ElementUc.html":{}}}],["httpstatus.not_found",{"_index":8274,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["httpstatus.ok",{"_index":10966,"title":{},"body":{"controllers/GroupController.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.too_many_requests",{"_index":3802,"title":{},"body":{"classes/BruteForceError.html":{}}}],["httpstatus.unauthorized",{"_index":1822,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/SchoolInMigrationError.html":{}}}],["httpstatus.unprocessable_entity",{"_index":3714,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/SubmissionItemUc.html":{}}}],["human",{"_index":5469,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["hydra",{"_index":11567,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydra_public_uri",{"_index":11408,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraadapter",{"_index":16070,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["hydracookies",{"_index":6141,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydracookies.includes(cookie",{"_index":11547,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydracookies.push(cookie",{"_index":11548,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig",{"_index":11440,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig.redirecturi",{"_index":11444,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraoauthuc",{"_index":11405,"title":{"injectables/HydraOauthUc.html":{}},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["hydraredirectdto",{"_index":11430,"title":{"classes/HydraRedirectDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["hydraredirectdto(dto",{"_index":11519,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrassoservice",{"_index":11416,"title":{"injectables/HydraSsoService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"modules/OauthModule.html":{}}}],["hydrauc",{"_index":16130,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["hydrauri",{"_index":11556,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/.well",{"_index":11563,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/auth",{"_index":11558,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/sessions/logout",{"_index":11566,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/token",{"_index":11573,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["i...properties",{"_index":6534,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["i.name",{"_index":11795,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["i.width",{"_index":16450,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["iaccountconfig",{"_index":11576,"title":{"interfaces/IAccountConfig.html":{}},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["iat",{"_index":7016,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["ibbbsettings",{"_index":2249,"title":{"interfaces/IBbbSettings.html":{}},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["icalendarevent",{"_index":3899,"title":{"interfaces/ICalendarEvent.html":{}},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"interfaces/ICalendarEvent.html":{}}}],["iclassentityprops",{"_index":4274,"title":{"interfaces/IClassEntityProps.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"interfaces/IClassEntityProps.html":{}}}],["icleanoptions",{"_index":11584,"title":{"interfaces/ICleanOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["icollaborativestoragestrategy",{"_index":4527,"title":{"interfaces/ICollaborativeStorageStrategy.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["icollectionfilepath",{"_index":11667,"title":{"interfaces/ICollectionFilePath.html":{}},"body":{"interfaces/ICollectionFilePath.html":{}}}],["icolumnboardproperties",{"_index":4768,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["icommoncartridgeconfig",{"_index":11851,"title":{"interfaces/ICommonCartridgeConfig.html":{}},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icommoncartridgeelement",{"_index":5124,"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":5166,"title":{"interfaces/ICommonCartridgeFile.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["icommoncartridgefilebuilder",{"_index":5100,"title":{"interfaces/ICommonCartridgeFileBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefilebuilderoptions",{"_index":5107,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeltiresourceprops",{"_index":5168,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["icommoncartridgemanifestprops",{"_index":5223,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["icommoncartridgemetadataprops",{"_index":5225,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["icommoncartridgeorganizationbuilder",{"_index":5116,"title":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeorganizationprops",{"_index":5114,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeresourceprops",{"_index":5018,"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":5025,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["icommoncartridgeweblinkresourceprops",{"_index":5297,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["icomponentetherpadproperties",{"_index":11863,"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":{},"entities/LessonEntity.html":{}}}],["icomponentgeogebraproperties",{"_index":11873,"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":{},"entities/LessonEntity.html":{}}}],["icomponentinternalproperties",{"_index":11878,"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":11875,"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":{},"entities/LessonEntity.html":{}}}],["icomponentnexboardproperties",{"_index":11877,"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":{},"entities/LessonEntity.html":{}}}],["icomponentproperties",{"_index":5015,"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":{},"classes/LessonFactory.html":{},"injectables/LessonService.html":{}}}],["icomponenttextproperties",{"_index":11872,"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":{},"entities/LessonEntity.html":{}}}],["icons",{"_index":23481,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["icontextexternaltoolproperties",{"_index":5783,"title":{"interfaces/IContextExternalToolProperties.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["icopyfiledo",{"_index":10515,"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":6174,"title":{"interfaces/ICopyFileDomainObjectProps.html":{}},"body":{"classes/CopyFileDto.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{}}}],["icopyfilesofparentparams",{"_index":10617,"title":{"interfaces/ICopyFilesOfParentParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfilesrequestinfo",{"_index":6284,"title":{"interfaces/ICopyFilesRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["icoremoduleconfig",{"_index":11926,"title":{"interfaces/ICoreModuleConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icoursegroupproperties",{"_index":6756,"title":{"interfaces/ICourseGroupProperties.html":{}},"body":{"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["icourseproperties",{"_index":6524,"title":{"interfaces/ICourseProperties.html":{}},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["icreatenews",{"_index":11930,"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":{},"controllers/GroupController.html":{},"interfaces/ICurrentUser.html":{},"controllers/ImportUserController.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.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/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":{},"injectables/BoardCopyService.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.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/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/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewBuilder.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/ResolvedGroupDto.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":{},"injectables/SchoolYearService.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/UsersList.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.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":20495,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["id.'})@apiresponse({status",{"_index":10957,"title":{},"body":{"controllers/GroupController.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":13583,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["id.loggable.ts",{"_index":18268,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:11",{"_index":18273,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:4",{"_index":18271,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.params",{"_index":19298,"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":5804,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["id.params.ts:8",{"_index":5807,"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":23216,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["id.token.claim",{"_index":13481,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["id.tostring",{"_index":1107,"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":{},"classes/UsersList.html":{}}}],["id/authorization",{"_index":5495,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["id/challenge",{"_index":5531,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["id='${child.id",{"_index":2795,"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":16266,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["idashboardmodelproperties",{"_index":7571,"title":{"interfaces/IDashboardModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["idashboardrepo",{"_index":7744,"title":{"interfaces/IDashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["idea",{"_index":2448,"title":{},"body":{"classes/BaseDomainObject.html":{},"injectables/TaskUC.html":{}}}],["idempotent",{"_index":2256,"title":{},"body":{"injectables/BBBService.html":{}}}],["identical",{"_index":13198,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["identifiable",{"_index":22734,"title":{},"body":{"license.html":{}}}],["identified",{"_index":23273,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiedreference",{"_index":2462,"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":1438,"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":15327,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["identifierref",{"_index":5191,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["identifiers",{"_index":12013,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/JwtValidationAdapter.html":{}}}],["identifies",{"_index":18857,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["identify",{"_index":5496,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["identities",{"_index":23515,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["identity",{"_index":2800,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/ICleanOptions.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":{},"classes/OauthConfigDto.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":12659,"title":{"classes/IdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["identitymanagementoauthservice:24",{"_index":13521,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:54",{"_index":13522,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:61",{"_index":13524,"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":13565,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:126",{"_index":13566,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:131",{"_index":13555,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:136",{"_index":13567,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:14",{"_index":13553,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:152",{"_index":13568,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:46",{"_index":13570,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:62",{"_index":13572,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:76",{"_index":13564,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:84",{"_index":13561,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:98",{"_index":13562,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identityprovideralias",{"_index":13471,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapper",{"_index":13470,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapperrepresentation",{"_index":13354,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityproviderrepresentation",{"_index":13357,"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/ICleanOptions.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":{}}}],["idm/dev:latest",{"_index":22957,"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":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmaccountproperties",{"_index":401,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{}}}],["idmaccountupdate",{"_index":12688,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmoauthservice",{"_index":14379,"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":{}}}],["idmservice",{"_index":791,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["idmuserrepresentation",{"_index":13668,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["idp",{"_index":11941,"title":{},"body":{"interfaces/ICurrentUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OauthCurrentUser.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idpalias",{"_index":13347,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["idparams",{"_index":12608,"title":{"classes/IdParams.html":{}},"body":{"classes/IdParams.html":{},"controllers/OauthProviderController.html":{}}}],["idphint",{"_index":12359,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.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/OauthCurrentUser.html":{},"classes/PatchOrderParams.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/S3ClientAdapter.html":{},"classes/UsersList.html":{}}}],["ids.'})@apiresponse({status",{"_index":3992,"title":{},"body":{"controllers/CardController.html":{}}}],["ids.map((id",{"_index":2672,"title":{},"body":{"entities/Board.html":{}}}],["ids.map(async",{"_index":2442,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["ids.params.ts",{"_index":4049,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids.params.ts:10",{"_index":4053,"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/ICurrentUser.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/TokenRequestMapper.html":{}}}],["idtoken.external_sub",{"_index":16298,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["idtoken.uuid",{"_index":13104,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["idtokencreationloggableexception",{"_index":12611,"title":{"classes/IdTokenCreationLoggableException.html":{}},"body":{"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{}}}],["idtokencreationloggableexception(clientid",{"_index":12651,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["idtokenservice",{"_index":12619,"title":{"injectables/IdTokenService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["iencryptionservice",{"_index":9285,"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":2455,"title":{"interfaces/IEntity.html":{}},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ientitywithschool",{"_index":6511,"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":{},"classes/UsersList.html":{}}}],["ientitywithtimestamps",{"_index":11958,"title":{"interfaces/IEntityWithTimestamps.html":{}},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ierror",{"_index":8355,"title":{"interfaces/IError.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["ierrortype",{"_index":3836,"title":{"interfaces/IErrorType.html":{}},"body":{"classes/BusinessError.html":{},"interfaces/IErrorType.html":{}}}],["iexternaltoolproperties",{"_index":8695,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["iexternaltoolpseudonymentityprops",{"_index":8925,"title":{"interfaces/IExternalToolPseudonymEntityProps.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["if/else",{"_index":23338,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ifederalstateproperties",{"_index":6455,"title":{"interfaces/IFederalStateProperties.html":{}},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ifiledo",{"_index":10516,"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":9802,"title":{"interfaces/IFileDomainObjectProps.html":{}},"body":{"classes/FileDto-1.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["ifilerecordparams",{"_index":10621,"title":{"interfaces/IFileRecordParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifilerecordproperties",{"_index":10046,"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":10038,"title":{"interfaces/IFileRecordSecurityCheckProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerequestinfo",{"_index":6282,"title":{"interfaces/IFileRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{}}}],["ifilesstorageclientconfig",{"_index":10629,"title":{"interfaces/IFilesStorageClientConfig.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IServerConfig.html":{}}}],["ifilestorageconfig",{"_index":11964,"title":{"interfaces/IFileStorageConfig.html":{}},"body":{"interfaces/IFileStorageConfig.html":{}}}],["ifindoptions",{"_index":6902,"title":{"interfaces/IFindOptions.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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/PseudonymService.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["iframe",{"_index":11062,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["iframe_restrict_access=false",{"_index":23613,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["iframesubject",{"_index":12653,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/PseudonymService.html":{}}}],["ignore",{"_index":2384,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardCopyService.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":{},"classes/RecursiveCopyVisitor.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":2479,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ignoreexpiration",{"_index":13174,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["igridelement",{"_index":7428,"title":{"interfaces/IGridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["iidentitymanagementconfig",{"_index":11999,"title":{"interfaces/IIdentityManagementConfig.html":{}},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{}}}],["iimportuserproperties",{"_index":12005,"title":{"interfaces/IImportUserProperties.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{}}}],["iimportuserrolename",{"_index":12011,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/RoleNameMapper.html":{}}}],["iimportuserscope",{"_index":12051,"title":{"interfaces/IImportUserScope.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["iinterceptorconfig",{"_index":11928,"title":{"interfaces/IInterceptorConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IInterceptorConfig.html":{},"modules/InterceptorModule.html":{}}}],["ijsonaccount",{"_index":12057,"title":{"interfaces/IJsonAccount.html":{}},"body":{"interfaces/IJsonAccount.html":{},"classes/KeycloakSeedService.html":{}}}],["ijsonuser",{"_index":12061,"title":{"interfaces/IJsonUser.html":{}},"body":{"interfaces/IJsonUser.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloakconfigurationinputfiles",{"_index":12063,"title":{"interfaces/IKeycloakConfigurationInputFiles.html":{}},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloaksettings",{"_index":12070,"title":{"interfaces/IKeycloakSettings.html":{}},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["ilearnroom",{"_index":6512,"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":{},"classes/UsersList.html":{}}}],["ilearnroomelement",{"_index":2645,"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":12076,"title":{"interfaces/ILegacyLogger.html":{}},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["ilessonparent",{"_index":6520,"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":{},"classes/UsersList.html":{}}}],["ilessonproperties",{"_index":11867,"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":11929,"title":{"interfaces/ILoggerConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/ILoggerConfig.html":{},"modules/LoggerModule.html":{}}}],["iltitoolproperties",{"_index":7103,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["im",{"_index":4847,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["image",{"_index":16433,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["image/gif",{"_index":8789,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/jpeg",{"_index":8784,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/png",{"_index":8787,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["image/webp",{"_index":20240,"title":{},"body":{"classes/TestHelper.html":{}}}],["imagebuffer",{"_index":8769,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagebuffer.tostring('hex",{"_index":8821,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagemagick",{"_index":16653,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["imageobject",{"_index":16426,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["images",{"_index":16429,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["images[0",{"_index":16452,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["images[0].width",{"_index":16453,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["imagesignature",{"_index":8820,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imageurl",{"_index":3256,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["imageurl(value",{"_index":14332,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["imateapotexception",{"_index":9749,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imateapotexception('this",{"_index":9760,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imaterialproperties",{"_index":12095,"title":{"interfaces/IMaterialProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["imigrationoptions",{"_index":11600,"title":{"interfaces/IMigrationOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["immediately",{"_index":9626,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["immutable",{"_index":9456,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["impact",{"_index":22218,"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":23501,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["impersonated",{"_index":7098,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impersonates",{"_index":11940,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["impl",{"_index":3342,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["impl.ts",{"_index":3199,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:113",{"_index":3217,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:128",{"_index":3218,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:142",{"_index":3219,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:157",{"_index":3220,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:171",{"_index":3215,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:185",{"_index":3210,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:190",{"_index":3227,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:196",{"_index":3225,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:201",{"_index":3223,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:30",{"_index":3206,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:39",{"_index":3214,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:43",{"_index":3212,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:60",{"_index":3211,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:75",{"_index":3208,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:99",{"_index":3216,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["implemenation",{"_index":23735,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implement",{"_index":13895,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implementation",{"_index":2538,"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":23075,"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":13144,"title":{},"body":{"interfaces/JwtConstants.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implemented.loggable",{"_index":16514,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["implementing",{"_index":23107,"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":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRule.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DomainObject.html":{},"classes/DownloadFileParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"classes/FileDto.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.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/LinkElementResponseMapper.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/PreviewActionsLoggable.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/ScanResultParams.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":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"entities/SchoolYearEntity.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SingleFileParams.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/TooManyPseudonymsLoggableException.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implications",{"_index":23245,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["implicit",{"_index":23631,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implicitly",{"_index":23652,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implied",{"_index":22756,"title":{},"body":{"license.html":{}}}],["implies",{"_index":5515,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":18690,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:13",{"_index":18694,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:22",{"_index":18693,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.module.ts",{"_index":12924,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["import.uc",{"_index":12781,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["import/controller/dto/filter",{"_index":10656,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["import/controller/dto/import",{"_index":12831,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{}}}],["import/controller/dto/sort",{"_index":18891,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["import/controller/dto/update",{"_index":20767,"title":{},"body":{"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{}}}],["import/controller/dto/user",{"_index":21346,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["import/controller/import",{"_index":12734,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["import/export",{"_index":23561,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["import/loggable/migration",{"_index":14843,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["import/loggable/school",{"_index":18267,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["import/loggable/user",{"_index":21390,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["import/mapper/import",{"_index":12852,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["import/mapper/match.mapper.ts",{"_index":12899,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:12",{"_index":12905,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:5",{"_index":12903,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/role",{"_index":17534,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["import/mapper/user",{"_index":21351,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["import/uc/ldap",{"_index":13722,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["import/user",{"_index":12923,"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":{},"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":7831,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollection(@param('collectionname",{"_index":7851,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollection(collectionname",{"_index":7839,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollections",{"_index":7832,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(@query('with",{"_index":7849,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(withindexes",{"_index":7842,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["imported",{"_index":11763,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/ShareTokenImportBodyParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["importeddocumentsamount",{"_index":11760,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["importhash",{"_index":12590,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["importing",{"_index":22702,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.html":{},"modules/PseudonymModule.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":13632,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["importsharetoken",{"_index":18622,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["importsharetoken(currentuser",{"_index":18630,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["importsharetoken(userid",{"_index":18808,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["importuser",{"_index":12017,"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":12873,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.firstname",{"_index":12869,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.flagged",{"_index":12874,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.id",{"_index":12867,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.lastname",{"_index":12870,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.loginname",{"_index":12868,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.matchedby",{"_index":12876,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.rolenames.map((role",{"_index":12871,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.scope",{"_index":12945,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuser.user",{"_index":12875,"title":{},"body":{"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["importuser.user).filter((user",{"_index":12971,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importusercontroller",{"_index":12733,"title":{"controllers/ImportUserController.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["importuserentities",{"_index":12967,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserentities.map((importuser",{"_index":12970,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserfactory",{"_index":12816,"title":{"classes/ImportUserFactory.html":{}},"body":{"classes/ImportUserFactory.html":{}}}],["importuserfactory.define(importuser",{"_index":12824,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["importuserid",{"_index":12847,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserlist",{"_index":12791,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlist.map((importuser",{"_index":12794,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlistresponse",{"_index":12782,"title":{"classes/ImportUserListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["importuserlistresponse(dtolist",{"_index":12796,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper",{"_index":12773,"title":{"classes/ImportUserMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["importusermapper.mapimportuserfilterquerytodomain(scope",{"_index":12790,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.mapsortingquerytodomain(sortingquery",{"_index":12789,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(importuser",{"_index":12795,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(result",{"_index":12800,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermatchmapper",{"_index":12861,"title":{"classes/ImportUserMatchMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["importusermatchmapper.mapimportusermatchscopetodomain(match",{"_index":12896,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusermatchmapper.mapmatchcreatortoresponse(matchcreator",{"_index":21367,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["importusermodule",{"_index":12918,"title":{"modules/ImportUserModule.html":{}},"body":{"modules/ImportUserModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["importuserrepo",{"_index":12922,"title":{"injectables/ImportUserRepo.html":{}},"body":{"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{}}}],["importuserresponse",{"_index":12783,"title":{"classes/ImportUserResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{}}}],["importusers",{"_index":12016,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"injectables/UserRepo.html":{}}}],["importuserschoolid",{"_index":18270,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserscope",{"_index":12944,"title":{"classes/ImportUserScope.html":{}},"body":{"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{}}}],["importusersortorder",{"_index":12860,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["importusersortorder.firstname",{"_index":12864,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusersortorder.lastname",{"_index":12865,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuserurlparams",{"_index":12755,"title":{"classes/ImportUserUrlParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserUrlParams.html":{}}}],["impose",{"_index":22633,"title":{},"body":{"license.html":{}}}],["imposed",{"_index":22759,"title":{},"body":{"license.html":{}}}],["impossile",{"_index":15139,"title":{},"body":{"classes/NewsScope.html":{}}}],["improvements",{"_index":22312,"title":{},"body":{"license.html":{}}}],["improves",{"_index":23298,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ims",{"_index":5255,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["imsbasiclti_v1p0p1.xsd",{"_index":5208,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticm_v1p0.xsd",{"_index":5207,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticp_v1p0.xsd",{"_index":5206,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["in.'})@apioperation({summary",{"_index":20440,"title":{},"body":{"controllers/ToolController.html":{}}}],["in/out",{"_index":23169,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["inability",{"_index":22812,"title":{},"body":{"license.html":{}}}],["inaccurate",{"_index":22815,"title":{},"body":{"license.html":{}}}],["inamematch",{"_index":12055,"title":{"interfaces/INameMatch.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["inc",{"_index":22268,"title":{},"body":{"license.html":{}}}],["incidental",{"_index":22809,"title":{},"body":{"license.html":{}}}],["include",{"_index":2464,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["included",{"_index":6160,"title":{},"body":{"classes/CopyApiResponse.html":{},"license.html":{}}}],["includes",{"_index":15235,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["including",{"_index":10318,"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":22507,"title":{},"body":{"license.html":{}}}],["incoming",{"_index":10863,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["incoming_request_timeout",{"_index":11973,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["incoming_request_timeout_copy_api",{"_index":11976,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incomplete",{"_index":11380,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["incorporate",{"_index":22316,"title":{},"body":{"license.html":{}}}],["incorporated",{"_index":22777,"title":{},"body":{"license.html":{}}}],["incorporation",{"_index":22560,"title":{},"body":{"license.html":{}}}],["increase",{"_index":9511,"title":{},"body":{"injectables/ExternalToolVersionService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["increaseversionofnewtoolifnecessary",{"_index":9474,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["increaseversionofnewtoolifnecessary(oldtool",{"_index":9492,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["indefinitely",{"_index":5452,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["indemnification",{"_index":22629,"title":{},"body":{"license.html":{}}}],["independent",{"_index":22497,"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/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":{},"classes/AuthenticationValues.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["index()@enum",{"_index":10019,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@enum(undefined",{"_index":3594,"title":{},"body":{"entities/BoardNode.html":{}}}],["index()@manytomany('course",{"_index":7554,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytomany('user",{"_index":6502,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{}}}],["index()@manytomany({fieldname",{"_index":20801,"title":{},"body":{"entities/User.html":{}}}],["index()@manytoone('course",{"_index":6748,"title":{},"body":{"entities/CourseGroup.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone('dashboardmodelentity",{"_index":7552,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytoone('lessonentity",{"_index":19522,"title":{},"body":{"entities/Task.html":{}}}],["index()@manytoone('user",{"_index":7638,"title":{},"body":{"entities/DashboardModelEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone(undefined",{"_index":6497,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["index()@property",{"_index":14189,"title":{},"body":{"entities/LessonEntity.html":{}}}],["index()@property({fieldname",{"_index":10011,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@property({nullable",{"_index":3590,"title":{},"body":{"entities/BoardNode.html":{},"entities/Course.html":{}}}],["index({options",{"_index":10014,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["index.ts",{"_index":22867,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["indexes",{"_index":7802,"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":11794,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["indicate",{"_index":22673,"title":{},"body":{"license.html":{}}}],["indicating",{"_index":7059,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["individual",{"_index":22505,"title":{},"body":{"license.html":{}}}],["individuals",{"_index":22347,"title":{},"body":{"license.html":{}}}],["industrial",{"_index":22569,"title":{},"body":{"license.html":{}}}],["inestapplication",{"_index":1626,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inewsproperties",{"_index":6852,"title":{"interfaces/INewsProperties.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["inewsscope",{"_index":11938,"title":{"interfaces/INewsScope.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["inferrable",{"_index":12851,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["info(currentuser",{"_index":21716,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["info(loggable",{"_index":14414,"title":{},"body":{"injectables/Logger.html":{}}}],["info(text",{"_index":5545,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["info.dto.ts",{"_index":4320,"title":{},"body":{"classes/ClassInfoDto.html":{},"interfaces/ShareTokenInfoDto.html":{}}}],["info.dto.ts:10",{"_index":4326,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:12",{"_index":4330,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:14",{"_index":4329,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:16",{"_index":4325,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:4",{"_index":4327,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:6",{"_index":4332,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.dto.ts:8",{"_index":4328,"title":{},"body":{"classes/ClassInfoDto.html":{}}}],["info.interface.ts",{"_index":12229,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["info.mapper",{"_index":15033,"title":{},"body":{"classes/NewsMapper.html":{}}}],["info.mapper.ts",{"_index":18294,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.mapper.ts:5",{"_index":18296,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.reponse.ts",{"_index":18698,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:13",{"_index":18702,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:16",{"_index":18701,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:20",{"_index":18700,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:5",{"_index":18699,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.response",{"_index":4353,"title":{},"body":{"classes/ClassInfoSearchListResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{}}}],["info.response.ts",{"_index":2213,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/ClassInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:11",{"_index":21890,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:12",{"_index":4347,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:13",{"_index":18302,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:14",{"_index":21014,"title":{},"body":{"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:15",{"_index":4345,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:18",{"_index":4349,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:19",{"_index":21013,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:21",{"_index":4348,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:24",{"_index":4344,"title":{},"body":{"classes/ClassInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:3",{"_index":18301,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.response.ts:6",{"_index":4346,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.response.ts:9",{"_index":4350,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["info.ts",{"_index":11925,"title":{},"body":{"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"classes/VideoConferenceInfo.html":{}}}],["info.ts:6",{"_index":21883,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["info.uc.ts",{"_index":21892,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:12",{"_index":21894,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:19",{"_index":21896,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:74",{"_index":21898,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["infodto",{"_index":21856,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["infodto.state",{"_index":21858,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["inform",{"_index":22545,"title":{},"body":{"license.html":{}}}],["information",{"_index":1433,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/BBBService.html":{},"classes/ConsentRequestBody.html":{},"classes/ErrorResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/PseudonymController.html":{},"controllers/SystemController.html":{},"injectables/TaskCopyUC.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":4839,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["infra",{"_index":14771,"title":{},"body":{"modules/ManagementModule.html":{}}}],["infrastructure",{"_index":23179,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["infrastucture",{"_index":18579,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["infringe",{"_index":22671,"title":{},"body":{"license.html":{}}}],["infringed",{"_index":22699,"title":{},"body":{"license.html":{}}}],["infringement",{"_index":22358,"title":{},"body":{"license.html":{}}}],["inherit",{"_index":2466,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritance",{"_index":23635,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritances",{"_index":15104,"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/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/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/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.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/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.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":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"classes/Group.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/LinkElement.html":{},"classes/LinkElementContentBody.html":{},"classes/LoginRequestBody.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.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/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthLoginResponse.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PreviewProducer.html":{},"classes/Pseudonym.html":{},"classes/PseudonymScope.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/TooManyPseudonymsLoggableException.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":3827,"title":{},"body":{"classes/Builder.html":{}}}],["initauth",{"_index":11485,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initauth(oauthconfig",{"_index":11496,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initialdelay",{"_index":13780,"title":{},"body":{"injectables/LdapService.html":{}}}],["initialized",{"_index":17083,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["initializes3clientmap",{"_index":7942,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["initiate",{"_index":22694,"title":{},"body":{"license.html":{}}}],["initiated",{"_index":11943,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["initresponse",{"_index":11422,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["initresponse.config",{"_index":11458,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["inject",{"_index":839,"title":{},"body":{"modules/AccountModule.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.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":{},"modules/PreviewGeneratorConsumerModule.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":{},"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":1361,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["inject('dashboard_repo",{"_index":7774,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["inject('icollaborativestoragestrategy",{"_index":4553,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["inject('mail_service_options",{"_index":14756,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["inject('rocket_chat_options",{"_index":1210,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["inject(bbbsettings",{"_index":2295,"title":{},"body":{"injectables/BBBService.html":{}}}],["inject(cache_manager",{"_index":13207,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["inject(defaultencryptionservice",{"_index":9314,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["inject(files_storage_s3_connection",{"_index":16713,"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":10770,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["inject(keycloakconfigurationinputfiles",{"_index":13701,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inject(keycloaksettings",{"_index":13264,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["inject(ldapencryptionservice",{"_index":11679,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["inject(redis_client",{"_index":18574,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["inject(s3_client",{"_index":17858,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(s3_config",{"_index":17859,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(toolfeatures",{"_index":8790,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["inject(your_s3_uniq_connection_token",{"_index":23757,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/FeathersRosterService.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/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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/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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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/ToolReferenceService.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":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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":{},"injectables/FeathersRosterService.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/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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/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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/FeathersRosterService.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/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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/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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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/ToolReferenceService.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":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["injected",{"_index":9622,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["injectenvvars(json",{"_index":11811,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["injecting",{"_index":23750,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injection",{"_index":13897,"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":23708,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inline",{"_index":1489,"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":1488,"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":12181,"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":5289,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["innerpermissions",{"_index":12167,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerrole.resolvepermissions",{"_index":12168,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles",{"_index":12164,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles.foreach((innerrole",{"_index":12166,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["input",{"_index":2268,"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":{},"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":17988,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.dto.ts",{"_index":15710,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:4",{"_index":15712,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:6",{"_index":15713,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:8",{"_index":15711,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.mapper",{"_index":16871,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["input.mapper.ts",{"_index":16895,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.mapper.ts:6",{"_index":16898,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.system",{"_index":13123,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.provisioningurl",{"_index":17987,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.systemid",{"_index":13109,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["inputdto",{"_index":16879,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["inputfiles",{"_index":13690,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inputformat",{"_index":3259,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["inputformat(value",{"_index":17473,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["inputformat.plain_text",{"_index":5653,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["inputformat.rich_text_ck4",{"_index":12459,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"classes/TaskWithStatusVo.html":{}}}],["inputformat.rich_text_ck5",{"_index":3556,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/TaskMapper.html":{}}}],["inputpath",{"_index":1685,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputpath.charat(pos",{"_index":1682,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputroles",{"_index":16563,"title":{},"body":{"injectables/PermissionService.html":{}}}],["insensitive",{"_index":13001,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["insertedcount",{"_index":7894,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["inside",{"_index":3834,"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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inspect",{"_index":23585,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["inspired",{"_index":23472,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["install",{"_index":22407,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["installation",{"_index":22573,"title":{},"body":{"license.html":{}}}],["installed",{"_index":22590,"title":{},"body":{"license.html":{}}}],["instance",{"_index":5183,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ExternalToolElementResponseMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LegacyLogger.html":{},"classes/LinkElementResponseMapper.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/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":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/FilesStorageClientMapper.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupRule.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":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/NewsRepo.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/PseudonymService.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instances",{"_index":5684,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instant",{"_index":6533,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["instead",{"_index":2440,"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":{},"injectables/UserService.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":23186,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["instructor",{"_index":7106,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["intact",{"_index":22474,"title":{},"body":{"license.html":{}}}],["integration",{"_index":11370,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["intend",{"_index":11841,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["intended",{"_index":4137,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["intendeduse",{"_index":5070,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["intention",{"_index":22467,"title":{},"body":{"license.html":{}}}],["interact",{"_index":22846,"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":22772,"title":{},"body":{"license.html":{}}}],["interaction",{"_index":22373,"title":{},"body":{"license.html":{}}}],["interactions",{"_index":23119,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interactive",{"_index":22376,"title":{},"body":{"license.html":{}}}],["intercept",{"_index":8156,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["intercept(context",{"_index":8158,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["interceptor",{"_index":6444,"title":{},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interceptormodule",{"_index":6427,"title":{"modules/InterceptorModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"modules.html":{}}}],["interchange",{"_index":22517,"title":{},"body":{"license.html":{}}}],["interest",{"_index":22687,"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/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.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/ICleanOptions.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/IRetryOptions.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/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.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/OauthCurrentUser.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/PseudonymSearchQuery.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/ScanResult.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/SchoolSpecificFileCopyService.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/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserLoginMigrationQuery.html":{},"interfaces/UserMetdata.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.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":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersError.html":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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/ICleanOptions.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/IRetryOptions.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":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"interfaces/OauthCurrentUser.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"interfaces/PseudonymSearchQuery.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"entities/SchoolYearEntity.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/SystemEntity.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/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserLoginMigrationQuery.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.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":{},"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":3860,"title":{},"body":{"injectables/CacheService.html":{}}}],["interface/calendar",{"_index":3931,"title":{},"body":{"injectables/CalendarService.html":{}}}],["interface/json",{"_index":13698,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["interface/jwt",{"_index":1742,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{}}}],["interface/keycloak",{"_index":13222,"title":{},"body":{"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["interface/learnroom",{"_index":12445,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["interface/oauth",{"_index":1529,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["interface/oidc",{"_index":16822,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["interface/page",{"_index":16490,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["interface/preview",{"_index":10025,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.html":{}}}],["interface/redis.constants",{"_index":17322,"title":{},"body":{"modules/RedisModule.html":{}}}],["interface/sso",{"_index":1919,"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":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.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/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.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/ICleanOptions.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/IRetryOptions.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/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.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/OauthCurrentUser.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/PseudonymSearchQuery.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/ScanResult.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/SchoolSpecificFileCopyService.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/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserLoginMigrationQuery.html":{},"interfaces/UserMetdata.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":6285,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{}}}],["interfaces/legacy",{"_index":13892,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["interfered",{"_index":22579,"title":{},"body":{"license.html":{}}}],["intermediate",{"_index":1940,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["internal",{"_index":769,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationReferenceService.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":12616,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["internalaxiosrequestconfig",{"_index":2026,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["internalid",{"_index":1071,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["internally",{"_index":17861,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["internalmeetingid",{"_index":2162,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["internalrepo",{"_index":23130,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["internalservererrorexception",{"_index":1353,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/ClassService.html":{},"injectables/ColumnBoardCopyService.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":{},"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":{},"classes/UsersList.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["internalservererrorexception('cannot",{"_index":3601,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/UserLoginMigrationService.html":{}}}],["internalservererrorexception('copy",{"_index":6711,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["internalservererrorexception('courses",{"_index":6585,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["internalservererrorexception('expected",{"_index":4759,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["internalservererrorexception('feature",{"_index":10729,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["internalservererrorexception('import",{"_index":18852,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["internalservererrorexception('lessons",{"_index":11897,"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":17818,"title":{},"body":{"injectables/RuleManager.html":{}}}],["internalservererrorexception('provisioning",{"_index":16884,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["internalservererrorexception('s3clientadapter:copy",{"_index":17903,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:create",{"_index":17882,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:delete",{"_index":17891,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:get",{"_index":17876,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:restore",{"_index":17896,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('submissions",{"_index":12477,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('task.finished",{"_index":12481,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('tool",{"_index":15990,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception('unknown",{"_index":7693,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["internalservererrorexception('user",{"_index":4419,"title":{},"body":{"injectables/ClassService.html":{},"injectables/PseudonymService.html":{}}}],["internalservererrorexception(`${bbbresp.response.messagekey",{"_index":2314,"title":{},"body":{"injectables/BBBService.html":{}}}],["internalservererrorexception(`cannot",{"_index":15988,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception(`multiple",{"_index":14029,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["internalservererrorexception(`redirect",{"_index":11464,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["internalservererrorexception(errorobj.message",{"_index":8363,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["internalservererrorexception(null",{"_index":1384,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"classes/ErrorMapper.html":{}}}],["internalservererrorexception(oauthclientid",{"_index":11554,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["internalservererrorexception})@apiresponse({status",{"_index":18636,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@get('/:contentid/edit",{"_index":11364,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get('/:contentid/play",{"_index":11366,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get(':token",{"_index":18642,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@post",{"_index":18628,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservice",{"_index":23131,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interpretation",{"_index":22821,"title":{},"body":{"license.html":{}}}],["interpreter",{"_index":22406,"title":{},"body":{"license.html":{}}}],["intimate",{"_index":22414,"title":{},"body":{"license.html":{}}}],["introduce",{"_index":9623,"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":23224,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introducing",{"_index":22925,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["introduction",{"_index":22864,"title":{},"body":{"todo.html":{}}}],["introspectoauth2token",{"_index":16038,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectoauth2token(token",{"_index":16053,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["introspectresponse",{"_index":13050,"title":{"interfaces/IntrospectResponse.html":{}},"body":{"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{}}}],["inusermigration",{"_index":12182,"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/AuthenticationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["invalid_origin_for_logout_url",{"_index":13061,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["invalid_request",{"_index":5456,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["invalidate",{"_index":22494,"title":{},"body":{"license.html":{}}}],["invalidoriginforlogouturlloggableexception",{"_index":13057,"title":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/VideoConferenceController.html":{}}}],["invalidoriginforlogouturlloggableexception(params.logouturl",{"_index":21744,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["inversion",{"_index":23073,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["invitationlink",{"_index":4207,"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":1235,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["invoke",{"_index":23549,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["ip",{"_index":23584,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipaddress",{"_index":23587,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipagination",{"_index":8961,"title":{"interfaces/IPagination.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{}}}],["iparentinfo",{"_index":10047,"title":{"interfaces/IParentInfo.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iprimarykey",{"_index":10578,"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":12102,"title":{"interfaces/IRelatedResourceProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["irepoloader",{"_index":12122,"title":{"interfaces/IRepoLoader.html":{}},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["iretryoptions",{"_index":11597,"title":{"interfaces/IRetryOptions.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["iroleproperties",{"_index":12158,"title":{"interfaces/IRoleProperties.html":{}},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["irrevocable",{"_index":22420,"title":{},"body":{"license.html":{}}}],["isactive",{"_index":8111,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isallowedaschild",{"_index":2755,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["isallowedaschild(child",{"_index":19041,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isallowedaschild(domainobject",{"_index":2772,"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":5606,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isanycontentelement(element",{"_index":5613,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isapplicable",{"_index":3385,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":3389,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":8146,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["isarray",{"_index":5477,"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":15528,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isarray()@ismongoid({each",{"_index":16545,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["isarray()@isoptional()@isstring({each",{"_index":5492,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{}}}],["isarray()@isstring({each",{"_index":5436,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["isatleastpartialsuccessfull",{"_index":6360,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isatleastpartialsuccessfull(status",{"_index":6370,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isauthenticated",{"_index":23743,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["isauthenticationresponse",{"_index":1694,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthenticationresponse(body",{"_index":1693,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthorizedstudent",{"_index":19111,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isauthorizedstudent(userid",{"_index":19116,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isautoparameterglobal",{"_index":8847,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isautoparameterglobal(customparameter",{"_index":8859,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isblocked",{"_index":10084,"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":{}}}],["isboolean()@apiproperty",{"_index":7330,"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":7058,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["isboolean()@isoptional()@apiproperty({description",{"_index":5440,"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":2218,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["isbusinesserror",{"_index":8384,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isbusinesserror(error",{"_index":8390,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["iscard(reference",{"_index":3965,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["ischoolexternaltoolproperties",{"_index":12171,"title":{"interfaces/ISchoolExternalToolProperties.html":{}},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["ischoolproperties",{"_index":12179,"title":{"interfaces/ISchoolProperties.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ischoolyearproperties",{"_index":12221,"title":{"interfaces/ISchoolYearProperties.html":{}},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["isclientidunique",{"_index":9432,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["isclientidunique(externaltool",{"_index":9437,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["iscolumn(reference",{"_index":4718,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["iscolumnboard",{"_index":4742,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(copystatus.copyentity",{"_index":4758,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["iscolumnboard(reference",{"_index":4735,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["iscolumnboardfeatureflagactive",{"_index":8061,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["iscolumnboardtarget",{"_index":3002,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(element.target",{"_index":3045,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["iscolumnboardtarget(reference",{"_index":4885,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["iscopeinfo",{"_index":12227,"title":{"interfaces/IScopeInfo.html":{}},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["iscopyfrom",{"_index":10009,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iscoursefinished",{"_index":12497,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["iscreator",{"_index":17671,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iscustomparameternameempty",{"_index":8848,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iscustomparameternameempty(param",{"_index":8861,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdate",{"_index":999,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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()@isoptional()@apipropertyoptional({description",{"_index":7038,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isdefaultvalueofvalidregex",{"_index":8849,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidregex(param",{"_index":8863,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype",{"_index":8850,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype(param",{"_index":8865,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdirectory",{"_index":9877,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["isdraft",{"_index":3776,"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":{},"classes/PatchMyAccountParams.html":{}}}],["isemail()@isoptional()@apiproperty({description",{"_index":16528,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["isempty",{"_index":10907,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["isemptyqueryallowed",{"_index":6017,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["isenabled",{"_index":16741,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["isenum",{"_index":1044,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ClassSortParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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(classsortby",{"_index":4439,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isenum(contentelementtype",{"_index":6979,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(contentelementtype)@apiproperty({description",{"_index":6988,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isenum(customparameterlocationparams",{"_index":7345,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterlocationparams)@apiproperty",{"_index":7333,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams",{"_index":7344,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams)@apiproperty",{"_index":7339,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams",{"_index":7346,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams)@apiproperty",{"_index":7342,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(externaltoolsortby",{"_index":18884,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isenum(filerecordparenttype",{"_index":6232,"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":10680,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(filterroletype",{"_index":10681,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(importusersortorder",{"_index":18893,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isenum(inputformat",{"_index":8176,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(inputformat)@apiproperty",{"_index":17457,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["isenum(languagetype",{"_index":4202,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["isenum(ltimessagetype",{"_index":14589,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltimessagetype)@apiproperty",{"_index":14582,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission",{"_index":14590,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission)@apiproperty",{"_index":14584,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(newstargetmodel",{"_index":7053,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["isenum(newstargetmodel)@apiproperty({enum",{"_index":7046,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isenum(pagetypes",{"_index":16491,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["isenum(previewoutputmimetypes",{"_index":6245,"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":6247,"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":18614,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sharetokenparenttype)@apiproperty({description",{"_index":18609,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sortorder",{"_index":18898,"title":{},"body":{"classes/SortingParams.html":{}}}],["isenum(ssoauthenticationerror",{"_index":1922,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isenum(subjecttypeenum",{"_index":15622,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(subjecttypeenum)@isoptional()@apiproperty({description",{"_index":15608,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(systemtypeenum",{"_index":19376,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["isenum(tokenauthmethod",{"_index":15621,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenauthmethod)@isoptional()@apiproperty({description",{"_index":15613,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenendpointauthmethod",{"_index":15534,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(tokenendpointauthmethod)@apiproperty",{"_index":15532,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype",{"_index":2589,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype)@apiproperty",{"_index":2586,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolcontexttype",{"_index":5767,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{}}}],["isenum(toolcontexttype)@apiproperty",{"_index":5823,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({enum",{"_index":5764,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({type",{"_index":6129,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["isenum(videoconferencescope",{"_index":22034,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["iserv",{"_index":13100,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{}}}],["iserverconfig",{"_index":804,"title":{"interfaces/IServerConfig.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["iservlogouturl",{"_index":15461,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('id_token_hint",{"_index":15463,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('post_logout_redirect_uri",{"_index":15464,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.tostring",{"_index":15466,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservmapper",{"_index":13066,"title":{"classes/IservMapper.html":{}},"body":{"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternalschooldto(ldapschool",{"_index":13121,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternaluserdto(ldapuser",{"_index":13119,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservprovisioningstrategy",{"_index":13083,"title":{"injectables/IservProvisioningStrategy.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["iservstrategy",{"_index":16854,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["isession",{"_index":15738,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["isexternaltoolelement(reference",{"_index":8647,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["isexternaluser",{"_index":7025,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["isfeatherserror",{"_index":8385,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfeatherserror(error",{"_index":8392,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfileelement(reference",{"_index":9846,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["isfinished",{"_index":3777,"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":{},"classes/UsersList.html":{}}}],["isfinishedforuser",{"_index":12499,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser(user",{"_index":12491,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isflagged",{"_index":12992,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isflagged(flagged",{"_index":13010,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isglobal",{"_index":8916,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid",{"_index":8851,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid(customparameter",{"_index":8867,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isgraceperiodexpired",{"_index":4480,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraceperiodexpired(userloginmigration",{"_index":4488,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraded",{"_index":12323,"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":12326,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isgradedforuser(user",{"_index":12324,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgroup",{"_index":7457,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["isguest",{"_index":21902,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["isharetokenproperties",{"_index":12249,"title":{"interfaces/IShareTokenProperties.html":{}},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{}}}],["ishidden",{"_index":7135,"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":11523,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["isinfected",{"_index":1362,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["isinstancealive",{"_index":16039,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["isinstanceofloggable",{"_index":14451,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isinstanceofloggable(object",{"_index":14456,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isint",{"_index":5478,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isint()@isoptional()@apiproperty({description",{"_index":5447,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["isint()@isoptional()@ispositive()@apiproperty({description",{"_index":18604,"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":5347,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islatest(tool1",{"_index":5351,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islesson",{"_index":3003,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(element.target",{"_index":3042,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(reference",{"_index":11916,"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":{}}}],["islinkelement(reference",{"_index":14336,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["islisteningonly",{"_index":2232,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["islocal",{"_index":7125,"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":14588,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocale()@apiproperty",{"_index":14580,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocalhost",{"_index":1316,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["islti11config",{"_index":8479,"title":{},"body":{"classes/ExternalTool.html":{}}}],["islti11config(config",{"_index":8490,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["ismandatory",{"_index":18309,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ismarked",{"_index":10218,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["ismarkedfordeletion",{"_index":9940,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ismatched",{"_index":3393,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":12306,"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/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolIdParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/GroupIdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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/RichTextContentBody.html":{},"classes/RichTextElementContentBody.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/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.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/UpdateElementContentBodyParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["ismongoid()@apiproperty",{"_index":5806,"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":3795,"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":5803,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/GroupIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["ismongoid()@apiproperty({pattern",{"_index":7043,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ImportUserResponse.html":{}}}],["ismongoid()@apiproperty({required",{"_index":14915,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["ismongoid()@isoptional()@apipropertyoptional",{"_index":8612,"title":{},"body":{"classes/ExternalToolContentBody.html":{}}}],["ismongoid({each",{"_index":4050,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["isnameunique",{"_index":8852,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnameunique(externaltool",{"_index":8869,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnan",{"_index":5394,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnan(number(val",{"_index":5392,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnesthttpexception",{"_index":8386,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnesthttpexception(error",{"_index":8395,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnextcloud",{"_index":15965,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool",{"_index":15950,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool(tool",{"_index":15955,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnotcontained",{"_index":2698,"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":18950,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnotemptystring(value",{"_index":18951,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnumber",{"_index":3469,"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":5473,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["isnumber()@min(0)@apiproperty",{"_index":3466,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@apiproperty({required",{"_index":14917,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty",{"_index":3463,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty({description",{"_index":14367,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isnumber()@min(0)@isoptional()@apipropertyoptional({description",{"_index":14931,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@max(500)@isoptional()@apiproperty({description",{"_index":14363,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isoauth2config",{"_index":8480,"title":{},"body":{"classes/ExternalTool.html":{}}}],["isoauth2config(config",{"_index":8492,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["isoauthconfigavailable",{"_index":12670,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["isoauthprovisioningenabledforschool",{"_index":15391,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15412,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isolate",{"_index":23626,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["isolated",{"_index":23386,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isolation",{"_index":23321,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isopen",{"_index":6725,"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/ClassSortParams.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/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.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/LessonCopyApiParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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/RichTextContentBody.html":{},"classes/RichTextElementContentBody.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/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SystemFilterParams.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["isoptional()@apiproperty",{"_index":5499,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@apiproperty({description",{"_index":5490,"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":17933,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isboolean()@apiproperty({description",{"_index":458,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":10690,"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":20780,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isenum(classsortby)@apipropertyoptional({enum",{"_index":4433,"title":{},"body":{"classes/ClassSortParams.html":{}}}],["isoptional()@isenum(externaltoolsortby)@apipropertyoptional({enum",{"_index":18883,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isoptional()@isenum(filterroletype)@apipropertyoptional({enum",{"_index":10674,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isenum(importusersortorder)@apipropertyoptional({enum",{"_index":18892,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isoptional()@isenum(sortorder)@apipropertyoptional({enum",{"_index":4436,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["isoptional()@isenum(ssoauthenticationerror",{"_index":1914,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isint()@min(0)@apipropertyoptional({description",{"_index":6984,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isoptional()@ismongoid",{"_index":610,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@ismongoid()@apipropertyoptional({pattern",{"_index":10685,"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":17935,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isstring()@apiproperty({description",{"_index":18691,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["isoptional()@isstring()@isemail()@apiproperty({description",{"_index":465,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isstring()@isenum(newstargetmodel)@apipropertyoptional({enum",{"_index":10688,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["isoptional()@isstring()@isnotempty",{"_index":1911,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@isnotempty()@apipropertyoptional({type",{"_index":10660,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isstring()@sanitizehtml()@apipropertyoptional({description",{"_index":20782,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isstring()@sanitizehtml(inputformat.rich_text)@apipropertyoptional({description",{"_index":20778,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoutdated",{"_index":18370,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserScope.html":{}}}],["isoutdated(isoutdated",{"_index":21564,"title":{},"body":{"classes/UserScope.html":{}}}],["isoutdated(query.isoutdated",{"_index":20907,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["isowner",{"_index":21559,"title":{},"body":{"injectables/UserRule.html":{}}}],["ispending",{"_index":10092,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isplanned",{"_index":12501,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["ispositive",{"_index":18592,"title":{},"body":{"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["ispositive()@apiproperty({required",{"_index":18590,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["ispossible",{"_index":18310,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ispresenter",{"_index":2231,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["ispreviewpossible",{"_index":10095,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ispropertyprivacyprotected",{"_index":8280,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["ispropertyprivacyprotected(target",{"_index":8292,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["isprotecteduser",{"_index":21620,"title":{},"body":{"injectables/UserService.html":{}}}],["ispublished",{"_index":12500,"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":8853,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexcommentmandatoryandfilled(customparameter",{"_index":8871,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid",{"_index":8854,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid(param",{"_index":8873,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isrequiredtool",{"_index":9725,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["isrichtextelement(reference",{"_index":17477,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["iss",{"_index":6994,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["issatisfiedby(t",{"_index":23291,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["isschoolnumberunique",{"_index":18430,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isschoolnumberunique(school",{"_index":18432,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isslash",{"_index":1681,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isslash(inputpath",{"_index":1679,"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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.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/LinkContentBody.html":{},"classes/LinkElementContentBody.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/PseudonymParams.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":{}}}],["isstring()@apiproperty",{"_index":2584,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/LinkContentBody.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({nullable",{"_index":16960,"title":{},"body":{"classes/PseudonymParams.html":{}}}],["isstring()@apiproperty({required",{"_index":17332,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["isstring()@ismongoid()@isoptional()@apipropertyoptional({description",{"_index":19675,"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":7328,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{}}}],["isstring()@isoptional()@apiproperty({description",{"_index":5454,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{}}}],["isstring()@isoptional()@apipropertyoptional",{"_index":5825,"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":19677,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@matches(undefined)@apiproperty({description",{"_index":6891,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["isstring()@sanitizehtml()@apiproperty({description",{"_index":7049,"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":7036,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isstring(value",{"_index":18953,"title":{},"body":{"classes/StringValidator.html":{}}}],["isstudent",{"_index":6915,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["issubmissioncontainerelement",{"_index":8236,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(reference",{"_index":18977,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["issubmissioncontainerelement(submissioncontainerelement",{"_index":8243,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissioncontainerelement(submissioncontainterelement",{"_index":19106,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["issubmissionitem",{"_index":8237,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["issubmissionitem(child",{"_index":8246,"title":{},"body":{"injectables/ElementUc.html":{}}}],["issubmissionitem(reference",{"_index":19056,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["issubmitted",{"_index":12304,"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":12309,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["issubmittedforuser(user",{"_index":12305,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubstitutionteacher",{"_index":3778,"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":{},"classes/UsersList.html":{}}}],["issuer",{"_index":1613,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["issues",{"_index":23014,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["istanbul",{"_index":3047,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/S3ClientAdapter.html":{},"classes/ShareTokenFactory.html":{}}}],["istask",{"_index":3004,"title":{},"body":{"injectables/BoardCopyService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["istask(element.target",{"_index":3038,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["istask(reference",{"_index":12549,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isteacher",{"_index":6916,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isteamuser",{"_index":20117,"title":{},"body":{"injectables/TeamRule.html":{}}}],["istemplate",{"_index":7124,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["istoolstatuslatestorthrow",{"_index":20575,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istoolstatuslatestorthrow(userid",{"_index":20582,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istorageproviderproperties",{"_index":12260,"title":{"interfaces/IStorageProviderProperties.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["isubmissionproperties",{"_index":12273,"title":{"interfaces/ISubmissionProperties.html":{}},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{}}}],["isuniqueemail",{"_index":1112,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemail(email",{"_index":1116,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount",{"_index":1113,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount(email",{"_index":1118,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser",{"_index":1114,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser(email",{"_index":1120,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isupgradable",{"_index":4322,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{}}}],["isurl",{"_index":21771,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["isuserinfinisheduser",{"_index":12494,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isuseringroup",{"_index":16394,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["isuserreferenced",{"_index":1829,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isuserreferenced(user",{"_index":1840,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isusersubmitter(user",{"_index":12320,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isusersubstitutionteacher(user",{"_index":6581,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["isusersubstitutionteacherincourse(user",{"_index":12523,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isvalid",{"_index":3284,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isvaluevalidfortype",{"_index":5370,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isvaluevalidfortype(type",{"_index":5387,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isverified",{"_index":10093,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isvisible",{"_index":14258,"title":{},"body":{"injectables/LessonRule.html":{}}}],["iswhitelisted",{"_index":13187,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["iswhitelisted(accountid",{"_index":13194,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["isystemproperties",{"_index":12327,"title":{"interfaces/ISystemProperties.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["it's",{"_index":23355,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["it(\"should",{"_index":23320,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('bad",{"_index":23359,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('good",{"_index":23361,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('should",{"_index":23423,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["itargetgroupproperties",{"_index":12103,"title":{"interfaces/ITargetGroupProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["itask",{"_index":12433,"title":{"interfaces/ITask.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["itaskcreate",{"_index":12437,"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":6522,"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":{},"classes/UsersList.html":{}}}],["itaskproperties",{"_index":12438,"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":3771,"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":12436,"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":12550,"title":{"interfaces/ITeamProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{}}}],["iteamuserproperties",{"_index":12555,"title":{"interfaces/ITeamUserProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["item",{"_index":3195,"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":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["item.'})@apiresponse({status",{"_index":3732,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.body.params.ts",{"_index":7057,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.body.params.ts:10",{"_index":7061,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.columnboardid",{"_index":4905,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["item.do",{"_index":2851,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"injectables/SubmissionItemFactory.html":{}}}],["item.do.ts",{"_index":19038,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["item.do.ts:10",{"_index":19045,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:14",{"_index":19046,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:18",{"_index":19048,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:6",{"_index":19043,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.factory.ts",{"_index":19058,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.factory.ts:7",{"_index":19059,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.name.tolocalelowercase",{"_index":8907,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["item.response",{"_index":19254,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item.response.ts",{"_index":19068,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:13",{"_index":19071,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:16",{"_index":19072,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:19",{"_index":19070,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:22",{"_index":19073,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:4",{"_index":19069,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.service",{"_index":8239,"title":{},"body":{"injectables/ElementUc.html":{}}}],["item.service.ts",{"_index":19094,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:11",{"_index":19095,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:14",{"_index":19098,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:24",{"_index":19097,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:44",{"_index":19100,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.split(';')[0",{"_index":11545,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["item.uc",{"_index":2730,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["item.uc.ts",{"_index":19109,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:16",{"_index":19112,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:28",{"_index":19115,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:54",{"_index":19120,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:71",{"_index":19117,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:87",{"_index":19113,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.url.params.ts",{"_index":19137,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.url.params.ts:11",{"_index":19138,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.userid",{"_index":8251,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["item/create",{"_index":7056,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{}}}],["item/submission",{"_index":18993,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["item/submissions.response",{"_index":3737,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item/submissions.response.ts",{"_index":19248,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:14",{"_index":19251,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:19",{"_index":19252,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/submissions.response.ts:5",{"_index":19250,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["item/update",{"_index":20784,"title":{},"body":{"classes/UpdateSubmissionItemBodyParams.html":{}}}],["itemindex",{"_index":8904,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["items",{"_index":1019,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/CardResponse.html":{},"classes/ClassInfoSearchListResponse.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":{}}}],["itemsperpage",{"_index":11331,"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":8517,"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/OAuth2ToolLaunchStrategy.html":{}}}],["itoollaunchstrategy",{"_index":212,"title":{"interfaces/IToolLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["itself",{"_index":1945,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":11937,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["iuserconfig",{"_index":12232,"title":{"interfaces/IUserConfig.html":{}},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["iuserloginmigration",{"_index":21152,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["iuserproperties",{"_index":12581,"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":7317,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ivideoconferenceproperties",{"_index":21667,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ivideoconferencesettings",{"_index":12603,"title":{"interfaces/IVideoConferenceSettings.html":{}},"body":{"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["javascript",{"_index":2284,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BsonConverter.html":{}}}],["jest",{"_index":20218,"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":23023,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["jest.fn",{"_index":23434,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.resetallmocks",{"_index":23411,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.restoreallmocks",{"_index":23419,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.spyon",{"_index":23431,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jira",{"_index":22237,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["job",{"_index":7920,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["job_init_idm.yml.j2",{"_index":13639,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["john",{"_index":20963,"title":{},"body":{"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["john${sequence",{"_index":12827,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["join",{"_index":2189,"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":2278,"title":{},"body":{"injectables/BBBService.html":{}}}],["join(currentuser",{"_index":21720,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["join(currentuserid",{"_index":21918,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.config",{"_index":2201,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["join.config.ts",{"_index":2167,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:18",{"_index":2172,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:20",{"_index":2175,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:22",{"_index":2176,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:24",{"_index":2173,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:26",{"_index":2174,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:8",{"_index":2171,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.response.ts",{"_index":2206,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["join.response.ts:5",{"_index":21915,"title":{},"body":{"classes/VideoConferenceJoinResponse.html":{}}}],["join.ts",{"_index":21910,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:5",{"_index":21913,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:7",{"_index":21912,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:9",{"_index":21911,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.uc.ts",{"_index":21916,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:11",{"_index":21917,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:18",{"_index":21919,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder",{"_index":21921,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.asguest(true",{"_index":21928,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.withrole(bbbrole.moderator",{"_index":21926,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joining",{"_index":21723,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["joinpath",{"_index":10280,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(...paths",{"_index":10301,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(path",{"_index":3620,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["joins",{"_index":21981,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["jose",{"_index":22132,"title":{},"body":{"dependencies.html":{}}}],["jpeg",{"_index":8829,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["js",{"_index":6528,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/UsersList.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["json",{"_index":1630,"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":13719,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["json.parse(filecontent",{"_index":11753,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace",{"_index":11813,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace(/\\\\\\$/g",{"_index":11817,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify",{"_index":11721,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(collections",{"_index":7819,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["json.stringify(e.constraints",{"_index":8309,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["json.stringify(payload",{"_index":2622,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["json.stringify(response.body",{"_index":1702,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(response.error",{"_index":1699,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(sortedbsondocuments",{"_index":11780,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(where",{"_index":18498,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["jsondocuments",{"_index":3822,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["jsondocuments.length",{"_index":7892,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["jsonwebtoken",{"_index":1570,"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":1749,"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":15559,"title":{},"body":{"injectables/OauthAdapterService.html":{},"classes/OauthConfigResponse.html":{},"dependencies.html":{}}}],["jwksendpoint",{"_index":11562,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["jwksrsa",{"_index":15558,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.jwksclient",{"_index":15561,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.signingkey",{"_index":15562,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksuri",{"_index":15552,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwt",{"_index":1605,"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":13103,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwt.decode(jwttoken",{"_index":1756,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwt.sign",{"_index":7011,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwt.verify(idtoken",{"_index":15455,"title":{},"body":{"injectables/OAuthService.html":{}}}],["jwt=${jwt",{"_index":11457,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["jwtauthguard",{"_index":13132,"title":{"injectables/JwtAuthGuard.html":{}},"body":{"injectables/JwtAuthGuard.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["jwtconstants",{"_index":1571,"title":{"interfaces/JwtConstants.html":{}},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions",{"_index":13176,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions.algorithm",{"_index":1608,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.audience",{"_index":1610,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.expiresin",{"_index":1612,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.header",{"_index":1616,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.issuer",{"_index":1614,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.secret",{"_index":1619,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor",{"_index":13151,"title":{"classes/JwtExtractor.html":{}},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor.fromcookie('jwt",{"_index":13173,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequest",{"_index":13170,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequestfunction",{"_index":13157,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["jwtfromresponse",{"_index":1676,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["jwtid",{"_index":1753,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtmodule",{"_index":1558,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmodule.register(jwtmoduleoptions",{"_index":1621,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmoduleoptions",{"_index":1559,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtoptions",{"_index":13138,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["jwtpayload",{"_index":1739,"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":7093,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.isexternaluser",{"_index":7100,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.roles",{"_index":7095,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.schoolid",{"_index":7096,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.support",{"_index":7099,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.systemid",{"_index":7094,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.userid",{"_index":7097,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtservice",{"_index":1714,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtstrategy",{"_index":1550,"title":{"injectables/JwtStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwttestfactory",{"_index":7007,"title":{"classes/JwtTestFactory.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwttoicurrentuser",{"_index":7065,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoicurrentuser(jwtpayload",{"_index":7069,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoken",{"_index":1729,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtvalidationadapter",{"_index":1551,"title":{"injectables/JwtValidationAdapter.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["k",{"_index":1832,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["kann",{"_index":4830,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["kc",{"_index":13275,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.clients.addprotocolmapper",{"_index":13447,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.create(cr",{"_index":13423,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.find",{"_index":13278,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.getclientsecret",{"_index":13280,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kc.clients.listprotocolmappers",{"_index":13439,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.update",{"_index":13424,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.updateprotocolmapper",{"_index":13444,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.create",{"_index":13458,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.createmapper",{"_index":13469,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.del",{"_index":13463,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.find",{"_index":13426,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.findmappers",{"_index":13464,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.update",{"_index":13461,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.updatemapper",{"_index":13465,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realmname",{"_index":13392,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.makerequest",{"_index":13388,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.update",{"_index":13282,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.users.count",{"_index":13600,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create",{"_index":13575,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create(idmuserrepresentation",{"_index":13678,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.del",{"_index":13713,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.del(id",{"_index":13585,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.find",{"_index":13601,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.findone",{"_index":13611,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.resetpassword",{"_index":13582,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.update",{"_index":13616,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadmin",{"_index":13334,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadminclient",{"_index":13252,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["kcadminservice",{"_index":13520,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["kcsettings",{"_index":13250,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.baseurl",{"_index":13266,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.realmname",{"_index":13267,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kebab",{"_index":23493,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["keep",{"_index":11762,"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":8185,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["keeps",{"_index":22972,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["kennung",{"_index":17962,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{}}}],["kernel",{"_index":22402,"title":{},"body":{"license.html":{}}}],["key",{"_index":2035,"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":{},"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/ToolLaunchRequestResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["key.getpublickey",{"_index":15564,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["keycloak",{"_index":773,"title":{"additional-documentation/nestjs-application/keycloak.html":{}},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICleanOptions.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":13229,"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":12664,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak/service/keycloak",{"_index":12666,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak:/tmp/realms",{"_index":23568,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloakadminclient",{"_index":13228,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakadministration",{"_index":13214,"title":{"classes/KeycloakAdministration.html":{}},"body":{"classes/KeycloakAdministration.html":{}}}],["keycloakadministrationmodule",{"_index":12657,"title":{"modules/KeycloakAdministrationModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules.html":{}}}],["keycloakadministrationservice",{"_index":13226,"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":13289,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["keycloakconfigservice",{"_index":13485,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfiguration",{"_index":13232,"title":{"classes/KeycloakConfiguration.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloakinputfiles",{"_index":13316,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloaksettings",{"_index":13235,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["keycloakconfigurationinputfiles",{"_index":12068,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakconfigurationmodule",{"_index":13296,"title":{"modules/KeycloakConfigurationModule.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["keycloakconfigurationservice",{"_index":13301,"title":{"injectables/KeycloakConfigurationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfigurationuc",{"_index":11591,"title":{"injectables/KeycloakConfigurationUc.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakconsole",{"_index":11604,"title":{"classes/KeycloakConsole.html":{}},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakconsole.retryflags",{"_index":11621,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakidentitymanagementoauthservice",{"_index":12665,"title":{"injectables/KeycloakIdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakidentitymanagementservice",{"_index":12667,"title":{"injectables/KeycloakIdentityManagementService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakinputfiles",{"_index":13291,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["keycloakmanagementcontroller",{"_index":13305,"title":{"controllers/KeycloakManagementController.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakmanagementuc",{"_index":13644,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["keycloakmigrationservice",{"_index":13303,"title":{"injectables/KeycloakMigrationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{}}}],["keycloakmodule",{"_index":12658,"title":{"modules/KeycloakModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["keycloakseedservice",{"_index":13302,"title":{"classes/KeycloakSeedService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloaksettings",{"_index":12073,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakuser",{"_index":13588,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers",{"_index":13592,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.length",{"_index":13596,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.map((user",{"_index":13608,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keyof",{"_index":11223,"title":{},"body":{"injectables/GroupUc.html":{}}}],["keypair",{"_index":6998,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.privatekey.export",{"_index":7006,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.publickey.export",{"_index":7003,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypairkeyobjectresult",{"_index":6997,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keys",{"_index":772,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/JwtConstants.html":{},"license.html":{}}}],["keyvalue",{"_index":1779,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["keywords",{"_index":22858,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["kickuserfromgroup(groupname",{"_index":1229,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["kind",{"_index":22369,"title":{},"body":{"license.html":{}}}],["kinds",{"_index":22276,"title":{},"body":{"license.html":{}}}],["kiss",{"_index":23079,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["know",{"_index":22298,"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":23120,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["knowingly",{"_index":22724,"title":{},"body":{"license.html":{}}}],["knowledge",{"_index":22731,"title":{},"body":{"license.html":{}}}],["known",{"_index":11837,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["known/jwks.json",{"_index":11564,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["known/openid",{"_index":13272,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kontinuierlich",{"_index":4823,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ktid",{"_index":18037,"title":{},"body":{"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["kurse",{"_index":6536,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["l.course.isfinished()).map((l",{"_index":19975,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.id",{"_index":19976,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.name",{"_index":14175,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["label",{"_index":22244,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["labelnames",{"_index":17381,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["labels",{"_index":17383,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["language",{"_index":4198,"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":11810,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["languagetype",{"_index":4199,"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":4200,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["largely",{"_index":23335,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["larger",{"_index":22500,"title":{},"body":{"license.html":{}}}],["last",{"_index":6986,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{}}}],["lastauthorizationtime",{"_index":13239,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["lastloginsystemchange",{"_index":12584,"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":18389,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangebetweenstart",{"_index":18388,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangesmallerthan",{"_index":18371,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastmodifytimestamp",{"_index":12385,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastname",{"_index":852,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.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":{},"interfaces/UserBoardRoles.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["lastname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":13027,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["lastnamesearchvalues",{"_index":11802,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["lastsuccessfulfullsync",{"_index":12383,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsuccessfulpartialsync",{"_index":12384,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lastsyncattempt",{"_index":12382,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["lasttriedfailedlogin",{"_index":82,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{}}}],["lastupdatedat",{"_index":3715,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TimestampsResponse.html":{}}}],["lastvaluefrom",{"_index":1156,"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":15571,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["lastvaluefrom(this.httpservice.get>(wellknownurl))).data",{"_index":13528,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["later",{"_index":3430,"title":{},"body":{"entities/BoardElement.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["latest",{"_index":15158,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/ToolConfigurationController.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["laufzeit",{"_index":17941,"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":{},"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":20315,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch.controller.ts",{"_index":20490,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.controller.ts:28",{"_index":20501,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.mapper.ts",{"_index":20517,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:24",{"_index":20523,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:29",{"_index":20528,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:34",{"_index":20525,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:39",{"_index":20531,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.module.ts",{"_index":20551,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch.params.ts",{"_index":20555,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.params.ts:7",{"_index":20556,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.service.ts",{"_index":20572,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:22",{"_index":20577,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:38",{"_index":20579,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:51",{"_index":20581,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:73",{"_index":20585,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:86",{"_index":20583,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.strategy",{"_index":2613,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts",{"_index":110,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.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:204",{"_index":182,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:23",{"_index":131,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:249",{"_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":20602,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:11",{"_index":20604,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:18",{"_index":20606,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch/controller/dto/tool",{"_index":20554,"title":{},"body":{"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launch/controller/tool",{"_index":20314,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["launch/error/missing",{"_index":14872,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["launch/error/parameter",{"_index":16513,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launch/error/tool",{"_index":20749,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launch/mapper/lti",{"_index":14609,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["launch/mapper/tool",{"_index":20516,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch/service/lti11",{"_index":14552,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["launch/service/strategy/abstract",{"_index":109,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch/service/strategy/basic",{"_index":2599,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["launch/service/strategy/oauth2",{"_index":15336,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch/service/strategy/tool",{"_index":12574,"title":{},"body":{"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{}}}],["launch/service/tool",{"_index":20571,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch/settings",{"_index":22884,"title":{},"body":{"todo.html":{}}}],["launch/tool",{"_index":20550,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch/types/authentication",{"_index":1777,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["launch/types/property",{"_index":16814,"title":{},"body":{"classes/PropertyData.html":{}}}],["launch/types/tool",{"_index":20508,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{}}}],["launch/uc",{"_index":20316,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch/uc/tool",{"_index":20601,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch_presentation_locale",{"_index":7298,"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":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["launch_url",{"_index":5187,"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":20526,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launched",{"_index":20500,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launching",{"_index":16518,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launchrequest",{"_index":20593,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["launchrequestmethod",{"_index":178,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.get",{"_index":2626,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.post",{"_index":2625,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["law",{"_index":22360,"title":{},"body":{"license.html":{}}}],["laws",{"_index":22339,"title":{},"body":{"license.html":{}}}],["lawsuit",{"_index":22697,"title":{},"body":{"license.html":{}}}],["lax",{"_index":16171,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["layer",{"_index":20621,"title":{},"body":{"injectables/ToolPermissionHelper.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":{}}}],["layered",{"_index":23232,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["layers",{"_index":22866,"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":16559,"title":{},"body":{"injectables/PermissionService.html":{}}}],["ldap",{"_index":12927,"title":{},"body":{"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":14470,"title":{},"body":{"controllers/LoginController.html":{}}}],["ldap_connection_failed",{"_index":13760,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["ldap_password_encryption_key",{"_index":8269,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["ldap_univention_migration",{"_index":12193,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapactive",{"_index":19314,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{}}}],["ldapalreadypersistedexception",{"_index":13721,"title":{"classes/LdapAlreadyPersistedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["ldapauthorizationbodyparams",{"_index":13735,"title":{"classes/LdapAuthorizationBodyParams.html":{}},"body":{"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{}}}],["ldapconfig",{"_index":12330,"title":{"classes/LdapConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["ldapconfig.active",{"_index":12362,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.federalstate",{"_index":12363,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastmodifytimestamp",{"_index":12371,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulfullsync",{"_index":12367,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsuccessfulpartialsync",{"_index":12369,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.lastsyncattempt",{"_index":12365,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provider",{"_index":12379,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.provideroptions",{"_index":12381,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.rootpath",{"_index":12374,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuser",{"_index":12376,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.searchuserpassword",{"_index":12378,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconfig.url",{"_index":12372,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["ldapconnectionerror",{"_index":13755,"title":{"classes/LdapConnectionError.html":{}},"body":{"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{}}}],["ldapdn",{"_index":4210,"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":8260,"title":{},"body":{"modules/EncryptionModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{}}}],["ldapid",{"_index":12040,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["ldapjs",{"_index":13769,"title":{},"body":{"injectables/LdapService.html":{},"dependencies.html":{}}}],["ldapjs.git",{"_index":22138,"title":{},"body":{"dependencies.html":{}}}],["ldaps:mock.de:389",{"_index":19360,"title":{},"body":{"classes/SystemFactory.html":{}}}],["ldapschool",{"_index":13114,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapschoolidentifier",{"_index":12205,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapservice",{"_index":1552,"title":{"injectables/LdapService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{}}}],["ldapservice:connect",{"_index":13788,"title":{},"body":{"injectables/LdapService.html":{}}}],["ldapstrategy",{"_index":1553,"title":{"injectables/LdapStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["ldapuniventionmigrationschool",{"_index":12194,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapuser",{"_index":13107,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapuser.roles.map((roleref",{"_index":13116,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapusermigrationexception",{"_index":13724,"title":{"classes/LdapUserMigrationException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["lead",{"_index":4142,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{}}}],["leads",{"_index":19840,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["leaf",{"_index":3279,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["lean",{"_index":22147,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["learn",{"_index":22961,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["learner",{"_index":7105,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["learning",{"_index":10713,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{}}}],["learningmodules",{"_index":5286,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["learnroom",{"_index":3583,"title":{},"body":{"modules/BoardModule.html":{},"injectables/DashboardModelMapper.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["learnroom.module",{"_index":13859,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["learnroomapimodule",{"_index":13844,"title":{"modules/LearnroomApiModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["learnroommetadata",{"_index":6516,"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":{},"classes/UsersList.html":{}}}],["learnroommodule",{"_index":13848,"title":{"modules/LearnroomModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/PseudonymModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["learnroomtypes",{"_index":6517,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["learnroomtypes.course",{"_index":6595,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{},"classes/UsersList.html":{}}}],["leave",{"_index":6115,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["leaves",{"_index":20246,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["left",{"_index":23147,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["legacy",{"_index":1141,"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/SystemEntity.html":{},"injectables/VideoConferenceCreateUc.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":23704,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/feathers",{"_index":23027,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/feathers/mocha",{"_index":23004,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/nest",{"_index":22913,"title":{},"body":{"todo.html":{}}}],["legacylogger",{"_index":2357,"title":{"injectables/LegacyLogger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.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/ICleanOptions.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.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":{},"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":{},"additional-documentation/nestjs-application/logging.html":{}}}],["legacyschoolapimodule",{"_index":13909,"title":{"modules/LegacySchoolApiModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["legacyschoolcontroller",{"_index":13918,"title":{"controllers/LegacySchoolController.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["legacyschooldo",{"_index":189,"title":{"classes/LegacySchoolDo.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/GroupUc.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/PseudonymUc.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":13994,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory",{"_index":13987,"title":{"classes/LegacySchoolFactory.html":{}},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory.define(legacyschooldo",{"_index":13995,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolmodule",{"_index":5333,"title":{"modules/LegacySchoolModule.html":{}},"body":{"modules/CommonToolModule.html":{},"modules/GroupApiModule.html":{},"modules/ImportUserModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["legacyschoolrepo",{"_index":1554,"title":{"injectables/LegacySchoolRepo.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/AuthorizationReferenceModule.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":1892,"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/GroupUc.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.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":{}}}],["legacyschooluc",{"_index":13914,"title":{"injectables/LegacySchoolUc.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["legal",{"_index":22306,"title":{},"body":{"license.html":{}}}],["legayschoolrule",{"_index":17793,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":3524,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["lernstore",{"_index":11870,"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":{}}}],["lernstore_view",{"_index":12203,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["lesson",{"_index":2659,"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/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":23692,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson.contents.foreach((content",{"_index":5051,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lesson.contents.map((c",{"_index":14295,"title":{},"body":{"injectables/LessonService.html":{}}}],["lesson.course",{"_index":17680,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRepo.html":{}}}],["lesson.course.name",{"_index":8131,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.coursegroup",{"_index":19763,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["lesson.coursename",{"_index":17639,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.createdat",{"_index":8129,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.entity",{"_index":2648,"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":{},"classes/UsersList.html":{}}}],["lesson.getnumberofdrafttasks",{"_index":8134,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofplannedtasks",{"_index":8136,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofpublishedtasks",{"_index":8132,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.hidden",{"_index":8128,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["lesson.id",{"_index":8127,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.module",{"_index":14133,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["lesson.name",{"_index":5049,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofdrafttasks",{"_index":17637,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofplannedtasks",{"_index":17638,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofpublishedtasks",{"_index":17636,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.response",{"_index":3446,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["lesson.response.ts",{"_index":3450,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:27",{"_index":3461,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:31",{"_index":3462,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:35",{"_index":3458,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:40",{"_index":3467,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:46",{"_index":3464,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:5",{"_index":3456,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:52",{"_index":3465,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:55",{"_index":3459,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:58",{"_index":3468,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:61",{"_index":3460,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.rule",{"_index":19870,"title":{},"body":{"injectables/TaskRule.html":{}}}],["lesson.updatedat",{"_index":8130,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson/task",{"_index":18692,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["lessonapimodule",{"_index":14126,"title":{"modules/LessonApiModule.html":{}},"body":{"modules/LessonApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["lessonboardelement",{"_index":2658,"title":{"entities/LessonBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/LessonBoardElement.html":{}}}],["lessoncontroller",{"_index":14132,"title":{"controllers/LessonController.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{}}}],["lessoncopyapiparams",{"_index":6391,"title":{"classes/LessonCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"classes/LessonCopyApiParams.html":{},"controllers/RoomsController.html":{}}}],["lessoncopyparentparams",{"_index":6393,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/LessonCopyUC.html":{}}}],["lessoncopyservice",{"_index":2972,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/ShareTokenUC.html":{}}}],["lessoncopyuc",{"_index":13850,"title":{"injectables/LessonCopyUC.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{}}}],["lessonelement",{"_index":3070,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["lessonelements",{"_index":3689,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["lessonentity",{"_index":2647,"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/LessonCopyUC.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":{}}}],["lessonfactory",{"_index":14195,"title":{"classes/LessonFactory.html":{}},"body":{"classes/LessonFactory.html":{}}}],["lessonfactory.define",{"_index":14197,"title":{},"body":{"classes/LessonFactory.html":{}}}],["lessonhidden",{"_index":12452,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonid",{"_index":5017,"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":19805,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["lessonidsoffinishedcourses",{"_index":19770,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonidsofopencourses",{"_index":19768,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonmetadata",{"_index":8093,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lessonmodule",{"_index":13849,"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":12451,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonreadpermission",{"_index":14236,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonreadpermission(user",{"_index":14246,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonrepo",{"_index":1931,"title":{"injectables/LessonRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.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":1893,"title":{"injectables/LessonRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{}}}],["lessons",{"_index":5043,"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":19974,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.foreach((lesson",{"_index":5045,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lessons.map((l",{"_index":19997,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.map((lesson",{"_index":14294,"title":{},"body":{"injectables/LessonService.html":{}}}],["lessonscope",{"_index":14219,"title":{"classes/LessonScope.html":{}},"body":{"injectables/LessonRepo.html":{},"classes/LessonScope.html":{}}}],["lessonservice",{"_index":5002,"title":{"injectables/LessonService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/ShareTokenService.html":{}}}],["lessonuc",{"_index":14130,"title":{"injectables/LessonUC.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonUC.html":{}}}],["lessonurlparams",{"_index":14139,"title":{"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{}},"body":{"controllers/LessonController.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"controllers/RoomsController.html":{}}}],["lessonwritepermission",{"_index":14237,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonwritepermission(user",{"_index":14248,"title":{},"body":{"injectables/LessonRule.html":{}}}],["letter",{"_index":940,"title":{},"body":{"injectables/AccountRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["letters",{"_index":23487,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["letting",{"_index":22324,"title":{},"body":{"license.html":{}}}],["level",{"_index":3588,"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":3634,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["levels",{"_index":14433,"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":22614,"title":{},"body":{"license.html":{}}}],["liable",{"_index":22357,"title":{},"body":{"license.html":{}}}],["libraries",{"_index":22396,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["libraries/:ubername/:file",{"_index":11383,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["library",{"_index":22553,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["license",{"_index":12097,"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":22343,"title":{},"body":{"license.html":{}}}],["licensee",{"_index":22344,"title":{},"body":{"license.html":{}}}],["licensees",{"_index":22346,"title":{},"body":{"license.html":{}}}],["licenses",{"_index":22282,"title":{},"body":{"license.html":{}}}],["licensing",{"_index":22675,"title":{},"body":{"license.html":{}}}],["licensors",{"_index":22622,"title":{},"body":{"license.html":{}}}],["likes",{"_index":23497,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["likewise",{"_index":22667,"title":{},"body":{"license.html":{}}}],["limit",{"_index":56,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.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":22806,"title":{},"body":{"license.html":{}}}],["limited",{"_index":22795,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["limiting",{"_index":22613,"title":{},"body":{"license.html":{}}}],["line",{"_index":1189,"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":{},"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":23058,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["link",{"_index":2280,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ColumnBoardService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/FeathersRosterService.html":{},"modules/ImportUserModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{}}}],["linkcontentbody",{"_index":5645,"title":{"classes/LinkContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["linked",{"_index":17234,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"license.html":{}}}],["linkelement",{"_index":2832,"title":{"classes/LinkElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.description",{"_index":5667,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["linkelement.id",{"_index":17286,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.imageurl",{"_index":5670,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.title",{"_index":5665,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelement.url",{"_index":5661,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementcontent",{"_index":14337,"title":{"classes/LinkElementContent.html":{}},"body":{"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementcontentbody",{"_index":8175,"title":{"classes/LinkElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["linkelementcontentbody)@apiresponse({status",{"_index":8209,"title":{},"body":{"controllers/ElementController.html":{}}}],["linkelementnode",{"_index":3183,"title":{"entities/LinkElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["linkelementnodeprops",{"_index":14345,"title":{"interfaces/LinkElementNodeProps.html":{}},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["linkelementprops",{"_index":14335,"title":{"interfaces/LinkElementProps.html":{}},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["linkelementresponse",{"_index":3978,"title":{"classes/LinkElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementresponsemapper",{"_index":5584,"title":{"classes/LinkElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/LinkElementResponseMapper.html":{}}}],["linkelementresponsemapper.getinstance",{"_index":5576,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["linkelementresponsemapper.instance",{"_index":14354,"title":{},"body":{"classes/LinkElementResponseMapper.html":{}}}],["linkid",{"_index":7297,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["linter",{"_index":22900,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["liskov",{"_index":23066,"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/GroupController.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":19296,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["list.response.ts",{"_index":1006,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CardListResponse.html":{},"classes/ClassInfoSearchListResponse.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":4056,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:4",{"_index":4054,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:5",{"_index":1010,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.html":{}}}],["list.response.ts:6",{"_index":5732,"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":9265,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list_files_of_parent",{"_index":11921,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["listconsentsessions",{"_index":15850,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["listconsentsessions(@currentuser",{"_index":15937,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(currentuser",{"_index":15870,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(user",{"_index":16056,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listconsentsessions(userid",{"_index":16074,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["listenercount",{"_index":2219,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["listening",{"_index":1478,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["listfilesofparent",{"_index":10430,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent(param",{"_index":10438,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["listfilesofparent(payload",{"_index":10620,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:finished",{"_index":10638,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:started",{"_index":10636,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listoauth2clients",{"_index":15779,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["listoauth2clients(currentuser",{"_index":15789,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["listoauth2clients(limit",{"_index":16058,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["listoauthclientsparams",{"_index":14359,"title":{"classes/ListOauthClientsParams.html":{}},"body":{"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{}}}],["listobjectscommand",{"_index":17852,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["listresponse",{"_index":19017,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["lists",{"_index":10306,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/ToolConfigurationController.html":{}}}],["listsequal",{"_index":2678,"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":{},"injectables/ColumnBoardCopyService.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":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.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":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["litigation",{"_index":22695,"title":{},"body":{"license.html":{}}}],["load",{"_index":1947,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":22877,"title":{},"body":{"todo.html":{}}}],["load/persist",{"_index":23175,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["loadaccount",{"_index":1709,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccount(username",{"_index":1721,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccounts",{"_index":13688,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["loadallcollectionsfromdatabase(targetfolder",{"_index":11696,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadallcollectionsfromfilesystem(basedir",{"_index":11702,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadauthorizableobject",{"_index":12152,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["loadauthorizableobject(objectname",{"_index":17327,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11710,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loaded",{"_index":4052,"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":{},"classes/UsersList.html":{},"injectables/VideoConferenceRepo.html":{}}}],["loaded.config",{"_index":9413,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loaded.version",{"_index":9414,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loadedexternaltool",{"_index":5375,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedexternaltool.parameters",{"_index":5407,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["loadedexternaltool.version",{"_index":18255,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedoauthclient",{"_index":9310,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedoauthclient.client_id",{"_index":9352,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedpseudonym",{"_index":9682,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["loadedschoolexternaltool",{"_index":6108,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedtool",{"_index":9301,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.clientid",{"_index":9458,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.type",{"_index":9454,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loader",{"_index":1869,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.html":{},"modules/ToolModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loading",{"_index":20622,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loadings",{"_index":20624,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["loads",{"_index":4517,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{}}}],["loadtoolhierarchy",{"_index":20576,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadtoolhierarchy(schoolexternaltoolid",{"_index":20584,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadusers",{"_index":13689,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["local",{"_index":1639,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"interfaces/ICleanOptions.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/UserLoginMigrationEntity.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["localauthorizationbodyparams",{"_index":14372,"title":{"classes/LocalAuthorizationBodyParams.html":{}},"body":{"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{}}}],["localcookies",{"_index":6142,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["localcookies.includes(cookie",{"_index":11549,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localcookies.push(cookie",{"_index":11550,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto",{"_index":11518,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig",{"_index":11542,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig.headers",{"_index":11537,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies",{"_index":11531,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.hydracookies.join",{"_index":11535,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.localcookies.join",{"_index":11536,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.currentredirect",{"_index":11543,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.referer",{"_index":11538,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response",{"_index":11540,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers",{"_index":11521,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers.location",{"_index":11520,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers['set",{"_index":11529,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localfallback",{"_index":1326,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["localfield",{"_index":21530,"title":{},"body":{"injectables/UserRepo.html":{}}}],["localhost",{"_index":1318,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["localhost:15672",{"_index":22940,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["localhost:27017\"}]})start",{"_index":23581,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["localhost:3030",{"_index":22977,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["locally",{"_index":10609,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"controllers/LoginController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["localstrategy",{"_index":1555,"title":{"injectables/LocalStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LocalStrategy.html":{}}}],["locate",{"_index":23243,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["located",{"_index":23157,"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":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["location.startswith('http",{"_index":11522,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["location.startswith(configuration.get('hydra_public_uri",{"_index":11524,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["locationmapping",{"_index":9158,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterdo.location",{"_index":9251,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterparam.location",{"_index":9201,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["locations",{"_index":11525,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["lockid",{"_index":9886,"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":8310,"title":{},"body":{"classes/ErrorLoggable.html":{},"interfaces/ICleanOptions.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":12089,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["log/response",{"_index":22902,"title":{},"body":{"todo.html":{}}}],["loggable",{"_index":1464,"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/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PreviewActionsLoggable.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/TooManyPseudonymsLoggableException.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":21161,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:13",{"_index":21163,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:8",{"_index":21162,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.getlogmessage",{"_index":14460,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["loggable.ts",{"_index":1460,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:10",{"_index":1480,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:13",{"_index":1481,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:3",{"_index":8749,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:6",{"_index":8750,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable/error.loggable",{"_index":10821,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["loggable/news",{"_index":15173,"title":{},"body":{"injectables/NewsUc.html":{}}}],["loggable/oauth",{"_index":11433,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{}}}],["loggable/preview",{"_index":16627,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["loggables",{"_index":12079,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logged",{"_index":20439,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logger",{"_index":2356,"title":{"injectables/Logger.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.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/ICleanOptions.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":{},"classes/KeycloakSeedService.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":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logger.debug",{"_index":16799,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.error(error",{"_index":3882,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.info",{"_index":16813,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.info(`could",{"_index":23373,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["logger.interface",{"_index":13893,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.interface.ts",{"_index":12078,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:11",{"_index":12088,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:12",{"_index":12090,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:13",{"_index":12085,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:14",{"_index":12092,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:15",{"_index":12082,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.log(msg",{"_index":3885,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.service",{"_index":14431,"title":{},"body":{"modules/LoggerModule.html":{}}}],["logger.service.ts",{"_index":13871,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:22",{"_index":13875,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:26",{"_index":13881,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:30",{"_index":13886,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:34",{"_index":13878,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:38",{"_index":13880,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:42",{"_index":13879,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:50",{"_index":13883,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:54",{"_index":13877,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:58",{"_index":13885,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.setcontext(durationlogginginterceptor.name",{"_index":8164,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logger.setcontext(redismodule.name",{"_index":17323,"title":{},"body":{"modules/RedisModule.html":{}}}],["logger.setcontext(servermodule.name",{"_index":18575,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.setcontext(servertestmodule.name",{"_index":18583,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.ts",{"_index":8327,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:12",{"_index":8338,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:17",{"_index":8334,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:22",{"_index":8336,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:27",{"_index":8340,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:9",{"_index":8332,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.warn",{"_index":18557,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger/interfaces",{"_index":8294,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logger/types",{"_index":8295,"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/AuthorizationReferenceModule.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/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.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":6437,"title":{"additional-documentation/nestjs-application/logging.html":{}},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/OpenGraphProxyService.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":17401,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts",{"_index":8154,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:10",{"_index":8157,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:12",{"_index":17389,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:15",{"_index":8161,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:9",{"_index":17388,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.utils",{"_index":8344,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils",{"_index":8343,"title":{"classes/LoggingUtils.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{}}}],["loggingutils.createmessagewithcontext(loggable",{"_index":8346,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils.isinstanceofloggable(error",{"_index":10827,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["logic",{"_index":12311,"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":{},"classes/ChallengeParams.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ConsentResponse.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.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/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.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":{},"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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":1671,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["login.query.ts",{"_index":17932,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:13",{"_index":17934,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:8",{"_index":17936,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.response",{"_index":15718,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts",{"_index":15715,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login.response.ts:9",{"_index":15716,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["login_block_time",{"_index":1764,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["login_challenge",{"_index":5482,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["login_hint",{"_index":16267,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["login_required",{"_index":5457,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["login_session_id",{"_index":5483,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["loginchallenge",{"_index":5502,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["logincontroller",{"_index":1510,"title":{"controllers/LoginController.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["logindto",{"_index":1743,"title":{"classes/LoginDto.html":{}},"body":{"injectables/AuthenticationService.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{}}}],["logindto.accesstoken",{"_index":14539,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["loginldap",{"_index":14464,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(@currentuser",{"_index":14492,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(user",{"_index":14467,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal",{"_index":14465,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(@currentuser",{"_index":14498,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(user",{"_index":14474,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginname",{"_index":10659,"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":13030,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["loginoauth2",{"_index":14466,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginoauth2(user",{"_index":14478,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginpath",{"_index":1634,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["loginrequestbody",{"_index":14507,"title":{"classes/LoginRequestBody.html":{}},"body":{"classes/LoginRequestBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember",{"_index":16018,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember_for",{"_index":16019,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginresponse",{"_index":14471,"title":{"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"classes/OauthLoginResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["loginresponse.challenge",{"_index":15998,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse.client.client_id",{"_index":15987,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse:5",{"_index":15717,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["loginresponsemapper",{"_index":14485,"title":{"classes/LoginResponseMapper.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{}}}],["loginresponsemapper.maptologinresponse(logindto",{"_index":14494,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginresponsemapper.maptooauthloginresponse(logindto",{"_index":14501,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginsessionid",{"_index":5505,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["loginuc",{"_index":1508,"title":{"injectables/LoginUc.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{}}}],["loginurl",{"_index":21401,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('migration",{"_index":21477,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('postloginredirect",{"_index":21476,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.tostring",{"_index":21478,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginuseruc",{"_index":23208,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["logmessage",{"_index":1465,"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/PreviewActionsLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.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":8300,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logmessagedata",{"_index":1466,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/NewsMapper.html":{}}}],["logmessagewithcontext",{"_index":14455,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["logmigrationinformation",{"_index":21301,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logmigrationinformation(userid",{"_index":21310,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logo",{"_index":7316,"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":9445,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["logo.service.ts",{"_index":8757,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:114",{"_index":8768,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:26",{"_index":8764,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:34",{"_index":8766,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:46",{"_index":8778,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:61",{"_index":8773,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:73",{"_index":8771,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:97",{"_index":8775,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.ts",{"_index":8729,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:2",{"_index":8732,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:4",{"_index":8731,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo_url",{"_index":7117,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["logobase64",{"_index":8682,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["logobinarydata",{"_index":8817,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logourl",{"_index":5736,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.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/FederalStateEntity.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":{}}}],["logout",{"_index":11944,"title":{},"body":{"interfaces/ICurrentUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/UserMigrationService.html":{}}}],["logoutendpoint",{"_index":11565,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["logoutflow",{"_index":16003,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflow(challenge",{"_index":16005,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflowuc",{"_index":15899,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["logoutresponse",{"_index":16007,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logouturl",{"_index":2072,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceMapper.html":{}}}],["logoutuser(authtoken",{"_index":1219,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["logs",{"_index":5467,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["lokalisierung",{"_index":17966,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["long",{"_index":5449,"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":23485,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["look",{"_index":13142,"title":{},"body":{"interfaces/JwtConstants.html":{},"controllers/ShareTokenController.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["looking",{"_index":14368,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["looks",{"_index":23098,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lookup",{"_index":11981,"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":18623,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["lookupsharetoken(currentuser",{"_index":18640,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["lookupsharetoken(userid",{"_index":18810,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["lookuptoken",{"_index":18758,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptoken(token",{"_index":18767,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname",{"_index":18759,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname(token",{"_index":18769,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["loop",{"_index":11459,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["loss",{"_index":22813,"title":{},"body":{"license.html":{}}}],["losses",{"_index":22816,"title":{},"body":{"license.html":{}}}],["lot",{"_index":23436,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["low",{"_index":23152,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lower",{"_index":23077,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lowercase",{"_index":12041,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lt",{"_index":21572,"title":{},"body":{"classes/UserScope.html":{}}}],["lte",{"_index":3637,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/FilesRepo.html":{},"classes/NewsScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{}}}],["lti",{"_index":5164,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/NextcloudStrategy.html":{}}}],["lti11config",{"_index":9035,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.baseurl",{"_index":9076,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.key",{"_index":9081,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.launch_presentation_locale",{"_index":9086,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.lti_message_type",{"_index":9083,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.privacy_permission",{"_index":9085,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.resource_link_id",{"_index":9084,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.secret",{"_index":9082,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.type",{"_index":9075,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11encryptionservice",{"_index":14551,"title":{"injectables/Lti11EncryptionService.html":{}},"body":{"injectables/Lti11EncryptionService.html":{},"modules/ToolLaunchModule.html":{}}}],["lti11toolconfig",{"_index":7269,"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":9133,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigcreateparams",{"_index":8617,"title":{"classes/Lti11ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Lti11ToolConfigCreateParams.html":{}}}],["lti11toolconfigentity",{"_index":8684,"title":{"classes/Lti11ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfigEntity.html":{}}}],["lti11toolconfigfactory",{"_index":7291,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigfactory.build(customparam",{"_index":7311,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigresponse",{"_index":9212,"title":{"classes/Lti11ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["lti11toolconfigupdate",{"_index":9137,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigupdateparams",{"_index":9135,"title":{"classes/Lti11ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["lti11toollaunchstrategy",{"_index":20549,"title":{},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["lti_message_type",{"_index":7118,"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":{}}}],["lti_version",{"_index":7119,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["ltimessagetype",{"_index":7266,"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":7296,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission",{"_index":7112,"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":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission.anonymous",{"_index":7121,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalToolEntityFactory.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{}}}],["ltiprivacypermission.name",{"_index":14677,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiprivacypermission.pseudonymous",{"_index":7295,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltirepo",{"_index":11491,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["ltirole",{"_index":14614,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.administrator",{"_index":14619,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.instructor",{"_index":14618,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.learner",{"_index":14617,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirolemapper",{"_index":14608,"title":{"classes/LtiRoleMapper.html":{}},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles",{"_index":14621,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles.filter",{"_index":14625,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroletype",{"_index":7104,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["ltiroletype.instructor",{"_index":14678,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype.learner",{"_index":14679,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype})@property({nullable",{"_index":14644,"title":{},"body":{"entities/LtiTool.html":{}}}],["ltitool",{"_index":7116,"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":14701,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["ltitooldo",{"_index":7182,"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":14669,"title":{"classes/LtiToolFactory.html":{}},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolfactory.define(ltitool",{"_index":14675,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolmodule",{"_index":14680,"title":{"modules/LtiToolModule.html":{}},"body":{"modules/LtiToolModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["ltitoolpromise",{"_index":15313,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ltitoolrepo",{"_index":4584,"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":7115,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["ltitoolservice",{"_index":14684,"title":{"injectables/LtiToolService.html":{}},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["ltitoolstabenabled",{"_index":12566,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["lumieducation/h5p",{"_index":22052,"title":{},"body":{"dependencies.html":{}}}],["m=256m",{"_index":23573,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["machine",{"_index":22510,"title":{},"body":{"license.html":{}}}],["made",{"_index":22313,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["magic",{"_index":15963,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["mail",{"_index":1498,"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/SystemEntity.html":{},"injectables/UserRepo.html":{},"license.html":{}}}],["mail.interface",{"_index":14755,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mail.service",{"_index":14749,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mail_service_options",{"_index":14750,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailattachment",{"_index":1484,"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":1492,"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":14744,"title":{"modules/MailModule.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["mailmodule.forroot",{"_index":18542,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mailmoduleoptions",{"_index":14746,"title":{"interfaces/MailModuleOptions.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailservice",{"_index":14748,"title":{"injectables/MailService.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mailserviceoptions",{"_index":14752,"title":{"interfaces/MailServiceOptions.html":{}},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["main",{"_index":22248,"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":9756,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["maintain",{"_index":22536,"title":{},"body":{"license.html":{}}}],["maintainability",{"_index":23049,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["maintenance",{"_index":14848,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["major",{"_index":22399,"title":{},"body":{"license.html":{}}}],["make",{"_index":1854,"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":22439,"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":20777,"title":{},"body":{"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["makse",{"_index":14181,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["manage",{"_index":10004,"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":14497,"title":{},"body":{"controllers/LoginController.html":{}}}],["managed.'})@apiresponse({status",{"_index":14476,"title":{},"body":{"controllers/LoginController.html":{}}}],["management",{"_index":803,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/ICleanOptions.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":12001,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{}}}],["management.console",{"_index":14765,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.console.ts",{"_index":3478,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["management.console.ts:12",{"_index":7793,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:14",{"_index":3488,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:31",{"_index":7800,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:58",{"_index":7797,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:7",{"_index":3483,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:72",{"_index":7805,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.controller",{"_index":14768,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.controller.ts",{"_index":7828,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:18",{"_index":7841,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:23",{"_index":7838,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:28",{"_index":7835,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:33",{"_index":7847,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:9",{"_index":7844,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.integration.spec.ts",{"_index":23552,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.module",{"_index":14777,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/SystemModule.html":{}}}],["management.module.ts",{"_index":7862,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{}}}],["management.service",{"_index":7863,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["management.service.integration.spec.tsseeding",{"_index":23554,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.service.ts",{"_index":7864,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:100",{"_index":12713,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:11",{"_index":7889,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:15",{"_index":7885,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:17",{"_index":12689,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:170",{"_index":13558,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:186",{"_index":13560,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:20",{"_index":7886,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:26",{"_index":12715,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:32",{"_index":7882,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:35",{"_index":12717,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:38",{"_index":7874,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:43",{"_index":12701,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:44",{"_index":7883,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:51",{"_index":12694,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:52",{"_index":7876,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:58",{"_index":7878,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:59",{"_index":12698,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:62",{"_index":7880,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:66",{"_index":7887,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:67",{"_index":12704,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:74",{"_index":12705,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:8",{"_index":7872,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:81",{"_index":12692,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:89",{"_index":12708,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:9",{"_index":13552,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.uc",{"_index":3494,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["management.uc.ts",{"_index":3504,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["management.uc.ts:13",{"_index":3511,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:16",{"_index":3512,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:39",{"_index":3516,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:49",{"_index":3514,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:60",{"_index":3518,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:71",{"_index":3523,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:75",{"_index":3527,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:79",{"_index":3520,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management/database",{"_index":7829,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management/identity",{"_index":12000,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["management/idm",{"_index":13631,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["management/keycloak",{"_index":11586,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":18493,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["management/keycloak/keycloak.module.ts",{"_index":13686,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["management/keycloak/service/keycloak",{"_index":13515,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["managementmodule",{"_index":14758,"title":{"modules/ManagementModule.html":{}},"body":{"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["managementservermodule",{"_index":14772,"title":{"modules/ManagementServerModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["managementservertestmodule",{"_index":14779,"title":{"modules/ManagementServerTestModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["manager",{"_index":2007,"title":{},"body":{"injectables/AuthorizationService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["manager.ts",{"_index":17789,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:23",{"_index":17794,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:57",{"_index":17798,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:64",{"_index":17796,"title":{},"body":{"injectables/RuleManager.html":{}}}],["mandatory",{"_index":11843,"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":21167,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:11",{"_index":21169,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:4",{"_index":21168,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.params",{"_index":21090,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["mandatory.params.ts",{"_index":21172,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory.params.ts:7",{"_index":21173,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory/optional",{"_index":21073,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"todo.html":{}}}],["mandatorysince",{"_index":21120,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["manifest",{"_index":5127,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["manner",{"_index":22712,"title":{},"body":{"license.html":{}}}],["manual",{"_index":10678,"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":23261,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["manufacture",{"_index":8062,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["many",{"_index":20292,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["manytomany",{"_index":2640,"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":{},"classes/UsersList.html":{}}}],["manytomany('boardelement",{"_index":2637,"title":{},"body":{"entities/Board.html":{}}}],["manytomany('course",{"_index":7569,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytomany('material",{"_index":11884,"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('user",{"_index":6539,"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":{},"classes/UsersList.html":{}}}],["manytomany(undefined",{"_index":6479,"title":{},"body":{"entities/Course.html":{},"entities/SchoolEntity.html":{}}}],["manytomany({entity",{"_index":17509,"title":{},"body":{"entities/Role.html":{}}}],["manytoone",{"_index":4989,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{}}}],["manytoone('columnboardtarget",{"_index":4987,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["manytoone('course",{"_index":6757,"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":11882,"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":7570,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytoone('lessonentity",{"_index":12455,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytoone('task",{"_index":12277,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["manytoone('teamentity",{"_index":6889,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["manytoone('user",{"_index":6864,"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":6751,"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/UserLoginMigrationEntity.html":{}}}],["manytoone({nullable",{"_index":8659,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{}}}],["map",{"_index":3364,"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":{},"injectables/GroupUc.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"classes/MetadataTypeMapper.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ToolLaunchService.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":6416,"title":{},"body":{"classes/CopyMapper.html":{}}}],["map((elementwithposition",{"_index":7618,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["map((entity",{"_index":19412,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["map((group",{"_index":11258,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/SanisResponseMapper.html":{}}}],["map((groupuser",{"_index":11292,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["map((match",{"_index":13038,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["map((relation",{"_index":18044,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((role",{"_index":20939,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["map((rolename",{"_index":21365,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["map((teacher",{"_index":5084,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["map(async",{"_index":11735,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["map.set(key",{"_index":6383,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map.set(status.originalentity.id",{"_index":6385,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map[node.id",{"_index":3362,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["map[node.pathofchildren",{"_index":3658,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["map[node.pathofchildren].push(desc",{"_index":3659,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["mapaccountstodto",{"_index":628,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapaccountstodto(accounts",{"_index":631,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapbasictoolconfigdotoentity",{"_index":9023,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoentity(lti11config",{"_index":9033,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoresponse",{"_index":9220,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigdotoresponse(externaltoolconfigdo",{"_index":9225,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigtodo",{"_index":9024,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigtodo(lti11config",{"_index":9036,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapboardelements",{"_index":17591,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapbodytodto",{"_index":20097,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapbodytodto(body",{"_index":20098,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapclasstoclassinfodto",{"_index":11278,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapclasstoclassinfodto(clazz",{"_index":11281,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapcolumnboard",{"_index":17592,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapcolumnboardelement",{"_index":8063,"title":{},"body":{"classes/DtoCreator.html":{}}}],["mapcolumnboardelement(element",{"_index":8083,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mapconsentresponse",{"_index":16020,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentresponse(consent",{"_index":16025,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse",{"_index":16021,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse(session",{"_index":16027,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapcontenttoresource",{"_index":4998,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontenttoresource(lessonid",{"_index":5014,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontextexternaltoolrequest",{"_index":5911,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolrequest(request",{"_index":5913,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolresponse",{"_index":5951,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontextexternaltoolresponse(contextexternaltool",{"_index":5954,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontexttypetodotype",{"_index":5842,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetodotype(type",{"_index":5856,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype",{"_index":5843,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype(type",{"_index":5858,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto",{"_index":10449,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto(copyfilelistresponse",{"_index":10455,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto",{"_index":10450,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto(response",{"_index":10457,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcourseteacherstocopyrightowners",{"_index":4999,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseteacherstocopyrightowners(course",{"_index":5019,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseuserstousergroup",{"_index":3119,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcourseuserstousergroup(course",{"_index":3127,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcreateacceptloginrequestbody",{"_index":16015,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreateacceptloginrequestbody(loginrequestbody",{"_index":16016,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreatenewstodomain",{"_index":15018,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreatenewstodomain(params",{"_index":15022,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreaterequest",{"_index":9108,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcreaterequest(externaltoolcreateparams",{"_index":9118,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcurrentusertocreatejwtpayload",{"_index":7066,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcurrentusertocreatejwtpayload(currentuser",{"_index":7071,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["mapcustomparameterdostoentities",{"_index":9025,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterdostoentities(customparameters",{"_index":9038,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities",{"_index":9026,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities(entries",{"_index":9040,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos",{"_index":9027,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos(entries",{"_index":9043,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos",{"_index":9028,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos(customparameters",{"_index":9045,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparametertoresponse",{"_index":9221,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapcustomparametertoresponse(customparameters",{"_index":9228,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapdashboardtoentity",{"_index":7645,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtoentity(modelentity",{"_index":7660,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel",{"_index":7646,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel(entity",{"_index":7663,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdomainobjecttoentityproperties",{"_index":8940,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(entitydo",{"_index":8957,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(group",{"_index":10985,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapdomaintoadapter",{"_index":4561,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoadapter(team",{"_index":4562,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoresponse",{"_index":23181,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapdosortordertoqueryorder",{"_index":9379,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdosortordertoqueryorder(sort",{"_index":9380,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdotoentityproperties",{"_index":2349,"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":18727,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["mapdotoentityproperties(entitydo",{"_index":2377,"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":9366,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdotoprovideroauthclient(name",{"_index":9367,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdtotoresponse",{"_index":14834,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapdtotoresponse(dto",{"_index":14835,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapelementtoentity",{"_index":7647,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapelementtoentity(modelentity",{"_index":7665,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapentitytodo",{"_index":2350,"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":2380,"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":8941,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobject(entity",{"_index":8959,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobjectproperties",{"_index":10980,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodomainobjectproperties(entity",{"_index":10988,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodto",{"_index":20057,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytodto(teamentity",{"_index":20058,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytoparenttype",{"_index":10451,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapentitytoparenttype(entity",{"_index":10459,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapexternalsourceentitytoexternalsource",{"_index":10981,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourceentitytoexternalsource(entity",{"_index":10990,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity",{"_index":10982,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity(externalsource",{"_index":10992,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery",{"_index":9109,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery(params",{"_index":9121,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto",{"_index":10452,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto(filerecordlistresponse",{"_index":10461,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto",{"_index":10453,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto(filerecordresponse",{"_index":10463,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordtofilerecordparams",{"_index":10534,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfilerecordtofilerecordparams(filerecord",{"_index":10538,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfootodomain",{"_index":23182,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapfromdtotolistresponse",{"_index":19444,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotolistresponse(systems",{"_index":19447,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse",{"_index":19445,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse(system",{"_index":19448,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromentitiestodtos",{"_index":17517,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitiestodtos(enities",{"_index":17519,"title":{},"body":{"classes/RoleMapper.html":{}}}],["mapfromentitiestodtos(entities",{"_index":19382,"title":{},"body":{"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitytodto",{"_index":17518,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromentitytodto(entity",{"_index":17522,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromoauthconfigdtotoresponse",{"_index":19446,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigdtotoresponse(oauthconfigdto",{"_index":19449,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigentitytodto",{"_index":19381,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoauthconfigentitytodto(oauthconfig",{"_index":19385,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoidcconfigentitytodto",{"_index":19403,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapfromoidcconfigentitytodto(systemid",{"_index":19406,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapgridelement",{"_index":7609,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelement(data",{"_index":7611,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelementtomodel",{"_index":7648,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgridelementtomodel(elementwithposition",{"_index":7667,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgrouptoclassinfodto",{"_index":11279,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgrouptoclassinfodto(group",{"_index":11283,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["mapgroupuserentitytogroupuser",{"_index":10983,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupuserentitytogroupuser(entity",{"_index":10994,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity",{"_index":10984,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity(groupuser",{"_index":10997,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapimportuserfilterquerytodomain",{"_index":12853,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportuserfilterquerytodomain(query",{"_index":12854,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportusermatchscopetodomain",{"_index":12900,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapimportusermatchscopetodomain(match",{"_index":12902,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["maplearnroom",{"_index":7610,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplearnroom(metadata",{"_index":7613,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplesson",{"_index":17593,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maplessoncopytodomain",{"_index":6388,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessoncopytodomain(params",{"_index":6390,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessonelement",{"_index":8064,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maplessonelement(element",{"_index":8085,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maploginresponse",{"_index":16022,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maploginresponse(providerloginresponse",{"_index":16028,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maplti11toolconfigdotoentity",{"_index":9029,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoentity(lti11config",{"_index":9049,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoresponse",{"_index":9222,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigdotoresponse(externaltoolconfigdo",{"_index":9230,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigtodo",{"_index":9030,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigtodo(lti11config",{"_index":9051,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapmatchcreatortoresponse",{"_index":12901,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapmatchcreatortoresponse(matchcreator",{"_index":12904,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapnewsscopetodomain",{"_index":15019,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapnewsscopetodomain(query",{"_index":15024,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapoauth2configdotoentity",{"_index":9031,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configdotoentity(oauth2config",{"_index":9053,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo",{"_index":9032,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo(oauth2config",{"_index":9056,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2toolconfigdotoresponse",{"_index":9223,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauth2toolconfigdotoresponse(externaltoolconfigdo",{"_index":9232,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauthclientresponse",{"_index":16023,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapoauthclientresponse(oauthclient",{"_index":16030,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapped",{"_index":4466,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/DtoCreator.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":20465,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["mappedcolumnboard",{"_index":17641,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedconfig",{"_index":9171,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedcustomparameter",{"_index":9176,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappeddata",{"_index":11124,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["mappedelements",{"_index":7714,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mappedelements.includes(el",{"_index":7718,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mappedentity",{"_index":19422,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["mappedlesson",{"_index":17635,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedlocation",{"_index":20538,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mappedtask",{"_index":17618,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.availabledate",{"_index":17627,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.coursename",{"_index":17625,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.description",{"_index":17633,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.displaycolor",{"_index":17631,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.duedate",{"_index":17629,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtools",{"_index":20377,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{}}}],["mappedtype",{"_index":20540,"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":{},"controllers/GroupController.html":{},"interfaces/IDashboardRepo.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.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":5589,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapper.interface",{"_index":5581,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["mapper.interface.ts",{"_index":2549,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:5",{"_index":2555,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:7",{"_index":2552,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.mapsubmissionstoresponse(submissionitem",{"_index":8227,"title":{},"body":{"controllers/ElementController.html":{}}}],["mapper.maptoresponse(submissionitems",{"_index":3746,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["mapper.name",{"_index":13442,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mapper.ts",{"_index":23180,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper/account",{"_index":1122,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["mapper/course.mapper",{"_index":6624,"title":{},"body":{"controllers/CourseController.html":{}}}],["mapper/dashboard.mapper",{"_index":7377,"title":{},"body":{"controllers/DashboardController.html":{}}}],["mapper/group",{"_index":11221,"title":{},"body":{"injectables/GroupUc.html":{}}}],["mapper/identity",{"_index":13309,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["mapper/import",{"_index":12774,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["mapper/login",{"_index":14486,"title":{},"body":{"controllers/LoginController.html":{}}}],["mapper/migration.mapper",{"_index":13922,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["mapper/news.mapper",{"_index":14967,"title":{},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/TeamNewsController.html":{}}}],["mapper/oauth",{"_index":15770,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/provisioning",{"_index":16870,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["mapper/pseudonym.mapper",{"_index":16931,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["mapper/role.mapper",{"_index":17571,"title":{},"body":{"injectables/RoleService.html":{}}}],["mapper/room",{"_index":13860,"title":{},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["mapper/system",{"_index":19300,"title":{},"body":{"controllers/SystemController.html":{}}}],["mapper/team.mapper",{"_index":4675,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["mapper/token",{"_index":15424,"title":{},"body":{"injectables/OAuthService.html":{}}}],["mapper/tool",{"_index":20343,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["mapper/user",{"_index":12777,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/user.mapper",{"_index":21604,"title":{},"body":{"injectables/UserService.html":{}}}],["mapper/vc",{"_index":21847,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["mapper/video",{"_index":21732,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["mapperid",{"_index":13445,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mappers",{"_index":5574,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mapping",{"_index":23155,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mappseudonymtouserdata",{"_index":9642,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["mappseudonymtouserdata(pseudonym",{"_index":9665,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["mapredirectresponse",{"_index":16024,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapredirectresponse(redirect",{"_index":16031,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapreferencetoentity",{"_index":7649,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetoentity(modelentity",{"_index":7669,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel",{"_index":7650,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel(reference",{"_index":7671,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["maprequesttobasictoolconfig",{"_index":9110,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttobasictoolconfig(externaltoolconfigparams",{"_index":9124,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo",{"_index":9111,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo(customparameterparams",{"_index":9128,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo",{"_index":5912,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo(customparameterparams",{"_index":5916,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate",{"_index":9112,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate(externaltoolconfigparams",{"_index":9131,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate",{"_index":9113,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate(externaltoolconfigparams",{"_index":9134,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate",{"_index":9114,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate(externaltoolconfigparams",{"_index":9138,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate",{"_index":9115,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate(externaltoolconfigparams",{"_index":9141,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprolestoltiroles",{"_index":14611,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprolestoltiroles(rolenames",{"_index":14612,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprpcerrorresponsetodomainerror",{"_index":8353,"title":{},"body":{"classes/ErrorMapper.html":{},"classes/RpcMessageProducer.html":{}}}],["maprpcerrorresponsetodomainerror(errorobj",{"_index":8354,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["maps",{"_index":4564,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["mapsanisroletorolename",{"_index":18001,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapsanisroletorolename(source",{"_index":18005,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapscanresultparamstodto",{"_index":10127,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapscanresultparamstodto(scanresultparams",{"_index":10130,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapschoolexternaltoolrequest",{"_index":18148,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapschoolexternaltoolrequest(request",{"_index":18150,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapsearchparamstoquery",{"_index":21176,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchparamstoquery(searchparams",{"_index":21178,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchresult",{"_index":629,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsearchresult(accountentities",{"_index":633,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsessiontodto",{"_index":15736,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsessiontodto(session",{"_index":15737,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsortingquerytodomain",{"_index":9116,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapsortingquerytodomain(sortingquery",{"_index":9145,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapstringtoparenttype",{"_index":10454,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapstringtoparenttype(input",{"_index":10465,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapsubmissionstoresponse",{"_index":19074,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapsubmissionstoresponse(submissionitem",{"_index":19076,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptask",{"_index":17594,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maptaskcopytodomain",{"_index":6389,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcopytodomain(params",{"_index":6394,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcreatetodomain",{"_index":19699,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskcreatetodomain(params",{"_index":19701,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskelement",{"_index":8065,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptaskelement(element",{"_index":8087,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptasktowebcontentresource",{"_index":5000,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptasktowebcontentresource(task",{"_index":5023,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptaskupdatetodomain",{"_index":19700,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskupdatetodomain(params",{"_index":19703,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoallowedauthorizationentitytype",{"_index":10535,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowedauthorizationentitytype(type",{"_index":10540,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowemetadatatype",{"_index":14803,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptoallowemetadatatype(type",{"_index":14804,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptobaseresponse",{"_index":22019,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptobaseresponse(from",{"_index":22022,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoboardelement",{"_index":2701,"title":{},"body":{"entities/Board.html":{}}}],["maptoclassinfostolistresponse",{"_index":11111,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfostolistresponse(classinfos",{"_index":11114,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse",{"_index":11112,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoclassinfotoresponse(classinfo",{"_index":11117,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse",{"_index":20362,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse(toolinfos",{"_index":20366,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse",{"_index":20363,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse(toolinfo",{"_index":20369,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocustomparameterentryresponse",{"_index":18164,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptocustomparameterentryresponse(entries",{"_index":18167,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptodo",{"_index":4356,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodo(entity",{"_index":4360,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodomain",{"_index":17536,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptodomain(query",{"_index":21353,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["maptodomain(rolename",{"_index":17537,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptodos",{"_index":4357,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodos(entities",{"_index":4362,"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":3898,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["maptoelementdtos",{"_index":8066,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptoelementdtos(elements",{"_index":8089,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptoentities",{"_index":4358,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentities(domainobjects",{"_index":4364,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity",{"_index":4359,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity(domainobject",{"_index":4366,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoexternalgroupdtos",{"_index":18002,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupdtos(source",{"_index":18007,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser",{"_index":18003,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser(relation",{"_index":18009,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto",{"_index":13069,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto(schooldo",{"_index":13071,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptoexternalschooldto(source",{"_index":18011,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaltoolresponse",{"_index":9224,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaltoolresponse(externaltool",{"_index":9234,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaluserdto",{"_index":13070,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(source",{"_index":18012,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(userdo",{"_index":13074,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptofilerecordlistresponse",{"_index":10128,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordlistresponse(filerecords",{"_index":10133,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse",{"_index":10129,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse(filerecord",{"_index":10135,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptogroupresponse",{"_index":11113,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptogroupresponse(resolvedgroup",{"_index":11120,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["maptoinforesponse",{"_index":22020,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoinforesponse(from",{"_index":22023,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptointernal",{"_index":16896,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptointernal(dto",{"_index":16897,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptojoinresponse",{"_index":22021,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptojoinresponse(from",{"_index":22024,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptokenresponsetodto",{"_index":20282,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokenresponsetodto(response",{"_index":20285,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokeycloakidentityprovider",{"_index":16277,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptokeycloakidentityprovider(oidcconfig",{"_index":16280,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptologinresponse",{"_index":14533,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologinresponse(logindto",{"_index":14535,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptologmessagedata",{"_index":15020,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptologmessagedata(news",{"_index":15026,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptometadataresponse",{"_index":6809,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptometadataresponse(course",{"_index":6810,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptooauthcurrentuser",{"_index":7067,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthcurrentuser(accountid",{"_index":7073,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["maptooauthloginresponse",{"_index":14534,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptooauthloginresponse(logindto",{"_index":14537,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maptoparameterlocation",{"_index":20518,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoparameterlocation(location",{"_index":20522,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoresolvedgroupdto",{"_index":11280,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["maptoresolvedgroupdto(group",{"_index":11285,"title":{},"body":{"classes/GroupUcMapper.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/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/ImportUserMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/NewsMapper.html":{},"classes/PseudonymMapper.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/ToolStatusResponseMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponse(account",{"_index":977,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponse(board",{"_index":3706,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["maptoresponse(card",{"_index":4081,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["maptoresponse(column",{"_index":4957,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["maptoresponse(copystatus",{"_index":6398,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptoresponse(dashboard",{"_index":7615,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maptoresponse(element",{"_index":2554,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["maptoresponse(importuser",{"_index":12857,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["maptoresponse(news",{"_index":15028,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptoresponse(pseudonym",{"_index":16947,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["maptoresponse(rolename",{"_index":17539,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptoresponse(schoolinfo",{"_index":18295,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["maptoresponse(sharetoken",{"_index":18750,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["maptoresponse(sharetokeninfo",{"_index":18705,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["maptoresponse(status",{"_index":3770,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["maptoresponse(submissionitems",{"_index":19078,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptoresponse(target",{"_index":19510,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["maptoresponse(taskwithstatus",{"_index":19706,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoresponse(user",{"_index":17413,"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":20364,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse(externaltools",{"_index":20372,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse",{"_index":20365,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse(externaltool",{"_index":20374,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolresponse",{"_index":18165,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":18169,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse",{"_index":18166,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse(externaltools",{"_index":18170,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosinglefileparams",{"_index":10536,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptosinglefileparams(params",{"_index":10544,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostatusresponse",{"_index":19140,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostatusresponse(submission",{"_index":19141,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostreamablefile",{"_index":10537,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostreamablefile(fileresponse",{"_index":10546,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptotoolconfigtype",{"_index":20519,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolconfigtype(launchdatatype",{"_index":20524,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype",{"_index":20520,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype(configtype",{"_index":20527,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse",{"_index":20521,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20530,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolreference",{"_index":20666,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreference(externaltool",{"_index":20667,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreferenceresponse",{"_index":5952,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponse(toolreference",{"_index":5956,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses",{"_index":5953,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses(toolreferences",{"_index":5960,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapupdatenewstodomain",{"_index":15021,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdatenewstodomain(params",{"_index":15030,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdaterequest",{"_index":9117,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapupdaterequest(externaltoolupdateparams",{"_index":9150,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapuserloginmigrationdotoresponse",{"_index":21177,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserloginmigrationdotoresponse(domainobject",{"_index":21181,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserstoresponse",{"_index":19075,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["mapuserstoresponse(user",{"_index":19079,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["march",{"_index":22753,"title":{},"body":{"license.html":{}}}],["marked",{"_index":7921,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["markedfordelete",{"_index":10115,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["markfilesownedbyuserfordeletion",{"_index":10391,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfilesownedbyuserfordeletion(userid",{"_index":10398,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfordelete",{"_index":10077,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["markfordeletion",{"_index":9937,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["marks",{"_index":22628,"title":{},"body":{"license.html":{}}}],["markunmigratedusersasoutdated",{"_index":18315,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["markunmigratedusersasoutdated(schoolid",{"_index":18333,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["masks",{"_index":22341,"title":{},"body":{"license.html":{}}}],["master",{"_index":23556,"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":12778,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["match.mapper.ts",{"_index":21352,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:20",{"_index":21355,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:8",{"_index":21354,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.params.ts",{"_index":20771,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.params.ts:7",{"_index":20773,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.response",{"_index":12835,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["match.response.ts",{"_index":21347,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["match.response.ts:19",{"_index":21375,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:22",{"_index":21372,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:25",{"_index":21370,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:28",{"_index":21371,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:35",{"_index":21374,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:41",{"_index":21373,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:44",{"_index":21348,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["match.response.ts:7",{"_index":21369,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match_matchedby",{"_index":12046,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["match_userid",{"_index":12044,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/UserRepo.html":{}}}],["matchancestors",{"_index":3651,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchancestors(desc",{"_index":3656,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchcreator",{"_index":12010,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["matchcreator.auto",{"_index":12916,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreator.manual",{"_index":12914,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreatorscope",{"_index":12053,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.auto",{"_index":12908,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.manual",{"_index":12910,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.none",{"_index":12912,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matched",{"_index":3846,"title":{},"body":{"classes/BusinessError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{}}}],["matched(matchedby",{"_index":12819,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["matchedby",{"_index":12008,"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":6893,"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":6376,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.length",{"_index":12038,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matches[1",{"_index":12039,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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/OAuth2ToolLaunchStrategy.html":{}}}],["matchingparameterentry?.value",{"_index":329,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["matchingparams",{"_index":9482,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchingparams.some((param",{"_index":9528,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchsinglerule",{"_index":17790,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchsinglerule(rules",{"_index":17795,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchtype",{"_index":12906,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["matchtype.auto",{"_index":12917,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchtype.manual",{"_index":12915,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["material",{"_index":11865,"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":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"license.html":{}}}],["materialfactory",{"_index":14793,"title":{"classes/MaterialFactory.html":{}},"body":{"classes/MaterialFactory.html":{}}}],["materialfactory.define(material",{"_index":14796,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["materialid",{"_index":11874,"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":{}}}],["materialids",{"_index":11885,"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":22594,"title":{},"body":{"license.html":{}}}],["materials",{"_index":11868,"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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/Material.html":{}}}],["materials.entity",{"_index":11866,"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":14797,"title":{"injectables/MaterialsRepo.html":{}},"body":{"injectables/MaterialsRepo.html":{}}}],["math.ceil(timedifference",{"_index":1767,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["math.floor(index",{"_index":7495,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["math.floor(math.random",{"_index":3559,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["math.round(math.random",{"_index":10121,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["matter",{"_index":23482,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["max",{"_index":3526,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["max(100",{"_index":16503,"title":{},"body":{"classes/PaginationParams.html":{}}}],["max(500",{"_index":14371,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["max_file_size",{"_index":11966,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["max_redirects",{"_index":11409,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["max_security_check_file_size",{"_index":11967,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["maxage",{"_index":18572,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["maxdelay",{"_index":13781,"title":{},"body":{"injectables/LdapService.html":{}}}],["maxexternaltoollogosizeinbytes",{"_index":8824,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["maximum",{"_index":1037,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["maxpagesize",{"_index":11623,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["maxredirects",{"_index":11449,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["maxsubmission",{"_index":12489,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxsubmissions",{"_index":3779,"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":2220,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["maybe",{"_index":9060,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["md",{"_index":22906,"title":{},"body":{"todo.html":{}}}],["me(@currentuser",{"_index":20836,"title":{},"body":{"controllers/UserController.html":{}}}],["me(authtoken",{"_index":1211,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["me(currentuser",{"_index":20831,"title":{},"body":{"controllers/UserController.html":{}}}],["me(userid",{"_index":21594,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["meaning",{"_index":22636,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["meaningful",{"_index":22254,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["means",{"_index":22222,"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":22447,"title":{},"body":{"license.html":{}}}],["measures",{"_index":22224,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mechanism",{"_index":23129,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["medium",{"_index":22471,"title":{},"body":{"license.html":{}}}],["meet",{"_index":22483,"title":{},"body":{"license.html":{}}}],["meeting",{"_index":2212,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{}}}],["meeting.config",{"_index":2090,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["meeting.config.ts",{"_index":2052,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:1",{"_index":2055,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:6",{"_index":2056,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting_id",{"_index":2208,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["meetingid",{"_index":2053,"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":2221,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["meets",{"_index":22387,"title":{},"body":{"license.html":{}}}],["member",{"_index":1193,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"classes/JwtExtractor.html":{},"interfaces/OauthCurrentUser.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/TeamsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["memberids",{"_index":12317,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["memberids.some((id",{"_index":12322,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["members",{"_index":1248,"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":10651,"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":18560,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mention",{"_index":23505,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["mentioned",{"_index":23100,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mentor",{"_index":7109,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["menu",{"_index":22385,"title":{},"body":{"license.html":{}}}],["merchantability",{"_index":22796,"title":{},"body":{"license.html":{}}}],["mere",{"_index":22372,"title":{},"body":{"license.html":{}}}],["merge",{"_index":22259,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mergeelementintoposition",{"_index":7407,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["mergeelementintoposition(element",{"_index":7439,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["merging",{"_index":22684,"title":{},"body":{"license.html":{}}}],["merlinreference",{"_index":11876,"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":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["message",{"_index":1216,"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":{},"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/LessonCopyUC.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/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.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":{},"injectables/TaskCopyUC.html":{},"classes/TooManyPseudonymsLoggableException.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":11960,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["messagekey",{"_index":2062,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["messages",{"_index":23500,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["messagewithcontext",{"_index":14462,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["met",{"_index":22422,"title":{},"body":{"license.html":{}}}],["meta",{"_index":11329,"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":2073,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["metadata",{"_index":2222,"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":6823,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:28",{"_index":6839,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:33",{"_index":6842,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:38",{"_index":6840,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:43",{"_index":6838,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:48",{"_index":6841,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:5",{"_index":6836,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:53",{"_index":6843,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:58",{"_index":6837,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:61",{"_index":6824,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["metadata.type",{"_index":7692,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["metadataprops",{"_index":5224,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["metadatas",{"_index":8317,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatas.some",{"_index":8321,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatatypemapper",{"_index":14800,"title":{"classes/MetadataTypeMapper.html":{}},"body":{"classes/MetadataTypeMapper.html":{}}}],["method",{"_index":235,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CommonCartridgeExportService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ILegacyLogger.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LessonCopyUC.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":15620,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["methodes",{"_index":23727,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["methodnotallowedexception",{"_index":8049,"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/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/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalToolElement.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementResponseMapper.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":{},"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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"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":16789,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics",{"_index":16786,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts",{"_index":16776,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:19",{"_index":16779,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:22",{"_index":16780,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["micro",{"_index":23657,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["microservice",{"_index":22986,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["microservices",{"_index":23720,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["middleware",{"_index":16790,"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":18515,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["middlewares",{"_index":16787,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["migrate",{"_index":11643,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":11646,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["migrate(skip",{"_index":13491,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["migrate(start",{"_index":13656,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migrate(userjwt",{"_index":16204,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated",{"_index":15277,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated.'})@apiresponse({type",{"_index":16103,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migratedaccounts",{"_index":13660,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migratedusers",{"_index":18378,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migratedusers.data.foreach((user",{"_index":18379,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrates",{"_index":21321,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrateschool",{"_index":18316,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateschool(externalid",{"_index":18335,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateuser",{"_index":16084,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{}}}],["migrateuser(currentuserid",{"_index":21418,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migrateuser(jwt",{"_index":16100,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrateuserlogin",{"_index":21035,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrateuserlogin(jwt",{"_index":21057,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrating",{"_index":21154,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration",{"_index":52,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"interfaces/ICleanOptions.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":{},"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":{},"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":21028,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.controller.ts",{"_index":21031,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:115",{"_index":21079,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:139",{"_index":21067,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:167",{"_index":21074,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:17",{"_index":21379,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:200",{"_index":21045,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:217",{"_index":21060,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:59",{"_index":21056,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:89",{"_index":21050,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.do.ts",{"_index":21119,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:11",{"_index":21125,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:13",{"_index":21128,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:15",{"_index":21124,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:17",{"_index":21123,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:5",{"_index":21126,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:7",{"_index":21127,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:9",{"_index":21129,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.dto",{"_index":13945,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{}}}],["migration.dto.ts",{"_index":15744,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:10",{"_index":15745,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:2",{"_index":15749,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:4",{"_index":15748,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:6",{"_index":15747,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:8",{"_index":15746,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.entity",{"_index":12187,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["migration.entity.ts",{"_index":21143,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:11",{"_index":21147,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:15",{"_index":21148,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:18",{"_index":21150,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:21",{"_index":21146,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:24",{"_index":21149,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:27",{"_index":21144,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.entity.ts:30",{"_index":21145,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["migration.error",{"_index":15509,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{}}}],["migration.error.ts",{"_index":13723,"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":13728,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.error.ts:12",{"_index":15352,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:14",{"_index":15346,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:17",{"_index":14870,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:22",{"_index":14871,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:28",{"_index":14807,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:33",{"_index":14808,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:4",{"_index":18279,"title":{},"body":{"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:6",{"_index":13726,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.mapper",{"_index":16124,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migration.mapper.ts",{"_index":21175,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:13",{"_index":21182,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.mapper.ts:5",{"_index":21395,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:6",{"_index":21179,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.module",{"_index":21029,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.module.ts",{"_index":21195,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["migration.params",{"_index":21087,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.params.ts",{"_index":15499,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:13",{"_index":15500,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:17",{"_index":15502,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:8",{"_index":15501,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.repo.ts",{"_index":21199,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:14",{"_index":21200,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:19",{"_index":21204,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:27",{"_index":21201,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.response",{"_index":16121,"title":{},"body":{"controllers/OauthSSOController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration.response.ts",{"_index":21222,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:1",{"_index":21398,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:12",{"_index":21228,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:17",{"_index":21225,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:22",{"_index":21227,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:27",{"_index":21224,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:32",{"_index":21223,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:6",{"_index":21399,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:7",{"_index":21226,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.rule.ts",{"_index":21238,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:11",{"_index":21241,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:17",{"_index":21240,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:8",{"_index":21239,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.service",{"_index":13315,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts",{"_index":13651,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:106",{"_index":18343,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:111",{"_index":21266,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:119",{"_index":21422,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:12",{"_index":18320,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:129",{"_index":21250,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:130",{"_index":18326,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:135",{"_index":21410,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:141",{"_index":18338,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:147",{"_index":18323,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:149",{"_index":21252,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:158",{"_index":18329,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:159",{"_index":21407,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:165",{"_index":18332,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:169",{"_index":21412,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:171",{"_index":21270,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:18",{"_index":13657,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:180",{"_index":21256,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:188",{"_index":21258,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:194",{"_index":21260,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:20",{"_index":18345,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:21",{"_index":21425,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:214",{"_index":21254,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:23",{"_index":21427,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:25",{"_index":21424,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:27",{"_index":21426,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:28",{"_index":18336,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:29",{"_index":21264,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:42",{"_index":21415,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:43",{"_index":18341,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:48",{"_index":13655,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:54",{"_index":21417,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:81",{"_index":18334,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:82",{"_index":21268,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:9",{"_index":13653,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:91",{"_index":21416,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:95",{"_index":21262,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:97",{"_index":21419,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.uc",{"_index":21381,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.uc.ts",{"_index":4478,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:11",{"_index":4485,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:14",{"_index":17436,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:15",{"_index":20269,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:155",{"_index":21311,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:18",{"_index":21303,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:19",{"_index":4487,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:21",{"_index":18906,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:23",{"_index":20272,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:24",{"_index":17439,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:30",{"_index":21309,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:40",{"_index":21307,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:42",{"_index":18904,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:47",{"_index":17437,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:51",{"_index":20270,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:58",{"_index":4490,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:60",{"_index":21305,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:78",{"_index":21312,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/controller/dto/oauth2",{"_index":15498,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration/controller/dto/request/page",{"_index":16479,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["migration/controller/dto/request/school",{"_index":18277,"title":{},"body":{"classes/SchoolIdParams.html":{}}}],["migration/controller/dto/request/user",{"_index":21171,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["migration/controller/dto/response/page",{"_index":16492,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["migration/controller/dto/response/user",{"_index":21221,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration/controller/user",{"_index":21030,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration/error",{"_index":21463,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/error/oauth",{"_index":15340,"title":{},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{}}}],["migration/error/school",{"_index":18304,"title":{},"body":{"classes/SchoolMigrationError.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["migration/error/user",{"_index":21015,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["migration/loggable/user",{"_index":21166,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["migration/mapper/page",{"_index":16470,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["migration/mapper/user",{"_index":21174,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration/service",{"_index":16214,"title":{},"body":{"injectables/OauthUc.html":{}}}],["migration/service/dto",{"_index":16115,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/UserMigrationMapper.html":{}}}],["migration/service/dto/migration.dto.ts",{"_index":14828,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/migration.dto.ts:2",{"_index":14830,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/page",{"_index":16459,"title":{},"body":{"classes/PageContentDto.html":{}}}],["migration/service/dto/school",{"_index":18307,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["migration/service/migration",{"_index":14814,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["migration/service/school",{"_index":18311,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration/service/user",{"_index":21229,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration/success",{"_index":21467,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/uc/close",{"_index":4477,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration/uc/dto/user",{"_index":21197,"title":{},"body":{"interfaces/UserLoginMigrationQuery.html":{}}}],["migration/uc/restart",{"_index":17434,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration/uc/start",{"_index":18900,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration/uc/toggle",{"_index":20267,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration/uc/user",{"_index":21299,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/user",{"_index":18532,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationalreadyactivatedexception",{"_index":13734,"title":{"classes/MigrationAlreadyActivatedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["migrationbody",{"_index":13935,"title":{"classes/MigrationBody.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/MigrationBody.html":{}}}],["migrationbody.oauthmigrationfinished",{"_index":13956,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationmandatory",{"_index":13955,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationpossible",{"_index":13954,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationcheckservice",{"_index":14813,"title":{"injectables/MigrationCheckService.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationconsentredirect",{"_index":15436,"title":{},"body":{"injectables/OAuthService.html":{}}}],["migrationdto",{"_index":13951,"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":21336,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationdto.redirect.includes('migration/error",{"_index":21335,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationerror",{"_index":16142,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromsource",{"_index":16144,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromtarget",{"_index":16145,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler",{"_index":16085,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler(error",{"_index":16105,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationflags",{"_index":13930,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationmapper",{"_index":13915,"title":{"injectables/MigrationMapper.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{}}}],["migrationmaybecompleted",{"_index":14842,"title":{"classes/MigrationMayBeCompleted.html":{}},"body":{"classes/MigrationMayBeCompleted.html":{}}}],["migrationmaynotbecompleted",{"_index":14850,"title":{"classes/MigrationMayNotBeCompleted.html":{}},"body":{"classes/MigrationMayNotBeCompleted.html":{}}}],["migrationpage",{"_index":21093,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.data.map",{"_index":21096,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.total",{"_index":21098,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse",{"_index":13946,"title":{"classes/MigrationResponse.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{}}}],["migrationresponses",{"_index":21095,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse})@apiunauthorizedresponse",{"_index":13937,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationresponse})@apiunauthorizedresponse()@apinotfoundresponse({description",{"_index":13931,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrations",{"_index":21032,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationsflags",{"_index":13932,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["mikro",{"_index":96,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"injectables/AccountRepo.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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalStateEntity.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mikroorm",{"_index":7804,"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":22898,"title":{},"body":{"todo.html":{}}}],["mikroormmodule",{"_index":10579,"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":10607,"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":14895,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmoduleasyncoptions",{"_index":14890,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmodulesyncoptions",{"_index":10580,"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":23154,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["milliseconds",{"_index":18377,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["mime",{"_index":10026,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["mimetype",{"_index":1487,"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":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"interfaces/S3Config-1.html":{}}}],["min",{"_index":3470,"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":3475,"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":16502,"title":{},"body":{"classes/PaginationParams.html":{}}}],["mind",{"_index":23632,"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":22933,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_password=miniouser",{"_index":22947,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_user=`miniouser",{"_index":22946,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minios3storage",{"_index":22943,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minus",{"_index":14912,"title":{},"body":{"classes/MongoPatterns.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["minwidth",{"_index":16427,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["misrepresentation",{"_index":22620,"title":{},"body":{"license.html":{}}}],["missed",{"_index":7028,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["missing",{"_index":1127,"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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["missing.loggable",{"_index":18398,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing_tool_parameter_value",{"_index":14876,"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":13731,"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":15138,"title":{},"body":{"classes/NewsScope.html":{}}}],["missmatches",{"_index":19834,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["mixing",{"_index":13834,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mixwith",{"_index":22140,"title":{},"body":{"dependencies.html":{}}}],["mkdir",{"_index":10329,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdir(folderpath",{"_index":10334,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp",{"_index":10330,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp(dirpath",{"_index":10338,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mm",{"_index":14444,"title":{},"body":{"modules/LoggerModule.html":{}}}],["mnf:copyrightandotherrestrictions",{"_index":5262,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:description",{"_index":5264,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:general",{"_index":5258,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:lom",{"_index":5257,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:rights",{"_index":5261,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:string",{"_index":5260,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:title",{"_index":5259,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:value",{"_index":5263,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mocha",{"_index":23030,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mocha's",{"_index":23324,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mock",{"_index":8716,"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":16293,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock/oidc",{"_index":16292,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock:0.6.0powershell",{"_index":23539,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock:0.6.0setup",{"_index":23540,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock_issuer",{"_index":19358,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mock_type",{"_index":19356,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockbaseurl",{"_index":8713,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mockcomment",{"_index":8718,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mocked",{"_index":23429,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocking",{"_index":23389,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockreturnvalueonce",{"_index":23427,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocks",{"_index":23351,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocksecret",{"_index":19352,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockservice",{"_index":23406,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockservice.getuser.mockreturnvalueonce(resultuser",{"_index":23422,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mode",{"_index":14849,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["model",{"_index":7047,"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":7662,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["modelentity.gridelements.init",{"_index":7687,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.isinitialized",{"_index":7686,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.remove(el",{"_index":7719,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.references.loaditems",{"_index":7679,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.title",{"_index":7685,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.user.id",{"_index":7691,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.xpos",{"_index":7682,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.ypos",{"_index":7683,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["models",{"_index":15203,"title":{},"body":{"injectables/NewsUc.html":{}}}],["moderator",{"_index":2177,"title":{},"body":{"classes/BBBJoinConfig.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["moderatorcount",{"_index":2223,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["moderatormustapprovejoinrequests",{"_index":8034,"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":2076,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["modification",{"_index":22337,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["modifications",{"_index":22390,"title":{},"body":{"license.html":{}}}],["modified",{"_index":21038,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["modifies",{"_index":22487,"title":{},"body":{"license.html":{}}}],["modify",{"_index":22308,"title":{},"body":{"license.html":{}}}],["modifying",{"_index":22363,"title":{},"body":{"license.html":{}}}],["modularization",{"_index":22928,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["modularize",{"_index":18930,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"injectables/ToolPermissionHelper.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":23410,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(featureundertest",{"_index":23407,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(mockservice",{"_index":23408,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.ts",{"_index":23184,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/application",{"_index":23387,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module/repo",{"_index":23214,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/uc",{"_index":23209,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduleref",{"_index":23395,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(catscontroller",{"_index":23399,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(sampleservice",{"_index":23398,"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/AuthorizationReferenceModule.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":{},"injectables/FeathersRosterService.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"interfaces/UserMetdata.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/account",{"_index":1564,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["modules/account/account",{"_index":18520,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/account/account.module",{"_index":16842,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/account/services/account.service",{"_index":13658,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{}}}],["modules/account/services/dto",{"_index":1732,"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":{}}}],["modules/account/services/dto/account.dto",{"_index":981,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["modules/authentication",{"_index":2930,"title":{},"body":{"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/GroupController.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":{},"controllers/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["modules/authentication/authentication",{"_index":18521,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/authentication/authentication.module",{"_index":10423,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{}}}],["modules/authentication/decorator/auth.decorator",{"_index":11368,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["modules/authentication/interface",{"_index":16215,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserService.html":{}}}],["modules/authentication/interface/user",{"_index":17391,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["modules/authentication/mapper",{"_index":21603,"title":{},"body":{"injectables/UserService.html":{}}}],["modules/authentication/services/authentication.service",{"_index":16212,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/authorization",{"_index":2725,"title":{},"body":{"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/PseudonymApiModule.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SchoolExternalToolUc.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":{},"modules/VideoConferenceModule.html":{}}}],["modules/authorization/authorization",{"_index":10424,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["modules/authorization/authorization.module.ts",{"_index":23221,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/authorization/domain",{"_index":6072,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/board",{"_index":1957,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsService.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/board/board",{"_index":18522,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/board/service/column",{"_index":3005,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["modules/class",{"_index":10943,"title":{},"body":{"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{}}}],["modules/class/domain",{"_index":11216,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["modules/class/entity",{"_index":4307,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["modules/class/entity/class.entity",{"_index":6513,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/collaborative",{"_index":4544,"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":{}}}],["modules/copy",{"_index":3009,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["modules/feathers/feathers",{"_index":23219,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers.module.ts",{"_index":23220,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/files",{"_index":1358,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BoardCopyService.html":{},"classes/FileRecordFactory.html":{},"interfaces/IServerConfig.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["modules/files/entity",{"_index":18494,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/group",{"_index":8432,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisResponseMapper.html":{}}}],["modules/group/entity/group.entity",{"_index":6515,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["modules/group/group",{"_index":18523,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom",{"_index":16958,"title":{},"body":{"modules/PseudonymModule.html":{},"injectables/ShareTokenUC.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["modules/learnroom/common",{"_index":12235,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["modules/learnroom/controller/dto/lesson/lesson",{"_index":6400,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/learnroom/learnroom",{"_index":18524,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/learnroom/service",{"_index":190,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/FeathersRosterService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/learnroom/types",{"_index":3444,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["modules/legacy",{"_index":191,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/CommonToolModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"modules/ImportUserModule.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.html":{},"injectables/PseudonymUc.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":{}}}],["modules/lesson",{"_index":13855,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{}}}],["modules/lesson/lesson",{"_index":18525,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/lesson/service",{"_index":3013,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/lesson/types",{"_index":6402,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/lti",{"_index":15957,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{}}}],["modules/management/management.module",{"_index":18495,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["modules/management/uc/database",{"_index":20221,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["modules/news",{"_index":18526,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["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":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/oauth/controller/dto/authorization.params",{"_index":11505,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["modules/oauth/loggable",{"_index":13097,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["modules/oauth/oauth",{"_index":18527,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/oauth/oauth.module",{"_index":1565,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["modules/oauth/service/dto/cookies.dto",{"_index":11473,"title":{},"body":{"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/dto/hydra.redirect.dto",{"_index":11431,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["modules/oauth/service/oauth.service",{"_index":15506,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning",{"_index":15420,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/provisioning/dto",{"_index":15421,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["modules/pseudonym",{"_index":4592,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolLaunchModule.html":{}}}],["modules/pseudonym/pseudonym",{"_index":18538,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/pseudonym/service",{"_index":15983,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["modules/rocketchat",{"_index":18528,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/role",{"_index":1566,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{}}}],["modules/role/role.module",{"_index":4646,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/UserModule.html":{}}}],["modules/role/service/dto/role.dto",{"_index":4552,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleMapper.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/service/role.service",{"_index":4674,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"modules/RoleModule.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["modules/role/uc/role.uc",{"_index":17533,"title":{},"body":{"modules/RoleModule.html":{}}}],["modules/server",{"_index":1736,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["modules/server/server.config",{"_index":805,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["modules/sharing/domainobject/share",{"_index":18686,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["modules/sharing/sharing.module",{"_index":18529,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system",{"_index":1567,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{}}}],["modules/system/controller/dto/oauth",{"_index":17072,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/controller/dto/system.filter.params",{"_index":19293,"title":{},"body":{"controllers/SystemController.html":{}}}],["modules/system/controller/system.controller",{"_index":19276,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/system/mapper/system",{"_index":19419,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["modules/system/mapper/system.mapper",{"_index":19470,"title":{},"body":{"injectables/SystemService.html":{}}}],["modules/system/service",{"_index":13374,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/UserMigrationService.html":{}}}],["modules/system/service/dto",{"_index":12677,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["modules/system/service/dto/oauth",{"_index":19324,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["modules/system/service/dto/oidc",{"_index":19408,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["modules/system/service/dto/system.dto",{"_index":16213,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["modules/system/service/system",{"_index":13375,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["modules/system/service/system.service",{"_index":19398,"title":{},"body":{"modules/SystemModule.html":{},"injectables/SystemUc.html":{}}}],["modules/system/system",{"_index":18530,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/system/system.module",{"_index":16843,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["modules/system/uc/system.uc",{"_index":19277,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["modules/task",{"_index":13869,"title":{},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{}}}],["modules/task/controller/dto/task",{"_index":6403,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/task/service",{"_index":3014,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["modules/task/task",{"_index":18531,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/task/types",{"_index":6404,"title":{},"body":{"classes/CopyMapper.html":{}}}],["modules/teams/teams",{"_index":18537,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/teams/teams.module",{"_index":20168,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["modules/tool",{"_index":1955,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{}}}],["modules/tool/common/domain",{"_index":5798,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["modules/tool/common/entity",{"_index":9059,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["modules/tool/common/enum",{"_index":5799,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolScope.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/common/enum/tool",{"_index":5872,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["modules/tool/common/interface",{"_index":9010,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["modules/tool/context",{"_index":5800,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IRepoLoader.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/external",{"_index":7271,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersRosterService.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolExternalToolRepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/school",{"_index":5875,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/FeathersRosterService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["modules/tool/tool",{"_index":15958,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/user",{"_index":4593,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.html":{},"modules/GroupApiModule.html":{},"injectables/GroupUc.html":{},"interfaces/IServerConfig.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.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":{},"modules/PseudonymModule.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.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":{}}}],["modules/user/service/user",{"_index":20900,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["modules/user/uc/dto/user.dto",{"_index":21344,"title":{},"body":{"classes/UserMapper.html":{}}}],["modules/user/user",{"_index":18533,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["modules/video",{"_index":18534,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["moduluslength",{"_index":7000,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["moment",{"_index":15250,"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":13013,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["mongo_url=mongodb://172.29.173.128:27030/rocketchat",{"_index":23590,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongod",{"_index":22934,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mongodatabasemoduleoptions",{"_index":10647,"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":11754,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongoimport",{"_index":11741,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongomemorydatabasemodule",{"_index":10645,"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":10654,"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":23192,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongoose",{"_index":9925,"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":13012,"title":{"classes/MongoPatterns.html":{}},"body":{"classes/ImportUserScope.html":{},"classes/MongoPatterns.html":{},"injectables/UserRepo.html":{}}}],["moodle",{"_index":22154,"title":{},"body":{"dependencies.html":{}}}],["more",{"_index":1855,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/TaskCopyUC.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":22656,"title":{},"body":{"license.html":{}}}],["mostly",{"_index":23723,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mount",{"_index":22217,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounted",{"_index":22209,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounts",{"_index":22880,"title":{},"body":{"todo.html":{}}}],["mountsdescription",{"_index":1463,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["move",{"_index":3405,"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":4107,"title":{},"body":{"injectables/CardService.html":{}}}],["move(child",{"_index":3409,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["move(column",{"_index":4973,"title":{},"body":{"injectables/ColumnService.html":{}}}],["move(element",{"_index":5601,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["moveable",{"_index":23651,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["movecard",{"_index":3970,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["movecard(urlparams",{"_index":3996,"title":{},"body":{"controllers/CardController.html":{}}}],["movecardbodyparams",{"_index":3997,"title":{"classes/MoveCardBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/MoveCardBodyParams.html":{}}}],["movecolumn",{"_index":4912,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumn(urlparams",{"_index":4925,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumnbodyparams",{"_index":4926,"title":{"classes/MoveColumnBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/MoveColumnBodyParams.html":{}}}],["movecontentelementbody",{"_index":8204,"title":{"classes/MoveContentElementBody.html":{}},"body":{"controllers/ElementController.html":{},"classes/MoveContentElementBody.html":{}}}],["moved",{"_index":16197,"title":{},"body":{"injectables/OauthUc.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["moveelement",{"_index":4150,"title":{},"body":{"injectables/CardUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"controllers/ElementController.html":{}}}],["moveelement(from",{"_index":7441,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["moveelement(undefined",{"_index":7366,"title":{},"body":{"controllers/DashboardController.html":{}}}],["moveelement(urlparams",{"_index":8203,"title":{},"body":{"controllers/ElementController.html":{}}}],["moveelement(userid",{"_index":4166,"title":{},"body":{"injectables/CardUc.html":{}}}],["moveelementondashboard",{"_index":7759,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementondashboard(dashboardid",{"_index":7765,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementparams",{"_index":7368,"title":{"classes/MoveElementParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moveelementpositionparams",{"_index":14928,"title":{"classes/MoveElementPositionParams.html":{}},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moves",{"_index":11642,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["movetotrash",{"_index":17826,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["movetotrash(paths",{"_index":17842,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["moving",{"_index":23733,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mps",{"_index":11622,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["ms",{"_index":11657,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TimeoutInterceptor.html":{}}}],["msg",{"_index":3884,"title":{},"body":{"modules/CacheWrapperModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/RedisModule.html":{}}}],["msgs",{"_index":1169,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["much",{"_index":23332,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["multi",{"_index":3487,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["multiple",{"_index":2146,"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":13480,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["muted",{"_index":21982,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["muteonstart",{"_index":2077,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["mutex",{"_index":22087,"title":{},"body":{"dependencies.html":{}}}],["n/a",{"_index":21337,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["n21",{"_index":1961,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/FederalStateService.html":{},"injectables/IdTokenService.html":{},"classes/LegacySchoolDo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RecursiveDeleteVisitor.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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"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/GetFileResponse.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.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/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/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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.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":{},"classes/RpcMessageProducer.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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":{},"classes/SortHelper.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/SubmissionsResponse.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.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":8715,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["name.length",{"_index":10080,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["name.mapper",{"_index":12863,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["name.mapper.ts",{"_index":17535,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:12",{"_index":17538,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:5",{"_index":17540,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.match",{"_index":6374,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["name.tolowercase",{"_index":5399,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["named",{"_index":22250,"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":23512,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nameonly",{"_index":7902,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["names",{"_index":5022,"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":23491,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["naming",{"_index":22921,"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":11506,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/OauthUc.html":{},"injectables/TokenGenerator.html":{},"dependencies.html":{}}}],["nanoid(12",{"_index":20279,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["nanoid(15",{"_index":11514,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["nanoid(16",{"_index":16217,"title":{},"body":{"injectables/OauthUc.html":{}}}],["narrowed",{"_index":11353,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["native",{"_index":22172,"title":{},"body":{"dependencies.html":{}}}],["nature",{"_index":22498,"title":{},"body":{"license.html":{}}}],["nbf",{"_index":13053,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["ne",{"_index":10226,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["necessary",{"_index":19835,"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":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"entities/Submission.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.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":1950,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":19960,"title":{},"body":{"injectables/TaskUC.html":{}}}],["needs",{"_index":1946,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"entities/Course.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["nest",{"_index":7803,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/ErrorLogger.html":{},"injectables/FeathersRosterService.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"interfaces/Options.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":22911,"title":{},"body":{"todo.html":{}}}],["nest:build",{"_index":22970,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:build:all",{"_index":22973,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console",{"_index":22997,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console:dev",{"_index":22998,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:build",{"_index":22992,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:serve",{"_index":22993,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint",{"_index":23013,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint:fix",{"_index":23016,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:prebuild",{"_index":22969,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start",{"_index":22976,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:debug",{"_index":22981,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:dev",{"_index":22978,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:files",{"_index":22988,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:prod",{"_index":22983,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test",{"_index":23006,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:all",{"_index":23007,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:api",{"_index":23008,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:cov",{"_index":23010,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:debug",{"_index":23012,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:unit",{"_index":23009,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:watch",{"_index":23011,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest_log_level",{"_index":11971,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["nestapp.get(rocketchatservice",{"_index":23229,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["nested",{"_index":16558,"title":{},"body":{"injectables/PermissionService.html":{}}}],["nestexpress.set('feathersapp",{"_index":9758,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["nestinterceptor",{"_index":8162,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["nestjs",{"_index":3492,"title":{"additional-documentation/nestjs-application.html":{}},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"modules/ErrorModule.html":{},"interfaces/ICleanOptions.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":1155,"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/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":3871,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{}}}],["nestjs/clithen",{"_index":23035,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.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/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":{},"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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/SchoolSpecificFileCopyServiceFactory.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":{},"dependencies.html":{}}}],["nestjs/common/decorators",{"_index":15557,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["nestjs/common/decorators/core/injectable.decorator",{"_index":4492,"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":6509,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["nestjs/common/exceptions/not",{"_index":8581,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["nestjs/config",{"_index":801,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.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/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"dependencies.html":{}}}],["nestjs/core",{"_index":8370,"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":1560,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"dependencies.html":{}}}],["nestjs/microservices",{"_index":22061,"title":{},"body":{"dependencies.html":{}}}],["nestjs/passport",{"_index":1562,"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":22063,"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":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.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/ExternalSourceResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.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/GroupController.html":{},"classes/GroupIdParams.html":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.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/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.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":{},"classes/OauthLoginResponse.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":{},"controllers/PseudonymController.html":{},"classes/PseudonymParams.html":{},"classes/PseudonymResponse.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/SubmissionsResponse.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":{},"controllers/ToolReferenceController.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":20220,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["nestjs/testing.test",{"_index":23390,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nestmodule",{"_index":18517,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nestwinston",{"_index":23255,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["net",{"_index":22229,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["network",{"_index":22281,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["neuen",{"_index":4815,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["never",{"_index":8050,"title":{},"body":{"classes/DomainObjectFactory.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FilesRepo.html":{},"classes/GuardAgainst.html":{},"injectables/LdapStrategy.html":{},"injectables/NewsRepo.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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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/SchoolSpecificFileCopyServiceFactory.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":{},"injectables/SubmissionRule.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":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"entities/User.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.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":{}}}],["newconfig",{"_index":13454,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfig.idphint",{"_index":13452,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs",{"_index":13360,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.foreach((newconfig",{"_index":13449,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.some((newconfig",{"_index":13456,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newelement",{"_index":7532,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newentity",{"_index":2410,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/GroupRepo.html":{}}}],["newentity._id",{"_index":2426,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newentity.id",{"_index":2425,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newfactory",{"_index":2517,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newgroupname",{"_index":7488,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newid",{"_index":6325,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newid}/${name",{"_index":6328,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newlanguage",{"_index":21597,"title":{},"body":{"injectables/UserService.html":{}}}],["newlist",{"_index":2706,"title":{},"body":{"entities/Board.html":{}}}],["newname",{"_index":6660,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["newnonoptionalparamnames",{"_index":9522,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.includes(name",{"_index":9525,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.some((name",{"_index":9526,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams",{"_index":9520,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams.map((parameter",{"_index":9523,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam",{"_index":9513,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.isoptional",{"_index":9514,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.name",{"_index":9503,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.regex",{"_index":9531,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.scope",{"_index":9533,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.type",{"_index":9532,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams",{"_index":9476,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.filter((parameter",{"_index":9521,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.find((p",{"_index":9529,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some",{"_index":9512,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some((newparam",{"_index":9501,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newpath",{"_index":1386,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["newpropsfactory",{"_index":2515,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newresource",{"_index":5137,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newresource.caninline",{"_index":5140,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newrooms",{"_index":7512,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newrooms.foreach((room",{"_index":7514,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["news",{"_index":6858,"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":15041,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.controller",{"_index":15073,"title":{},"body":{"modules/NewsModule.html":{}}}],["news.controller.ts",{"_index":20070,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.controller.ts:19",{"_index":20075,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.createdat",{"_index":15047,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.createinstance(targetmodel",{"_index":15182,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news.displayat",{"_index":15042,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.id",{"_index":15039,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.params.ts",{"_index":7033,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["news.params.ts:14",{"_index":10689,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["news.params.ts:15",{"_index":7050,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:17",{"_index":20783,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:22",{"_index":7037,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:25",{"_index":20779,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:30",{"_index":7042,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:32",{"_index":20781,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:37",{"_index":7048,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:44",{"_index":7045,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.permissions",{"_index":15049,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.source",{"_index":15043,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.sourcedescription",{"_index":15044,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.target.id",{"_index":15045,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.targetmodel",{"_index":15046,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.title",{"_index":15040,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updatedat",{"_index":15048,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updater",{"_index":15050,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news[key",{"_index":15197,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news].params.ts",{"_index":23242,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news].response.dto",{"_index":23244,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news_edit",{"_index":15199,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news_sources",{"_index":15007,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["news_sources[number",{"_index":15011,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["newscontroller",{"_index":14947,"title":{"controllers/NewsController.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["newscount",{"_index":15188,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable",{"_index":14990,"title":{"classes/NewsCrudOperationLoggable.html":{}},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.create",{"_index":15184,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.delete",{"_index":15201,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.update",{"_index":15198,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsentities",{"_index":15101,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentities.filter((news",{"_index":15105,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentity",{"_index":15097,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsid",{"_index":15215,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["newslist",{"_index":14978,"title":{},"body":{"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map((news",{"_index":14981,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map(async",{"_index":15191,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newslistresponse",{"_index":14970,"title":{"classes/NewsListResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"controllers/TeamNewsController.html":{}}}],["newslistresponse(dtolist",{"_index":14982,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper",{"_index":14966,"title":{"classes/NewsMapper.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.mapcreatenewstodomain(params",{"_index":14976,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapnewsscopetodomain(scope",{"_index":14980,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.maptologmessagedata(this.news",{"_index":15000,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["newsmapper.maptoresponse(news",{"_index":14977,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapupdatenewstodomain(params",{"_index":14987,"title":{},"body":{"controllers/NewsController.html":{}}}],["newsmodule",{"_index":15063,"title":{"modules/NewsModule.html":{}},"body":{"modules/NewsModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["newspermission",{"_index":15163,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsrepo",{"_index":15068,"title":{"injectables/NewsRepo.html":{}},"body":{"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["newsresponse",{"_index":14971,"title":{"classes/NewsResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{}}}],["newsrule",{"_index":23695,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newsscope",{"_index":15090,"title":{"classes/NewsScope.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{}}}],["newstarget",{"_index":6849,"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":15080,"title":{"interfaces/NewsTargetFilter.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["newstargetmodel",{"_index":6850,"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":6876,"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":6881,"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":6878,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newsuc",{"_index":14968,"title":{"injectables/NewsUc.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newsuc.getrequiredpermissions(ispublished",{"_index":15194,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsuc.getrequiredpermissions(unpublished",{"_index":15186,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsurlparams",{"_index":14952,"title":{"classes/NewsUrlParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsUrlParams.html":{}}}],["newtool",{"_index":9493,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.parameters",{"_index":9497,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.version",{"_index":9499,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newuser",{"_index":23677,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newvar",{"_index":1284,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["nexboard",{"_index":11871,"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/NexboardService.html":{}}}],["nexboard.id",{"_index":15225,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.publiclink",{"_index":15226,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardresponse",{"_index":15222,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardservice",{"_index":14207,"title":{"injectables/NexboardService.html":{}},"body":{"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":{},"injectables/ColumnBoardCopyService.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":{},"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":{},"classes/RecursiveCopyVisitor.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":17398,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["next.handle().pipe(tap",{"_index":8166,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["nextcloud",{"_index":11571,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISchoolProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["nextcloud.client",{"_index":15259,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudclient",{"_index":4585,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudgroups",{"_index":11326,"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":15257,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy",{"_index":4586,"title":{"injectables/NextcloudStrategy.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy.generategroupfoldername(team.id",{"_index":15274,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudtool",{"_index":15287,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ni_",{"_index":18014,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["nice",{"_index":16437,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["node",{"_index":3280,"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":3194,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.entity.ts",{"_index":4059,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["node.entity.ts:10",{"_index":8660,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"entities/RichTextElementNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:12",{"_index":9856,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{}}}],["node.entity.ts:13",{"_index":17485,"title":{},"body":{"entities/RichTextElementNode.html":{}}}],["node.entity.ts:15",{"_index":14344,"title":{},"body":{"entities/LinkElementNode.html":{}}}],["node.entity.ts:16",{"_index":4060,"title":{},"body":{"entities/CardNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:19",{"_index":4774,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:22",{"_index":4772,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:9",{"_index":9857,"title":{},"body":{"entities/FileElementNode.html":{},"entities/LinkElementNode.html":{},"entities/SubmissionContainerElementNode.html":{}}}],["node.js",{"_index":22206,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["node.level",{"_index":3636,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.pathofchildren",{"_index":3638,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo",{"_index":3343,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.repo.ts",{"_index":3622,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:19",{"_index":3628,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:30",{"_index":3630,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:6",{"_index":3625,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:9",{"_index":3626,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.title",{"_index":3363,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["node.usedobuilder(this",{"_index":3270,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["node:fs/promises",{"_index":13697,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["node_env",{"_index":12233,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["node_env=test",{"_index":18581,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nodeclam",{"_index":1302,"title":{},"body":{"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{}}}],["nodeclam().init",{"_index":1319,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["nodeenvtype",{"_index":12236,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["nodejs.timeout",{"_index":17914,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nodeps",{"_index":22151,"title":{},"body":{"dependencies.html":{}}}],["nodeps.git",{"_index":22153,"title":{},"body":{"dependencies.html":{}}}],["nodes",{"_index":3631,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.filter((n",{"_index":3652,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.map((node",{"_index":3640,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nofutureavailabledate",{"_index":19827,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{}}}],["non",{"_index":8244,"title":{},"body":{"injectables/ElementUc.html":{},"classes/MongoPatterns.html":{},"classes/StorageProviderEncryptedStringType.html":{},"license.html":{},"todo.html":{}}}],["noncommercially",{"_index":22527,"title":{},"body":{"license.html":{}}}],["none",{"_index":1602,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CustomLtiProperty.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/LtiTool.html":{},"classes/OauthClientBody.html":{},"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nonemptytargets",{"_index":15208,"title":{},"body":{"injectables/NewsUc.html":{}}}],["nonoptionalparamnames",{"_index":9518,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.includes(name",{"_index":9527,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.some((name",{"_index":9524,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams",{"_index":9516,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams.map((parameter",{"_index":9519,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["normal",{"_index":1952,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"license.html":{}}}],["normalizepassword",{"_index":1710,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizepassword(password",{"_index":1723,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername",{"_index":1711,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername(username",{"_index":1725,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normally",{"_index":22556,"title":{},"body":{"license.html":{}}}],["nosuchbucket",{"_index":17879,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nosuchkey",{"_index":17873,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["not_found",{"_index":15331,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["notation",{"_index":2528,"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":19994,"title":{},"body":{"injectables/TaskUC.html":{}}}],["notfound",{"_index":7771,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["notfounderror",{"_index":14699,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfounderror(`ltitool",{"_index":14703,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfoundexception",{"_index":2644,"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":2687,"title":{},"body":{"entities/Board.html":{}}}],["notfoundexception('could",{"_index":8610,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/TaskCopyUC.html":{}}}],["notfoundexception('no",{"_index":7505,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["notfoundexception('nosuchkey",{"_index":17875,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["notfoundexception('some",{"_index":4119,"title":{},"body":{"injectables/CardService.html":{}}}],["notfoundexception(`school",{"_index":21433,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["notfoundexception(`the",{"_index":10606,"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":3351,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["notfoundexception(`unable",{"_index":15961,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["notfoundexception})@apibody({required",{"_index":4919,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["notfoundexception})@apiresponse({status",{"_index":18635,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notfoundexception})@get(':boardid",{"_index":2920,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@get(':boardid/context",{"_index":2915,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(201)@patch(':contentelementid/content",{"_index":8210,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':boardid",{"_index":2911,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':cardid",{"_index":3987,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':columnid",{"_index":4923,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':contentelementid",{"_index":8201,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':boardid/title",{"_index":2926,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/height",{"_index":4002,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/title",{"_index":4005,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':columnid/title",{"_index":4930,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':submissionitemid",{"_index":3733,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundexception})@httpcode(204)@put(':cardid/position",{"_index":3998,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@put(':columnid/position",{"_index":4927,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@put(':contentelementid/position",{"_index":8205,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@post(':boardid/columns",{"_index":2906,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@post(':cardid/elements",{"_index":3983,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundloggableexception",{"_index":9674,"title":{"classes/NotFoundLoggableException.html":{}},"body":{"injectables/FeathersRosterService.html":{},"injectables/GroupService.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception('userloginmigration",{"_index":21318,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception(contextexternaltool.name",{"_index":9733,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(externaltool.name",{"_index":9728,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(group.name",{"_index":11181,"title":{},"body":{"injectables/GroupService.html":{}}}],["notfoundloggableexception(pseudonym.name",{"_index":9721,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(schoolexternaltool.name",{"_index":9731,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["notfoundloggableexception(userdo.name",{"_index":16386,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["nothing",{"_index":22668,"title":{},"body":{"license.html":{}}}],["notice",{"_index":14409,"title":{},"body":{"injectables/Logger.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["notice(loggable",{"_index":14416,"title":{},"body":{"injectables/Logger.html":{}}}],["notices",{"_index":22378,"title":{},"body":{"license.html":{}}}],["notifies",{"_index":22657,"title":{},"body":{"license.html":{}}}],["notify",{"_index":22653,"title":{},"body":{"license.html":{}}}],["notimplementedexception",{"_index":3228,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"injectables/LessonRule.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":{},"injectables/SubmissionRule.html":{}}}],["notimplementedexception('action",{"_index":14256,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{}}}],["notimplementedexception('copy",{"_index":18836,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('import",{"_index":18855,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('only",{"_index":4747,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["notimplementedexception('repo_or_service_not_implement",{"_index":12151,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["notimplementedexception('rooms",{"_index":17675,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["notimplementedexception(`invalid",{"_index":3288,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["notimplementedexception(`unknown",{"_index":5572,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["notimplementedexception(`unsupported",{"_index":5590,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["notimplementedexception})@post(':token/import')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":18638,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notmigratedusers",{"_index":18368,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notmigratedusers.data.foreach((user",{"_index":18372,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notwithstanding",{"_index":22610,"title":{},"body":{"license.html":{}}}],["nountildate",{"_index":6920,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["november",{"_index":22263,"title":{},"body":{"license.html":{}}}],["now",{"_index":1944,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":11692,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["now.getmonth",{"_index":11693,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["nowplusdays",{"_index":18791,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["nowplusdays(days",{"_index":18812,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["now}ms",{"_index":8168,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["npm",{"_index":22872,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["npx",{"_index":23553,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["null",{"_index":167,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContentElementFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersRosterService.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/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/PseudonymUc.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/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.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":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"entities/FederalStateEntity.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":{},"classes/GroupIdParams.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/PseudonymParams.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":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"entities/SystemEntity.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/UserLoginMigrationEntity.html":{},"classes/UserParams.html":{},"classes/UsersList.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["nullish",{"_index":18932,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["nullorundefined",{"_index":11345,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["nullorundefined(value",{"_index":11346,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["num",{"_index":6373,"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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.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":{},"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":{},"classes/ClassInfoSearchListResponse.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":{},"classes/ExternalToolElement.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":{},"injectables/FeathersRosterService.html":{},"entities/FederalStateEntity.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":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GridElement.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LinkElement.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":{},"injectables/OpenGraphProxyService.html":{},"classes/Page.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/RpcMessageProducer.html":{},"interfaces/S3Config-1.html":{},"interfaces/ScanResult.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":{},"classes/SortHelper.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/TooManyPseudonymsLoggableException.html":{},"classes/ToolConfiguration.html":{},"interfaces/ToolVersion.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"classes/ValidationError.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["number(a.width",{"_index":16446,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["number(b.width",{"_index":16447,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["number(batchsize",{"_index":7933,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["number(matches.groups.number",{"_index":6377,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number(options.pagesize",{"_index":11627,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number(options.skip",{"_index":11649,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number.isnan(this.deletedat.gettime",{"_index":9941,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["numbered",{"_index":22787,"title":{},"body":{"license.html":{}}}],["numberofdrafttasks",{"_index":3453,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberoffailingfilesinbatch",{"_index":7975,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberoffilesinbatch",{"_index":7968,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofplannedtasks",{"_index":3454,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofprocessedfiles",{"_index":7969,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofpublishedtasks",{"_index":3455,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofstudents",{"_index":6732,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["numberofsubmitters",{"_index":12521,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofsubmitterswithgrade",{"_index":12529,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofteachers",{"_index":6735,"title":{},"body":{"classes/CourseFactory.html":{}}}],["numberofteammembers",{"_index":19030,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["numbers",{"_index":14910,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["numerous",{"_index":23334,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nuxt",{"_index":23526,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nvmrc",{"_index":22929,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["o",{"_index":7811,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["o.id",{"_index":3371,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["oauth",{"_index":5442,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.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/NextcloudStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.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":15584,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["oauth.service",{"_index":12661,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/SystemService.html":{}}}],["oauth.service.ts",{"_index":12668,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:13",{"_index":13519,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:15",{"_index":12673,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:23",{"_index":12675,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:50",{"_index":13523,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:9",{"_index":12672,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.uc",{"_index":16118,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauth.uc.ts",{"_index":11407,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:14",{"_index":11417,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:23",{"_index":11427,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:25",{"_index":11426,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:27",{"_index":11419,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:47",{"_index":11428,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:49",{"_index":11424,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:66",{"_index":11421,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth2",{"_index":5438,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ICurrentUser.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"interfaces/OauthCurrentUser.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/RevokeConsentParams.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"dependencies.html":{}}}],["oauth2')@apiokresponse({description",{"_index":21058,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["oauth2.0",{"_index":14522,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["oauth2authorizationbodyparams",{"_index":14479,"title":{"classes/Oauth2AuthorizationBodyParams.html":{}},"body":{"controllers/LoginController.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2clientid",{"_index":9657,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["oauth2config",{"_index":9055,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.baseurl",{"_index":9078,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.clientid",{"_index":9079,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.clientsecret",{"_index":9369,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.frontchannellogouturi",{"_index":9375,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.redirecturis",{"_index":9374,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.scope",{"_index":9370,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.skipconsent",{"_index":9080,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.tokenendpointauthmethod",{"_index":9372,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.type",{"_index":9077,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2migrationparams",{"_index":15497,"title":{"classes/Oauth2MigrationParams.html":{}},"body":{"classes/Oauth2MigrationParams.html":{},"controllers/UserLoginMigrationController.html":{}}}],["oauth2params",{"_index":7287,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2strategy",{"_index":1556,"title":{"injectables/Oauth2Strategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2toolconfig",{"_index":7270,"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":9140,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigcreateparams",{"_index":8618,"title":{"classes/Oauth2ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["oauth2toolconfigentity",{"_index":8683,"title":{"classes/Oauth2ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["oauth2toolconfigfactory",{"_index":7276,"title":{"classes/Oauth2ToolConfigFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.build(customparam",{"_index":7309,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.define(oauth2toolconfig",{"_index":7288,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigresponse",{"_index":9211,"title":{"classes/Oauth2ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["oauth2toolconfigupdate",{"_index":9144,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigupdateparams",{"_index":9142,"title":{"classes/Oauth2ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["oauth2toollaunchstrategy",{"_index":15335,"title":{"injectables/OAuth2ToolLaunchStrategy.html":{}},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["oauth_provisioning_enabled",{"_index":12195,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthadapterservice",{"_index":15394,"title":{"injectables/OauthAdapterService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{}}}],["oauthapimodule",{"_index":15574,"title":{"modules/OauthApiModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthclient",{"_index":9319,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.client_secret",{"_index":16033,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.frontchannel_logout_uri",{"_index":9364,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.redirect_uris",{"_index":9362,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.scope",{"_index":9358,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.token_endpoint_auth_method",{"_index":9360,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclientbody",{"_index":15585,"title":{"classes/OauthClientBody.html":{}},"body":{"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{}}}],["oauthclientid",{"_index":7131,"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":5498,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthconfig",{"_index":11429,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{}}}],["oauthconfig.authendpoint",{"_index":12350,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientid",{"_index":11512,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientsecret",{"_index":12340,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.granttype",{"_index":12346,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.idphint",{"_index":12342,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.issuer",{"_index":12356,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.jwksendpoint",{"_index":12358,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.logoutendpoint",{"_index":12354,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.provider",{"_index":12352,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.redirecturi",{"_index":11513,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.responsetype",{"_index":11510,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.scope",{"_index":11511,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.tokenendpoint",{"_index":12344,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/SystemMapper.html":{}}}],["oauthconfigdto",{"_index":12676,"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":15659,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientid",{"_index":15653,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientsecret",{"_index":15654,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["oauthconfigdto.granttype",{"_index":15657,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.idphint",{"_index":15655,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.issuer",{"_index":15664,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.jwksendpoint",{"_index":15665,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.logoutendpoint",{"_index":15663,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.provider",{"_index":15662,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.redirecturi",{"_index":15656,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.responsetype",{"_index":15660,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.scope",{"_index":15661,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.tokenendpoint",{"_index":15658,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse",{"_index":15666,"title":{"classes/OauthConfigResponse.html":{}},"body":{"classes/OauthConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse.authendpoint",{"_index":15686,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.clientid",{"_index":15681,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.granttype",{"_index":15684,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.idphint",{"_index":15682,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.issuer",{"_index":15691,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.jwksendpoint",{"_index":15692,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.logoutendpoint",{"_index":15690,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.provider",{"_index":15689,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.redirecturi",{"_index":15683,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.responsetype",{"_index":15687,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.scope",{"_index":15688,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.tokenendpoint",{"_index":15685,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigs",{"_index":9355,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthcurrentuser",{"_index":7077,"title":{"interfaces/OauthCurrentUser.html":{}},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"controllers/LoginController.html":{},"injectables/Oauth2Strategy.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/OauthUc.html":{},"injectables/UserService.html":{}}}],["oauthdata",{"_index":13122,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.externalid",{"_index":21339,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.officialschoolnumber",{"_index":21338,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externaluser.externalid",{"_index":21340,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatadto",{"_index":13089,"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":13094,"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":11489,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["oauthgranttype",{"_index":1528,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthgranttype.authorization_code_grant",{"_index":1525,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthloginresponse",{"_index":14484,"title":{"classes/OauthLoginResponse.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/OauthLoginResponse.html":{}}}],["oauthloginstate",{"_index":16150,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.provider",{"_index":16178,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.state",{"_index":16152,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstatedto",{"_index":15721,"title":{"classes/OauthLoginStateDto.html":{}},"body":{"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthloginstatedto(session.oauthloginstate",{"_index":15742,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["oauthloginstatemapper",{"_index":15733,"title":{"classes/OauthLoginStateMapper.html":{}},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["oauthloginstatemapper.mapsessiontodto(session",{"_index":16151,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthmigrationdto",{"_index":13943,"title":{"classes/OauthMigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationerror",{"_index":15339,"title":{"classes/OAuthMigrationError.html":{}},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthmigrationfailed",{"_index":15347,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthmigrationfinalfinish",{"_index":14119,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationfinished",{"_index":14000,"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":13998,"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":13999,"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":1546,"title":{"modules/OauthModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["oauthprocessdto",{"_index":15359,"title":{"classes/OAuthProcessDto.html":{}},"body":{"classes/OAuthProcessDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthprocessdto.jwt",{"_index":16165,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthproviderapimodule",{"_index":15756,"title":{"modules/OauthProviderApiModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthproviderclientcruduc",{"_index":15761,"title":{"injectables/OauthProviderClientCrudUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderconsentflowuc",{"_index":15762,"title":{"injectables/OauthProviderConsentFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthprovidercontroller",{"_index":15768,"title":{"controllers/OauthProviderController.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderloginflowservice",{"_index":12626,"title":{"injectables/OauthProviderLoginFlowService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["oauthproviderloginflowuc",{"_index":15763,"title":{"injectables/OauthProviderLoginFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderlogoutflowuc",{"_index":15764,"title":{"injectables/OauthProviderLogoutFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["oauthprovidermodule",{"_index":15760,"title":{"modules/OauthProviderModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["oauthproviderrequestmapper",{"_index":15981,"title":{"classes/OauthProviderRequestMapper.html":{}},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["oauthproviderrequestmapper.mapcreateacceptloginrequestbody",{"_index":15996,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderresponsemapper",{"_index":15765,"title":{"injectables/OauthProviderResponseMapper.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthproviderservice",{"_index":9283,"title":{"classes/OauthProviderService.html":{}},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthproviderservicemodule",{"_index":8835,"title":{"modules/OauthProviderServiceModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules.html":{}}}],["oauthprovideruc",{"_index":15766,"title":{"injectables/OauthProviderUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthprovisioningenabled",{"_index":12196,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthrejectablebody",{"_index":5432,"title":{"classes/OAuthRejectableBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthrejectablebody:13",{"_index":5459,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:23",{"_index":5468,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:32",{"_index":5470,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:41",{"_index":5472,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:50",{"_index":5476,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthscope",{"_index":12636,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["oauthservice",{"_index":11415,"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":15581,"title":{"controllers/OauthSSOController.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["oauthssoerror",{"_index":11432,"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":13105,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["oauthssoerror('requesting",{"_index":15572,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["oauthssoerror(`requested",{"_index":15429,"title":{},"body":{"injectables/OAuthService.html":{}}}],["oauthssoerror:10",{"_index":15348,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:11",{"_index":21490,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:4",{"_index":15351,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:5",{"_index":21493,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:6",{"_index":15350,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:7",{"_index":21492,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:8",{"_index":15349,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:9",{"_index":21491,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthsystems",{"_index":19473,"title":{},"body":{"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthsystems.find((system",{"_index":21285,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["oauthtoken",{"_index":16181,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthtokendto",{"_index":11435,"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":15426,"title":{"interfaces/OauthTokenResponse.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"interfaces/OauthTokenResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthtokens",{"_index":11442,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{}}}],["oauthuc",{"_index":15579,"title":{"injectables/OauthUc.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["obfuscated",{"_index":10876,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["obfuscated_subject",{"_index":13054,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["obj.id",{"_index":2803,"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/AuthorizationReferenceService.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":{},"injectables/CopyHelperService.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/SystemEntity.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/UserService.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":2513,"title":{},"body":{"classes/BaseFactory.html":{}}}],["object.assign(this",{"_index":3433,"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":2010,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["object.defineproperty(entity",{"_index":8040,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["object.entries(params",{"_index":15196,"title":{},"body":{"injectables/NewsUc.html":{}}}],["object.factory.ts",{"_index":8047,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["object.keys(entity).foreach((key",{"_index":2428,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["object.keys(object).foreach((key",{"_index":2333,"title":{},"body":{"injectables/BBBService.html":{}}}],["object.keys(payload).length",{"_index":2621,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["object.keys(queryordermap",{"_index":9384,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["object.setprototypeof(this",{"_index":1199,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["object.ts",{"_index":1789,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BaseDomainObject.html":{},"classes/DomainObject.html":{}}}],["object.ts:14",{"_index":8044,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:18",{"_index":8043,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:8",{"_index":8042,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:9",{"_index":2447,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["object.values(filerecordparenttype",{"_index":10478,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["object.values(newstargetmodel",{"_index":15009,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{}}}],["object.values(previewinputmimetypes).includes(this.mimetype",{"_index":10096,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["object.values(validationerror.constraints",{"_index":1452,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["object],[object",{"_index":2368,"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":{}}}],["objectid",{"_index":49,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.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":{},"injectables/GroupRepo.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":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["objectid().tohexstring",{"_index":4121,"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/RecursiveCopyVisitor.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{}}}],["objectid().tostring",{"_index":7743,"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":1085,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(accountdto.userid",{"_index":1082,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(domainobject.id",{"_index":2427,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["objectid(domainobject.schoolid",{"_index":4386,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.successor",{"_index":4396,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.year",{"_index":4392,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(entitydo.toolid",{"_index":8983,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(entitydo.userid",{"_index":8984,"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":18687,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["objectid(owneruserid",{"_index":10377,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(parentid",{"_index":10225,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(permissionrefid",{"_index":10381,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(props.columnboardid",{"_index":4881,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["objectid(props.context.id",{"_index":4780,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["objectid(props.contextid",{"_index":12259,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.creatorid",{"_index":9963,"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":10064,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.lockid",{"_index":9967,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.origintoolid",{"_index":7161,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["objectid(props.ownerid",{"_index":9959,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.parentid",{"_index":9957,"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":9992,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["objectid(props.schoolid",{"_index":10061,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(reference.id",{"_index":3367,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["objectid(refid",{"_index":9933,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(schoolid",{"_index":4465,"title":{},"body":{"injectables/ClassesRepo.html":{},"classes/FileRecordScope.html":{}}}],["objectid(systemid",{"_index":926,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["objectid(teacherid",{"_index":4388,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(toolid",{"_index":8965,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(user.id",{"_index":11080,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["objectid(userid",{"_index":921,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["objectid.createfromhexstring(id",{"_index":7563,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.createfromhexstring(props.id",{"_index":7573,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.isvalid(courseid",{"_index":3496,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["objectid.isvalid(id",{"_index":807,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/ImportUserRepo.html":{}}}],["objectid.isvalid(schoolid",{"_index":13015,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["objectid.isvalid(userid",{"_index":13017,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["objectids",{"_index":922,"title":{},"body":{"injectables/AccountRepo.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectids.map((id",{"_index":6570,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["objectives",{"_index":23623,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["objectname",{"_index":12153,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["objects",{"_index":3813,"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":22766,"title":{},"body":{"license.html":{}}}],["obligated",{"_index":22541,"title":{},"body":{"license.html":{}}}],["obligations",{"_index":22449,"title":{},"body":{"license.html":{}}}],["observable",{"_index":2292,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["obsolete",{"_index":21327,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["occasionally",{"_index":22526,"title":{},"body":{"license.html":{}}}],["occur",{"_index":570,"title":{},"body":{"controllers/AccountController.html":{}}}],["occurred",{"_index":4611,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["occurring",{"_index":22665,"title":{},"body":{"license.html":{}}}],["occurs",{"_index":22580,"title":{},"body":{"license.html":{}}}],["ocs",{"_index":11328,"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":11327,"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":15156,"title":{},"body":{"injectables/NewsUc.html":{}}}],["offer",{"_index":22305,"title":{},"body":{"license.html":{}}}],["offered",{"_index":22547,"title":{},"body":{"license.html":{}}}],["offering",{"_index":22530,"title":{},"body":{"license.html":{}}}],["offers",{"_index":22995,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["offical",{"_index":21434,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["official",{"_index":13733,"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":18322,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["officialschoolnumber",{"_index":8452,"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":15344,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["officialschoolnumberfromtarget",{"_index":15345,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["offline",{"_index":7279,"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/AccountServiceDb.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DeleteFilesUc.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["ogs",{"_index":16430,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["oid",{"_index":12060,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["oidc",{"_index":13383,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/LoginResponse-1.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidc.mapper",{"_index":19420,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.mapper.ts",{"_index":19402,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:12",{"_index":19407,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:26",{"_index":19404,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:5",{"_index":19405,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.service",{"_index":13376,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{}}}],["oidc.service.ts",{"_index":19415,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:12",{"_index":19418,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:21",{"_index":19417,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:9",{"_index":19416,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc/oidc.strategy",{"_index":17982,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc/service/oidc",{"_index":17983,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc_context",{"_index":5484,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["oidcconfig",{"_index":12331,"title":{"classes/OidcConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemScope.html":{}}}],["oidcconfig.authorizationurl",{"_index":12409,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientid",{"_index":12405,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientsecret",{"_index":12406,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["oidcconfig.defaultscopes",{"_index":12416,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.idphint",{"_index":12407,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.logouturl",{"_index":12412,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.tokenurl",{"_index":12411,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.userinfourl",{"_index":12414,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.clientsecret",{"_index":19411,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.idphint",{"_index":13457,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcconfigdto",{"_index":13343,"title":{"classes/OidcConfigDto.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["oidcconfigdto.authorizationurl",{"_index":16259,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientid",{"_index":16256,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientsecret",{"_index":16257,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.defaultscopes",{"_index":16263,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.idphint",{"_index":16258,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.logouturl",{"_index":16262,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.parentsystemid",{"_index":16255,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.tokenurl",{"_index":16260,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.userinfourl",{"_index":16261,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidccontextresponse",{"_index":5507,"title":{"classes/OidcContextResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["oidcexternalsubmappername",{"_index":13384,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcidentityprovidermapper",{"_index":13308,"title":{"classes/OidcIdentityProviderMapper.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["oidcinternalname",{"_index":4597,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["oidcmock__base_url",{"_index":23524,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidcmockprovisioningstrategy",{"_index":16290,"title":{"injectables/OidcMockProvisioningStrategy.html":{}},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["oidcmockstrategy",{"_index":16855,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["oidcprovisioningservice",{"_index":16300,"title":{"injectables/OidcProvisioningService.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcprovisioningstrategy",{"_index":16401,"title":{"injectables/OidcProvisioningStrategy.html":{}},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcsystems",{"_index":19475,"title":{},"body":{"injectables/SystemService.html":{}}}],["oidcuserattributemappername",{"_index":13382,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["ok",{"_index":21766,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["okay",{"_index":19843,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["old",{"_index":6333,"title":{},"body":{"injectables/CopyFilesService.html":{},"classes/RecursiveCopyVisitor.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["oldconfig.alias",{"_index":13451,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs",{"_index":13356,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.foreach((oldconfig",{"_index":13455,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.some((oldconfig",{"_index":13450,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["older",{"_index":22328,"title":{},"body":{"license.html":{}}}],["oldparam.name",{"_index":9502,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams",{"_index":9478,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.every((oldparam",{"_index":9515,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((oldparam",{"_index":9500,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((parameter",{"_index":9517,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool",{"_index":9495,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool.parameters",{"_index":9496,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["once",{"_index":17313,"title":{},"body":{"classes/RedirectResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["one",{"_index":9603,"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":{},"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":6738,"title":{},"body":{"classes/CourseFactory.html":{}}}],["oneof",{"_index":4037,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ones",{"_index":6116,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["onetomany",{"_index":6508,"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":{},"classes/UsersList.html":{}}}],["onetomany('coursegroup",{"_index":6485,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["onetomany('dashboardgridelementmodel",{"_index":7578,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["onetomany('submission",{"_index":12456,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('task",{"_index":11886,"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":2641,"title":{},"body":{"entities/Board.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone(undefined",{"_index":18074,"title":{},"body":{"entities/SchoolEntity.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["onetoone({type",{"_index":2631,"title":{},"body":{"entities/Board.html":{}}}],["oneweekago",{"_index":20019,"title":{},"body":{"injectables/TaskUC.html":{}}}],["oneweekago.setdate(oneweekago.getdate",{"_index":20020,"title":{},"body":{"injectables/TaskUC.html":{}}}],["ongoing",{"_index":6835,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["onlyactivecourses",{"_index":6926,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardUc.html":{}}}],["onlyexistingreferences",{"_index":2693,"title":{},"body":{"entities/Board.html":{}}}],["onlyfactories",{"_index":7808,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["onlyoauth",{"_index":19370,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemUc.html":{}}}],["onlyreadcourses",{"_index":20013,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onlywritecoursesids",{"_index":20012,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onmoduledestroy",{"_index":14888,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["onupdate",{"_index":2478,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["open",{"_index":5609,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["open/closed",{"_index":23063,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["openapi",{"_index":12850,"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":19767,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["opencourses",{"_index":19991,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opencourses.map((c",{"_index":19996,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opened",{"_index":20677,"title":{},"body":{"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["opengraphdata",{"_index":5663,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{}}}],["opengraphdata.description",{"_index":5668,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphdata.image",{"_index":5669,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphdata.image.url",{"_index":5671,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphdata.title",{"_index":5666,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["opengraphproxyservice",{"_index":3575,"title":{"injectables/OpenGraphProxyService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/OpenGraphProxyService.html":{}}}],["openid",{"_index":7280,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthLoginResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["opening",{"_index":21669,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["openinnewtab",{"_index":5979,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["openldap",{"_index":23542,"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":22818,"title":{},"body":{"license.html":{}}}],["operated",{"_index":22534,"title":{},"body":{"license.html":{}}}],["operates",{"_index":23299,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["operating",{"_index":22404,"title":{},"body":{"license.html":{}}}],["operation",{"_index":10709,"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":21713,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["operation.error.ts",{"_index":10705,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.error.ts:4",{"_index":10706,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.loggable",{"_index":15174,"title":{},"body":{"injectables/NewsUc.html":{}}}],["operation.loggable.ts",{"_index":14992,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:13",{"_index":14996,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:6",{"_index":14995,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operations",{"_index":23641,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["operator",{"_index":959,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/Scope.html":{},"license.html":{}}}],["operators",{"_index":23294,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["oplogsize",{"_index":23578,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["opportunity",{"_index":22774,"title":{},"body":{"license.html":{}}}],["ops",{"_index":22899,"title":{},"body":{"todo.html":{}}}],["opt/keycloak/bin/kc.sh",{"_index":22958,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optimal",{"_index":13832,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["optimisation",{"_index":23086,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["option",{"_index":22607,"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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/SortHelper.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/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/SubmissionsResponse.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateNewsParams.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":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["optional()@apiproperty",{"_index":16273,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["optionaldatathere",{"_index":23267,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["optionally",{"_index":11708,"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":{},"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/ExternalToolPseudonymRepo.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/ICleanOptions.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":{},"injectables/PseudonymService.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":{},"classes/UsersList.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":{},"license.html":{},"todo.html":{}}}],["options.collection",{"_index":7814,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.do",{"_index":4240,"title":{},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{}}}],["options.do.ts",{"_index":4441,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["options.do.ts:12",{"_index":4445,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.do.ts:6",{"_index":4443,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.enabled",{"_index":1309,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.entity",{"_index":4273,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["options.entity.ts",{"_index":4448,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["options.entity.ts:10",{"_index":4450,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{}}}],["options.everyattendeejoinsmuted",{"_index":21818,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.everyattendejoinsmuted",{"_index":21662,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["options.everybodyjoinsasmoderator",{"_index":21664,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.exchange",{"_index":1313,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.filesservicebaseurl",{"_index":1311,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.hostname",{"_index":1317,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.moderatormustapprovejoinrequests",{"_index":21666,"title":{},"body":{"entities/VideoConference.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.onlyfactories",{"_index":7815,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.order",{"_index":12788,"title":{},"body":{"controllers/ImportUserController.html":{},"injectables/NewsUc.html":{},"controllers/ToolController.html":{}}}],["options.port",{"_index":1324,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["options.response",{"_index":21891,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["options.response.ts",{"_index":21979,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:14",{"_index":21984,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:20",{"_index":21980,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:8",{"_index":21983,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.retrycount",{"_index":11629,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.retrydelay",{"_index":11630,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.routingkey",{"_index":1315,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.skip",{"_index":11648,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.ts",{"_index":11991,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["options.verbose",{"_index":11650,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options?.collection",{"_index":7813,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.context",{"_index":18774,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.exact",{"_index":13602,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.expiresat",{"_index":18775,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.expiresindays",{"_index":18822,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.limit",{"_index":13604,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.order",{"_index":9015,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{}}}],["options?.override",{"_index":7823,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.pagination",{"_index":8985,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["options?.schoolexclusive",{"_index":18818,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.skip",{"_index":13603,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["orchestrate",{"_index":23656,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["orchestrates",{"_index":23104,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["orchestration",{"_index":23145,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["order",{"_index":2144,"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":{},"classes/SortHelper.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":9019,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["order.firstname",{"_index":21540,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.lastname",{"_index":21544,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.params.ts",{"_index":16544,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["order.params.ts:13",{"_index":16547,"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":11776,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["orderedlist",{"_index":17752,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["orderquery",{"_index":21539,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.firstname",{"_index":21541,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.lastname",{"_index":21545,"title":{},"body":{"injectables/UserRepo.html":{}}}],["org",{"_index":5282,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organisation",{"_index":17961,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["organization",{"_index":5059,"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":{},"injectables/GroupRepo.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["organization.organization",{"_index":5150,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organization.resources).concat(this.resources",{"_index":5152,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder",{"_index":5046,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder.addresourcetoorganization(resourceprops",{"_index":5054,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationbuilder.addresourcetoorganization(this.maptasktowebcontentresource(task",{"_index":5061,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationelement.transform",{"_index":5288,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationelements",{"_index":5280,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationid",{"_index":10908,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupDto.html":{}}}],["organizations",{"_index":5101,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["orgid",{"_index":17942,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["origin",{"_index":2074,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["original",{"_index":3303,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ConsentResponse.html":{},"injectables/CourseCopyService.html":{},"classes/LoginResponse-1.html":{},"injectables/PreviewGeneratorService.html":{},"classes/RecursiveCopyVisitor.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["original.acceptasync(this",{"_index":17149,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.alternativetext",{"_index":17164,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.caption",{"_index":17163,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.children.foreach((child",{"_index":17190,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.context",{"_index":17154,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.duedate",{"_index":17183,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.height",{"_index":17161,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.id",{"_index":17168,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.imageurl",{"_index":17178,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.inputformat",{"_index":17181,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.text",{"_index":17180,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.title",{"_index":17153,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["original.url",{"_index":17177,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["originalboard",{"_index":3016,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["originalboard.context.type",{"_index":4746,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["originalboard.getelements",{"_index":3017,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["originalcolumnboardid",{"_index":3062,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ColumnBoardCopyService.html":{}}}],["originalcourse",{"_index":6655,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.color",{"_index":6678,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.getcoursegroupitems().length",{"_index":6689,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.name",{"_index":6670,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalentity",{"_index":3024,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["originallesson",{"_index":2987,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallesson.course",{"_index":14170,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["originallesson.id",{"_index":3057,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallessonid",{"_index":3056,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["originalschooldo",{"_index":18339,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["originaltask",{"_index":2990,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.description",{"_index":19615,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.descriptioninputformat",{"_index":19616,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.id",{"_index":3060,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.name",{"_index":19614,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.teamsubmissions",{"_index":19617,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltaskid",{"_index":3059,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltaskname",{"_index":19645,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["originfilepath",{"_index":10776,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["originid",{"_index":12106,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["originsystemid",{"_index":21414,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["origintool",{"_index":7126,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["origintoolid",{"_index":7129,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["orm",{"_index":6885,"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":23043,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"entities/FederalStateEntity.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":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{}}}],["orm/entitymanager",{"_index":23441,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["orm/issues/1230",{"_index":10052,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["orm/issues/2165",{"_index":12557,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mikro",{"_index":10051,"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/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":10581,"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":{}}}],["orphan",{"_index":5683,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["orphanremoval",{"_index":6486,"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":{},"classes/UsersList.html":{}}}],["os",{"_index":10300,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["os.eol",{"_index":10332,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["other.name.tolocalelowercase",{"_index":8908,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["otherindex",{"_index":8906,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["othermodule",{"_index":23135,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["otherparams",{"_index":19348,"title":{},"body":{"classes/SystemFactory.html":{}}}],["others",{"_index":10870,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["otherwise",{"_index":1588,"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":23199,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":23313,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outdated",{"_index":20499,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"todo.html":{}}}],["outdated.loggable",{"_index":20750,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["outdatedsince",{"_index":12585,"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":23341,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outgoing",{"_index":23115,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["output",{"_index":10877,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"classes/ServerConsole.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["outputformat",{"_index":6246,"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":{}}}],["outside",{"_index":7493,"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":19650,"title":{},"body":{"injectables/TaskCopyUC.html":{},"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":23558,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["overenginiering",{"_index":23084,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["overridden",{"_index":14899,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["override",{"_index":2139,"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/OAuth2ToolLaunchStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["overrideprovider(consolewriterservice",{"_index":20227,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrideprovider(databasemanagementuc",{"_index":20225,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrides",{"_index":8368,"title":{},"body":{"modules/ErrorModule.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["overrides/configures",{"_index":6438,"title":{},"body":{"modules/CoreModule.html":{}}}],["overriding",{"_index":23391,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["overview",{"_index":23000,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["overwrite_setting_show_setup_wizard='completed",{"_index":23615,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["overwritten",{"_index":23393,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["owned",{"_index":22708,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owner",{"_index":9888,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ownerid",{"_index":9918,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ownership",{"_index":15015,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owneruserid",{"_index":10367,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["owns",{"_index":19750,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["p",{"_index":2374,"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":17908,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p.name",{"_index":9530,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["p.sourcepath",{"_index":17894,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p27030:27017",{"_index":23574,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["package",{"_index":22041,"title":{"dependencies.html":{},"properties.html":{}},"body":{"todo.html":{}}}],["packaged",{"_index":22493,"title":{},"body":{"license.html":{}}}],["packages",{"_index":22873,"title":{},"body":{"todo.html":{}}}],["packaging",{"_index":22398,"title":{},"body":{"license.html":{}}}],["pad",{"_index":8414,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["pad.data.padid",{"_index":8416,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padid",{"_index":8411,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padname",{"_index":8412,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padresponse",{"_index":8410,"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/ClassInfoSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/FileRecordListResponse.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/Page.html":{},"classes/PageContentQueryParams.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"injectables/PseudonymService.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":21317,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["page(entitydos",{"_index":8991,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["page(pagecontent",{"_index":11234,"title":{},"body":{"injectables/GroupUc.html":{}}}],["pagecontent",{"_index":11232,"title":{},"body":{"injectables/GroupUc.html":{}}}],["pagecontentdto",{"_index":16458,"title":{"classes/PageContentDto.html":{}},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{}}}],["pagecontentmapper",{"_index":16469,"title":{"injectables/PageContentMapper.html":{}},"body":{"injectables/PageContentMapper.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentqueryparams",{"_index":16478,"title":{"classes/PageContentQueryParams.html":{}},"body":{"classes/PageContentQueryParams.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentresponse",{"_index":16473,"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":{}}}],["pagesize",{"_index":11589,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{}}}],["pagetype",{"_index":16481,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypequery",{"_index":21380,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.pagetype",{"_index":21385,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.sourcesystem",{"_index":21386,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.targetsystem",{"_index":21387,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypes",{"_index":16484,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system",{"_index":21447,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system_mandatory",{"_index":21449,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_target_system",{"_index":21441,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes})@isenum(pagetypes",{"_index":16485,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["paginate",{"_index":9576,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["pagination",{"_index":6612,"title":{},"body":{"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"controllers/GroupController.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":10970,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination.skip",{"_index":10969,"title":{},"body":{"controllers/GroupController.html":{},"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination?.limit",{"_index":6932,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["pagination?.skip",{"_index":6931,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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/GroupController.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/ClassInfoSearchListResponse.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":{},"classes/ClassInfoSearchListResponse.html":{}}}],["paginationresponse:136",{"_index":15003,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["paginationresponse:14",{"_index":1023,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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/ClassInfoSearchListResponse.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/ClassInfoSearchListResponse.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":21349,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["paginationresponse:63",{"_index":10124,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["paginationresponse:68",{"_index":6825,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["paginationresponse:7",{"_index":9266,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["paginationresponse:71",{"_index":12833,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["paginationresponse:74",{"_index":19693,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["paginationresponse:91",{"_index":6187,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["pairwise",{"_index":9377,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["papaparse",{"_index":22161,"title":{},"body":{"dependencies.html":{}}}],["paper",{"_index":22845,"title":{},"body":{"license.html":{}}}],["paragraph",{"_index":22645,"title":{},"body":{"license.html":{}}}],["paragraphs",{"_index":22717,"title":{},"body":{"license.html":{}}}],["parallel",{"_index":23439,"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":{},"controllers/GroupController.html":{},"classes/GuardAgainst.html":{},"interfaces/ICleanOptions.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/PseudonymController.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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('oauthclientid",{"_index":16180,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["param('scope",{"_index":21854,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('scopeid",{"_index":21855,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('token",{"_index":10271,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["param)).rejects.tothrow(badrequestexception",{"_index":23383,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param)).tothrow(badrequestexception",{"_index":23381,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param.builder.ts",{"_index":6280,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.builder.ts:6",{"_index":6283,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.default",{"_index":8910,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["param.description",{"_index":9100,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.displayname",{"_index":8900,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.isoptional",{"_index":5417,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.location",{"_index":9102,"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":5410,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["param.regex",{"_index":5424,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.regexcomment",{"_index":9101,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.scope",{"_index":5411,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.startswith",{"_index":265,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["param.type",{"_index":5423,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["paramdisplayat",{"_index":15181,"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":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parameter.do.ts",{"_index":7206,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:10",{"_index":7209,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:12",{"_index":7214,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:14",{"_index":7215,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:16",{"_index":7216,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:18",{"_index":7212,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:20",{"_index":7217,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:22",{"_index":7208,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:4",{"_index":7213,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:6",{"_index":7211,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:8",{"_index":7210,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.entity.ts",{"_index":7233,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:10",{"_index":7237,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:13",{"_index":7236,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:16",{"_index":7235,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:19",{"_index":7240,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:22",{"_index":7241,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:25",{"_index":7242,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:28",{"_index":7238,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:31",{"_index":7243,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:34",{"_index":7234,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:7",{"_index":7239,"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":8628,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["parameter.params.ts",{"_index":7324,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:13",{"_index":7335,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:18",{"_index":7329,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:23",{"_index":7327,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:28",{"_index":7326,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:33",{"_index":7336,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:38",{"_index":7337,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:42",{"_index":7340,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:46",{"_index":7334,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:50",{"_index":7343,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:54",{"_index":7331,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.response",{"_index":5746,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["parameter.response.ts",{"_index":7348,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:10",{"_index":7354,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:13",{"_index":7352,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:16",{"_index":7351,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:19",{"_index":7350,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:22",{"_index":7355,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:25",{"_index":7356,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:28",{"_index":7357,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:31",{"_index":7353,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:34",{"_index":7358,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:37",{"_index":7349,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.scope",{"_index":291,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolConfigurationService.html":{}}}],["parameter/custom",{"_index":7232,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter_type_not_implemented",{"_index":16517,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parameterkeys",{"_index":14879,"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":14883,"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/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/AuthenticationValues.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupUserResponse.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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/SubmissionsResponse.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["parameters.'})@apiresponse({status",{"_index":21714,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["parameters.map((param",{"_index":14880,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameterstoinclude",{"_index":184,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["parameterstoinclude.map(async",{"_index":295,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parametertype",{"_index":16516,"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/BoardDoCopyService.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":{},"controllers/GroupController.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IToolLaunchStrategy.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/JwtTestFactory.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.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":{},"classes/PreviewBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"controllers/PseudonymController.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/ToolReferenceController.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":{},"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":3935,"title":{},"body":{"injectables/CalendarService.html":{}}}],["params.append(key",{"_index":2334,"title":{},"body":{"injectables/BBBService.html":{}}}],["params.availabledate",{"_index":19732,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.challenge",{"_index":15923,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client",{"_index":15945,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client_name",{"_index":15908,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.clientid",{"_index":9207,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["params.confirmpassword",{"_index":589,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.content",{"_index":15058,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.contents",{"_index":14199,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contents.foreach((element",{"_index":14200,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contextexternaltoolid",{"_index":20358,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contextid",{"_index":20351,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.contexttype",{"_index":20352,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{}}}],["params.copyname",{"_index":19613,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["params.course",{"_index":14198,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.courseid",{"_index":6420,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.description",{"_index":19731,"title":{},"body":{"classes/TaskMapper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params.displayat",{"_index":15059,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.dto",{"_index":23110,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["params.duedate",{"_index":19733,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.elements",{"_index":17713,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params.enablemigrationstart",{"_index":14869,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.everyattendeejoinsmuted",{"_index":21861,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.everybodyjoinsasmoderator",{"_index":21862,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.externalid",{"_index":13975,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.externaltoolid",{"_index":20474,"title":{},"body":{"controllers/ToolController.html":{}}}],["params.features",{"_index":13976,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.federalstate",{"_index":13986,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.filerecordid",{"_index":10563,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["params.find",{"_index":297,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.flagged",{"_index":12803,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.from",{"_index":7388,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.groupid",{"_index":10975,"title":{},"body":{"controllers/GroupController.html":{}}}],["params.hidden",{"_index":14202,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.id",{"_index":13974,"title":{},"body":{"classes/LegacySchoolDo.html":{},"controllers/OauthProviderController.html":{}}}],["params.inmaintenancesince",{"_index":13977,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.interface",{"_index":211,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["params.interface.ts",{"_index":12575,"title":{},"body":{"interfaces/IToolLaunchParams.html":{}}}],["params.inusermigration",{"_index":13978,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.language",{"_index":21640,"title":{},"body":{"injectables/UserUc.html":{}}}],["params.lessonid",{"_index":6421,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.limit",{"_index":15906,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.logouturl",{"_index":21741,"title":{},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.map((parameter",{"_index":287,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.moderatormustapprovejoinrequests",{"_index":21863,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.name",{"_index":9206,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/TaskMapper.html":{}}}],["params.oauthmigrationfinalfinish",{"_index":14867,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationfinished",{"_index":14865,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationmandatory",{"_index":14863,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationpossible",{"_index":14861,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.officialschoolnumber",{"_index":13980,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.offset",{"_index":15907,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.originalboard",{"_index":3025,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["params.owner",{"_index":15909,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.parenttype",{"_index":18425,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.password",{"_index":588,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.previewoptions",{"_index":16673,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["params.previewparams.forceupdate",{"_index":16723,"title":{},"body":{"injectables/PreviewService.html":{}}}],["params.previousexternalid",{"_index":13979,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.pseudonym",{"_index":16938,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["params.schoolexternaltoolid",{"_index":20355,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["params.schoolid",{"_index":20348,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["params.schoolyear",{"_index":13981,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.sourceparentid",{"_index":18424,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.systemid",{"_index":16156,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["params.systems",{"_index":13983,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.target",{"_index":15178,"title":{},"body":{"injectables/NewsUc.html":{}}}],["params.targetid",{"_index":15061,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetmodel",{"_index":15060,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetparentid",{"_index":18427,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["params.taskid",{"_index":19013,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["params.title",{"_index":7394,"title":{},"body":{"controllers/DashboardController.html":{},"classes/NewsMapper.html":{}}}],["params.to",{"_index":7389,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.ts",{"_index":4429,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.ts:7",{"_index":11052,"title":{},"body":{"classes/GroupIdParams.html":{},"classes/PseudonymParams.html":{}}}],["params.userid",{"_index":12799,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.userloginmigrationid",{"_index":13985,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.visibility",{"_index":17711,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params?.accountid",{"_index":7019,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.aud",{"_index":7015,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.external_sub",{"_index":7020,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.iss",{"_index":7014,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.privatekey",{"_index":7022,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.sub",{"_index":7012,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params].ts",{"_index":23171,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["paranoid",{"_index":1139,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["parent",{"_index":3339,"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":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.addchild(card",{"_index":4123,"title":{},"body":{"injectables/CardService.html":{}}}],["parent.addchild(column",{"_index":4979,"title":{},"body":{"injectables/ColumnService.html":{}}}],["parent.addchild(element",{"_index":5615,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["parent.children.findindex((obj",{"_index":17304,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.children.foreach((child",{"_index":17303,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.getstudentids",{"_index":11915,"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":12490,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.id",{"_index":9976,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["parent.removechild(domainobject",{"_index":3414,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["parentcourseid",{"_index":19643,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["parentdata",{"_index":17264,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.boardnode",{"_index":17273,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.position",{"_index":17274,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentid",{"_index":3610,"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":{},"classes/SchoolSpecificFileCopyServiceImpl.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":3613,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/TaskRepo.html":{}}}],["parentids.courseids",{"_index":19811,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.creatorid",{"_index":19809,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.lessonids",{"_index":19813,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope",{"_index":19808,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bycourseids(parentids.courseids",{"_index":19812,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bylessonids(parentids.lessonids",{"_index":19814,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.byonlycreatorid(parentids.creatorid",{"_index":19810,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentmeetingid",{"_index":2163,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["parentname",{"_index":18697,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["parentnode",{"_index":17248,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentparams",{"_index":14161,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentparams.courseid",{"_index":14168,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentpermission",{"_index":14238,"title":{},"body":{"injectables/LessonRule.html":{}}}],["parentpermission(user",{"_index":14250,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parentpropertypath",{"_index":1441,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["parentrule",{"_index":23700,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["parents",{"_index":4749,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/TaskRepo.html":{}}}],["parentsfinished",{"_index":19775,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bycourseids(parentids.finishedcourseids",{"_index":19776,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bylessonids(parentids.lessonidsoffinishedcourses",{"_index":19777,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsmap",{"_index":17240,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentsopen",{"_index":19772,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bycourseids(parentids.opencourseids",{"_index":19773,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bylessonids(parentids.lessonidsofopencourses",{"_index":19774,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsystemid",{"_index":16246,"title":{},"body":{"classes/OidcConfigDto.html":{},"classes/SystemOidcMapper.html":{}}}],["parenttype",{"_index":6217,"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/RecursiveCopyVisitor.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":23215,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parsed",{"_index":23241,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parseobjectidpipe",{"_index":23217,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parser",{"_index":22094,"title":{},"body":{"dependencies.html":{}}}],["part",{"_index":1939,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"classes/ImportUserScope.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.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":12045,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["partialtype",{"_index":20775,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["participantcount",{"_index":2224,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["particular",{"_index":19845,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{}}}],["parties",{"_index":22371,"title":{},"body":{"license.html":{}}}],["parts",{"_index":22416,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["party",{"_index":22535,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["party's",{"_index":22685,"title":{},"body":{"license.html":{}}}],["pascalcase",{"_index":23200,"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":23659,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["passport",{"_index":13158,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["passportmodule",{"_index":1561,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["passportstrategy",{"_index":13167,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passportstrategy(strategy",{"_index":13162,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passthrough",{"_index":6632,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FwuLearningContentsController.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.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/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":16537,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:15",{"_index":16542,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:25",{"_index":16541,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.trim",{"_index":1775,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["passwordnew",{"_index":16526,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordold",{"_index":16527,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordpattern",{"_index":474,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["passwordpolicy",{"_index":13285,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["past",{"_index":6859,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["paste",{"_index":23460,"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":20829,"title":{},"body":{"controllers/UserController.html":{}}}],["patch(':boardid/title",{"_index":2949,"title":{},"body":{"controllers/BoardController.html":{}}}],["patch(':cardid/height",{"_index":4029,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':cardid/title",{"_index":4032,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':columnid/title",{"_index":4940,"title":{},"body":{"controllers/ColumnController.html":{}}}],["patch(':contentelementid/content",{"_index":8219,"title":{},"body":{"controllers/ElementController.html":{}}}],["patch(':dashboardid/element",{"_index":7374,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':dashboardid/moveelement",{"_index":7369,"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":12771,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':importuserid/match",{"_index":12763,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':newsid",{"_index":14964,"title":{},"body":{"controllers/NewsController.html":{}}}],["patch(':roomid/board/order",{"_index":17698,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':roomid/elements/:elementid/visibility",{"_index":17695,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':submissionitemid",{"_index":3747,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["patch(':taskid/finish",{"_index":19558,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/restore",{"_index":19561,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/revertpublished",{"_index":19564,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch('consentrequest/:challenge",{"_index":15934,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('loginrequest/:challenge",{"_index":15921,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('logoutrequest/:challenge",{"_index":15925,"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":4629,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions')@apiresponse({status",{"_index":4609,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch(path",{"_index":1669,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patch(subpath",{"_index":1668,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patchconsentrequest",{"_index":15811,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["patchconsentrequest(challenge",{"_index":15819,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["patchconsentrequest(params",{"_index":15875,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchelementvisibility",{"_index":17683,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchelementvisibility(urlparams",{"_index":17694,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchgroup",{"_index":7364,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroup(urlparams",{"_index":7371,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroupparams",{"_index":7373,"title":{"classes/PatchGroupParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/PatchGroupParams.html":{}}}],["patching",{"_index":16522,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["patchlanguage",{"_index":21578,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchlanguage(userid",{"_index":21596,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchloginrequest",{"_index":15851,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(currentuserid",{"_index":15975,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(params",{"_index":15878,"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":17684,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderingofelements(urlparams",{"_index":17697,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderparams",{"_index":16543,"title":{"classes/PatchOrderParams.html":{}},"body":{"classes/PatchOrderParams.html":{},"controllers/RoomsController.html":{}}}],["patchvisibilityparams",{"_index":16548,"title":{"classes/PatchVisibilityParams.html":{}},"body":{"classes/PatchVisibilityParams.html":{},"controllers/RoomsController.html":{}}}],["patent",{"_index":22644,"title":{},"body":{"license.html":{}}}],["patents",{"_index":22703,"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":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.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":10343,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["path.parse(this.name",{"_index":10111,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["path.replace(':token",{"_index":1387,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["path.slice(1",{"_index":1688,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["path.targetpath",{"_index":17901,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path_separator",{"_index":3597,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathobjects",{"_index":17904,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathobjects.filter((p",{"_index":17910,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathofchildren",{"_index":3615,"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/OAuth2ToolLaunchStrategy.html":{}}}],["pathproperties.find",{"_index":267,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathproperties.length",{"_index":246,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathqueries",{"_index":3639,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["pathqueries.length",{"_index":3641,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["paths",{"_index":10303,"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":17890,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((p",{"_index":17905,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((path",{"_index":16719,"title":{},"body":{"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["paths.map(async",{"_index":17898,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathtofile",{"_index":16660,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["path}${id}${path_separator",{"_index":3621,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/LinkElementContent.html":{},"classes/LinkElementResponse.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":{},"classes/UsersList.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":23289,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["pattern.test(firstchar",{"_index":6593,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["pattern_login_from_dn",{"_index":12032,"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/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/RpcMessageProducer.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":18633,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["payload.completed",{"_index":19101,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["payload.parentid",{"_index":18720,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.parenttype",{"_index":18719,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.response",{"_index":18748,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["payload.response.ts",{"_index":18714,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:11",{"_index":18718,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:14",{"_index":18717,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:4",{"_index":18716,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.ts",{"_index":7024,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["payload[property.name",{"_index":2620,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["payment",{"_index":22746,"title":{},"body":{"license.html":{}}}],["peer",{"_index":22543,"title":{},"body":{"license.html":{}}}],["peers",{"_index":22546,"title":{},"body":{"license.html":{}}}],["pem",{"_index":7005,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["pending",{"_index":10028,"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":8252,"title":{},"body":{"injectables/ElementUc.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["perf_hooks",{"_index":18347,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["perfectly",{"_index":23344,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["performance",{"_index":18346,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["performance.now",{"_index":18365,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["performing",{"_index":14998,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"license.html":{}}}],["period",{"_index":18350,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["period.entity",{"_index":11045,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["period.entity.ts",{"_index":11338,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["period.entity.ts:12",{"_index":11341,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["period.entity.ts:15",{"_index":11340,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["permanently",{"_index":22652,"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":{},"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":{},"injectables/GroupUc.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":{},"modules/ToolApiModule.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":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission'})@apiresponse({status",{"_index":4615,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permission(s",{"_index":23661,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_create",{"_index":18839,"title":{},"body":{"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_edit",{"_index":23691,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_view",{"_index":8110,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["permission.create_user",{"_index":23676,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.entity",{"_index":9916,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.entity.ts",{"_index":9980,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["permission.entity.ts:18",{"_index":9987,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:21",{"_index":9989,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:24",{"_index":9990,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:27",{"_index":9986,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:30",{"_index":9985,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:33",{"_index":9984,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.enum",{"_index":23719,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.group_list",{"_index":11227,"title":{},"body":{"injectables/GroupUc.html":{}}}],["permission.homework_create",{"_index":18841,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.includes('news",{"_index":15213,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.join_meeting",{"_index":21950,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.news_create",{"_index":15180,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_edit",{"_index":15176,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_view",{"_index":15175,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.nextcloud_user",{"_index":15993,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["permission.oauth_client_edit",{"_index":15801,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.oauth_client_view",{"_index":15798,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.refid.equals(refobjectid",{"_index":9936,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.school_create",{"_index":23672,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.start_meeting",{"_index":21949,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["permission.task_dashboard_teacher_view_v3",{"_index":19967,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.task_dashboard_view_v3",{"_index":19968,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.tool_admin",{"_index":9407,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["permission.topic_create",{"_index":18840,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.topic_edit",{"_index":14306,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.topic_view",{"_index":14304,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.user_login_migration_admin",{"_index":4497,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["permissioncontext",{"_index":19244,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["permissioncontexts.create",{"_index":23669,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissionmapper",{"_index":4693,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionmapping",{"_index":21876,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["permissionmapping[bbbrole",{"_index":21882,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["permissionmapping[role",{"_index":21933,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["permissionrefid",{"_index":10370,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["permissions",{"_index":1849,"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/INewsProperties.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":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissions(+share",{"_index":4617,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissions.body.params",{"_index":4623,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.body.params.ts",{"_index":20082,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:11",{"_index":20087,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:15",{"_index":20083,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:19",{"_index":20084,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:23",{"_index":20086,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:7",{"_index":20085,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.create",{"_index":4575,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.delete",{"_index":4576,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.dto",{"_index":4546,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.dto.ts",{"_index":20088,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:10",{"_index":20089,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["permissions.dto.ts:2",{"_index":20092,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:4",{"_index":20093,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:6",{"_index":20090,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:8",{"_index":20091,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.every((p",{"_index":9607,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.filter((permission",{"_index":15212,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permissions.includes(p",{"_index":1851,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["permissions.length",{"_index":9601,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.mapper",{"_index":4642,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["permissions.mapper.ts",{"_index":20096,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.mapper.ts:12",{"_index":20099,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.read",{"_index":4573,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.refid",{"_index":9919,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permissions.share",{"_index":4577,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.write",{"_index":4574,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissionsbody",{"_index":4607,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissionsdto",{"_index":4699,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionservice",{"_index":440,"title":{"injectables/PermissionService.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/PermissionService.html":{}}}],["permissive",{"_index":22476,"title":{},"body":{"license.html":{}}}],["permit",{"_index":22506,"title":{},"body":{"license.html":{}}}],["permits",{"_index":22323,"title":{},"body":{"license.html":{}}}],["permitted",{"_index":22271,"title":{},"body":{"license.html":{}}}],["permittedcourses",{"_index":20002,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedlessons",{"_index":20018,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedmatch",{"_index":21521,"title":{},"body":{"injectables/UserRepo.html":{}}}],["permittedsubmissions",{"_index":19239,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["perpetuity",{"_index":22585,"title":{},"body":{"license.html":{}}}],["persist",{"_index":7128,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"injectables/DashboardRepo.html":{},"interfaces/ICollectionFilePath.html":{},"entities/LtiTool.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["persist(entity",{"_index":7735,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush",{"_index":7729,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush(entity",{"_index":7737,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persisted",{"_index":13730,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["persistent",{"_index":1383,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["person",{"_index":17964,"title":{},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["personal",{"_index":22555,"title":{},"body":{"license.html":{}}}],["personenkontext",{"_index":17969,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["personenkontexte",{"_index":17997,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["personenstatus",{"_index":17970,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["perspective",{"_index":23642,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pertinent",{"_index":22764,"title":{},"body":{"license.html":{}}}],["physical",{"_index":22513,"title":{},"body":{"license.html":{}}}],["physically",{"_index":22525,"title":{},"body":{"license.html":{}}}],["pickimage",{"_index":16422,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["pickimage(images",{"_index":16425,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["pid",{"_index":17998,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["piece",{"_index":23061,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["pieces",{"_index":22296,"title":{},"body":{"license.html":{}}}],["pilot",{"_index":21393,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["pipe",{"_index":1273,"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":21652,"title":{},"body":{"modules/ValidationModule.html":{}}}],["pipeline",{"_index":10379,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{},"injectables/UserRepo.html":{}}}],["pipeline.push",{"_index":21546,"title":{},"body":{"injectables/UserRepo.html":{}}}],["pipes",{"_index":23188,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["pkcs1",{"_index":7004,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["place",{"_index":19838,"title":{},"body":{"injectables/TaskRepo.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["placeholder",{"_index":11677,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholder.length",{"_index":11815,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholders",{"_index":11842,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["placeholdervalue",{"_index":11821,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["places",{"_index":23097,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plain",{"_index":3814,"title":{},"body":{"injectables/BsonConverter.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["plaintextcontent",{"_index":1496,"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":1494,"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":10548,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["plaintoclass(filerecordparams",{"_index":10564,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["player",{"_index":11377,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["please",{"_index":2439,"title":{},"body":{"injectables/BaseDORepo.html":{},"entities/Board.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"injectables/FeathersRosterService.html":{},"injectables/FileRecordRepo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PermissionService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":23465,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["plus",{"_index":22689,"title":{},"body":{"license.html":{}}}],["png",{"_index":8830,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["point",{"_index":7039,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["pointer",{"_index":22840,"title":{},"body":{"license.html":{}}}],["pointing",{"_index":3035,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["policy",{"_index":23738,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pool",{"_index":22190,"title":{},"body":{"dependencies.html":{}}}],["populate",{"_index":4659,"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":19758,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["populateboard",{"_index":3664,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populateboard(board",{"_index":3672,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populated",{"_index":3429,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["populatereferences",{"_index":19151,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populatereferences(submissions",{"_index":19159,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populateroles",{"_index":20174,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["populateroles(roles",{"_index":20176,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["port",{"_index":1323,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/FilesStorageModule.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"interfaces/ScanResult.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["portion",{"_index":22550,"title":{},"body":{"license.html":{}}}],["pos",{"_index":1680,"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":7491,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["pos.y",{"_index":7494,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position",{"_index":2767,"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/ExternalToolElement.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":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LinkElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["position.groupindex",{"_index":7537,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position.x",{"_index":7626,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["position.y",{"_index":7627,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["positionfromgridindex",{"_index":7408,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["positionfromgridindex(index",{"_index":7443,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["possesses",{"_index":22522,"title":{},"body":{"license.html":{}}}],["possession",{"_index":22491,"title":{},"body":{"license.html":{}}}],["possibility",{"_index":22820,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["possible",{"_index":2537,"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":2929,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.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":20476,"title":{},"body":{"controllers/ToolController.html":{}}}],["post('/:externaltoolid')@apiokresponse({description",{"_index":20456,"title":{},"body":{"controllers/ToolController.html":{}}}],["post(':boardid/columns",{"_index":2955,"title":{},"body":{"controllers/BoardController.html":{}}}],["post(':cardid/elements",{"_index":4044,"title":{},"body":{"controllers/CardController.html":{}}}],["post(':columnid/cards",{"_index":4945,"title":{},"body":{"controllers/ColumnController.html":{}}}],["post(':contentelementid/submissions",{"_index":8225,"title":{},"body":{"controllers/ElementController.html":{}}}],["post(':roomid/copy",{"_index":17714,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':roomid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17686,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':scope/:scopeid",{"_index":21853,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':scope/:scopeid')@apioperation({summary",{"_index":21839,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':taskid/copy",{"_index":19587,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':taskid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":19547,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':token/import",{"_index":18663,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["post('clients",{"_index":15911,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["post('close",{"_index":21111,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('close')@apiunprocessableentityresponse({description",{"_index":21037,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('export",{"_index":7837,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('export/:collectionname",{"_index":7834,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('ldap",{"_index":14491,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('lessons/:lessonid/copy",{"_index":17718,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('lessons/:lessonid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17689,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('local",{"_index":14496,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('migrate",{"_index":12759,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["post('oauth2",{"_index":14500,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('seed",{"_index":13633,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["post('seed/:collectionname",{"_index":7840,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('start",{"_index":21101,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('start')@apiunprocessableentityresponse({description",{"_index":21076,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('startsync",{"_index":12746,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('startusermigration",{"_index":12767,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('sync",{"_index":7846,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post()@apicreatedresponse({description",{"_index":20387,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["post(`${this.options.uri}${path",{"_index":1278,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(`${this.options.uri}/api/v1/login",{"_index":1285,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(path",{"_index":1277,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{}}}],["post(subpath",{"_index":1670,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["post.params.ts",{"_index":5820,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:10",{"_index":5832,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:14",{"_index":5822,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:15",{"_index":18111,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:18",{"_index":5824,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:22",{"_index":18109,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:23",{"_index":5826,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:26",{"_index":18112,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:30",{"_index":5831,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:34",{"_index":5834,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["postasadmin(path",{"_index":1258,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["postloginredirect",{"_index":15408,"title":{},"body":{"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"classes/SSOLoginQuery.html":{},"injectables/UserMigrationService.html":{}}}],["potential",{"_index":6664,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["potentially",{"_index":23751,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["povider",{"_index":22892,"title":{},"body":{"todo.html":{}}}],["power",{"_index":22461,"title":{},"body":{"license.html":{}}}],["powershell",{"_index":23517,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["pr",{"_index":22236,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["practical",{"_index":22283,"title":{},"body":{"license.html":{}}}],["practice",{"_index":22721,"title":{},"body":{"license.html":{}}}],["practices",{"_index":23474,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["practices/layers/orm",{"_index":22897,"title":{},"body":{"todo.html":{}}}],["preamble",{"_index":22274,"title":{},"body":{"license.html":{}}}],["precise",{"_index":4143,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{}}}],["preconditions",{"_index":22201,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["predecessor",{"_index":22686,"title":{},"body":{"license.html":{}}}],["predefined",{"_index":23263,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["preexisting",{"_index":23323,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["preferences",{"_index":12586,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["preferred",{"_index":22389,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["prefetch",{"_index":17086,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefetchcount",{"_index":17089,"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/GroupController.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/PseudonymController.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/ToolReferenceController.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":11602,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["premature",{"_index":23085,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["preparation",{"_index":23343,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepare",{"_index":13889,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["preparebbbcreateconfigbuilder",{"_index":21780,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["preparebbbcreateconfigbuilder(scope",{"_index":21790,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["prepared",{"_index":23350,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepended",{"_index":22227,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prerendering",{"_index":4138,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["present",{"_index":22781,"title":{},"body":{"license.html":{}}}],["presentationurl",{"_index":2247,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["presents",{"_index":22384,"title":{},"body":{"license.html":{}}}],["preservation",{"_index":22617,"title":{},"body":{"license.html":{}}}],["preset",{"_index":21668,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["prettier",{"_index":23020,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["prevent",{"_index":2473,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["prevented",{"_index":22578,"title":{},"body":{"license.html":{}}}],["prevention",{"_index":1769,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["preview",{"_index":6249,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["preview.producer",{"_index":16651,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["preview.resize(width",{"_index":16678,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview.stream(format",{"_index":16679,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["preview_not_possible_scan_status_blocked",{"_index":10036,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_error",{"_index":10034,"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":10035,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_wrong_mime_type",{"_index":10037,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_possible",{"_index":10032,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewactionsloggable",{"_index":16573,"title":{"classes/PreviewActionsLoggable.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewgeneratorconsumer.generatepreview",{"_index":16634,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:end",{"_index":16675,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewgeneratorservice.generatepreview:start",{"_index":16669,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewactionsloggable('previewproducer.generate:finished",{"_index":16692,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewactionsloggable('previewproducer.generate:started",{"_index":16690,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["previewbuilder",{"_index":16584,"title":{"classes/PreviewBuilder.html":{}},"body":{"classes/PreviewBuilder.html":{},"injectables/PreviewService.html":{}}}],["previewbuilder.buildparams(filerecord",{"_index":16716,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewbuilder.buildpayload(params",{"_index":16730,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewconfig",{"_index":16601,"title":{"interfaces/PreviewConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["previewfileoptions",{"_index":16577,"title":{"interfaces/PreviewFileOptions.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewfileparams",{"_index":10774,"title":{"interfaces/PreviewFileParams.html":{}},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["previewfilepath",{"_index":10777,"title":{},"body":{"interfaces/GetFileResponse.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"injectables/PreviewService.html":{}}}],["previewgeneratoramqpmodule",{"_index":16607,"title":{"modules/PreviewGeneratorAMQPModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules.html":{}}}],["previewgeneratorbuilder",{"_index":16612,"title":{"classes/PreviewGeneratorBuilder.html":{}},"body":{"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorbuilder.buildfile(preview",{"_index":16672,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorconsumer",{"_index":16617,"title":{"injectables/PreviewGeneratorConsumer.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewgeneratorconsumermodule",{"_index":16610,"title":{"modules/PreviewGeneratorConsumerModule.html":{}},"body":{"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules.html":{}}}],["previewgeneratorconsumermodule.register",{"_index":16611,"title":{},"body":{"modules/PreviewGeneratorAMQPModule.html":{}}}],["previewgeneratorproducermodule",{"_index":10585,"title":{"modules/PreviewGeneratorProducerModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules.html":{}}}],["previewgeneratorservice",{"_index":16621,"title":{"injectables/PreviewGeneratorService.html":{}},"body":{"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{}}}],["previewgeneratorservice(storageclient",{"_index":16641,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["previewinputmimetypes",{"_index":10024,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewmoduleconfig",{"_index":16604,"title":{"interfaces/PreviewModuleConfig.html":{}},"body":{"interfaces/PreviewConfig.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewProducer.html":{}}}],["previewoptions",{"_index":16580,"title":{"interfaces/PreviewOptions.html":{}},"body":{"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewoptions.format",{"_index":16582,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoptions.width",{"_index":16583,"title":{},"body":{"classes/PreviewActionsLoggable.html":{}}}],["previewoutputmimetypes",{"_index":6230,"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":{}}}],["previewoutputmimetypes'})@isoptional()@isenum(previewoutputmimetypes",{"_index":16681,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previewparams",{"_index":6244,"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":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["previewparams.outputformat",{"_index":16727,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewparams.width",{"_index":16600,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["previewproducer",{"_index":16649,"title":{"injectables/PreviewProducer.html":{}},"body":{"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{}}}],["previewresponsemessage",{"_index":16606,"title":{"interfaces/PreviewResponseMessage.html":{}},"body":{"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.html":{}}}],["previewservice",{"_index":10497,"title":{"injectables/PreviewService.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["previewstatus",{"_index":6190,"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":10105,"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":10100,"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":10108,"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":10107,"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":10102,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_possible",{"_index":10103,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewwidth",{"_index":6231,"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":16683,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previous",{"_index":22688,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["previousexternalid",{"_index":12183,"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":5516,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["previousteachers",{"_index":5089,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["price",{"_index":22292,"title":{},"body":{"license.html":{}}}],["primarily",{"_index":22748,"title":{},"body":{"license.html":{}}}],["primary",{"_index":771,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{}}}],["primarykey",{"_index":2456,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["principle",{"_index":23064,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["principles",{"_index":23056,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prior",{"_index":22654,"title":{},"body":{"license.html":{}}}],["privacy",{"_index":8311,"title":{},"body":{"classes/ErrorLoggable.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["privacy_permission",{"_index":7122,"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":{}}}],["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":16533,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["privacyprotect()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":16539,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["privacyprotected",{"_index":8320,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["private",{"_index":111,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.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/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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":{},"classes/SchoolSpecificFileCopyServiceImpl.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.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":15616,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["privatedevice",{"_index":13208,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["privatekey",{"_index":6995,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["probably",{"_index":3647,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["problem",{"_index":5463,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"modules/ToolLaunchModule.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["problems",{"_index":22784,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["procedures",{"_index":22574,"title":{},"body":{"license.html":{}}}],["proceed",{"_index":16497,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["proceedbuttonurl",{"_index":16462,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["process",{"_index":6833,"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":15361,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:2",{"_index":15363,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:4",{"_index":15362,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.env.mongo_test_uri}/${dbname",{"_index":14897,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["processcookies",{"_index":11486,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processcookies(setcookies",{"_index":11498,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processed",{"_index":11666,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["processing",{"_index":4612,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["processoauthlogin",{"_index":16199,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processoauthlogin(cachedstate",{"_index":16208,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processredirect",{"_index":11487,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirect(dto",{"_index":11501,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirectcascade",{"_index":11412,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["processredirectcascade(initresponse",{"_index":11420,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["procuring",{"_index":22738,"title":{},"body":{"license.html":{}}}],["produce",{"_index":1733,"title":{},"body":{"injectables/AuthenticationService.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["producer.module.ts",{"_index":16650,"title":{},"body":{"modules/PreviewGeneratorProducerModule.html":{}}}],["producer.ts",{"_index":17769,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:12",{"_index":17773,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:21",{"_index":17771,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:29",{"_index":17772,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["producer.ts:5",{"_index":17770,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["produces",{"_index":23254,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["product",{"_index":2115,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"license.html":{}}}],["production",{"_index":11635,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":22749,"title":{},"body":{"license.html":{}}}],["profile",{"_index":13534,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["program",{"_index":22288,"title":{},"body":{"license.html":{}}}],["program's",{"_index":22470,"title":{},"body":{"license.html":{}}}],["programmer",{"_index":22851,"title":{},"body":{"license.html":{}}}],["programming",{"_index":22394,"title":{},"body":{"license.html":{}}}],["programs",{"_index":22297,"title":{},"body":{"license.html":{}}}],["progress",{"_index":6164,"title":{},"body":{"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prohibit",{"_index":22433,"title":{},"body":{"license.html":{},"todo.html":{}}}],["prohibiting",{"_index":22458,"title":{},"body":{"license.html":{}}}],["prohibits",{"_index":22743,"title":{},"body":{"license.html":{}}}],["project",{"_index":21532,"title":{},"body":{"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prom",{"_index":17351,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"dependencies.html":{}}}],["prometheus",{"_index":16785,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp",{"_index":16810,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp.listen(prometheusmetricsappport",{"_index":16812,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsappport",{"_index":16808,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig",{"_index":16732,"title":{"classes/PrometheusMetricsConfig.html":{}},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance",{"_index":16805,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.isenabled",{"_index":16798,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.port",{"_index":16809,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate",{"_index":16778,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.api_response_time_metric_middleware_successfully_added",{"_index":16802,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.feature_disabled_middlewares_will_not_be_created",{"_index":16800,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable",{"_index":16774,"title":{"classes/PrometheusMetricsSetupStateLoggable.html":{}},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_default_metrics_disabled",{"_index":16806,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_metrics_route_metrics_disabled",{"_index":16807,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.feature_disabled_app_will_not_be_created",{"_index":16804,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prominent",{"_index":22386,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prominently",{"_index":22381,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.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":{},"injectables/ColumnBoardCopyService.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/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["promise((resolve",{"_index":13784,"title":{},"body":{"injectables/LdapService.html":{}}}],["promise.all",{"_index":284,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/DashboardModelMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"injectables/GroupUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.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/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/TeamsRepo.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["promise.all(adduserids.map((nextclouduserid",{"_index":15309,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(array.from(modelentity.gridelements).map(async",{"_index":7688,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(copyrequests",{"_index":17902,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["promise.all(domainobject.children.map(async",{"_index":17238,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["promise.all(gridelement.getreferences().map((ref",{"_index":7709,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(promises",{"_index":2406,"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":7680,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(removeuserids.map((nextclouduserid",{"_index":15307,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(studententities.map((user",{"_index":9701,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(substitutionteacherentities.map((user",{"_index":9704,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(teacherentities.map((user",{"_index":9703,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["promise.all(toolreferencespromises",{"_index":20705,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["promise.allsettled(boarddo.children.map((child",{"_index":17187,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["promise.allsettled(promises",{"_index":3052,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.reject",{"_index":21519,"title":{},"body":{"injectables/UserRepo.html":{}}}],["promise.reject(new",{"_index":3033,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["promise.resolve",{"_index":2616,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/FileSystemAdapter.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/TestBootstrapConsole.html":{}}}],["promise.resolve(configuration.get('hydra_uri",{"_index":15946,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["promise.resolve(dummyresponse('h5p",{"_index":11376,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["promise.resolve(false",{"_index":1103,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["promise.resolve(new",{"_index":13124,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(oauthdata",{"_index":16299,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(response",{"_index":18657,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["promises",{"_index":2401,"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":{}}}],["promisify",{"_index":22119,"title":{},"body":{"dependencies.html":{}}}],["prompt",{"_index":16289,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["prop",{"_index":1841,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["propagate",{"_index":22354,"title":{},"body":{"license.html":{}}}],["propagating",{"_index":22672,"title":{},"body":{"license.html":{}}}],["propagation",{"_index":22364,"title":{},"body":{"license.html":{}}}],["propaly",{"_index":12488,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["proper",{"_index":3103,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["properly",{"_index":23420,"title":{},"body":{"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":{},"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":{},"classes/AuthenticationValues.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/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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"interfaces/ClassProps.html":{},"classes/ClassSortParams.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":{},"injectables/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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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/FederalStateEntity.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":{},"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":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponse.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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":{},"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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"interfaces/ScanResult.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/SchoolYearEntity.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":{},"classes/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/UsersList.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((property",{"_index":2618,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["properties.some",{"_index":2624,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertiestopopulate",{"_index":15075,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["property",{"_index":240,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BasicToolLaunchStrategy.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":{},"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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalStateEntity.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/Lti11ToolConfigEntity.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/SchoolYearEntity.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/SystemEntity.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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.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":8921,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"entities/PseudonymEntity.html":{},"entities/Role.html":{}}}],["property({comment",{"_index":19060,"title":{},"body":{"entities/SubmissionItemNode.html":{}}}],["property({fieldname",{"_index":4771,"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/FederalStateEntity.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/SubmissionContainerElementNode.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{}}}],["property({onupdate",{"_index":2484,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["property({type",{"_index":12723,"title":{},"body":{"entities/ImportUser.html":{}}}],["property.location",{"_index":241,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{}}}],["property.name",{"_index":268,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["property.value",{"_index":253,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{}}}],["propertydata",{"_index":134,"title":{"classes/PropertyData.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["propertydata.push",{"_index":333,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["propertylocation",{"_index":207,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.body",{"_index":2619,"title":{},"body":{"injectables/BasicToolLaunchStrategy.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/OAuth2ToolLaunchStrategy.html":{}}}],["propertypath",{"_index":1448,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["propertypath.push(validationerror.property",{"_index":1450,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["props",{"_index":595,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthenticationValues.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/ColumnBoardCopyService.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/LinkElement.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/OauthLoginResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PropertyData.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/ResolvedGroupUser.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":6466,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.accesskeyid",{"_index":12268,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.accesstoken",{"_index":14506,"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":12422,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.alternativetext",{"_index":9860,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.availabledate",{"_index":12461,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.axiosconfig",{"_index":11482,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.baseurl",{"_index":2569,"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":9929,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.cancelbuttonurl",{"_index":16468,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.caption",{"_index":9859,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.classnames",{"_index":12844,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.classnames.length",{"_index":12024,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.client",{"_index":12109,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.client_id",{"_index":1532,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.client_secret",{"_index":1534,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.clientid",{"_index":15519,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.clientsecret",{"_index":15520,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["props.closedat",{"_index":21139,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.code",{"_index":1540,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.color",{"_index":6548,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.colums",{"_index":7496,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.comment",{"_index":12283,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.completed",{"_index":19066,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["props.config",{"_index":2044,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.content",{"_index":6866,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.contents",{"_index":11891,"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":4778,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["props.contextexternaltool",{"_index":8664,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["props.contextexternaltoolid",{"_index":8653,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.contextid",{"_index":5788,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.contextref",{"_index":5716,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.contexttype",{"_index":5790,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.cookies",{"_index":11479,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.copyingsince",{"_index":6554,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.course",{"_index":6758,"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":6759,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.coursegroup",{"_index":11889,"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":9999,"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/FederalStateEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.creator",{"_index":6869,"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":11475,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.customs",{"_index":7154,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.data",{"_index":2036,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.default",{"_index":7219,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["props.defaultvalue",{"_index":7360,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["props.delete",{"_index":10001,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.deleted",{"_index":9943,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.deletedat",{"_index":9942,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.deletedsince",{"_index":10065,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.description",{"_index":6541,"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":{},"classes/UsersList.html":{}}}],["props.descriptioninputformat",{"_index":12458,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.destinationexternalreference",{"_index":4761,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.displayat",{"_index":6868,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.displayname",{"_index":5718,"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/SystemEntity.html":{}}}],["props.duedate",{"_index":12463,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.email",{"_index":9543,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.enddate",{"_index":12226,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["props.endpointurl",{"_index":12266,"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":15709,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalid",{"_index":6872,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalSourceResponse.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.externalidtoken",{"_index":15720,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["props.externalorganizationid",{"_index":8441,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["props.externalschool",{"_index":15707,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalsource",{"_index":11010,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.externalsourcename",{"_index":4335,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.externaluser",{"_index":15705,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externaluserid",{"_index":8447,"title":{},"body":{"classes/ExternalGroupUserDto.html":{}}}],["props.features",{"_index":6556,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UsersList.html":{}}}],["props.federalstate",{"_index":12220,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.filetype",{"_index":17109,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["props.finishedat",{"_index":21141,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.firstname",{"_index":9539,"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":12028,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.forcepasswordchange",{"_index":12592,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.friendlyurl",{"_index":7165,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.from",{"_index":8437,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.frontchannel_logout_uri",{"_index":7171,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.frontchannellogouturi",{"_index":15526,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.grade",{"_index":12289,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradecomment",{"_index":12291,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.graded",{"_index":12287,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradelevel",{"_index":4276,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.grant_type",{"_index":1538,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.grid.foreach((element",{"_index":7498,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.gridelements",{"_index":7576,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["props.height",{"_index":4064,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["props.hidden",{"_index":11887,"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":6148,"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ContextRef.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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":15493,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.imageurl",{"_index":14346,"title":{},"body":{"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{}}}],["props.importuserid",{"_index":12838,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.inmaintenancesince",{"_index":12212,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.inputformat",{"_index":17488,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.inusermigration",{"_index":12213,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.invitationlink",{"_index":4288,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.iscopyfrom",{"_index":10062,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.isdirectory",{"_index":9926,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.ishidden",{"_index":7173,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{}}}],["props.islocal",{"_index":7158,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isoptional",{"_index":7229,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.istemplate",{"_index":7156,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isupgradable",{"_index":4341,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.key",{"_index":7138,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.keyvalue",{"_index":1784,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.language",{"_index":12594,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastloginsystemchange",{"_index":12598,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastname",{"_index":9541,"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":14578,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["props.ldapconfig",{"_index":12428,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.ldapdn",{"_index":4293,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.lesson",{"_index":12468,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.license",{"_index":12111,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.localcookies",{"_index":6146,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.location",{"_index":7221,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["props.lockid",{"_index":9965,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.loginname",{"_index":12840,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.logo",{"_index":8495,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.logo_url",{"_index":7142,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.logobase64",{"_index":8698,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["props.logourl",{"_index":6467,"title":{},"body":{"classes/County.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.lti_message_type",{"_index":7144,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.lti_version",{"_index":7146,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.mandatorysince",{"_index":21135,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.match",{"_index":12845,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.matchedby",{"_index":12026,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.materials",{"_index":11892,"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":12113,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.method",{"_index":20562,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.mimetype",{"_index":10059,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.name",{"_index":4281,"title":{},"body":{"entities/ClassEntity.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/FederalStateEntity.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/SchoolYearEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/UsersList.html":{}}}],["props.oauthclientid",{"_index":7163,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.oauthconfig",{"_index":12424,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.officialschoolnumber",{"_index":8457,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.oidcconfig",{"_index":12426,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["props.opennewtab",{"_index":7169,"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":21672,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.organization",{"_index":11050,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.organizationid",{"_index":11014,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.originalcolumnboardid",{"_index":4744,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["props.origintoolid",{"_index":7159,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.outdatedsince",{"_index":12600,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.parameters",{"_index":5720,"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":3599,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.id",{"_index":3600,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.level",{"_index":3606,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parentid",{"_index":9808,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.parenttype",{"_index":9807,"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":20563,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.permissions",{"_index":9964,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.position",{"_index":3608,"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":15731,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.preferences",{"_index":12596,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.previousexternalid",{"_index":12209,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{}}}],["props.privacy_permission",{"_index":7152,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.private",{"_index":12464,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.proceedbuttonurl",{"_index":16466,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.properties",{"_index":20515,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["props.provider",{"_index":15732,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.provisioningstrategy",{"_index":12430,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.provisioningurl",{"_index":12432,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/SystemEntity.html":{}}}],["props.pseudonym",{"_index":8928,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["props.publicsubmissions",{"_index":12472,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.read",{"_index":9997,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.reason",{"_index":10042,"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":21400,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["props.redirect_uri",{"_index":1536,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.redirecturis",{"_index":15522,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.references.sort(this.sortreferences",{"_index":7472,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.referer",{"_index":11477,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.refownermodel",{"_index":9961,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.refpermmodel",{"_index":9994,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["props.refreshtoken",{"_index":15495,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["props.regex",{"_index":7225,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.regexcomment",{"_index":7227,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.region",{"_index":12272,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.relatedresources",{"_index":12115,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.requesttoken",{"_index":10044,"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":7148,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.response",{"_index":11480,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.role",{"_index":11315,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/ResolvedGroupUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.roleid",{"_index":11308,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.rolename",{"_index":8449,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.rolenames",{"_index":12842,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.rolenames.length",{"_index":12021,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.roles",{"_index":7150,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/IRoleProperties.html":{},"entities/LtiTool.html":{},"entities/Role.html":{}}}],["props.school",{"_index":6544,"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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{}}}],["props.schoolid",{"_index":4283,"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":12178,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.schooltool",{"_index":5786,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["props.schooltoolid",{"_index":18117,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["props.schooltoolref",{"_index":5714,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.schoolyear",{"_index":4339,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.scope",{"_index":7223,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.secret",{"_index":7140,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{}}}],["props.secretaccesskey",{"_index":12270,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.secretvalue",{"_index":1786,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["props.securitycheck",{"_index":9952,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.share",{"_index":20095,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["props.sharetokens",{"_index":9954,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.size",{"_index":9927,"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":7167,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.source",{"_index":4297,"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":6874,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourceoptions",{"_index":4299,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.sourcesystem",{"_index":21156,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.sourcesystemid",{"_index":21131,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.startdate",{"_index":6552,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UsersList.html":{}}}],["props.startedat",{"_index":21137,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.state",{"_index":15729,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.status",{"_index":2038,"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":2040,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.storagefilename",{"_index":9928,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.storageprovider",{"_index":9930,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.student",{"_index":12281,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.students",{"_index":6760,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.subjects",{"_index":12117,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.submitted",{"_index":12286,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.successor",{"_index":4295,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.system",{"_index":8472,"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/ExternalSourceResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{}}}],["props.systems",{"_index":12215,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.tags",{"_index":12119,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.target",{"_index":3434,"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":12121,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.targetmodel",{"_index":21671,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetsystem",{"_index":21158,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["props.targetsystemid",{"_index":21133,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.task",{"_index":12285,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teacherids",{"_index":4287,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.teachers",{"_index":4337,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["props.teamid",{"_index":20110,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teammembers",{"_index":12292,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teamname",{"_index":20112,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teamsubmissions",{"_index":12474,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.teamusers",{"_index":12561,"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":12562,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.text",{"_index":17487,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.thumbnail",{"_index":9949,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.thumbnailrequesttoken",{"_index":9950,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.timestamps",{"_index":8654,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["props.title",{"_index":3609,"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/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.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":15524,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.tool",{"_index":12176,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.toolid",{"_index":8930,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.toolversion",{"_index":5722,"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":11924,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["props.tspuid",{"_index":4451,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["props.type",{"_index":4333,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/ContextRef.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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/SystemEntity.html":{},"classes/ToolLaunchData.html":{}}}],["props.until",{"_index":8439,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.untildate",{"_index":6550,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["props.updatedat",{"_index":623,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/County.html":{},"entities/FederalStateEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.updater",{"_index":6870,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.url",{"_index":7136,"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/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.user",{"_index":11314,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/ImportUser.html":{},"classes/ResolvedGroupUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.userid",{"_index":416,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"injectables/ColumnBoardCopyService.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":4284,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.userloginmigration",{"_index":12217,"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":8435,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.users.map",{"_index":11012,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validfrom",{"_index":11007,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validperiod",{"_index":11048,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.validuntil",{"_index":11008,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.value",{"_index":7247,"title":{},"body":{"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/PropertyData.html":{}}}],["props.version",{"_index":8496,"title":{},"body":{"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.versionkey",{"_index":9968,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.write",{"_index":9995,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.year",{"_index":4290,"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":2525,"title":{},"body":{"classes/BaseFactory.html":{}}}],["protect",{"_index":22301,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.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/ExternalToolElement.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"injectables/FilesStorageProducer.html":{},"classes/Group.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IDashboardRepo.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LessonFactory.html":{},"classes/LinkElement.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/PreviewProducer.html":{},"injectables/ProvisioningService.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymsRepo.html":{},"classes/RichTextElement.html":{},"classes/RpcMessageProducer.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":21624,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles",{"_index":21618,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles.find((protectedrole",{"_index":21623,"title":{},"body":{"injectables/UserService.html":{}}}],["protecting",{"_index":22441,"title":{},"body":{"license.html":{}}}],["protection",{"_index":22481,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["protocol",{"_index":13420,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapper",{"_index":13476,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapperrepresentation",{"_index":13351,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocols",{"_index":22597,"title":{},"body":{"license.html":{}}}],["prototype",{"_index":1197,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["prove",{"_index":22800,"title":{},"body":{"license.html":{}}}],["provide",{"_index":836,"title":{},"body":{"modules/AccountModule.html":{},"modules/AntivirusModule.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/PreviewGeneratorConsumerModule.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":3281,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"modules/ErrorModule.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/ICurrentUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/LegacyLogger.html":{},"interfaces/OauthCurrentUser.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":4588,"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/SystemEntity.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":11641,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["provider.client",{"_index":15773,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.consent",{"_index":15807,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.controller",{"_index":15769,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.controller.ts",{"_index":15847,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:103",{"_index":15859,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:109",{"_index":15865,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:117",{"_index":15880,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:135",{"_index":15855,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:143",{"_index":15862,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:151",{"_index":15877,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:169",{"_index":15872,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:182",{"_index":15884,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:188",{"_index":15869,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:49",{"_index":15867,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:60",{"_index":15874,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:80",{"_index":15857,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:91",{"_index":15886,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.login",{"_index":12637,"title":{},"body":{"injectables/IdTokenService.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["provider.logout",{"_index":15890,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["provider.mapper",{"_index":13310,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["provider.mapper.ts",{"_index":16276,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:6",{"_index":16279,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:9",{"_index":16281,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.module",{"_index":15771,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.module.ts",{"_index":16013,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["provider.service",{"_index":16069,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider.service.ts",{"_index":16037,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:14",{"_index":16050,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:16",{"_index":16042,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:18",{"_index":16061,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:20",{"_index":16049,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:22",{"_index":16040,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:24",{"_index":16060,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:26",{"_index":16044,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:28",{"_index":16054,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:30",{"_index":16055,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:32",{"_index":16059,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:39",{"_index":16046,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:41",{"_index":16052,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:43",{"_index":16065,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:45",{"_index":16048,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:47",{"_index":16057,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:49",{"_index":16063,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.uc",{"_index":15895,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.uc.ts",{"_index":16072,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:10",{"_index":16075,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:15",{"_index":16077,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:7",{"_index":16073,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider/controller/dto",{"_index":15828,"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":4193,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/challenge.params.ts:11",{"_index":4195,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/consent",{"_index":5431,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["provider/controller/dto/request/id.params.ts",{"_index":12609,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/id.params.ts:11",{"_index":12610,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/list",{"_index":14360,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["provider/controller/dto/request/login",{"_index":14508,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["provider/controller/dto/request/oauth",{"_index":15367,"title":{},"body":{"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{}}}],["provider/controller/dto/request/revoke",{"_index":17445,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["provider/controller/dto/request/user.params.ts",{"_index":21495,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/request/user.params.ts:7",{"_index":21496,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/response/consent",{"_index":5524,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts",{"_index":5481,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:16",{"_index":5491,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:22",{"_index":5494,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:28",{"_index":5497,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:32",{"_index":5500,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:36",{"_index":5501,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:40",{"_index":5504,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:44",{"_index":5506,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:48",{"_index":5508,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:54",{"_index":5512,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:6",{"_index":5489,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:60",{"_index":5513,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:66",{"_index":5514,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:72",{"_index":5517,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:76",{"_index":5518,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/login.response.ts",{"_index":14513,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:13",{"_index":14520,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:16",{"_index":14517,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:19",{"_index":14518,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:23",{"_index":14521,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:27",{"_index":14523,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:31",{"_index":14524,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:37",{"_index":14525,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:43",{"_index":14529,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:48",{"_index":14530,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:51",{"_index":14531,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:6",{"_index":14516,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oauth",{"_index":5521,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oidc",{"_index":5519,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts",{"_index":17308,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:12",{"_index":17314,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:3",{"_index":17310,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/oauth",{"_index":15846,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/dto",{"_index":9311,"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":16828,"title":{},"body":{"interfaces/ProviderOidcContext.html":{}}}],["provider/dto/request/accept",{"_index":338,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{}}}],["provider/dto/request/reject",{"_index":17330,"title":{},"body":{"interfaces/RejectRequestBody.html":{}}}],["provider/dto/response/consent",{"_index":16824,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["provider/dto/response/consent.response.ts",{"_index":16819,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{}}}],["provider/dto/response/introspect.response.ts",{"_index":13051,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["provider/dto/response/login.response.ts",{"_index":16827,"title":{},"body":{"interfaces/ProviderLoginResponse.html":{}}}],["provider/dto/response/redirect.response.ts",{"_index":16829,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{}}}],["provider/error/id",{"_index":12612,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["provider/hydra/hydra.adapter",{"_index":16071,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider/index",{"_index":15795,"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":15618,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/interface/token",{"_index":15619,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/mapper/oauth",{"_index":15982,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/oauth",{"_index":15767,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider/service/id",{"_index":12620,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/service/oauth",{"_index":15947,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["provider/uc/oauth",{"_index":15772,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["providerconsentresponse",{"_index":15825,"title":{"interfaces/ProviderConsentResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerconsentsessionresponse",{"_index":15888,"title":{"interfaces/ProviderConsentSessionResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerid",{"_index":13402,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["providerloginresponse",{"_index":15887,"title":{"interfaces/ProviderLoginResponse.html":{}},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroauthclient",{"_index":9307,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroidccontext",{"_index":16820,"title":{"interfaces/ProviderOidcContext.html":{}},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["provideroptions",{"_index":12389,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["providerredirectresponse",{"_index":15827,"title":{"interfaces/ProviderRedirectResponse.html":{}},"body":{"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":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.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/ICleanOptions.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":7985,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["provides",{"_index":4514,"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":4603,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CoreModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["provision",{"_index":18261,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"license.html":{}}}],["provisionally",{"_index":22650,"title":{},"body":{"license.html":{}}}],["provisiondata",{"_index":16850,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisiondata(oauthdata",{"_index":16864,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisionexternalgroup",{"_index":16304,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalgroup(externalgroup",{"_index":16312,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool",{"_index":16305,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool(externalschool",{"_index":16314,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser",{"_index":16306,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser(externaluser",{"_index":16316,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning",{"_index":11156,"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":21488,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["provisioning.service",{"_index":16408,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioning.service.ts",{"_index":16302,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:121",{"_index":16313,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:166",{"_index":16310,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:191",{"_index":16319,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:20",{"_index":16308,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:32",{"_index":16315,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:69",{"_index":16317,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.strategy",{"_index":12336,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["provisioningdto",{"_index":13098,"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":16834,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["provisioningmodule",{"_index":15578,"title":{"modules/ProvisioningModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["provisioningservice",{"_index":15395,"title":{"injectables/ProvisioningService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["provisioningstrategy",{"_index":12332,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisioningstrategy:10",{"_index":16296,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:14",{"_index":16295,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:24",{"_index":13096,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:28",{"_index":13095,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:30",{"_index":17981,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:31",{"_index":16294,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:34",{"_index":17980,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:5",{"_index":16406,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningstrategy:61",{"_index":13090,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:7",{"_index":16405,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningsystemdto",{"_index":15699,"title":{"classes/ProvisioningSystemDto.html":{}},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper",{"_index":16869,"title":{"classes/ProvisioningSystemInputMapper.html":{}},"body":{"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper.maptointernal(systemdto",{"_index":16880,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisioningurl",{"_index":12333,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisionuser",{"_index":15392,"title":{},"body":{"injectables/OAuthService.html":{}}}],["provisionuser(systemid",{"_index":15414,"title":{},"body":{"injectables/OAuthService.html":{}}}],["proxy",{"_index":18566,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{}}}],["proxy's",{"_index":22790,"title":{},"body":{"license.html":{}}}],["proxy.service",{"_index":5611,"title":{},"body":{"injectables/ContentElementService.html":{},"injectables/ContentElementUpdateVisitor.html":{}}}],["proxy.service.ts",{"_index":16420,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["proxy.service.ts:14",{"_index":16424,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["proxy.service.ts:34",{"_index":16428,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["ps256",{"_index":1599,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps384",{"_index":1600,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps512",{"_index":1601,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["pseudonym",{"_index":8920,"title":{"classes/Pseudonym.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.entity",{"_index":16977,"title":{},"body":{"classes/PseudonymScope.html":{}}}],["pseudonym.entity.ts",{"_index":8919,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["pseudonym.entity.ts:18",{"_index":8922,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:21",{"_index":8923,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:24",{"_index":8924,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.id",{"_index":16949,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.module",{"_index":16921,"title":{},"body":{"modules/PseudonymApiModule.html":{}}}],["pseudonym.pseudonym",{"_index":9735,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.repo.ts",{"_index":8933,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:10",{"_index":8942,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:104",{"_index":8958,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:112",{"_index":8954,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:13",{"_index":8951,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:24",{"_index":8949,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:39",{"_index":8947,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:48",{"_index":8944,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:69",{"_index":8946,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:77",{"_index":8956,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:91",{"_index":8960,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.service",{"_index":9676,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonym.toolid",{"_index":16950,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonym.userid",{"_index":16951,"title":{},"body":{"classes/PseudonymMapper.html":{}}}],["pseudonymapimodule",{"_index":16914,"title":{"modules/PseudonymApiModule.html":{}},"body":{"modules/PseudonymApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["pseudonymcontroller",{"_index":16920,"title":{"controllers/PseudonymController.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{}}}],["pseudonymentity",{"_index":16940,"title":{"entities/PseudonymEntity.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymentity(entityprops",{"_index":17057,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["pseudonymentityprops",{"_index":16945,"title":{"interfaces/PseudonymEntityProps.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymmapper",{"_index":16930,"title":{"classes/PseudonymMapper.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{}}}],["pseudonymmapper.maptoresponse(pseudonym",{"_index":16939,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonymmodule",{"_index":4583,"title":{"modules/PseudonymModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymApiModule.html":{},"modules/PseudonymModule.html":{},"modules/ToolLaunchModule.html":{},"modules.html":{}}}],["pseudonymous",{"_index":7114,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["pseudonymparams",{"_index":16925,"title":{"classes/PseudonymParams.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymParams.html":{}}}],["pseudonympromise",{"_index":17008,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymprops",{"_index":16910,"title":{"interfaces/PseudonymProps.html":{}},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["pseudonymrepo",{"_index":16989,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymresponse",{"_index":16932,"title":{"classes/PseudonymResponse.html":{}},"body":{"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{}}}],["pseudonymresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":16927,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["pseudonyms",{"_index":8926,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonyms.loggable",{"_index":20293,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonyms_too_many_pseudonyms_found",{"_index":20297,"title":{},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["pseudonymschool",{"_index":17041,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymscope",{"_index":8962,"title":{"classes/PseudonymScope.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/PseudonymScope.html":{}}}],["pseudonymsearchquery",{"_index":8953,"title":{"interfaces/PseudonymSearchQuery.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{}}}],["pseudonymservice",{"_index":9647,"title":{"injectables/PseudonymService.html":{}},"body":{"injectables/FeathersRosterService.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["pseudonymsrepo",{"_index":16956,"title":{"injectables/PseudonymsRepo.html":{}},"body":{"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymuc",{"_index":16918,"title":{"injectables/PseudonymUc.html":{}},"body":{"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymUc.html":{}}}],["pseudonymuser",{"_index":17039,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["pseudonymuserid",{"_index":17037,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["public",{"_index":116,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoCopyService.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":{},"injectables/ContextExternalToolUc.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":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementResponseMapper.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":{},"classes/LinkElement.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"injectables/Lti11EncryptionService.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":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.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":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"controllers/ServerController.html":{},"classes/SortHelper.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":{},"classes/UsersList.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":15477,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["publicclient",{"_index":13422,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["publicity",{"_index":22621,"title":{},"body":{"license.html":{}}}],["publickey",{"_index":7002,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["publiclink",{"_index":15223,"title":{},"body":{"injectables/NexboardService.html":{}}}],["publicly",{"_index":19284,"title":{},"body":{"controllers/SystemController.html":{},"license.html":{}}}],["publicservice",{"_index":23132,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["publicsubmissions",{"_index":12439,"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":17060,"title":{"classes/PublicSystemListResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publicsystemlistresponse(systemresponses",{"_index":19453,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["publicsystemresponse",{"_index":17063,"title":{"classes/PublicSystemResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publish",{"_index":4882,"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":2736,"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":22037,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["pull",{"_index":22235,"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":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["purposes",{"_index":4139,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["pursuant",{"_index":22736,"title":{},"body":{"license.html":{}}}],["put",{"_index":4007,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/LegacySchoolController.html":{},"controllers/OauthProviderController.html":{},"injectables/TaskCopyUC.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":20739,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put('/:schoolexternaltoolid')@apiokresponse({description",{"_index":20728,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put(':cardid/position",{"_index":4024,"title":{},"body":{"controllers/CardController.html":{}}}],["put(':columnid/position",{"_index":4936,"title":{},"body":{"controllers/ColumnController.html":{}}}],["put(':contentelementid/position",{"_index":8214,"title":{},"body":{"controllers/ElementController.html":{}}}],["put(':contextexternaltoolid",{"_index":20426,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':contextexternaltoolid')@apiokresponse({description",{"_index":20405,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':schoolid/migration",{"_index":13950,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':schoolid/migration')@authenticate('jwt')@apiokresponse({description",{"_index":13936,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':scope/:scopeid/start",{"_index":21740,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put(':scope/:scopeid/start')@apioperation({summary",{"_index":21728,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put('clients/:id",{"_index":15913,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["put('mandatory",{"_index":21108,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('mandatory')@apinotfoundresponse({description",{"_index":21070,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart",{"_index":21105,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart')@apinotfoundresponse({description",{"_index":21062,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put(filesstorageinternalactions.updatesecuritystatus",{"_index":10269,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["put(path",{"_index":1666,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["put(subpath",{"_index":1665,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["putting",{"_index":22963,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["pw",{"_index":7026,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{}}}],["pwd/backup/idm/keycloak:/tmp/realms",{"_index":22954,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["pwd/backup/idm/oidcmock:/tmp/config",{"_index":23537,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["p{extended_pictographic}/u",{"_index":6592,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["q",{"_index":13594,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["qs",{"_index":11507,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["qs.stringify(data",{"_index":13548,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["qualify",{"_index":22662,"title":{},"body":{"license.html":{}}}],["quality",{"_index":22799,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["quarkus",{"_index":23564,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["quay.io/minio/minio",{"_index":22948,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["queries",{"_index":13037,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["queries.length",{"_index":13040,"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/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"classes/FileRecordScope.html":{},"classes/GlobalValidationPipe.html":{},"controllers/GroupController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.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":12812,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["query('x",{"_index":7390,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query('y",{"_index":7391,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query.accept",{"_index":15832,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["query.classes",{"_index":12892,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.code",{"_index":16163,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.error",{"_index":16164,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.firstname",{"_index":12880,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.flagged",{"_index":12897,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.lastloginsystemchangebetweenend",{"_index":20911,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastloginsystemchangebetweenstart",{"_index":20910,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastname",{"_index":12883,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.loginname",{"_index":12886,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match",{"_index":12893,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match.map((match",{"_index":12895,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.migration",{"_index":16157,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.name",{"_index":21358,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["query.postloginredirect",{"_index":16158,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.role",{"_index":12887,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.schoolid",{"_index":18210,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["query.state",{"_index":16153,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.targetid",{"_index":15055,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.targetmodel",{"_index":15053,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.ts",{"_index":9272,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{},"interfaces/PseudonymSearchQuery.html":{},"interfaces/UserLoginMigrationQuery.html":{}}}],["query.type",{"_index":20901,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["query.unpublished",{"_index":15057,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.userid",{"_index":21314,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["query/body",{"_index":23240,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["query/empty",{"_index":18466,"title":{},"body":{"classes/Scope.html":{}}}],["queryfiltermatch",{"_index":21522,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryfiltermatch.$or",{"_index":21528,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryoptions",{"_index":6930,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ImportUserRepo.html":{}}}],["queryordermap",{"_index":6912,"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":9386,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["queryordernumeric",{"_index":21514,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.asc",{"_index":21543,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.desc",{"_index":21542,"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":2337,"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":6635,"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":10611,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["querystring",{"_index":2327,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{}}}],["querystring.stringify",{"_index":11508,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["querystring.stringify(payload",{"_index":15566,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["queue",{"_index":10502,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq",{"_index":1352,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewProducer.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RpcMessageProducer.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq#usage",{"_index":17080,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmq:3.8.9",{"_index":22938,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmq_url",{"_index":22931,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmqmodule",{"_index":17078,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqmodule.forroot(rabbitmqmodule",{"_index":17085,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqwrappermodule",{"_index":10575,"title":{"modules/RabbitMQWrapperModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rabbitmqwrappertestmodule",{"_index":10576,"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":10509,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc",{"_index":10510,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["rabbitrpc({exchange",{"_index":10500,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["random",{"_index":3510,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/FileSystemAdapter.html":{}}}],["random(min",{"_index":3525,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["randomuuid",{"_index":1737,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["range",{"_index":10737,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/S3ClientAdapter.html":{}}}],["ranges",{"_index":10735,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["rawfiledocument",{"_index":10386,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments",{"_index":10382,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments.map((rawfiledocument",{"_index":10384,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawlessondocument",{"_index":14232,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments",{"_index":14228,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments.map((rawlessondocument",{"_index":14230,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rc",{"_index":11607,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["rd",{"_index":11611,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":11596,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["react",{"_index":23053,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["read",{"_index":1804,"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/ShareTokenUC.html":{},"injectables/TaskCopyUC.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":1808,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["readable",{"_index":1342,"title":{},"body":{"injectables/AntivirusService.html":{},"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":17112,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readable.from(text",{"_index":20239,"title":{},"body":{"classes/TestHelper.html":{}}}],["readablestreamwithfiletype",{"_index":17103,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypefactory",{"_index":17110,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeimp",{"_index":17100,"title":{"classes/ReadableStreamWithFileTypeImp.html":{}},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeprops",{"_index":17105,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readcourseids",{"_index":20010,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses",{"_index":20006,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses.map((c",{"_index":20011,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readdir",{"_index":10281,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readdir(folderpath",{"_index":10304,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["reader",{"_index":3101,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["readfile",{"_index":10282,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readfile(filepath",{"_index":10308,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readily",{"_index":22726,"title":{},"body":{"license.html":{}}}],["reading",{"_index":22601,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["readlessons",{"_index":20015,"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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationReferenceService.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":{},"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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/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":{},"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":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"controllers/SystemController.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserController.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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":{},"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":13646,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["real",{"_index":22965,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["really",{"_index":6525,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/TaskCopyUC.html":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["realm",{"_index":13283,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["realmname",{"_index":12072,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows",{"_index":13389,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions",{"_index":13398,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions/execution",{"_index":13400,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["reason",{"_index":10039,"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":22523,"title":{},"body":{"license.html":{}}}],["reasons",{"_index":19456,"title":{},"body":{"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["receipt",{"_index":22660,"title":{},"body":{"license.html":{}}}],["receive",{"_index":22295,"title":{},"body":{"license.html":{}}}],["received",{"_index":13063,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["receives",{"_index":22677,"title":{},"body":{"license.html":{}}}],["receiving",{"_index":22740,"title":{},"body":{"license.html":{}}}],["recieved",{"_index":23402,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["recieving",{"_index":23122,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["recipient",{"_index":22584,"title":{},"body":{"license.html":{}}}],["recipient's",{"_index":22733,"title":{},"body":{"license.html":{}}}],["recipients",{"_index":1499,"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":22392,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["recommend",{"_index":23433,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["recommendations",{"_index":23479,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["recommended",{"_index":23477,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["reconnect",{"_index":13779,"title":{},"body":{"injectables/LdapService.html":{}}}],["reconsidered",{"_index":13833,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["record",{"_index":1180,"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/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":{},"classes/GroupResponseMapper.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IUserProperties.html":{},"classes/LdapConnectionError.html":{},"injectables/Lti11EncryptionService.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":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SingleFileParams.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolStatusResponseMapper.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":10126,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:11",{"_index":10134,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:23",{"_index":10131,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:5",{"_index":10136,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["recording",{"_index":2225,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["recursive",{"_index":3299,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"injectables/BoardDoRepo.html":{},"classes/CopyApiResponse.html":{}}}],["recursivecopyvisitor",{"_index":3298,"title":{"classes/RecursiveCopyVisitor.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{}}}],["recursivecopyvisitor(params.filecopyservice",{"_index":3305,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["recursivedeletevisitor",{"_index":3317,"title":{"injectables/RecursiveDeleteVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["recursively",{"_index":10317,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/PermissionService.html":{}}}],["recursivesavevisitor",{"_index":3345,"title":{"classes/RecursiveSaveVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["recursivesavevisitor(this.em",{"_index":3378,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["red",{"_index":22890,"title":{},"body":{"todo.html":{}}}],["redirect",{"_index":2170,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigDto.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":16830,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{},"classes/RedirectResponse.html":{}}}],["redirect_uri",{"_index":1521,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/HydraSsoService.html":{},"classes/TokenRequestMapper.html":{}}}],["redirect_uris",{"_index":9373,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["redirectreponse",{"_index":17311,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectreponse.redirect_to",{"_index":17316,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectresponse",{"_index":15837,"title":{"classes/RedirectResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RedirectResponse.html":{}}}],["redirects",{"_index":15673,"title":{},"body":{"classes/OauthConfigResponse.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi",{"_index":11568,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi.tostring",{"_index":15481,"title":{},"body":{"injectables/OAuthService.html":{}}}],["redirecturis",{"_index":7283,"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":17312,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redis",{"_index":3873,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["redis_client",{"_index":17321,"title":{},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redis_uri",{"_index":18559,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisclient",{"_index":3874,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisidentifier",{"_index":13209,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["redismodule",{"_index":17317,"title":{"modules/RedisModule.html":{}},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["redisstore",{"_index":18554,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redistribute",{"_index":22835,"title":{},"body":{"license.html":{}}}],["redisurl",{"_index":3878,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["reduce",{"_index":23740,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["reduce((previousteachers",{"_index":5087,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["ref",{"_index":4038,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ref.do.ts",{"_index":18114,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:2",{"_index":18116,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:4",{"_index":18115,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.params.ts",{"_index":6127,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:13",{"_index":6128,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:9",{"_index":6130,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.target",{"_index":2700,"title":{},"body":{"entities/Board.html":{}}}],["ref.ts",{"_index":6123,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:4",{"_index":6125,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:6",{"_index":6124,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["refactor",{"_index":7745,"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":9786,"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":3442,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["reference",{"_index":1865,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ConsentResponse.html":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.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":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"entities/SchoolNews.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"modules/ToolModule.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UpdateMatchParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.contains(user",{"_index":1867,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["reference.controller",{"_index":20311,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["reference.controller.ts",{"_index":20641,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:28",{"_index":20649,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.controller.ts:51",{"_index":20653,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["reference.getmetadata",{"_index":7480,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["reference.loader",{"_index":1977,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.mapper.ts",{"_index":20665,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.mapper.ts:6",{"_index":20668,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.module",{"_index":10425,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["reference.module.ts",{"_index":1938,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["reference.response",{"_index":20663,"title":{},"body":{"classes/ToolReferenceListResponse.html":{}}}],["reference.response.ts",{"_index":20669,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:13",{"_index":20676,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:16",{"_index":20673,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:19",{"_index":20678,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:28",{"_index":20671,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:6",{"_index":20672,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.service.ts",{"_index":1964,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:12",{"_index":1971,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:14",{"_index":20685,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:15",{"_index":1974,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.service.ts:23",{"_index":20687,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["reference.service.ts:26",{"_index":1976,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["reference.ts",{"_index":3449,"title":{},"body":{"interfaces/BoardExternalReference.html":{},"classes/RoleReference.html":{},"classes/ToolReference.html":{}}}],["reference.ts:10",{"_index":20637,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:12",{"_index":20633,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:4",{"_index":20634,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:5",{"_index":17549,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:6",{"_index":20636,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:7",{"_index":17548,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:8",{"_index":20635,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.type",{"_index":3369,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["reference.uc.ts",{"_index":20690,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:10",{"_index":20693,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:17",{"_index":20699,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:40",{"_index":20701,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:57",{"_index":20697,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:71",{"_index":20695,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["referenced",{"_index":3427,"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":4470,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["referencedid",{"_index":7463,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceforindex",{"_index":7540,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceids",{"_index":2638,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["referenceloader",{"_index":1932,"title":{"injectables/ReferenceLoader.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["referencemodels",{"_index":7678,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["references",{"_index":2630,"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/ToolReferenceController.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":2694,"title":{},"body":{"entities/Board.html":{}}}],["references.push(columnboardelement",{"_index":3075,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(lessonelement",{"_index":3071,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(taskelement",{"_index":3069,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.some((ref",{"_index":2699,"title":{},"body":{"entities/Board.html":{}}}],["references[position.groupindex",{"_index":7541,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referer",{"_index":11455,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["referring",{"_index":22291,"title":{},"body":{"license.html":{}}}],["refers",{"_index":22338,"title":{},"body":{"license.html":{}}}],["refid",{"_index":9981,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refined",{"_index":23483,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reflect",{"_index":22169,"title":{},"body":{"dependencies.html":{},"todo.html":{}}}],["reflector",{"_index":20252,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["reflector.get('timeout",{"_index":20255,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["refobjectid",{"_index":9932,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["refownermodel",{"_index":9878,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refpermmodel",{"_index":9982,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["refrain",{"_index":22769,"title":{},"body":{"license.html":{}}}],["refresh_token",{"_index":15793,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{}}}],["refreshtimeout",{"_index":17915,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["refreshtoken",{"_index":15488,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/TokenRequestMapper.html":{}}}],["regard",{"_index":22606,"title":{},"body":{"license.html":{}}}],["regarding",{"_index":22225,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["regardless",{"_index":22492,"title":{},"body":{"license.html":{}}}],["regenerate",{"_index":22417,"title":{},"body":{"license.html":{}}}],["regex",{"_index":5429,"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":{},"classes/MongoPatterns.html":{},"injectables/TaskCopyService.html":{},"injectables/UserRepo.html":{}}}],["regex_mongo_language_pattern_whitelist",{"_index":14904,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["regexcomment",{"_index":7207,"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":6313,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`${sourceid",{"_index":6326,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`^${email.replace(/\\w/g",{"_index":21552,"title":{},"body":{"injectables/UserRepo.html":{}}}],["regexp(param.regex",{"_index":8909,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(param.regex).test(foundentry.value",{"_index":5425,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["regexp(param.regex).test(param.default",{"_index":8911,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(searchusername",{"_index":963,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["region",{"_index":6269,"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":16637,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["register(config",{"_index":16638,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["register(configs",{"_index":17922,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["registerparentdata",{"_index":17242,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerparentdata(parent",{"_index":17247,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerstrategy",{"_index":16851,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registerstrategy(strategy",{"_index":16866,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registrated",{"_index":23709,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["regular",{"_index":952,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["reinstated",{"_index":22649,"title":{},"body":{"license.html":{}}}],["reject",{"_index":13785,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reject(new",{"_index":13793,"title":{},"body":{"injectables/LdapService.html":{}}}],["rejectable.body",{"_index":5479,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rejectable.body.ts",{"_index":15368,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:13",{"_index":15369,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:23",{"_index":15370,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:32",{"_index":15371,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:41",{"_index":15372,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:50",{"_index":15373,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectconsentrequest",{"_index":15812,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectconsentrequest(challenge",{"_index":15821,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest",{"_index":15968,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest(challenge",{"_index":15977,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectnothandled",{"_index":5625,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectnothandled(component",{"_index":5628,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["rejectrequestbody",{"_index":15822,"title":{"interfaces/RejectRequestBody.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/RejectRequestBody.html":{}}}],["rejects",{"_index":19052,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["related",{"_index":7044,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICleanOptions.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":{},"controllers/PseudonymController.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":12098,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["relation",{"_index":11153,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["relation.ktid",{"_index":18054,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["relations",{"_index":10005,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relationship",{"_index":12537,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{}}}],["relationtype",{"_index":12107,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["relative",{"_index":11527,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["release",{"_index":23452,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["released",{"_index":22333,"title":{},"body":{"license.html":{}}}],["releasing",{"_index":22325,"title":{},"body":{"license.html":{}}}],["relevant",{"_index":22486,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["relicensing",{"_index":22334,"title":{},"body":{"license.html":{}}}],["reload",{"_index":16740,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relying",{"_index":22725,"title":{},"body":{"license.html":{}}}],["remain",{"_index":22540,"title":{},"body":{"license.html":{}}}],["remains",{"_index":22289,"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":5450,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rememberfor",{"_index":5448,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["remote",{"_index":22771,"title":{},"body":{"license.html":{}}}],["remotely",{"_index":22773,"title":{},"body":{"license.html":{}}}],["removal",{"_index":22608,"title":{},"body":{"license.html":{}}}],["remove",{"_index":1959,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CommonToolModule.html":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/DeleteFilesConsole.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICleanOptions.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/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":2756,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removechild(child",{"_index":2774,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removed",{"_index":80,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/RpcMessageProducer.html":{},"modules/VideoConferenceModule.html":{}}}],["removedeletedreferences(boardelementtargets",{"_index":2692,"title":{},"body":{"entities/Board.html":{}}}],["removedirrecursive",{"_index":10283,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removedirrecursive(folderpath",{"_index":10314,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removeexternalgroupsandaffiliation",{"_index":16307,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removeexternalgroupsandaffiliation(externaluserid",{"_index":16318,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["removefeature",{"_index":14067,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefeature(schoolid",{"_index":14079,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefromposition",{"_index":7409,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removefromposition(position",{"_index":7445,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removefromwhitelist",{"_index":13188,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removefromwhitelist(accountid",{"_index":13199,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removegroupmoderator(groupname",{"_index":1239,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["removejwtfromwhitelist",{"_index":1712,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removejwtfromwhitelist(jwttoken",{"_index":1727,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removematch",{"_index":12740,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removematch(urlparams",{"_index":12754,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removepermissionsbyrefid(refid",{"_index":9931,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["removeprotectedentityfields",{"_index":2351,"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":2382,"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":10883,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereference(reference",{"_index":7459,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex",{"_index":10884,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex(index",{"_index":7458,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removeroomsnotinlist",{"_index":7410,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removeroomsnotinlist(roomlist",{"_index":7447,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removes",{"_index":10316,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["removesecrets(collectionname",{"_index":11845,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromstorageproviders(storageproviders",{"_index":11848,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromsystems(systems",{"_index":11850,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removestudent(userid",{"_index":6766,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["removesubstitutionteacher(userid",{"_index":6601,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeteacher(userid",{"_index":6599,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["removeuser",{"_index":4204,"title":{},"body":{"classes/Class.html":{},"classes/Group.html":{}}}],["removeuser(user",{"_index":10913,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["removeuser(userid",{"_index":4213,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["removeuserids",{"_index":15297,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserids.tostring",{"_index":15301,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserpermissionstoanyfiles",{"_index":10392,"title":{},"body":{"injectables/FilesService.html":{}}}],["removeuserpermissionstoanyfiles(userid",{"_index":10400,"title":{},"body":{"injectables/FilesService.html":{}}}],["rename",{"_index":9061,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["renamebodyparams",{"_index":2924,"title":{"classes/RenameBodyParams.html":{}},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/RenameBodyParams.html":{}}}],["renamed",{"_index":15278,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["renamefileparams",{"_index":6241,"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":7760,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["renamegroupondashboard(dashboardid",{"_index":7767,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["rendered",{"_index":22814,"title":{},"body":{"license.html":{}}}],["reorderboardelements",{"_index":17746,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderboardelements(roomid",{"_index":17751,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderelements(ids",{"_index":2670,"title":{},"body":{"entities/Board.html":{}}}],["reordering",{"_index":2682,"title":{},"body":{"entities/Board.html":{}}}],["repair",{"_index":22804,"title":{},"body":{"license.html":{}}}],["repeat",{"_index":23093,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["repeatcommand",{"_index":13502,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["repeatcommand(commandname",{"_index":11653,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["repeats",{"_index":14778,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{}}}],["repetitions",{"_index":11654,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["replace",{"_index":2015,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["replace('exception",{"_index":10853,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["replace(/\\\\n/g",{"_index":13908,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["replaced",{"_index":1942,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{},"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":6314,"title":{},"body":{"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/TaskCopyService.html":{}}}],["replacemypassword",{"_index":486,"title":{},"body":{"controllers/AccountController.html":{}}}],["replacemypassword(currentuser",{"_index":517,"title":{},"body":{"controllers/AccountController.html":{}}}],["replicaset",{"_index":23572,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replikaset",{"_index":22894,"title":{},"body":{"todo.html":{}}}],["replset",{"_index":23576,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replyto",{"_index":1502,"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":2531,"title":{},"body":{"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ColumnBoardCopyService.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":6936,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["repo.integration.spec.js",{"_index":23444,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repo.ts",{"_index":23178,"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":3581,"title":{},"body":{"modules/BoardModule.html":{}}}],["repo/share",{"_index":18771,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["repoloader",{"_index":12154,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.populate",{"_index":12156,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.repo.findbyid(objectid",{"_index":12157,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["report",{"_index":7818,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reported",{"_index":23275,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["reporting",{"_index":23484,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reports",{"_index":23455,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repos",{"_index":5343,"title":{},"body":{"modules/CommonToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/VideoConferenceModule.html":{}}}],["repositories",{"_index":22876,"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":17014,"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":17017,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repository.findbyuseridandtoolid(user.id",{"_index":17016,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repotype",{"_index":12124,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["represent",{"_index":22571,"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":5474,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["req",{"_index":10253,"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":17356,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.header('range",{"_index":10731,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.headers.authorization",{"_index":16185,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["req.headers.origin",{"_index":21743,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["req.method",{"_index":17355,"title":{},"body":{"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{}}}],["req.on('close",{"_index":10265,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{}}}],["req.params",{"_index":17396,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.params[0]}/${params.fwulearningcontent",{"_index":10732,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.query",{"_index":17397,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.route.path",{"_index":17360,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.url",{"_index":17395,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.user",{"_index":17394,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["reqinfo",{"_index":17369,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.baseurl",{"_index":17374,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.fullpath",{"_index":17375,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.method",{"_index":17373,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.routepath",{"_index":17376,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqroute",{"_index":17350,"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":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.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":{},"injectables/PreviewProducer.html":{},"classes/PublicSystemResponse.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/RpcMessageProducer.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":{},"injectables/ToolPermissionHelper.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":4613,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["request(event",{"_index":10627,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["request.body",{"_index":13824,"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":5439,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:14",{"_index":14509,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:20",{"_index":5446,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:24",{"_index":14510,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:30",{"_index":5453,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.contextid",{"_index":5921,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.contexttype",{"_index":5922,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.displayname",{"_index":5923,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper",{"_index":15425,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["request.mapper.ts",{"_index":5910,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:113",{"_index":9125,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:117",{"_index":9132,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:123",{"_index":9136,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:129",{"_index":9139,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:135",{"_index":9143,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:141",{"_index":9129,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:158",{"_index":9147,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:17",{"_index":18149,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:170",{"_index":9123,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:21",{"_index":20286,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:22",{"_index":5917,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:5",{"_index":16017,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["request.mapper.ts:6",{"_index":20284,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:60",{"_index":9152,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:7",{"_index":5914,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:8",{"_index":18151,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:87",{"_index":9119,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.response.ts",{"_index":20564,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:10",{"_index":20566,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:16",{"_index":20570,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:23",{"_index":20568,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:30",{"_index":20565,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.schoolid",{"_index":18155,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.schooltoolid",{"_index":5920,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.toolid",{"_index":18154,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.toolversion",{"_index":5924,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.ts",{"_index":20557,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:10",{"_index":20558,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:4",{"_index":20559,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:6",{"_index":20561,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:8",{"_index":20560,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.user.user",{"_index":22882,"title":{},"body":{"todo.html":{}}}],["request.version",{"_index":18156,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request/bbb",{"_index":2200,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["request/response",{"_index":23239,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["request_denied",{"_index":5458,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["request_url",{"_index":5485,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requestauthcode",{"_index":11413,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthcode(userid",{"_index":11423,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthtoken",{"_index":16086,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestauthtoken(currentuser",{"_index":16107,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestdata",{"_index":14560,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requested",{"_index":5511,"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":5486,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requested_scope",{"_index":5487,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requesthandler",{"_index":17353,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo",{"_index":17337,"title":{"classes/RequestInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo(req",{"_index":17370,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requesting",{"_index":15604,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["requestloggingbody",{"_index":12087,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["requestlogginginterceptor",{"_index":17386,"title":{"injectables/RequestLoggingInterceptor.html":{}},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["requestmapper",{"_index":20732,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["requestmethod",{"_index":228,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["requestoptions",{"_index":14558,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requests",{"_index":13046,"title":{},"body":{"modules/InterceptorModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requesttimeout",{"_index":17700,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TimeoutInterceptor.html":{}}}],["requesttimeout(serverconfig().incoming_request_timeout_copy_api",{"_index":17715,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["requesttimeoutexception",{"_index":20251,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["requesttoken",{"_index":1350,"title":{},"body":{"injectables/AntivirusService.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":15416,"title":{},"body":{"injectables/OAuthService.html":{}}}],["requesturl",{"_index":5509,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["require",{"_index":11798,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["require('../../../../../src/services/authentication/configuration",{"_index":13140,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["require('../../../../config/globals",{"_index":10790,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["require('rimraf",{"_index":10328,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["require_tld",{"_index":21776,"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/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolIdParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GroupIdParams.html":{},"interfaces/ICleanOptions.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/PseudonymParams.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":4129,"title":{},"body":{"injectables/CardService.html":{}}}],["requiredemptyelements",{"_index":4095,"title":{},"body":{"injectables/CardService.html":{},"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["requiredpermissions",{"_index":1799,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LessonRule.html":{},"injectables/NewsUc.html":{},"injectables/PermissionService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiredpermissions.every((p",{"_index":1847,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.length",{"_index":1860,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.some((p",{"_index":1862,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["requireduserrole",{"_index":3091,"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":13412,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"license.html":{}}}],["requirements",{"_index":22542,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["requires",{"_index":8887,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/GlobalValidationPipe.html":{},"injectables/OpenGraphProxyService.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiring",{"_index":22350,"title":{},"body":{"license.html":{}}}],["res",{"_index":6614,"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":10268,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.cookie",{"_index":1641,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["res.cookie('jwt",{"_index":16176,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.data.destroy",{"_index":10266,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.redirect(errorredirect.tostring",{"_index":16141,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(oauthprocessdto.redirect",{"_index":16177,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(redirect",{"_index":16159,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(response.redirect",{"_index":16193,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.send(externaltoollogo.logo",{"_index":20489,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.set",{"_index":10734,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.setheader('cache",{"_index":20486,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.setheader('content",{"_index":20485,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.status(httpstatus.ok",{"_index":10740,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.status(httpstatus.partial_content",{"_index":10739,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.statuscode",{"_index":17363,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resave",{"_index":18562,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":13246,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["resetoauthconfigcache",{"_index":13517,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resinfo",{"_index":17371,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resinfo.statuscode",{"_index":17377,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resizeandconvert",{"_index":16655,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resizeandconvert(original",{"_index":16663,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["resolve",{"_index":5462,"title":{},"body":{"classes/ConsentRequestBody.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/PermissionService.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["resolve(client",{"_index":13792,"title":{},"body":{"injectables/LdapService.html":{}}}],["resolved",{"_index":2997,"title":{},"body":{"injectables/BoardCopyService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ResolvedGroupDto.html":{},"license.html":{}}}],["resolvedgroup",{"_index":11122,"title":{},"body":{"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{}}}],["resolvedgroup.externalsource",{"_index":11138,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.externalid",{"_index":11139,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.externalsource.systemid",{"_index":11140,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.id",{"_index":11135,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.name",{"_index":11136,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.organizationid",{"_index":11146,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroup.users.map",{"_index":11141,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["resolvedgroupdto",{"_index":10961,"title":{"classes/ResolvedGroupDto.html":{}},"body":{"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{}}}],["resolvedgroups",{"_index":11271,"title":{},"body":{"injectables/GroupUc.html":{}}}],["resolvedgroupuser",{"_index":11219,"title":{"classes/ResolvedGroupUser.html":{}},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.html":{}}}],["resolvedgroupusers",{"_index":11267,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["resolvedtools",{"_index":9327,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolvedtools.filter((tool",{"_index":9334,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolveduser",{"_index":20838,"title":{},"body":{"controllers/UserController.html":{},"injectables/UserService.html":{}}}],["resolvedusermapper",{"_index":17411,"title":{"classes/ResolvedUserMapper.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"controllers/UserController.html":{}}}],["resolvedusermapper.maptoresponse(user",{"_index":20839,"title":{},"body":{"controllers/UserController.html":{}}}],["resolveduserresponse",{"_index":17415,"title":{"classes/ResolvedUserResponse.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"controllers/UserController.html":{}}}],["resolvedusers",{"_index":11254,"title":{},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{}}}],["resolvepermissions",{"_index":12161,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["resolvepermissions(user",{"_index":16556,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles",{"_index":16553,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles(inputroles",{"_index":16561,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolveplaceholder(placeholder",{"_index":11818,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["resolverepo",{"_index":17324,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["resolverepo(type",{"_index":12149,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["resolves",{"_index":12942,"title":{},"body":{"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resolvetokenrequest",{"_index":15547,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resolvetokenrequest(observable",{"_index":15553,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resource",{"_index":5129,"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":{},"controllers/ToolReferenceController.html":{}}}],["resource.'})@apiunauthorizedresponse({description",{"_index":20438,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolReferenceController.html":{}}}],["resource.caninline",{"_index":5146,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resource.ts",{"_index":5165,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:15",{"_index":5315,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:16",{"_index":5169,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:18",{"_index":5316,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:19",{"_index":5170,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:22",{"_index":5310,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:23",{"_index":5171,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:26",{"_index":5311,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:30",{"_index":5312,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:61",{"_index":5317,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:81",{"_index":5172,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource_link_id",{"_index":7120,"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":{}}}],["resourceelement.transform",{"_index":5309,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceelements",{"_index":5307,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceid",{"_index":15328,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourcename",{"_index":15329,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourceownerpasswordgrant",{"_index":12671,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceownerpasswordgrant(username",{"_index":12674,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceprops",{"_index":5052,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resources",{"_index":5050,"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":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["resp",{"_index":8018,"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":2311,"title":{},"body":{"injectables/BBBService.html":{}}}],["resp.everyattendeejoinsmuted",{"_index":21986,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.everybodyjoinsasmoderator",{"_index":21987,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.moderatormustapprovejoinrequests",{"_index":21988,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.options",{"_index":8036,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.permission",{"_index":8028,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["resp.state",{"_index":8026,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.url",{"_index":8031,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["respect",{"_index":22465,"title":{},"body":{"license.html":{}}}],["respective",{"_index":23279,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["respobservable",{"_index":11574,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["respond",{"_index":22917,"title":{},"body":{"todo.html":{}}}],["responds",{"_index":14957,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["responsability",{"_index":23095,"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":{},"controllers/BoardSubmissionController.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"classes/ClassInfoSearchListResponse.html":{},"controllers/ColumnController.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.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":{},"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/GroupController.html":{},"classes/GroupResponseMapper.html":{},"controllers/H5PEditorController.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/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RpcMessageProducer.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":{},"classes/SubmissionItemResponseMapper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["response.access_token",{"_index":20289,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.authorization_endpoint",{"_index":13537,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.body",{"_index":1704,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.builder.ts",{"_index":6259,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{},"classes/FileResponseBuilder.html":{}}}],["response.builder.ts:4",{"_index":6261,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["response.builder.ts:5",{"_index":10235,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["response.config",{"_index":9215,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.contentlength",{"_index":10745,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contentrange",{"_index":10738,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contenttype",{"_index":10743,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contextid",{"_index":5944,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.contexttype",{"_index":5945,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.data",{"_index":9829,"title":{},"body":{"classes/FileDtoBuilder.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/HydraOauthUc.html":{}}}],["response.data.access_token",{"_index":13549,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.data.destroy",{"_index":10741,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.displayname",{"_index":5946,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.dto",{"_index":23111,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response.end_session_endpoint",{"_index":13538,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.error",{"_index":1698,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.factory",{"_index":4082,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["response.factory.ts",{"_index":2021,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:12",{"_index":5580,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:14",{"_index":2027,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:16",{"_index":2030,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:18",{"_index":2031,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:20",{"_index":2029,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:22",{"_index":2025,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.headers['content",{"_index":9825,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["response.id",{"_index":5941,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["response.id_token",{"_index":20287,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.ishidden",{"_index":9216,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.issuer",{"_index":13535,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwks_uri",{"_index":13539,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwt",{"_index":15365,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.logourl",{"_index":5949,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.mapper",{"_index":3709,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolResponseMapper.html":{},"modules/LearnroomApiModule.html":{},"controllers/LoginController.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"modules/ProvisioningModule.html":{},"controllers/RoomsController.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolResponseMapper.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":{},"classes/ExternalToolElementResponseMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/GroupResponseMapper.html":{},"classes/LinkElementResponseMapper.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/ToolStatusResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:11",{"_index":20753,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["response.mapper.ts:111",{"_index":18010,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:13",{"_index":14538,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["response.mapper.ts:14",{"_index":18171,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:15",{"_index":17595,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:16",{"_index":978,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:17",{"_index":17493,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:18",{"_index":11115,"title":{},"body":{"classes/GroupResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:19",{"_index":16032,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:21",{"_index":5955,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:23",{"_index":16026,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:26",{"_index":19077,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:27",{"_index":8673,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:28",{"_index":17491,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:29",{"_index":17597,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:32",{"_index":14353,"title":{},"body":{"classes/LinkElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:33",{"_index":18989,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:34",{"_index":18004,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:35",{"_index":18168,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:37",{"_index":11118,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:38",{"_index":5961,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:40",{"_index":16029,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:44",{"_index":9235,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:46",{"_index":5958,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["response.mapper.ts:47",{"_index":17600,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:5",{"_index":14536,"title":{},"body":{"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:51",{"_index":11121,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["response.mapper.ts:53",{"_index":18013,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:6",{"_index":980,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:64",{"_index":18006,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:68",{"_index":18008,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:7",{"_index":3707,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:71",{"_index":9226,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:73",{"_index":17599,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:75",{"_index":9231,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:79",{"_index":9233,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:8",{"_index":8674,"title":{},"body":{"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:83",{"_index":9229,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:9",{"_index":17492,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:93",{"_index":17598,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.message",{"_index":17778,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["response.name",{"_index":9213,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.opennewtab",{"_index":9217,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.parameters",{"_index":5947,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.redirect",{"_index":15366,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.refresh_token",{"_index":20288,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.schoolid",{"_index":18161,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.schooltoolid",{"_index":5943,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.set",{"_index":6636,"title":{},"body":{"controllers/CourseController.html":{}}}],["response.sourceid",{"_index":10476,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["response.state",{"_index":21905,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["response.status",{"_index":18162,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.status(errorresponse.code).json(errorresponse",{"_index":10836,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["response.subject",{"_index":15842,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["response.token_endpoint",{"_index":13536,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.toolid",{"_index":16965,"title":{},"body":{"classes/PseudonymResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.toolversion",{"_index":5948,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.ts",{"_index":17065,"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":17070,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:17",{"_index":17071,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:24",{"_index":17068,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:31",{"_index":17069,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:39",{"_index":17067,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.url",{"_index":9214,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.userid",{"_index":16966,"title":{},"body":{"classes/PseudonymResponse.html":{}}}],["response.version",{"_index":9218,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response?.data",{"_index":1276,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["response].ts",{"_index":23172,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["response_type",{"_index":11509,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["response_types",{"_index":15588,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["responsedata",{"_index":15569,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsefilerecords",{"_index":10138,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["responseinfo",{"_index":17361,"title":{"classes/ResponseInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responseinfo(res",{"_index":17372,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsejson",{"_index":1288,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.authtoken",{"_index":1290,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.userid",{"_index":1289,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsemapper",{"_index":17977,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{},"controllers/ToolSchoolController.html":{}}}],["responses",{"_index":11334,"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":{}}}],["responsetime",{"_index":17352,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetime((req",{"_index":17382,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetoken",{"_index":15450,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["responsetoken.data",{"_index":15573,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetokenobservable",{"_index":15567,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetype",{"_index":8805,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["responsibilities",{"_index":23236,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["responsibility",{"_index":23060,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["responsible",{"_index":22678,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ressouces",{"_index":23710,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressource",{"_index":23711,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["ressources",{"_index":20623,"title":{},"body":{"injectables/ToolPermissionHelper.html":{},"additional-documentation/nestjs-application.html":{}}}],["resssource",{"_index":22918,"title":{},"body":{"todo.html":{}}}],["rest",{"_index":8155,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["restart",{"_index":21039,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restarted",{"_index":14855,"title":{},"body":{"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["restartmigration",{"_index":17435,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(@currentuser",{"_index":21106,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(currentuser",{"_index":21061,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(schoolid",{"_index":21261,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(userid",{"_index":17438,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["restartuserloginmigrationuc",{"_index":17433,"title":{"injectables/RestartUserLoginMigrationUc.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["restmethod",{"_index":23550,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["restore",{"_index":17827,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"controllers/TaskController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["restore(@param",{"_index":19585,"title":{},"body":{"controllers/TaskController.html":{}}}],["restore(paths",{"_index":17844,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["restore(urlparams",{"_index":19560,"title":{},"body":{"controllers/TaskController.html":{}}}],["restored",{"_index":23435,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["restoreforuser(user",{"_index":12547,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["restricted",{"_index":13406,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["restricting",{"_index":22459,"title":{},"body":{"license.html":{}}}],["restriction",{"_index":22637,"title":{},"body":{"license.html":{}}}],["restrictions",{"_index":22635,"title":{},"body":{"license.html":{}}}],["result",{"_index":1750,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardDoCopyService.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":{},"classes/ExternalToolElementResponseMapper.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/LessonRule.html":{},"classes/LinkElementResponseMapper.html":{},"classes/NewsScope.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PseudonymService.html":{},"classes/RecursiveCopyVisitor.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":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["result.content",{"_index":18992,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["result.dto.ts",{"_index":18056,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:4",{"_index":18058,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:6",{"_index":18057,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.push",{"_index":13453,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["result.push(room",{"_index":7528,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["result.query",{"_index":18467,"title":{},"body":{"classes/Scope.html":{}}}],["result.reduce((alloweddos",{"_index":4187,"title":{},"body":{"injectables/CardUc.html":{}}}],["result.success",{"_index":7977,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["result[sortby",{"_index":12866,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["resultelement",{"_index":7508,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["resulting",{"_index":22319,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["resultmap",{"_index":17116,"title":{},"body":{"classes/RecursiveCopyVisitor.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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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":7976,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["results.map((account",{"_index":13605,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["results.push(mapped",{"_index":8117,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["resultuser",{"_index":21517,"title":{},"body":{"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ret",{"_index":13617,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/LegacySchoolService.html":{}}}],["ret.attdbcaccountid",{"_index":13625,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcsystemid",{"_index":13621,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcuserid",{"_index":13623,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["retaccountid",{"_index":13663,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["retains",{"_index":22588,"title":{},"body":{"license.html":{}}}],["retried",{"_index":11610,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrieve",{"_index":14961,"title":{},"body":{"controllers/NewsController.html":{}}}],["retry",{"_index":11608,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrycount",{"_index":11598,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrydelay",{"_index":11599,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retryflags",{"_index":11606,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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/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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/ContentElementUpdateVisitor.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":{},"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/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICleanOptions.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/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponseMapper.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"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":2063,"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":21054,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["returning",{"_index":6152,"title":{},"body":{"classes/CopyApiResponse.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"additional-documentation/nestjs-application/software-architecture.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/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/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalToolElement.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"classes/LinkElementResponseMapper.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":{},"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/OpenGraphProxyService.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"controllers/PseudonymController.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":{},"classes/SortHelper.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["retvalue",{"_index":23358,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["reuse",{"_index":5443,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["reused",{"_index":23187,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["revalidate",{"_index":20488,"title":{},"body":{"controllers/ToolController.html":{}}}],["revert.service.ts",{"_index":21230,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:13",{"_index":21234,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:7",{"_index":21232,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["reverted",{"_index":21044,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["revertpublished",{"_index":19545,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["revertpublished(urlparams",{"_index":19563,"title":{},"body":{"controllers/TaskController.html":{}}}],["revertpublished(userid",{"_index":19964,"title":{},"body":{"injectables/TaskUC.html":{}}}],["revertuserloginmigration",{"_index":21231,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revertuserloginmigration(userloginmigration",{"_index":21233,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["review",{"_index":23498,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reviewers",{"_index":22246,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["reviewing",{"_index":22824,"title":{},"body":{"license.html":{}}}],["revised",{"_index":22779,"title":{},"body":{"license.html":{}}}],["revokeconsentparams",{"_index":15882,"title":{"classes/RevokeConsentParams.html":{}},"body":{"controllers/OauthProviderController.html":{},"classes/RevokeConsentParams.html":{}}}],["revokeconsentsession",{"_index":15852,"title":{},"body":{"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["revokeconsentsession(@currentuser",{"_index":15943,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(currentuser",{"_index":15881,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(user",{"_index":16062,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["revokeconsentsession(userid",{"_index":16076,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["revokematch",{"_index":12050,"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":15603,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["rich",{"_index":2847,"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":17448,"title":{"classes/RichText.html":{}},"body":{"classes/RichText.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["richtextcontentbody",{"_index":5646,"title":{"classes/RichTextContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelement",{"_index":2835,"title":{"classes/RichTextElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelement.id",{"_index":17289,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.inputformat",{"_index":5676,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.text",{"_index":5673,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelementcontent",{"_index":17478,"title":{"classes/RichTextElementContent.html":{}},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementcontentbody",{"_index":8177,"title":{"classes/RichTextElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelementnode",{"_index":3186,"title":{"entities/RichTextElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementnodefactory",{"_index":3531,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodefactory.build",{"_index":3555,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodeprops",{"_index":17486,"title":{"interfaces/RichTextElementNodeProps.html":{}},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementprops",{"_index":17476,"title":{"interfaces/RichTextElementProps.html":{}},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["richtextelementresponse",{"_index":3979,"title":{"classes/RichTextElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper",{"_index":5585,"title":{"classes/RichTextElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper.getinstance",{"_index":5577,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["richtextelementresponsemapper.instance",{"_index":17496,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["richtext})@decodehtmlentities",{"_index":19853,"title":{},"body":{"classes/TaskResponse.html":{}}}],["rid",{"_index":4751,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["right",{"_index":22582,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rights",{"_index":22302,"title":{},"body":{"license.html":{}}}],["rimraf",{"_index":10327,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"dependencies.html":{}}}],["rimraf.sync(folderpath",{"_index":10342,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["risk",{"_index":22798,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rmq",{"_index":10826,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["ro",{"_index":1175,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocket",{"_index":17504,"title":{},"body":{"modules/RocketChatModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket.chat",{"_index":23571,"title":{"additional-documentation/nestjs-application/rocket.chat.html":{}},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat",{"_index":12191,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["rocket_chat_admin_password=huhudbildungscloud",{"_index":23622,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_admin_user=admin",{"_index":23621,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_options",{"_index":17506,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["rocket_chat_uri=\"http://localhost:3000",{"_index":23620,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat",{"_index":1183,"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":23619,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchaterror",{"_index":1181,"title":{"classes/RocketChatError.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror(e",{"_index":1275,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror.prototype",{"_index":1200,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatgroupmodel",{"_index":1165,"title":{"interfaces/RocketChatGroupModel.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatmodule",{"_index":17501,"title":{"modules/RocketChatModule.html":{}},"body":{"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rocketchatmodule.forroot",{"_index":18544,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["rocketchatoptions",{"_index":1160,"title":{"interfaces/RocketChatOptions.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatservice",{"_index":1209,"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/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupUc.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.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":{},"interfaces/OauthCurrentUser.html":{},"classes/OidcConfig.html":{},"injectables/PermissionService.html":{},"classes/ResolvedGroupUser.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/SystemEntity.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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["role.entity",{"_index":12554,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["role.factory",{"_index":21004,"title":{},"body":{"classes/UserFactory.html":{}}}],["role.id",{"_index":7083,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["role.mapper.ts",{"_index":14610,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.mapper.ts:13",{"_index":14613,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.name",{"_index":4572,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/FeathersRosterService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{}}}],["role.params",{"_index":4624,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["role.params.ts",{"_index":20106,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:11",{"_index":20107,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:7",{"_index":20108,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.resolvepermissions",{"_index":1850,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["role.roles.isinitialized(true",{"_index":20186,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roleadmin",{"_index":12400,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleattributenamemapping",{"_index":12397,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roledto",{"_index":4541,"title":{"classes/RoleDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupUser.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["roledtos",{"_index":17573,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolefactory",{"_index":20158,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["rolefactory.build",{"_index":20160,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["rolefactory.buildwithid",{"_index":20162,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["roleid",{"_index":4666,"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":20967,"title":{},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["rolemapper",{"_index":17515,"title":{"classes/RoleMapper.html":{}},"body":{"classes/RoleMapper.html":{},"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(entities",{"_index":17580,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(roles",{"_index":17578,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitytodto(entity",{"_index":17576,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapping",{"_index":14615,"title":{},"body":{"classes/LtiRoleMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolemapping[rolename",{"_index":14623,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolemapping[source.personenkontexte[0].rolle",{"_index":18032,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["rolemodule",{"_index":1547,"title":{"modules/RoleModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/GroupApiModule.html":{},"modules/ProvisioningModule.html":{},"modules/RoleModule.html":{},"modules/UserModule.html":{},"modules.html":{}}}],["rolename",{"_index":4571,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersRosterService.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRoleProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{}}}],["rolename.administrator",{"_index":12012,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserFactory.html":{}}}],["rolename.enum",{"_index":23717,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["rolename.student",{"_index":9719,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/UserData.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["rolename.superhero",{"_index":14620,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolename.teacher",{"_index":9718,"title":{},"body":{"injectables/FeathersRosterService.html":{},"classes/GroupUcMapper.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleService.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/UserData.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["rolename.user",{"_index":14616,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenamemapper",{"_index":12862,"title":{"classes/RoleNameMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/RoleNameMapper.html":{}}}],["rolenamemapper.maptodomain(query.role",{"_index":12889,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenamemapper.maptoresponse(role",{"_index":12872,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenames",{"_index":12009,"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":{},"classes/LtiRoleMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["rolenames.map((rolename",{"_index":14622,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenosc",{"_index":12401,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["rolepermissions",{"_index":12602,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roleref",{"_index":21622,"title":{},"body":{"injectables/UserService.html":{}}}],["roleref.id",{"_index":7086,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["roleref.name",{"_index":13117,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["rolereference",{"_index":7080,"title":{"classes/RoleReference.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleReference.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserService.html":{}}}],["rolerefs",{"_index":16338,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolerepo",{"_index":17530,"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/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/IservMapper.html":{},"interfaces/JwtPayload.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"interfaces/OauthCurrentUser.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":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["roles.foreach((role",{"_index":12601,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roles.length",{"_index":16381,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["roles.map((role",{"_index":16341,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{}}}],["roles.map(async",{"_index":20185,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roles[0].id",{"_index":16382,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolesandpermissions",{"_index":16568,"title":{},"body":{"injectables/PermissionService.html":{}}}],["roleservice",{"_index":4652,"title":{"injectables/RoleService.html":{}},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/GroupUc.html":{},"injectables/OidcProvisioningService.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["rolestudent",{"_index":12398,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleteacher",{"_index":12399,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roletype",{"_index":12393,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roleuc",{"_index":17531,"title":{"injectables/RoleUc.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleUc.html":{}}}],["rollback",{"_index":17886,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["rollbackmigration",{"_index":18317,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["rollbackmigration(originalschooldo",{"_index":18337,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["rollbackmigration(userdocopy",{"_index":21420,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["rolle",{"_index":17971,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["rollen",{"_index":17953,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["rom",{"_index":22591,"title":{},"body":{"license.html":{}}}],["room",{"_index":7420,"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":8075,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{}}}],["roomboarddtofactory",{"_index":8148,"title":{"injectables/RoomBoardDTOFactory.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["roomboardelementdto",{"_index":8073,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["roomboardelementtypes",{"_index":3441,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.column_board",{"_index":8137,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.lesson",{"_index":8126,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.task",{"_index":8122,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardresponsemapper",{"_index":13851,"title":{"injectables/RoomBoardResponseMapper.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{}}}],["roomelementurlparams",{"_index":17648,"title":{"classes/RoomElementUrlParams.html":{}},"body":{"classes/RoomElementUrlParams.html":{},"controllers/RoomsController.html":{}}}],["roomid",{"_index":1233,"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":7449,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["roomlist.includes(room",{"_index":7520,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["roomname",{"_index":1225,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rooms",{"_index":7424,"title":{},"body":{"classes/DashboardEntity.html":{},"controllers/RoomsController.html":{}}}],["rooms.authorisation.service",{"_index":8096,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["rooms.foreach((room",{"_index":7526,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["rooms.service",{"_index":6658,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["roomsauthorisationservice",{"_index":8057,"title":{"injectables/RoomsAuthorisationService.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{}}}],["roomscontroller",{"_index":13854,"title":{"controllers/RoomsController.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["roomsservice",{"_index":6647,"title":{"injectables/RoomsService.html":{}},"body":{"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["roomsuc",{"_index":13852,"title":{"injectables/RoomsUc.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{},"injectables/RoomsUc.html":{}}}],["roomurlparams",{"_index":17651,"title":{"classes/RoomUrlParams.html":{}},"body":{"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{}}}],["root",{"_index":2470,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/GroupUcMapper.html":{},"modules/ToolLaunchModule.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":5284,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["rootid",{"_index":3135,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rootpath",{"_index":12386,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["roster",{"_index":9630,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts",{"_index":9629,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["roster.service.ts:100",{"_index":9658,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:137",{"_index":9653,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:145",{"_index":9662,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:153",{"_index":9651,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:163",{"_index":9655,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:169",{"_index":9650,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:199",{"_index":9669,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:211",{"_index":9673,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:222",{"_index":9671,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:232",{"_index":9666,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:53",{"_index":9648,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:63",{"_index":9664,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["roster.service.ts:78",{"_index":9660,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["route",{"_index":9570,"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":17367,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routename",{"_index":1690,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["routenameinput",{"_index":20203,"title":{},"body":{"classes/TestApiClient.html":{}}}],["routepath",{"_index":17340,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routes",{"_index":22219,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["routingkey",{"_index":1314,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.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":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"interfaces/ScanResult.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["royalty",{"_index":22693,"title":{},"body":{"license.html":{}}}],["rp",{"_index":11942,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/OauthCurrentUser.html":{}}}],["rpc",{"_index":17775,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["rpcmessage",{"_index":10512,"title":{"interfaces/RpcMessage.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"injectables/PreviewProducer.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{}}}],["rpcmessageproducer",{"_index":10613,"title":{"classes/RpcMessageProducer.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{}}}],["rpcmessageproducer:12",{"_index":10628,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:21",{"_index":10624,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rpcmessageproducer:29",{"_index":10626,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["rs.initiate({\"_id",{"_index":23580,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs0",{"_index":23577,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs256",{"_index":1593,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["rs384",{"_index":1594,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rs512",{"_index":1595,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rsa",{"_index":15560,"title":{},"body":{"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["rss",{"_index":6855,"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":2006,"title":{"interfaces/Rule.html":{}},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":5396,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["rule.haspermission(user",{"_index":2012,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["rule.isapplicable(user",{"_index":17815,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rulemanager",{"_index":1894,"title":{"injectables/RuleManager.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/RuleManager.html":{}}}],["rules",{"_index":1906,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionItemUc.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rules.length",{"_index":17817,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rules[0",{"_index":17819,"title":{},"body":{"injectables/RuleManager.html":{}}}],["run",{"_index":22215,"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":23385,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["running",{"_index":2226,"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":21722,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["runs",{"_index":22208,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runtime",{"_index":1584,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["rxjs",{"_index":1157,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ExternalToolLogoService.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":1159,"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":1772,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BoardDoRepo.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["s3",{"_index":7963,"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":17856,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3_config",{"_index":17857,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3client",{"_index":7951,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["s3clientadapter",{"_index":10766,"title":{"injectables/S3ClientAdapter.html":{}},"body":{"injectables/FwuLearningContentsUc.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientadapter(s3client",{"_index":17926,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["s3clientadapter:createbucket",{"_index":17865,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientadapter:deletedirectory",{"_index":17912,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientmap",{"_index":7938,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["s3clientmodule",{"_index":10588,"title":{"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/S3ClientModule.html":{},"modules.html":{}}}],["s3clientmodule.register",{"_index":23752,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([s3config",{"_index":10603,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([storageconfig",{"_index":16643,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["s3config",{"_index":6267,"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":{},"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["safest",{"_index":22837,"title":{},"body":{"license.html":{}}}],["safety",{"_index":22228,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sale",{"_index":22701,"title":{},"body":{"license.html":{}}}],["salt",{"_index":2246,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["same",{"_index":2257,"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":9563,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["samesite",{"_index":16169,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["saml",{"_index":23513,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["sample",{"_index":9757,"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":23396,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["samples",{"_index":23204,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservice",{"_index":23397,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservicemethod(username",{"_index":23285,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["sampleucmethod(user",{"_index":23251,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["sanis",{"_index":17945,"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":22964,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sanisgrouprole",{"_index":17954,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisgrouprole.student",{"_index":18021,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouprole.teacher",{"_index":18020,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype",{"_index":17944,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype.class",{"_index":18023,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.ktid",{"_index":18041,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupuser.rollen",{"_index":18042,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupusers",{"_index":18036,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenresponse",{"_index":17946,"title":{"interfaces/SanisGruppenResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenzugehoerigkeitresponse",{"_index":17950,"title":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["sanisgrupperesponse",{"_index":17937,"title":{"interfaces/SanisGruppeResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["sanislaufzeitresponse",{"_index":17943,"title":{"interfaces/SanisLaufzeitResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["sanisnameresponse",{"_index":17957,"title":{"interfaces/SanisNameResponse.html":{}},"body":{"interfaces/SanisNameResponse.html":{},"interfaces/SanisPersonResponse.html":{}}}],["sanisorganisationresponse",{"_index":17960,"title":{"interfaces/SanisOrganisationResponse.html":{}},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["sanispersonenkontextresponse",{"_index":17968,"title":{"interfaces/SanisPersonenkontextResponse.html":{}},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanispersonresponse",{"_index":17963,"title":{"interfaces/SanisPersonResponse.html":{}},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanisprovisioningstrategy",{"_index":16839,"title":{"injectables/SanisProvisioningStrategy.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["sanisresponse",{"_index":17984,"title":{"interfaces/SanisResponse.html":{}},"body":{"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisresponsemapper",{"_index":16840,"title":{"injectables/SanisResponseMapper.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole",{"_index":17972,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lehr",{"_index":18015,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.leit",{"_index":18017,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lern",{"_index":18016,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.orgadmin",{"_index":18018,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanissonstigegruppenzugehoerigeresponse",{"_index":11151,"title":{"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"interfaces/SanisGruppenResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisstrategy",{"_index":16853,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["sanissystem",{"_index":21284,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanissystem.id",{"_index":21287,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanitize",{"_index":22176,"title":{},"body":{"dependencies.html":{}}}],["sanitizehtml",{"_index":7051,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/PatchGroupParams.html":{},"classes/RenameBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text",{"_index":7052,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text_ck5",{"_index":19682,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sanitizer",{"_index":22869,"title":{},"body":{"todo.html":{}}}],["sanitizerichtext",{"_index":5641,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RichText.html":{}}}],["sanitizerichtext(content",{"_index":17456,"title":{},"body":{"classes/RichText.html":{}}}],["sanitizerichtext(this.content.alternativetext",{"_index":5655,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.caption",{"_index":5652,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizerichtext(this.content.text",{"_index":5674,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["sanitizing",{"_index":23112,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["satisfied",{"_index":9599,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["satisfies",{"_index":532,"title":{},"body":{"controllers/AccountController.html":{}}}],["satisfy",{"_index":9595,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"license.html":{}}}],["save",{"_index":18,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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":{},"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/AccountServiceDb.html":{}}}],["save(domainobject",{"_index":3338,"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":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":{}}}],["save(group",{"_index":11176,"title":{},"body":{"injectables/GroupService.html":{}}}],["save(school",{"_index":14081,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["save(systemdto",{"_index":19468,"title":{},"body":{"injectables/SystemService.html":{}}}],["save(user",{"_index":21599,"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":3346,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["save.visitor.ts",{"_index":17239,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:113",{"_index":17258,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:129",{"_index":17259,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:144",{"_index":17260,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:158",{"_index":17262,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:172",{"_index":17256,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:188",{"_index":17253,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:195",{"_index":17249,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:203",{"_index":17246,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:36",{"_index":17244,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:40",{"_index":17250,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:54",{"_index":17255,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:69",{"_index":17254,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:83",{"_index":17251,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:98",{"_index":17257,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveall",{"_index":2352,"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":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":{}}}],["saveall(users",{"_index":21601,"title":{},"body":{"injectables/UserService.html":{}}}],["saveallusersmatches",{"_index":12741,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(@currentuser",{"_index":12810,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(currentuser",{"_index":12758,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["savecontextexternaltool",{"_index":6025,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["savecontextexternaltool(contextexternaltool",{"_index":6037,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saved",{"_index":9415,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["savedcontextexternaltool",{"_index":6042,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saveddomainobject",{"_index":8976,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["saveddos",{"_index":2398,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["saveddos[0",{"_index":2400,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["savedentity",{"_index":11084,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedgroup",{"_index":11185,"title":{},"body":{"injectables/GroupService.html":{}}}],["savedmigration",{"_index":21274,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["savedpassword",{"_index":14382,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["savedprops",{"_index":11087,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedschool",{"_index":16336,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["saveduser",{"_index":16354,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{}}}],["saveduser.id",{"_index":16357,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["savedusers",{"_index":21614,"title":{},"body":{"injectables/UserService.html":{}}}],["saveschoolexternaltool",{"_index":18193,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveschoolexternaltool(schoolexternaltool",{"_index":18206,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveuninitialized",{"_index":18563,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["savevisitor",{"_index":3377,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savevisitor.save(domainobject",{"_index":3380,"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":21511,"title":{},"body":{"injectables/UserRepo.html":{}}}],["saying",{"_index":22538,"title":{},"body":{"license.html":{}}}],["sc",{"_index":3909,"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":17380,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["sc_domain",{"_index":12234,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["sc_theme",{"_index":4863,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["scan",{"_index":10150,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanned",{"_index":10041,"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":1330,"title":{"interfaces/ScanResult.html":{}},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"interfaces/ScanResult.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["scanresult.error",{"_index":1368,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.reason",{"_index":10145,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.status",{"_index":10144,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.virus_detected",{"_index":1365,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresult.virus_signature",{"_index":1366,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["scanresultdto",{"_index":10132,"title":{"classes/ScanResultDto.html":{}},"body":{"classes/FileRecordMapper.html":{},"controllers/FileSecurityController.html":{},"classes/ScanResultDto.html":{}}}],["scanresultparams",{"_index":6239,"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":10149,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_detected",{"_index":10143,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_signature",{"_index":10146,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scans",{"_index":11707,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["scanstatus",{"_index":6191,"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":10085,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.error",{"_index":10088,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.pending",{"_index":10040,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.verified",{"_index":10094,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.wont_check",{"_index":10091,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scdomain",{"_index":13414,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["scenario",{"_index":23342,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["scenarios",{"_index":23333,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["schema",{"_index":3981,"title":{},"body":{"controllers/CardController.html":{},"classes/CommonCartridgeMetadataElement.html":{},"entities/Course.html":{},"controllers/ElementController.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["schema.ts",{"_index":23176,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemas",{"_index":23177,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemaversion",{"_index":5256,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["school",{"_index":192,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"injectables/BoardDoCopyService.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/ContextExternalToolUc.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/ExternalToolService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/GroupApiModule.html":{},"controllers/GroupController.html":{},"injectables/GroupUc.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":{},"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":{},"modules/PseudonymApiModule.html":{},"injectables/PseudonymUc.html":{},"classes/RecursiveCopyVisitor.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/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/ToolReferenceService.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.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":{},"classes/UsersList.html":{},"modules/VideoConferenceModule.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["school'})@apiokresponse({description",{"_index":20330,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["school(params",{"_index":23673,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["school(value",{"_index":12559,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["school.'})@apiresponse({status",{"_index":10947,"title":{},"body":{"controllers/GroupController.html":{}}}],["school._id",{"_index":13014,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["school.controller",{"_index":13921,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.controller.ts",{"_index":13924,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:101",{"_index":20719,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:121",{"_index":20715,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:28",{"_index":13938,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:46",{"_index":20726,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:51",{"_index":13933,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:61",{"_index":20722,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:79",{"_index":20730,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.do.ts",{"_index":13961,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:11",{"_index":13966,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:13",{"_index":13967,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:15",{"_index":13970,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:17",{"_index":13968,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:19",{"_index":13969,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:21",{"_index":13972,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:23",{"_index":13965,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:26",{"_index":13971,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:28",{"_index":13973,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:31",{"_index":13963,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:9",{"_index":13964,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.dto",{"_index":15701,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["school.dto.ts",{"_index":8451,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:2",{"_index":8454,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:4",{"_index":8455,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:6",{"_index":8453,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.entity",{"_index":6521,"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":{},"classes/UsersList.html":{}}}],["school.factory",{"_index":6737,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["school.factory.ts",{"_index":13989,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["school.features",{"_index":14084,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.filter((f",{"_index":14086,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.includes(feature",{"_index":14085,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features?.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":15448,"title":{},"body":{"injectables/OAuthService.html":{}}}],["school.id",{"_index":14822,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolValidationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["school.module",{"_index":13919,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.module.ts",{"_index":14011,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["school.name",{"_index":16327,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["school.officialschoolnumber",{"_index":323,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["school.previousexternalid",{"_index":13840,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.previousexternalid}/${username}`.tolowercase",{"_index":13843,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.repo.ts",{"_index":14013,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:19",{"_index":14016,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:24",{"_index":14024,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:28",{"_index":14019,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:35",{"_index":14021,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.rule.ts",{"_index":14057,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:12",{"_index":14058,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:15",{"_index":14060,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:21",{"_index":14059,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.schoolyear",{"_index":20916,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.service.ts",{"_index":14062,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:10",{"_index":14069,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:16",{"_index":14078,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:21",{"_index":14080,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:29",{"_index":14073,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:35",{"_index":14071,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:41",{"_index":14075,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:47",{"_index":14082,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.systems",{"_index":13814,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.systems.includes(systemid",{"_index":13815,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{}}}],["school.systems.push(systemid",{"_index":16331,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school.systems?.filter((systemid",{"_index":21286,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["school.uc.ts",{"_index":14093,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:101",{"_index":14097,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:16",{"_index":14095,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:26",{"_index":14102,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:77",{"_index":14100,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school/controller/dto/migration.body.ts",{"_index":14809,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:12",{"_index":14812,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:21",{"_index":14811,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:30",{"_index":14810,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.response.ts",{"_index":14852,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:14",{"_index":14858,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:20",{"_index":14857,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:26",{"_index":14856,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:31",{"_index":14853,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:8",{"_index":14859,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/school.params.ts",{"_index":18402,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/dto/school.params.ts:11",{"_index":18403,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/legacy",{"_index":13923,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school/error/school",{"_index":18393,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school/legacy",{"_index":13916,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["school/mapper/migration.mapper.ts",{"_index":14833,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/mapper/migration.mapper.ts:7",{"_index":14836,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/repo/schoolyear.repo.ts",{"_index":18442,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:11",{"_index":18444,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:7",{"_index":18445,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/service/federal",{"_index":9778,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["school/service/legacy",{"_index":14061,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school/service/school",{"_index":18448,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["school/service/validation/school",{"_index":18429,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["school/types",{"_index":16321,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school/uc/dto/oauth",{"_index":15743,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["school/uc/legacy",{"_index":14092,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school?.id",{"_index":16413,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["school_external_tools",{"_index":12174,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["school_in_migration",{"_index":18280,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["school_migration_failed",{"_index":18305,"title":{},"body":{"classes/SchoolMigrationError.html":{}}}],["school_number_duplicate",{"_index":18396,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school_number_missing",{"_index":18401,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["schooldo",{"_index":13073,"title":{},"body":{"classes/IservMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schooldo.externalid",{"_index":13077,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.features",{"_index":21291,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":21292,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.push(schoolfeatures.oauth_provisioning_enabled",{"_index":21293,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.name",{"_index":13076,"title":{},"body":{"classes/IservMapper.html":{}}}],["schooldo.officialschoolnumber",{"_index":13078,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.previousexternalid",{"_index":18384,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems",{"_index":18382,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems.push(targetsystemid",{"_index":18383,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldocopy",{"_index":18354,"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/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"classes/UsersList.html":{}}}],["schoolentity(props",{"_index":14032,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolexclusive",{"_index":18603,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["schoolexternal",{"_index":18098,"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/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.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/ToolReferenceService.html":{},"controllers/ToolSchoolController.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltool'})@httpcode(httpstatus.no_content",{"_index":20718,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool.id",{"_index":8546,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltool.name",{"_index":18176,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.parameters",{"_index":280,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["schoolexternaltool.schoolid",{"_index":311,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.status",{"_index":18179,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolid",{"_index":8550,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolversion",{"_index":18178,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse",{"_index":18085,"title":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":20380,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplateresponse",{"_index":18087,"title":{"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltooldto",{"_index":18152,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolentity",{"_index":5778,"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":18136,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["schoolexternaltoolfactory",{"_index":18092,"title":{"classes/SchoolExternalToolFactory.html":{}},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolfactory.define(schoolexternaltool",{"_index":18097,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolid",{"_index":5737,"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":18099,"title":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{}},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolids",{"_index":5851,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolmodule",{"_index":5814,"title":{"modules/SchoolExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["schoolexternaltoolparams",{"_index":20724,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolparams.schoolid",{"_index":20734,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolpostparams",{"_index":18108,"title":{"classes/SchoolExternalToolPostParams.html":{}},"body":{"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolprops",{"_index":18077,"title":{"interfaces/SchoolExternalToolProps.html":{}},"body":{"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["schoolexternaltoolquery",{"_index":18122,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolqueryinput",{"_index":18234,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["schoolexternaltoolrefdo",{"_index":5706,"title":{"classes/SchoolExternalToolRefDO.html":{}},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schoolexternaltoolrepo",{"_index":1933,"title":{"injectables/SchoolExternalToolRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CommonToolModule.html":{},"injectables/ExternalToolService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolrequestmapper",{"_index":18146,"title":{"injectables/SchoolExternalToolRequestMapper.html":{}},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse",{"_index":18157,"title":{"classes/SchoolExternalToolResponse.html":{}},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponsemapper",{"_index":18163,"title":{"injectables/SchoolExternalToolResponseMapper.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apibadrequestresponse({type",{"_index":20729,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":20714,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolrule",{"_index":1895,"title":{"injectables/SchoolExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["schoolexternaltools",{"_index":8528,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltools.filter",{"_index":8542,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["schoolexternaltools.length",{"_index":9730,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltools.map",{"_index":9341,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolscope",{"_index":18124,"title":{"classes/SchoolExternalToolScope.html":{}},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolsearchlistresponse",{"_index":18172,"title":{"classes/SchoolExternalToolSearchListResponse.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolsearchlistresponse(responses",{"_index":18175,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolsearchparams",{"_index":18186,"title":{"classes/SchoolExternalToolSearchParams.html":{}},"body":{"classes/SchoolExternalToolSearchParams.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolservice",{"_index":6057,"title":{"injectables/SchoolExternalToolService.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["schoolexternaltoolsinuse",{"_index":8585,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltoolsinuse.map",{"_index":8589,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltooluc",{"_index":18220,"title":{"injectables/SchoolExternalToolUc.html":{}},"body":{"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolvalidationservice",{"_index":18106,"title":{"injectables/SchoolExternalToolValidationService.html":{}},"body":{"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltoolversion",{"_index":18250,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolfactory",{"_index":6736,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.build",{"_index":6746,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.buildwithid",{"_index":20163,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["schoolfeatures",{"_index":12184,"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":{}}}],["schoolfeatures.enable_ldap_sync_during_migration",{"_index":21279,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.oauth_provisioning_enabled",{"_index":16335,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schoolforgroupnotfoundloggable",{"_index":16322,"title":{"classes/SchoolForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["schoolforgroupnotfoundloggable(externalgroup",{"_index":16365,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["schoolid",{"_index":4205,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.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":{},"injectables/FeathersRosterService.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":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.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/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":{},"interfaces/OauthCurrentUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewBuilder.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/SchoolSpecificFileCopyServiceImpl.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["schoolid'})@index",{"_index":6752,"title":{},"body":{"entities/CourseGroup.html":{},"entities/Submission.html":{}}}],["schooliddoesnotmatchwithuserschoolid",{"_index":18266,"title":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["schoolidparams",{"_index":18276,"title":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{}},"body":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolinfo",{"_index":18297,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.id",{"_index":18298,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.name",{"_index":18299,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper",{"_index":15032,"title":{"classes/SchoolInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper.maptoresponse(news.school",{"_index":15037,"title":{},"body":{"classes/NewsMapper.html":{}}}],["schoolinforesponse",{"_index":15004,"title":{"classes/SchoolInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{}}}],["schoolinmigrationerror",{"_index":15507,"title":{"classes/SchoolInMigrationError.html":{}},"body":{"injectables/Oauth2Strategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["schoolinusermigrationendloggable",{"_index":18281,"title":{"classes/SchoolInUserMigrationEndLoggable.html":{}},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["schoolinusermigrationstartloggable",{"_index":18287,"title":{"classes/SchoolInUserMigrationStartLoggable.html":{}},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["schoolmigrated",{"_index":18362,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolmigrationerror",{"_index":18303,"title":{"classes/SchoolMigrationError.html":{}},"body":{"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationerror(details",{"_index":21332,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationflags",{"_index":18306,"title":{"interfaces/SchoolMigrationFlags.html":{}},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["schoolmigrationservice",{"_index":4483,"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":12390,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SystemEntity.html":{}}}],["schoolnews",{"_index":6882,"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":6880,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnumber",{"_index":14076,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["schoolnumber_prefix_regex",{"_index":18000,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["schoolnumberduplicateloggableexception",{"_index":18392,"title":{"classes/SchoolNumberDuplicateLoggableException.html":{}},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolnumberduplicateloggableexception(school.officialschoolnumber",{"_index":18435,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["schoolnumbermissingloggableexception",{"_index":18397,"title":{"classes/SchoolNumberMissingLoggableException.html":{}},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolnumbermissingloggableexception(schoolid",{"_index":18911,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["schoolnumbermissingloggableexception})@apiokresponse({description",{"_index":21077,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["schoolparameter",{"_index":7302,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["schoolparameters",{"_index":12173,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["schoolparams",{"_index":13928,"title":{"classes/SchoolParams.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/SchoolParams.html":{}}}],["schoolparams.schoolid",{"_index":13953,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolrepo",{"_index":12125,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolrolepermission",{"_index":12201,"title":{"classes/SchoolRolePermission.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolroles",{"_index":12204,"title":{"classes/SchoolRoles.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolrule",{"_index":23697,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["schools",{"_index":10031,"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":14030,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolservice",{"_index":132,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/GroupUc.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.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":{}}}],["schoolspecificfilecopyservice",{"_index":3301,"title":{"interfaces/SchoolSpecificFileCopyService.html":{}},"body":{"injectables/BoardDoCopyService.html":{},"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicecopyparams",{"_index":18411,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyservicefactory",{"_index":3576,"title":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceimpl",{"_index":18420,"title":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schoolspecificfilecopyserviceimpl(this.filesstorageclientadapterservice",{"_index":18421,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["schoolspecificfilecopyserviceprops",{"_index":18414,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["schooltomigrate",{"_index":16227,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schooltomigrate(currentuserid",{"_index":18340,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooltool",{"_index":5771,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["schooltool.school",{"_index":5883,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["schooltoolid",{"_index":5797,"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":5699,"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":12104,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["schooluc",{"_index":13949,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolvalidationservice",{"_index":14009,"title":{"injectables/SchoolValidationService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolyear",{"_index":4323,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"injectables/FederalStateService.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.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":{},"injectables/SchoolYearService.html":{}}}],["schoolyear.entity",{"_index":12188,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolyear.factory",{"_index":13993,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyear?.name",{"_index":11302,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["schoolyearentity",{"_index":10752,"title":{"entities/SchoolYearEntity.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearfactory",{"_index":13992,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory.build",{"_index":14004,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearrepo",{"_index":14010,"title":{"injectables/SchoolYearRepo.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearservice",{"_index":11197,"title":{"injectables/SchoolYearService.html":{}},"body":{"injectables/GroupUc.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["schould",{"_index":7040,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{}}}],["schul",{"_index":2132,"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/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":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/PseudonymService.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":11526,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ServerController.html":{},"additional-documentation/nestjs-application.html":{}}}],["schulcloudnextcloud",{"_index":15966,"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/ExternalToolPseudonymRepo.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/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":{},"classes/OauthLoginResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"classes/PseudonymScope.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"injectables/SubmissionRepo.html":{},"entities/SystemEntity.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":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope)roles",{"_index":23653,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope.addquery(allforcreator.query",{"_index":19802,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(allforfinishedcoursesandlessons.query",{"_index":19801,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(closedforopencoursesandlessons.query",{"_index":19800,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(parentidscope.query",{"_index":19815,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.afterduedateornone(filters.afterduedateornone",{"_index":19822,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.allowemptyquery(true",{"_index":5889,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byavailable(filters?.availableon",{"_index":19826,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byclasses(filters.classes",{"_index":12960,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bycontextid(query.context?.id",{"_index":5887,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycontexttype(query.context?.type",{"_index":5888,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycourseids([courseid",{"_index":19828,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.bycourseids(courseids",{"_index":14223,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.bycreator(creatorid",{"_index":15096,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bydraft(false",{"_index":19820,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfinished(filters.finished.userid",{"_index":19817,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfirstname(filters.firstname",{"_index":12952,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byhidden(filters.hidden",{"_index":14225,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.byid(query.id",{"_index":5885,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bylastname(filters.lastname",{"_index":12954,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byloginname(filters.loginname",{"_index":12956,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bymatches(filters.matches",{"_index":12962,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bypublished",{"_index":15092,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byrole(filters.role",{"_index":12958,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschool(school",{"_index":12950,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschoolid(query.schoolid",{"_index":18137,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byschooltoolid(query.schooltoolref?.schooltoolid",{"_index":5886,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bytargets(targets",{"_index":15091,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bytoolid(query.toolid",{"_index":18138,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byunpublished",{"_index":15095,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byusermatch(user",{"_index":12948,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.enum",{"_index":21830,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["scope.excludedraftsofothers(creatorid",{"_index":19830,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludedraftsofothers(parentids.creatorid",{"_index":19819,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludeunavailableofothers(parentids.creatorid",{"_index":19824,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.foractivecourses",{"_index":6929,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forallgrouptypes(userid",{"_index":6927,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forcourseid(courseid",{"_index":6938,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacher(userid",{"_index":6934,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacherorsubstituteteacher(userid",{"_index":6937,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.id",{"_index":21800,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.isflagged(true",{"_index":12964,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.name",{"_index":21360,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["scope.nofutureavailabledate",{"_index":19832,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.params.ts",{"_index":22029,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:12",{"_index":22033,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:8",{"_index":22031,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.query",{"_index":5882,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolPseudonymRepo.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":9751,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["scope.scope",{"_index":21806,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.target",{"_index":15205,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope.targetid",{"_index":20078,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.targetmodel",{"_index":20080,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.transient",{"_index":13894,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["scope.ts",{"_index":10208,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:10",{"_index":14272,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:13",{"_index":10215,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:15",{"_index":19458,"title":{},"body":{"classes/SystemScope.html":{}}}],["scope.ts:17",{"_index":19899,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:19",{"_index":10222,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:25",{"_index":10224,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:31",{"_index":10217,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:37",{"_index":15131,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:39",{"_index":19897,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:45",{"_index":19894,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:5",{"_index":14271,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:52",{"_index":19901,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:60",{"_index":19891,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:66",{"_index":19908,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:7",{"_index":10220,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:73",{"_index":19903,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:8",{"_index":15133,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:83",{"_index":19889,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:89",{"_index":19907,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:95",{"_index":19905,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.withldapconfig",{"_index":19436,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoauthconfig",{"_index":19438,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoidcconfig",{"_index":19440,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope:11",{"_index":6002,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:13",{"_index":6000,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:31",{"_index":6014,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:35",{"_index":6016,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:9",{"_index":6003,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope?.target",{"_index":15202,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope?.unpublished",{"_index":15185,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scoped",{"_index":20000,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopeid",{"_index":9571,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/IScopeInfo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["scopeinfo",{"_index":21791,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopeinfo.logouturl",{"_index":21816,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["scopeinfo.scopeid",{"_index":21808,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopemapping",{"_index":9154,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterdo.scope",{"_index":9250,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterparam.scope",{"_index":9200,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["scopename",{"_index":12230,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["scopeoperator",{"_index":6001,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scopeparams",{"_index":21709,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopeparams.scope",{"_index":21746,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopepermission",{"_index":19999,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopepermissions",{"_index":19998,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scoperef",{"_index":18474,"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":21745,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scoperessource",{"_index":21802,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["scopes",{"_index":137,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/ConsentResponse.html":{},"injectables/IdTokenService.html":{},"classes/LoginResponse-1.html":{},"controllers/NewsController.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scopes.includes(oauthscope.email",{"_index":12645,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.groups",{"_index":12639,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.profile",{"_index":12647,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.map(async",{"_index":285,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["scopes/rules/permissions/user",{"_index":23736,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scraper",{"_index":16431,"title":{},"body":{"injectables/OpenGraphProxyService.html":{},"dependencies.html":{}}}],["scraper/dist/lib/types",{"_index":16432,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["scripts",{"_index":22408,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["sdk",{"_index":22089,"title":{},"body":{"dependencies.html":{}}}],["sdk/client",{"_index":7962,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["sdk/lib",{"_index":17855,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["search",{"_index":1005,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/IdentityManagementService.html":{},"interfaces/PseudonymSearchQuery.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["search.params.ts",{"_index":9267,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.params.ts:13",{"_index":9269,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["search.params.ts:8",{"_index":9270,"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":23246,"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/AccountServiceDb.html":{}}}],["searchbyusernameexactmatch(username",{"_index":67,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch",{"_index":20,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch(username",{"_index":69,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{}}}],["searches",{"_index":20398,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["searching",{"_index":13024,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["searchoptions",{"_index":12703,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["searchparams",{"_index":21180,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchparams.userid",{"_index":21184,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchquery",{"_index":9205,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["searchuser",{"_index":12387,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["searchusername",{"_index":943,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchuserpassword",{"_index":12388,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["second",{"_index":2684,"title":{},"body":{"entities/Board.html":{},"injectables/S3ClientAdapter.html":{}}}],["secondarily",{"_index":22356,"title":{},"body":{"license.html":{}}}],["secondary",{"_index":22309,"title":{},"body":{"license.html":{}}}],["secondchar",{"_index":6591,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["seconds",{"_index":5451,"title":{},"body":{"classes/ConsentRequestBody.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/LoginRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["secret",{"_index":1618,"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":{},"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":{}}}],["secretaccesskey",{"_index":6272,"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":13669,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["secretorkey",{"_index":13175,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["secrets",{"_index":11838,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["secretvalue",{"_index":1780,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["section",{"_index":15601,"title":{},"body":{"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sections",{"_index":22509,"title":{},"body":{"license.html":{}}}],["secure",{"_index":16173,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["secure_launch_url",{"_index":5189,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["security",{"_index":9914,"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":10249,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:15",{"_index":10255,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:29",{"_index":10258,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["securitycheck",{"_index":9879,"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":10053,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheckstatus",{"_index":6215,"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/AuthorizationReferenceService.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":{},"interfaces/CreateJwtPayload.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":{},"interfaces/JwtPayload.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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.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":7799,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICleanOptions.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":11632,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["seed.service",{"_index":13312,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["seed.service.ts",{"_index":13687,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:13",{"_index":13691,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:20",{"_index":13696,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:35",{"_index":13692,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:60",{"_index":13693,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:94",{"_index":13694,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:99",{"_index":13695,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seedcollections",{"_index":7790,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["seedcollections(options",{"_index":7798,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["seeddata",{"_index":23326,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["seeddatabasecollectionsfromfactories(collections",{"_index":11729,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeddatabasecollectionsfromfilesystem(collections",{"_index":11744,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeded",{"_index":13641,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["seededcollectionswithamount",{"_index":11740,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seededcollectionswithamount.push(`${collectionname}:${importeddocumentsamount",{"_index":11764,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeding",{"_index":23520,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["seeds",{"_index":11631,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seems",{"_index":22907,"title":{},"body":{"todo.html":{}}}],["segregation",{"_index":23070,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sehr",{"_index":4857,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["select",{"_index":23698,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["selectconfigureaction",{"_index":13328,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selectconfigureaction(newconfigs",{"_index":13355,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selected",{"_index":13817,"title":{},"body":{"injectables/LdapStrategy.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"todo.html":{}}}],["selectedrules",{"_index":17813,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule",{"_index":17791,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule(user",{"_index":17797,"title":{},"body":{"injectables/RuleManager.html":{}}}],["self",{"_index":23645,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sell",{"_index":22716,"title":{},"body":{"license.html":{}}}],["selling",{"_index":22700,"title":{},"body":{"license.html":{}}}],["semiconductor",{"_index":22340,"title":{},"body":{"license.html":{}}}],["senario",{"_index":23349,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["send",{"_index":1336,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"additional-documentation/nestjs-application.html":{}}}],["send(data",{"_index":1667,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/TestApiClient.html":{}}}],["send(params",{"_index":1675,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["send(requesttoken",{"_index":1348,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["sendauthenticationcodetokenrequest",{"_index":15548,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendauthenticationcodetokenrequest(tokenendpoint",{"_index":15555,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendhttpresponse",{"_index":10801,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sendhttpresponse(error",{"_index":10817,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sending",{"_index":23117,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sense",{"_index":1856,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/LessonCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sensible",{"_index":19287,"title":{},"body":{"controllers/SystemController.html":{}}}],["sent",{"_index":19679,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sentence",{"_index":1435,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separable",{"_index":22549,"title":{},"body":{"license.html":{}}}],["separate",{"_index":13899,"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":15599,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["separately",{"_index":22495,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["seperate",{"_index":14167,"title":{},"body":{"injectables/LessonCopyUC.html":{},"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":23127,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperation",{"_index":22207,"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":12829,"title":{},"body":{"classes/ImportUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}displayname",{"_index":19367,"title":{},"body":{"classes/SystemFactory.html":{}}}],["serialization",{"_index":18919,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"todo.html":{}}}],["serialize",{"_index":3807,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["serialize(documents",{"_index":3817,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serializedprimarykey",{"_index":2458,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["serializes",{"_index":3819,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serve",{"_index":22177,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["served",{"_index":23028,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server",{"_index":2075,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/ConsentRequestBody.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/LegacyLogger.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":{},"classes/UsersList.html":{},"dependencies.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":18540,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["server.console",{"_index":18497,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["server.module.ts",{"_index":14776,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["server.module.ts:36",{"_index":14782,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["server/blob/main/apps/server/src/modules/authorization/readme.md",{"_index":23047,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/config/readme.md",{"_index":23046,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/src/services/lesson/hooks/index.js#l232",{"_index":23729,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["server/overview.html",{"_index":22910,"title":{},"body":{"todo.html":{}}}],["server/pull/2729#pullrequestreview",{"_index":22887,"title":{},"body":{"todo.html":{}}}],["server/server.config",{"_index":832,"title":{},"body":{"modules/AccountModule.html":{}}}],["server_options_path='/tmp/config/server",{"_index":23533,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["serverconfig",{"_index":12248,"title":{},"body":{"interfaces/IServerConfig.html":{},"modules/ManagementModule.html":{},"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{},"controllers/RoomsController.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["serverconsole",{"_index":18476,"title":{"classes/ServerConsole.html":{}},"body":{"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{}}}],["serverconsolemodule",{"_index":18488,"title":{"modules/ServerConsoleModule.html":{}},"body":{"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["servercontroller",{"_index":18499,"title":{"controllers/ServerController.html":{}},"body":{"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servermodule",{"_index":18502,"title":{"modules/ServerModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["servermodules",{"_index":18541,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servers",{"_index":22320,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["servertestmodule",{"_index":18582,"title":{"modules/ServerTestModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["serves",{"_index":22400,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["service",{"_index":766,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AuthorizationService.html":{},"modules/BoardModule.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/GroupModule.html":{},"injectables/GroupUc.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/PseudonymUc.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/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.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":23732,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["service.create(data",{"_index":8415,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["service.factory.ts",{"_index":18415,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:10",{"_index":18417,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.factory.ts:13",{"_index":18419,"title":{},"body":{"injectables/SchoolSpecificFileCopyServiceFactory.html":{}}}],["service.find",{"_index":9574,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.get",{"_index":23223,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.get(userid",{"_index":9569,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.mapper",{"_index":9312,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["service.mapper.ts",{"_index":9365,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.mapper.ts:7",{"_index":9368,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.module.ts",{"_index":16068,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["service.provider",{"_index":8409,"title":{},"body":{"injectables/EtherpadService.html":{},"modules/FeathersModule.html":{},"injectables/NexboardService.html":{}}}],["service.provider.ts",{"_index":9739,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.provider.ts:13",{"_index":9747,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:19",{"_index":9745,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:24",{"_index":9742,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:38",{"_index":9764,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.provider.ts:41",{"_index":9765,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.ts",{"_index":1870,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.ts:10",{"_index":1877,"title":{},"body":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["service.ts:5",{"_index":1871,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{}}}],["service/authorization.helper",{"_index":3392,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":{}}}],["service/board",{"_index":3294,"title":{},"body":{"injectables/BoardDoCopyService.html":{},"modules/BoardModule.html":{}}}],["service/cache.service",{"_index":3875,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["service/column",{"_index":3582,"title":{},"body":{"modules/BoardModule.html":{}}}],["service/common",{"_index":6718,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["service/copy",{"_index":6344,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{}}}],["service/dto",{"_index":16125,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["service/dto/page",{"_index":16474,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["service/files",{"_index":10491,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/hydra.service",{"_index":11436,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{}}}],["service/id",{"_index":16014,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["service/keycloak",{"_index":13233,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"modules/KeycloakModule.html":{}}}],["service/oauth",{"_index":15755,"title":{},"body":{"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["service/oauth.service",{"_index":11437,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{}}}],["service/oidc",{"_index":16407,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["service/preview.service",{"_index":10519,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/provisioning.service",{"_index":16844,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["service/recursive",{"_index":17113,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["service/rooms.service",{"_index":17756,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["service/school",{"_index":18408,"title":{},"body":{"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["service/strategy",{"_index":20552,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/submission",{"_index":8238,"title":{},"body":{"injectables/ElementUc.html":{}}}],["service/system",{"_index":19399,"title":{},"body":{"modules/SystemModule.html":{}}}],["service/user.service",{"_index":21486,"title":{},"body":{"modules/UserModule.html":{}}}],["servicedto",{"_index":20060,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["serviceoptions",{"_index":18817,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.context",{"_index":18819,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.expiresat",{"_index":18823,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoutputtypes",{"_index":17853,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["services",{"_index":9621,"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":1573,"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":20100,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["services/dto/team.dto",{"_index":20061,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["services/ldap.service",{"_index":1574,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["serviceunavailableexception",{"_index":13642,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["servicing",{"_index":22803,"title":{},"body":{"license.html":{}}}],["session",{"_index":346,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.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":16036,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_id",{"_index":16034,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_name",{"_index":16035,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.destroy((err",{"_index":16134,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["session.oauthloginstate",{"_index":16148,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["session.response.ts",{"_index":5525,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["session.response.ts:13",{"_index":5533,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:16",{"_index":5534,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:19",{"_index":5532,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:4",{"_index":5529,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session_id",{"_index":14514,"title":{},"body":{"classes/LoginResponse-1.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["session_token",{"_index":2209,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["sessionduration",{"_index":18551,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessionhandler",{"_index":16087,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessionhandler(session",{"_index":16110,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessions",{"_index":15938,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessions.map",{"_index":15940,"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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileRecordFactory.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICurrentUser.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/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LoginRequestBody.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MigrationBody.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthLoginResponse.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":{},"classes/SubmissionContainerElementContent.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.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":{},"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":1664,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(caseinsensitivenames",{"_index":5401,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["set(headerconst.accept",{"_index":1673,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(memberids",{"_index":12319,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["set(permissions",{"_index":12170,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["set(systemids",{"_index":11263,"title":{},"body":{"injectables/GroupUc.html":{}}}],["set(tasksubmitterids",{"_index":12520,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["setalternativetext(value",{"_index":9837,"title":{},"body":{"classes/FileElement.html":{}}}],["setcaption(value",{"_index":9834,"title":{},"body":{"classes/FileElement.html":{}}}],["setcompleted(value",{"_index":19044,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setcontext",{"_index":13873,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontext(context",{"_index":4728,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["setcontext(name",{"_index":13882,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontextexternaltoolid(value",{"_index":8640,"title":{},"body":{"classes/ExternalToolElement.html":{}}}],["setcookies",{"_index":11500,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setcookies.foreach((item",{"_index":11544,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setdescription(value",{"_index":14322,"title":{},"body":{"classes/LinkElement.html":{}}}],["setduedate(value",{"_index":18971,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["setgroupname",{"_index":10885,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setgroupname(newgroupname",{"_index":7462,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setheight(height",{"_index":3954,"title":{},"body":{"classes/Card.html":{}}}],["setheightbodyparams",{"_index":4001,"title":{"classes/SetHeightBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/SetHeightBodyParams.html":{}}}],["setimageurl(value",{"_index":14326,"title":{},"body":{"classes/LinkElement.html":{}}}],["setinputformat(value",{"_index":17468,"title":{},"body":{"classes/RichTextElement.html":{}}}],["setlearnrooms",{"_index":7411,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["setlearnrooms(rooms",{"_index":7450,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setmatch",{"_index":12742,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(urlparams",{"_index":12761,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(user",{"_index":12047,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["setmigration",{"_index":13926,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolid",{"_index":14101,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolparams",{"_index":13934,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["setmigrationmandatory",{"_index":20268,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(currentuser",{"_index":21068,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["setmigrationmandatory(schoolid",{"_index":21265,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(userid",{"_index":20271,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["setname(name",{"_index":10079,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["setpasswordpolicy",{"_index":13247,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["setrequireduserrole(userroleenum",{"_index":3096,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["sets",{"_index":4669,"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":20150,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setstrategy",{"_index":4523,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["setstrategy(strategy",{"_index":4536,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["settedlanguage",{"_index":21635,"title":{},"body":{"injectables/UserUc.html":{}}}],["settext(value",{"_index":17464,"title":{},"body":{"classes/RichTextElement.html":{}}}],["settimeout",{"_index":17917,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["settimeout(resolve",{"_index":11656,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["setting",{"_index":6886,"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":23238,"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":2294,"title":{},"body":{"injectables/BBBService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["settings.interface.ts",{"_index":11580,"title":{},"body":{"interfaces/IBbbSettings.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IVideoConferenceSettings.html":{}}}],["settings.response",{"_index":4077,"title":{},"body":{"classes/CardResponse.html":{}}}],["settings.response.ts",{"_index":22036,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:3",{"_index":22038,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:9",{"_index":22039,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settitle(title",{"_index":3950,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["settitle(value",{"_index":14319,"title":{},"body":{"classes/LinkElement.html":{}}}],["setup",{"_index":3495,"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":23529,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm",{"_index":22960,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:configure",{"_index":23570,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:seed",{"_index":23569,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setuppath",{"_index":11746,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["setupsessions",{"_index":18550,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setupsessions(consumer",{"_index":18576,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["seturl(value",{"_index":14318,"title":{},"body":{"classes/LinkElement.html":{}}}],["setuser(value",{"_index":20146,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setuserattribute",{"_index":12684,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserattribute(userid",{"_index":12711,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserid(value",{"_index":19047,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setuserstatus(authtoken",{"_index":1214,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["sha",{"_index":2328,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.digest('hex",{"_index":2332,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.update(callname",{"_index":2330,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha1",{"_index":2265,"title":{},"body":{"injectables/BBBService.html":{},"injectables/Lti11EncryptionService.html":{}}}],["shall",{"_index":17081,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["share",{"_index":18625,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenResponse.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"license.html":{}}}],["shared",{"_index":18607,"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/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":{},"classes/TooManyPseudonymsLoggableException.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":9675,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/GroupService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationUc.html":{},"interfaces/UserMetdata.html":{}}}],["shared/common/utils",{"_index":2291,"title":{},"body":{"injectables/BBBService.html":{}}}],["shared/common/utils/guard",{"_index":14389,"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/ClassInfoSearchListResponse.html":{},"classes/ClassSortParams.html":{},"classes/ColumnResponse.html":{},"injectables/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/GroupController.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":10692,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["shared/core",{"_index":23194,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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/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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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/ExternalToolContentBody.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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/FeathersRosterService.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserResponse.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/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/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"interfaces/OauthCurrentUser.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"interfaces/SchoolSpecificFileCopyService.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":{},"classes/SortHelper.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/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":{},"todo.html":{}}}],["shared/domain/domain",{"_index":1873,"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":{},"injectables/CopyHelperService.html":{},"classes/DomainObjectFactory.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolRule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"interfaces/UserBoardRoles.html":{}}}],["shared/domain/domainobject",{"_index":3391,"title":{},"body":{"injectables/BoardDoRule.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/CurrentUserMapper.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"injectables/OidcProvisioningService.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/ShareTokenDO.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserService.html":{}}}],["shared/domain/domainobject/base.do",{"_index":5710,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["shared/domain/domainobject/board/link",{"_index":5642,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/domainobject/ltitool.do",{"_index":11504,"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":8583,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/UserDORepo.html":{}}}],["shared/domain/domainobject/user.do",{"_index":7081,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserMigrationService.html":{}}}],["shared/domain/entity",{"_index":1844,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.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/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["shared/domain/entity/account.entity",{"_index":918,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["shared/domain/entity/base.entity",{"_index":4272,"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/boardnode/link",{"_index":17263,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["shared/domain/entity/external",{"_index":11042,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["shared/domain/entity/ltitool.entity",{"_index":7179,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/LtiToolDO.html":{}}}],["shared/domain/entity/materials.entity",{"_index":14795,"title":{},"body":{"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{}}}],["shared/domain/entity/school.entity",{"_index":11044,"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/UserLoginMigrationEntity.html":{}}}],["shared/domain/entity/system.entity",{"_index":21151,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["shared/domain/entity/user",{"_index":12186,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["shared/domain/entity/video",{"_index":21996,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["shared/domain/index",{"_index":15796,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["shared/domain/interface",{"_index":4878,"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":{},"classes/UsersList.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["shared/domain/interface/permission.enum",{"_index":14163,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["shared/domain/interface/system",{"_index":12335,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["shared/domain/interface/video",{"_index":21829,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["shared/domain/types",{"_index":2545,"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":12255,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["shared/domain/types/input",{"_index":12443,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["shared/domain/types/session",{"_index":15740,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["shared/infra/antivirus",{"_index":6228,"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":{}}}],["shared/infra/antivirus/antivirus.module",{"_index":10584,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["shared/infra/cache",{"_index":1563,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/OauthModule.html":{}}}],["shared/infra/cache/interface/cache",{"_index":13202,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["shared/infra/calendar",{"_index":21965,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/infra/calendar/dto/calendar",{"_index":3904,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/interface/calendar",{"_index":3902,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["shared/infra/calendar/mapper/calendar.mapper",{"_index":3919,"title":{},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/service/calendar.service",{"_index":3918,"title":{},"body":{"modules/CalendarModule.html":{}}}],["shared/infra/collaborative",{"_index":4548,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["shared/infra/console",{"_index":3489,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"interfaces/ICleanOptions.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":7806,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["shared/infra/database",{"_index":10649,"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":10650,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["shared/infra/encryption",{"_index":8844,"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":1902,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"modules/LessonModule.html":{}}}],["shared/infra/feathers/feathers",{"_index":8408,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["shared/infra/file",{"_index":11669,"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":18518,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/metrics",{"_index":16783,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["shared/infra/oauth",{"_index":8843,"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/preview",{"_index":10586,"title":{},"body":{"modules/FilesStorageModule.html":{},"classes/PreviewBuilder.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["shared/infra/rabbitmq",{"_index":8358,"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/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewProducer.html":{},"classes/RecursiveCopyVisitor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/rabbitmq/rabbitmq.module",{"_index":10587,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{}}}],["shared/infra/rabbitmq/rpc",{"_index":10513,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{}}}],["shared/infra/redis",{"_index":18519,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/s3",{"_index":9797,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/PreviewConfig.html":{},"classes/PreviewGeneratorBuilder.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"injectables/PreviewService.html":{},"classes/TestHelper.html":{}}}],["shared/pipes",{"_index":23218,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardCopyService.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/ExternalToolPseudonymRepo.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/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":{},"classes/PseudonymScope.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":{}}}],["shared/repo/base.do.repo",{"_index":14700,"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":4591,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["shared/repo/scope",{"_index":9263,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["shared/repo/storageprovider",{"_index":7964,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["shared/repo/system/system",{"_index":19434,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["shared/repo/types/storageproviderencryptedstring.type",{"_index":12264,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["shared/repo/user/user",{"_index":21484,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["shared/repo/videoconference/video",{"_index":21966,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/testing",{"_index":3532,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/ClassFactory.html":{}}}],["shared/testing/factory/base.factory",{"_index":4306,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/LtiToolFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/role.factory",{"_index":20159,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/school.factory",{"_index":20156,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/teamuser.factory",{"_index":20051,"title":{},"body":{"classes/TeamFactory.html":{}}}],["shared/testing/factory/user.factory",{"_index":20157,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/types",{"_index":14997,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["shared/utils",{"_index":23195,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators",{"_index":23212,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators/text.validator.ts",{"_index":23198,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sharetoken",{"_index":6474,"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":{},"classes/UsersList.html":{}}}],["sharetoken(props",{"_index":18733,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["sharetoken.context",{"_index":18829,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.expiresat",{"_index":18753,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{}}}],["sharetoken.payload",{"_index":18752,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetoken.payload.parentid",{"_index":18832,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.payload.parenttype",{"_index":18780,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken.token",{"_index":18751,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenbodyparams",{"_index":18599,"title":{"classes/ShareTokenBodyParams.html":{}},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{}}}],["sharetokencontext",{"_index":18671,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype",{"_index":12252,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype.school",{"_index":18820,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper",{"_index":18615,"title":{"classes/ShareTokenContextTypeMapper.html":{}},"body":{"classes/ShareTokenContextTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper.maptoallowedauthorizationentitytype(context.contexttype",{"_index":18845,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontroller",{"_index":18618,"title":{"controllers/ShareTokenController.html":{}},"body":{"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokendo",{"_index":18667,"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":18680,"title":{"classes/ShareTokenFactory.html":{}},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenfactory.define",{"_index":18688,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenimportbodyparams",{"_index":18632,"title":{"classes/ShareTokenImportBodyParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{}}}],["sharetokeninfo",{"_index":18659,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninfo.parentname",{"_index":18708,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.parenttype",{"_index":18707,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.token",{"_index":18706,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfodto",{"_index":18695,"title":{"interfaces/ShareTokenInfoDto.html":{}},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninforesponse",{"_index":18647,"title":{"classes/ShareTokenInfoResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper",{"_index":18644,"title":{"classes/ShareTokenInfoResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper.maptoresponse(sharetokeninfo",{"_index":18662,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokeninforesponse})@apiresponse({status",{"_index":18641,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenparenttype",{"_index":12253,"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":18689,"title":{},"body":{"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.lesson",{"_index":18782,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.task",{"_index":18784,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper",{"_index":18709,"title":{"classes/ShareTokenParentTypeMapper.html":{}},"body":{"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(parenttype",{"_index":18847,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(payload.parenttype",{"_index":18838,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenpayload",{"_index":18673,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenpayloadresponse",{"_index":18713,"title":{"classes/ShareTokenPayloadResponse.html":{}},"body":{"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["sharetokenpayloadresponse(payload",{"_index":18749,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["sharetokenrepo",{"_index":18721,"title":{"injectables/ShareTokenRepo.html":{}},"body":{"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenresponse",{"_index":18648,"title":{"classes/ShareTokenResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper",{"_index":18645,"title":{"classes/ShareTokenResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper.maptoresponse(sharetoken",{"_index":18656,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenresponse})@apiresponse({status",{"_index":18627,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokens",{"_index":9880,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["sharetokenservice",{"_index":18754,"title":{"injectables/ShareTokenService.html":{}},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenstring",{"_index":12254,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/TokenGenerator.html":{}}}],["sharetokenuc",{"_index":18646,"title":{"injectables/ShareTokenUC.html":{}},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenurlparams",{"_index":18631,"title":{"classes/ShareTokenUrlParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenUrlParams.html":{}}}],["sharingapimodule",{"_index":18505,"title":{"modules/SharingApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["sharingmodule",{"_index":18862,"title":{"modules/SharingModule.html":{}},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["shit",{"_index":6526,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["short",{"_index":6829,"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":23488,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["shortid",{"_index":22150,"title":{},"body":{"dependencies.html":{}}}],["shorttitle",{"_index":6596,"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":{},"classes/UsersList.html":{}}}],["shouldincrementversion",{"_index":9504,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["shouldskipconsent",{"_index":15969,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldskipconsent(tool",{"_index":15979,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldusermigrate",{"_index":14816,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["shouldusermigrate(externaluserid",{"_index":14819,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["show",{"_index":15157,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/SystemController.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["show_outdated_users",{"_index":12197,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["showoutdatedusers",{"_index":12198,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["sid",{"_index":14526,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["side",{"_index":2258,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sideeffects",{"_index":23747,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["sign",{"_index":14554,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"license.html":{}}}],["sign(key",{"_index":14555,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signalgorithm",{"_index":1607,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signature_method",{"_index":14562,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["significant",{"_index":22572,"title":{},"body":{"license.html":{}}}],["signing",{"_index":1606,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signoptions",{"_index":1569,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["similar",{"_index":22330,"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":23078,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["simplicity",{"_index":22923,"title":{},"body":{"todo.html":{}}}],["simplification",{"_index":23160,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["simplify",{"_index":23353,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["simply",{"_index":22226,"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":22763,"title":{},"body":{"license.html":{}}}],["sind",{"_index":4846,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["single",{"_index":3282,"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":3291,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single(boardnode",{"_index":3292,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single:latestexample",{"_index":23545,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["single:latestthe",{"_index":23546,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["singlecolumnboardresponse",{"_index":17596,"title":{"classes/SingleColumnBoardResponse.html":{}},"body":{"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["singlefileparams",{"_index":6240,"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":10676,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["situations",{"_index":23627,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["six",{"_index":10296,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["size",{"_index":1015,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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":{}}}],["sizetype",{"_index":7579,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["skeleton",{"_index":2918,"title":{},"body":{"controllers/BoardController.html":{}}}],["skeleton.response",{"_index":4954,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["skeleton.response.ts",{"_index":4133,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:12",{"_index":4135,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:18",{"_index":4144,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:3",{"_index":4134,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skip",{"_index":70,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"classes/ClassInfoSearchListResponse.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"interfaces/ICleanOptions.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":7133,"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/ClassInfoSearchListResponse.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":22915,"title":{},"body":{"todo.html":{}}}],["slow",{"_index":11758,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["small",{"_index":23071,"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":{}}}],["smallestbigenoughimage",{"_index":16448,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sn",{"_index":12396,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["socketio",{"_index":22180,"title":{},"body":{"dependencies.html":{}}}],["software",{"_index":22266,"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":22559,"title":{},"body":{"license.html":{}}}],["sole",{"_index":22428,"title":{},"body":{"license.html":{}}}],["solely",{"_index":22436,"title":{},"body":{"license.html":{}}}],["solution",{"_index":3102,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"modules/ToolLaunchModule.html":{},"interfaces/UserBoardRoles.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["solutions",{"_index":22848,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["solve",{"_index":19833,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["somemethod",{"_index":23277,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["someotherservice",{"_index":23134,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["something",{"_index":12617,"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":23724,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sonstige",{"_index":17951,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sonstige_gruppenzugehoerige",{"_index":17949,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{}}}],["soon",{"_index":23637,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sort",{"_index":4428,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sort.id",{"_index":9382,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["sort.name",{"_index":9383,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sort.params.ts",{"_index":18881,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["sortby",{"_index":3015,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/ClassSortParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/GroupUc.html":{},"classes/ImportUserMapper.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortby(resolved",{"_index":3086,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder",{"_index":2967,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder(resolved",{"_index":2995,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos",{"_index":3085,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos.map",{"_index":3087,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortedbsondocuments",{"_index":11775,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["sortedchildren",{"_index":3272,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["sortedimages",{"_index":16442,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sortedimages.find((i",{"_index":16449,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sortedimages.sort((a",{"_index":16443,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["sortexternaltoolparams",{"_index":9146,"title":{"classes/SortExternalToolParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolController.html":{}}}],["sorthelper",{"_index":11218,"title":{"classes/SortHelper.html":{}},"body":{"injectables/GroupUc.html":{},"classes/SortHelper.html":{}}}],["sorthelper.genericsortfunction(a[sortby",{"_index":11230,"title":{},"body":{"injectables/GroupUc.html":{}}}],["sortimportuserparams",{"_index":12749,"title":{"classes/SortImportUserParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["sorting",{"_index":19751,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["sorting.mapper.ts",{"_index":9378,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.mapper.ts:7",{"_index":9381,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.ts",{"_index":22883,"title":{},"body":{"todo.html":{}}}],["sortingparams",{"_index":4430,"title":{"classes/SortingParams.html":{}},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortingparams:14",{"_index":4434,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingparams:18",{"_index":4437,"title":{},"body":{"classes/ClassSortParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingquery",{"_index":9148,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"controllers/ToolController.html":{}}}],["sortingquery.sortby",{"_index":10971,"title":{},"body":{"controllers/GroupController.html":{}}}],["sortingquery.sortorder",{"_index":9204,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/GroupController.html":{},"classes/ImportUserMapper.html":{}}}],["sortorder",{"_index":4431,"title":{},"body":{"classes/ClassSortParams.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/GroupUc.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/LessonRepo.html":{},"injectables/NewsUc.html":{},"classes/SortExternalToolParams.html":{},"classes/SortHelper.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.asc",{"_index":4435,"title":{},"body":{"classes/ClassSortParams.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/GroupUc.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":6974,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"injectables/NewsUc.html":{},"classes/SortHelper.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["sortordermap",{"_index":9149,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/ImportUserMapper.html":{},"injectables/UserDORepo.html":{}}}],["sortreferences",{"_index":7466,"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/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":{},"classes/AuthenticationValues.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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"modules/PseudonymModule.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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":{},"classes/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{}}}],["source.entity",{"_index":11043,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["source.entity.ts",{"_index":8465,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["source.entity.ts:13",{"_index":8468,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.entity.ts:16",{"_index":8467,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.person.name.familienname",{"_index":18029,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.person.name.vorname",{"_index":18028,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].id",{"_index":18038,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.id.tostring",{"_index":18027,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.kennung.replace",{"_index":18024,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.name",{"_index":18026,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation?.id",{"_index":18046,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0]?.gruppen",{"_index":18033,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.pid",{"_index":18031,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.response",{"_index":11101,"title":{},"body":{"classes/GroupResponse.html":{}}}],["source.response.ts",{"_index":8475,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:5",{"_index":8477,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.response.ts:8",{"_index":8476,"title":{},"body":{"classes/ExternalSourceResponse.html":{}}}],["source.ts",{"_index":8460,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:2",{"_index":8462,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:4",{"_index":8461,"title":{},"body":{"classes/ExternalSource.html":{}}}],["sourcecode",{"_index":23165,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sourcedescription",{"_index":6856,"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":18330,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["sourceid",{"_index":6173,"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":4212,"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":3419,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparent.removechild(child",{"_index":3421,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparentid",{"_index":17167,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourcepath",{"_index":6265,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["sources",{"_index":22979,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sourceschoolid",{"_index":4753,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["sourceschoolnumber",{"_index":21330,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["sourcesystem",{"_index":16482,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemid",{"_index":21121,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl",{"_index":21442,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl.tostring",{"_index":21445,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcetype",{"_index":15010,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["space",{"_index":745,"title":{},"body":{"classes/AccountFactory.html":{},"classes/OauthClientBody.html":{}}}],["spalten",{"_index":4816,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["spare",{"_index":22520,"title":{},"body":{"license.html":{}}}],["sparse",{"_index":6540,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{},"classes/UsersList.html":{}}}],["speak",{"_index":22290,"title":{},"body":{"license.html":{}}}],["spec.ts",{"_index":23002,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["special",{"_index":22599,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["specialized",{"_index":23069,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specific",{"_index":1184,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BoardDoCopyService.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/RecursiveCopyVisitor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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":22277,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["specification",{"_index":23237,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specifications",{"_index":23295,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specified",{"_index":4670,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/GuardAgainst.html":{},"license.html":{}}}],["specifies",{"_index":20567,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{},"license.html":{}}}],["specify",{"_index":22788,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["spies",{"_index":23412,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["spirit",{"_index":22780,"title":{},"body":{"license.html":{}}}],["split",{"_index":14106,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["splitting",{"_index":23731,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sql",{"_index":961,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["squashed",{"_index":23495,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["src",{"_index":23164,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["src/config",{"_index":10593,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core",{"_index":10416,"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",{"_index":10960,"title":{},"body":{"controllers/GroupController.html":{}}}],["src/core/error/dto/error.response",{"_index":3844,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/interface",{"_index":3845,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/loggable/error.loggable",{"_index":13809,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["src/core/error/utils",{"_index":1355,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorMapper.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["src/core/logger",{"_index":1467,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/AuthorizationReferenceModule.html":{},"injectables/BaseDORepo.html":{},"modules/BoardApiModule.html":{},"injectables/BoardCopyService.html":{},"modules/BoardModule.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":{},"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/ICleanOptions.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/KeycloakSeedService.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":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PreviewActionsLoggable.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.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":10699,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/core/logger/logger.module",{"_index":825,"title":{},"body":{"modules/AccountModule.html":{}}}],["src/core/logger/logging.utils",{"_index":10819,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["src/core/logger/types",{"_index":10700,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/imports",{"_index":13206,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["src/modules/authentication",{"_index":559,"title":{},"body":{"controllers/AccountController.html":{}}}],["src/modules/authentication/decorator/auth.decorator",{"_index":557,"title":{},"body":{"controllers/AccountController.html":{}}}],["src/modules/database",{"_index":23447,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["src/modules/group",{"_index":11164,"title":{},"body":{"injectables/GroupRule.html":{}}}],["src/shared/domain/entity/lesson.entity",{"_index":5027,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["src/shared/domain/types",{"_index":21428,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["src/shared/infra/rabbitmq",{"_index":10517,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/PreviewGeneratorConsumer.html":{}}}],["sso",{"_index":15378,"title":{},"body":{"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sso.controller",{"_index":15583,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["sso.controller.ts",{"_index":16081,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:119",{"_index":16114,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:152",{"_index":16099,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:162",{"_index":16109,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:183",{"_index":16104,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:47",{"_index":16090,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:65",{"_index":16106,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:83",{"_index":16111,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:98",{"_index":16095,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.error",{"_index":11434,"title":{},"body":{"injectables/HydraOauthUc.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso.error.ts",{"_index":15375,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:11",{"_index":15376,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:5",{"_index":15381,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:7",{"_index":15380,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:9",{"_index":15379,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso_auth_code_step",{"_index":11439,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["sso_internal_error",{"_index":15430,"title":{},"body":{"injectables/OAuthService.html":{}}}],["sso_jwt_problem",{"_index":13106,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["sso_user_not_found_after_provisioning",{"_index":21494,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso_user_notfound",{"_index":13113,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ssoauthenticationerror",{"_index":1913,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["ssoerror",{"_index":16133,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerror.errorcode",{"_index":16139,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerrorcode",{"_index":15382,"title":{},"body":{"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_jwt_problem",{"_index":15456,"title":{},"body":{"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_oauth_login_failed",{"_index":15377,"title":{},"body":{"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["ssologinquery",{"_index":16093,"title":{"classes/SSOLoginQuery.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/SSOLoginQuery.html":{}}}],["stack",{"_index":8745,"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/TooManyPseudonymsLoggableException.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":4829,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["standard",{"_index":22391,"title":{},"body":{"license.html":{}}}],["standards",{"_index":22393,"title":{},"body":{"license.html":{}}}],["start",{"_index":1021,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ClassInfoSearchListResponse.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":21726,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["start.loggable.ts",{"_index":18288,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:11",{"_index":18290,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["start.loggable.ts:4",{"_index":18289,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:7",{"_index":21298,"title":{},"body":{"classes/UserLoginMigrationStartLoggable.html":{}}}],["startdate",{"_index":6475,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{}}}],["started",{"_index":1477,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/OauthUc.html":{},"classes/SchoolInUserMigrationStartLoggable.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":21122,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startet",{"_index":23721,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["starting",{"_index":22202,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["startmigration",{"_index":18902,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startmigration(@currentuser",{"_index":21102,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(currentuser",{"_index":21075,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(schoolid",{"_index":21267,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["startmigration(userid",{"_index":18905,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["startoauthauthorizationcodeflow",{"_index":16088,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthauthorizationcodeflow(session",{"_index":16112,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthlogin",{"_index":16200,"title":{},"body":{"injectables/OauthUc.html":{}}}],["startoauthlogin(session",{"_index":16210,"title":{},"body":{"injectables/OauthUc.html":{}}}],["starts",{"_index":14469,"title":{},"body":{"controllers/LoginController.html":{},"additional-documentation/nestjs-application.html":{}}}],["startschoolinusermigration",{"_index":12743,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["startschoolinusermigration(currentuser",{"_index":12765,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["starttime",{"_index":2227,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["startup",{"_index":23555,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["startuserloginmigrationuc",{"_index":18899,"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":{},"modules/AuthorizationReferenceModule.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":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["state.dto",{"_index":15741,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["state.dto.ts",{"_index":15723,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:10",{"_index":15725,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:12",{"_index":15724,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:4",{"_index":15727,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:6",{"_index":15728,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:8",{"_index":15726,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.entity",{"_index":12190,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["state.entity.ts",{"_index":6447,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["state.entity.ts:14",{"_index":6451,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:21",{"_index":6454,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:23",{"_index":6453,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:25",{"_index":6452,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:31",{"_index":9769,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:34",{"_index":9766,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:37",{"_index":9768,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.entity.ts:40",{"_index":9767,"title":{},"body":{"entities/FederalStateEntity.html":{}}}],["state.enum",{"_index":21679,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["state.factory",{"_index":13991,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["state.mapper",{"_index":16122,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["state.mapper.ts",{"_index":15735,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.mapper.ts:5",{"_index":15739,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.repo.ts",{"_index":9772,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:12",{"_index":9773,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:8",{"_index":9774,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.response",{"_index":8024,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["state.service.ts",{"_index":9779,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:10",{"_index":9784,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:6",{"_index":9782,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["stated",{"_index":22421,"title":{},"body":{"license.html":{}}}],["statelessauthorizationparams",{"_index":16097,"title":{"classes/StatelessAuthorizationParams.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["statemapping",{"_index":21951,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statemapping[state",{"_index":21958,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statement",{"_index":22639,"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":{},"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/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyMapper.html":{},"entities/Course.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/ExternalToolElementResponseMapper.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/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICourseProperties.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":{},"classes/LessonFactory.html":{},"classes/LinkElementResponseMapper.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/PreviewBuilder.html":{},"classes/PreviewGeneratorBuilder.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PseudonymMapper.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/SortHelper.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":{},"classes/ToolStatusResponseMapper.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/UsersList.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["stating",{"_index":22475,"title":{},"body":{"license.html":{}}}],["statistics_reporting=false",{"_index":23606,"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/ContextExternalToolResponseMapper.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":{},"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/ForbiddenOperationError.html":{},"controllers/GroupController.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":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"interfaces/Meta.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"interfaces/NextcloudGroups.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/OcsResponse.html":{},"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"interfaces/PreviewResponseMessage.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/TooManyPseudonymsLoggableException.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":3027,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyHelperService.html":{}}}],["status.copyentity.id",{"_index":3073,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.copyentity.title",{"_index":3074,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status.elements?.foreach((elementstatus",{"_index":6381,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.enum",{"_index":2066,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["status.mapper",{"_index":19709,"title":{},"body":{"classes/TaskMapper.html":{}}}],["status.mapper.ts",{"_index":19930,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.mapper.ts:5",{"_index":19931,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.originalentity",{"_index":6384,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.response",{"_index":3766,"title":{},"body":{"classes/BoardTaskResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["status.response.ts",{"_index":3774,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:14",{"_index":19939,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:17",{"_index":19938,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:20",{"_index":19934,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:21",{"_index":3787,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:23",{"_index":19935,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:24",{"_index":3786,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:26",{"_index":19937,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:27",{"_index":3782,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:29",{"_index":19936,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:3",{"_index":3781,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:30",{"_index":3783,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:33",{"_index":3785,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:36",{"_index":3784,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.status",{"_index":3030,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["status_code",{"_index":5435,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["statuscode",{"_index":1182,"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":19712,"title":{},"body":{"classes/TaskMapper.html":{}}}],["statuses",{"_index":2994,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statuses.foreach((status",{"_index":3067,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statusmapping",{"_index":20754,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statusmapping[status",{"_index":20758,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["statustext",{"_index":2023,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["stay",{"_index":23091,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["stemming",{"_index":11809,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["steps",{"_index":22303,"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":23660,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepshow",{"_index":23670,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stick",{"_index":23304,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["still",{"_index":6834,"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":11807,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/TimeoutInterceptor.html":{}}}],["storage",{"_index":3579,"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/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":{},"interfaces/IServerConfig.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storage'})@apiresponse({status",{"_index":4610,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.adapter",{"_index":4594,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage.adapter.ts",{"_index":4513,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:15",{"_index":4529,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:30",{"_index":4537,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:40",{"_index":4543,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:49",{"_index":4535,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:58",{"_index":4532,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:67",{"_index":4539,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.config",{"_index":10594,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"injectables/PreviewService.html":{}}}],["storage.config.ts",{"_index":11965,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["storage.const",{"_index":1360,"title":{},"body":{"injectables/AntivirusService.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{}}}],["storage.consumer.ts",{"_index":10493,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:14",{"_index":10498,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:31",{"_index":10504,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:48",{"_index":10508,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:63",{"_index":10506,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.controller",{"_index":4648,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage.controller.ts",{"_index":4602,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.controller.ts:32",{"_index":4616,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.mapper.ts",{"_index":10533,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:15",{"_index":10541,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:33",{"_index":10545,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:39",{"_index":10539,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:49",{"_index":10543,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:53",{"_index":10542,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:65",{"_index":10547,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.module",{"_index":10417,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{}}}],["storage.module.ts",{"_index":4639,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{}}}],["storage.params.ts",{"_index":6221,"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:100",{"_index":6290,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:103",{"_index":6288,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:106",{"_index":6289,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:113",{"_index":16682,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:118",{"_index":16684,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:12",{"_index":10154,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:126",{"_index":16680,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:16",{"_index":10151,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:20",{"_index":10153,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:27",{"_index":10354,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:32",{"_index":10351,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:36",{"_index":10353,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:42",{"_index":9978,"title":{},"body":{"classes/FileParams.html":{}}}],["storage.params.ts:48",{"_index":8052,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:52",{"_index":8051,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:58",{"_index":18061,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:62",{"_index":18062,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:66",{"_index":18060,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:72",{"_index":18880,"title":{},"body":{"classes/SingleFileParams.html":{}}}],["storage.params.ts:79",{"_index":17336,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["storage.params.ts:85",{"_index":6287,"title":{},"body":{"classes/CopyFilesOfParentParams.html":{}}}],["storage.params.ts:91",{"_index":6227,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:95",{"_index":6224,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.producer",{"_index":10440,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{}}}],["storage.producer.ts",{"_index":10612,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:18",{"_index":10616,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:28",{"_index":10618,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:37",{"_index":10622,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:46",{"_index":10619,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.response.ts",{"_index":6184,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["storage.response.ts:22",{"_index":10198,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:26",{"_index":10200,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:29",{"_index":10201,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:32",{"_index":10206,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:35",{"_index":10204,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:38",{"_index":10205,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:41",{"_index":10196,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:44",{"_index":10199,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:47",{"_index":10202,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:50",{"_index":10203,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:53",{"_index":10197,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:56",{"_index":10123,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["storage.response.ts:6",{"_index":10195,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:66",{"_index":6253,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:74",{"_index":6254,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:77",{"_index":6256,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:81",{"_index":6255,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:84",{"_index":6186,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["storage.service",{"_index":4645,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["storage.service.ts",{"_index":4649,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:13",{"_index":4655,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:31",{"_index":4660,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:42",{"_index":4668,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:60",{"_index":4657,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:64",{"_index":4656,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:68",{"_index":4664,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.ts",{"_index":11918,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["storage.uc",{"_index":4622,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage.uc.ts",{"_index":4690,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:21",{"_index":4700,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:34",{"_index":4696,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:38",{"_index":4695,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:42",{"_index":4697,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:9",{"_index":4694,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage/collaborative",{"_index":4512,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage/controller/collaborative",{"_index":4601,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage/controller/dto/file",{"_index":6183,"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":18055,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["storage/controller/dto/team",{"_index":20081,"title":{},"body":{"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{}}}],["storage/controller/file",{"_index":10248,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["storage/controller/files",{"_index":10492,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage/dto/file.dto.ts",{"_index":9791,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:11",{"_index":9796,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:13",{"_index":9794,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:15",{"_index":9795,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:4",{"_index":9793,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/team",{"_index":20109,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["storage/entity",{"_index":10117,"title":{},"body":{"classes/FileRecordFactory.html":{},"interfaces/SchoolSpecificFileCopyService.html":{},"modules/ServerConsoleModule.html":{}}}],["storage/entity/filerecord.entity.ts",{"_index":10003,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["storage/entity/filerecord.entity.ts:104",{"_index":10016,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:107",{"_index":10023,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:110",{"_index":10018,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:113",{"_index":10017,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:116",{"_index":10022,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:120",{"_index":10020,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:124",{"_index":10012,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:131",{"_index":10008,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:138",{"_index":10013,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:145",{"_index":10010,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:45",{"_index":10232,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:48",{"_index":10230,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:51",{"_index":10231,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:54",{"_index":10229,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:57",{"_index":10228,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/files",{"_index":1359,"title":{},"body":{"injectables/AntivirusService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/IFileStorageConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{}}}],["storage/helper",{"_index":3012,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["storage/helper/test",{"_index":20233,"title":{},"body":{"classes/TestHelper.html":{}}}],["storage/interface/interfaces.ts",{"_index":10773,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{}}}],["storage/mapper/collaborative",{"_index":4550,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/mapper/copy",{"_index":6258,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["storage/mapper/file",{"_index":9810,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{}}}],["storage/mapper/files",{"_index":10532,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage/mapper/preview.builder.ts",{"_index":16585,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:33",{"_index":16591,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/preview.builder.ts:8",{"_index":16589,"title":{},"body":{"classes/PreviewBuilder.html":{}}}],["storage/mapper/team",{"_index":4641,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["storage/mapper/team.mapper",{"_index":4643,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage/mapper/team.mapper.ts",{"_index":20056,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/mapper/team.mapper.ts:12",{"_index":20059,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/repo/filerecord",{"_index":10207,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["storage/repo/filerecord.repo.ts",{"_index":10156,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:13",{"_index":10177,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:20",{"_index":10179,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:27",{"_index":10169,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:34",{"_index":10171,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:45",{"_index":10173,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:56",{"_index":10175,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:65",{"_index":10167,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:81",{"_index":10181,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:9",{"_index":10182,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/service/preview.service.ts",{"_index":16693,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:14",{"_index":16699,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:23",{"_index":16705,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:37",{"_index":16703,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:45",{"_index":16701,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:52",{"_index":16710,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:73",{"_index":16708,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:83",{"_index":16706,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/services/collaborative",{"_index":4644,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["storage/services/dto/team",{"_index":4545,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/TeamPermissionsDto.html":{}}}],["storage/services/dto/team.dto",{"_index":4547,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/services/dto/team.dto.ts",{"_index":20032,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:11",{"_index":20038,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:13",{"_index":20036,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:23",{"_index":20140,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:25",{"_index":20139,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:27",{"_index":20138,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:9",{"_index":20037,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/strategy/base.interface.strategy",{"_index":4549,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage/strategy/base.interface.strategy.ts",{"_index":11658,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:12",{"_index":11665,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:14",{"_index":11662,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:16",{"_index":11661,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:18",{"_index":11663,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.client",{"_index":4589,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.interface.ts",{"_index":11325,"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":4590,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts",{"_index":15227,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:129",{"_index":15253,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:158",{"_index":15240,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:172",{"_index":15239,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:192",{"_index":15242,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:202",{"_index":15246,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:21",{"_index":15233,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:38",{"_index":15249,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:59",{"_index":15237,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:75",{"_index":15234,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:98",{"_index":15247,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/uc/collaborative",{"_index":4689,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage:debug",{"_index":22990,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:dev",{"_index":22989,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:prod",{"_index":22991,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storageclient",{"_index":10765,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storageconfig",{"_index":16603,"title":{},"body":{"interfaces/PreviewConfig.html":{},"modules/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"interfaces/PreviewModuleConfig.html":{}}}],["storageconfig.connectionname",{"_index":16642,"title":{},"body":{"modules/PreviewGeneratorConsumerModule.html":{}}}],["storagefilename",{"_index":8004,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageprovider",{"_index":7950,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["storageprovider.accesskeyid",{"_index":7996,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageprovider.endpointurl",{"_index":7991,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.region",{"_index":7993,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.secretaccesskey",{"_index":7997,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageproviderencryptedstringtype",{"_index":12263,"title":{"classes/StorageProviderEncryptedStringType.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviderentity",{"_index":7948,"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":9906,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageproviderrepo",{"_index":7945,"title":{"injectables/StorageProviderRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviders",{"_index":11675,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviders.foreach((storageprovider",{"_index":11849,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storageproviderscollectionname",{"_index":11674,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storagestrategy",{"_index":4595,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["store",{"_index":3861,"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":3880,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["stored",{"_index":20675,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["strategies",{"_index":11660,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{}}}],["strategy",{"_index":4519,"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":16882,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.createlaunchdata(userid",{"_index":20598,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.createlaunchrequest(toollaunchdata",{"_index":20594,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.getdata(input",{"_index":16878,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.interface",{"_index":213,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["strategy.interface.ts",{"_index":12576,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:6",{"_index":12577,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:8",{"_index":12579,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy/jwt",{"_index":1575,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{}}}],["strategy/jwt.strategy",{"_index":1577,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/ldap.strategy",{"_index":1578,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/local.strategy",{"_index":1579,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oauth2.strategy",{"_index":1580,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oidc/service/oidc",{"_index":16845,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/sanis/response",{"_index":11155,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["strategy/sanis/sanis",{"_index":16846,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["stream",{"_index":1344,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["stream.destroy",{"_index":17920,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["stream.on('data",{"_index":17921,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["streamablefile",{"_index":6615,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(fileresponse.data",{"_index":10567,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["streamablefile(res.data",{"_index":10267,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["streamablefile(response.data",{"_index":10742,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(result",{"_index":6639,"title":{},"body":{"controllers/CourseController.html":{}}}],["strict",{"_index":16172,"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/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":{},"classes/AuthenticationValues.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/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.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":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.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/ExternalToolPseudonymRepo.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"injectables/FilesStorageProducer.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":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUserResponse.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/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/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/IRetryOptions.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.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":{},"classes/LoginResponseMapper.html":{},"injectables/Lti11EncryptionService.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.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/ResolvedGroupDto.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":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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/SchoolYearEntity.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":{},"classes/SortHelper.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/UsersList.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":{},"classes/VisibilitySettingsResponse.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":10352,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string'})@isstring()@isnotempty",{"_index":10350,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string(object[key",{"_index":2335,"title":{},"body":{"injectables/BBBService.html":{}}}],["string).split",{"_index":12240,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["string).tostring(cryptojs.enc.base64",{"_index":16359,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["stringifiedmessage",{"_index":13874,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["stringifiedmessage(message",{"_index":13884,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stringifymessage",{"_index":14452,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["stringifymessage(message",{"_index":14458,"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":{},"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":{}}}],["stringvalidator",{"_index":12859,"title":{"classes/StringValidator.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(escapedclasses",{"_index":13036,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedfirstname",{"_index":13022,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedlastname",{"_index":13028,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedloginname",{"_index":13031,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedname",{"_index":21527,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(filters.name",{"_index":21524,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(query.classes",{"_index":12890,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.firstname",{"_index":12878,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.lastname",{"_index":12881,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.loginname",{"_index":12884,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.name",{"_index":21359,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["stringvalidator.isstring(value",{"_index":18955,"title":{},"body":{"classes/StringValidator.html":{}}}],["string}${additionalinfo",{"_index":13112,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["string}/api/v3/sso/hydra/${oauthclientid",{"_index":11569,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["strip",{"_index":22183,"title":{},"body":{"dependencies.html":{}}}],["strong",{"_index":9624,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["strongly",{"_index":23432,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["structure",{"_index":5283,"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":23158,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["structures",{"_index":13891,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stubstitution",{"_index":6568,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["stucture",{"_index":22881,"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_count",{"_index":9681,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["student_list",{"_index":12202,"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":{}}}],["studententities",{"_index":9695,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentid",{"_index":12279,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["studentids",{"_index":6561,"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":{},"classes/UsersList.html":{}}}],["studentobjectids",{"_index":6763,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentobjectids.map((id",{"_index":6765,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentpermissions",{"_index":21001,"title":{},"body":{"classes/UserFactory.html":{}}}],["studentpseudonyms",{"_index":9705,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["studentpseudonyms.map((pseudonym",{"_index":9713,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["students",{"_index":6476,"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":{},"injectables/FeathersRosterService.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"injectables/SubmissionRepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["studentswithid",{"_index":6726,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentswithid(numberofstudents",{"_index":6730,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentuser",{"_index":864,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentvisibility",{"_index":12192,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentwithid",{"_index":19023,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["studio",{"_index":22234,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["stuff",{"_index":22257,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["style",{"_index":23356,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["sub",{"_index":6161,"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":23745,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["subclass",{"_index":16665,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["subdividing",{"_index":22683,"title":{},"body":{"license.html":{}}}],["subelements",{"_index":7589,"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":9376,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["subject_types_supported",{"_index":15610,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjects",{"_index":12099,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["subjecttype",{"_index":15609,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjecttypeenum",{"_index":15607,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["sublicenses",{"_index":22713,"title":{},"body":{"license.html":{}}}],["sublicensing",{"_index":22438,"title":{},"body":{"license.html":{}}}],["submission",{"_index":2849,"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":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseGroup.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.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":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.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":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SubmissionsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["submission.completed",{"_index":17296,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submission.controller.ts",{"_index":3719,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:27",{"_index":3728,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:48",{"_index":3734,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.coursegroup?.name",{"_index":19147,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.entity",{"_index":12448,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.getsubmitterids",{"_index":12518,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.grade",{"_index":19145,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.id",{"_index":17295,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionMapper.html":{}}}],["submission.isgraded",{"_index":12510,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isgradedforuser(user",{"_index":12513,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmitted",{"_index":12506,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmittedforuser(user",{"_index":12512,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isusersubmitter(user",{"_index":19194,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.service",{"_index":19923,"title":{},"body":{"injectables/TaskService.html":{}}}],["submission.task",{"_index":19199,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.task.aresubmissionspublic",{"_index":19197,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.teammembers",{"_index":12299,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["submission.userid",{"_index":17297,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainer",{"_index":19096,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainer.addchild(submissionitem",{"_index":19102,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainercontentbody",{"_index":5647,"title":{"classes/SubmissionContainerContentBody.html":{}},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelement",{"_index":2838,"title":{"classes/SubmissionContainerElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.children",{"_index":8248,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.every((child",{"_index":8245,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainerelement.children.filter(issubmissionitem",{"_index":19124,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.duedate",{"_index":5679,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelement.id",{"_index":17292,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelementcontent",{"_index":18978,"title":{"classes/SubmissionContainerElementContent.html":{}},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementcontentbody",{"_index":8180,"title":{"classes/SubmissionContainerElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelementnode",{"_index":3189,"title":{"entities/SubmissionContainerElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerelementprops",{"_index":18976,"title":{"interfaces/SubmissionContainerElementProps.html":{}},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["submissioncontainerelementresponse",{"_index":4012,"title":{"classes/SubmissionContainerElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponse)@apiresponse({status",{"_index":3980,"title":{},"body":{"controllers/CardController.html":{}}}],["submissioncontainerelementresponsemapper",{"_index":5586,"title":{"classes/SubmissionContainerElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponsemapper.getinstance",{"_index":5578,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["submissioncontainerelementresponsemapper.instance",{"_index":18990,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerid",{"_index":18995,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainernodeprops",{"_index":18986,"title":{"interfaces/SubmissionContainerNodeProps.html":{}},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerurlparams",{"_index":3724,"title":{"classes/SubmissionContainerUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionContainerUrlParams.html":{}}}],["submissioncontainterelement",{"_index":19104,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainterelement.duedate",{"_index":19107,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontroller",{"_index":18997,"title":{"controllers/SubmissionController.html":{}},"body":{"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{}}}],["submissionfactory",{"_index":19021,"title":{"classes/SubmissionFactory.html":{}},"body":{"classes/SubmissionFactory.html":{}}}],["submissionfactory.define(submission",{"_index":19035,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["submissionid",{"_index":19212,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{}}}],["submissionitem",{"_index":2841,"title":{"classes/SubmissionItem.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementUpdateVisitor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/RecursiveCopyVisitor.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.completed",{"_index":19088,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.createdat",{"_index":19091,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.id",{"_index":19089,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.updatedat",{"_index":19090,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.userid",{"_index":19092,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemfactory",{"_index":19057,"title":{"injectables/SubmissionItemFactory.html":{}},"body":{"injectables/SubmissionItemFactory.html":{}}}],["submissionitemid",{"_index":19119,"title":{},"body":{"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionitemnode",{"_index":3192,"title":{"entities/SubmissionItemNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemnodeprops",{"_index":19064,"title":{"interfaces/SubmissionItemNodeProps.html":{}},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemprops",{"_index":19055,"title":{"interfaces/SubmissionItemProps.html":{}},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["submissionitemresponse",{"_index":8212,"title":{"classes/SubmissionItemResponse.html":{}},"body":{"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemresponsemapper",{"_index":3738,"title":{"classes/SubmissionItemResponseMapper.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper.getinstance",{"_index":3745,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["submissionitemresponsemapper.instance",{"_index":19081,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponse})@apiresponse({status",{"_index":8196,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissionitems",{"_index":3741,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitems.filter((item",{"_index":19130,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.map((item",{"_index":19083,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemservice",{"_index":3573,"title":{"injectables/SubmissionItemService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemsresponse",{"_index":19082,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionitemuc",{"_index":2718,"title":{"injectables/SubmissionItemUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemurlparams",{"_index":3730,"title":{"classes/SubmissionItemUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionmapper",{"_index":19007,"title":{"classes/SubmissionMapper.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionMapper.html":{}}}],["submissionmapper.maptostatusresponse(submission",{"_index":19016,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrepo",{"_index":1934,"title":{"injectables/SubmissionRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"modules/TaskModule.html":{}}}],["submissionresponses",{"_index":19014,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrule",{"_index":1896,"title":{"injectables/SubmissionRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{}}}],["submissions",{"_index":3720,"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":19764,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["submissions.filter((submission",{"_index":12505,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.foreach((submission",{"_index":12516,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.map((submission",{"_index":19015,"title":{},"body":{"controllers/SubmissionController.html":{},"injectables/TaskService.html":{}}}],["submissions.some((submission",{"_index":12511,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissionservice",{"_index":19200,"title":{"injectables/SubmissionService.html":{}},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["submissionsresponse",{"_index":3735,"title":{"classes/SubmissionsResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{}}}],["submissionsresponse(submissionitemsresponse",{"_index":19087,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionsresponse})@apiresponse({status",{"_index":3726,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submissionstatuslistresponse",{"_index":19009,"title":{"classes/SubmissionStatusListResponse.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionstatuslistresponse(submissionresponses",{"_index":19018,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionstatusresponse",{"_index":19143,"title":{"classes/SubmissionStatusResponse.html":{}},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionuc",{"_index":19008,"title":{"injectables/SubmissionUc.html":{}},"body":{"controllers/SubmissionController.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{}}}],["submissionurlparams",{"_index":19000,"title":{"classes/SubmissionUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionUrlParams.html":{}}}],["submitted",{"_index":3780,"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":12504,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitterids",{"_index":12517,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitters",{"_index":19144,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submitting",{"_index":19062,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submittingcoursegroupname",{"_index":19146,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["subpath",{"_index":20199,"title":{},"body":{"classes/TestApiClient.html":{}}}],["subpermissions",{"_index":16570,"title":{},"body":{"injectables/PermissionService.html":{}}}],["subprograms",{"_index":22413,"title":{},"body":{"license.html":{}}}],["subsection",{"_index":22528,"title":{},"body":{"license.html":{}}}],["subset",{"_index":5445,"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":22567,"title":{},"body":{"license.html":{}}}],["substantially",{"_index":22681,"title":{},"body":{"license.html":{}}}],["substitution",{"_index":23067,"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":6504,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherentities",{"_index":9697,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteacherids",{"_index":6565,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["substitutionteacherpseudonyms",{"_index":9707,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["substitutionteachers",{"_index":6477,"title":{},"body":{"entities/Course.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/FeathersRosterService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["subtypes",{"_index":8184,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["succeed",{"_index":23375,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["succesfully",{"_index":16102,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["success",{"_index":1178,"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":13791,"title":{},"body":{"injectables/LdapService.html":{},"controllers/LoginController.html":{},"classes/SuccessfulResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["successful.'})@apiresponse({status",{"_index":14472,"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/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["successfully.'})@apiresponse({status",{"_index":525,"title":{},"body":{"controllers/AccountController.html":{}}}],["successfully.'})@apiunauthorizedresponse({description",{"_index":20453,"title":{},"body":{"controllers/ToolController.html":{}}}],["successfulres",{"_index":11332,"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":19256,"title":{"classes/SuccessfulResponse.html":{}},"body":{"classes/SuccessfulResponse.html":{},"controllers/UserController.html":{}}}],["successfulresponse(result",{"_index":20842,"title":{},"body":{"controllers/UserController.html":{}}}],["successor",{"_index":4211,"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":2688,"title":{},"body":{"entities/Board.html":{},"injectables/DashboardUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sue",{"_index":22723,"title":{},"body":{"license.html":{}}}],["suffice",{"_index":22575,"title":{},"body":{"license.html":{}}}],["sufficient",{"_index":9590,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["suffix",{"_index":22922,"title":{},"body":{"todo.html":{}}}],["suggested",{"_index":22865,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["suggests",{"_index":23288,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["suitable",{"_index":11555,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["suites",{"_index":23005,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sum",{"_index":21535,"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/GroupController.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICalendarEvent.html":{},"controllers/LoginController.html":{},"controllers/PseudonymController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["super",{"_index":406,"title":{},"body":{"entities/Account.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/FederalStateEntity.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":{},"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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TooManyPseudonymsLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UsersList.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":13732,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super('ldapalreadypersisted",{"_index":13729,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super(_em",{"_index":5878,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["super(amqpconnection",{"_index":10630,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"injectables/PreviewProducer.html":{}}}],["super(config",{"_index":2094,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["super(domainobject.id",{"_index":7184,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["super(dto",{"_index":21887,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["super(e.response.statustext",{"_index":1196,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["super(message",{"_index":15353,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["super(oidcprovisioningservice",{"_index":17985,"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/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthLoginResponse.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":5712,"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":8030,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["super(total",{"_index":1025,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ClassInfoSearchListResponse.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":1445,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["super.build",{"_index":2153,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["super.findbyid(id",{"_index":6782,"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":1627,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["supertest(this.app.gethttpserver",{"_index":1662,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest(this.app.gethttpserver()).get(path).set('authorization",{"_index":1660,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest.test",{"_index":1657,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supplement",{"_index":22602,"title":{},"body":{"license.html":{}}}],["support",{"_index":2449,"title":{},"body":{"classes/BaseDomainObject.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"interfaces/OauthCurrentUser.html":{},"injectables/RoomsAuthorisationService.html":{},"dependencies.html":{},"license.html":{},"modules.html":{},"todo.html":{}}}],["support_${objectid",{"_index":13147,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["supported",{"_index":1642,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/ColumnBoardCopyService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/HydraSsoService.html":{},"injectables/LessonRule.html":{},"classes/OauthClientBody.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRule.html":{},"classes/TestApiClient.html":{}}}],["supporting",{"_index":22926,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["supports",{"_index":2503,"title":{},"body":{"classes/BaseFactory.html":{},"license.html":{}}}],["supportuserid",{"_index":13145,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["sure",{"_index":9342,"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":22758,"title":{},"body":{"license.html":{}}}],["survive",{"_index":22638,"title":{},"body":{"license.html":{}}}],["sustained",{"_index":22817,"title":{},"body":{"license.html":{}}}],["svg",{"_index":22855,"title":{},"body":{"modules.html":{}}}],["swagger",{"_index":22126,"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/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["switching",{"_index":21325,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["symbol('bbbsettings",{"_index":11581,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["symbol('defaultencryptionservice",{"_index":11955,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('keycloakconfigurationinputfiles",{"_index":12069,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["symbol('keycloaksettings",{"_index":12074,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["symbol('ldapencryptionservice",{"_index":11956,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('toolfeatures",{"_index":12567,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["symbol('videoconferencesettings",{"_index":12607,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["symetrickeyencryptionservice",{"_index":8262,"title":{"injectables/SymetricKeyEncryptionService.html":{}},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["symetrickeyencryptionservice(logger",{"_index":8267,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["sync",{"_index":7801,"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":16286,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["syncboardelementreferences(boardelementtargets",{"_index":2689,"title":{},"body":{"entities/Board.html":{}}}],["syncindexes",{"_index":7791,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["syncmode",{"_index":13472,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["syntax",{"_index":13407,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["sysmes",{"_index":1176,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["system",{"_index":3104,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/PageContentQueryParams.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolMigrationService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"injectables/SystemOidcService.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserLoginMigrationController.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":16487,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["system.'})@apiresponse({status",{"_index":19291,"title":{},"body":{"controllers/SystemController.html":{}}}],["system.'})@isoptional()@isenum(systemtypeenum",{"_index":19374,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["system.adapter",{"_index":10349,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.adapter.ts",{"_index":10276,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:12",{"_index":10286,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:18",{"_index":10323,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:26",{"_index":10288,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:36",{"_index":10305,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:48",{"_index":10320,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:57",{"_index":10309,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:68",{"_index":10292,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:78",{"_index":10315,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:84",{"_index":10302,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.alias",{"_index":17074,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["system.displayname",{"_index":17075,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.dto",{"_index":15702,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["system.dto.ts",{"_index":16890,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:5",{"_index":16893,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:7",{"_index":16892,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:9",{"_index":16891,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.entity",{"_index":8470,"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":12823,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["system.id",{"_index":13778,"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":19330,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemUc.html":{}}}],["system.ldapconfig",{"_index":11834,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.ldapconfig.searchuserpassword",{"_index":11835,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.module",{"_index":19278,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["system.module.ts",{"_index":10348,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.oauthconfig",{"_index":11828,"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":11829,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oauthconfig.provider",{"_index":16220,"title":{},"body":{"injectables/OauthUc.html":{}}}],["system.oauthconfig?.logoutendpoint",{"_index":15460,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oauthconfig?.provider",{"_index":15459,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oidcconfig",{"_index":11831,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/SystemService.html":{}}}],["system.oidcconfig.clientsecret",{"_index":11832,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oidcconfig.idphint",{"_index":19499,"title":{},"body":{"injectables/SystemService.html":{}}}],["system.provisioningstrategy",{"_index":19327,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.provisioningurl",{"_index":19328,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.type",{"_index":17073,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.url",{"_index":19326,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system/file",{"_index":10275,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["system?.displayname",{"_index":11289,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["system?.id",{"_index":21474,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["systemapimodule",{"_index":18506,"title":{"modules/SystemApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SystemApiModule.html":{},"modules.html":{}}}],["systemcontroller",{"_index":19275,"title":{"controllers/SystemController.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{}}}],["systemdto",{"_index":11217,"title":{"classes/SystemDto.html":{}},"body":{"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"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":19483,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.displayname",{"_index":19484,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.id",{"_index":19480,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.oauthconfig",{"_index":19485,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningstrategy",{"_index":19486,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningurl",{"_index":19487,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.type",{"_index":19482,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.url",{"_index":19488,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdtos",{"_index":19305,"title":{},"body":{"controllers/SystemController.html":{}}}],["systementity",{"_index":8469,"title":{"entities/SystemEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["systemfactory",{"_index":12822,"title":{"classes/SystemFactory.html":{}},"body":{"classes/ImportUserFactory.html":{},"classes/SystemFactory.html":{}}}],["systemfactory.build",{"_index":12825,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["systemfactory.define(systementity",{"_index":19365,"title":{},"body":{"classes/SystemFactory.html":{}}}],["systemfilterparams",{"_index":19282,"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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceResponse.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IJsonAccount.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":{},"interfaces/OauthCurrentUser.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":16092,"title":{"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}},"body":{"controllers/OauthSSOController.html":{},"controllers/SystemController.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["systemids",{"_index":11257,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemids[0",{"_index":21288,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemlistresponse",{"_index":19452,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemmap",{"_index":11250,"title":{},"body":{"injectables/GroupUc.html":{}}}],["systemmap.get(group.externalsource.systemid",{"_index":11253,"title":{},"body":{"injectables/GroupUc.html":{}}}],["systemmapper",{"_index":19379,"title":{"classes/SystemMapper.html":{}},"body":{"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitiestodtos(systems",{"_index":19479,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitytodto(system",{"_index":19472,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromoauthconfigentitytodto(entity.oauthconfig",{"_index":19391,"title":{},"body":{"classes/SystemMapper.html":{}}}],["systemmodule",{"_index":1548,"title":{"modules/SystemModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/GroupApiModule.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":19400,"title":{"classes/SystemOidcMapper.html":{}},"body":{"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitiestodtos(system",{"_index":19426,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitytodto(system",{"_index":19423,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromoidcconfigentitytodto(entity.id",{"_index":19410,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["systemoidcservice",{"_index":13332,"title":{"injectables/SystemOidcService.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{}}}],["systemprovisioningstrategy",{"_index":12334,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.iserv",{"_index":13102,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.oidc",{"_index":16297,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.sanis",{"_index":17986,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.undefined",{"_index":16900,"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":19454,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper",{"_index":19299,"title":{"classes/SystemResponseMapper.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper.mapfromdtotolistresponse(systemdtos",{"_index":19308,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromdtotoresponse(systemdto",{"_index":19312,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromoauthconfigdtotoresponse(system.oauthconfig",{"_index":19455,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponses",{"_index":17064,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["systems",{"_index":10293,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/GroupUc.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":{},"controllers/SystemController.html":{},"entities/SystemEntity.html":{},"classes/SystemFilterParams.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["systems.'})@apiresponse({status",{"_index":19285,"title":{},"body":{"controllers/SystemController.html":{}}}],["systems.filter((system",{"_index":19491,"title":{},"body":{"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["systems.foreach((system",{"_index":11827,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systems.getitems().find((system",{"_index":20924,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["systems.map",{"_index":19450,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systems.map((system",{"_index":19495,"title":{},"body":{"injectables/SystemService.html":{}}}],["systems.set(systemid",{"_index":11266,"title":{},"body":{"injectables/GroupUc.html":{}}}],["systemscollectionname",{"_index":11673,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systemscope",{"_index":19433,"title":{"classes/SystemScope.html":{}},"body":{"injectables/SystemRepo.html":{},"classes/SystemScope.html":{}}}],["systemservice",{"_index":11196,"title":{"injectables/SystemService.html":{}},"body":{"injectables/GroupUc.html":{},"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":16863,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["systemtype",{"_index":19503,"title":{},"body":{"injectables/SystemUc.html":{}}}],["systemtypeenum",{"_index":19373,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemtypeenum.ldap",{"_index":19435,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemtypeenum.oauth",{"_index":19437,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemtypeenum.oidc",{"_index":19439,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemuc",{"_index":19273,"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":{},"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/ExternalToolElement.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"classes/Group.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.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/LinkElement.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":{},"injectables/PreviewProducer.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"classes/RpcMessageProducer.html":{},"interfaces/Rule.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolYearRepo.html":{},"classes/SortHelper.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":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["t.name",{"_index":19670,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["tab",{"_index":11779,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"controllers/TeamNewsController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["table",{"_index":15255,"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/FederalStateEntity.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/SchoolYearEntity.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["tags",{"_index":12100,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["take",{"_index":12042,"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":19837,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tangible",{"_index":22554,"title":{},"body":{"license.html":{}}}],["tap",{"_index":8163,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["target",{"_index":2702,"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/SchoolSpecificFileCopyServiceImpl.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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["target._id.tostring",{"_index":9579,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["target.constructor",{"_index":8319,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["target.entity",{"_index":2657,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{}}}],["target.entity.ts",{"_index":4873,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:21",{"_index":4877,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:32",{"_index":4876,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:35",{"_index":4875,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.id",{"_index":19512,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.name",{"_index":19513,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.service",{"_index":17730,"title":{},"body":{"injectables/RoomsService.html":{}}}],["target.service.ts",{"_index":4888,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:11",{"_index":4897,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:33",{"_index":4894,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:8",{"_index":4892,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.targetids",{"_index":15137,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.targetids.length",{"_index":15210,"title":{},"body":{"injectables/NewsUc.html":{}}}],["target.targetmodel",{"_index":15135,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.title",{"_index":4906,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target:in",{"_index":15136,"title":{},"body":{"classes/NewsScope.html":{}}}],["target_model_values",{"_index":15008,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["targetboard",{"_index":4974,"title":{},"body":{"injectables/ColumnService.html":{}}}],["targetcard",{"_index":4181,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{}}}],["targetcardid",{"_index":4167,"title":{},"body":{"injectables/CardUc.html":{}}}],["targetcolumn",{"_index":4108,"title":{},"body":{"injectables/CardService.html":{}}}],["targetelement",{"_index":7545,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetelement.addreferences(element.getreferences",{"_index":7546,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetexternalid",{"_index":18328,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["targetfolder",{"_index":11689,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["targetgroups",{"_index":12101,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["targetid",{"_index":7035,"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":9577,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["targetinfomapper",{"_index":15034,"title":{"classes/TargetInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/TargetInfoMapper.html":{}}}],["targetinfomapper.maptoresponse(news.target",{"_index":15036,"title":{},"body":{"classes/NewsMapper.html":{}}}],["targetinforesponse",{"_index":15005,"title":{"classes/TargetInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{}}}],["targetmodel",{"_index":6857,"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":{}}}],["targetmodels",{"_index":15169,"title":{},"body":{"injectables/NewsUc.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.courses",{"_index":22002,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.events",{"_index":22000,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.map(async",{"_index":15206,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targetmodelsmapping",{"_index":21998,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[entitydo.targetmodel",{"_index":22013,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[videoconferencescope",{"_index":22006,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetparent",{"_index":3410,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.addchild(child",{"_index":3423,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.haschild(child",{"_index":3417,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.removechild(child",{"_index":3418,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparentid",{"_index":17169,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetparentinfo",{"_index":10073,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["targetpath",{"_index":6266,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["targetpermissions",{"_index":9568,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["targetposition",{"_index":3411,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["targets",{"_index":9573,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{}}}],["targets.filter((target",{"_index":15209,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targets.map((target",{"_index":9578,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/NewsScope.html":{}}}],["targetschoolid",{"_index":4755,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"interfaces/SchoolSpecificFileCopyService.html":{}}}],["targetschoolnumber",{"_index":21331,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["targetsystem",{"_index":16483,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemid",{"_index":18325,"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":21439,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl.tostring",{"_index":21444,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["task",{"_index":2649,"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":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["task's",{"_index":23293,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["task.availabledate",{"_index":19722,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.course",{"_index":17677,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/SubmissionRepo.html":{}}}],["task.createdat",{"_index":19717,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.createstudentstatusforuser(this.user",{"_index":8125,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createstudentstatusforuser(user",{"_index":19981,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.createteacherstatusforuser(this.user",{"_index":8124,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createteacherstatusforuser(user",{"_index":19980,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.creator",{"_index":17672,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.description",{"_index":19620,"title":{},"body":{"injectables/TaskCopyService.html":{},"classes/TaskMapper.html":{}}}],["task.description.replace(regex",{"_index":19621,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["task.descriptioninputformat",{"_index":19720,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.duedate",{"_index":19724,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.entity",{"_index":2650,"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":{},"classes/UsersList.html":{}}}],["task.factory",{"_index":19032,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["task.finishforuser(user",{"_index":19985,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.getparentdata",{"_index":19711,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.id",{"_index":19714,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.isdraft",{"_index":11904,"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":11906,"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":11902,"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":17674,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson.course",{"_index":19169,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.lesson.coursegroup.course",{"_index":19170,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.module",{"_index":19538,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["task.name",{"_index":5093,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/TaskMapper.html":{}}}],["task.name}${task.description",{"_index":5094,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["task.response",{"_index":3447,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["task.response.ts",{"_index":3751,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:15",{"_index":3761,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:19",{"_index":3762,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:22",{"_index":3755,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:25",{"_index":3760,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:29",{"_index":3756,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:33",{"_index":3758,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:36",{"_index":3759,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:39",{"_index":3757,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:42",{"_index":3765,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:45",{"_index":3764,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:5",{"_index":3754,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.restoreforuser(user",{"_index":19986,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.rule",{"_index":19190,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["task.submissions.getitems",{"_index":19928,"title":{},"body":{"injectables/TaskService.html":{}}}],["task.unpublish",{"_index":19990,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.updatedat",{"_index":19718,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskapimodule",{"_index":18507,"title":{"modules/TaskApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskApiModule.html":{},"modules.html":{}}}],["taskboardelement",{"_index":2660,"title":{"entities/TaskBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/TaskBoardElement.html":{}}}],["taskcontroller",{"_index":19536,"title":{"controllers/TaskController.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{}}}],["taskcopy",{"_index":19604,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopy.name",{"_index":19625,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyapiparams",{"_index":6395,"title":{"classes/TaskCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{}}}],["taskcopyparams",{"_index":19599,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyparentparams",{"_index":6397,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcopyservice",{"_index":2971,"title":{"injectables/TaskCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["taskcopyuc",{"_index":19533,"title":{"injectables/TaskCopyUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcourse",{"_index":17623,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcourse.name",{"_index":17626,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcreateparams",{"_index":19673,"title":{"classes/TaskCreateParams.html":{}},"body":{"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["taskdesc",{"_index":19710,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.color",{"_index":19726,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.courseid",{"_index":19716,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.coursename",{"_index":19715,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonhidden",{"_index":19730,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonname",{"_index":19727,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskelement",{"_index":3068,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["taskelements",{"_index":3685,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["taskfactory",{"_index":19031,"title":{"classes/TaskFactory.html":{}},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["taskfactory.build",{"_index":19036,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["taskfactory.define(task",{"_index":19690,"title":{},"body":{"classes/TaskFactory.html":{}}}],["taskid",{"_index":19209,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUrlParams.html":{}}}],["taskidentifier",{"_index":5090,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskidentifier}/${taskidentifier}.html",{"_index":5092,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskids",{"_index":19156,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["tasklistresponse",{"_index":19569,"title":{"classes/TaskListResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["tasklistresponse(taskresponses",{"_index":19581,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmapper",{"_index":19566,"title":{"classes/TaskMapper.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskMapper.html":{}}}],["taskmapper.maptoresponse(task",{"_index":19580,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmodule",{"_index":13867,"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":12450,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskparentpermission",{"_index":17667,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["taskrepo",{"_index":1935,"title":{"injectables/TaskRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.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":19570,"title":{"classes/TaskResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["taskresponses",{"_index":19578,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskrule",{"_index":1897,"title":{"injectables/TaskRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{}}}],["tasks",{"_index":5055,"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":11901,"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":5060,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["tasks.map((task",{"_index":19979,"title":{},"body":{"injectables/TaskUC.html":{}}}],["taskscope",{"_index":19761,"title":{"classes/TaskScope.html":{}},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{}}}],["taskscope('$or",{"_index":19771,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["taskservice",{"_index":5003,"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":17602,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskstatus.mapper.ts",{"_index":3769,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatus.mapper.ts:5",{"_index":3772,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatusmapper",{"_index":19708,"title":{"classes/TaskStatusMapper.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["taskstatusmapper.maptoresponse(status",{"_index":19713,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskstatusresponse",{"_index":19694,"title":{"classes/TaskStatusResponse.html":{}},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{}}}],["taskstatusresponse(status",{"_index":19933,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["tasksubmitterids",{"_index":12515,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskswithstatus",{"_index":19575,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskswithstatus.map((task",{"_index":19579,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskuc",{"_index":19534,"title":{"injectables/TaskUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["taskupdateparams",{"_index":19704,"title":{"classes/TaskUpdateParams.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["taskurlparams",{"_index":19004,"title":{"classes/TaskUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"classes/TaskUrlParams.html":{}}}],["taskwithstatus",{"_index":17612,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/TaskMapper.html":{}}}],["taskwithstatusvo",{"_index":8091,"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":8121,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/TaskUC.html":{}}}],["taskwithstatusvos",{"_index":19978,"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":5085,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher.lastname",{"_index":5086,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher_student_visibility__is_configurable",{"_index":11578,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["teacheraccount",{"_index":869,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teacherentities",{"_index":9696,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherid",{"_index":12454,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["teacherid.tohexstring",{"_index":4375,"title":{},"body":{"classes/ClassMapper.html":{}}}],["teacherids",{"_index":4206,"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":{},"classes/UsersList.html":{}}}],["teacherpermissions",{"_index":21002,"title":{},"body":{"classes/UserFactory.html":{}}}],["teacherpseudonyms",{"_index":9706,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teacherpseudonyms.concat(substitutionteacherpseudonyms",{"_index":9712,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["teachers",{"_index":4324,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/FeathersRosterService.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"interfaces/ICourseProperties.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["teachers.map((user",{"_index":11301,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["teacherswithid",{"_index":6727,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacherswithid(numberofteachers",{"_index":6733,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacheruser",{"_index":870,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teaching_assistant",{"_index":7110,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["teachingassistant",{"_index":7111,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["team",{"_index":4533,"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":{},"properties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["team.entity",{"_index":6848,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["team.id",{"_index":4568,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.name",{"_index":4570,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.teamusers",{"_index":15272,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.length",{"_index":15283,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.map(async",{"_index":20181,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["team.userids",{"_index":20131,"title":{},"body":{"injectables/TeamService.html":{}}}],["team.userids.filter((u",{"_index":20132,"title":{},"body":{"injectables/TeamService.html":{}}}],["teamadmin",{"_index":4673,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamdto",{"_index":4531,"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":6847,"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/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["teamentity.id",{"_index":20066,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.name",{"_index":20067,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.teamusers.map",{"_index":20062,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamfactory",{"_index":20042,"title":{"classes/TeamFactory.html":{}},"body":{"classes/TeamFactory.html":{}}}],["teamfactory.define(teamentity",{"_index":20054,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamid",{"_index":3889,"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":4637,"title":{"injectables/TeamMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/TeamMapper.html":{}}}],["teammemberids",{"_index":12302,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids",{"_index":12300,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids.map((id",{"_index":12303,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammembers",{"_index":12276,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{}}}],["teammemberswithid",{"_index":19024,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teammemberswithid(numberofteammembers",{"_index":19028,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teamname",{"_index":4569,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamnews",{"_index":6888,"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":6879,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnewscontroller",{"_index":15070,"title":{"controllers/TeamNewsController.html":{}},"body":{"modules/NewsModule.html":{},"controllers/TeamNewsController.html":{}}}],["teamowner",{"_index":4672,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teampermissions",{"_index":4667,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsbody",{"_index":4608,"title":{"classes/TeamPermissionsBody.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsdto",{"_index":4542,"title":{"classes/TeamPermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsmapper",{"_index":4638,"title":{"injectables/TeamPermissionsMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teamrole",{"_index":4605,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.roleid",{"_index":4705,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.teamid",{"_index":4704,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamroledto",{"_index":4606,"title":{"classes/TeamRoleDto.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamRoleDto.html":{}}}],["teamrolepermissionsdto",{"_index":4566,"title":{"classes/TeamRolePermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamrule",{"_index":1898,"title":{"injectables/TeamRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/TeamRule.html":{}}}],["teams",{"_index":11936,"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":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["teams.foreach((team",{"_index":20130,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.length",{"_index":20135,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.map((team",{"_index":12648,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["teamsapimodule",{"_index":18508,"title":{"modules/TeamsApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TeamsApiModule.html":{},"modules.html":{}}}],["teamservice",{"_index":20120,"title":{"injectables/TeamService.html":{}},"body":{"injectables/TeamService.html":{},"modules/TeamsModule.html":{}}}],["teamsmapper",{"_index":4653,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["teamsmodule",{"_index":20166,"title":{"modules/TeamsModule.html":{}},"body":{"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules.html":{}}}],["teamsrepo",{"_index":1936,"title":{"injectables/TeamsRepo.html":{}},"body":{"modules/AuthorizationReferenceModule.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":{}}}],["teamstorageuc",{"_index":4627,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["teamsubmissions",{"_index":12440,"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":20073,"title":{"classes/TeamUrlParams.html":{}},"body":{"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{}}}],["teamuser",{"_index":15248,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamsRepo.html":{}}}],["teamuser.role.id",{"_index":20064,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.school.id",{"_index":20065,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.user.id",{"_index":20063,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{}}}],["teamuserdto",{"_index":15252,"title":{"classes/TeamUserDto.html":{}},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamuserentity",{"_index":12553,"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":{}}}],["teamuserentity(teamuser",{"_index":12563,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamuserfactory",{"_index":20050,"title":{"classes/TeamUserFactory.html":{}},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["teamuserfactory.buildwithid",{"_index":20055,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamuserfactory.define(teamuserentity",{"_index":20161,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["teamuserfactory.withroleanduserid(role",{"_index":20052,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamusers",{"_index":12552,"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":12560,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers.map(async",{"_index":15290,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["teardown",{"_index":22893,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tech",{"_index":23039,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technical",{"_index":8303,"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":22446,"title":{},"body":{"license.html":{}}}],["tell",{"_index":23032,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tells",{"_index":5441,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"license.html":{}}}],["temp",{"_index":10294,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["temp/:file",{"_index":11387,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["tempflow.alias",{"_index":13394,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["template",{"_index":1268,"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":{}}}],["template')@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":20335,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["template.replace(/\\{id\\}/g",{"_index":8794,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["template.response",{"_index":5733,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}}}],["template.response.ts",{"_index":5734,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:10",{"_index":5745,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:13",{"_index":5742,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:16",{"_index":5741,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:19",{"_index":5744,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:22",{"_index":5739,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:7",{"_index":5740,"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":23713,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["term",{"_index":22419,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["terminal",{"_index":23519,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["terminate",{"_index":22643,"title":{},"body":{"license.html":{}}}],["terminated",{"_index":22661,"title":{},"body":{"license.html":{}}}],["terminates",{"_index":22651,"title":{},"body":{"license.html":{}}}],["termination",{"_index":22640,"title":{},"body":{"license.html":{}}}],["terms",{"_index":22223,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["test",{"_index":1125,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICleanOptions.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":{},"injectables/TaskCopyUC.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(this.content.url",{"_index":5658,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["test.createtestingmodule",{"_index":20223,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["test.module.ts",{"_index":10646,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:30",{"_index":10648,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["test.module.ts:31",{"_index":11402,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:37",{"_index":10762,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["test/test",{"_index":20212,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["testapiclient",{"_index":1637,"title":{"classes/TestApiClient.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testbootstrapconsole",{"_index":20210,"title":{"classes/TestBootstrapConsole.html":{}},"body":{"classes/TestBootstrapConsole.html":{}}}],["testcase",{"_index":23309,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testdata",{"_index":23329,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tested",{"_index":6935,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testhelper",{"_index":20232,"title":{"classes/TestHelper.html":{}},"body":{"classes/TestHelper.html":{}}}],["testing",{"_index":11372,"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":11362,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["testingmodule",{"_index":20219,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testkcconnection",{"_index":13248,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["testmodule",{"_index":23448,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.close",{"_index":23454,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(entitymanager",{"_index":23451,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(mikroorm",{"_index":23450,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(newsrepo",{"_index":23449,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testname",{"_index":20243,"title":{},"body":{"classes/TestHelper.html":{}}}],["testreqestconst",{"_index":1632,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.accesstoken",{"_index":1696,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.loginpath",{"_index":1672,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.prefix",{"_index":1655,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testrequestinstance",{"_index":1659,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["tests",{"_index":2469,"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":20242,"title":{},"body":{"classes/TestHelper.html":{}}}],["testtext",{"_index":20238,"title":{},"body":{"classes/TestHelper.html":{}}}],["testuser",{"_index":7013,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["text",{"_index":2848,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RecursiveCopyVisitor.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":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["text(value",{"_index":17471,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["text.length",{"_index":20241,"title":{},"body":{"classes/TestHelper.html":{}}}],["text.types.ts",{"_index":17450,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:14",{"_index":17452,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:20",{"_index":17453,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:5",{"_index":17451,"title":{},"body":{"classes/RichText.html":{}}}],["text.validator.ts",{"_index":23210,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["text1",{"_index":4818,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text2",{"_index":4838,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text3",{"_index":4854,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text4",{"_index":4867,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["textutils",{"_index":23196,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["textvalidator",{"_index":23211,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["tha",{"_index":3643,"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":23741,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["themselves",{"_index":23400,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["then((pseudonymdo",{"_index":15294,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["then((resp",{"_index":2308,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["there's",{"_index":19842,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["therefore",{"_index":6761,"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":22299,"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":19658,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["third",{"_index":22469,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["this(entityclass",{"_index":2507,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this._allowemptyquery",{"_index":18469,"title":{},"body":{"classes/Scope.html":{}}}],["this._collectdefaultmetrics",{"_index":16766,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._collectmetricsroutemetrics",{"_index":16767,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._columnboardid",{"_index":4880,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._columnboardid.tohexstring",{"_index":4884,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._contextid",{"_index":4779,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contextid.tohexstring",{"_index":4781,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._contextid?.tohexstring",{"_index":12258,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contexttype",{"_index":4777,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._creatorid",{"_index":9962,"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":9923,"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":10383,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.aggregate(lessonentity",{"_index":14229,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.aggregate(user",{"_index":21536,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.assign(fetchedentity",{"_index":2419,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.create(this.entityname",{"_index":2413,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.find(account",{"_index":924,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.find(coursegroup",{"_index":19167,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.find(fileentity",{"_index":10376,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.find(ltitool",{"_index":14702,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.find(role",{"_index":17562,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.find(storageproviderentity",{"_index":18948,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["this._em.find(systementity",{"_index":19442,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["this._em.find(teamentity",{"_index":20184,"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":20922,"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":6933,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findandcount(coursegroup",{"_index":6784,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.findandcount(filerecord",{"_index":10193,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findandcount(importuser",{"_index":12968,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findandcount(lessonentity",{"_index":14226,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.findandcount(news",{"_index":15102,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findandcount(schoolentity",{"_index":14028,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findandcount(task",{"_index":19846,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.findandcount(this.entityname",{"_index":19163,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.findandcount(user",{"_index":20913,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findone(account",{"_index":920,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findone(board",{"_index":3678,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findone(importuser",{"_index":12949,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findone(ltitool",{"_index":14705,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findone(schoolentity",{"_index":14026,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findone(this.entityname",{"_index":9013,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["this._em.findone(userloginmigrationentity",{"_index":21206,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.findoneorfail",{"_index":5884,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.findoneorfail(account",{"_index":925,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findoneorfail(board",{"_index":3682,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findoneorfail(course",{"_index":3680,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findoneorfail(federalstateentity",{"_index":9775,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["this._em.findoneorfail(filerecord",{"_index":10194,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findoneorfail(importuser",{"_index":12946,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findoneorfail(ltitool",{"_index":14704,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findoneorfail(news",{"_index":15098,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findoneorfail(role",{"_index":17560,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.findoneorfail(schoolyearentity",{"_index":18447,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["this._em.findoneorfail(sharetoken",{"_index":18734,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["this._em.findoneorfail(teamentity",{"_index":20180,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.findoneorfail(this.entityname",{"_index":2418,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/UserDORepo.html":{}}}],["this._em.findoneorfail(videoconference",{"_index":22005,"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":18144,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.getreference(role",{"_index":20944,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.getreference(schoolentity",{"_index":18142,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(schoolexternaltoolentity",{"_index":5900,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.getreference(systementity",{"_index":14052,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(userloginmigrationentity",{"_index":14054,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.map(fileentity",{"_index":10385,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.map(lessonentity",{"_index":14231,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.map(user",{"_index":21549,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.nativedelete(importuser",{"_index":12973,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.nativedelete(this.entityname",{"_index":2444,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.nativedelete(user",{"_index":21554,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.persist(account",{"_index":928,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.persistandflush(board",{"_index":3681,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.persistandflush(entities",{"_index":2407,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.populate(columnboardelements",{"_index":3692,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(course",{"_index":6925,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.populate(coursegroup",{"_index":6783,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.populate(coursenews",{"_index":15108,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(importuser.user",{"_index":12947,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(lesson",{"_index":14221,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(lessonelements",{"_index":3690,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(lessons",{"_index":14227,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(newsentities",{"_index":15103,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(newsentity",{"_index":15099,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(role",{"_index":20187,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(schoolnews",{"_index":15106,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(submissions",{"_index":19168,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.populate(taskelements",{"_index":3688,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(tasks",{"_index":19762,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.populate(teamnews",{"_index":15107,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(teamuser",{"_index":20182,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(user",{"_index":21515,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.populate(userentity",{"_index":20915,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.populate(usermatches",{"_index":12972,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(users",{"_index":21551,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.remove(entities",{"_index":2435,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.removeandflush(account",{"_index":934,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.removeandflush(entities",{"_index":2546,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["this._id",{"_index":7562,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this._instance",{"_index":16773,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._iscopyfrom",{"_index":10063,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._iscopyfrom?.tohexstring",{"_index":10058,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._isenabled",{"_index":16763,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._lockid",{"_index":9966,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._lockid?.tohexstring",{"_index":9924,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._oauthconfigcache",{"_index":13525,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this._operator",{"_index":18468,"title":{},"body":{"classes/Scope.html":{}}}],["this._origintoolid",{"_index":7160,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._origintoolid?.tohexstring",{"_index":7130,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._ownerid",{"_index":9958,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._ownerid.tohexstring",{"_index":9922,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._parentid",{"_index":9956,"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":10056,"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":9921,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._port",{"_index":16765,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._queries",{"_index":18471,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.length",{"_index":18470,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.push(query",{"_index":18473,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries[0",{"_index":18472,"title":{},"body":{"classes/Scope.html":{}}}],["this._route",{"_index":16764,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._schoolid",{"_index":10060,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._schoolid.tohexstring",{"_index":10057,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.abbreviation",{"_index":6465,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.acceptconsentrequest",{"_index":15833,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.acceptloginrequest(currentuserid",{"_index":15985,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.accesskeyid",{"_index":12267,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.accesstoken",{"_index":14505,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.accountlookupservice.getinternalid(id",{"_index":1105,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyid(internalid",{"_index":1098,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyuserid(userid",{"_index":1099,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyid(accountid",{"_index":1150,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyid(internalid",{"_index":1074,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyuserid(userid",{"_index":1077,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyusernameandsystemid(username",{"_index":1079,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmany(offset",{"_index":1110,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmultiplebyuserid(userids",{"_index":1075,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.save(account",{"_index":1094,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(email",{"_index":1133,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(username",{"_index":1102,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernamepartialmatch(username",{"_index":1100,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountservice.findbyuserid(user.id",{"_index":15514,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["this.accountservice.findbyuseridorfail(currentuserid",{"_index":21455,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.findbyuseridorfail(userid",{"_index":21610,"title":{},"body":{"injectables/UserService.html":{}}}],["this.accountservice.findbyusernameandsystemid(username",{"_index":1745,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.findmany(skip",{"_index":13661,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.accountservice.save(account",{"_index":21466,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.save(accountcopy",{"_index":21461,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.savewithvalidation",{"_index":16356,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.accountservice.searchbyusernameexactmatch(username",{"_index":1746,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.updatelasttriedfailedlogin(id",{"_index":1773,"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.activated",{"_index":423,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{}}}],["this.active",{"_index":12361,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.adapter.createteam(team",{"_index":4687,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.deleteteam(teamid",{"_index":4686,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteam(team",{"_index":4688,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteampermissionsforrole",{"_index":4683,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.addclientprotocolmappers(defaultclientinternalid",{"_index":13425,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.addexternaloauth2datatoconfig(tool.config",{"_index":9330,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.addlessons(builder",{"_index":5040,"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":6018,"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/PseudonymScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["this.addquery(emptyresultquery",{"_index":15140,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(queries[0",{"_index":15141,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(query",{"_index":10227,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["this.addroom(room",{"_index":7515,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.addtasks(builder",{"_index":5041,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addteacherroleifadmin(externaluser",{"_index":17991,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.adminidandtoken",{"_index":1281,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.alias",{"_index":12421,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.allowmodstounmuteusers",{"_index":2107,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.allrooms",{"_index":7525,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.alternativetext",{"_index":9852,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.amqpconnection.publish",{"_index":1378,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.amqpconnection.publish(this.options.exchange",{"_index":14757,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.amqpconnection.request>(this.createrequest(event",{"_index":17776,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.amqpconnectionmanager.getconnections().map((connection",{"_index":17097,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["this.ancestorids.length",{"_index":3618,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.ancestorids[this.ancestorids.length",{"_index":3612,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.antareskey",{"_index":6461,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.app",{"_index":1651,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.appendnotcontainedboardelements(boardelementtargets",{"_index":2691,"title":{},"body":{"entities/Board.html":{}}}],["this.applypagination(combinedclassinfo",{"_index":11233,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.applypropertiestopathparams(url",{"_index":248,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.attendeepw",{"_index":2105,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.aud",{"_index":13146,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["this.authendpoint",{"_index":12349,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.authenticationservice.checkbrutforce(account",{"_index":13820,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.generatejwt(oauthcurrentuser",{"_index":16235,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.authenticationservice.loadaccount",{"_index":13842,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(`${externalschoolid}/${username}`.tolowercase",{"_index":13839,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(username",{"_index":14391,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizepassword(password",{"_index":13826,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizeusername(username",{"_index":13825,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.removejwtfromwhitelist(userjwt",{"_index":16233,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.authenticationservice.updatelasttriedfailedlogin(account.id",{"_index":13828,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authorisation.checkpermission(authorizableuser",{"_index":19665,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.checkpermission(user",{"_index":14185,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisation.getuserwithpermissions(userid",{"_index":14164,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(authorizableuser",{"_index":19663,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(user",{"_index":14179,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.authorisationservice",{"_index":8099,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorisationservice.hascoursewritepermission(user",{"_index":17762,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.authorisationservice.haspermission(this.user",{"_index":8109,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorization.checkpermissionbyreferences(userid",{"_index":6706,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.authorizationhelper.hasaccesstoentity",{"_index":6943,"title":{},"body":{"injectables/CourseRule.html":{}}}],["this.authorizationhelper.hasaccesstoentity(user",{"_index":6791,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissions(user",{"_index":2013,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/GroupRule.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":20119,"title":{},"body":{"injectables/TeamRule.html":{}}}],["this.authorizationhelper.hasoneofpermissions(user",{"_index":2014,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.authorizationreferenceservice.checkpermissionbyreferences",{"_index":18843,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkallpermissions(user",{"_index":9419,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkentitypermissions",{"_index":15195,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkentitypermissions(userid",{"_index":15179,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkoneofpermissions(user",{"_index":19966,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.checkpermission",{"_index":11225,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/SubmissionUc.html":{}}}],["this.authorizationservice.checkpermission(authorizableuser",{"_index":20626,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.authorizationservice.checkpermission(user",{"_index":4184,"title":{},"body":{"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.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":6721,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.authorizationservice.checkpermissions(user",{"_index":23683,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.getentitypermissions(userid",{"_index":15211,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getpermittedentities(userid",{"_index":15207,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuser.userid",{"_index":15797,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuserid",{"_index":15992,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(pseudonymuserid",{"_index":17040,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(userid",{"_index":1982,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/GroupUc.html":{},"injectables/LessonUC.html":{},"injectables/PseudonymUc.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":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasallpermissions(user",{"_index":19982,"title":{},"body":{"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasoneofpermissions(user",{"_index":19989,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.haspermission(user",{"_index":1984,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"injectables/CardUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermission(userid",{"_index":23662,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationurl",{"_index":12408,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.authorizeaccess",{"_index":13268,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.authservice.checkpermission",{"_index":4680,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.checkpermission(authorizableuser",{"_index":14125,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.authservice.generatejwt(createjwtpayload",{"_index":14549,"title":{},"body":{"injectables/LoginUc.html":{}}}],["this.authservice.getuserwithpermissions(currentuserid",{"_index":4681,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.getuserwithpermissions(userid",{"_index":14108,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.availabledate",{"_index":12460,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.axiosconfig",{"_index":11481,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.basepath",{"_index":11684,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.baseroute",{"_index":1652,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.baseurl",{"_index":2579,"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":21681,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["this.bbbservice.create(configbuilder.build",{"_index":21813,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.end(config",{"_index":21880,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.bbbservice.getmeetinginfo(config",{"_index":21900,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.bbbservice.getmeetinginfo(new",{"_index":21799,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.join(joinbuilder.build",{"_index":21932,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.bbbsettings.host",{"_index":2296,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.presentationurl",{"_index":2298,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.salt",{"_index":2297,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.board",{"_index":8098,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.board.getelements",{"_index":8101,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.boardcopyservice.copyboard",{"_index":6672,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo",{"_index":4183,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo).then((boarddoauthorizable",{"_index":4186,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(submissioncontainerelement",{"_index":19126,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.boarddocopyservice.copy",{"_index":4757,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.delete(domainobject",{"_index":3416,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findbyclassandid(card",{"_index":4116,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findbyclassandid(column",{"_index":4978,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findbyclassandid(columnboard",{"_index":4743,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyid(elementid",{"_index":5612,"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":4117,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findidsbyexternalreference(reference",{"_index":4805,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findparentofid(card.id",{"_index":4127,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findparentofid(child.id",{"_index":3420,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(column.id",{"_index":4982,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findparentofid(domainobject.id",{"_index":3413,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(element.id",{"_index":5622,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(submissionitem.id",{"_index":19105,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.getancestorids(boarddo",{"_index":3133,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.boarddorepo.gettitlesbyids(boardids",{"_index":4807,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(board",{"_index":4810,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(card",{"_index":4128,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.save(column",{"_index":4983,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.save(columnboard",{"_index":4808,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(copystatus.copyentity",{"_index":4762,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.boarddorepo.save(element",{"_index":5623,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(parent.children",{"_index":3415,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(sourceparent.children",{"_index":3422,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.save(submissioncontainer.children",{"_index":19103,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.save(targetparent.children",{"_index":3424,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorule",{"_index":17809,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.boarddoservice.deletewithdescendants(board",{"_index":4809,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddoservice.deletewithdescendants(card",{"_index":4125,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.deletewithdescendants(column",{"_index":4980,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.deletewithdescendants(element",{"_index":5616,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddoservice.move(card",{"_index":4126,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.move(column",{"_index":4981,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.move(element",{"_index":5617,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boardelementservice.findbyid(contextexternaltool.contextref.id",{"_index":20629,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boardelementtype",{"_index":4990,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["this.boardmanagementuc.createboard(courseid",{"_index":3500,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.boardnodeauthorizableservice",{"_index":12146,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.boardnoderepo",{"_index":3379,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(boarddo.id",{"_index":3375,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(childid",{"_index":3372,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(id",{"_index":3347,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(parent.id",{"_index":17266,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.boardnoderepo.finddescendants(boardnode",{"_index":3348,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.finddescendantsofmany(boardnodes",{"_index":3355,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardrepo.findbycourseid(course.id",{"_index":17764,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.findbycourseid(courseid",{"_index":6662,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boardrepo.findbycourseid(roomid",{"_index":17759,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(board",{"_index":17738,"title":{},"body":{"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(boardcopy",{"_index":3028,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.boardservice.getboardauthorizable(boardelement",{"_index":20630,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.boarduc.createcard(currentuser.userid",{"_index":4946,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.createcolumn(currentuser.userid",{"_index":2956,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deleteboard(currentuser.userid",{"_index":2954,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deletecard(currentuser.userid",{"_index":4036,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.deletecolumn(currentuser.userid",{"_index":4944,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.findboard(currentuser.userid",{"_index":2940,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboardcontext(currentuser.userid",{"_index":2945,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.movecard(currentuser.userid",{"_index":4025,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.movecolumn(currentuser.userid",{"_index":4937,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.updateboardtitle(currentuser.userid",{"_index":2950,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.updatecardheight(currentuser.userid",{"_index":4030,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecardtitle(currentuser.userid",{"_index":4033,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecolumntitle(currentuser.userid",{"_index":4941,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.bsonconverter.deserialize(bsondocuments",{"_index":11755,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bsonconverter.serialize(jsondocuments",{"_index":11773,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bucket",{"_index":9946,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.build",{"_index":7301,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["this.build(params",{"_index":2510,"title":{},"body":{"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{}}}],["this.build(requiredpermissions",{"_index":1812,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["this.buildchildren(boardnode",{"_index":3235,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.buildcopyentitydict(elementstatus).foreach((el",{"_index":6382,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.builddtowithelements(mappedelements",{"_index":8104,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.buildexternaltool",{"_index":5571,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildfile",{"_index":5563,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildgroupsclaim(teams",{"_index":12644,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.buildlink",{"_index":5565,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildrichtext",{"_index":5567,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildscope(query",{"_index":5881,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this.buildsubmissioncontainer",{"_index":5569,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildtokenrequestpayload(code",{"_index":15449,"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.buildurl(toollaunchdata",{"_index":230,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.byuseridquery(userid",{"_index":19165,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.cacheexpiration",{"_index":17561,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["this.cachemanager.del(redisidentifier",{"_index":13213,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.cacheservice.getstoretype",{"_index":13212,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.calculatenumberofsubmitters(gradedsubmissions",{"_index":12530,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calculatenumberofsubmitters(submittedsubmissions",{"_index":12528,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calendarmapper.maptodto(resp.data",{"_index":3938,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.callkcadminclient",{"_index":13276,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.cancelbuttonurl",{"_index":16467,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.caption",{"_index":9851,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.cardid",{"_index":4145,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["this.cards",{"_index":4955,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["this.cardservice.findbyid(cardid",{"_index":4175,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyid(targetcardid",{"_index":4182,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyids(cardids",{"_index":4172,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.carduc.createelement(currentuser.userid",{"_index":4046,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.deleteelement(currentuser.userid",{"_index":8223,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.carduc.findcards(currentuser.userid",{"_index":4021,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.moveelement",{"_index":8215,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.cause",{"_index":3851,"title":{},"body":{"classes/BusinessError.html":{}}}],["this.challenge",{"_index":5536,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.checkandaddprefix(baseroute",{"_index":1653,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkandaddprefix(routenameinput",{"_index":1691,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkavaiblelanguages(params.language",{"_index":21639,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.checkavailablelanguages(newlanguage",{"_index":21625,"title":{},"body":{"injectables/UserService.html":{}}}],["this.checkcontextreadpermission(userid",{"_index":18821,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcreatepermission(userid",{"_index":18828,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcredentials(account",{"_index":13822,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkcredentials(password",{"_index":14397,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.checkdestinationcourseauthorisation(authorizableuser",{"_index":19657,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkdestinationcourseauthorization(user",{"_index":14171,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkdestinationlessonauthorization(authorizableuser",{"_index":19662,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkduplicateincontext(contextexternaltool",{"_index":6107,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.checkerror(response",{"_index":17777,"title":{},"body":{"classes/RpcMessageProducer.html":{}}}],["this.checkexpired(sharetoken",{"_index":18778,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.checkfeatureenabled",{"_index":6704,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.checkfeatureenabled(payload.parenttype",{"_index":18815,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkfeatureenabled(sharetoken.payload.parenttype",{"_index":18827,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkifpreviewpossible(filerecord",{"_index":16715,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.checklistscontainingequalentities(reorderedids",{"_index":2679,"title":{},"body":{"entities/Board.html":{}}}],["this.checkofficialschoolnumbersmatch(schooldo",{"_index":18359,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.checkoptionalparameter(param",{"_index":5413,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkoriginallessonauthorization(user",{"_index":14166,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.checkoriginaltaskauthorization(authorizableuser",{"_index":19656,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.checkparameterregex(foundentry",{"_index":5415,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparametertype(foundentry",{"_index":5414,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparentwritepermission(userid",{"_index":18816,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkpermission(userid",{"_index":4176,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/GroupUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.checkpreconditions(userid",{"_index":18909,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.checkschoolauthorization(authorizableuser",{"_index":14109,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.checkscopeandvalidateparameter(validatabletool",{"_index":5408,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkstreamresponsive(stream",{"_index":17867,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.checkvalue(account.userid",{"_index":13819,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(school.externalid",{"_index":13830,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(user.ldapdn",{"_index":13821,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkversionmatch(schoolexternaltool.toolversion",{"_index":18254,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.children.filter((ch",{"_index":2797,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.length",{"_index":2790,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.some((obj",{"_index":2802,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.splice(position",{"_index":2796,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.childrenmap[boardnode.path",{"_index":3229,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.path].push(boardnode",{"_index":3230,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.pathofchildren",{"_index":3271,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.clamconnection.scanstream(stream",{"_index":1364,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.classes.set(props.classes",{"_index":6558,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.classesrepo.findallbyschoolid(schoolid",{"_index":4418,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.findallbyuserid(userid",{"_index":4420,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.updatemany(updatedclasses",{"_index":4424,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classnames",{"_index":12843,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.classnames.push(...props.classnames",{"_index":12025,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.classservice.findclassesforschool(schoolid",{"_index":11240,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.classvalidatormetadatastorage.gettargetvalidationmetadatas",{"_index":8318,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.cleanupinput(username",{"_index":14390,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.cleanuppath(this.baseroute",{"_index":1692,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.client",{"_index":12108,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/S3ClientAdapter.html":{}}}],["this.client.addaccesstogroupfolder(folderid",{"_index":15281,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.addusertogroup(nextclouduserid",{"_index":15310,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.changegroupfoldername(folderid",{"_index":15279,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroup(groupid",{"_index":15270,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroupfolder(foldername",{"_index":15280,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroup(groupid",{"_index":15267,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroupfolder(folderid",{"_index":15268,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupfolderidforgroupid(groupid",{"_index":15263,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupid(nextcloudstrategy.generategroupid(dto",{"_index":15261,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getgroupusers(groupid",{"_index":15286,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(pseudonymdo.pseudonym",{"_index":15295,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(team.id",{"_index":15269,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(teamid",{"_index":15266,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.oidcinternalname",{"_index":15312,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.removeuserfromgroup(nextclouduserid",{"_index":15308,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.renamegroup(groupid",{"_index":15284,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.send(req",{"_index":17863,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.client.setgrouppermissions(groupid",{"_index":15264,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client_id",{"_index":1531,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{}}}],["this.client_name",{"_index":5535,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.client_secret",{"_index":1533,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.clientid",{"_index":12338,"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/SystemEntity.html":{}}}],["this.clientsecret",{"_index":12339,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.clienturl",{"_index":16132,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.clone(newpropsfactory",{"_index":2518,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.closedat",{"_index":21138,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.closedat.toisostring",{"_index":21020,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["this.closeuserloginmigrationuc.closemigration",{"_index":21113,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.code",{"_index":1539,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.color",{"_index":6549,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.columnboardcopyservice.copycolumnboard",{"_index":3061,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.columnboardid",{"_index":2746,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["this.columnboardservice.createwelcomecolumnboard(coursereference",{"_index":17741,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.findidsbyexternalreference(coursereference",{"_index":17739,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.getboardobjecttitlesbyid(columnboardids",{"_index":4900,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.columnboardtargetservice.findorcreatetargets(columnboardids",{"_index":17743,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columns",{"_index":3703,"title":{},"body":{"classes/BoardResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.comment",{"_index":12282,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.commontoolservice.determinetoolconfigurationstatus",{"_index":20599,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{}}}],["this.commontoolvalidationservice.checkcustomparameterentries(loadedexternaltool",{"_index":6110,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.checkforduplicateparameters(schoolexternaltool",{"_index":18253,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.isvaluevalidfortype(param.type",{"_index":8912,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.compareparameters(oldtool.parameters",{"_index":9498,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.completed",{"_index":19065,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.config",{"_index":2043,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{}}}],["this.config.bucket",{"_index":17862,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.config.bucket}/${path.sourcepath",{"_index":17900,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.configservice.get('available_languages').includes(language",{"_index":21627,"title":{},"body":{"injectables/UserService.html":{}}}],["this.configservice.get('available_languages').includes(settedlanguage",{"_index":21638,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.configservice.get('feature_identity_management_login_enabled",{"_index":14392,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.configservice.get('feature_identity_management_store_enabled",{"_index":809,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.configservice.get('feature_imscc_course_export_enabled",{"_index":6633,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.configservice.get('login_block_time",{"_index":1766,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.configservice.get('sc_domain",{"_index":13415,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.configservice.get(placeholder",{"_index":11822,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.connect(system",{"_index":13773,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.consentflowuc.getconsentrequest(params.challenge",{"_index":15932,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.consentflowuc.patchconsentrequest",{"_index":15935,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.console.info('connected",{"_index":11619,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`cleaned",{"_index":11628,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`configured",{"_index":11640,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`migrated",{"_index":11652,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`seeded",{"_index":11634,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.consolewriter.info('error",{"_index":3497,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info('schulcloud",{"_index":18486,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`error",{"_index":3561,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.consolewriter.info(`input",{"_index":18487,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`success",{"_index":3501,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info(report",{"_index":7820,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.constructor",{"_index":1678,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BaseFactory.html":{},"classes/TestApiClient.html":{}}}],["this.content",{"_index":3448,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"interfaces/INewsProperties.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.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.contextexternaltoolid",{"_index":5682,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.duedate",{"_index":5678,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.inputformat",{"_index":5675,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.content.url",{"_index":5659,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.contentelementfactory.build(contentelementtype.rich_text",{"_index":4870,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.contentelementfactory.build(type",{"_index":5614,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.contentelementservice.create(card",{"_index":4130,"title":{},"body":{"injectables/CardService.html":{}}}],["this.contents",{"_index":11890,"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":8734,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["this.context",{"_index":13905,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/ShareTokenDO.html":{}}}],["this.context.action",{"_index":10702,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.context.requiredpermissions.join",{"_index":10703,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.contextexternaltool",{"_index":8663,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["this.contextexternaltool.id",{"_index":14882,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.contextexternaltoolauthorizableservice",{"_index":12148,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.contextexternaltoolid",{"_index":8652,"title":{},"body":{"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltool",{"_index":6046,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltools",{"_index":6045,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":9343,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find",{"_index":6044,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find(query",{"_index":6040,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(contextexternaltoolid",{"_index":6041,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(id",{"_index":5728,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["this.contextexternaltoolrepo.save(contextexternaltool",{"_index":6043,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrule",{"_index":17810,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.contextexternaltoolservice.deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":18242,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(tool",{"_index":6090,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findallbycontext",{"_index":6091,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.contextexternaltoolservice.findbyid",{"_index":6086,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contextexternaltoolid",{"_index":6089,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findbyid(contexttoolid",{"_index":6094,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findcontextexternaltools",{"_index":6112,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool",{"_index":6085,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltooluc.createcontextexternaltool",{"_index":20412,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.deletecontextexternaltool(currentuser.userid",{"_index":20417,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltool",{"_index":20424,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltoolsforcontext",{"_index":20419,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.updatecontextexternaltool",{"_index":20427,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltoolvalidationservice.validate(contextexternaltool",{"_index":6083,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextid",{"_index":5787,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.contextref",{"_index":5715,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.contexttoolid",{"_index":20638,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.contexttype",{"_index":5789,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this.converterutil.xml2object",{"_index":2310,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.converterutil.xml2object>(resp.data",{"_index":2323,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.cookies",{"_index":11478,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.copy(copypaths",{"_index":17885,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.copyboardelements(boardelements",{"_index":3018,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycolumnboard(element.target",{"_index":3046,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycourse(userid",{"_index":18831,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copycourseentity",{"_index":6671,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyfilesservice.copyfilesofentity",{"_index":19610,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(boardstatus",{"_index":3077,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(newname",{"_index":6669,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(originallesson.name",{"_index":14176,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.copyhelperservice.derivecopyname(originaltaskname",{"_index":19671,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elements",{"_index":3022,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(filestatuses",{"_index":6337,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.copyingsince",{"_index":6555,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.copylesson(element.target",{"_index":3043,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copylesson(userid",{"_index":18834,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copymap.get(child.id",{"_index":17196,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copymap.set(original.id",{"_index":17159,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.copytask(element.target",{"_index":3039,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copytask(userid",{"_index":18835,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copytaskentity(params",{"_index":19609,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.countyid",{"_index":6459,"title":{},"body":{"classes/County.html":{},"entities/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.course",{"_index":2663,"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":12544,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.id",{"_index":12541,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isfinished",{"_index":12498,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isusersubstitutionteacher(user",{"_index":12524,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.name",{"_index":12540,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.school.id",{"_index":11912,"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":6708,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.coursecopyuc.copycourse(currentuser.userid",{"_index":17716,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.courseexportservice.exportcourse(courseid",{"_index":6722,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.courseexportuc.exportcourse(urlparams.courseid",{"_index":6634,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.coursegroup",{"_index":11888,"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":12296,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.coursegroup.school.id",{"_index":11913,"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":14264,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegrouprepo",{"_index":12132,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.coursegrouprule",{"_index":17801,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.coursegrouprule.haspermission(user",{"_index":14267,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegroups.getitems",{"_index":6587,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.coursegroups.isinitialized(true",{"_index":6584,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.courseid",{"_index":19696,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursename",{"_index":19695,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursepermission(user",{"_index":14265,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.courserepo",{"_index":12130,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.courserepo.createcourse(coursecopy",{"_index":6681,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserepo.findallbyuserid",{"_index":7776,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.courserepo.findallbyuserid(user.id",{"_index":20004,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findallbyuserid(userid",{"_index":6667,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{}}}],["this.courserepo.findallforteacherorsubstituteteacher(user.id",{"_index":20003,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findbyid(courseid",{"_index":6661,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.courserepo.findbyid(originalboard.context.id",{"_index":4750,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.courserepo.findbyid(parentparams.courseid",{"_index":14169,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.courserepo.findbyid(rootboarddo.context.id",{"_index":3140,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.courserepo.findone(roomid",{"_index":17758,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.courserepo.save(coursecopy",{"_index":6683,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserule",{"_index":17800,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.courserule.haspermission(user",{"_index":6792,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.findallbyuserid(pseudonym.userid",{"_index":9722,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.courseservice.findbyid(contextexternaltool.contextref.id",{"_index":317,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.courseservice.findbyid(courseid",{"_index":5034,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/FeathersRosterService.html":{},"injectables/ShareTokenUC.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.courseservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18781,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.courseservice.getcourse(params.courseid",{"_index":23681,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.save(course",{"_index":23685,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.savecourse(course",{"_index":23689,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseuc.findallbyuser(currentuser.userid",{"_index":6627,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.create",{"_index":10000,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.create(currentuserid",{"_index":21801,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.create(path",{"_index":17881,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createboardelementfor(target",{"_index":2703,"title":{},"body":{"entities/Board.html":{}}}],["this.createboardforcourse(courseid",{"_index":3679,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.createbucket",{"_index":17880,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createcards(this.random(1",{"_index":3540,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createclient(provider",{"_index":7987,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.createcolumns(3",{"_index":3536,"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/FederalStateEntity.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":3546,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createemptyelements(card",{"_index":4124,"title":{},"body":{"injectables/CardService.html":{}}}],["this.createentity(domainobject",{"_index":2404,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createerrorloggable(error",{"_index":10822,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponse(error",{"_index":10832,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforbusinesserror(error",{"_index":10840,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforfeatherserror(error",{"_index":10838,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponsefornesthttpexception(error",{"_index":10842,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforunknownerror",{"_index":10843,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createfile(contentrange",{"_index":20244,"title":{},"body":{"classes/TestHelper.html":{}}}],["this.createfileurlreplacements(filedtos",{"_index":6320,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.creategridelement(elementwithposition",{"_index":7698,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.createidentityprovider(configureaction.config",{"_index":13432,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(idpalias",{"_index":13468,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(oidcconfig.idphint",{"_index":13460,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createiframesubject(user",{"_index":12643,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.createlogmessageforvalidationerrors(this.error",{"_index":8298,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.createnewentityfromdo(domainobj",{"_index":2434,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewentityfromdo(domainobject",{"_index":2411,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewmigration(schooldo",{"_index":21271,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.createorupdateboardnode(boardnode",{"_index":17276,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.createorupdateidmaccount(account",{"_index":13664,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.createqueryordermap(options?.order",{"_index":20905,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.createrichtextelement",{"_index":4819,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.createstatus",{"_index":19988,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.createtaskstatus(task",{"_index":8120,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.createusermigrationdto",{"_index":21462,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.createusersearchindex",{"_index":11785,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.creator",{"_index":12466,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.creatorid",{"_index":6204,"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":15912,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.deleteoauth2client(currentuser",{"_index":15917,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.getoauth2client(currentuser",{"_index":15902,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.listoauth2clients",{"_index":15905,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.updateoauth2client(currentuser",{"_index":15914,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.currentredirect",{"_index":11474,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.customs",{"_index":7153,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.dashboard",{"_index":7567,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.dashboardrepo.getdashboardbyid(dashboardid",{"_index":7779,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.getusersdashboard(userid",{"_index":7775,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.persistandflush(dashboard",{"_index":7778,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboarduc.getusersdashboard(currentuser.userid",{"_index":7384,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.moveelementondashboard",{"_index":7387,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.renamegroupondashboard",{"_index":7392,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboardurl",{"_index":21448,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.data",{"_index":1026,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AxiosResponseImp.html":{},"classes/CardListResponse.html":{},"classes/ClassInfoSearchListResponse.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":11727,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.collectionexists(collectionname",{"_index":11725,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.createcollection(collectionname",{"_index":11728,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.finddocumentsofcollection(collectionname",{"_index":11771,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getcollectionnames",{"_index":11697,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getdatabasecollection('users",{"_index":11789,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.importcollection",{"_index":11761,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.syncindexes",{"_index":11786,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem",{"_index":7853,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem([collectionname",{"_index":7855,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem(filter",{"_index":7824,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfactories(filter",{"_index":7816,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem",{"_index":7850,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem([collectionname",{"_index":7852,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem(filter",{"_index":7817,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.syncindexes",{"_index":7825,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/Options.html":{}}}],["this.db.collection(collectionname",{"_index":7891,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.createcollection(collectionname",{"_index":7908,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.dropcollection(collectionname",{"_index":7909,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.listcollections(undefined",{"_index":7901,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.default",{"_index":7218,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["this.default_errorcode",{"_index":15356,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.default_message",{"_index":15354,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.defaultencryptionservice.decrypt(oidcconfig.clientsecret",{"_index":16284,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["this.defaultencryptionservice.encrypt(system.oauthconfig.clientsecret",{"_index":11830,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultencryptionservice.encrypt(system.oidcconfig.clientsecret",{"_index":11833,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultoauthclientbody",{"_index":15803,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.defaultscopes",{"_index":12415,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.defaultvalue",{"_index":7359,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["this.delete",{"_index":10002,"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":17895,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(filteredpathobjects",{"_index":17911,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(paths",{"_index":17888,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deleted",{"_index":9939,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.deletedat",{"_index":9938,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{}}}],["this.deletedfoldername}/${path",{"_index":17884,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deletedsince",{"_index":6210,"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":2443,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.deleteexternaltoolpseudonymsbyuserid(userid",{"_index":17021,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletefile(file",{"_index":7974,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefileinstorage(file",{"_index":7999,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefilesuc.deletemarkedfiles(thresholddate",{"_index":7932,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.deleteidentityprovider(configureaction.alias",{"_index":13436,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.deletenode(card",{"_index":17220,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(column",{"_index":17218,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(columnboard",{"_index":17216,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(externaltoolelement",{"_index":17235,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(fileelement",{"_index":17223,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(linkelement",{"_index":17225,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(richtextelement",{"_index":17227,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submission",{"_index":17231,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submissioncontainerelement",{"_index":17229,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletepseudonymsbyuserid(userid",{"_index":17020,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletesubmissions(task",{"_index":19926,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.derivecopyname(composedname",{"_index":6380,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.derivecopystatus(filecopystatus",{"_index":19612,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.derivecopystatus(filedtos",{"_index":6322,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.derivecoursestatus(originalcourse",{"_index":6676,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.description",{"_index":6542,"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":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"entities/Material.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UsersList.html":{}}}],["this.descriptioninputformat",{"_index":12457,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.details",{"_index":3850,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.detectcontenttypeorthrow(buffer",{"_index":8810,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.detectcontenttypeorthrow(logobinarydata",{"_index":8819,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.determineinput(systemid",{"_index":16876,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.determinelaunchrequestmethod(toollaunchdata.properties",{"_index":229,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.determinenewroomsin(rooms",{"_index":7513,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.determinestatus(tool",{"_index":18215,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.displayat",{"_index":6867,"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":6827,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.displayname",{"_index":5717,"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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.doescourseexist(courseid",{"_index":3533,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.domigration(externalid",{"_index":18355,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.domigration(userdo",{"_index":21456,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.downloadoriginfile(originfilepath",{"_index":16670,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.dropcollectionifexists(collectionname",{"_index":11737,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.duedate",{"_index":12462,"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":4078,"title":{},"body":{"classes/CardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.elementservice.create(card",{"_index":4177,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.delete(element",{"_index":4180,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.findbyid(contentelementid",{"_index":8242,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(elementid",{"_index":4179,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(submissioncontainerid",{"_index":19122,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.move(element",{"_index":4178,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.update(element",{"_index":8241,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementuc.createsubmissionitem",{"_index":8226,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.updateelementcontent",{"_index":8220,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.em",{"_index":8969,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.assign(existing",{"_index":8974,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.assign(existingentity",{"_index":11085,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(boardnode",{"_index":3354,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["this.em.find(classentity",{"_index":4464,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.find(columnboardnode",{"_index":3365,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.em.find(columnboardtarget",{"_index":4908,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.find(externaltoolpseudonymentity",{"_index":8968,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.find(groupentity",{"_index":11079,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(pseudonymentity",{"_index":17055,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findandcount(externaltoolpseudonymentity",{"_index":8990,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(dashboardgridelementmodel",{"_index":7700,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.findone(dashboardmodelentity",{"_index":7721,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findone(externaltoolpseudonymentity",{"_index":8967,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(groupentity",{"_index":11076,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.findone(pseudonymentity",{"_index":17054,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(boardnode",{"_index":3633,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["this.em.findoneorfail(course",{"_index":3560,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.findoneorfail(dashboardmodelentity",{"_index":7751,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findoneorfail(externaltoolpseudonymentity",{"_index":8964,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findoneorfail(pseudonymentity",{"_index":17053,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(user",{"_index":7723,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.flush",{"_index":3381,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.getconnection('write').getdb",{"_index":7890,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.em.getreference(classentity",{"_index":4472,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.getreference(contextexternaltoolentity",{"_index":17301,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.getunitofwork().getbyid(boardnode.name",{"_index":3632,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.nativedelete(externaltoolpseudonymentity",{"_index":8977,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.nativedelete(pseudonymentity",{"_index":17058,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(boardnode",{"_index":17307,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.persist(entity",{"_index":8975,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(modelentity",{"_index":7747,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persist(newentity",{"_index":11086,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.persist(target",{"_index":4907,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.persistandflush(board",{"_index":3535,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(cards",{"_index":3543,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(columns",{"_index":3537,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(data",{"_index":11738,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.em.persistandflush(elements",{"_index":3548,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(modelentity",{"_index":7749,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persistandflush(referencedentities",{"_index":4474,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.remove(el",{"_index":7720,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.remove(this.em.getreference(boardnode",{"_index":17237,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.em.removeandflush(entity",{"_index":11090,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.email",{"_index":9542,"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":20876,"title":{},"body":{"classes/UserDO.html":{}}}],["this.enablemigrationstart",{"_index":14868,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.enableoauthmigrationfeature(schooldo",{"_index":21272,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.encoding",{"_index":10331,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.encryptionservice.encrypt(externaltool.config.secret",{"_index":9317,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.encryptpassword(accountdto.password",{"_index":1091,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptpassword(password",{"_index":1097,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptsecrets(collectionname",{"_index":11759,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(data",{"_index":11736,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(jsondocuments",{"_index":11825,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.enddate",{"_index":12225,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{}}}],["this.endpointurl",{"_index":12265,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.enrichdatafromexternaltool(createdschoolexternaltool",{"_index":18219,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichdatafromexternaltool(tool",{"_index":18213,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichwithdatafromexternaltools(schoolexternaltools",{"_index":18211,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.ensureboardnodetype(this.getchildren(boardnode",{"_index":3232,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurecontextpermissions(userid",{"_index":8597,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.ensureleafnode(boardnode",{"_index":3250,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurepermission(userid",{"_index":9406,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.ensureschoolpermissions(userid",{"_index":8588,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.ensuretoolpermissions(userid",{"_index":20708,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.entityclass",{"_index":2526,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityclass(props",{"_index":2509,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityfactory(entityprops",{"_index":2424,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.entityname",{"_index":945,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ForbiddenLoggableException.html":{}}}],["this.error",{"_index":8297,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.errorcode",{"_index":15355,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.errorhandler(error",{"_index":16160,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.errortype",{"_index":1207,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.everyattendeejoinsmuted",{"_index":21831,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.everyattendejoinsmuted",{"_index":21661,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["this.everybodyjoinsasmoderator",{"_index":21663,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.exchange",{"_index":17783,"title":{},"body":{"classes/RpcMessageProducer.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":15708,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalid",{"_index":6871,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalSourceResponse.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.externalidtoken",{"_index":15719,"title":{},"body":{"classes/OauthLoginResponse.html":{}}}],["this.externalorganizationid",{"_index":8440,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["this.externalschool",{"_index":15706,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalsource",{"_index":11046,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.externalsourcename",{"_index":4334,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableexternaltools",{"_index":8600,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableschoolexternaltools",{"_index":8598,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailabletools",{"_index":8590,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope",{"_index":8603,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope(externaltool",{"_index":8592,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforcontext",{"_index":20350,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforschool",{"_index":20347,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforcontextexternaltool",{"_index":20357,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforschoolexternaltool",{"_index":20354,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltooldomapper.mapcreaterequest(externaltoolparams",{"_index":20461,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapexternaltoolfilterquerytoexternaltoolsearchquery(filterquery",{"_index":20467,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapsortingquerytodomain(sortingquery",{"_index":20466,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapupdaterequest(externaltoolparams",{"_index":20477,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolid",{"_index":5747,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.externaltoollogoservice.buildlogourl",{"_index":8594,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["this.externaltoollogoservice.fetchlogo(externaltool",{"_index":9408,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoollogoservice.getexternaltoolbinarylogo",{"_index":20484,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoollogoservice.validatelogosize(externaltool",{"_index":9450,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolparametervalidationservice.validatecommon(externaltool",{"_index":9447,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolpseudonymrepo",{"_index":17027,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17026,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findbyuserid(userid",{"_index":17024,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonym(query",{"_index":17030,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findpseudonymbypseudonym(pseudonym",{"_index":17029,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolrepo.deletebyid(toolid",{"_index":9345,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.find(query",{"_index":9326,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyid(id",{"_index":9335,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyname(name",{"_index":9338,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyoauth2configclientid(clientid",{"_index":9339,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(externaltool",{"_index":9322,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(toupdate",{"_index":9325,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolservice.createexternaltool(externaltool",{"_index":9410,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.deleteexternaltool(toolid",{"_index":9418,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.findbyid(loadedschoolexternaltool.toolid",{"_index":6109,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.externaltoolservice.findbyid(schoolexternaltool.toolid",{"_index":8608,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.externaltoolservice.findbyid(tool.toolid",{"_index":18214,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.externaltoolservice.findbyid(toolid",{"_index":8814,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyname",{"_index":15311,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.externaltoolservice.findexternaltoolbyname(externaltool.name",{"_index":8901,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid",{"_index":9727,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid(externaltool.config.clientid",{"_index":9465,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltools",{"_index":8584,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolservice.findexternaltools(query",{"_index":9417,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.updateexternaltool(toupdate",{"_index":9416,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltooluc.createexternaltool(currentuser.userid",{"_index":20462,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.deleteexternaltool(currentuser.userid",{"_index":20481,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.findexternaltool(currentuser.userid",{"_index":20468,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.getexternaltool",{"_index":20473,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.updateexternaltool",{"_index":20478,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolversionservice.increaseversionofnewtoolifnecessary(loadedtool",{"_index":9324,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaluser",{"_index":15704,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externaluserid",{"_index":8446,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ProvisioningDto.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.extractaccount(account",{"_index":13606,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakuser",{"_index":13591,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakusers[0",{"_index":13598,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(user",{"_index":13609,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcaccountid",{"_index":13626,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcsystemid",{"_index":13622,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcuserid",{"_index":13624,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractparamsfromrequest(request",{"_index":13811,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.extractreferences(elements",{"_index":3019,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.extractvalidationerrordetails(childerror",{"_index":1457,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.extractvalidationerrordetails(validationerror",{"_index":1447,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.factory.createdto",{"_index":17761,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.feathersauthprovider.getpermittedschools(userid",{"_index":9611,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getpermittedtargets(userid",{"_index":9612,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getuserschoolpermissions(userid",{"_index":9597,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getusertargetpermissions(userid",{"_index":9598,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersserviceprovider.getservice('/etherpad/pads",{"_index":8413,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["this.feathersserviceprovider.getservice('/nexboard/boards",{"_index":15224,"title":{},"body":{"injectables/NexboardService.html":{}}}],["this.feathersserviceprovider.getservice('users",{"_index":9580,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`${targetmodel}/:scopeid/userpermissions",{"_index":9567,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`/users/:scopeid/${targetmodel",{"_index":9572,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`path",{"_index":23222,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.features",{"_index":6557,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UsersList.html":{}}}],["this.federalstate",{"_index":12219,"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/SystemEntity.html":{}}}],["this.federalstaterepo.findbyname(name",{"_index":9788,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["this.federalstateservice.findfederalstatebyname",{"_index":16333,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.fetchbase64logo(externaltool.logourl",{"_index":8803,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.filecopyservice.copyfilesofparent",{"_index":17166,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.filecopyservicefactory.build",{"_index":4752,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.filesrepo.delete(file",{"_index":8000,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesrepo.findforcleanup(thresholddate",{"_index":7972,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent",{"_index":18423,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent(copyfilesofparentparams",{"_index":6318,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(fileelement.id",{"_index":17222,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(lesson.id",{"_index":14289,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(submission.id",{"_index":19215,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(task.id",{"_index":19925,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.filesstorageservice.copyfilesofparent(userid",{"_index":10522,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.deletefilesofparent(filerecords",{"_index":10531,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload",{"_index":10529,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload.parentid",{"_index":10525,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageuc.downloadbysecuritytoken(token",{"_index":10264,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filesstorageuc.updatesecuritystatus(token",{"_index":10272,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filestoragemqproducer.copyfilesofparent(param",{"_index":10442,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.deletefilesofparent(parentid",{"_index":10447,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.listfilesofparent(param",{"_index":10445,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filesystemadapter.createdir(targetfolder",{"_index":11767,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.eol",{"_index":11782,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(__dirname",{"_index":11683,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(basedir",{"_index":11705,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(targetfolder",{"_index":11700,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(this.basedir",{"_index":11687,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readdir(basedir",{"_index":11703,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readfile(filepath",{"_index":11751,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.writefile(filepath",{"_index":11781,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filetype",{"_index":17108,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["this.filterallowed(userid",{"_index":4174,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.filterbypermission(elements",{"_index":8102,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.filtercoursesbytoolavailability(courses",{"_index":9690,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.filtersubmissionsbypermission(submissions",{"_index":19240,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.filtertoolswithpermissions(userid",{"_index":6093,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.findallforstudent(user",{"_index":19983,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findallforteacher(user",{"_index":19984,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findalltasks(currentuser",{"_index":19574,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.findandcount(scope",{"_index":10187,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findbyexternalid(externalid",{"_index":20919,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.findbyid(accountid",{"_index":931,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findbyid(boardnode.parentid",{"_index":3374,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(id",{"_index":3350,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(userid",{"_index":21609,"title":{},"body":{"injectables/UserService.html":{}}}],["this.findbynames([rolename.administrator",{"_index":17574,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.findbyuserid(userid",{"_index":933,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findclassesforschool(schoolid",{"_index":11238,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findcombinedclasslistforschool(schoolid",{"_index":11228,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findexistinggridelement(elementwithposition",{"_index":7694,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.findexistingtargets(columnboardids",{"_index":4899,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.findexternaltoolpseudonymsbyuserid(userid",{"_index":17012,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findgroupsoftypeclassforschool(schoolid",{"_index":11239,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findimportusersandcount(scope.query",{"_index":12966,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this.findlegacyltitool",{"_index":15314,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findmigrationbyschool(schoolid",{"_index":21294,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.findnewsandcount(scope.query",{"_index":15094,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.findnextcloudtool",{"_index":15288,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findoneorfail(scope",{"_index":10184,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findpseudonymbypseudonym(pseudonym",{"_index":9683,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.findpseudonymsbyuserid(userid",{"_index":17011,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findsystemnamesforgroups(groupsoftypeclass",{"_index":11251,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.findtasksandcount(scope.query",{"_index":19804,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.findteambyid(teamid",{"_index":4684,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.finduserafterprovisioningorthrow(externaluserid",{"_index":15443,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.findusersforgroup(group",{"_index":11255,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.finishcoursecopying(coursecopy",{"_index":6674,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.finished",{"_index":12480,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.add(user",{"_index":12546,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.getidentifiers('_id",{"_index":12483,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.remove(user",{"_index":12548,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.set(props.finished",{"_index":12470,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finishedat",{"_index":21140,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.finishedat.toisostring",{"_index":21165,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["this.firstname",{"_index":9538,"title":{},"body":{"classes/ExternalUserDto.html":{},"classes/GroupUserResponse.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":20872,"title":{},"body":{"classes/UserDO.html":{}}}],["this.flagged",{"_index":12029,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.forcepasswordchange",{"_index":12591,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.formattedjwt",{"_index":1654,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.friendlyurl",{"_index":7164,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.from",{"_index":8436,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.frontchannel_logout_uri",{"_index":7170,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.frontchannellogouturi",{"_index":15525,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.fullname",{"_index":2179,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.fullpath",{"_index":17357,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.fwulearningcontentsuc.get(path",{"_index":10733,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["this.generatearray(amount",{"_index":3550,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.generatebrokersystems([system",{"_index":19471,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatebrokersystems(systems",{"_index":19478,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatechecksum(callname",{"_index":2336,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.generatepreview(params",{"_index":16724,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.get('/api/v1/me",{"_index":1212,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.get('/events",{"_index":3936,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.get(`${oauthconfig.authendpoint}?${query",{"_index":11517,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(location",{"_index":11541,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(path",{"_index":1264,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getadditionalerrorinfo(idtoken.email",{"_index":13111,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.getadminidandtoken",{"_index":1259,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getandpseudonyms(students",{"_index":9708,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(substitutionteachers",{"_index":9710,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getandpseudonyms(teachers",{"_index":9709,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getasadmin(`/api/v1/groups.info?roomname=${groupname",{"_index":1246,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.members?roomname=${groupname",{"_index":1244,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.moderators?roomname=${groupname",{"_index":1242,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/users.list?${querystring",{"_index":1222,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getbbbrequestconfig(this.presentationurl",{"_index":2305,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getboardauthorizable(boarddo",{"_index":3131,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.getbydraftforcreatorquery(creatorid",{"_index":19910,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(false",{"_index":19911,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(isdraft",{"_index":19909,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(true",{"_index":19912,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getchildren(boardnode",{"_index":3276,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getchildren(boardnode).map((node",{"_index":3269,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getcollectionnames",{"_index":7906,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getcopiesforchildrenof(original",{"_index":17155,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcopyname(originaltask.name",{"_index":19661,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getcopystatusesforchildrenof(original",{"_index":17158,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.getcoursegroupstudentids",{"_index":12316,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.getcoursesfromuserspseudonym(loadedpseudonym",{"_index":9689,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getdatabasecollection(collectionname",{"_index":7893,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getdefaultmaxduedate",{"_index":19993,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getdestinationcourse(parentparams.courseid",{"_index":19655,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getdestinationlesson(parentparams.lessonid",{"_index":19660,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getelement(position",{"_index":7536,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getelementbytargetid(id",{"_index":2666,"title":{},"body":{"entities/Board.html":{}}}],["this.getelements().map((el",{"_index":2676,"title":{},"body":{"entities/Board.html":{}}}],["this.getentitypermissions(userid",{"_index":9605,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.getexternalsubclientmapperconfiguration",{"_index":13446,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getfilteredgroupusers(externalgroup",{"_index":16366,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.getfinisheduserids",{"_index":12493,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getfirstopenindex",{"_index":7531,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getgradedsubmissions",{"_index":12527,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getgroupdata(groupname",{"_index":1231,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getid",{"_index":7485,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getidpmapperconfiguration(idpalias",{"_index":13467,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getinternalid(accountdto.id",{"_index":1081,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(accountid",{"_index":1096,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(id",{"_index":1072,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getjwtforuser(user.id",{"_index":16224,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.getjwtfromresponse(response",{"_index":1677,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getloginurl(sourcesystem",{"_index":21443,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getloginurl(targetsystem",{"_index":21440,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getmaxsubmissions",{"_index":12531,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getmeetinginfo(new",{"_index":2319,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getnewspermissions(userid",{"_index":15192,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getoauthconfig",{"_index":13541,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.getorconstructdashboardmodelentity(entity",{"_index":7713,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.getorcreatecourseboard(courseid",{"_index":3676,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.getparametervalue",{"_index":299,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.getparent",{"_index":11914,"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":1658,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getpermittedcourses(user",{"_index":19969,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedlessons(user",{"_index":19970,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedtargets(userid",{"_index":15187,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getpostloginredirecturl",{"_index":15444,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getpreviewfile(params",{"_index":16725,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpropertyvalue(e",{"_index":8307,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.getprovisioningstrategy(oauthdata.system.provisioningstrategy",{"_index":16881,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getprovisioningstrategy(system.provisioningstrategy",{"_index":16877,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getredirecturi(migration",{"_index":15467,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getreferencesfromposition(from",{"_index":7507,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getrepository(tool",{"_index":17015,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getrepository(tool).findbyuseridandtoolidorfail(user.id",{"_index":17009,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getseedfolder",{"_index":11690,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.getshorttitle",{"_index":6597,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.getsubmissionitems",{"_index":12503,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmittedsubmissions",{"_index":12526,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmitterids",{"_index":12321,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.gettargetfilters(userid",{"_index":15204,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.gettargetfolder(toseedfolder",{"_index":11766,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.gettasksitems",{"_index":11900,"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":12315,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.geturl('create",{"_index":2300,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('end",{"_index":2321,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('getmeetinginfo",{"_index":2325,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('join",{"_index":2320,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl(filesstorageinternalactions.downloadbysecuritytoken",{"_index":1375,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.geturl(filesstorageinternalactions.updatesecuritystatus",{"_index":1377,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.getuser(userid",{"_index":9562,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.getuserrole(user",{"_index":9687,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.getvideoconferenceoptions(scope",{"_index":21899,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.grade",{"_index":12288,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.gradecomment",{"_index":12290,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.graded",{"_index":3790,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.gradelevel",{"_index":4292,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.grant_type",{"_index":1537,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.granttype",{"_index":12345,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.grid",{"_index":7497,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(key",{"_index":7523,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(this.gridindexfromposition(position",{"_index":7544,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(i",{"_index":7535,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(key",{"_index":7503,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(this.gridindexfromposition(position",{"_index":7504,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].foreach((key",{"_index":7516,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].map((key",{"_index":7501,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(index",{"_index":7534,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(element.pos",{"_index":7499,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(position",{"_index":7547,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.values",{"_index":7529,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.gridelements",{"_index":7602,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.gridelements.set(props.gridelements",{"_index":7577,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.group.externalid",{"_index":18264,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.group.externalorganizationid",{"_index":18265,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.groupelements",{"_index":7601,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.groupid",{"_index":7600,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.grouprepo.delete(group",{"_index":11187,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyexternalsource(externalid",{"_index":11182,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyid(id",{"_index":11180,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyuser(user",{"_index":11183,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findclassesforschool(schoolid",{"_index":11184,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.save(group",{"_index":11186,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprule",{"_index":17812,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.groups.set(props.groups",{"_index":6559,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.groupservice.delete(group",{"_index":16400,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyexternalsource",{"_index":16361,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findbyid(groupid",{"_index":11273,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.groupservice.findbyuser(user",{"_index":16388,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.findclassesforschool(schoolid",{"_index":11249,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.groupservice.save(group",{"_index":16375,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupuc.findallclassesforschool",{"_index":10968,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuc.getgroup(currentuser.userid",{"_index":10974,"title":{},"body":{"controllers/GroupController.html":{}}}],["this.groupuser.externaluserid",{"_index":21009,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.groupuser.rolename",{"_index":21010,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.guest",{"_index":2184,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.guestpolicy",{"_index":2101,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.handlecolumnboardintegration(roomid",{"_index":17735,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.handleparameterstoinclude",{"_index":293,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.hasaccesstosubmission(user",{"_index":19191,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haschangedparameternames(oldparams",{"_index":9507,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterregex(newparams",{"_index":9508,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterscope(newparams",{"_index":9510,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparametertypes(newparams",{"_index":9509,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedrequiredparameters(oldparams",{"_index":9506,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschild(child",{"_index":2792,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.hascoursereadpermission(user",{"_index":17678,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hascoursewritepermission(user",{"_index":17679,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hasduplicateattributes(externaltool.parameters",{"_index":8881,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.hasnewrequiredparameter(oldparams",{"_index":9505,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.hasparent",{"_index":3611,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.hasparentpermission(user",{"_index":19873,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.hasparenttaskreadaccess(user",{"_index":19196,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasparenttaskwriteaccess(user",{"_index":19195,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haspath(req.route",{"_index":17358,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.haspermission(user",{"_index":2008,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissionbyreferences(userid",{"_index":1980,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.hasreadaccess(user",{"_index":19193,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasscanstatuswontcheck",{"_index":10106,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.hasschoolmigrated(externalid",{"_index":18363,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.haswriteaccess(user",{"_index":19192,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.headers",{"_index":2041,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.height",{"_index":4063,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{}}}],["this.hidden",{"_index":3471,"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.hosturl",{"_index":21431,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.host}${location",{"_index":11528,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.httpservice",{"_index":1266,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.httpservice.get(input.system.provisioningurl",{"_index":17989,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.httpservice.get(logourl",{"_index":8804,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.httpservice.get(url",{"_index":2322,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{}}}],["this.httpservice.get(url.tostring",{"_index":3940,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.httpservice.post(tokenendpoint",{"_index":15568,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.httpservice.post(url",{"_index":2306,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.httpservice.request",{"_index":13543,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.httpstatus",{"_index":8747,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["this.hydracookies",{"_index":6147,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.hydrassoservice.generateconfig(oauthclientid",{"_index":11441,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.initauth(hydraoauthconfig",{"_index":11451,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.processredirect(dto",{"_index":11460,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrauc.getoauthtoken(oauthclientid",{"_index":16182,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauc.requestauthcode(currentuser.userid",{"_index":16188,"title":{},"body":{"controllers/OauthSSOController.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/ClassInfoDto.html":{},"classes/ClassInfoResponse.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":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.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":{},"classes/GroupResponse.html":{},"classes/GroupUserResponse.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"classes/LegacySchoolDo.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ResolvedGroupDto.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":{},"classes/UsersList.html":{}}}],["this.identifiername",{"_index":15333,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.idmoauthservice.getoauthconfig",{"_index":19493,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.isoauthconfigavailable",{"_index":19490,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.resourceownerpasswordgrant(username",{"_index":14393,"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":12341,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.idtoken",{"_index":15492,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.idtokenservice.createidtoken(userid",{"_index":15839,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.imagemagick(original.data",{"_index":16677,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.imageurl",{"_index":14340,"title":{},"body":{"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.html":{}}}],["this.importhash",{"_index":20870,"title":{},"body":{"classes/UserDO.html":{}}}],["this.importuserid",{"_index":12837,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.importuserschoolid",{"_index":18275,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.info.appname",{"_index":1470,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.basepath",{"_index":1473,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.mountsdescription",{"_index":1475,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.port",{"_index":1471,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.initializes3clientmap",{"_index":7966,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.injectenvvars(filecontent",{"_index":11752,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.injectenvvars(s",{"_index":11731,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.inmaintenancesince",{"_index":12211,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.inner",{"_index":5298,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.caninline",{"_index":5303,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.content",{"_index":5304,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.transform",{"_index":5305,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inputformat",{"_index":17481,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.inusermigration",{"_index":12214,"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":4289,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.isallowedaschild(child",{"_index":2787,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.isarchived",{"_index":18879,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.isauthenticationresponse(response.body",{"_index":1701,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isauthorizedstudent(userid",{"_index":19129,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.isautoparameterglobal(param",{"_index":8888,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isblocked",{"_index":10099,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isclientidunique(externaltool",{"_index":9462,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.iscolumnboardfeatureflagactive",{"_index":8108,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.iscustomparameternameempty(param",{"_index":8883,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidregex(param",{"_index":8898,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidtype(param",{"_index":8897,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdirectory",{"_index":9944,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.isdraft",{"_index":3791,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isfinished",{"_index":3793,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.isfinishedforuser(user",{"_index":12532,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isglobalparametervalid(param",{"_index":8885,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isgraceperiodexpired(userloginmigration",{"_index":4499,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.isgraded",{"_index":12325,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.isgradedforuser(user",{"_index":12536,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isgroup",{"_index":7477,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.ishidden",{"_index":7172,"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":5357,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islatest(schoolexternaltool",{"_index":5356,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islocal",{"_index":7157,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.isnameunique(externaltool",{"_index":8878,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15437,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.isoptional",{"_index":7228,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.ispending",{"_index":10104,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispreviewpossible",{"_index":10101,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispropertyprivacyprotected(e.target",{"_index":8315,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.isregexcommentmandatoryandfilled(param",{"_index":8892,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isregexvalid(param",{"_index":8895,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isschoolnumberunique(school",{"_index":18434,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.isslash(inputpath",{"_index":1684,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isslash(path",{"_index":1687,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.issubmitted",{"_index":12308,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.issubmittedforuser(user",{"_index":12535,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.issubstitutionteacher",{"_index":3792,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.issuer",{"_index":12355,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.isteacher",{"_index":8123,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.istemplate",{"_index":7155,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.istoolstatuslatestorthrow(userid",{"_index":20596,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.isuniqueemail(email",{"_index":1147,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.isupgradable",{"_index":4340,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.isuserreferenced(user",{"_index":1864,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["this.isusersubmitter(user",{"_index":12307,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.isusersubstitutionteacherincourse(user",{"_index":12533,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isvaluevalidfortype(param.type",{"_index":5420,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.isverified",{"_index":10075,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.joinpath(os.tmpdir",{"_index":10336,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.jwksendpoint",{"_index":12357,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.jwt",{"_index":15364,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["this.jwtservice.sign(user",{"_index":1751,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.addtowhitelist(user.accountid",{"_index":1754,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.iswhitelisted(accountid",{"_index":13179,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["this.jwtvalidationadapter.removefromwhitelist(decodedjwt.accountid",{"_index":1759,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.kcadmin.callkcadminclient",{"_index":13385,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getadminuser",{"_index":13709,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getclientid",{"_index":13419,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.kcadmin.setpasswordpolicy",{"_index":13497,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadmin.testkcconnection",{"_index":13493,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadminclient",{"_index":13269,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.auth(this.kcsettings.credentials",{"_index":13270,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.callkcadminclient",{"_index":13574,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.del",{"_index":13610,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.find",{"_index":13607,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.findone",{"_index":13589,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.setconfig",{"_index":13265,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminservice.getclientid",{"_index":13531,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getclientsecret",{"_index":13533,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getwellknownurl",{"_index":13527,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.testkcconnection",{"_index":13540,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcsettings.baseurl}/realms/${this.kcsettings.realmname}/.well",{"_index":13271,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.clientid",{"_index":13274,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.credentials.username",{"_index":13273,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.realmname",{"_index":13284,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.key",{"_index":7137,"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":18936,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring(cryptojs.enc.utf8",{"_index":18939,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.keycloakconfigservice.configurebrokerflows",{"_index":13499,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureclient",{"_index":13498,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureidentityproviders",{"_index":13501,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configurerealm",{"_index":13500,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigurationuc.check",{"_index":11618,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.clean(options.pagesize",{"_index":11626,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.configure",{"_index":11639,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.migrate",{"_index":11647,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.seed",{"_index":11633,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakmanagementuc.check",{"_index":13647,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.configure",{"_index":13648,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.seed",{"_index":13649,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmigrationservice.migrate(skip",{"_index":13496,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.clean(pagesize",{"_index":13494,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.seed",{"_index":13495,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keyvalue",{"_index":1783,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.language",{"_index":12593,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastauthorizationtime",{"_index":13287,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.lastloginsystemchange",{"_index":12597,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastmodifytimestamp",{"_index":12370,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastname",{"_index":9540,"title":{},"body":{"classes/ExternalUserDto.html":{},"classes/GroupUserResponse.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":20874,"title":{},"body":{"classes/UserDO.html":{}}}],["this.lastsuccessfulfullsync",{"_index":12366,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsuccessfulpartialsync",{"_index":12368,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lastsyncattempt",{"_index":12364,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.lasttriedfailedlogin",{"_index":419,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.lastupdatedat",{"_index":20265,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["this.launch_presentation_locale",{"_index":14577,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["this.ldapactive",{"_index":19329,"title":{},"body":{"classes/SystemDto.html":{}}}],["this.ldapconfig",{"_index":12427,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.ldapdn",{"_index":4294,"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":12036,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.ldapencryptionservice.encrypt",{"_index":11836,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.ldapservice.checkldapcredentials(system",{"_index":13827,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.legacylogger.debug",{"_index":9331,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.legayschoolrule",{"_index":17806,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lesson",{"_index":12467,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.hidden",{"_index":12543,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.name",{"_index":12542,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lessoncopyservice.copylesson",{"_index":3055,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.lessoncopyservice.updatecopiedembeddedtasks(elementcopystatus",{"_index":3083,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.lessoncopyuc.copylesson",{"_index":17719,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.lessonhidden",{"_index":19697,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.lessonreadpermission(user",{"_index":14254,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.lessonrepo",{"_index":12138,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.lessonrepo.delete(lesson",{"_index":14290,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids([originallesson.course.id",{"_index":14173,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.lessonrepo.findallbycourseids([roomid",{"_index":17732,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.lessonrepo.findallbycourseids(courseids",{"_index":14291,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids(readcourseids",{"_index":20017,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findallbycourseids(writecourseids",{"_index":20016,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findbyid(lessonid",{"_index":14165,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.lessonrepo.findbyuserid(userid",{"_index":14292,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.save(updatedlessons",{"_index":14297,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrule",{"_index":17802,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lessonrule.haspermission(user",{"_index":19876,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.lessonservice.deletelesson(lesson",{"_index":14308,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbycourseids([courseid",{"_index":5044,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.lessonservice.findbyid(lessonid",{"_index":14303,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18783,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lessonservice.savelesson(lesson",{"_index":23693,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.lessonuc.delete(currentuser.userid",{"_index":14145,"title":{},"body":{"controllers/LessonController.html":{}}}],["this.lessonwritepermission(user",{"_index":14255,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.level",{"_index":3605,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.license",{"_index":12110,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.limit",{"_index":16512,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.loadaccount(username",{"_index":13818,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.loadaccounts",{"_index":13704,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.loadallcollectionsfromdatabase(folder",{"_index":11713,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadallcollectionsfromfilesystem(folder",{"_index":11712,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11748,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loader.loadauthorizableobject(entityname",{"_index":1983,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{}}}],["this.loadtoolhierarchy(schoolexternaltoolid",{"_index":20595,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.loadusers",{"_index":13703,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.localcookies",{"_index":6145,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.location",{"_index":7220,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["this.logger",{"_index":18578,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.logger.alert(message",{"_index":8348,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.crit(message",{"_index":8349,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.debug",{"_index":4171,"title":{},"body":{"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":13789,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug('usersearcindex",{"_index":11797,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.debug(`adding",{"_index":15305,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`contextexternaltool",{"_index":20414,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.logger.debug(`created",{"_index":2414,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`externaltool",{"_index":20464,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.logger.debug(`generating",{"_index":16223,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`oauth",{"_index":16221,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`removing",{"_index":15300,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`schoolexternaltool",{"_index":20743,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.logger.debug(`updated",{"_index":2420,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(err",{"_index":13787,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug(message",{"_index":14424,"title":{},"body":{"injectables/Logger.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.logger.debug(new",{"_index":16633,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"injectables/PreviewProducer.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.logger.debug(this.createmessage(message",{"_index":13902,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.emerg(message",{"_index":8347,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error('could",{"_index":8417,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["this.logger.error(`${err.message",{"_index":17864,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.error(`migration",{"_index":13666,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.error(`the",{"_index":7981,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.error(err",{"_index":13650,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.error(error",{"_index":8002,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"controllers/OauthSSOController.html":{}}}],["this.logger.error(loggable",{"_index":10823,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.logger.error(message",{"_index":8350,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error(this.createmessage(result",{"_index":13904,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.http(logging",{"_index":17399,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.info",{"_index":13841,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.logger.info(message",{"_index":14423,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.info(new",{"_index":8807,"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":13900,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.log",{"_index":7927,"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":8165,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log('cleanup",{"_index":7934,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.log(`${oauthconfig.authendpoint}?${query",{"_index":11515,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(`...deleted",{"_index":13714,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`...migrated",{"_index":13667,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`after",{"_index":8167,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log(`amount",{"_index":13712,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`could",{"_index":17874,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(`initialized",{"_index":7988,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.log(`migration",{"_index":13665,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`starting",{"_index":13710,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.logger.log(`stream",{"_index":17918,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(axiosconfig",{"_index":11516,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(err",{"_index":16135,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.log(localdto",{"_index":11539,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(new",{"_index":23252,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.notice(message",{"_index":14422,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.notice(this.createmessage(message",{"_index":13903,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.setcontext(`${context.getclass().name}::${context.gethandler().name",{"_index":17392,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.setcontext(carduc.name",{"_index":4170,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.logger.setcontext(collaborativestorageadapter.name",{"_index":4554,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.logger.setcontext(collaborativestoragecontroller.name",{"_index":4628,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.logger.setcontext(collaborativestorageservice.name",{"_index":4677,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.logger.setcontext(databasemanagementuc.name",{"_index":11680,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.setcontext(deletefilesconsole.name",{"_index":7926,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.setcontext(deletefilesuc.name",{"_index":7965,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.setcontext(elementuc.name",{"_index":8240,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.logger.setcontext(filesstorageclientadapterservice.name",{"_index":10441,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.logger.setcontext(filesstorageconsumer.name",{"_index":10520,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.logger.setcontext(filesstorageproducer.name",{"_index":10632,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.logger.setcontext(fwulearningcontentsuc.name",{"_index":10771,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.logger.setcontext(hydraoauthuc.name",{"_index":11438,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.logger.setcontext(keycloakconsole.name",{"_index":11605,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.logger.setcontext(keycloakmanagementcontroller.name",{"_index":13645,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.setcontext(keycloakmigrationservice.name",{"_index":13659,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.setcontext(ldapservice.name",{"_index":13772,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.setcontext(newsuc.name",{"_index":15177,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.logger.setcontext(nextcloudstrategy.name",{"_index":15260,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.setcontext(oauthservice.name",{"_index":15428,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.logger.setcontext(oauthssocontroller.name",{"_index":16131,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.setcontext(oauthuc.name",{"_index":16216,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.setcontext(previewgeneratorconsumer.name",{"_index":16630,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.logger.setcontext(previewgeneratorservice.name",{"_index":16668,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.logger.setcontext(previewproducer.name",{"_index":16689,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.logger.setcontext(previewservice.name",{"_index":16714,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.setcontext(restartuserloginmigrationuc.name",{"_index":17441,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(s3clientadapter.name",{"_index":17860,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.setcontext(sharetokenuc.name",{"_index":18814,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.logger.setcontext(startuserloginmigrationuc.name",{"_index":18908,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(submissionitemuc.name",{"_index":19121,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.logger.setcontext(youruc.name",{"_index":23250,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.warn",{"_index":15318,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.warn('no",{"_index":19266,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["this.logger.warn(`boardcopyservice",{"_index":3048,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warn(`completemigration",{"_index":18375,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(`could",{"_index":16721,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warn(`placeholder",{"_index":11823,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.warn(`restartmigration",{"_index":18381,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(err",{"_index":3029,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warning(message",{"_index":14421,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.warning(this.createmessage(message",{"_index":13901,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.loginname",{"_index":12839,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.loginuc.getlogindata(user",{"_index":14493,"title":{},"body":{"controllers/LoginController.html":{}}}],["this.loginurl",{"_index":21446,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.logmigrationinformation",{"_index":21333,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logmigrationinformation(currentuserid",{"_index":21320,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logo",{"_index":8494,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["this.logo_url",{"_index":7141,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.logobase64",{"_index":8697,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["this.logourl",{"_index":5752,"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/FederalStateEntity.html":{},"interfaces/IFederalStateProperties.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.logoutendpoint",{"_index":12353,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.logoutflowuc.logoutflow(params.challenge",{"_index":15927,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.logouturl",{"_index":2097,"title":{},"body":{"classes/BBBCreateConfig.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{},"injectables/UserMigrationService.html":{}}}],["this.lookuptoken(token",{"_index":18779,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lti_message_type",{"_index":7143,"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":7145,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.ltirepo.findbyoauthclientid(oauthclientid",{"_index":11551,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.ltitoolrepo.findbyclientidandislocal(clientid",{"_index":14743,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["this.ltitoolrepo.findbyname(this.client.oidcinternalname",{"_index":15316,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.ltitoolservice.findbyclientidandislocal(clientid",{"_index":15960,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.mandatory",{"_index":21170,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["this.mandatorysince",{"_index":21134,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.mapbasictoolconfigdotoentity(entitydo.config",{"_index":9088,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapbasictoolconfigdotoresponse(externaltool.config",{"_index":9237,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapbasictoolconfigtodo(entity.config",{"_index":9064,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapboardelements(board",{"_index":17603,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["this.mapcolumnboardelement(element",{"_index":8119,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.mapcontenttoresource(lesson.id",{"_index":5053,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcontexttypetodotype(entity.contexttype",{"_index":5893,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcontexttypetoentitytype(entitydo.contextref.type",{"_index":5898,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcourseteacherstocopyrightowners(course",{"_index":5037,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcourseuserstousergroup(course",{"_index":3141,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.mapcustomparameterdostoentities(entitydo.parameters",{"_index":9095,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparameterstodos(entity.parameters",{"_index":9071,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparametertoresponse",{"_index":9240,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapdomainobjecttoentityproperties(domainobject",{"_index":8972,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapdotoentityproperties(domainobject",{"_index":2423,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.mapelementtoentity(e",{"_index":7689,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapentitytodo(entity",{"_index":2409,"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":14027,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(schools[0",{"_index":14031,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(userentity",{"_index":20918,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.mapentitytodo(userloginmigration",{"_index":21207,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this.mapentitytodomainobject(entities",{"_index":8978,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.mapentitytodomainobject(entity",{"_index":8966,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapexternalsourceentitytoexternalsource(entity.externalsource",{"_index":11022,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapexternalsourcetoexternalsourceentity(props.externalsource",{"_index":11011,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapfromdtotoresponse(system",{"_index":19451,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["this.mapfromentitytodto(entity",{"_index":17526,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["this.mapgridelementtomodel(elementwithposition",{"_index":7716,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapgroupuserentitytogroupuser(groupuser",{"_index":11017,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.maplessonelement(element",{"_index":8118,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maplti11toolconfigdotoentity(entitydo.config",{"_index":9090,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.maplti11toolconfigdotoresponse(externaltool.config",{"_index":9238,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.maplti11toolconfigtodo(entity.config",{"_index":9066,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configdotoentity(entitydo.config",{"_index":9089,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configtodo(entity.config",{"_index":9065,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2toolconfigdotoresponse(externaltool.config",{"_index":9239,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapper.mapdashboardtoentity(dashboardmodel",{"_index":7752,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtoentity(modelentity",{"_index":7748,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtomodel(entity",{"_index":7746,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdotoprovideroauthclient",{"_index":9320,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.mapper.maptoresponse(board",{"_index":17707,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.mappers.find((mapper",{"_index":5588,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.mappseudonymtouserdata(pseudonym",{"_index":9714,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.mapreferencetoentity(ref",{"_index":7681,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapreferencetomodel(ref",{"_index":7710,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolcreateparams.config",{"_index":9186,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolupdateparams.config",{"_index":9173,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterdo",{"_index":9177,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(contextexternaltool.parameters",{"_index":5969,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(request.parameters",{"_index":5925,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigcreate(externaltoolcreateparams.config",{"_index":9187,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigupdate(externaltoolupdateparams.config",{"_index":9174,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigcreate(externaltoolcreateparams.config",{"_index":9188,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigupdate(externaltoolupdateparams.config",{"_index":9175,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.mapsanisroletorolename(source",{"_index":18030,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.mapsubmissionstoresponse(item",{"_index":19084,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.maptaskelement(element",{"_index":8116,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoclassinfotoresponse(classinfo",{"_index":11126,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["this.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20382,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptocustomparameterentryresponse(schoolexternaltool.parameters",{"_index":18177,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptodo(entity",{"_index":4399,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoelementdtos(filtered",{"_index":8103,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoentity(domainobject",{"_index":4401,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoexternalgroupuser(relation",{"_index":18045,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20379,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptoschoolexternaltoolresponse(tooldo",{"_index":18174,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptotoolreferenceresponse(toolreference",{"_index":5974,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.mapuserstoresponse(user",{"_index":19086,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["this.match",{"_index":12846,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.matchedby",{"_index":12049,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.matchsinglerule(selectedrules",{"_index":17816,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.materials.getitems",{"_index":11911,"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":11910,"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":11893,"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":11463,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.maxexternaltoollogosizeinbytes",{"_index":8827,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["this.maxsubmissions",{"_index":3789,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.meetingid",{"_index":2057,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{}}}],["this.mergeelementintoposition(elementtomove",{"_index":7509,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.merlinreference",{"_index":12112,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.message",{"_index":3849,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/PreviewActionsLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.metadataprops.version",{"_index":5233,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["this.method",{"_index":17354,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.migrationcheckservice.shouldusermigrate",{"_index":15438,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.migrationerrorhandler(error",{"_index":16194,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.migrationmapper.mapdtotoresponse(migrationdto",{"_index":13957,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.mimetype",{"_index":6206,"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":21665,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.moderatorpw",{"_index":2103,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.name",{"_index":2095,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"entities/ClassEntity.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/FederalStateEntity.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":{},"classes/GroupResponse.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":{},"classes/ResolvedGroupDto.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/SchoolYearEntity.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":{},"classes/UsersList.html":{}}}],["this.name.length",{"_index":6589,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.newsrepo.delete(news",{"_index":15200,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallpublished(targets",{"_index":15190,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallunpublishedbyuser(targets",{"_index":15189,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findonebyid(id",{"_index":15193,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.save(news",{"_index":15183,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsuc.create",{"_index":14975,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.newsuc.delete(urlparams.newsid",{"_index":14989,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.findallforuser",{"_index":14979,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["this.newsuc.findonebyidforuser(urlparams.newsid",{"_index":14984,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.update",{"_index":14985,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.nowplusdays(options.expiresindays",{"_index":18824,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.numberofdrafttasks",{"_index":3473,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofplannedtasks",{"_index":3474,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofpublishedtasks",{"_index":3472,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.oauthadapterservice.getpublickey(oauthconfig.jwksendpoint",{"_index":15454,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthadapterservice.sendauthenticationcodetokenrequest",{"_index":15451,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthclientid",{"_index":7162,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.oauthconfig",{"_index":12423,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.oauthencryptionservice.decrypt(clientsecret",{"_index":13542,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.decrypt(oauthconfig.clientsecret",{"_index":15483,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthencryptionservice.encrypt(await",{"_index":13532,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.encrypt(tool.secret",{"_index":11559,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.oauthmigrationfinalfinish",{"_index":14866,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationfinished",{"_index":14864,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationmandatory",{"_index":14862,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationpossible",{"_index":14860,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid",{"_index":15989,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid(clientid",{"_index":12650,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.oauthproviderloginflowservice.isnextcloudtool(tool",{"_index":15991,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowuc.getloginrequest(params.challenge",{"_index":15919,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderloginflowuc.patchloginrequest",{"_index":15922,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentresponse(consentrequest",{"_index":15933,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentsessionstoresponse(session",{"_index":15941,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.maploginresponse(loginresponse",{"_index":15920,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapoauthclientresponse(client",{"_index":15903,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirect",{"_index":15928,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirectresponse",{"_index":15924,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderservice.acceptconsentrequest",{"_index":15841,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.acceptloginrequest",{"_index":15997,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.acceptlogoutrequest(challenge",{"_index":16008,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["this.oauthproviderservice.createoauth2client(datawithdefaults",{"_index":15804,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.createoauth2client(oauthclient",{"_index":9321,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.deleteoauth2client(id",{"_index":15806,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.getconsentrequest(challenge",{"_index":15830,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.getloginrequest(challenge",{"_index":15984,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.getoauth2client",{"_index":9349,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(config.clientid",{"_index":9356,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(id",{"_index":15800,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.listconsentsessions(userid",{"_index":16078,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.listoauth2clients",{"_index":15799,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.rejectconsentrequest",{"_index":15838,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.rejectloginrequest",{"_index":16002,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.revokeconsentsession(userid",{"_index":16079,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(id",{"_index":15805,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(loadedoauthclient.client_id",{"_index":9353,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthprovideruc.listconsentsessions",{"_index":15939,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthprovideruc.revokeconsentsession(currentuser.userid",{"_index":15944,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthservice.authenticateuser",{"_index":16225,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(systemid",{"_index":15510,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(targetsystemid",{"_index":21319,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.oauthservice.getauthenticationurl(system.oauthconfig",{"_index":16219,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.getredirecturi(userloginmigration",{"_index":16222,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.provisionuser",{"_index":15511,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.requesttoken",{"_index":11443,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthservice.validatetoken(oauthtokens.idtoken",{"_index":11445,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthuc.migrate(jwt",{"_index":16191,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.processoauthlogin",{"_index":16162,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.startoauthlogin",{"_index":16155,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.officialschoolnumber",{"_index":8456,"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":15357,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.officialschoolnumberfromtarget",{"_index":15358,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.oidcconfig",{"_index":12425,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.oidcidentityprovidermapper.maptokeycloakidentityprovider(oidcconfig",{"_index":13459,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.oidcprovisioningservice.provisionexternalgroup(externalgroup",{"_index":16418,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternalschool(data.externalschool",{"_index":16409,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternaluser",{"_index":16411,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.removeexternalgroupsandaffiliation",{"_index":16416,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.opengraphproxyservice",{"_index":5620,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.opengraphproxyservice.fetchopengraphdata(linkelement.url",{"_index":5664,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.openinnewtab",{"_index":20639,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.opennewtab",{"_index":7168,"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":14999,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["this.options",{"_index":8035,"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":1282,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminpassword",{"_index":1287,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.admintoken",{"_index":1283,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminuser",{"_index":1286,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.copyrightowners",{"_index":5156,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.creationyear",{"_index":5157,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.enabled",{"_index":1373,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.exchange",{"_index":1379,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.filesservicebaseurl",{"_index":1390,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["this.options.identifier",{"_index":5154,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.module",{"_index":20224,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["this.options.routingkey",{"_index":1380,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.options.title",{"_index":5155,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.uri",{"_index":1292,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.version",{"_index":5158,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organization",{"_index":11049,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.organizationelements.map((organizationelement",{"_index":5287,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["this.organizationid",{"_index":11108,"title":{},"body":{"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{}}}],["this.organizations.flatmap((organization",{"_index":5151,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.map((organization",{"_index":5149,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.push(organizationbuilder",{"_index":5145,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.origin",{"_index":13065,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["this.origintoolid",{"_index":7197,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["this.orm.close",{"_index":14902,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["this.orm.getschemagenerator().ensureindexes",{"_index":7910,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.outdatedsince",{"_index":12599,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.pagecontentmapper.mapdtotoresponse(content",{"_index":21388,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.parameters",{"_index":5719,"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":14881,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.parametertype",{"_index":16519,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["this.params",{"_index":7286,"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":6202,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.parentname",{"_index":18703,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["this.parentpermission(user",{"_index":14261,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.parentsmap.get(card.id",{"_index":17280,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(column.id",{"_index":17278,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(columnboard.id",{"_index":17270,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(externaltoolelement.id",{"_index":17299,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(fileelement.id",{"_index":17282,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(linkelement.id",{"_index":17285,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(richtextelement.id",{"_index":17288,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submission.id",{"_index":17294,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissioncontainerelement.id",{"_index":17291,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.set(child.id",{"_index":17306,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsystemid",{"_index":16254,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["this.parenttype",{"_index":6208,"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":3603,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.path.split(path_separator).filter((id",{"_index":3614,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.payload",{"_index":16581,"title":{},"body":{"classes/PreviewActionsLoggable.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.permission",{"_index":8027,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.permissionmapper.mapbodytodto(permissionsdto",{"_index":4706,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.permissions",{"_index":9934,"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":9935,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.persistandflush(dashboard",{"_index":7754,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.pickimage(data.result.ogimage",{"_index":16441,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["this.populate([task",{"_index":19766,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populate(tasks",{"_index":19847,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populateboard(board",{"_index":3677,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.populatereferences([submission",{"_index":19162,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populatereferences(submissions",{"_index":19164,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populateroles([teamuser.role",{"_index":20183,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(role.roles.getitems",{"_index":20188,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(user.roles.getitems",{"_index":21516,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this.populateroles(userentity.roles.getitems",{"_index":20917,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.position",{"_index":3607,"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":7502,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.post('/api/v1/logout",{"_index":1220,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post('/api/v1/users.setstatus",{"_index":1215,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post(path",{"_index":1260,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.addmoderator",{"_index":1238,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.archive",{"_index":1228,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.create",{"_index":1250,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.delete",{"_index":1252,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.invite",{"_index":1236,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.kick",{"_index":1232,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.removemoderator",{"_index":1240,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.unarchive",{"_index":1224,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.create",{"_index":1254,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.createtoken",{"_index":1218,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.delete",{"_index":1257,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postloginredirect",{"_index":15730,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["this.preferences",{"_index":12595,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.preparebbbcreateconfigbuilder(scope",{"_index":21812,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.previewgeneratorservice.generatepreview(payload",{"_index":16635,"title":{},"body":{"injectables/PreviewGeneratorConsumer.html":{}}}],["this.previewproducer.generate(payload",{"_index":16731,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.previewservice.deletepreviews(filerecords",{"_index":10530,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.previewstatus",{"_index":6212,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.previousexternalid",{"_index":12210,"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":7151,"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":12465,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.proceedbuttonurl",{"_index":16465,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.processcookies(localdto.response.headers['set",{"_index":11532,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.processredirectcascade(initresponse",{"_index":11452,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.product",{"_index":3829,"title":{},"body":{"classes/Builder.html":{}}}],["this.product.allowmodstounmuteusers",{"_index":2152,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.attendeepw",{"_index":2150,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.guest",{"_index":2202,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.guestpolicy",{"_index":2137,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.logouturl",{"_index":2135,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.moderatorpw",{"_index":2148,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.muteonstart",{"_index":2138,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.role",{"_index":2203,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.userid",{"_index":2204,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.welcome",{"_index":2136,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product['meta_bbb",{"_index":2140,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.properties",{"_index":20514,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["this.propertiestopopulate",{"_index":15100,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.props",{"_index":1791,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/DomainObject.html":{}}}],["this.props.alternativetext",{"_index":9841,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.caption",{"_index":9839,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.children",{"_index":2784,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.props.completed",{"_index":19049,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.context",{"_index":4730,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["this.props.contextexternaltoolid",{"_index":8642,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["this.props.copyrightowners",{"_index":5266,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.createdat",{"_index":2785,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.creationyear",{"_index":5265,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.description",{"_index":5186,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.duedate",{"_index":18972,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["this.props.externalsource",{"_index":10926,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.gradelevel",{"_index":4248,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.height",{"_index":3959,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["this.props.href",{"_index":5221,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.html",{"_index":5313,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.id",{"_index":1792,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["this.props.identifier",{"_index":5219,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.imageurl",{"_index":14331,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.inputformat",{"_index":17472,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.intendeduse",{"_index":5314,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.invitationlink",{"_index":4246,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.ldapdn",{"_index":4249,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.name",{"_index":4242,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.organizationid",{"_index":10927,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.pseudonym",{"_index":16911,"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":5134,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.resources.map((content",{"_index":5276,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["this.props.resources.push(props",{"_index":5139,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.schoolid",{"_index":4243,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.source",{"_index":4251,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceoptions",{"_index":4252,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceschoolid",{"_index":18426,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.successor",{"_index":4250,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.targetschoolid",{"_index":18428,"title":{},"body":{"classes/SchoolSpecificFileCopyServiceImpl.html":{}}}],["this.props.teacherids",{"_index":4245,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.text",{"_index":17470,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.title",{"_index":3957,"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":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.toolid",{"_index":16912,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.tspuid",{"_index":4446,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["this.props.type",{"_index":5220,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.updatedat",{"_index":2786,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.url",{"_index":5188,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["this.props.userid",{"_index":16913,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.userids",{"_index":4244,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.userids?.filter((userid1",{"_index":4253,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.users",{"_index":3112,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.users.filter((groupuser",{"_index":10928,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.users.length",{"_index":10930,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.props.version",{"_index":5195,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.year",{"_index":4247,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.propsfactory",{"_index":2505,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.afterbuild(afterbuildfn",{"_index":2516,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.associations(associations",{"_index":2519,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.build(params",{"_index":2508,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.params(params",{"_index":2520,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.rewindsequence",{"_index":2522,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.transient(transient",{"_index":2521,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory['sequence",{"_index":2529,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.provider",{"_index":12351,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.provideroptions",{"_index":12380,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.provisioningservice.getdata",{"_index":21322,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.provisioningservice.getdata(systemid",{"_index":15433,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["this.provisioningservice.provisiondata(data",{"_index":15442,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.provisioningstrategy",{"_index":12429,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.provisioningurl",{"_index":12431,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{}}}],["this.pseudonym",{"_index":8927,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/TooManyPseudonymsLoggableException.html":{}}}],["this.pseudonymrepo",{"_index":17028,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":17025,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.findbyuserid(userid",{"_index":17022,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymservice",{"_index":15292,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.pseudonymservice.findbyuserandtoolorthrow(user",{"_index":12652,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.pseudonymservice.findorcreatepseudonym(user",{"_index":9716,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.findpseudonymbypseudonym(pseudonym",{"_index":9720,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/PseudonymUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.getiframesubject(loadedpseudonym.pseudonym",{"_index":9686,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymservice.getiframesubject(pseudonym.pseudonym",{"_index":9736,"title":{},"body":{"injectables/FeathersRosterService.html":{},"injectables/IdTokenService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.pseudonymuc.findpseudonymbypseudonym(currentuser.userid",{"_index":16937,"title":{},"body":{"controllers/PseudonymController.html":{}}}],["this.publicbackendurl",{"_index":21432,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.publicsubmissions",{"_index":12471,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.published",{"_index":2748,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{}}}],["this.publishedat",{"_index":22040,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["this.random(50",{"_index":3553,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.read",{"_index":9998,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.reason",{"_index":10043,"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":2186,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"classes/UserMigrationResponse.html":{}}}],["this.redirect_to",{"_index":17315,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["this.redirect_uri",{"_index":1535,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.redirecturi",{"_index":12347,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.redirecturis",{"_index":15521,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.redisclient",{"_index":18577,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.references",{"_index":7471,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.getitems",{"_index":2669,"title":{},"body":{"entities/Board.html":{}}}],["this.references.length",{"_index":7479,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.set(elements",{"_index":2673,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(newlist",{"_index":2707,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(onlyexistingreferences",{"_index":2696,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(props.references",{"_index":2662,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(references",{"_index":7566,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.referer",{"_index":11476,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.refid",{"_index":9991,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refownermodel",{"_index":9960,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.refpermmodel",{"_index":9993,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refreshtoken",{"_index":15494,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["this.regex",{"_index":7224,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.regexcomment",{"_index":7226,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.region",{"_index":12271,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.registerparentdata(parent",{"_index":17268,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.registerstrategy(iservstrategy",{"_index":16873,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(oidcmockstrategy",{"_index":16874,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(sanisstrategy",{"_index":16872,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.rejectconsentrequest(challenge",{"_index":15836,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.rejectloginrequest(challenge",{"_index":15986,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.rejectnothandled(card",{"_index":5650,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(column",{"_index":5649,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(columnboard",{"_index":5648,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(externaltoolelement",{"_index":5686,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(fileelement",{"_index":5656,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(linkelement",{"_index":5672,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(richtextelement",{"_index":5677,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submission",{"_index":5681,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.rejectnothandled(submissioncontainerelement",{"_index":5680,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["this.relatedresources",{"_index":12114,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.relation.ktid",{"_index":11157,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.relation.rollen[0",{"_index":11159,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.removedeletedreferences(boardelementtargets",{"_index":2690,"title":{},"body":{"entities/Board.html":{}}}],["this.removefromposition(from",{"_index":7510,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removeprotectedentityfields(newentity",{"_index":2416,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.removeroomsnotinlist(rooms",{"_index":7511,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removesecrets(collectionname",{"_index":11772,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromstorageproviders(jsondocuments",{"_index":11847,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromsystems(jsondocuments",{"_index":11846,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.repeatcommand",{"_index":11625,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.repo.findallbyuserid(userid",{"_index":6965,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyid(courseid",{"_index":6964,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyowneruserid(userid",{"_index":10407,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbypermissionrefid(userid",{"_index":10402,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbyuserid(userid",{"_index":6804,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(coursegroups",{"_index":6807,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(courses",{"_index":6968,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.save(entities",{"_index":10406,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repos.get(type",{"_index":12150,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.boardnode",{"_index":12145,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.contextexternaltoolentity",{"_index":12147,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.course",{"_index":12129,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.coursegroup",{"_index":12131,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.lesson",{"_index":12137,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.school",{"_index":12135,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.schoolexternaltoolentity",{"_index":12143,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.submission",{"_index":12141,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.task",{"_index":12127,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.team",{"_index":12139,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.user",{"_index":12133,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.request(filespreviewevents.generate_preview",{"_index":16691,"title":{},"body":{"injectables/PreviewProducer.html":{}}}],["this.request(filesstorageevents.copy_files_of_parent",{"_index":10634,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.delete_files_of_parent",{"_index":10640,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request(filesstorageevents.list_files_of_parent",{"_index":10637,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.request.app.get('feathersapp",{"_index":9755,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["this.requestmapper.mapschoolexternaltoolrequest(body",{"_index":20740,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.requesttimeout",{"_index":20259,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["this.requesttoken",{"_index":10045,"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":15431,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.resizeandconvert(original",{"_index":16671,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.resolvepermissions(user",{"_index":16572,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(innerroles",{"_index":16571,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(user.roles.getitems",{"_index":16569,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolveplaceholder(placeholder.substring(2",{"_index":11814,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.resolverepo(objectname",{"_index":12155,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.resolvetokenrequest(responsetokenobservable",{"_index":15570,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.resource_link_id",{"_index":7147,"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":5308,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["this.resourceid",{"_index":15334,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resourcename",{"_index":15332,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resources.push(resource",{"_index":5148,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.response",{"_index":1205,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/HydraRedirectDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.responsemapper.maptoexternalgroupdtos(axiosresponse.data",{"_index":17993,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternalschooldto(axiosresponse.data",{"_index":17992,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternaluserdto(axiosresponse.data",{"_index":17990,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(createdschoolexternaltooldo",{"_index":20748,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":20738,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(updated",{"_index":20742,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptosearchlistresponse(found",{"_index":20735,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsetype",{"_index":12348,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.restartuserloginmigrationuc.restartmigration",{"_index":21107,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.resultmap.get(child.id",{"_index":17192,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.get(original.id",{"_index":17150,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.resultmap.set(original.id",{"_index":17156,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.role",{"_index":2181,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/ResolvedGroupUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["this.roleid",{"_index":11307,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.roleids",{"_index":20982,"title":{},"body":{"classes/UserDto.html":{}}}],["this.rolename",{"_index":8448,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.rolenames",{"_index":12841,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.rolenames.push(...props.rolenames",{"_index":12022,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.rolerepo.findbyid(id",{"_index":17575,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbyids(ids",{"_index":17577,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbynames(names",{"_index":17579,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.roles",{"_index":7149,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["this.roles.getitems",{"_index":12165,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.isinitialized(true",{"_index":12162,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.set(props.roles",{"_index":12160,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roleservice.findbyid(groupuser.roleid",{"_index":11270,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.roleservice.findbyid(roleid",{"_index":4685,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.roleservice.findbynames([externalgroupuser.rolename",{"_index":16379,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(externaluser.roles",{"_index":16340,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(names",{"_index":17585,"title":{},"body":{"injectables/RoleUc.html":{}}}],["this.roleservice.getprotectedroles",{"_index":21619,"title":{},"body":{"injectables/UserService.html":{}}}],["this.rollbackmigration(schooldocopy",{"_index":18356,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.rollbackmigration(userdocopy",{"_index":21459,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.room",{"_index":8097,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.color",{"_index":8144,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.id",{"_index":8143,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.isfinished",{"_index":8147,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.name",{"_index":8145,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.substitutionteachers.contains(this.user",{"_index":8114,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.teachers.contains(this.user",{"_index":8113,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomid",{"_index":18878,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.roomsauthorisationservice",{"_index":8100,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.haslessonreadpermission(this.user",{"_index":8107,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.hastaskreadpermission(this.user",{"_index":8106,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsservice.updateboard(board",{"_index":17760,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.roomsservice.updateboard(originalboard",{"_index":6663,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.roomsuc.getboard(urlparams.roomid",{"_index":17706,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.reorderboardelements(urlparams.roomid",{"_index":17712,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.updatevisibilityofboardelement",{"_index":17708,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.rootpath",{"_index":12373,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.routepath",{"_index":17359,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.rulemanager.selectrule(user",{"_index":2011,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.rules",{"_index":17799,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.rules.filter((rule",{"_index":17814,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.s3clientmap.get(storageprovider.id",{"_index":8008,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.set(provider.id",{"_index":7986,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.size",{"_index":7989,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.salt",{"_index":2331,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.save(this.create(course",{"_index":6924,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this.save(this.create(lesson",{"_index":14220,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this.save(this.create(task",{"_index":19765,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.saveall([entitydo",{"_index":2399,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.school",{"_index":6543,"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/UserLoginMigrationEntity.html":{},"classes/UsersList.html":{}}}],["this.school.id",{"_index":12048,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.schoolexternaltoolid",{"_index":5749,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["this.schoolexternaltoolrepo",{"_index":12144,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolexternaltoolrepo.deletebyexternaltoolid(toolid",{"_index":9344,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.deletebyid(schoolexternaltoolid",{"_index":18216,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.find",{"_index":18209,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyexternaltoolid(toolid",{"_index":9340,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyid(schoolexternaltoolid",{"_index":18208,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.save(schoolexternaltool",{"_index":18218,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrule",{"_index":17808,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.schoolexternaltoolservice.deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":18243,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.findbyid",{"_index":6077,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.schoolexternaltoolservice.findbyid(schoolexternaltoolid",{"_index":8606,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["this.schoolexternaltoolservice.findschoolexternaltools",{"_index":8586,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/SchoolExternalToolUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool",{"_index":18241,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool(updated",{"_index":18244,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltooluc.createschoolexternaltool",{"_index":20747,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.deleteschoolexternaltool(currentuser.userid",{"_index":20745,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.findschoolexternaltools(currentuser.userid",{"_index":20733,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.getschoolexternaltool",{"_index":20737,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.updateschoolexternaltool",{"_index":20741,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltoolvalidationservice.validate(schoolexternaltool",{"_index":18240,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolid",{"_index":4282,"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":4505,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.markunmigratedusersasoutdated(schoolid",{"_index":4507,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.migrateschool",{"_index":21334,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.migrateschool(data.externalschool.externalid",{"_index":16231,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.schoolmigrationservice.schooltomigrate",{"_index":16228,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.unmarkoutdatedusers(schoolid",{"_index":14116,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolmigrationservice.validategraceperiod(existinguserloginmigration",{"_index":14112,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.schoolname",{"_index":18286,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.schoolnumber_prefix_regex",{"_index":18025,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.schoolparameters",{"_index":12177,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.schoolrepo",{"_index":12136,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolrepo.findbyexternalid(externalid",{"_index":14089,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(id",{"_index":14088,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(schoolid",{"_index":13813,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyschoolnumber(school.officialschoolnumber",{"_index":18437,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.schoolrepo.findbyschoolnumber(schoolnumber",{"_index":14090,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.save(school",{"_index":14087,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrule.haspermission(user",{"_index":23703,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschool(params.schoolid",{"_index":23687,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschoolbyexternalid",{"_index":16325,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.schoolservice.getschoolbyid(ldapuser.schoolid",{"_index":13115,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.schoolservice.getschoolbyid(pseudonymuser.school.id",{"_index":17042,"title":{},"body":{"injectables/PseudonymUc.html":{}}}],["this.schoolservice.getschoolbyid(schoolexternaltool.schoolid",{"_index":322,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.schoolservice.getschoolbyid(schoolid",{"_index":11224,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.getschoolbyid(userdo.schoolid",{"_index":18358,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber",{"_index":18360,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber(officialschoolnumber",{"_index":14821,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["this.schoolservice.removefeature(schoolid",{"_index":21278,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.removefeature(userloginmigration.schoolid",{"_index":21235,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.schoolservice.save(originalschooldo",{"_index":18386,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.save(school",{"_index":16337,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.save(schooldo",{"_index":18385,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schooltool",{"_index":5785,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.schooltoolid",{"_index":5942,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["this.schooltoolref",{"_index":5713,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.schooluc.getmigration(schoolparams.schoolid",{"_index":13959,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schooluc.setmigration",{"_index":13952,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schoolvalidationservice.validate(school",{"_index":14091,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolyear",{"_index":4338,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.schoolyearrepo.findbyid(id",{"_index":18456,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearrepo.findcurrentyear",{"_index":18455,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearservice.findbyid(clazz.year",{"_index":11246,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.schoolyearservice.getcurrentschoolyear",{"_index":16332,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.scope",{"_index":7222,"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/SystemEntity.html":{}}}],["this.searchbyusername(username",{"_index":930,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.searchuser",{"_index":12375,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.searchuserpassword",{"_index":12377,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.secret",{"_index":7139,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.secretaccesskey",{"_index":12269,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.secretvalue",{"_index":1785,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["this.securitycheck",{"_index":9953,"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":10068,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.requesttoken",{"_index":10070,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.status",{"_index":10067,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.updatedat",{"_index":10069,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheckstatus",{"_index":6200,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.selectconfigureaction(newconfigs",{"_index":13429,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.sendhttpresponse(error",{"_index":10825,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.service.createteam(team",{"_index":4708,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.deleteteam(teamid",{"_index":4707,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteam(team",{"_index":4709,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteampermissionsforrole",{"_index":4703,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.sessionhandler(session",{"_index":16161,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.setmatch(props.user",{"_index":12027,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.share",{"_index":20094,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["this.sharetokenrepo.findonebytoken(token",{"_index":18777,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokenrepo.save(sharetoken",{"_index":18776,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokens",{"_index":9955,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.sharetokenservice.createtoken(payload",{"_index":18825,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptoken(token",{"_index":18830,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptokenwithparentname(token",{"_index":18826,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenuc.createsharetoken",{"_index":18651,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.importsharetoken",{"_index":18664,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.lookupsharetoken(currentuser.userid",{"_index":18660,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.shorttitle",{"_index":6826,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.shouldskipconsent(tool",{"_index":15995,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.size",{"_index":6198,"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":16511,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.skipconsent",{"_index":7166,"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":3054,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.source",{"_index":4298,"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":6873,"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":6179,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.sourceoptions",{"_index":4300,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.sourcesystem",{"_index":21155,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.sourcesystemid",{"_index":21130,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.stack",{"_index":8746,"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/TooManyPseudonymsLoggableException.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":6553,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.html":{},"classes/UsersList.html":{}}}],["this.startedat",{"_index":21136,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.startuserloginmigrationuc.startmigration",{"_index":21103,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.state",{"_index":8025,"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":2037,"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":1202,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.statustext",{"_index":2039,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.storageclient.create(previewfilepath",{"_index":16674,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.deletedirectory(path",{"_index":16720,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(path",{"_index":10772,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.storageclient.get(pathtofile",{"_index":16676,"title":{},"body":{"injectables/PreviewGeneratorService.html":{}}}],["this.storageclient.get(previewfilepath",{"_index":16728,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storagefilename",{"_index":9945,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageprovider",{"_index":9947,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageproviderrepo.findall",{"_index":7984,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.strategies",{"_index":20587,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(externaltool.config.type",{"_index":20597,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(systemstrategy",{"_index":16883,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.get(toolconfigtype",{"_index":20592,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(strategy.gettype",{"_index":16875,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.set(toolconfigtype.basic",{"_index":20588,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.lti11",{"_index":20589,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.oauth2",{"_index":20590,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategy",{"_index":4555,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.createteam(team",{"_index":4558,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.deleteteam(teamid",{"_index":4557,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteam(team",{"_index":4559,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteampermissionsforrole(this.mapper.mapdomaintoadapter(team",{"_index":4556,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.stringifiedmessage(message",{"_index":13906,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.stringifymessage(message",{"_index":14461,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["this.student",{"_index":12280,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.student.id",{"_index":12314,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.students",{"_index":6762,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getidentifiers('_id",{"_index":6764,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getitems",{"_index":6572,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.students.remove((u",{"_index":6767,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.set(props.students",{"_index":6545,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.subjects",{"_index":12116,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.submissionitemservice.create(userid",{"_index":8254,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.submissionitemservice.findbyid(submissionitemid",{"_index":19131,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemservice.update(submissionitem",{"_index":19132,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemsresponse",{"_index":19255,"title":{},"body":{"classes/SubmissionsResponse.html":{}}}],["this.submissionitemuc.findsubmissionitems",{"_index":3742,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.updatesubmissionitem",{"_index":3748,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionrepo",{"_index":12142,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.submissionrepo.delete(submission",{"_index":19216,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findallbytaskids([taskid",{"_index":19214,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findbyid(submissionid",{"_index":19213,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrule",{"_index":17807,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.submissions",{"_index":12475,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.getitems",{"_index":12478,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.isinitialized(true",{"_index":12476,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.set(props.submissions",{"_index":12469,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissionservice.delete(submission",{"_index":19243,"title":{},"body":{"injectables/SubmissionUc.html":{},"injectables/TaskService.html":{}}}],["this.submissionservice.findallbytask(taskid",{"_index":19238,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionservice.findbyid(submissionid",{"_index":19241,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionuc.delete(currentuser.userid",{"_index":19019,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submissionuc.findallbytask(currentuser.userid",{"_index":19012,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submitted",{"_index":3788,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.submitters",{"_index":19220,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.submittingcoursegroupname",{"_index":19221,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.substitutionteachers.contains(user",{"_index":6582,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.getitems",{"_index":6578,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.remove((u",{"_index":6602,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.substitutionteachers.set(props.substitutionteachers",{"_index":6547,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.successful",{"_index":19261,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["this.successor",{"_index":4296,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.system",{"_index":8471,"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/ExternalSourceResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.systemoidcservice.findall",{"_index":13427,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.systemrepo.findall",{"_index":19477,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oauth",{"_index":19474,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oidc",{"_index":19425,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(type",{"_index":19476,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(id",{"_index":19421,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemdto.id",{"_index":19481,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemid",{"_index":13812,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.systemrepo.save(system",{"_index":19489,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systems",{"_index":13982,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["this.systems.set(props.systems",{"_index":12216,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.systemservice.findbyid(id",{"_index":19508,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemservice.findbyid(sourceid",{"_index":21437,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbyid(systemid",{"_index":11265,"title":{},"body":{"injectables/GroupUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{}}}],["this.systemservice.findbyid(targetid",{"_index":21438,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbytype(systemtypeenum.oauth",{"_index":19506,"title":{},"body":{"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.systemservice.findbytype(type",{"_index":19507,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemuc.findbyfilter(filterparams.type",{"_index":19306,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.systemuc.findbyid(params.systemid",{"_index":19311,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.tags",{"_index":12118,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.target",{"_index":15013,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetgroups",{"_index":12120,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.targetid",{"_index":15012,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.targetmodel",{"_index":6883,"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":21157,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["this.targetsystemid",{"_index":21132,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.task",{"_index":12284,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.taskcopyservice.copytask",{"_index":3058,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.taskcopyuc.copytask",{"_index":19588,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskrepo",{"_index":12128,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.taskrepo.createtask(taskcopy",{"_index":19618,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.delete(task",{"_index":19927,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.findallbyparentids",{"_index":19995,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findallfinishedbyparentids",{"_index":19977,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findbyid(params.originaltaskid",{"_index":19608,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.findbyid(taskid",{"_index":19654,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrepo.findbysingleparent",{"_index":19668,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.taskrepo.findbysingleparent(creatorid",{"_index":19924,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.save(task",{"_index":19622,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrule",{"_index":17803,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.taskrule.haspermission(user",{"_index":19198,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.tasks.getitems",{"_index":11898,"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":11896,"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":20021,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18785,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.taskservice.findbysingleparent(userid",{"_index":5056,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{}}}],["this.taskuc.changefinishedforuser(currentuser.userid",{"_index":19583,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.delete(currentuser.userid",{"_index":19590,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findall(currentuser.userid",{"_index":19577,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findallfinished(currentuser.userid",{"_index":19576,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.revertpublished(currentuser.userid",{"_index":19586,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.teacherids",{"_index":4286,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.teachers",{"_index":4336,"title":{},"body":{"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{}}}],["this.teachers.getitems",{"_index":6576,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.remove((u",{"_index":6600,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teachers.set(props.teachers",{"_index":6546,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.teamid",{"_index":3894,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.teammembers",{"_index":12298,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.getidentifiers('_id",{"_index":12301,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.set(props.teammembers",{"_index":12293,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teamname",{"_index":20111,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["this.teamrule",{"_index":17804,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.teamsmapper.mapentitytodto(await",{"_index":4678,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo",{"_index":12140,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.teamsrepo.findbyid(teamid",{"_index":4679,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo.findbyuserid(userid",{"_index":12640,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/TeamService.html":{}}}],["this.teamsrepo.save(teams",{"_index":20134,"title":{},"body":{"injectables/TeamService.html":{}}}],["this.teamstorageuc.updateuserpermissionsforrole(currentuser.userid",{"_index":4630,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.teamsubmissions",{"_index":12473,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.teamusers",{"_index":20039,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.text",{"_index":17480,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.throwifnotmoderator(bbbrole",{"_index":21809,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.thumbnail",{"_index":9948,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.thumbnailrequesttoken",{"_index":9951,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.timeout",{"_index":17784,"title":{},"body":{"classes/RpcMessageProducer.html":{},"todo.html":{}}}],["this.timeout(10000",{"_index":23371,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["this.timeoutms",{"_index":3933,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.timestamps",{"_index":3704,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.timetowait",{"_index":3803,"title":{},"body":{"classes/BruteForceError.html":{}}}],["this.title",{"_index":2747,"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":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.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":7482,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.toggleuserloginmigrationuc.setmigrationmandatory",{"_index":21109,"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":12343,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["this.tokenendpointauthmethod",{"_index":15523,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.tokengenerator.generatesharetoken",{"_index":18773,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.tokenurl",{"_index":12410,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.tool",{"_index":12175,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.toolfeatures.backendurl",{"_index":8792,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolfeatures.contextconfigurationenabled",{"_index":8543,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["this.toolfeatures.ctltoolstabenabled",{"_index":15959,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.toolfeatures.maxexternaltoollogosizeinbytes",{"_index":8800,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolid",{"_index":8929,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymResponse.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["this.toollaunchservice.generatelaunchrequest(toollaunchdata",{"_index":20609,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchservice.getlaunchdata(userid",{"_index":20608,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchuc.gettoollaunchrequest",{"_index":20506,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions",{"_index":20710,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions(userid",{"_index":6082,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.toolpermissionhelper.ensureschoolpermissions(userid",{"_index":8607,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.toolreferenceservice.gettoolreference",{"_index":20709,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.toolreferenceuc.gettoolreference",{"_index":20657,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolreferenceuc.gettoolreferencesforcontext",{"_index":20660,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["this.toolvalidationservice.validatecreate(externaltool",{"_index":9409,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolvalidationservice.validateupdate(toolid",{"_index":9411,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolversion",{"_index":5721,"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":2301,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.total",{"_index":16457,"title":{},"body":{"classes/Page.html":{},"classes/PaginationResponse.html":{}}}],["this.tovideoconferencestateresponse(videoconferenceinfo.state",{"_index":21955,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["this.trybuildtoolreference(userid",{"_index":20703,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.trygetprevieworgenerate(previewfileparams",{"_index":16717,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.tspuid",{"_index":4452,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["this.type",{"_index":2578,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BusinessError.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/ClassInfoDto.html":{},"classes/ClassInfoResponse.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/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.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":{},"classes/GroupResponse.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.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/ResolvedGroupDto.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":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/ToolLaunchData.html":{}}}],["this.uc.getpagecontent",{"_index":21384,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.until",{"_index":8438,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.untildate",{"_index":6551,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["this.updatecopiedembeddedtasksoflessons(status",{"_index":3026,"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/FederalStateEntity.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":2405,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.updateexistinggridelement(existing",{"_index":7696,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.updateexistingmigration(existinguserloginmigration",{"_index":21281,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.updatefileurls(taskcopy",{"_index":19611,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.updateidentityprovider(configureaction.config",{"_index":13434,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updateoauth2toolconfig(toupdate",{"_index":9323,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateoauthclientorthrow(loadedoauthclient",{"_index":9351,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateorcreateidpdefaultmapper(oidcconfig.idphint",{"_index":13462,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updater",{"_index":15014,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.updateteamusersingroup(groupid",{"_index":15271,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.url",{"_index":6196,"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":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"classes/LinkElementResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["this.usecentralldap",{"_index":18292,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.user",{"_index":7574,"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":{},"classes/ResolvedGroupUser.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.userdorepo.find(query",{"_index":21616,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyexternalid(externalid",{"_index":21617,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyid(id",{"_index":21612,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.save(user",{"_index":21613,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.saveall(users",{"_index":21615,"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/PseudonymResponse.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.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":4285,"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":12815,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.findallimportusers(currentuser.userid",{"_index":12792,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.removematch(currentuser.userid",{"_index":12801,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.saveallusersmatches(currentuser.userid",{"_index":12811,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.setmatch(currentuser.userid",{"_index":12797,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.startschoolinusermigration(currentuser.userid",{"_index":12813,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.updateflag(currentuser.userid",{"_index":12802,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userinfourl",{"_index":12413,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/SystemEntity.html":{}}}],["this.userloginmigration",{"_index":12218,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.userloginmigrationid",{"_index":13984,"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":21297,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid",{"_index":14823,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid(schoolid",{"_index":18366,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigration",{"_index":21275,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigrationdo",{"_index":21280,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrevertservice.revertuserloginmigration(updateduserloginmigration",{"_index":4506,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationrule",{"_index":17811,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.userloginmigrationservice.closemigration",{"_index":4503,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.deleteuserloginmigration(userloginmigration",{"_index":21236,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool",{"_index":4495,"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":14111,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyuser",{"_index":21316,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.restartmigration(schoolid",{"_index":17442,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.setmigration",{"_index":14113,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.setmigrationmandatory(schoolid",{"_index":20274,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.startmigration(schoolid",{"_index":18910,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationuc.finduserloginmigrationbyschool",{"_index":21100,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.getmigrations",{"_index":21094,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.migrate(jwt",{"_index":21114,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.usermatchschoolid",{"_index":18274,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.usermigrationservice.getmigrationconsentpageredirect",{"_index":15440,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.usermigrationservice.getpagecontent",{"_index":21313,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.usermigrationservice.migrateuser",{"_index":16232,"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":12134,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.userrepo.deleteuser(userid",{"_index":21629,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyemail(email",{"_index":1131,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/UserService.html":{}}}],["this.userrepo.findbyid(accountuserid",{"_index":14402,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.userrepo.findbyid(id",{"_index":21607,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyid(userid",{"_index":2018,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/CourseCopyService.html":{},"injectables/LdapStrategy.html":{},"injectables/RoomsUc.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrepo.save(user",{"_index":21626,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrule",{"_index":17805,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.users",{"_index":8434,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/SubmissionsResponse.html":{}}}],["this.users.find((u",{"_index":10931,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.users.push(user",{"_index":10934,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["this.userservice.findbyemail(email",{"_index":13127,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid",{"_index":13108,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid(externalgroupuser.externaluserid",{"_index":16378,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluser.externalid",{"_index":16342,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluserid",{"_index":14824,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyid(currentuserid",{"_index":15994,"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(groupuser.userid",{"_index":11269,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.userservice.findbyid(loadedpseudonym.userid",{"_index":9684,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(props.userid",{"_index":4745,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{}}}],["this.userservice.findbyid(teacherid",{"_index":11244,"title":{},"body":{"injectables/GroupUc.html":{}}}],["this.userservice.findbyid(teamuser.userid",{"_index":15291,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.userservice.findbyid(user.id",{"_index":9702,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.userservice.findbyid(userid",{"_index":12641,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userservice.findusers",{"_index":18369,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.getdisplayname(user",{"_index":12642,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.userservice.getresolveduser(userid",{"_index":16234,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.userservice.save(newuser",{"_index":23679,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.userservice.save(user",{"_index":16355,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.save(userdo",{"_index":21465,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.save(userdocopy",{"_index":21460,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.saveall(migratedusers.data",{"_index":18380,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.saveall(notmigratedusers.data",{"_index":18374,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.useruc.findallunmatchedusers(currentuser.userid",{"_index":12806,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.useruc.me(currentuser.userid",{"_index":20837,"title":{},"body":{"controllers/UserController.html":{}}}],["this.useruc.patchlanguage(currentuser.userid",{"_index":20841,"title":{},"body":{"controllers/UserController.html":{}}}],["this.validate(props",{"_index":4280,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.validateandgetexternaltool(oauth2clientid",{"_index":9688,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatecontextexternaltools(courseid",{"_index":9694,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatelti11config(externaltool",{"_index":9449,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateoauth2config(externaltool",{"_index":9448,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateparameter(param",{"_index":5412,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.validatereordering(ids",{"_index":2671,"title":{},"body":{"entities/Board.html":{}}}],["this.validaterocketchatconfig",{"_index":1280,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.validateschoolexternaltool(course.school.id",{"_index":9693,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["this.validatestatus",{"_index":11450,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.validatesubject(currentuser",{"_index":15831,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.validatetoken(oauthtokens.idtoken",{"_index":15432,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.validateusersmatch(dashboard",{"_index":7780,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.validationerrors.push(new",{"_index":1453,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.validperiod",{"_index":11047,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.value",{"_index":7181,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/LtiToolDO.html":{},"classes/PropertyData.html":{}}}],["this.verifyfeaturesenabled(user.schoolid",{"_index":21804,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.version",{"_index":5755,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.versionkey",{"_index":9969,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.videoconferencecreateuc.createifnotrunning(currentuser.userid",{"_index":21748,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceenduc.end(currentuser.userid",{"_index":21757,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceinfouc.getmeetinginfo(currentuser.userid",{"_index":21753,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencejoinuc.join(currentuser.userid",{"_index":21750,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceservice.canguestjoin(isguest",{"_index":21904,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.createorupdatevideoconferenceforscopewithoptions(scope.id",{"_index":21810,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.determinebbbrole",{"_index":21807,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.determinebbbrole(userid",{"_index":21879,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.findvideoconferencebyscopeidandscope",{"_index":21908,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(currentuserid",{"_index":21805,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(userid",{"_index":21878,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.getuserroleandgueststatusbyuseridforbbb",{"_index":21920,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.hasexpertrole",{"_index":21903,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.loadscoperessources(scopeid",{"_index":21803,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.sanitizestring(`${user.firstname",{"_index":21922,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.sanitizestring(scopeinfo.title",{"_index":21814,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(schoolid",{"_index":21820,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(user.schoolid",{"_index":21877,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceuc.create(currentuser",{"_index":21860,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.end(currentuser",{"_index":21869,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.getmeetinginfo(currentuser",{"_index":21857,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.join(currentuser",{"_index":21864,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.visibilitysettings",{"_index":4079,"title":{},"body":{"classes/CardResponse.html":{}}}],["this.visitchildren(card",{"_index":17281,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(column",{"_index":17279,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(columnboard",{"_index":17277,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(externaltoolelement",{"_index":17302,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(fileelement",{"_index":17284,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(linkelement",{"_index":17287,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(richtextelement",{"_index":17290,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submission",{"_index":17298,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submissioncontainerelement",{"_index":17293,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildrenasync(card",{"_index":17221,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(column",{"_index":17219,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(columnboard",{"_index":17217,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(externaltoolelement",{"_index":17236,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(fileelement",{"_index":17224,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(linkelement",{"_index":17226,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(richtextelement",{"_index":17228,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submission",{"_index":17232,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submissioncontainerelement",{"_index":17230,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenof(original",{"_index":17152,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["this.welcome",{"_index":2099,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.write",{"_index":9996,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.xmlbuilder",{"_index":5136,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject",{"_index":5153,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject(commonobject",{"_index":5218,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.xpos",{"_index":7564,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.xposition",{"_index":7598,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.year",{"_index":4291,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.ypos",{"_index":7565,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.yposition",{"_index":7599,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.zipbuilder",{"_index":5144,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile('imsmanifest.xml",{"_index":5160,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile(props.href",{"_index":5141,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.tobufferpromise",{"_index":5162,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this['meta_bbb",{"_index":2109,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["those",{"_index":22409,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["though",{"_index":22604,"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":15592,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["threads_enabled=false",{"_index":23611,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["three",{"_index":22519,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thresholddate",{"_index":7930,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["thresholddate.setdate(thresholddate.getdate",{"_index":7931,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["through",{"_index":22374,"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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationReferenceService.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":{},"injectables/ColumnBoardCopyService.html":{},"classes/ColumnResponseMapper.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.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":{},"injectables/FeathersRosterService.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":{},"controllers/FwuLearningContentsController.html":{},"classes/GridElement.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/LessonRule.html":{},"injectables/LocalStrategy.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/OpenGraphProxyService.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"classes/RecursiveCopyVisitor.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":{},"classes/RpcMessageProducer.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/SubmissionRule.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":{},"injectables/ToolPermissionHelper.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["throwerror",{"_index":17390,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["throwifnotmoderator",{"_index":21781,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwifnotmoderator(role",{"_index":21793,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwing",{"_index":23749,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["thrown",{"_index":11351,"title":{},"body":{"classes/GuardAgainst.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["throws",{"_index":2299,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{}}}],["thumbnail",{"_index":9881,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thumbnailrequesttoken",{"_index":9882,"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":1965,"title":{},"body":{"injectables/AuthorizationReferenceService.html":{},"classes/RpcMessageProducer.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ticketsystem.dbildungscloud.de",{"_index":22238,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["time",{"_index":1770,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"injectables/JwtValidationAdapter.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"dependencies.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["timedifference",{"_index":1760,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["timeout",{"_index":3937,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/FilesStorageProducer.html":{},"modules/InterceptorModule.html":{},"injectables/PreviewProducer.html":{},"classes/RpcMessageProducer.html":{},"injectables/TimeoutInterceptor.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timeout(timeoutvalue",{"_index":20258,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeouterror",{"_index":20253,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor",{"_index":13047,"title":{"injectables/TimeoutInterceptor.html":{}},"body":{"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor(timeout",{"_index":13049,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["timeoutms",{"_index":3921,"title":{},"body":{"injectables/CalendarService.html":{}}}],["timeouts",{"_index":23376,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["timeoutvalue",{"_index":20254,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timer",{"_index":17913,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["times",{"_index":2147,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["timestamp",{"_index":15016,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timestamps",{"_index":3694,"title":{},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":3702,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["timestampsresponse",{"_index":3698,"title":{"classes/TimestampsResponse.html":{}},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":1765,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["timouts",{"_index":23364,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tiny",{"_index":22189,"title":{},"body":{"dependencies.html":{}}}],["title",{"_index":1397,"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":{},"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":{},"injectables/ContentElementFactory.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":{},"entities/LessonEntity.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PatchGroupParams.html":{},"classes/RecursiveCopyVisitor.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/TooManyPseudonymsLoggableException.html":{},"classes/UpdateNewsParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/UsersList.html":{},"classes/ValidationError.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":3958,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{}}}],["title(value",{"_index":14329,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["titlea",{"_index":7467,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titleb",{"_index":7469,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titlemap",{"_index":4806,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["titlesmap",{"_index":3360,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["titlesmap[id",{"_index":4903,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["tls",{"_index":7994,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["tmp/config/users",{"_index":23551,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms",{"_index":23560,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"powershell",{"_index":23521,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"setup",{"_index":23522,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"to",{"_index":22959,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["tmpdirpath",{"_index":10337,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["toarray",{"_index":5083,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/DatabaseManagementService.html":{}}}],["toboardid",{"_index":14920,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["tocardid",{"_index":14924,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["tocolumnid",{"_index":14914,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["todo",{"_index":1852,"title":{"todo.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationReferenceModule.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":{},"injectables/ColumnBoardCopyService.html":{},"modules/CommonToolModule.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":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"injectables/RecursiveDeleteVisitor.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":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.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":{},"classes/UsersList.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["todos",{"_index":23737,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["together",{"_index":10687,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["toggleuserloginmigrationuc",{"_index":20266,"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":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"controllers/FileSecurityController.html":{},"interfaces/IShareTokenProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/JwtExtractor.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginResponse.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":18626,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.body.params.ts",{"_index":18601,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:13",{"_index":18610,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:21",{"_index":18608,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:32",{"_index":18606,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:41",{"_index":18613,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.controller",{"_index":18865,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.controller.ts",{"_index":18620,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:40",{"_index":18629,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:67",{"_index":18643,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:86",{"_index":18639,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.do",{"_index":12257,"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":18682,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.factory.ts:9",{"_index":18685,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.ts",{"_index":18669,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:27",{"_index":18675,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:29",{"_index":18674,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:31",{"_index":18672,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:33",{"_index":18670,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.dto.ts",{"_index":15487,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:2",{"_index":15490,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:4",{"_index":15491,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:6",{"_index":15489,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.entity",{"_index":18732,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.entity.ts",{"_index":12251,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["token.entity.ts:19",{"_index":18598,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:22",{"_index":18597,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:25",{"_index":18594,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:32",{"_index":18595,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:35",{"_index":18593,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:43",{"_index":18596,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.repo",{"_index":18772,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.repo.ts",{"_index":18723,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:17",{"_index":18726,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:9",{"_index":18730,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.request.ts",{"_index":1517,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:10",{"_index":1526,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:12",{"_index":1522,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:4",{"_index":1523,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:6",{"_index":1524,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:8",{"_index":1527,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.response.ts",{"_index":16195,"title":{},"body":{"interfaces/OauthTokenResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["token.response.ts:12",{"_index":18747,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:15",{"_index":18746,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:18",{"_index":18745,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:4",{"_index":18744,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.service",{"_index":15829,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["token.service.ts",{"_index":12621,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:12",{"_index":12627,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:16",{"_index":18762,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:20",{"_index":12631,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:25",{"_index":18766,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:41",{"_index":12629,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:42",{"_index":18768,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:50",{"_index":18770,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:51",{"_index":12633,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:70",{"_index":18764,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.ts",{"_index":11060,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{}}}],["token.uc.ts",{"_index":18787,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:131",{"_index":18802,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:139",{"_index":18803,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:150",{"_index":18805,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:166",{"_index":18801,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:192",{"_index":18795,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:204",{"_index":18797,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:225",{"_index":18813,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:231",{"_index":18799,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:24",{"_index":18793,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:39",{"_index":18807,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:67",{"_index":18811,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:89",{"_index":18809,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.url.params.ts",{"_index":18856,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token.url.params.ts:11",{"_index":18858,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token_endpoint_auth_method",{"_index":9371,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["token_type",{"_index":13055,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["token_use",{"_index":13056,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["tokenauthmethod",{"_index":15612,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokendto",{"_index":15452,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.accesstoken",{"_index":15513,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.idtoken",{"_index":15512,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokenendpoint",{"_index":11572,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["tokenendpointauthmethod",{"_index":7267,"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":7285,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["tokengenerator",{"_index":18761,"title":{"injectables/TokenGenerator.html":{}},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/TokenGenerator.html":{}}}],["tokenrequestmapper",{"_index":15423,"title":{"classes/TokenRequestMapper.html":{}},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["tokenrequestmapper.createauthenticationcodegranttokenrequestpayload",{"_index":15485,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestmapper.maptokenresponsetodto(responsetoken",{"_index":15453,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestpayload",{"_index":15484,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokens",{"_index":15605,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokenurl",{"_index":12418,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["took",{"_index":18376,"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":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"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":{},"controllers/PseudonymController.html":{},"classes/PseudonymScope.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tool'})@apifoundresponse({description",{"_index":20336,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tool'})@apiokresponse({description",{"_index":20647,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tool'})@isstring()@isoptional",{"_index":9268,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["tool.'})@apiokresponse({description",{"_index":20452,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool.config",{"_index":16000,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.config.clientid",{"_index":9332,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.config.skipconsent",{"_index":16001,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.do.ts",{"_index":5696,"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":5707,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:23",{"_index":18079,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:24",{"_index":5703,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:25",{"_index":18082,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:26",{"_index":5704,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:27",{"_index":18081,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:28",{"_index":5705,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:29",{"_index":18080,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:30",{"_index":5702,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{}}}],["tool.do.ts:31",{"_index":18083,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:32",{"_index":8488,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:33",{"_index":18078,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:34",{"_index":8485,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:36",{"_index":8484,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:38",{"_index":8482,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:40",{"_index":8487,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:41",{"_index":5709,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:42",{"_index":8483,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:44",{"_index":8486,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:45",{"_index":18084,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:46",{"_index":8481,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:62",{"_index":8489,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:66",{"_index":8493,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:70",{"_index":8491,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.entity",{"_index":8661,"title":{},"body":{"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{}}}],["tool.entity.ts",{"_index":5770,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:13",{"_index":8690,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:16",{"_index":8693,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:17",{"_index":18090,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:19",{"_index":8688,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:20",{"_index":18088,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:22",{"_index":8687,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:23",{"_index":18089,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:24",{"_index":5779,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:25",{"_index":8685,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:26",{"_index":18091,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:27",{"_index":5772,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:28",{"_index":8692,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:30",{"_index":5774,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:31",{"_index":8686,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:33",{"_index":5775,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:34",{"_index":8691,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:36",{"_index":5777,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:37",{"_index":8694,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:39",{"_index":5780,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.factory.ts",{"_index":5793,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:100",{"_index":8724,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:107",{"_index":8723,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:29",{"_index":15539,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["tool.factory.ts:65",{"_index":7265,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["tool.factory.ts:7",{"_index":18096,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:86",{"_index":8726,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:9",{"_index":5796,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["tool.factory.ts:93",{"_index":8725,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.id",{"_index":8540,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["tool.ishidden",{"_index":8537,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tool.logo",{"_index":8815,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["tool.module",{"_index":20317,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool.module.ts",{"_index":5338,"title":{},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/LtiToolModule.html":{},"modules/SchoolExternalToolModule.html":{}}}],["tool.name",{"_index":9337,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.oauthclientid",{"_index":11552,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.repo.mapper.ts",{"_index":9022,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:107",{"_index":9034,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:114",{"_index":9054,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:123",{"_index":9050,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:136",{"_index":9046,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:154",{"_index":9039,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:17",{"_index":9048,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:172",{"_index":9044,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:182",{"_index":9041,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:48",{"_index":9037,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:55",{"_index":9057,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:64",{"_index":9052,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:77",{"_index":9047,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.ts",{"_index":5839,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:114",{"_index":5859,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:125",{"_index":5857,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:14",{"_index":8996,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:19",{"_index":9008,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:24",{"_index":18134,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:25",{"_index":5844,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:27",{"_index":9003,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:30",{"_index":5871,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:32",{"_index":18130,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:36",{"_index":9001,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:38",{"_index":5850,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:41",{"_index":18132,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:45",{"_index":5854,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:50",{"_index":18126,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:54",{"_index":8999,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:55",{"_index":18128,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:64",{"_index":18123,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:70",{"_index":5847,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.response",{"_index":6020,"title":{},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{}}}],["tool.response.ts",{"_index":5930,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:10",{"_index":5939,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:13",{"_index":5933,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:16",{"_index":5934,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:19",{"_index":5935,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:22",{"_index":5938,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:25",{"_index":5940,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:28",{"_index":5932,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:31",{"_index":9210,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["tool.response.ts:7",{"_index":5936,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.rule.ts",{"_index":5983,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:12",{"_index":5986,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:18",{"_index":5985,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:9",{"_index":5984,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.scope",{"_index":5877,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.scope.ts",{"_index":5990,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:12",{"_index":9258,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:13",{"_index":18185,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:15",{"_index":6011,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:19",{"_index":9260,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:22",{"_index":6005,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:30",{"_index":6007,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:5",{"_index":9262,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:6",{"_index":18184,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:7",{"_index":6009,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.secret",{"_index":11553,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.service",{"_index":6106,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ToolReferenceService.html":{}}}],["tool.service.ts",{"_index":5345,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{},"injectables/LtiToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:10",{"_index":5349,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:103",{"_index":9292,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:11",{"_index":6036,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:118",{"_index":9305,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:131",{"_index":9309,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:143",{"_index":9288,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:16",{"_index":9286,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:17",{"_index":6034,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:22",{"_index":18205,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:23",{"_index":6038,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:26",{"_index":5354,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:28",{"_index":9290,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:29",{"_index":6028,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:32",{"_index":18202,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:39",{"_index":6030,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:40",{"_index":18200,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:43",{"_index":6032,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:44",{"_index":9302,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:51",{"_index":9299,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:52",{"_index":18198,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:6",{"_index":14740,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:60",{"_index":18196,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:64",{"_index":18207,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:78",{"_index":9293,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:8",{"_index":6026,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:9",{"_index":14742,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:93",{"_index":9295,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:98",{"_index":9297,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.skipconsent",{"_index":15999,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.types",{"_index":5874,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool.uc.ts",{"_index":6049,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:10",{"_index":9393,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:101",{"_index":6069,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:11",{"_index":18227,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:115",{"_index":6067,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:124",{"_index":6065,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:18",{"_index":9395,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:19",{"_index":6058,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:28",{"_index":6060,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:30",{"_index":18229,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:31",{"_index":9405,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:47",{"_index":18232,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:52",{"_index":9401,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:56",{"_index":6071,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:59",{"_index":18231,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:63",{"_index":9403,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:70",{"_index":9397,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:71",{"_index":18236,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:77",{"_index":9399,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:79",{"_index":18238,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:92",{"_index":6062,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/context",{"_index":5818,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["tool/controller",{"_index":20309,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/controller/dto",{"_index":5837,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["tool/controller/dto/context",{"_index":5758,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/custom",{"_index":7253,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{}}}],["tool/controller/dto/request/config/basic",{"_index":2581,"title":{},"body":{"classes/BasicToolConfigParams.html":{}}}],["tool/controller/dto/request/config/external",{"_index":8500,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["tool/controller/dto/request/config/lti11",{"_index":14579,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/config/oauth2",{"_index":15527,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/context",{"_index":5805,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{}}}],["tool/controller/dto/request/custom",{"_index":7323,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["tool/controller/dto/request/external",{"_index":8615,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SortExternalToolParams.html":{}}}],["tool/controller/dto/request/school",{"_index":18101,"title":{},"body":{"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{}}}],["tool/controller/dto/response/config/basic",{"_index":2591,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/external",{"_index":8506,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/lti11",{"_index":14598,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/oauth2",{"_index":15540,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["tool/controller/dto/response/context",{"_index":5730,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/custom",{"_index":7347,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["tool/controller/dto/response/external",{"_index":9209,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/response/school",{"_index":18086,"title":{},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/school",{"_index":18100,"title":{},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["tool/controller/dto/tool",{"_index":18159,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["tool/controller/tool",{"_index":20310,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolReferenceController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/tool.controller.ts",{"_index":20429,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:101",{"_index":20449,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:120",{"_index":20458,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:142",{"_index":20442,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:160",{"_index":20454,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:53",{"_index":20435,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:73",{"_index":20446,"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/ContextExternalToolUc.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":{},"injectables/FeathersRosterService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.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/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["tool/domain/config/basic",{"_index":2560,"title":{},"body":{"classes/BasicToolConfig.html":{}}}],["tool/domain/config/external",{"_index":8498,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["tool/domain/config/lti11",{"_index":14570,"title":{},"body":{"classes/Lti11ToolConfig.html":{}}}],["tool/domain/config/oauth2",{"_index":15517,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["tool/domain/context",{"_index":5695,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{}}}],["tool/domain/external",{"_index":8478,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["tool/domain/school",{"_index":18076,"title":{},"body":{"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["tool/domain/tool",{"_index":20631,"title":{},"body":{"classes/ToolReference.html":{}}}],["tool/entity",{"_index":5782,"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":{},"classes/RecursiveSaveVisitor.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool/entity/config/basic",{"_index":2571,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["tool/entity/config/external",{"_index":8503,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["tool/entity/config/lti11",{"_index":14591,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["tool/entity/config/oauth2",{"_index":15535,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["tool/entity/context",{"_index":5769,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["tool/entity/custom",{"_index":7231,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["tool/entity/external",{"_index":8681,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool/entity/school",{"_index":12172,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool/external",{"_index":8842,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["tool/loggable/external",{"_index":8737,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["tool/lti",{"_index":14686,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["tool/mapper",{"_index":20313,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/mapper/context",{"_index":5909,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["tool/mapper/external",{"_index":9107,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["tool/mapper/school",{"_index":18147,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["tool/mapper/tool",{"_index":20360,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["tool/school",{"_index":18107,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["tool/service",{"_index":6074,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.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/ToolReferenceService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["tool/service/context",{"_index":5724,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["tool/service/external",{"_index":8510,"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":14738,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool/service/school",{"_index":18187,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["tool/service/tool",{"_index":20684,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["tool/uc",{"_index":20312,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/uc/context",{"_index":6048,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/uc/dto/context",{"_index":5873,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool/uc/dto/school",{"_index":18135,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool/uc/external",{"_index":8558,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool/uc/school",{"_index":18221,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool/uc/tool",{"_index":20689,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tool1",{"_index":5355,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool1.getversion",{"_index":5360,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2",{"_index":5353,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2.getversion",{"_index":5361,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool_clientid_duplicate",{"_index":9463,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientid_immutable",{"_index":9459,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientsecret_missing",{"_index":9461,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_param_auto_requires_global",{"_index":8889,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_regex",{"_index":8899,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_required",{"_index":8886,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_duplicate",{"_index":5404,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regex_invalid",{"_index":8896,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regexcomment",{"_index":8893,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_required",{"_index":5418,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_param_type_mismatch",{"_index":5421,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_value_regex",{"_index":5426,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_secret_missing",{"_index":9464,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_status_outdated",{"_index":20751,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["tool_type_immutable",{"_index":9455,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_version_mismatch",{"_index":18256,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["tool_with_name_exists",{"_index":6122,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["toolapimodule",{"_index":18509,"title":{"modules/ToolApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["toolconfigmodule",{"_index":8836,"title":{"modules/ToolConfigModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolconfigtype",{"_index":2565,"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":2568,"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":7293,"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":7289,"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":20533,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping[configtype",{"_index":20541,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfiguration",{"_index":12568,"title":{"classes/ToolConfiguration.html":{}},"body":{"interfaces/IToolFeatures.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolconfiguration.toolfeatures",{"_index":20319,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["toolconfigurationcontroller",{"_index":20304,"title":{"controllers/ToolConfigurationController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper",{"_index":20342,"title":{"classes/ToolConfigurationMapper.html":{}},"body":{"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20353,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":20359,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":20349,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":20356,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationstatus",{"_index":5350,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.latest",{"_index":5358,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.outdated",{"_index":5359,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatus.unknown",{"_index":20757,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse",{"_index":18158,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.latest",{"_index":20755,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.outdated",{"_index":20756,"title":{},"body":{"classes/ToolStatusResponseMapper.html":{}}}],["toolconfigurationstatusresponse.unknown",{"_index":18181,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolcontextcontroller",{"_index":20306,"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":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["toolcontexttype.board_element",{"_index":5905,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ToolPermissionHelper.html":{}}}],["toolcontexttype.course",{"_index":316,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/FeathersRosterService.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["toolcontroller",{"_index":20308,"title":{"controllers/ToolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["toolfeatures",{"_index":8519,"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":8776,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersRosterService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["toolidsinuse",{"_index":8530,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["toolidsinuse.includes(tool.id",{"_index":8541,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolinfo",{"_index":20371,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos",{"_index":20368,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos.map",{"_index":20381,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["tooling",{"_index":23384,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["toollaunchcontroller",{"_index":20303,"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/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/OAuth2ToolLaunchStrategy.html":{}}}],["toollaunchdatado.properties.filter",{"_index":239,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdatatype",{"_index":20512,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.basic",{"_index":20534,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.lti11",{"_index":20535,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.oauth2",{"_index":20536,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping",{"_index":20537,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping[launchdatatype",{"_index":20542,"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":20591,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoollaunchdatatype(externaltool.config.type",{"_index":273,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchmapper.maptotoollaunchrequestresponse(toollaunchrequest",{"_index":20507,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchmodule",{"_index":20543,"title":{"modules/ToolLaunchModule.html":{}},"body":{"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toollaunchparams",{"_index":20493,"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/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchrequestresponse",{"_index":20503,"title":{"classes/ToolLaunchRequestResponse.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["toollaunchrequestresponse})@apiunauthorizedresponse({description",{"_index":20496,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchservice",{"_index":20548,"title":{"injectables/ToolLaunchService.html":{}},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchuc",{"_index":20301,"title":{"injectables/ToolLaunchUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["toolmodule",{"_index":1954,"title":{"modules/ToolModule.html":{}},"body":{"modules/AuthorizationReferenceModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolpermissionhelper",{"_index":6056,"title":{"injectables/ToolPermissionHelper.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolref",{"_index":8553,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolref.externaltool.ishidden",{"_index":8555,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolreference",{"_index":5957,"title":{"classes/ToolReference.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreference.contexttoolid",{"_index":5976,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.displayname",{"_index":5977,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.logourl",{"_index":5978,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreference.openinnewtab",{"_index":5980,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.status",{"_index":20640,"title":{},"body":{"classes/ToolReference.html":{}}}],["toolreferencecontroller",{"_index":20307,"title":{"controllers/ToolReferenceController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse",{"_index":20654,"title":{"classes/ToolReferenceListResponse.html":{}},"body":{"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{}}}],["toolreferencelistresponse(toolreferenceresponses",{"_index":20662,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencelistresponse})@apiforbiddenresponse({description",{"_index":20652,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferencemapper",{"_index":20664,"title":{"classes/ToolReferenceMapper.html":{}},"body":{"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceService.html":{}}}],["toolreferencemapper.maptotoolreference",{"_index":20688,"title":{},"body":{"injectables/ToolReferenceService.html":{}}}],["toolreferenceresponse",{"_index":5959,"title":{"classes/ToolReferenceResponse.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.contexttoolid",{"_index":20679,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.displayname",{"_index":20681,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.logourl",{"_index":20680,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.openinnewtab",{"_index":20682,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.status",{"_index":20683,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponses",{"_index":5972,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferenceresponse})@apiforbiddenresponse({description",{"_index":20648,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["toolreferences",{"_index":5962,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolReferenceController.html":{}}}],["toolreferences.map((toolreference",{"_index":5973,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolreferenceservice",{"_index":5817,"title":{"injectables/ToolReferenceService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreferencespromises",{"_index":20702,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull",{"_index":20704,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull.filter",{"_index":20707,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceuc",{"_index":20302,"title":{"injectables/ToolReferenceUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolReferenceController.html":{},"injectables/ToolReferenceUc.html":{}}}],["tools",{"_index":6064,"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":20325,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools.data",{"_index":9333,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.data.map",{"_index":20469,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools.data.map(async",{"_index":9328,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.filter((tool",{"_index":6096,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tools.map(async",{"_index":8611,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tools.total",{"_index":20471,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/:contextexternaltoolid",{"_index":20656,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid')@apioperation({summary",{"_index":20646,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/:contextexternaltoolid/configuration",{"_index":20334,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/:schoolexternaltoolid/configuration",{"_index":20340,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/context",{"_index":20385,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["tools/external",{"_index":20430,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/school",{"_index":20711,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["tools/tool",{"_index":20642,"title":{},"body":{"controllers/ToolReferenceController.html":{}}}],["tools/{id}/logo",{"_index":8596,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["toolschoolcontroller",{"_index":20305,"title":{"controllers/ToolSchoolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["toolstatusoutdatedloggableexception",{"_index":20586,"title":{"classes/ToolStatusOutdatedLoggableException.html":{}},"body":{"injectables/ToolLaunchService.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolstatusoutdatedloggableexception(userid",{"_index":20600,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toolstatusresponsemapper",{"_index":5963,"title":{"classes/ToolStatusResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolStatusResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(schoolexternaltool.status",{"_index":18180,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolstatusresponsemapper.maptoresponse(toolreference.status",{"_index":5981,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["toolswithpermission",{"_index":6092,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["toolswithschooltool",{"_index":8547,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolswithschooltool.filter",{"_index":8552,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tooltemplateinfo.externaltool",{"_index":8604,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["tooltemplateinfo.externaltool.logourl",{"_index":8605,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["toolvalidationservice",{"_index":9392,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["toolversion",{"_index":5352,"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":{}}}],["toomanypseudonymsloggableexception",{"_index":20290,"title":{"classes/TooManyPseudonymsLoggableException.html":{}},"body":{"classes/TooManyPseudonymsLoggableException.html":{}}}],["toomodule",{"_index":1960,"title":{},"body":{"modules/AuthorizationReferenceModule.html":{}}}],["top",{"_index":19659,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["toparams",{"_index":2245,"title":{},"body":{"injectables/BBBService.html":{}}}],["toparams(object",{"_index":2281,"title":{},"body":{"injectables/BBBService.html":{}}}],["topic",{"_index":23565,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["toplevel",{"_index":13404,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["toposition",{"_index":4045,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["toseedfolder",{"_index":7822,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["tostring",{"_index":1140,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["total",{"_index":1008,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BaseDORepo.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/ExternalToolPseudonymRepo.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":21537,"title":{},"body":{"injectables/UserRepo.html":{}}}],["total[0].count",{"_index":21538,"title":{},"body":{"injectables/UserRepo.html":{}}}],["totalitems",{"_index":11330,"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":11347,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["touching",{"_index":23716,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["toupdate",{"_index":9303,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{}}}],["toupdate.config",{"_index":9348,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.config.clientid",{"_index":9350,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.name",{"_index":9347,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdateoauthclient",{"_index":9308,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tovideoconferenceinforesponse",{"_index":21936,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceinforesponse(videoconferenceinfo",{"_index":21940,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse",{"_index":21937,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse(videoconferencejoin",{"_index":21942,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions",{"_index":21938,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions(params",{"_index":21944,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse",{"_index":21939,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse(state",{"_index":21946,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["trace",{"_index":12084,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["trade",{"_index":22626,"title":{},"body":{"license.html":{}}}],["trademark",{"_index":22625,"title":{},"body":{"license.html":{}}}],["trademarks",{"_index":22627,"title":{},"body":{"license.html":{}}}],["transaction",{"_index":22581,"title":{},"body":{"license.html":{}}}],["transfer",{"_index":11636,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{}}}],["transferred",{"_index":22583,"title":{},"body":{"license.html":{}}}],["transferring",{"_index":22680,"title":{},"body":{"license.html":{}}}],["transform",{"_index":5159,"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":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["transform:true",{"_index":10866,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transformer",{"_index":5835,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FilesStorageMapper.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"dependencies.html":{}}}],["transformoptions",{"_index":10864,"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":23562,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["transitioning",{"_index":23262,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["translate",{"_index":22221,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["transmission",{"_index":22544,"title":{},"body":{"license.html":{}}}],["transparent",{"_index":18920,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["transports",{"_index":14437,"title":{},"body":{"modules/LoggerModule.html":{}}}],["trash",{"_index":17846,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["treated",{"_index":578,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["treating",{"_index":23469,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["treaty",{"_index":22453,"title":{},"body":{"license.html":{}}}],["tries",{"_index":23319,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["trigger",{"_index":23528,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["trim",{"_index":13020,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"injectables/UserRepo.html":{}}}],["trimslash",{"_index":257,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trimslash.split",{"_index":260,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trivial",{"_index":23082,"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":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.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":{},"classes/CurrentUserMapper.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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"classes/ExternalToolElementResponse.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalStateEntity.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":{},"classes/GroupIdParams.html":{},"injectables/GroupRepo.html":{},"injectables/GroupRule.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/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":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":{},"interfaces/OauthCurrentUser.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":{},"injectables/PreviewGeneratorService.html":{},"classes/PreviewParams.html":{},"classes/PseudonymParams.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":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"entities/SystemEntity.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/UserLoginMigrationEntity.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/UsersList.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["true})@apiproperty({description",{"_index":4051,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{}}}],["true})@apiproperty({oneof",{"_index":20765,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["true})@apiproperty({required",{"_index":5493,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["true})@enum",{"_index":19337,"title":{},"body":{"entities/SystemEntity.html":{}}}],["true})@index",{"_index":4262,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["true})@isarray()@isoptional()@apipropertyoptional({type",{"_index":5829,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["true})@ismongoid",{"_index":22032,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["true})@isoptional()@apiproperty({description",{"_index":5437,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["true})@isoptional()@apipropertyoptional({required",{"_index":6980,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["true})@isoptional()@isenum(filtermatchtype",{"_index":10670,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@singlevaluetoarraytransformer()@isarray",{"_index":10671,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@unique({options",{"_index":6499,"title":{},"body":{"entities/Course.html":{},"entities/ImportUser.html":{},"entities/LtiTool.html":{}}}],["try",{"_index":784,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AntivirusService.html":{},"injectables/BoardCopyService.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/TaskCopyUC.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.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":21326,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["trybuildtoolreference",{"_index":20692,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["trybuildtoolreference(userid",{"_index":20700,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tryfindbyid",{"_index":11167,"title":{},"body":{"injectables/GroupService.html":{}}}],["tryfindbyid(id",{"_index":11178,"title":{},"body":{"injectables/GroupService.html":{}}}],["trygetprevieworgenerate",{"_index":16698,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trygetprevieworgenerate(params",{"_index":16709,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trying",{"_index":6586,"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":{},"classes/UsersList.html":{}}}],["ts",{"_index":1174,"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":4310,"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":18556,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tvalue",{"_index":12709,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["two",{"_index":13831,"title":{},"body":{"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typ",{"_index":13148,"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/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":{},"classes/AuthenticationValues.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationReferenceService.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/BoardDoCopyService.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":{},"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/ClassInfoDto.html":{},"classes/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSortParams.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":{},"injectables/ColumnBoardCopyService.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":{},"injectables/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":{},"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/ExternalSourceResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContent.html":{},"classes/ExternalToolElementContentBody.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/ExternalToolElementResponse.html":{},"classes/ExternalToolElementResponseMapper.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":{},"injectables/FeathersRosterService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalStateEntity.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":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupIdParams.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.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/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/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/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.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":{},"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":{},"interfaces/OauthCurrentUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginResponse.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":{},"injectables/OpenGraphProxyService.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":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewConfig.html":{},"interfaces/PreviewFileOptions.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewGeneratorBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewModuleConfig.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"injectables/PreviewProducer.html":{},"interfaces/PreviewResponseMessage.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":{},"controllers/PseudonymController.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PseudonymMapper.html":{},"classes/PseudonymParams.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveCopyVisitor.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/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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":{},"classes/RpcMessageProducer.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":{},"interfaces/ScanResult.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"injectables/SchoolSpecificFileCopyServiceFactory.html":{},"classes/SchoolSpecificFileCopyServiceImpl.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYearEntity.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/SortHelper.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":{},"classes/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.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/TooManyPseudonymsLoggableException.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":{},"controllers/ToolReferenceController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceService.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/ToolStatusResponseMapper.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":{},"interfaces/UserData.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"entities/UserLoginMigrationEntity.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":{},"interfaces/UserMetdata.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/UsersList.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":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.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":9826,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["type.enum",{"_index":1530,"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":17102,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.factory.ts:11",{"_index":17106,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.includes(bn.type",{"_index":3286,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["type.interface.ts",{"_index":11962,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["type.mapper.ts",{"_index":14802,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:6",{"_index":14805,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.query.param.ts",{"_index":16480,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:12",{"_index":16488,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:16",{"_index":16489,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:8",{"_index":16486,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.response",{"_index":11102,"title":{},"body":{"classes/GroupResponse.html":{}}}],["typecheckers",{"_index":5363,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["typedefinitions",{"_index":23128,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["typemapping",{"_index":9163,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/GroupResponseMapper.html":{}}}],["typemapping[customparameterdo.type",{"_index":9252,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterparam.type",{"_index":9202,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["typemapping[resolvedgroup.type",{"_index":11137,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["typeof",{"_index":1695,"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/SortHelper.html":{},"classes/StringValidator.html":{},"classes/TestApiClient.html":{}}}],["types",{"_index":208,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AuthorizableObject.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":{},"injectables/ContentElementFactory.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"classes/DomainObject.html":{},"classes/ExternalToolElement.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FilesStorageMapper.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/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"classes/LinkElement.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"interfaces/Loggable.html":{},"classes/LoggingUtils.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":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RoleReference.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.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/SystemEntity.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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["types.enum",{"_index":10027,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["types.get(type",{"_index":10562,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(filerecordparenttype.boardnode",{"_index":10560,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.course",{"_index":10551,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.lesson",{"_index":10556,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.school",{"_index":10554,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.submission",{"_index":10558,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.task",{"_index":10549,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.user",{"_index":10552,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(sharetokencontexttype.school",{"_index":18617,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["types.set(sharetokenparenttype.course",{"_index":14806,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.lesson",{"_index":18711,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.task",{"_index":18712,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types/board",{"_index":3596,"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":22065,"title":{},"body":{"dependencies.html":{}}}],["types/connect",{"_index":22067,"title":{},"body":{"dependencies.html":{}}}],["types/copy.types",{"_index":6359,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["types/entity",{"_index":12446,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/gm",{"_index":22069,"title":{},"body":{"dependencies.html":{}}}],["types/ldapjs",{"_index":22071,"title":{},"body":{"dependencies.html":{}}}],["types/news.types",{"_index":6851,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["types/redis",{"_index":22073,"title":{},"body":{"dependencies.html":{}}}],["types/room",{"_index":8094,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["types/task.types",{"_index":12447,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/xml2js",{"_index":22075,"title":{},"body":{"dependencies.html":{}}}],["typescript",{"_index":1190,"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":{},"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":22564,"title":{},"body":{"license.html":{}}}],["typing",{"_index":9625,"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":6598,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["u.userid",{"_index":10932,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["u.userid.id",{"_index":20133,"title":{},"body":{"injectables/TeamService.html":{}}}],["uc",{"_index":2727,"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/GroupApiModule.html":{},"controllers/GroupController.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":{},"modules/PseudonymApiModule.html":{},"controllers/PseudonymController.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":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolReferenceController.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.mapper",{"_index":11222,"title":{},"body":{"injectables/GroupUc.html":{}}}],["uc.mapper.ts",{"_index":11277,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:27",{"_index":11282,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:44",{"_index":11286,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.mapper.ts:9",{"_index":11284,"title":{},"body":{"classes/GroupUcMapper.html":{}}}],["uc.ts",{"_index":23183,"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":3493,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["uc/collaborative",{"_index":4621,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["uc/course",{"_index":6620,"title":{},"body":{"controllers/CourseController.html":{},"controllers/RoomsController.html":{}}}],["uc/course.uc",{"_index":6618,"title":{},"body":{"controllers/CourseController.html":{}}}],["uc/dashboard.uc",{"_index":7379,"title":{},"body":{"controllers/DashboardController.html":{}}}],["uc/database",{"_index":7807,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["uc/dto",{"_index":1744,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"controllers/GroupController.html":{},"classes/GroupResponseMapper.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["uc/dto/class",{"_index":4351,"title":{},"body":{"classes/ClassInfoResponse.html":{}}}],["uc/dto/context",{"_index":5919,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"controllers/ToolContextController.html":{}}}],["uc/dto/oauth",{"_index":13944,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["uc/dto/school",{"_index":18153,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["uc/dto/user",{"_index":21183,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["uc/dto/user.dto",{"_index":21605,"title":{},"body":{"injectables/UserService.html":{}}}],["uc/element.uc",{"_index":2728,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["uc/fwu",{"_index":10722,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["uc/hydra",{"_index":16117,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["uc/keycloak",{"_index":11592,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["uc/lesson",{"_index":17702,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/login.uc",{"_index":1513,"title":{},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["uc/news.uc",{"_index":14969,"title":{},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["uc/oauth",{"_index":15889,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["uc/rooms.uc",{"_index":17703,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/submission",{"_index":2729,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["uc/system.uc",{"_index":19294,"title":{},"body":{"controllers/SystemController.html":{}}}],["uc/task",{"_index":19567,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/task.uc",{"_index":19568,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/user",{"_index":12780,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"controllers/UserMigrationController.html":{}}}],["ucs",{"_index":13861,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["ui",{"_index":22185,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["ui_locales",{"_index":16268,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["ui_use_real_name=true",{"_index":23610,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["uid",{"_index":12035,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["uid=(.+?),/i",{"_index":12033,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uid=[^,]*${escapedloginname",{"_index":13032,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs",{"_index":12826,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["uid=loginname",{"_index":12031,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uk",{"_index":12589,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["um",{"_index":4824,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unable",{"_index":3049,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["unambiguous",{"_index":1437,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["unarchivegroup(groupname",{"_index":1223,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["unauthorized",{"_index":20505,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized'})@apiforbiddenresponse({description",{"_index":20497,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized_exception",{"_index":20764,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception",{"_index":2004,"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":9609,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('missing",{"_index":9602,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('no",{"_index":15515,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["unauthorizedexception('oauth",{"_index":16149,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unauthorizedexception('unauthorized",{"_index":13181,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["unauthorizedexception('user",{"_index":13776,"title":{},"body":{"injectables/LdapService.html":{}}}],["unauthorizedexception(`invalid",{"_index":16154,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["unauthorizedexception(`school",{"_index":13816,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["unauthorizedloggableexception",{"_index":1741,"title":{"classes/UnauthorizedLoggableException.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedloggableexception(username",{"_index":1748,"title":{},"body":{"injectables/AuthenticationService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["und",{"_index":4842,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["undefined",{"_index":145,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountServiceDb.html":{},"injectables/AntivirusService.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/ClassInfoResponse.html":{},"classes/ClassInfoSearchListResponse.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ContentElementUpdateVisitor.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/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.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/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GuardAgainst.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICleanOptions.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":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LinkElementContentBody.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponse-1.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":{},"injectables/OpenGraphProxyService.html":{},"interfaces/Options.html":{},"classes/PreviewBuilder.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PseudonymScope.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.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/SortHelper.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionsResponse.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":{},"controllers/UserLoginMigrationController.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserScope.html":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["undefined})@apiproperty({oneof",{"_index":8620,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["undefined})@apiresponse({status",{"_index":3982,"title":{},"body":{"controllers/CardController.html":{},"controllers/ElementController.html":{}}}],["undefined})@isboolean()@isoptional",{"_index":21760,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["undefined})@property({nullable",{"_index":10015,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["undefined})@type(undefined",{"_index":5830,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["undefined})@userequestcontext",{"_index":10503,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["under",{"_index":22210,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["understand",{"_index":23301,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["unexpected",{"_index":23374,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unfamiliar",{"_index":23310,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unhandled",{"_index":8304,"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":{},"classes/UsersList.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["unique()@property",{"_index":8689,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["uniqueids",{"_index":12519,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniqueids.length",{"_index":12522,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniquemember",{"_index":12403,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["uniquememberids",{"_index":12318,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["uniquenames",{"_index":5400,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquenames.size",{"_index":5402,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquepermissions",{"_index":12169,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["uniquesystemids",{"_index":11261,"title":{},"body":{"injectables/GroupUc.html":{}}}],["uniquesystemids.map(async",{"_index":11264,"title":{},"body":{"injectables/GroupUc.html":{}}}],["unit",{"_index":22927,"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":23463,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["universal",{"_index":22191,"title":{},"body":{"dependencies.html":{}}}],["unknown",{"_index":1345,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BoardRepo.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyService.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.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":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"classes/LoggingUtils.html":{},"injectables/NewsUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewGeneratorConsumer.html":{},"injectables/PreviewProducer.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RpcMessageProducer.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.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":11149,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:4",{"_index":11152,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:7",{"_index":11154,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknownerror",{"_index":10829,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["unless",{"_index":22570,"title":{},"body":{"license.html":{}}}],["unlimited",{"_index":534,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["unmarkfordelete",{"_index":10078,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["unmarkoutdatedusers",{"_index":18318,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmarkoutdatedusers(schoolid",{"_index":18342,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmodified",{"_index":22353,"title":{},"body":{"license.html":{}}}],["unnecessary",{"_index":22440,"title":{},"body":{"license.html":{}}}],["unnessasary",{"_index":20627,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["unpacking",{"_index":22600,"title":{},"body":{"license.html":{}}}],["unprocessableentityexception",{"_index":9058,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.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":{},"injectables/SubmissionItemService.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception('cannot",{"_index":15282,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["unprocessableentityexception('current",{"_index":16190,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unprocessableentityexception(`could",{"_index":9336,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`requested",{"_index":16218,"title":{},"body":{"injectables/OauthUc.html":{}}}],["unprocessableentityexception(`school",{"_index":18367,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["unprocessableentityexception(`system",{"_index":21473,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception(`the",{"_index":9354,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`unknown",{"_index":9067,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["unprocessableentityexception(errortype.preview_not_possible",{"_index":16722,"title":{},"body":{"injectables/PreviewService.html":{}}}],["unpublish",{"_index":4883,"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":10684,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["unreachable",{"_index":1130,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["unresponsive",{"_index":17919,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["uns",{"_index":4856,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unsafe",{"_index":1192,"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":3712,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["unter",{"_index":4860,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["until",{"_index":8178,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SanisResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"license.html":{}}}],["untildate",{"_index":6478,"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":{},"classes/UsersList.html":{}}}],["untildateinfuture",{"_index":6921,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["unused",{"_index":2614,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/TestBootstrapConsole.html":{}}}],["unusedtools",{"_index":8551,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unusedtools.filter",{"_index":8554,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unwanted",{"_index":19841,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["up",{"_index":14107,"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":2925,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/ColumnController.html":{},"injectables/ContentElementService.html":{},"injectables/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":5603,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update(id",{"_index":15171,"title":{},"body":{"injectables/NewsUc.html":{}}}],["update(submissionitem",{"_index":19099,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["update(urlparams",{"_index":14962,"title":{},"body":{"controllers/NewsController.html":{}}}],["update.params.ts",{"_index":9420,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["update.params.ts:16",{"_index":20023,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:17",{"_index":9422,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:21",{"_index":9425,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:22",{"_index":14607,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:25",{"_index":20026,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:26",{"_index":9428,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:27",{"_index":14606,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:31",{"_index":9424,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:33",{"_index":20027,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:35",{"_index":14605,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:36",{"_index":15543,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:39",{"_index":14604,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:40",{"_index":15542,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:41",{"_index":20024,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:44",{"_index":15544,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:49",{"_index":20022,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:52",{"_index":9421,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:57",{"_index":20025,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:59",{"_index":9427,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:63",{"_index":9423,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:67",{"_index":9426,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.visitor",{"_index":5608,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update.visitor.ts",{"_index":5624,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:103",{"_index":5629,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:29",{"_index":5627,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:35",{"_index":5633,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:39",{"_index":5632,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:43",{"_index":5631,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:47",{"_index":5635,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:56",{"_index":5636,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:71",{"_index":5637,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:80",{"_index":5638,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:90",{"_index":5640,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:94",{"_index":5634,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["updateaccount",{"_index":12685,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccount(accountid",{"_index":12714,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccount(id",{"_index":13569,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountbyid",{"_index":488,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountbyid(currentuser",{"_index":542,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountpassword",{"_index":12686,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountpassword(accountid",{"_index":12716,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccountpassword(id",{"_index":13571,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateboard",{"_index":17723,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboard(board",{"_index":17728,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboardtitle",{"_index":2897,"title":{},"body":{"controllers/BoardController.html":{}}}],["updateboardtitle(urlparams",{"_index":2922,"title":{},"body":{"controllers/BoardController.html":{}}}],["updatecardheight",{"_index":3971,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardheight(urlparams",{"_index":4000,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle",{"_index":3972,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle(urlparams",{"_index":4004,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecolumntitle",{"_index":4913,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecolumntitle(urlparams",{"_index":4929,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecontextexternaltool",{"_index":6054,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(currentuser",{"_index":20404,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(userid",{"_index":6070,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["updatecopiedembeddedtasksoflessons",{"_index":2968,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons(boardstatus",{"_index":2998,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updated",{"_index":524,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"controllers/CollaborativeStorageController.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":2421,"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/FederalStateEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveCopyVisitor.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":{}}}],["updatedclasses",{"_index":4421,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedclasses.length",{"_index":4425,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedelements",{"_index":3079,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatedlessons",{"_index":14293,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedlessons.length",{"_index":14298,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedmodel",{"_index":7695,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updatedtool",{"_index":6088,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updateduserloginmigration",{"_index":4502,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["updateduserloginmigration.closedat",{"_index":14115,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.finishedat",{"_index":14120,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.mandatorysince",{"_index":14118,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.startedat",{"_index":14117,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateelement",{"_index":8193,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelement(urlparams",{"_index":8207,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelementcontent",{"_index":8229,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontent(userid",{"_index":8234,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontentbodyparams",{"_index":8182,"title":{"classes/UpdateElementContentBodyParams.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["updateentity",{"_index":2353,"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":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":{}}}],["updateexecutionrequest",{"_index":13401,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateexistinggridelement",{"_index":7651,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistinggridelement(elementmodel",{"_index":7673,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistingmigration",{"_index":21248,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexistingmigration(userloginmigrationdo",{"_index":21269,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexternaltool",{"_index":9279,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["updateexternaltool(currentuser",{"_index":20455,"title":{},"body":{"controllers/ToolController.html":{}}}],["updateexternaltool(toupdate",{"_index":9300,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateexternaltool(userid",{"_index":9404,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["updatefileurls",{"_index":19595,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updatefileurls(task",{"_index":19606,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updateflag",{"_index":12744,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflag(urlparams",{"_index":12769,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflagparams",{"_index":12770,"title":{"classes/UpdateFlagParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateFlagParams.html":{}}}],["updateheight",{"_index":4091,"title":{},"body":{"injectables/CardService.html":{}}}],["updateheight(card",{"_index":4110,"title":{},"body":{"injectables/CardService.html":{}}}],["updateidentityprovider",{"_index":13329,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateidentityprovider(oidcconfig",{"_index":13361,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatelasttriedfailedlogin",{"_index":21,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["updatelasttriedfailedlogin(accountid",{"_index":81,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatelasttriedfailedlogin(id",{"_index":1730,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["updatemany",{"_index":4456,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatemany(classes",{"_index":4462,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatematchparams",{"_index":12762,"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":14963,"title":{"classes/UpdateNewsParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"classes/UpdateNewsParams.html":{}}}],["updateoauth2client",{"_index":15780,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2client(currentuser",{"_index":15791,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["updateoauth2client(id",{"_index":16064,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["updateoauth2toolconfig",{"_index":9280,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauth2toolconfig(toupdate",{"_index":9304,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow",{"_index":9281,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow(loadedoauthclient",{"_index":9306,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateorcreateidpdefaultmapper",{"_index":13330,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateorcreateidpdefaultmapper(idpalias",{"_index":13363,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatepassword",{"_index":22,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatepassword(accountid",{"_index":86,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updater",{"_index":5618,"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":6865,"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/ContentElementUpdateVisitor.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":18225,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(currentuser",{"_index":20727,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(userid",{"_index":18237,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["updatesecuritycheckstatus(status",{"_index":10066,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["updatesecuritystatus",{"_index":10251,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(@body",{"_index":10270,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(scanresultdto",{"_index":10256,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesubmissionitem",{"_index":3722,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitem(currentuser",{"_index":3729,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["updatesubmissionitem(userid",{"_index":19118,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitembodyparams",{"_index":3731,"title":{"classes/UpdateSubmissionItemBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["updateteam",{"_index":4524,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteam(team",{"_index":4538,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole",{"_index":4525,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(currentuser",{"_index":4604,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["updateteampermissionsforrole(currentuserid",{"_index":4665,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["updateteampermissionsforrole(dto",{"_index":11664,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(team",{"_index":4540,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["updateteamusersingroup",{"_index":15232,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updateteamusersingroup(groupid",{"_index":15251,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updatetitle",{"_index":4092,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{}}}],["updatetitle(board",{"_index":4803,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["updatetitle(card",{"_index":4112,"title":{},"body":{"injectables/CardService.html":{}}}],["updatetitle(column",{"_index":4976,"title":{},"body":{"injectables/ColumnService.html":{}}}],["updateusername",{"_index":23,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateusername(accountid",{"_index":89,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateuserpermissionsforrole",{"_index":4691,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updateuserpermissionsforrole(currentuserid",{"_index":4698,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updatevisibilityofboardelement",{"_index":17747,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updatevisibilityofboardelement(roomid",{"_index":17754,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updating",{"_index":2385,"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":15086,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["upload",{"_index":17854,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["upload.done",{"_index":17878,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["upper",{"_index":14364,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["uppercase",{"_index":23201,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["uppercase_snake_case",{"_index":1439,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["uri",{"_index":1161,"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/BBBJoinResponse.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardDoBuilderImpl.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentResponse.html":{},"injectables/ContentElementFactory.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/ElementContentBody.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.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/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"interfaces/GlobalConstants.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":{},"entities/LessonEntity.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContent.html":{},"classes/LinkElementContentBody.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"interfaces/LinkElementProps.html":{},"classes/LinkElementResponse.html":{},"classes/LinkElementResponseMapper.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PageContentResponse.html":{},"classes/PreviewParams.html":{},"classes/RecursiveCopyVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SystemDto.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.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":15458,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url('/login",{"_index":16137,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url('/migration",{"_index":21435,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url('/migration/error",{"_index":16143,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url(`${api_version_path}${newpath",{"_index":1389,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url(`api/v3/sso/login/${system.id",{"_index":21475,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(baseurl",{"_index":245,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["url(oauthconfig.authendpoint",{"_index":15469,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(params.logouturl).origin",{"_index":21742,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["url(path",{"_index":15480,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(system.oauthconfig.logoutendpoint",{"_index":15462,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(this.baseurl",{"_index":2338,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url(this.logouturl).origin",{"_index":13064,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url(this.publicbackendurl",{"_index":21452,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(urlpath",{"_index":21469,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(urlwithprotocol).tostring",{"_index":5662,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["url(value",{"_index":14328,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["url.href",{"_index":1391,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["url.length",{"_index":16434,"title":{},"body":{"injectables/OpenGraphProxyService.html":{}}}],["url.loggable",{"_index":13059,"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":{}}}],["url.searchparams.append('origin",{"_index":21436,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.tostring",{"_index":256,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/UserMigrationService.html":{}}}],["urlencoded",{"_index":13547,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["urlencodedpayload",{"_index":15565,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["urlparamkeys",{"_index":13390,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["urlparams",{"_index":2908,"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":2941,"title":{},"body":{"controllers/BoardController.html":{}}}],["urlparams.cardid",{"_index":4026,"title":{},"body":{"controllers/CardController.html":{}}}],["urlparams.columnid",{"_index":4938,"title":{},"body":{"controllers/ColumnController.html":{}}}],["urlparams.contentelementid",{"_index":8216,"title":{},"body":{"controllers/ElementController.html":{}}}],["urlparams.dashboardid",{"_index":7393,"title":{},"body":{"controllers/DashboardController.html":{}}}],["urlparams.elementid",{"_index":17710,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.importuserid",{"_index":12798,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["urlparams.lessonid",{"_index":14146,"title":{},"body":{"controllers/LessonController.html":{},"controllers/RoomsController.html":{}}}],["urlparams.newsid",{"_index":14986,"title":{},"body":{"controllers/NewsController.html":{}}}],["urlparams.roomid",{"_index":17709,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.submissioncontainerid",{"_index":3744,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.submissionid",{"_index":19020,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["urlparams.submissionitemid",{"_index":3749,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.taskid",{"_index":19584,"title":{},"body":{"controllers/TaskController.html":{}}}],["urlparams.teamid",{"_index":20079,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["urlparams.token",{"_index":18661,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["urlpath",{"_index":21408,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["urls",{"_index":13062,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["urlsafe",{"_index":22194,"title":{},"body":{"dependencies.html":{}}}],["urlsearchparams",{"_index":193,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["urlwithprotocol",{"_index":5657,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{}}}],["usable",{"_index":18611,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["usage",{"_index":9062,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationReferenceService.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":{},"injectables/FeathersRosterService.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/ToolPermissionHelper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.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":{}}}],["use_stream_to_antivirus",{"_index":11968,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["usecase",{"_index":23101,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usecases",{"_index":23140,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["usecentralldap",{"_index":12766,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["useclass",{"_index":8374,"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":{},"modules/AuthorizationReferenceModule.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":{},"injectables/FeathersRosterService.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICleanOptions.html":{},"interfaces/ICurrentUser.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":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LoginResponse-1.html":{},"classes/MongoPatterns.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"injectables/UserRepo.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":10791,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["usedobuilder(builder",{"_index":3619,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ExternalToolElementNodeEntity.html":{},"interfaces/ExternalToolElementNodeEntityProps.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/LinkElementNode.html":{},"interfaces/LinkElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["useexisting",{"_index":4596,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["usefactory",{"_index":837,"title":{},"body":{"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"modules/CacheWrapperModule.html":{},"modules/EncryptionModule.html":{},"modules/InterceptorModule.html":{},"modules/LoggerModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/PreviewGeneratorConsumerModule.html":{},"modules/RedisModule.html":{},"modules/S3ClientModule.html":{}}}],["useful",{"_index":22842,"title":{},"body":{"license.html":{}}}],["useguards",{"_index":14483,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('ldap",{"_index":14489,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('local",{"_index":14495,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('oauth2",{"_index":14499,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('ldap')@apioperation({summary",{"_index":14468,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('local')@apioperation({summary",{"_index":14475,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('oauth2')@apioperation({summary",{"_index":14480,"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/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.html":{},"modules/BoardModule.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/FeathersRosterService.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":{},"injectables/GroupRepo.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupRule.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupUserResponse.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICleanOptions.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/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":{},"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/LegacySchoolUc.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":{},"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":{},"classes/OauthConfigDto.html":{},"interfaces/OauthCurrentUser.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":{},"controllers/PseudonymController.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"classes/RedirectResponse.html":{},"classes/ResolvedGroupDto.html":{},"classes/ResolvedGroupUser.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/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionsResponse.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/ToolReferenceController.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":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.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":{},"interfaces/UserMetdata.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":{},"classes/UsersList.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.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":15845,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["user'})@isboolean",{"_index":20769,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["user'})@ismongoid",{"_index":20772,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["user(params",{"_index":23678,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(props",{"_index":20904,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user(s",{"_index":23649,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(value",{"_index":12558,"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":13016,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["user._id.$oid",{"_index":13707,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.accountid",{"_index":1752,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["user.attribute",{"_index":13475,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["user.attributes",{"_index":13613,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.attributes[attributename",{"_index":13614,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.business",{"_index":20806,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user.controller",{"_index":12926,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["user.controller.ts",{"_index":12735,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:104",{"_index":12768,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:112",{"_index":12747,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:29",{"_index":12750,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:47",{"_index":12764,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:59",{"_index":12757,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:70",{"_index":12772,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:82",{"_index":12753,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:99",{"_index":12760,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.createdat",{"_index":17417,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.createdtimestamp",{"_index":13619,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.dto",{"_index":8433,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{}}}],["user.dto.ts",{"_index":8442,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:10",{"_index":9536,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:12",{"_index":9535,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:4",{"_index":8445,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:6",{"_index":8444,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:8",{"_index":9537,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.email",{"_index":12646,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{},"classes/UserMatchMapper.html":{}}}],["user.entity",{"_index":6523,"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":{},"classes/UsersList.html":{}}}],["user.entity.ts",{"_index":11310,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["user.entity.ts:102",{"_index":12732,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:109",{"_index":12728,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:112",{"_index":12724,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:13",{"_index":11313,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:16",{"_index":11312,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:54",{"_index":12730,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:57",{"_index":12731,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:60",{"_index":12726,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:76",{"_index":12721,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:79",{"_index":12722,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:82",{"_index":12725,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:88",{"_index":12720,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:91",{"_index":12729,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:94",{"_index":12719,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.externalid",{"_index":13131,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/UserDto.html":{}}}],["user.externalidtoken",{"_index":14502,"title":{},"body":{"controllers/LoginController.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":12818,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.factory.ts:10",{"_index":12820,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.firstname",{"_index":3146,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICourseProperties.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{},"classes/UsersList.html":{}}}],["user.forcepasswordchange",{"_index":20986,"title":{},"body":{"classes/UserDto.html":{}}}],["user.id",{"_index":738,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"entities/Course.html":{},"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICourseProperties.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":{},"interfaces/UserData.html":{},"classes/UserDto.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceEndUc.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["user.interface",{"_index":13700,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.interface.ts",{"_index":12062,"title":{},"body":{"interfaces/IJsonUser.html":{}}}],["user.language",{"_index":20985,"title":{},"body":{"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.lastloginsystemchange",{"_index":14827,"title":{},"body":{"injectables/MigrationCheckService.html":{},"classes/UserDto.html":{}}}],["user.lastname",{"_index":3147,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/Course.html":{},"classes/GroupUcMapper.html":{},"classes/GroupUserResponse.html":{},"interfaces/ICourseProperties.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["user.ldapdn",{"_index":20984,"title":{},"body":{"classes/UserDto.html":{}}}],["user.mapper",{"_index":12775,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.mapper.ts",{"_index":7064,"title":{},"body":{"classes/CurrentUserMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:17",{"_index":12856,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:20",{"_index":7076,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:32",{"_index":12858,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:41",{"_index":7072,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:49",{"_index":12855,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:5",{"_index":17414,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:53",{"_index":7070,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:9",{"_index":7079,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.module",{"_index":20825,"title":{},"body":{"modules/UserApiModule.html":{}}}],["user.outdatedsince",{"_index":18373,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserDto.html":{}}}],["user.params",{"_index":21357,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.params.ts",{"_index":10657,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/SortImportUserParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.params.ts:12",{"_index":10694,"title":{},"body":{"classes/FilterUserParams.html":{}}}],["user.params.ts:21",{"_index":10663,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:27",{"_index":10666,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:33",{"_index":10667,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:40",{"_index":10672,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:45",{"_index":10665,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:54",{"_index":10661,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:59",{"_index":10675,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.permissions",{"_index":9566,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.preferences",{"_index":20987,"title":{},"body":{"classes/UserDto.html":{}}}],["user.repo.ts",{"_index":23213,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.resolvepermissions",{"_index":1846,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.response",{"_index":11103,"title":{},"body":{"classes/GroupResponse.html":{}}}],["user.response.ts",{"_index":11317,"title":{},"body":{"classes/GroupUserResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ResolvedUserResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.response.ts:11",{"_index":17425,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:12",{"_index":11322,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:14",{"_index":17427,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:15",{"_index":11319,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:17",{"_index":17426,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:20",{"_index":17424,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:23",{"_index":17431,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:25",{"_index":12978,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:26",{"_index":17429,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:29",{"_index":17428,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:31",{"_index":12980,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:32",{"_index":17430,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:37",{"_index":12976,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:43",{"_index":12979,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:50",{"_index":12982,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:53",{"_index":12975,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:56",{"_index":12981,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:6",{"_index":11321,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.response.ts:61",{"_index":12977,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:64",{"_index":12832,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["user.response.ts:7",{"_index":12974,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:9",{"_index":11320,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role",{"_index":11323,"title":{},"body":{"classes/GroupUserResponse.html":{}}}],["user.role.name",{"_index":11143,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.roleids",{"_index":20983,"title":{},"body":{"classes/UserDto.html":{}}}],["user.roles",{"_index":16350,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{}}}],["user.roles.getitems",{"_index":20840,"title":{},"body":{"controllers/UserController.html":{}}}],["user.roles.getitems().map((role",{"_index":7082,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.getitems(true",{"_index":21362,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.roles.isinitialized(true",{"_index":16567,"title":{},"body":{"injectables/PermissionService.html":{}}}],["user.roles.map((roleref",{"_index":7085,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.some",{"_index":21621,"title":{},"body":{"injectables/UserService.html":{}}}],["user.roles.some((role",{"_index":9717,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["user.school",{"_index":6677,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["user.school.id",{"_index":5987,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"classes/CurrentUserMapper.html":{},"injectables/GroupRule.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":6680,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.schoolyear?.startdate",{"_index":6679,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.tostring",{"_index":17421,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.schoolid",{"_index":4756,"title":{},"body":{"injectables/ColumnBoardCopyService.html":{},"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{}}}],["user.schoolid.tostring",{"_index":9564,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.scope",{"_index":20903,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user.ts",{"_index":11304,"title":{},"body":{"classes/GroupUser.html":{},"classes/ResolvedGroupUser.html":{}}}],["user.ts:4",{"_index":11306,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:5",{"_index":17410,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.ts:6",{"_index":11305,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:7",{"_index":17409,"title":{},"body":{"classes/ResolvedGroupUser.html":{}}}],["user.uc.ts",{"_index":23207,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.updatedat",{"_index":17419,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.url.params.ts",{"_index":13041,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.url.params.ts:11",{"_index":13042,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.user.firstname",{"_index":11144,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.id",{"_index":11142,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.user.lastname",{"_index":11145,"title":{},"body":{"classes/GroupResponseMapper.html":{}}}],["user.userid",{"_index":10933,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"controllers/UserLoginMigrationController.html":{}}}],["user.username",{"_index":13618,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{}}}],["user.userroleenum",{"_index":19128,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["user/account",{"_index":13177,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["user/import",{"_index":12736,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user?.id",{"_index":16380,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["user?.lastloginsystemchange",{"_index":14825,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["user_already_assigned_to_import_user_error",{"_index":20809,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user_id",{"_index":2210,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["user_login_migration_already_closed",{"_index":21019,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["user_login_migration_grace_period_expired",{"_index":21164,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["user_login_migration_not_found",{"_index":21196,"title":{},"body":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["user_login_migrations",{"_index":21153,"title":{},"body":{"entities/UserLoginMigrationEntity.html":{}}}],["user_migration_failed",{"_index":21160,"title":{},"body":{"classes/UserLoginMigrationError.html":{}}}],["useralreadyassignedtoimportusererror",{"_index":20804,"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":18510,"title":{"modules/UserApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserApiModule.html":{},"modules.html":{}}}],["userattributenamemapping",{"_index":12394,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userboardrole",{"_index":3395,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.editor",{"_index":3400,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.reader",{"_index":3401,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.userroleenum",{"_index":3398,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardroles",{"_index":3109,"title":{"interfaces/UserBoardRoles.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["usercontroller",{"_index":20824,"title":{"controllers/UserController.html":{}},"body":{"modules/UserApiModule.html":{},"controllers/UserController.html":{}}}],["usercount",{"_index":13702,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["userdata",{"_index":9667,"title":{"interfaces/UserData.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["userdataresponse",{"_index":19080,"title":{"classes/UserDataResponse.html":{}},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionsResponse.html":{},"classes/UserDataResponse.html":{}}}],["userdo",{"_index":7074,"title":{"classes/UserDO.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/FeathersRosterService.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"injectables/IdTokenService.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.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":{},"classes/ResolvedGroupUser.html":{},"injectables/SchoolMigrationService.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"interfaces/UserData.html":{},"classes/UserDoFactory.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["userdo.email",{"_index":13081,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.externalid",{"_index":13082,"title":{},"body":{"classes/IservMapper.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.firstname",{"_index":13079,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.lastloginsystemchange",{"_index":21296,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.lastname",{"_index":13080,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.previousexternalid",{"_index":21464,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocopy",{"_index":21423,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocument",{"_index":21550,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments",{"_index":21547,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments.map((userdocument",{"_index":21548,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdofactory",{"_index":20957,"title":{"classes/UserDoFactory.html":{}},"body":{"classes/UserDoFactory.html":{}}}],["userdofactory.define(userdo",{"_index":20962,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["userdorepo",{"_index":20884,"title":{"injectables/UserDORepo.html":{}},"body":{"injectables/UserDORepo.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["userdto",{"_index":20965,"title":{"classes/UserDto.html":{}},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["userentity",{"_index":20914,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userentitys",{"_index":20921,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userentitys.find((user",{"_index":20923,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userequestcontext",{"_index":10511,"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":19037,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["userfactory.buildlistwithid(numberofstudents",{"_index":6742,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["userfactory.buildlistwithid(numberofteachers",{"_index":6743,"title":{},"body":{"classes/CourseFactory.html":{}}}],["userfactory.buildlistwithid(numberofteammembers",{"_index":19034,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["userfactory.buildwithid",{"_index":19033,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TeamUserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["userfactory.define(user",{"_index":21006,"title":{},"body":{"classes/UserFactory.html":{}}}],["userforgroupnotfoundloggable",{"_index":16323,"title":{"classes/UserForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["userforgroupnotfoundloggable(externalgroupuser",{"_index":16383,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["usergroup",{"_index":9679,"title":{"interfaces/UserGroup.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usergroups",{"_index":9678,"title":{"interfaces/UserGroups.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthorizationReferenceService.html":{},"injectables/AuthorizationService.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/CalendarService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ColumnBoardCopyService.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":{},"injectables/GroupUc.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/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":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"interfaces/OauthCurrentUser.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":{},"classes/PseudonymMapper.html":{},"interfaces/PseudonymProps.html":{},"classes/PseudonymResponse.html":{},"classes/PseudonymScope.html":{},"interfaces/PseudonymSearchQuery.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymUc.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.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":{},"interfaces/SchoolSpecificFileCopyService.html":{},"classes/SchoolSpecificFileCopyServiceImpl.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/SubmissionItemResponse.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/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/UsersList.html":{},"injectables/VideoConferenceEndUc.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["userid(value",{"_index":19051,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["userid).buildwithid",{"_index":20053,"title":{},"body":{"classes/TeamFactory.html":{}}}],["userid)?.userroleenum",{"_index":19134,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["userid.tohexstring",{"_index":4373,"title":{},"body":{"classes/ClassMapper.html":{}}}],["userid.tostring",{"_index":9575,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["userid1",{"_index":4254,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["userid?.tostring",{"_index":1144,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["userids",{"_index":62,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.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":{},"classes/UsersList.html":{}}}],["userids'})@index",{"_index":6754,"title":{},"body":{"entities/CourseGroup.html":{}}}],["userids.map((id",{"_index":923,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["userimportuc",{"_index":12779,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["userinfo",{"_index":14546,"title":{},"body":{"injectables/LoginUc.html":{},"classes/SystemFactory.html":{}}}],["userinfo.token.claim",{"_index":13479,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["userinfomapper",{"_index":15035,"title":{"classes/UserInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/UserInfoMapper.html":{}}}],["userinfomapper.maptoresponse(news.creator",{"_index":15038,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinfomapper.maptoresponse(news.updater",{"_index":15052,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinforesponse",{"_index":15006,"title":{"classes/UserInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{}}}],["userinfourl",{"_index":12419,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/SystemEntity.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["userjwt",{"_index":16207,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userlist",{"_index":12805,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userlist.map((user",{"_index":12807,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userloginmigration",{"_index":4491,"title":{},"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":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigration.closedat",{"_index":4501,"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":4498,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat.gettime",{"_index":4509,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.id",{"_index":4500,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.mandatorysince",{"_index":14123,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.school",{"_index":12207,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["userloginmigration.startedat",{"_index":14122,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationalreadyclosedloggableexception",{"_index":18907,"title":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiokresponse({description",{"_index":21072,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiunprocessableentityresponse({description",{"_index":21040,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationapimodule",{"_index":18511,"title":{"modules/UserLoginMigrationApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["userloginmigrationcontroller",{"_index":21026,"title":{"controllers/UserLoginMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationdo",{"_index":4489,"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":21289,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.finishedat",{"_index":21290,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationentity",{"_index":12185,"title":{"entities/UserLoginMigrationEntity.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigrationEntity.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationentity(props",{"_index":21205,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationerror",{"_index":21159,"title":{"classes/UserLoginMigrationError.html":{}},"body":{"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception",{"_index":4493,"title":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apinotfoundresponse({description",{"_index":21041,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiokresponse({description",{"_index":21065,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiunprocessableentityresponse({description",{"_index":21071,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationid",{"_index":12208,"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":20273,"title":{"classes/UserLoginMigrationMandatoryLoggable.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["userloginmigrationmandatoryloggable(userid",{"_index":20275,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigrationmandatoryparams",{"_index":21069,"title":{"classes/UserLoginMigrationMandatoryParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["userloginmigrationmapper",{"_index":21082,"title":{"classes/UserLoginMigrationMapper.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["userloginmigrationmapper.mapsearchparamstoquery(params",{"_index":21092,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(migrationdto",{"_index":21104,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(userloginmigration",{"_index":21097,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmodule",{"_index":13913,"title":{"modules/UserLoginMigrationModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["userloginmigrationnotfoundloggableexception",{"_index":4494,"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":4496,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiokresponse({description",{"_index":21042,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiunprocessableentityresponse({description",{"_index":21063,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationprops",{"_index":21214,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationquery",{"_index":21083,"title":{"interfaces/UserLoginMigrationQuery.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationrepo",{"_index":14817,"title":{"injectables/UserLoginMigrationRepo.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationrepo.save",{"_index":21277,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationresponse",{"_index":21084,"title":{"classes/UserLoginMigrationResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationresponse})@apiforbiddenresponse",{"_index":21078,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apinotfoundresponse({description",{"_index":21049,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse",{"_index":21066,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apinocontentresponse({description",{"_index":21043,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationrevertservice",{"_index":4484,"title":{"injectables/UserLoginMigrationRevertService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["userloginmigrationrule",{"_index":1899,"title":{"injectables/UserLoginMigrationRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["userloginmigrations",{"_index":21048,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchlistresponse",{"_index":21085,"title":{"classes/UserLoginMigrationSearchListResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationsearchlistresponse})@apiinternalservererrorresponse({description",{"_index":21055,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchparams",{"_index":21052,"title":{"classes/UserLoginMigrationSearchParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["userloginmigrationservice",{"_index":4482,"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":17440,"title":{"classes/UserLoginMigrationStartLoggable.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationstartloggable(userid",{"_index":17443,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["userloginmigrationuc",{"_index":21024,"title":{"injectables/UserLoginMigrationUc.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["usermapper",{"_index":21341,"title":{"classes/UserMapper.html":{}},"body":{"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["usermapper.mapfromentitytodto(userentity",{"_index":21608,"title":{},"body":{"injectables/UserService.html":{}}}],["usermatches",{"_index":12969,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["usermatchlistresponse",{"_index":12784,"title":{"classes/UserMatchListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchlistresponse(dtolist",{"_index":12809,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper",{"_index":12776,"title":{"classes/UserMatchMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["usermatchmapper.maptodomain(scope",{"_index":12804,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper.maptoresponse(user",{"_index":12808,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["usermatchresponse",{"_index":12834,"title":{"classes/UserMatchResponse.html":{}},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchschoolid",{"_index":18272,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["usermetadata",{"_index":9685,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermetdata",{"_index":9677,"title":{"interfaces/UserMetdata.html":{}},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usermigrationcontroller",{"_index":21025,"title":{"controllers/UserMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["usermigrationdto",{"_index":14831,"title":{},"body":{"classes/MigrationDto.html":{},"injectables/UserMigrationService.html":{}}}],["usermigrationdto.redirect",{"_index":14832,"title":{},"body":{"classes/MigrationDto.html":{}}}],["usermigrationisnotenabled",{"_index":21389,"title":{"classes/UserMigrationIsNotEnabled.html":{}},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["usermigrationmapper",{"_index":16123,"title":{"classes/UserMigrationMapper.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{}}}],["usermigrationmapper.mapdtotoresponse(migration",{"_index":16192,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["usermigrationresponse",{"_index":16119,"title":{"classes/UserMigrationResponse.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{}}}],["usermigrationservice",{"_index":15396,"title":{"injectables/UserMigrationService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["usermodel",{"_index":13477,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["usermodule",{"_index":3568,"title":{"modules/UserModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/GroupApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.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/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/FeathersRosterService.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":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.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":1774,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["usernames",{"_index":9634,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["usernotfoundafterprovisioningloggableexception",{"_index":15422,"title":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}},"body":{"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["usernotfoundafterprovisioningloggableexception(externaluserid",{"_index":15447,"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":12391,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SystemEntity.html":{}}}],["userpermissions",{"_index":21003,"title":{},"body":{"classes/UserFactory.html":{}}}],["userquery",{"_index":20891,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userrefprops",{"_index":1831,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrefprops.some((prop",{"_index":1863,"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":{},"modules/AuthorizationReferenceModule.html":{},"injectables/AuthorizationService.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":13557,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["userrole",{"_index":12836,"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":17541,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.student",{"_index":17543,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.teacher",{"_index":17542,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userroleenum",{"_index":3097,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["userroleenum.student",{"_index":3154,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["userroleenum.substitution_teacher",{"_index":3151,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userroleenum.teacher",{"_index":3149,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userrule",{"_index":1900,"title":{"injectables/UserRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserRule.html":{}}}],["users",{"_index":3090,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"controllers/BoardSubmissionController.html":{},"injectables/CollaborativeStorageService.html":{},"entities/Course.html":{},"classes/ExternalGroupDto.html":{},"injectables/FeathersRosterService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"controllers/GroupController.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupResponse.html":{},"classes/GroupResponseMapper.html":{},"classes/GroupUcMapper.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICleanOptions.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/IRetryOptions.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/OauthCurrentUser.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolMigrationService.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionsResponse.html":{},"interfaces/SuccessfulRes.html":{},"controllers/SystemController.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/UsersList.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":16385,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.find",{"_index":13593,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.find((user",{"_index":21518,"title":{},"body":{"injectables/UserRepo.html":{}}}],["users.foreach((user",{"_index":16373,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.getidentifiers('_id",{"_index":6569,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["users.length",{"_index":6573,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UsersList.html":{}}}],["users.map((user",{"_index":6580,"title":{},"body":{"entities/Course.html":{},"injectables/FeathersRosterService.html":{},"interfaces/ICourseProperties.html":{},"classes/SubmissionItemResponseMapper.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{},"classes/UsersList.html":{}}}],["users.resetpassword",{"_index":13587,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.total",{"_index":18390,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["users.update",{"_index":13586,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users_configuration_path='/tmp/config/users",{"_index":23535,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["userscollection",{"_index":11788,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.createindex",{"_index":11800,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.dropindex('usersearchindex",{"_index":11799,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexes",{"_index":11792,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexexists('usersearchindex",{"_index":11791,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscope",{"_index":20902,"title":{"classes/UserScope.html":{}},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["userscount",{"_index":1170,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["usersearchindex",{"_index":11793,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindex[0].key?.schoolid",{"_index":11796,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindexexists",{"_index":11790,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userservice",{"_index":4737,"title":{"injectables/UserService.html":{}},"body":{"injectables/ColumnBoardCopyService.html":{},"injectables/FeathersRosterService.html":{},"injectables/GroupUc.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"injectables/UserLoginMigrationService.html":{},"interfaces/UserMetdata.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["userservice.findbyid",{"_index":21606,"title":{},"body":{"injectables/UserService.html":{}}}],["usersfile",{"_index":12067,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["userslist",{"_index":6538,"title":{"classes/UsersList.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"classes/UsersList.html":{}}}],["userspermissions",{"_index":1845,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["userspermissions.includes(p",{"_index":1848,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["usersresponse",{"_index":19085,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["usersubmissionexists",{"_index":8247,"title":{},"body":{"injectables/ElementUc.html":{}}}],["userswithemail",{"_index":13126,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail.length",{"_index":13128,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail[0",{"_index":13129,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["usertoicurrentuser",{"_index":7068,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["usertoicurrentuser(accountid",{"_index":7078,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["useruc",{"_index":12787,"title":{"injectables/UserUc.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["userwithpopulatedroles",{"_index":2017,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["uses",{"_index":13917,"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":1307,"title":{},"body":{"modules/AntivirusModule.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":20226,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["using",{"_index":704,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"modules/AuthorizationReferenceModule.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":5465,"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":10310,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["util",{"_index":10820,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/GroupUc.html":{},"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["util.inspect(message).replace(/\\n/g",{"_index":13907,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["utilities",{"_index":14429,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["utilities.format.nestlike",{"_index":14448,"title":{},"body":{"modules/LoggerModule.html":{}}}],["utils",{"_index":3341,"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":17265,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["utils.asarray(id",{"_index":3359,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["utils/error.utils",{"_index":8296,"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/SystemEntity.html":{},"classes/SystemFactory.html":{},"dependencies.html":{}}}],["uuidv4",{"_index":12821,"title":{},"body":{"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["v",{"_index":11644,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["v3",{"_index":22914,"title":{},"body":{"todo.html":{}}}],["v3/index",{"_index":22919,"title":{},"body":{"todo.html":{}}}],["v3/tools/external",{"_index":8595,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceService.html":{}}}],["v4",{"_index":9913,"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":5388,"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":{},"injectables/OpenGraphProxyService.html":{},"entities/SystemEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validatabletool",{"_index":5373,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.id",{"_index":5405,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.find",{"_index":5409,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.length",{"_index":5403,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.map",{"_index":5398,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validate",{"_index":6098,"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(contextexternaltool",{"_index":6103,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validate(payload",{"_index":13165,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["validate(props",{"_index":4275,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["validate(request",{"_index":13807,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["validate(school",{"_index":18433,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validate(schoolexternaltool",{"_index":18251,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validate(username",{"_index":14387,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["validateandgetexternaltool",{"_index":9643,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateandgetexternaltool(oauth2clientid",{"_index":9668,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecommon",{"_index":8855,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecommon(externaltool",{"_index":8875,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecontextexternaltools",{"_index":9644,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validatecontextexternaltools(courseid",{"_index":9670,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatecreate",{"_index":9433,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecreate(externaltool",{"_index":9438,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validated",{"_index":13197,"title":{},"body":{"injectables/JwtValidationAdapter.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validategraceperiod",{"_index":18319,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validategraceperiod(userloginmigration",{"_index":18344,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validatelogosize",{"_index":8763,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelogosize(externaltool",{"_index":8777,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelti11config",{"_index":9434,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatelti11config(externaltool",{"_index":9440,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatenested",{"_index":5836,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/LinkContentBody.html":{},"classes/LinkElementContentBody.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":8655,"title":{},"body":{"classes/ExternalToolElementContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/LinkElementContentBody.html":{},"classes/MoveElementParams.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{}}}],["validatenested()@type(undefined",{"_index":8619,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested({each",{"_index":5828,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["validateoauth2config",{"_index":9435,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateoauth2config(externaltool",{"_index":9441,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateparameter",{"_index":5371,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validateparameter(param",{"_index":5390,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatepassword",{"_index":24,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatepassword(account",{"_index":91,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatereordering(reorderedids",{"_index":2674,"title":{},"body":{"entities/Board.html":{}}}],["validaterocketchatconfig",{"_index":1291,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["validateschoolexternaltool",{"_index":9645,"title":{},"body":{"injectables/FeathersRosterService.html":{}}}],["validateschoolexternaltool(schoolid",{"_index":9672,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validatestatus",{"_index":11410,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["validatesubject",{"_index":15813,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatesubject(currentuser",{"_index":15824,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatetoken",{"_index":15393,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validatetoken(idtoken",{"_index":15418,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validateupdate",{"_index":9436,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateupdate(toolid",{"_index":9443,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateusersmatch",{"_index":7761,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validateusersmatch(dashboard",{"_index":7769,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validating",{"_index":13196,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation",{"_index":1415,"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":{},"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":1576,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{}}}],["validation.adapter.ts",{"_index":13185,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:13",{"_index":13190,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:25",{"_index":13195,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:30",{"_index":13193,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:36",{"_index":13200,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.error.ts",{"_index":1394,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.error.ts:4",{"_index":1400,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.pipe",{"_index":21653,"title":{},"body":{"modules/ValidationModule.html":{}}}],["validation.pipe.ts",{"_index":10858,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.pipe.ts:12",{"_index":10861,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.service",{"_index":9446,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts",{"_index":5362,"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":8856,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:108",{"_index":8864,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:118",{"_index":8866,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:12",{"_index":6101,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:128",{"_index":8872,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:136",{"_index":8868,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:14",{"_index":5393,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:148",{"_index":8860,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:15",{"_index":18252,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:16",{"_index":8876,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:18",{"_index":9439,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:20",{"_index":6104,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:24",{"_index":5389,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:25",{"_index":18249,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:28",{"_index":9444,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:32",{"_index":5377,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:45",{"_index":5374,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:53",{"_index":5386,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:60",{"_index":9442,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:65",{"_index":5391,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:7",{"_index":18431,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:72",{"_index":8862,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:73",{"_index":5380,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:76",{"_index":8870,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:81",{"_index":5384,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:86",{"_index":8858,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:89",{"_index":5382,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:9",{"_index":18246,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:95",{"_index":8874,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation_error",{"_index":21646,"title":{},"body":{"classes/ValidationError.html":{}}}],["validationerror",{"_index":503,"title":{"classes/ValidationError.html":{}},"body":{"controllers/AccountController.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('grace_period_expired",{"_index":18348,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validationerror('user",{"_index":7084,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["validationerror(`tool_id_mismatch",{"_index":9451,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validationerror(`tool_name_duplicate",{"_index":8879,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror(`tool_param_name",{"_index":8884,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror.children",{"_index":1455,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.children.foreach((childerror",{"_index":1456,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.constraints",{"_index":1451,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.property",{"_index":1449,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrordetailresponse",{"_index":1427,"title":{"classes/ValidationErrorDetailResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["validationerrordetailresponse(propertypath",{"_index":1454,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrorlogmessage",{"_index":8289,"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/TooManyPseudonymsLoggableException.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":1401,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ErrorLoggable.html":{}}}],["validationmetadata",{"_index":8322,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.context?.privacyprotected",{"_index":8324,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.propertyname",{"_index":8323,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmodule",{"_index":6428,"title":{"modules/ValidationModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{},"modules.html":{}}}],["validationpipe",{"_index":10860,"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":{},"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/ClassSortParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElementContentBody.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/GroupIdParams.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/LinkContentBody.html":{},"classes/LinkElementContentBody.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/PseudonymParams.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":23197,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["validcourses",{"_index":9723,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validcourses.push(course",{"_index":9726,"title":{},"body":{"injectables/FeathersRosterService.html":{},"interfaces/UserData.html":{},"interfaces/UserGroup.html":{},"interfaces/UserGroups.html":{},"interfaces/UserMetdata.html":{}}}],["validfrom",{"_index":10924,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["validjwt",{"_index":7010,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["validperiod",{"_index":11006,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["validuntil",{"_index":10925,"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/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":{},"classes/ClassSortParams.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/ExternalToolContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolElement.html":{},"classes/ExternalToolElementContentBody.html":{},"interfaces/ExternalToolElementProps.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":{},"classes/FilterUserParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/GroupUc.html":{},"classes/GuardAgainst.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":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LinkContentBody.html":{},"classes/LinkElement.html":{},"classes/LinkElementContentBody.html":{},"interfaces/LinkElementProps.html":{},"injectables/Logger.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":{},"injectables/OpenGraphProxyService.html":{},"classes/PaginationParams.html":{},"injectables/PreviewGeneratorService.html":{},"classes/PropertyData.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"classes/RecursiveCopyVisitor.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/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":{},"additional-documentation/nestjs-application/testing.html":{}}}],["value.length",{"_index":18933,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{}}}],["value.loggable",{"_index":14873,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["value.trim().length",{"_index":18956,"title":{},"body":{"classes/StringValidator.html":{}}}],["value[0",{"_index":13628,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["values",{"_index":1581,"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/SystemEntity.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["values.ts",{"_index":1778,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:2",{"_index":1782,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["values.ts:4",{"_index":1781,"title":{},"body":{"classes/AuthenticationValues.html":{}}}],["var",{"_index":11812,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["variable",{"_index":18558,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["variables",{"_index":18850,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["various",{"_index":23109,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["vars",{"_index":2615,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.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":21907,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["vcdo.options",{"_index":21909,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["verbatim",{"_index":22273,"title":{},"body":{"license.html":{}}}],["verbose",{"_index":11601,"title":{},"body":{"interfaces/ICleanOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["verified",{"_index":1255,"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":23442,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyfeaturesenabled",{"_index":21782,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifyfeaturesenabled(schoolid",{"_index":21795,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifying",{"_index":23443,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyoptions",{"_index":1620,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["version",{"_index":5007,"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":20760,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.interface.ts:2",{"_index":20761,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.service",{"_index":9313,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["version.service.ts",{"_index":9466,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:16",{"_index":9477,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:32",{"_index":9491,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:39",{"_index":9480,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:52",{"_index":9489,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:60",{"_index":9483,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:68",{"_index":9487,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:7",{"_index":9494,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:76",{"_index":9485,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["versionkey",{"_index":9883,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["versionnumber",{"_index":5232,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["versions",{"_index":22287,"title":{},"body":{"license.html":{}}}],["vertrauensstufe",{"_index":17967,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["very",{"_index":11757,"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":6154,"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":{},"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":8014,"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":6537,"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":{},"classes/UsersList.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":{}}}],["videoconference(props",{"_index":22004,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconference.options.everybodyjoinsasmoderator",{"_index":21925,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference.options.moderatormustapprovejoinrequests",{"_index":21927,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference2",{"_index":21707,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconference:31",{"_index":21885,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:34",{"_index":21886,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:6",{"_index":21884,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconferenceapimodule",{"_index":18512,"title":{"modules/VideoConferenceApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules.html":{}}}],["videoconferencebaseresponse",{"_index":8015,"title":{"classes/VideoConferenceBaseResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencebaseresponse:10",{"_index":8022,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:12",{"_index":8020,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:8",{"_index":8023,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferenceconfiguration",{"_index":21697,"title":{"classes/VideoConferenceConfiguration.html":{}},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.bbb",{"_index":21703,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.videoconference",{"_index":21969,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["videoconferencecontroller",{"_index":21692,"title":{"controllers/VideoConferenceController.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencecreateparams",{"_index":21727,"title":{"classes/VideoConferenceCreateParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencecreateuc",{"_index":21688,"title":{"injectables/VideoConferenceCreateUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["videoconferencedeprecatedcontroller",{"_index":21835,"title":{"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedeprecateduc",{"_index":21848,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedo",{"_index":21822,"title":{"classes/VideoConferenceDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceenduc",{"_index":21689,"title":{"injectables/VideoConferenceEndUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["videoconferenceinfo",{"_index":21734,"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":21736,"title":{"classes/VideoConferenceInfoResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferenceinforesponse})@apiresponse({status",{"_index":21718,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferenceinfouc",{"_index":21690,"title":{"injectables/VideoConferenceInfoUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["videoconferencejoin",{"_index":21735,"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":21957,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse",{"_index":21737,"title":{"classes/VideoConferenceJoinResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse})@apiresponse({status",{"_index":21724,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencejoinuc",{"_index":21691,"title":{"injectables/VideoConferenceJoinUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["videoconferencemapper",{"_index":21731,"title":{"classes/VideoConferenceMapper.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemapper.tovideoconferenceinforesponse(dto",{"_index":21754,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencejoinresponse(dto",{"_index":21751,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferenceoptions(params",{"_index":21747,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencestateresponse(from.state",{"_index":22025,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemodule",{"_index":21687,"title":{"modules/VideoConferenceModule.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["videoconferenceoptions",{"_index":21656,"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":{}}}],["videoconferenceoptionsdo",{"_index":21826,"title":{"classes/VideoConferenceOptionsDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["videoconferenceoptionsresponse",{"_index":21889,"title":{"classes/VideoConferenceOptionsResponse.html":{}},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["videoconferenceoptionsresponse(videoconferenceinfo.options",{"_index":21956,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencerepo",{"_index":21963,"title":{"injectables/VideoConferenceRepo.html":{}},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{}}}],["videoconferenceresponsedeprecatedmapper",{"_index":21846,"title":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptobaseresponse(dto",{"_index":21870,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptoinforesponse(dto",{"_index":21867,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptojoinresponse(dto",{"_index":21865,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsemapper",{"_index":22018,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferences",{"_index":21670,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["videoconferencescope",{"_index":18475,"title":{},"body":{"classes/ScopeRef.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope'})@isenum(videoconferencescope",{"_index":22030,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope.course",{"_index":22001,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescope.event",{"_index":21999,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencescopeparams",{"_index":21710,"title":{"classes/VideoConferenceScopeParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferenceservice",{"_index":21784,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencesettings",{"_index":12606,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencestate",{"_index":21677,"title":{},"body":{"classes/VideoConference-1.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.finished",{"_index":21881,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.not_started",{"_index":21901,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.running",{"_index":21859,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse",{"_index":8021,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.finished",{"_index":21954,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.not_started",{"_index":21952,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.running",{"_index":21953,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferenceuc",{"_index":21852,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencingscopemapping",{"_index":22003,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencingscopemapping[entity.targetmodel",{"_index":22008,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videocount",{"_index":2228,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["view",{"_index":15167,"title":{},"body":{"injectables/NewsUc.html":{},"license.html":{}}}],["viewer",{"_index":2178,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["viewers",{"_index":6861,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["violates",{"_index":22596,"title":{},"body":{"license.html":{}}}],["violation",{"_index":22647,"title":{},"body":{"license.html":{}}}],["virtuals",{"_index":22148,"title":{},"body":{"dependencies.html":{}}}],["virus",{"_index":10147,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["virus_detected",{"_index":1331,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"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":{},"interfaces/ScanResult.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["virus_signature",{"_index":1332,"title":{},"body":{"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"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":{},"interfaces/ScanResult.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["viruses",{"_index":1363,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["viruses.join",{"_index":1367,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["visibilities",{"_index":22896,"title":{},"body":{"todo.html":{}}}],["visibility",{"_index":4076,"title":{},"body":{"classes/CardResponse.html":{},"classes/PatchVisibilityParams.html":{},"injectables/RoomsUc.html":{}}}],["visibility.params.ts",{"_index":16549,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibility.params.ts:12",{"_index":16550,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibilitysettings",{"_index":4067,"title":{},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{}}}],["visibilitysettingsresponse",{"_index":4074,"title":{"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["visible",{"_index":6860,"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":8535,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visibletools.filter",{"_index":8539,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visitcard",{"_index":2808,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcard(card",{"_index":2817,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcardasync",{"_index":2861,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(card",{"_index":2854,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(original",{"_index":17129,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildren",{"_index":17243,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildren(parent",{"_index":17252,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildrenasync",{"_index":17201,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenasync(domainobject",{"_index":17206,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenof",{"_index":17119,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitchildrenof(boarddo",{"_index":17131,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumn",{"_index":2809,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumn(column",{"_index":2820,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnasync",{"_index":2862,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(column",{"_index":2853,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(original",{"_index":17133,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitcolumnboard",{"_index":2810,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboard(columnboard",{"_index":2822,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboardasync",{"_index":2863,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(columnboard",{"_index":2852,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(original",{"_index":17135,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitexternaltoolelement",{"_index":2811,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelement(externaltoolelement",{"_index":2825,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitexternaltoolelementasync",{"_index":2864,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(externaltoolelement",{"_index":2860,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitexternaltoolelementasync(original",{"_index":17137,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitfileelement",{"_index":2812,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelement(fileelement",{"_index":2828,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelementasync",{"_index":2865,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(fileelement",{"_index":2855,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(original",{"_index":17139,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitlinkelement",{"_index":2813,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelement(linkelement",{"_index":2831,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitlinkelementasync",{"_index":2866,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(linkelement",{"_index":2856,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitlinkelementasync(original",{"_index":17141,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitor",{"_index":2762,"title":{},"body":{"classes/BoardComposite.html":{},"injectables/BoardDoCopyService.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ExternalToolElement.html":{},"classes/FileElement.html":{},"classes/LinkElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["visitor.copy(params.original",{"_index":3306,"title":{},"body":{"injectables/BoardDoCopyService.html":{}}}],["visitor.ts",{"_index":2807,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:12",{"_index":2824,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:13",{"_index":2821,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:14",{"_index":2819,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:15",{"_index":2830,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:16",{"_index":2833,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:17",{"_index":2836,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:18",{"_index":2839,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:19",{"_index":2842,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:20",{"_index":2827,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:24",{"_index":2872,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:25",{"_index":2871,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:26",{"_index":2870,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:27",{"_index":2874,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:28",{"_index":2875,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:29",{"_index":2876,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:30",{"_index":2877,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:31",{"_index":2878,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:32",{"_index":2873,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.visitcard(this",{"_index":3962,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcardasync(this",{"_index":3963,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcolumn(this",{"_index":4715,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnasync(this",{"_index":4716,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnboard(this",{"_index":4732,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitcolumnboardasync(this",{"_index":4733,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitexternaltoolelement(this",{"_index":8644,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitexternaltoolelementasync(this",{"_index":8645,"title":{},"body":{"classes/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.html":{}}}],["visitor.visitfileelement(this",{"_index":9843,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitfileelementasync(this",{"_index":9844,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitlinkelement(this",{"_index":14333,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitlinkelementasync(this",{"_index":14334,"title":{},"body":{"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{}}}],["visitor.visitrichtextelement(this",{"_index":17474,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitrichtextelementasync(this",{"_index":17475,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitsubmissioncontainerelement(this",{"_index":18974,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissioncontainerelementasync(this",{"_index":18975,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissionitem(this",{"_index":19053,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitor.visitsubmissionitemasync(this",{"_index":19054,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitrichtextelement",{"_index":2814,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelement(richtextelement",{"_index":2834,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelementasync",{"_index":2867,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitrichtextelementasync(original",{"_index":17143,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitrichtextelementasync(richtextelement",{"_index":2857,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelement",{"_index":2815,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelement(submissioncontainerelement",{"_index":2837,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelementasync",{"_index":2868,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelementasync(original",{"_index":17145,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissioncontainerelementasync(submissioncontainerelement",{"_index":2858,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitem",{"_index":2816,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submission",{"_index":17261,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submissionitem",{"_index":2840,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitsubmissionitemasync",{"_index":2869,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/ContentElementUpdateVisitor.html":{},"classes/RecursiveCopyVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(original",{"_index":17147,"title":{},"body":{"classes/RecursiveCopyVisitor.html":{}}}],["visitsubmissionitemasync(submission",{"_index":5639,"title":{},"body":{"injectables/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submissionitem",{"_index":2859,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visual",{"_index":22233,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vo",{"_index":12015,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["voicebridge",{"_index":2164,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["voiceparticipantcount",{"_index":2229,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["void",{"_index":148,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.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/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/ExternalToolElement.html":{},"interfaces/ExternalToolElementProps.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":{},"classes/Group.html":{},"interfaces/GroupProps.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/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LinkElement.html":{},"interfaces/LinkElementProps.html":{},"injectables/Logger.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/PreviewProducer.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/PseudonymScope.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RpcMessageProducer.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":{},"classes/UsersList.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{}}}],["volume",{"_index":22501,"title":{},"body":{"license.html":{}}}],["von",{"_index":17956,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["vorname",{"_index":17959,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["vs",{"_index":13143,"title":{},"body":{"interfaces/JwtConstants.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["vscode",{"_index":22203,"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":23478,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/lauch",{"_index":22920,"title":{},"body":{"todo.html":{}}}],["vscode/launch.default.json",{"_index":23038,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/settings.default.json",{"_index":23476,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["wait",{"_index":1771,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["waiting",{"_index":21931,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["waive",{"_index":22460,"title":{},"body":{"license.html":{}}}],["waiver",{"_index":22828,"title":{},"body":{"license.html":{}}}],["want",{"_index":4663,"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":12080,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["warn(message",{"_index":12091,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["warning",{"_index":14410,"title":{},"body":{"injectables/Logger.html":{}}}],["warning(loggable",{"_index":14419,"title":{},"body":{"injectables/Logger.html":{}}}],["warranties",{"_index":22383,"title":{},"body":{"license.html":{}}}],["warranty",{"_index":22382,"title":{},"body":{"license.html":{}}}],["watch",{"_index":22903,"title":{},"body":{"todo.html":{}}}],["way",{"_index":3649,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/CourseCopyUC.html":{},"injectables/LdapStrategy.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.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":22511,"title":{},"body":{"license.html":{}}}],["web",{"_index":5295,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["weblink",{"_index":5323,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["weights",{"_index":11804,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["weird",{"_index":6884,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["welcome",{"_index":2078,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{}}}],["well",{"_index":22367,"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":13526,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["wenn",{"_index":21968,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["went",{"_index":12618,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["werden",{"_index":4833,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wether",{"_index":23744,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["whatever",{"_index":18485,"title":{},"body":{"classes/ServerConsole.html":{},"license.html":{}}}],["whereas",{"_index":23137,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wherelastloginsystemchangeisbetween",{"_index":20909,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["wherelastloginsystemchangeisbetween(startdate",{"_index":21566,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan",{"_index":21561,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(date",{"_index":21568,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(query.lastloginsystemchangesmallerthan",{"_index":20908,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["wherever",{"_index":13898,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["whether",{"_index":7060,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["whitelist",{"_index":10868,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["whitelisted",{"_index":13178,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["whitespace",{"_index":14911,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["whole",{"_index":15238,"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":19061,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["whose",{"_index":22551,"title":{},"body":{"license.html":{}}}],["wichtige",{"_index":4825,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["widely",{"_index":22395,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["widespread",{"_index":22315,"title":{},"body":{"license.html":{}}}],["width",{"_index":6248,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewActionsLoggable.html":{},"classes/PreviewBuilder.html":{},"interfaces/PreviewFileOptions.html":{},"injectables/PreviewGeneratorService.html":{},"interfaces/PreviewOptions.html":{},"classes/PreviewParams.html":{},"interfaces/PreviewResponseMessage.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["width=100",{"_index":5321,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["wildfly",{"_index":23563,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["willkommen",{"_index":4812,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["window",{"_index":22403,"title":{},"body":{"license.html":{},"todo.html":{}}}],["windowfeatures",{"_index":5320,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["windows",{"_index":22879,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["winston",{"_index":8342,"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":14434,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.combine",{"_index":14441,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.ms",{"_index":14447,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.timestamp",{"_index":14442,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.transports.console",{"_index":14438,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston_module_provider",{"_index":8341,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonlogger",{"_index":8331,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonmodule",{"_index":14430,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winstonmodule.forrootasync",{"_index":14432,"title":{},"body":{"modules/LoggerModule.html":{}}}],["wip",{"_index":16436,"title":{},"body":{"injectables/OpenGraphProxyService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["wipo",{"_index":22452,"title":{},"body":{"license.html":{}}}],["wir",{"_index":4820,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wired",{"_index":23466,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wish",{"_index":22294,"title":{},"body":{"license.html":{}}}],["withbase64logo",{"_index":7315,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withbasicconfig",{"_index":8702,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withcredentials",{"_index":11448,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["withcustomparameters",{"_index":8722,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["withcustomparameters(number",{"_index":7312,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata",{"_index":15538,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata(oauth2params",{"_index":7277,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withguestpolicy",{"_index":2116,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withguestpolicy(guestpolicy",{"_index":2122,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withid",{"_index":18683,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["withid(id",{"_index":18684,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["within",{"_index":3833,"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":7845,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["withldapconfig",{"_index":19343,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withldapconfig(otherparams",{"_index":19346,"title":{},"body":{"classes/SystemFactory.html":{}}}],["withlogouturl",{"_index":2117,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(logouturl",{"_index":2124,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(options.logouturl",{"_index":21815,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["withlti11config",{"_index":8703,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withlti11config(customparam",{"_index":7310,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withmuteonstart",{"_index":2118,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withmuteonstart(value",{"_index":2126,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withname",{"_index":8704,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withname(name",{"_index":8709,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withoauth2config",{"_index":8705,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withoauth2config(clientid",{"_index":8711,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withoauth2config(customparam",{"_index":7308,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withoauthclientid",{"_index":14671,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthclientid(oauthclientid",{"_index":14673,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthconfig",{"_index":19344,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withoidcconfig",{"_index":19345,"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":22874,"title":{},"body":{"todo.html":{}}}],["withoutcontext",{"_index":4766,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["withoutdatedsince",{"_index":21562,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(date",{"_index":21570,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(query.outdatedsince",{"_index":20912,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["withrole",{"_index":2191,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/UserFactory.html":{}}}],["withrole(role",{"_index":20996,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrole(value",{"_index":2195,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withroleanduserid",{"_index":20044,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withroleanduserid(role",{"_index":20046,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withrolebyname",{"_index":20992,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrolebyname(name",{"_index":20998,"title":{},"body":{"classes/UserFactory.html":{}}}],["withroles",{"_index":20959,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withroles(roles",{"_index":20960,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withschoolexternaltoolref",{"_index":5794,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolexternaltoolref(schooltoolid",{"_index":5795,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolid",{"_index":18094,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withschoolid(schoolid",{"_index":18095,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withsystemid",{"_index":663,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withsystemid(id",{"_index":678,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withteamuser",{"_index":20045,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withteamuser(teamuser",{"_index":20048,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withuser",{"_index":664,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuser(user",{"_index":680,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuserid",{"_index":2192,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/TeamUserFactory.html":{}}}],["withuserid(currentuserid",{"_index":21923,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["withuserid(userid",{"_index":20154,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["withuserid(value",{"_index":2197,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withuserids",{"_index":4303,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withuserids(userids",{"_index":4304,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withwelcome",{"_index":2119,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withwelcome(welcome",{"_index":2128,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["wont_check",{"_index":10030,"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":23280,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["words",{"_index":11808,"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":22410,"title":{},"body":{"license.html":{}}}],["worker",{"_index":8150,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["worker.manufacture",{"_index":8151,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["working",{"_index":11617,"title":{},"body":{"interfaces/ICleanOptions.html":{},"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":23306,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["works",{"_index":10686,"title":{},"body":{"classes/FilterNewsParams.html":{},"injectables/NewsRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["worldwide",{"_index":22715,"title":{},"body":{"license.html":{}}}],["wouldn't",{"_index":1853,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["wrap",{"_index":2642,"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":7568,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrap(modelentity).init",{"_index":7677,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["wrap(props.course).toreference",{"_index":2664,"title":{},"body":{"entities/Board.html":{}}}],["wrap(props.school).toreference",{"_index":12018,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.system).toreference",{"_index":12019,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.user).toreference",{"_index":7575,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrapped",{"_index":23315,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wrappedreference",{"_index":2634,"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":5230,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["writable",{"_index":8041,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["write",{"_index":1805,"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":1810,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["write/read",{"_index":23644,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writecourseids",{"_index":20008,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses",{"_index":20005,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.includes(c",{"_index":20007,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.map((c",{"_index":20009,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writefile",{"_index":10284,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writefile(filepath",{"_index":10319,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writelessons",{"_index":20014,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writen",{"_index":23725,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writer.module",{"_index":18492,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["writer.module.ts",{"_index":5542,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["writer.service",{"_index":5543,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["writer.service.ts",{"_index":5544,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer.service.ts:5",{"_index":5546,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer/console",{"_index":5541,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["writing",{"_index":22793,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["written",{"_index":22518,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wrong",{"_index":7773,"title":{},"body":{"injectables/DashboardUc.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["wrongly",{"_index":23712,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["www",{"_index":13545,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["wünsche",{"_index":4868,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["x",{"_index":1271,"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":{},"interfaces/ICalendarEvent.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["xml",{"_index":6135,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2js",{"_index":5122,"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":6136,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2json(xml",{"_index":6138,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object",{"_index":6132,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object(xml",{"_index":6133,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xmlbuilder",{"_index":5102,"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":5177,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xmlns:blti",{"_index":5178,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:ext",{"_index":5239,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:lticm",{"_index":5179,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:lticp",{"_index":5180,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:mnf",{"_index":5235,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:res",{"_index":5237,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:xsi",{"_index":5181,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xpos",{"_index":7550,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["xposition",{"_index":7583,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["xsd/imsbasiclti_v1p0",{"_index":5211,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticc_v1p0",{"_index":5210,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticm_v1p0",{"_index":5212,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticp_v1p0",{"_index":5213,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd",{"_index":5215,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticc_v1p0.xsd",{"_index":5214,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticm_v1p0.xsd",{"_index":5216,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticp_v1p0.xsd",{"_index":5217,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsi:schemalocation",{"_index":5184,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xxxx",{"_index":23492,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["y",{"_index":7372,"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":{}}}],["yagni",{"_index":23089,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yagni.more",{"_index":23296,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["year",{"_index":4208,"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":{},"injectables/SchoolYearService.html":{}}}],["year.service.ts",{"_index":18449,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:10",{"_index":18454,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:16",{"_index":18453,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:6",{"_index":18452,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["years",{"_index":12224,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYearEntity.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":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassInfoSearchListResponse.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/ExternalToolElement.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"injectables/ExternalToolPseudonymRepo.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":{},"classes/GroupResponseMapper.html":{},"injectables/GroupUc.html":{},"classes/GroupUcMapper.html":{},"modules/H5PEditorTestModule.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":{},"classes/LinkElement.html":{},"injectables/LocalStrategy.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponseMapper.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":{}}}],["yesterday",{"_index":10118,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["yet.'})@apiresponse({status",{"_index":21840,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["your.config.ts",{"_index":23754,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.module.ts",{"_index":23758,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.service.ts",{"_index":23756,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your_s3_uniq_connection_token",{"_index":23755,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourloggable",{"_index":23248,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourloggable(userid",{"_index":23253,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourmodule",{"_index":23759,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourself",{"_index":22729,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yourservice",{"_index":23284,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["youruc",{"_index":23249,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["ypos",{"_index":7551,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["yposition",{"_index":7584,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["yyyy",{"_index":14443,"title":{},"body":{"modules/LoggerModule.html":{}}}],["z]|[0",{"_index":10783,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["za",{"_index":10782,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["zip",{"_index":5121,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["zipbuilder",{"_index":5103,"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/AuthorizationReferenceModule.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/PreviewGeneratorAMQPModule.html":{},"modules/PreviewGeneratorProducerModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymApiModule.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":4840,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zum",{"_index":4843,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zusammengefasst",{"_index":4849,"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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:249\n \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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/learnroom/service';\nimport { LegacySchoolService } from '@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\tswitch (contextExternalTool.contextRef.type) {\n\t\t\t\t\tcase ToolContextType.COURSE: {\n\t\t\t\t\t\tconst course: Course = await this.courseService.findById(contextExternalTool.contextRef.id);\n\n\t\t\t\t\t\treturn course.name;\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(\n\t\t\t\t\t\t\t`${customParameter.type}/${contextExternalTool.contextRef.type as string}`\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\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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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_exports\n\n\n\ncluster_AccountModule_imports\n\n\n\ncluster_AccountModule_providers\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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/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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 options\n \n AntivirusModuleOptions\n \n\n \n No\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 NodeClam from 'clamscan';\nimport { AntivirusService } from './antivirus.service';\nimport { AntivirusModuleOptions } from './interfaces';\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\t{\n\t\t\t\t\tprovide: NodeClam,\n\t\t\t\t\tuseFactory: () => {\n\t\t\t\t\t\tconst isLocalhost = options.hostname === 'localhost';\n\n\t\t\t\t\t\treturn new NodeClam().init({\n\t\t\t\t\t\t\tdebugMode: isLocalhost,\n\t\t\t\t\t\t\tclamdscan: {\n\t\t\t\t\t\t\t\thost: options.hostname,\n\t\t\t\t\t\t\t\tport: options.port,\n\t\t\t\t\t\t\t\tbypassTest: isLocalhost,\n\t\t\t\t\t\t\t\tlocalFallback: false,\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\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/interfaces/antivirus.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 hostname\n \n \n \n \n port\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 hostname\n \n \n \n \n \n \n \n \n hostname: string\n\n \n \n\n\n \n \n Type : string\n\n \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\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 export interface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n\thostname: string;\n\tport: number;\n}\n\nexport interface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\nexport interface ScanResult {\n\tvirus_detected?: boolean;\n\tvirus_signature?: string;\n\terror?: 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/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 Public\n Async\n checkStream\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, clamConnection: NodeClam)\n \n \n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.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 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 clamConnection\n \n \n NodeClam\n \n \n \n No\n \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 checkStream\n \n \n \n \n \n \n \n checkStream(stream: Readable)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.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 stream\n \n Readable\n \n\n \n No\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 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: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 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 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: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 requestToken\n \n string | undefined\n \n\n \n No\n \n\n\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 '@modules/files-storage/files-storage.const';\nimport NodeClam from 'clamscan';\nimport { Readable } from 'stream';\nimport { AntivirusServiceOptions, ScanResult } from './interfaces';\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\tprivate readonly clamConnection: NodeClam\n\t) {}\n\n\tpublic async checkStream(stream: Readable) {\n\t\tconst scanResult: ScanResult = {\n\t\t\tvirus_detected: undefined,\n\t\t\tvirus_signature: undefined,\n\t\t\terror: undefined,\n\t\t};\n\t\ttry {\n\t\t\tconst { isInfected, viruses } = await this.clamConnection.scanStream(stream);\n\t\t\tif (isInfected === true) {\n\t\t\t\tscanResult.virus_detected = true;\n\t\t\t\tscanResult.virus_signature = viruses.join(',');\n\t\t\t} else if (isInfected === null) {\n\t\t\t\tscanResult.virus_detected = undefined;\n\t\t\t\tscanResult.error = '';\n\t\t\t} else {\n\t\t\t\tscanResult.virus_detected = false;\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\tnull,\n\t\t\t\tErrorUtils.createHttpExceptionOptions(err, 'AntivirusService:checkStream')\n\t\t\t);\n\t\t}\n\n\t\treturn scanResult;\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/interfaces/antivirus.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 export interface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n\thostname: string;\n\tport: number;\n}\n\nexport interface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\nexport interface ScanResult {\n\tvirus_detected?: boolean;\n\tvirus_signature?: string;\n\terror?: 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/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 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_providers\n\n\n\ncluster_AuthenticationModule_imports\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 '@modules/account';\nimport { OauthModule } from '@modules/oauth/oauth.module';\nimport { RoleModule } from '@modules/role';\nimport { SystemModule } from '@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 (response.error) {\n\t\t\tconst error = JSON.stringify(response.error);\n\t\t\tthrow new Error(error);\n\t\t}\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:17\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: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 account\n \n AccountDto\n \n\n \n No\n \n\n\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: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 user\n \n CreateJwtPayload\n \n\n \n No\n \n\n\n \n \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: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 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 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: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 password\n \n string\n \n\n \n No\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: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 username\n \n string\n \n\n \n No\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: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 jwtToken\n \n string\n \n\n \n No\n \n\n\n \n \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: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 id\n \n string\n \n\n \n No\n \n\n\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 '@modules/account';\n// invalid import\nimport { AccountDto } from '@modules/account/services/dto';\n// invalid import, can produce dependency cycles\nimport type { IServerConfig } from '@modules/server';\nimport { randomUUID } from 'crypto';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { JwtValidationAdapter } from '../strategy/jwt-validation.adapter';\nimport { BruteForceError, UnauthorizedLoggableException } from '../errors';\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"},"classes/AuthenticationValues.html":{"url":"classes/AuthenticationValues.html","title":"class - AuthenticationValues","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthenticationValues\n\n\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/authentication-values.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n keyValue\n \n \n secretValue\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AuthenticationValues)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/authentication-values.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 AuthenticationValues\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n keyValue\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/authentication-values.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n secretValue\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/authentication-values.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class AuthenticationValues {\n\tkeyValue: string;\n\n\tsecretValue: string;\n\n\tconstructor(props: AuthenticationValues) {\n\t\tthis.keyValue = props.keyValue;\n\t\tthis.secretValue = props.secretValue;\n\t}\n}\n\n \n\n\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/domain/type/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/domain/mapper/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/domain/mapper/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 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/domain/mapper/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 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/domain/mapper/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 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 '../type';\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/domain/service/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/domain/service/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 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/domain/service/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 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/domain/service/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 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/domain/service/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 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/domain/service/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 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/domain/type/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/domain/type/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 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/domain/type/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/domain/type/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 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_imports\n\n\n\ncluster_AuthorizationModule_providers\n\n\n\n\nFeathersModule\n\nFeathersModule\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nAuthorizationModule -->\n\nFeathersModule->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\nCourseGroupRule\n\nCourseGroupRule\n\nAuthorizationModule -->\n\nCourseGroupRule->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\nGroupRule\n\nGroupRule\n\nAuthorizationModule -->\n\nGroupRule->AuthorizationModule\n\n\n\n\n\nLegacySchoolRule\n\nLegacySchoolRule\n\nAuthorizationModule -->\n\nLegacySchoolRule->AuthorizationModule\n\n\n\n\n\nLessonRule\n\nLessonRule\n\nAuthorizationModule -->\n\nLessonRule->AuthorizationModule\n\n\n\n\n\nRuleManager\n\nRuleManager\n\nAuthorizationModule -->\n\nRuleManager->AuthorizationModule\n\n\n\n\n\nSchoolExternalToolRule\n\nSchoolExternalToolRule\n\nAuthorizationModule -->\n\nSchoolExternalToolRule->AuthorizationModule\n\n\n\n\n\nSubmissionRule\n\nSubmissionRule\n\nAuthorizationModule -->\n\nSubmissionRule->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\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 CourseGroupRule\n \n \n CourseRule\n \n \n FeathersAuthProvider\n \n \n FeathersAuthorizationService\n \n \n GroupRule\n \n \n LegacySchoolRule\n \n \n LessonRule\n \n \n RuleManager\n \n \n SchoolExternalToolRule\n \n \n SubmissionRule\n \n \n TaskRule\n \n \n TeamRule\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 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 { Module } from '@nestjs/common';\nimport { UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { FeathersModule } from '@shared/infra/feathers';\nimport {\n\tBoardDoRule,\n\tContextExternalToolRule,\n\tCourseGroupRule,\n\tCourseRule,\n\tLessonRule,\n\tSchoolExternalToolRule,\n\tSubmissionRule,\n\tTaskRule,\n\tTeamRule,\n\tUserRule,\n\tUserLoginMigrationRule,\n\tLegacySchoolRule,\n\tGroupRule,\n} from './domain/rules';\nimport { AuthorizationHelper, AuthorizationService, RuleManager } from './domain';\nimport { FeathersAuthorizationService, FeathersAuthProvider } from './feathers';\n\n@Module({\n\timports: [FeathersModule, LoggerModule],\n\tproviders: [\n\t\tFeathersAuthorizationService,\n\t\tFeathersAuthProvider,\n\t\tAuthorizationService,\n\t\tUserRepo,\n\t\tRuleManager,\n\t\tAuthorizationHelper,\n\t\t// rules\n\t\tBoardDoRule,\n\t\tContextExternalToolRule,\n\t\tCourseGroupRule,\n\t\tCourseRule,\n\t\tGroupRule,\n\t\tLessonRule,\n\t\tSchoolExternalToolRule,\n\t\tSubmissionRule,\n\t\tTaskRule,\n\t\tTeamRule,\n\t\tUserRule,\n\t\tUserLoginMigrationRule,\n\t\tLegacySchoolRule,\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"},"modules/AuthorizationReferenceModule.html":{"url":"modules/AuthorizationReferenceModule.html","title":"module - AuthorizationReferenceModule","body":"\n \n\n\n\n\n Modules\n AuthorizationReferenceModule\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_AuthorizationReferenceModule\n\n\n\ncluster_AuthorizationReferenceModule_exports\n\n\n\ncluster_AuthorizationReferenceModule_providers\n\n\n\ncluster_AuthorizationReferenceModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule -->\n\nAuthorizationModule->AuthorizationReferenceModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAuthorizationReferenceModule -->\n\nLoggerModule->AuthorizationReferenceModule\n\n\n\n\n\nAuthorizationReferenceService \n\nAuthorizationReferenceService \n\nAuthorizationReferenceService -->\n\nAuthorizationReferenceModule->AuthorizationReferenceService \n\n\n\n\n\nAuthorizationHelper\n\nAuthorizationHelper\n\nAuthorizationReferenceModule -->\n\nAuthorizationHelper->AuthorizationReferenceModule\n\n\n\n\n\nAuthorizationReferenceService\n\nAuthorizationReferenceService\n\nAuthorizationReferenceModule -->\n\nAuthorizationReferenceService->AuthorizationReferenceModule\n\n\n\n\n\nCourseGroupRepo\n\nCourseGroupRepo\n\nAuthorizationReferenceModule -->\n\nCourseGroupRepo->AuthorizationReferenceModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nAuthorizationReferenceModule -->\n\nCourseRepo->AuthorizationReferenceModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nAuthorizationReferenceModule -->\n\nLegacySchoolRepo->AuthorizationReferenceModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nAuthorizationReferenceModule -->\n\nLessonRepo->AuthorizationReferenceModule\n\n\n\n\n\nReferenceLoader\n\nReferenceLoader\n\nAuthorizationReferenceModule -->\n\nReferenceLoader->AuthorizationReferenceModule\n\n\n\n\n\nSchoolExternalToolRepo\n\nSchoolExternalToolRepo\n\nAuthorizationReferenceModule -->\n\nSchoolExternalToolRepo->AuthorizationReferenceModule\n\n\n\n\n\nSubmissionRepo\n\nSubmissionRepo\n\nAuthorizationReferenceModule -->\n\nSubmissionRepo->AuthorizationReferenceModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nAuthorizationReferenceModule -->\n\nTaskRepo->AuthorizationReferenceModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nAuthorizationReferenceModule -->\n\nTeamsRepo->AuthorizationReferenceModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAuthorizationReferenceModule -->\n\nUserRepo->AuthorizationReferenceModule\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-reference.module.ts\n \n\n\n\n \n Description\n \n \n This module is part of an intermediate state. In the future it should be replaced by an AuthorizationApiModule.\nFor now it is used where the authorization itself needs to load data from the database.\nAvoid using this module and load the needed data in your use cases and then use the normal AuthorizationModule!\n\n \n\n\n \n \n \n Providers\n \n \n AuthorizationHelper\n \n \n AuthorizationReferenceService\n \n \n CourseGroupRepo\n \n \n CourseRepo\n \n \n LegacySchoolRepo\n \n \n LessonRepo\n \n \n ReferenceLoader\n \n \n SchoolExternalToolRepo\n \n \n SubmissionRepo\n \n \n TaskRepo\n \n \n TeamsRepo\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n AuthorizationReferenceService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { ToolModule } from '@modules/tool';\nimport { LoggerModule } from '@src/core/logger';\nimport { BoardModule } from '@modules/board';\nimport { ReferenceLoader, AuthorizationReferenceService, AuthorizationHelper } from './domain';\nimport { AuthorizationModule } from './authorization.module';\n\n/**\n * This module is part of an intermediate state. In the future it should be replaced by an AuthorizationApiModule.\n * For now it is used where the authorization itself needs to load data from the database.\n * Avoid using this module and load the needed data in your use cases and then use the normal AuthorizationModule!\n */\n@Module({\n\t// TODO: remove forwardRef to TooModule N21-1055\n\timports: [AuthorizationModule, forwardRef(() => ToolModule), forwardRef(() => BoardModule), LoggerModule],\n\tproviders: [\n\t\tAuthorizationHelper,\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\tAuthorizationReferenceService,\n\t],\n\texports: [AuthorizationReferenceService],\n})\nexport class AuthorizationReferenceModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthorizationReferenceService.html":{"url":"injectables/AuthorizationReferenceService.html","title":"injectable - AuthorizationReferenceService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthorizationReferenceService\n\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/domain/service/authorization-reference.service.ts\n \n\n\n \n Description\n \n \n Should by use only internal in authorization module. See ticket: BC-3990\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 checkPermissionByReferences\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(loader: ReferenceLoader, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/service/authorization-reference.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 loader\n \n \n ReferenceLoader\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 Public\n Async\n checkPermissionByReferences\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/domain/service/authorization-reference.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 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 Returns : Promise\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 hasPermissionByReferences(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/domain/service/authorization-reference.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 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 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 { ReferenceLoader } from './reference.loader';\nimport { AuthorizationContext, AuthorizableReferenceType } from '../type';\nimport { ForbiddenLoggableException } from '../error';\nimport { AuthorizationService } from './authorization.service';\n\n/**\n * Should by use only internal in authorization module. See ticket: BC-3990\n */\n@Injectable()\nexport class AuthorizationReferenceService {\n\tconstructor(private readonly loader: ReferenceLoader, private readonly authorizationService: AuthorizationService) {}\n\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\tpublic async hasPermissionByReferences(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tconst [user, object] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.loader.loadAuthorizableObject(entityName, entityId),\n\t\t]);\n\n\t\tconst hasPermission = this.authorizationService.hasPermission(user, object, context);\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/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/domain/service/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 getUserWithPermissions\n \n \n Public\n hasAllPermissions\n \n \n Public\n hasOneOfPermissions\n \n \n Public\n hasPermission\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ruleManager: RuleManager, authorizationHelper: AuthorizationHelper, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/service/authorization.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 ruleManager\n \n \n RuleManager\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 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 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/domain/service/authorization.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 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 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/domain/service/authorization.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 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 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/domain/service/authorization.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 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 Returns : void\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/domain/service/authorization.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 userId\n \n EntityId\n \n\n \n No\n \n\n\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/domain/service/authorization.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 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 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/domain/service/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 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 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/domain/service/authorization.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 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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport { UserRepo } from '@shared/repo';\nimport { AuthorizationHelper } from './authorization.helper';\nimport { ForbiddenLoggableException } from '../error';\nimport { RuleManager } from './rule-manager';\nimport { AuthorizationContext } from '../type';\n\n@Injectable()\nexport class AuthorizationService {\n\tconstructor(\n\t\tprivate readonly ruleManager: RuleManager,\n\t\tprivate readonly authorizationHelper: AuthorizationHelper,\n\t\tprivate readonly userRepo: UserRepo\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\tpublic checkAllPermissions(user: User, requiredPermissions: string[]): void {\n\t\tif (!this.authorizationHelper.hasAllPermissions(user, requiredPermissions)) {\n\t\t\t// TODO: Should be ForbiddenLoggableException\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 ForbiddenLoggableException\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\t// replace with service method getUserWithPermissions BC-5069\n\t\tconst userWithPopulatedRoles = await this.userRepo.findById(userId, true);\n\n\t\treturn userWithPopulatedRoles;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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\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\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 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 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 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 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:249\n\n \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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 visitExternalToolElement\n \n \n \n \n visitFileElement\n \n \n \n \n visitLinkElement\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: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 card\n \n Card\n \n\n \n No\n \n\n\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: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 column\n \n Column\n \n\n \n No\n \n\n\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: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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElement\n \n \n \n \n \n \nvisitExternalToolElement(externalToolElement: ExternalToolElement)\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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitLinkElement\n \n \n \n \n \n \nvisitLinkElement(linkElement: LinkElement)\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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\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: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 submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\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 { ExternalToolElement } from '../external-tool-element.do';\nimport type { FileElement } from '../file-element.do';\nimport type { LinkElement } from '../link-element.do';\nimport type { RichTextElement } from '../rich-text-element.do';\nimport type { SubmissionContainerElement } from '../submission-container-element.do';\nimport type { 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\tvisitLinkElement(linkElement: LinkElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n\tvisitExternalToolElement(externalToolElement: ExternalToolElement): 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\tvisitLinkElementAsync(linkElement: LinkElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n\tvisitExternalToolElementAsync(externalToolElement: ExternalToolElement): 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 visitExternalToolElementAsync\n \n \n \n \n visitFileElementAsync\n \n \n \n \n visitLinkElementAsync\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: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 card\n \n Card\n \n\n \n No\n \n\n\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: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 column\n \n Column\n \n\n \n No\n \n\n\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: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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElementAsync\n \n \n \n \n \n \nvisitExternalToolElementAsync(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitLinkElementAsync\n \n \n \n \n \n \nvisitLinkElementAsync(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\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: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 submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\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 { ExternalToolElement } from '../external-tool-element.do';\nimport type { FileElement } from '../file-element.do';\nimport type { LinkElement } from '../link-element.do';\nimport type { RichTextElement } from '../rich-text-element.do';\nimport type { SubmissionContainerElement } from '../submission-container-element.do';\nimport type { 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\tvisitLinkElement(linkElement: LinkElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n\tvisitExternalToolElement(externalToolElement: ExternalToolElement): 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\tvisitLinkElementAsync(linkElement: LinkElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n\tvisitExternalToolElementAsync(externalToolElement: ExternalToolElement): 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 copyColumnBoard\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, columnBoardCopyService: ColumnBoardCopyService, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:36\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 columnBoardCopyService\n \n \n ColumnBoardCopyService\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: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 params\n \n BoardCopyParams\n \n\n \n No\n \n\n\n \n \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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyColumnBoard\n \n \n \n \n \n \n \n copyColumnBoard(columnBoardTarget: ColumnBoardTarget, user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.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 columnBoardTarget\n \n ColumnBoardTarget\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 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: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 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 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: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 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 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: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 statuses\n \n CopyStatus[]\n \n\n \n No\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: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 resolved\n \n []\n \n\n \n No\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: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 boardStatus\n \n CopyStatus\n \n\n \n No\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\tBoardExternalReferenceType,\n\tColumnBoard,\n\tColumnboardBoardElement,\n\tColumnBoardTarget,\n\tCourse,\n\tisColumnBoardTarget,\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 { ColumnBoardCopyService } from '@modules/board/service/column-board-copy.service';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@modules/copy-helper';\nimport { getResolvedValues } from '@modules/files-storage/helper';\nimport { LessonCopyService } from '@modules/lesson/service';\nimport { TaskCopyService } from '@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 columnBoardCopyService: ColumnBoardCopyService,\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\n\t\ttry {\n\t\t\tawait this.boardRepo.save(boardCopy);\n\t\t} catch (err) {\n\t\t\tthis.logger.warn(err);\n\t\t\tstatus.status = CopyStatusEnum.FAIL;\n\t\t}\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\tif (element.boardElementType === BoardElementType.ColumnBoard && isColumnBoardTarget(element.target)) {\n\t\t\t\treturn this.copyColumnBoard(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 async copyColumnBoard(\n\t\tcolumnBoardTarget: ColumnBoardTarget,\n\t\tuser: User,\n\t\tdestinationCourse: Course\n\t): Promise {\n\t\treturn this.columnBoardCopyService.copyColumnBoard({\n\t\t\toriginalColumnBoardId: columnBoardTarget.columnBoardId,\n\t\t\tuserId: user.id,\n\t\t\tdestinationExternalReference: {\n\t\t\t\tid: destinationCourse.id,\n\t\t\t\ttype: BoardExternalReferenceType.Course,\n\t\t\t},\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\tif (status.copyEntity instanceof ColumnBoard) {\n\t\t\t\tconst columnBoardElement = new ColumnboardBoardElement({\n\t\t\t\t\ttarget: new ColumnBoardTarget({ columnBoardId: status.copyEntity.id, title: status.copyEntity.title }),\n\t\t\t\t});\n\t\t\t\treferences.push(columnBoardElement);\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:32\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:36\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:40\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\tfirstName?: string;\n\tlastName?: string;\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\tfirstName?: string;\n\tlastName?: string;\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 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 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 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 '@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.getTeachersList().map((user) => {\n\t\t\t\treturn {\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\tfirstName: user.firstName,\n\t\t\t\t\tlastName: user.lastName,\n\t\t\t\t\troles: [BoardRoles.EDITOR],\n\t\t\t\t\tuserRoleEnum: UserRoleEnum.TEACHER,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...course.getSubstitutionTeachersList().map((user) => {\n\t\t\t\treturn {\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\tfirstName: user.firstName,\n\t\t\t\t\tlastName: user.lastName,\n\t\t\t\t\troles: [BoardRoles.EDITOR],\n\t\t\t\t\tuserRoleEnum: UserRoleEnum.SUBSTITUTION_TEACHER,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t...course.getStudentsList().map((user) => {\n\t\t\t\treturn {\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\tfirstName: user.firstName,\n\t\t\t\t\tlastName: user.lastName,\n\t\t\t\t\troles: [BoardRoles.READER],\n\t\t\t\t\tuserRoleEnum: UserRoleEnum.STUDENT,\n\t\t\t\t};\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 buildExternalToolElement\n \n \n \n \n buildFileElement\n \n \n \n \n buildLinkElement\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: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 CardNode\n \n\n \n No\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: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 ColumnNode\n \n\n \n No\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: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 ColumnBoardNode\n \n\n \n No\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 buildExternalToolElement\n \n \n \n \n \n \nbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.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 boardNode\n \n ExternalToolElementNodeEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ExternalToolElement\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: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 boardNode\n \n FileElementNode\n \n\n \n No\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 buildLinkElement\n \n \n \n \n \n \nbuildLinkElement(boardNode: LinkElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.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 boardNode\n \n LinkElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : LinkElement\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: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 boardNode\n \n RichTextElementNode\n \n\n \n No\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: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 boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\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: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 boardNode\n \n SubmissionItemNode\n \n\n \n No\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 type {\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tExternalToolElement,\n\tFileElement,\n\tLinkElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\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 { ExternalToolElementNodeEntity } from '../external-tool-element-node.entity';\nimport type { FileElementNode } from '../file-element-node.entity';\nimport type { LinkElementNode } from '../link-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\tbuildLinkElement(boardNode: LinkElementNode): LinkElement;\n\tbuildRichTextElement(boardNode: RichTextElementNode): RichTextElement;\n\tbuildSubmissionContainerElement(boardNode: SubmissionContainerElementNode): SubmissionContainerElement;\n\tbuildSubmissionItem(boardNode: SubmissionItemNode): SubmissionItem;\n\tbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity): ExternalToolElement;\n}\n\n \n\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 buildExternalToolElement\n \n \n Public\n buildFileElement\n \n \n Public\n buildLinkElement\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:30\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:30\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: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 boardNode\n \n CardNode\n \n\n \n No\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:185\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 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: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 boardNode\n \n ColumnNode\n \n\n \n No\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: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 boardNode\n \n ColumnBoardNode\n \n\n \n No\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:39\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 Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildExternalToolElement\n \n \n \n \n \n \nbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.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 boardNode\n \n ExternalToolElementNodeEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ExternalToolElement\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: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 boardNode\n \n FileElementNode\n \n\n \n No\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 buildLinkElement\n \n \n \n \n \n \n \n buildLinkElement(boardNode: LinkElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.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 boardNode\n \n LinkElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : LinkElement\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: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 boardNode\n \n RichTextElementNode\n \n\n \n No\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: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 boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\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: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 SubmissionItemNode\n \n\n \n No\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:201\n \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 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:196\n \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 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: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 boardNode\n \n BoardNode\n \n\n \n No\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\tExternalToolElementNodeEntity,\n\tFileElementNode,\n\tLinkElementNode,\n\tRichTextElementNode,\n\tSubmissionContainerElementNode,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport {\n\tAnyBoardDo,\n\tBoardNodeType,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tExternalToolElement,\n\tFileElement,\n\tLinkElement,\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.LINK_ELEMENT,\n\t\t\tBoardNodeType.RICH_TEXT_ELEMENT,\n\t\t\tBoardNodeType.SUBMISSION_CONTAINER_ELEMENT,\n\t\t\tBoardNodeType.EXTERNAL_TOOL,\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\talternativeText: boardNode.alternativeText,\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 buildLinkElement(boardNode: LinkElementNode): LinkElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new LinkElement({\n\t\t\tid: boardNode.id,\n\t\t\turl: boardNode.url,\n\t\t\ttitle: boardNode.title,\n\t\t\timageUrl: boardNode.imageUrl,\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\tchildren: elements,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tdueDate: boardNode.dueDate,\n\t\t});\n\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\tbuildExternalToolElement(boardNode: ExternalToolElementNodeEntity): ExternalToolElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element: ExternalToolElement = new ExternalToolElement({\n\t\t\tid: boardNode.id,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tcontextExternalToolId: boardNode.contextExternalTool?.id,\n\t\t});\n\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/BoardDoCopyService.html":{"url":"injectables/BoardDoCopyService.html","title":"injectable - BoardDoCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoCopyService\n\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-copy-service/board-do-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 Public\n Async\n copy\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 Async\n copy\n \n \n \n \n \n \n \n copy(params: BoardDoCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/board-do-copy.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 params\n \n BoardDoCopyParams\n \n\n \n No\n \n\n\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 { CopyStatus } from '@modules/copy-helper';\nimport { RecursiveCopyVisitor } from './recursive-copy.visitor';\nimport { SchoolSpecificFileCopyService } from './school-specific-file-copy.interface';\n\nexport type BoardDoCopyParams = {\n\toriginal: AnyBoardDo;\n\tfileCopyService: SchoolSpecificFileCopyService;\n};\n\n@Injectable()\nexport class BoardDoCopyService {\n\tpublic async copy(params: BoardDoCopyParams): Promise {\n\t\tconst visitor = new RecursiveCopyVisitor(params.fileCopyService);\n\n\t\tconst result = await visitor.copy(params.original);\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"},"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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { BoardDoAuthorizable, BoardRoles } from '@shared/domain/domainobject';\nimport { User } from '@shared/domain/entity';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 '@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 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 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 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 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 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 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 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 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_exports\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\nUserModule\n\nUserModule\n\nBoardModule -->\n\nUserModule->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\nColumnBoardCopyService \n\nColumnBoardCopyService \n\nColumnBoardCopyService -->\n\nBoardModule->ColumnBoardCopyService \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\nBoardDoCopyService\n\nBoardDoCopyService\n\nBoardModule -->\n\nBoardDoCopyService->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\nColumnBoardCopyService\n\nColumnBoardCopyService\n\nBoardModule -->\n\nColumnBoardCopyService->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\nOpenGraphProxyService\n\nOpenGraphProxyService\n\nBoardModule -->\n\nOpenGraphProxyService->BoardModule\n\n\n\n\n\nRecursiveDeleteVisitor\n\nRecursiveDeleteVisitor\n\nBoardModule -->\n\nRecursiveDeleteVisitor->BoardModule\n\n\n\n\n\nSchoolSpecificFileCopyServiceFactory\n\nSchoolSpecificFileCopyServiceFactory\n\nBoardModule -->\n\nSchoolSpecificFileCopyServiceFactory->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 BoardDoCopyService\n \n \n BoardDoRepo\n \n \n BoardDoService\n \n \n BoardNodeRepo\n \n \n CardService\n \n \n ColumnBoardCopyService\n \n \n ColumnBoardService\n \n \n ColumnService\n \n \n ContentElementFactory\n \n \n ContentElementService\n \n \n CourseRepo\n \n \n OpenGraphProxyService\n \n \n RecursiveDeleteVisitor\n \n \n SchoolSpecificFileCopyServiceFactory\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 UserModule\n \n \n \n \n Exports\n \n \n BoardDoAuthorizableService\n \n \n CardService\n \n \n ColumnBoardCopyService\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 { UserModule } from '../user';\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\tOpenGraphProxyService,\n\tSubmissionItemService,\n} from './service';\nimport { BoardDoCopyService, SchoolSpecificFileCopyServiceFactory } from './service/board-do-copy-service';\nimport { ColumnBoardCopyService } from './service/column-board-copy.service';\n\n@Module({\n\timports: [ConsoleWriterModule, FilesStorageClientModule, LoggerModule, UserModule],\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\tBoardDoCopyService,\n\t\tColumnBoardCopyService,\n\t\tSchoolSpecificFileCopyServiceFactory,\n\t\tOpenGraphProxyService,\n\t],\n\texports: [\n\t\tBoardDoAuthorizableService,\n\t\tCardService,\n\t\tColumnBoardService,\n\t\tColumnService,\n\t\tContentElementService,\n\t\tSubmissionItemService,\n\t\tColumnBoardCopyService,\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 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 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 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 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 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 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 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 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 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 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 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 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: SubmissionsResponse})@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: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 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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { SubmissionsResponse } from './dto/submission-item/submissions.response';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport { SubmissionItemUc } from '../uc/submission-item.uc';\nimport { SubmissionContainerUrlParams, SubmissionItemUrlParams, UpdateSubmissionItemBodyParams } 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: SubmissionsResponse })\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 { submissionItems, users } = await this.submissionItemUc.findSubmissionItems(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.submissionContainerId\n\t\t);\n\t\tconst mapper = SubmissionItemResponseMapper.getInstance();\n\t\tconst response = mapper.mapToResponse(submissionItems, users);\n\n\t\treturn response;\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 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"},"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 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 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 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 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 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: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 BoardCompositeVisitor\n \n\n \n No\n \n\n\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:40\n\n \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 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: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 domainObject\n \n AnyBoardDo\n \n\n \n No\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 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 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 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:10\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:14\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:18\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:22\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 { ExternalToolElement } from './external-tool-element.do';\nimport { FileElement } from './file-element.do';\nimport { LinkElement } from './link-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 LinkElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement ||\n\t\t\tdomainObject instanceof ExternalToolElement;\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\nexport function isCard(reference: unknown): reference is Card {\n\treturn reference instanceof Card;\n}\n\n \n\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(ExternalToolElementResponse, FileElementResponse, LinkElementResponse, RichTextElementResponse, 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: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 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 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: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 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 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: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 cardIdParams\n \n CardIdsParams\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { BoardUc, CardUc } from '../uc';\nimport {\n\tAnyContentElementResponse,\n\tCardIdsParams,\n\tCardListResponse,\n\tCardUrlParams,\n\tCreateContentElementBodyParams,\n\tExternalToolElementResponse,\n\tFileElementResponse,\n\tLinkElementResponse,\n\tMoveCardBodyParams,\n\tRenameBodyParams,\n\tRichTextElementResponse,\n\tSubmissionContainerElementResponse,\n} from './dto';\nimport { SetHeightBodyParams } from './dto/board/set-height.body.params';\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(\n\t\tExternalToolElementResponse,\n\t\tFileElementResponse,\n\t\tLinkElementResponse,\n\t\tRichTextElementResponse,\n\t\tSubmissionContainerElementResponse\n\t)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [\n\t\t\t\t{ $ref: getSchemaPath(ExternalToolElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(LinkElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\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,\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 { ExternalToolElement } from './external-tool-element.do';\nimport { FileElement } from './file-element.do';\nimport { LinkElement } from './link-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 LinkElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement ||\n\t\t\tdomainObject instanceof ExternalToolElement;\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\nexport function isCard(reference: unknown): reference is Card {\n\treturn reference instanceof Card;\n}\n\n \n\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:21\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:55\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:41\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:34\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:61\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:38\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:58\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 {\n\tAnyContentElementResponse,\n\tExternalToolElementResponse,\n\tFileElementResponse,\n\tLinkElementResponse,\n\tRichTextElementResponse,\n\tSubmissionContainerElementResponse,\n} from '../element';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { VisibilitySettingsResponse } from './visibility-settings.response';\n\n@ApiExtraModels(\n\tExternalToolElementResponse,\n\tFileElementResponse,\n\tLinkElementResponse,\n\tRichTextElementResponse,\n\tSubmissionContainerElementResponse\n)\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: [\n\t\t\t\t{ $ref: getSchemaPath(ExternalToolElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(LinkElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementResponse) },\n\t\t\t],\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 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 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 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 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 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: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 cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \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 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 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 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\treturn this.boardDoRepo.findByClassAndId(Card, cardId);\n\t}\n\n\tasync findByIds(cardIds: EntityId[]): Promise {\n\t\tconst cards = await this.boardDoRepo.findByIds(cardIds);\n\t\tif (cards.some((card) => !(card instanceof Card))) {\n\t\t\tthrow new NotFoundException('some ids do not belong to a card');\n\t\t}\n\n\t\treturn cards as 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:8\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: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 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 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: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 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 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: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 elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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:83\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 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: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 cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \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: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 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 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, AnyContentElementDo, Card, ContentElementType, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\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 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 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 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 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 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 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 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 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 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 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 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 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 import { DeepPartial } from 'fishery';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { ClassEntity, ClassSourceOptionsEntity, IClassEntityProps } from '@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 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 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 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 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 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 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 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 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 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 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 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 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/ClassInfoDto.html":{"url":"classes/ClassInfoDto.html","title":"class - ClassInfoDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassInfoDto\n\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/uc/dto/class-info.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 externalSourceName\n \n \n id\n \n \n Optional\n isUpgradable\n \n \n name\n \n \n Optional\n schoolYear\n \n \n teachers\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: ClassInfoDto)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.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 ClassInfoDto\n \n \n \n No\n \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 externalSourceName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:10\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 Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n isUpgradable\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:16\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/group/uc/dto/class-info.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n schoolYear\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ClassRootType\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/class-info.dto.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ClassRootType } from './class-root-type';\n\nexport class ClassInfoDto {\n\tid: string;\n\n\ttype: ClassRootType;\n\n\tname: string;\n\n\texternalSourceName?: string;\n\n\tteachers: string[];\n\n\tschoolYear?: string;\n\n\tisUpgradable?: boolean;\n\n\tconstructor(props: ClassInfoDto) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.name = props.name;\n\t\tthis.externalSourceName = props.externalSourceName;\n\t\tthis.teachers = props.teachers;\n\t\tthis.schoolYear = props.schoolYear;\n\t\tthis.isUpgradable = props.isUpgradable;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassInfoResponse.html":{"url":"classes/ClassInfoResponse.html","title":"class - ClassInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassInfoResponse\n\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/controller/dto/response/class-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 externalSourceName\n \n \n \n id\n \n \n \n Optional\n isUpgradable\n \n \n \n name\n \n \n \n Optional\n schoolYear\n \n \n \n teachers\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: ClassInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.response.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 ClassInfoResponse\n \n \n \n No\n \n \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 externalSourceName\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/group/controller/dto/response/class-info.response.ts:15\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/group/controller/dto/response/class-info.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n isUpgradable\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.response.ts:24\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/group/controller/dto/response/class-info.response.ts:12\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 : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.response.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n Type : string[]\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/group/controller/dto/response/class-info.response.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ClassRootType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ClassRootType})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info.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';\nimport { ClassRootType } from '../../../uc/dto/class-root-type';\n\nexport class ClassInfoResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty({ enum: ClassRootType })\n\ttype: ClassRootType;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\texternalSourceName?: string;\n\n\t@ApiProperty({ type: [String] })\n\tteachers: string[];\n\n\t@ApiPropertyOptional()\n\tschoolYear?: string;\n\n\t@ApiPropertyOptional()\n\tisUpgradable?: boolean;\n\n\tconstructor(props: ClassInfoResponse) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.name = props.name;\n\t\tthis.externalSourceName = props.externalSourceName;\n\t\tthis.teachers = props.teachers;\n\t\tthis.schoolYear = props.schoolYear;\n\t\tthis.isUpgradable = props.isUpgradable;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassInfoSearchListResponse.html":{"url":"classes/ClassInfoSearchListResponse.html","title":"class - ClassInfoSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassInfoSearchListResponse\n\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/controller/dto/response/class-info-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: ClassInfoResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/class-info-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 ClassInfoResponse[]\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 : ClassInfoResponse[]\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 { ClassInfoResponse } from './class-info.response';\n\nexport class ClassInfoSearchListResponse extends PaginationResponse {\n\tconstructor(data: ClassInfoResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [ClassInfoResponse] })\n\tdata: ClassInfoResponse[];\n}\n\n \n\n\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 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 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 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 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 findClassesForSchool\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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: 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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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 { Class } from '../domain';\nimport { ClassesRepo } from '../repo';\n\n@Injectable()\nexport class ClassService {\n\tconstructor(private readonly classesRepo: ClassesRepo) {}\n\n\tpublic async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst classes: Class[] = await this.classesRepo.findAllBySchoolId(schoolId);\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/ClassSortParams.html":{"url":"classes/ClassSortParams.html","title":"class - ClassSortParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassSortParams\n\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/controller/dto/request/class-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 : ClassSortBy\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(ClassSortBy)@ApiPropertyOptional({enum: ClassSortBy})\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 ClassSortBy {\n\tNAME = 'name',\n\tEXTERNAL_SOURCE_NAME = 'externalSourceName',\n}\n\nexport class ClassSortParams extends SortingParams {\n\t@IsOptional()\n\t@IsEnum(ClassSortBy)\n\t@ApiPropertyOptional({ enum: ClassSortBy })\n\tsortBy?: ClassSortBy;\n}\n\n \n\n\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 findAllBySchoolId\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)\n \n \n \n \n Defined in apps/server/src/modules/class/repo/classes.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 findAllBySchoolId\n \n \n \n \n \n \n \n findAllBySchoolId(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/classes.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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/modules/class/repo/classes.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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 classes\n \n Class[]\n \n\n \n No\n \n\n\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, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Class } from '../domain';\nimport { ClassEntity } from '../entity';\nimport { ClassMapper } from './mapper';\n\n@Injectable()\nexport class ClassesRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findAllBySchoolId(schoolId: EntityId): Promise {\n\t\tconst classes: ClassEntity[] = await this.em.find(ClassEntity, { schoolId: new ObjectId(schoolId) });\n\n\t\tconst mapped: Class[] = ClassMapper.mapToDOs(classes);\n\n\t\treturn mapped;\n\t}\n\n\tasync findAllByUserId(userId: EntityId): Promise {\n\t\tconst classes: ClassEntity[] = await this.em.find(ClassEntity, { userIds: new ObjectId(userId) });\n\n\t\tconst mapped: Class[] = ClassMapper.mapToDOs(classes);\n\n\t\treturn mapped;\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 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 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 '@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\treturn undefined;\n\t\t\t}\n\t\t\tawait this.schoolMigrationService.markUnmigratedUsersAsOutdated(schoolId);\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 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 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 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 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 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 '@modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@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 '@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 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 '@modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@modules/collaborative-storage/services/dto/team.dto';\nimport { Injectable } from '@nestjs/common';\nimport { RoleDto } from '@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 '@modules/tool';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@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:32\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 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, ICurrentUser } from '@modules/authentication';\nimport { LegacyLogger } from '@src/core/logger';\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 '@modules/authorization';\nimport { TeamPermissionsMapper } from '@modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamMapper } from '@modules/collaborative-storage/mapper/team.mapper';\nimport { CollaborativeStorageService } from '@modules/collaborative-storage/services/collaborative-storage.service';\nimport { RoleModule } from '@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 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 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 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 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 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 '@modules/authorization';\nimport { RoleService } from '@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 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 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 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 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 '@modules/collaborative-storage/services/collaborative-storage.service';\nimport { TeamPermissionsMapper } from '@modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamDto } from '@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 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 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 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 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 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 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\nexport function isColumn(reference: unknown): reference is Column {\n\treturn reference instanceof Column;\n}\n\n \n\n\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 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 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 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 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 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 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\nexport function isColumnBoard(reference: unknown): reference is ColumnBoard {\n\treturn reference instanceof ColumnBoard;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnBoardCopyService.html":{"url":"injectables/ColumnBoardCopyService.html","title":"injectable - ColumnBoardCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnBoardCopyService\n\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-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 copyColumnBoard\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, userService: UserService, boardDoCopyService: BoardDoCopyService, fileCopyServiceFactory: SchoolSpecificFileCopyServiceFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/column-board-copy.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 courseRepo\n \n \n CourseRepo\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 boardDoCopyService\n \n \n BoardDoCopyService\n \n \n \n No\n \n \n \n \n fileCopyServiceFactory\n \n \n SchoolSpecificFileCopyServiceFactory\n \n \n \n No\n \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 copyColumnBoard\n \n \n \n \n \n \n \n copyColumnBoard(props: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board-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 props\n \n literal type\n \n\n \n No\n \n\n\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, NotImplementedException } from '@nestjs/common';\nimport {\n\tBoardExternalReference,\n\tBoardExternalReferenceType,\n\tColumnBoard,\n\tEntityId,\n\tisColumnBoard,\n} from '@shared/domain';\nimport { CourseRepo } from '@shared/repo';\nimport { CopyStatus } from '@modules/copy-helper';\nimport { UserService } from '@modules/user';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoCopyService, SchoolSpecificFileCopyServiceFactory } from './board-do-copy-service';\n\n@Injectable()\nexport class ColumnBoardCopyService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly boardDoCopyService: BoardDoCopyService,\n\t\tprivate readonly fileCopyServiceFactory: SchoolSpecificFileCopyServiceFactory\n\t) {}\n\n\tasync copyColumnBoard(props: {\n\t\toriginalColumnBoardId: EntityId;\n\t\tdestinationExternalReference: BoardExternalReference;\n\t\tuserId: EntityId;\n\t}): Promise {\n\t\tconst originalBoard = await this.boardDoRepo.findByClassAndId(ColumnBoard, props.originalColumnBoardId);\n\n\t\tconst user = await this.userService.findById(props.userId);\n\t\t/* istanbul ignore next */\n\t\tif (originalBoard.context.type !== BoardExternalReferenceType.Course) {\n\t\t\tthrow new NotImplementedException('only courses are supported as board parents');\n\t\t}\n\t\tconst course = await this.courseRepo.findById(originalBoard.context.id); // TODO: get rid of this\n\n\t\tconst fileCopyService = this.fileCopyServiceFactory.build({\n\t\t\tsourceSchoolId: course.school.id,\n\t\t\ttargetSchoolId: user.schoolId,\n\t\t\tuserId: props.userId,\n\t\t});\n\n\t\tconst copyStatus = await this.boardDoCopyService.copy({ original: originalBoard, fileCopyService });\n\n\t\t/* istanbul ignore next */\n\t\tif (!isColumnBoard(copyStatus.copyEntity)) {\n\t\t\tthrow new InternalServerErrorException('expected copy of columnboard to be a columnboard');\n\t\t}\n\n\t\tcopyStatus.copyEntity.context = props.destinationExternalReference;\n\t\tawait this.boardDoRepo.save(copyStatus.copyEntity);\n\n\t\treturn copyStatus;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 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 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 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 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\nexport function isColumnBoard(reference: unknown): reference is ColumnBoard {\n\treturn reference instanceof ColumnBoard;\n}\n\n \n\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 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 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 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 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 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 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 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 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\nexport function isColumnBoardTarget(reference: unknown): reference is ColumnBoardTarget {\n\treturn reference instanceof 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/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 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 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 '@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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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\nexport function isColumn(reference: unknown): reference is Column {\n\treturn reference instanceof Column;\n}\n\n \n\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 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 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 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 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 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 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 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 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 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 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:140\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 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: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 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 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 '@modules/lesson/service';\nimport { ComponentType } from '@src/shared/domain/entity/lesson.entity';\nimport { TaskService } from '@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? {\n\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\ttype: CommonCartridgeResourceType.WEB_LINK_V3,\n\t\t\t\t\t\turl: content.content.url,\n\t\t\t\t\t\ttitle: content.content.description,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\ttype: CommonCartridgeResourceType.WEB_LINK_V1,\n\t\t\t\t\t\turl: content.content.url,\n\t\t\t\t\t\ttitle: content.content.description,\n\t\t\t\t };\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 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 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 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_exports\n\n\n\ncluster_CommonToolModule_imports\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\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\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 \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 \n \n \n\n\n \n\n\n \n import { LegacySchoolModule } from '@modules/legacy-school';\nimport { Module } from '@nestjs/common';\nimport { ContextExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { CommonToolService, CommonToolValidationService } from './service';\n\n@Module({\n\timports: [LoggerModule, LegacySchoolModule],\n\t// TODO: make deletion of entities cascading, adjust ExternalToolService.deleteExternalTool and remove the repos from here\n\tproviders: [CommonToolService, CommonToolValidationService, SchoolExternalToolRepo, ContextExternalToolRepo],\n\texports: [CommonToolService, CommonToolValidationService, SchoolExternalToolRepo, ContextExternalToolRepo],\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 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 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 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 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 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 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 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 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 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 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 '@modules/oauth-provider/controller/dto/response/oidc-context.response';\nimport { OauthClientResponse } from '@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 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 buildExternalTool\n \n \n Private\n buildFile\n \n \n Private\n buildLink\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: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 type\n \n ContentElementType\n \n\n \n No\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 buildExternalTool\n \n \n \n \n \n \n \n buildExternalTool()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:93\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 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:43\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 buildLink\n \n \n \n \n \n \n \n buildLink()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:56\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:68\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:81\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 { ExternalToolElement } from './external-tool-element.do';\nimport { FileElement } from './file-element.do';\nimport { LinkElement } from './link-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport { AnyContentElementDo, ContentElementType } from './types';\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.LINK:\n\t\t\t\telement = this.buildLink();\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\tcase ContentElementType.EXTERNAL_TOOL:\n\t\t\t\telement = this.buildExternalTool();\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\talternativeText: '',\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 buildLink() {\n\t\tconst element = new LinkElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\turl: '',\n\t\t\ttitle: '',\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 element = new SubmissionContainerElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tdueDate: null,\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 buildExternalTool() {\n\t\tconst element = new ExternalToolElement({\n\t\t\tid: new ObjectId().toHexString(),\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\tLinkElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t\tExternalToolElementResponseMapper.getInstance(),\n\t]\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.factory.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 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: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 element\n \n AnyBoardDo\n \n\n \n No\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 { ExternalToolElementResponseMapper } from './external-tool-element-response.mapper';\nimport { FileElementResponseMapper } from './file-element-response.mapper';\nimport { LinkElementResponseMapper } from './link-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\tLinkElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t\tExternalToolElementResponseMapper.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, openGraphProxyService: OpenGraphProxyService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element.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 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 openGraphProxyService\n \n \n OpenGraphProxyService\n \n \n \n No\n \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: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 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 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: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 element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \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: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 elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 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 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: AnyElementContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.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 element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n content\n \n AnyElementContentBody\n \n\n \n No\n \n\n\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 { AnyElementContentBody } from '../controller/dto';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\nimport { ContentElementUpdateVisitor } from './content-element-update.visitor';\nimport { OpenGraphProxyService } from './open-graph-proxy.service';\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\tprivate readonly openGraphProxyService: OpenGraphProxyService\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(element: AnyContentElementDo, content: AnyElementContentBody): Promise {\n\t\tconst updater = new ContentElementUpdateVisitor(content, this.openGraphProxyService);\n\t\tawait element.acceptAsync(updater);\n\n\t\tconst parent = await this.boardDoRepo.findParentOfId(element.id);\n\n\t\tawait this.boardDoRepo.save(element, parent);\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"},"injectables/ContentElementUpdateVisitor.html":{"url":"injectables/ContentElementUpdateVisitor.html","title":"injectable - ContentElementUpdateVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\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 \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 rejectNotHandled\n \n \n Async\n visitCardAsync\n \n \n Async\n visitColumnAsync\n \n \n Async\n visitColumnBoardAsync\n \n \n Async\n visitExternalToolElementAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitLinkElementAsync\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(content: AnyElementContentBody, openGraphProxyService: OpenGraphProxyService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:29\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 AnyElementContentBody\n \n \n \n No\n \n \n \n \n openGraphProxyService\n \n \n OpenGraphProxyService\n \n \n \n No\n \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 rejectNotHandled\n \n \n \n \n \n \n \n rejectNotHandled(component: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.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 component\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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/service/content-element-update.visitor.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 card\n \n Card\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 column\n \n Column\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitExternalToolElementAsync\n \n \n \n \n \n \n \n visitExternalToolElementAsync(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitLinkElementAsync\n \n \n \n \n \n \n \n visitLinkElementAsync(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \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/service/content-element-update.visitor.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 submission\n \n SubmissionItem\n \n\n \n No\n \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 content\n \n \n \n \n \n \n Type : AnyElementContentBody\n\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:29\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { sanitizeRichText } from '@shared/controller';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitorAsync,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tExternalToolElement,\n\tFileElement,\n\tInputFormat,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport {\n\tAnyElementContentBody,\n\tExternalToolContentBody,\n\tFileContentBody,\n\tLinkContentBody,\n\tRichTextContentBody,\n\tSubmissionContainerContentBody,\n} from '../controller/dto';\nimport { OpenGraphProxyService } from './open-graph-proxy.service';\n\n@Injectable()\nexport class ContentElementUpdateVisitor implements BoardCompositeVisitorAsync {\n\tprivate readonly content: AnyElementContentBody;\n\n\tconstructor(content: AnyElementContentBody, private readonly openGraphProxyService: OpenGraphProxyService) {\n\t\tthis.content = content;\n\t}\n\n\tasync visitColumnBoardAsync(columnBoard: ColumnBoard): Promise {\n\t\treturn this.rejectNotHandled(columnBoard);\n\t}\n\n\tasync visitColumnAsync(column: Column): Promise {\n\t\treturn this.rejectNotHandled(column);\n\t}\n\n\tasync visitCardAsync(card: Card): Promise {\n\t\treturn this.rejectNotHandled(card);\n\t}\n\n\tasync visitFileElementAsync(fileElement: FileElement): Promise {\n\t\tif (this.content instanceof FileContentBody) {\n\t\t\tfileElement.caption = sanitizeRichText(this.content.caption, InputFormat.PLAIN_TEXT);\n\t\t\tfileElement.alternativeText = sanitizeRichText(this.content.alternativeText, InputFormat.PLAIN_TEXT);\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(fileElement);\n\t}\n\n\tasync visitLinkElementAsync(linkElement: LinkElement): Promise {\n\t\tif (this.content instanceof LinkContentBody) {\n\t\t\tconst urlWithProtocol = /:\\/\\//.test(this.content.url) ? this.content.url : `https://${this.content.url}`;\n\t\t\tlinkElement.url = new URL(urlWithProtocol).toString();\n\t\t\tconst openGraphData = await this.openGraphProxyService.fetchOpenGraphData(linkElement.url);\n\t\t\tlinkElement.title = openGraphData.title;\n\t\t\tlinkElement.description = openGraphData.description;\n\t\t\tif (openGraphData.image) {\n\t\t\t\tlinkElement.imageUrl = openGraphData.image.url;\n\t\t\t}\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(linkElement);\n\t}\n\n\tasync visitRichTextElementAsync(richTextElement: RichTextElement): Promise {\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\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(richTextElement);\n\t}\n\n\tasync visitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise {\n\t\tif (this.content instanceof SubmissionContainerContentBody) {\n\t\t\tif (this.content.dueDate !== undefined) {\n\t\t\t\tsubmissionContainerElement.dueDate = this.content.dueDate;\n\t\t\t}\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(submissionContainerElement);\n\t}\n\n\tasync visitSubmissionItemAsync(submission: SubmissionItem): Promise {\n\t\treturn this.rejectNotHandled(submission);\n\t}\n\n\tasync visitExternalToolElementAsync(externalToolElement: ExternalToolElement): Promise {\n\t\tif (this.content instanceof ExternalToolContentBody && this.content.contextExternalToolId !== undefined) {\n\t\t\t// Updates should not remove an existing reference to a tool, to prevent orphan tool instances\n\t\t\texternalToolElement.contextExternalToolId = this.content.contextExternalToolId;\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn this.rejectNotHandled(externalToolElement);\n\t}\n\n\tprivate rejectNotHandled(component: AnyBoardDo): Promise {\n\t\treturn Promise.reject(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\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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AuthorizationLoaderService } from '@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({enum: ToolContextType, enumName: 'ToolContextType', 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: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 { 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({\n\t\tenum: ToolContextType,\n\t\tenumName: 'ToolContextType',\n\t\tnullable: false,\n\t\trequired: true,\n\t\texample: ToolContextType.COURSE,\n\t})\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 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 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 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 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 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 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 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 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 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 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 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 import { ObjectId } from '@mikro-orm/mongodb';\nimport { CustomParameterEntry } from '@modules/tool/common/domain';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextExternalToolProps } from '@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\nToolReferenceService \n\nToolReferenceService \n\nToolReferenceService -->\n\nContextExternalToolModule->ToolReferenceService \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\nToolReferenceService\n\nToolReferenceService\n\nContextExternalToolModule -->\n\nToolReferenceService->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 ToolReferenceService\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 ToolReferenceService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { CommonToolModule } from '../common';\nimport { ExternalToolModule } from '../external-tool';\nimport { SchoolExternalToolModule } from '../school-external-tool';\nimport {\n\tContextExternalToolAuthorizableService,\n\tContextExternalToolService,\n\tContextExternalToolValidationService,\n\tToolReferenceService,\n} from './service';\n\n@Module({\n\timports: [CommonToolModule, ExternalToolModule, SchoolExternalToolModule, LoggerModule],\n\tproviders: [\n\t\tContextExternalToolService,\n\t\tContextExternalToolValidationService,\n\t\tContextExternalToolAuthorizableService,\n\t\tToolReferenceService,\n\t],\n\texports: [\n\t\tContextExternalToolService,\n\t\tContextExternalToolValidationService,\n\t\tContextExternalToolAuthorizableService,\n\t\tToolReferenceService,\n\t],\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 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 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 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 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 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: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 type\n \n ContextExternalToolType\n \n\n \n No\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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/tool/common/enum/tool-context-type.enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport {\n\tContextExternalToolEntity,\n\tContextExternalToolType,\n\tIContextExternalToolProperties,\n} from '@modules/tool/context-external-tool/entity';\nimport { ContextExternalToolQuery } from '@modules/tool/context-external-tool/uc/dto/context-external-tool.types';\nimport { SchoolExternalToolRefDO } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@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\tcase ToolContextType.BOARD_ELEMENT:\n\t\t\t\treturn ContextExternalToolType.BOARD_ELEMENT;\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\tcase ContextExternalToolType.BOARD_ELEMENT:\n\t\t\t\treturn ToolContextType.BOARD_ELEMENT;\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 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: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 customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\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 { CustomParameterEntry } from '../../common/domain';\nimport { CustomParameterEntryParam } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolPostParams } from '../controller/dto';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\n\nexport class ContextExternalToolRequestMapper {\n\tstatic mapContextExternalToolRequest(request: ContextExternalToolPostParams): ContextExternalToolDto {\n\t\treturn {\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 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 \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: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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\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: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 customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\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 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/context-external-tool/mapper/context-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 toolReference\n \n ToolReference\n \n\n \n No\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/context-external-tool/mapper/context-external-tool-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 toolReferences\n \n ToolReference[]\n \n\n \n No\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 \n\n\n \n import { ToolStatusResponseMapper } from '../../common/mapper/tool-status-response.mapper';\nimport { CustomParameterEntryParam, CustomParameterEntryResponse } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolResponse, ToolReferenceResponse } from '../controller/dto';\nimport { ContextExternalTool, ToolReference } 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\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\tstatic 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: ToolStatusResponseMapper.mapToResponse(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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 '@modules/tool/common/enum';\nimport { ContextExternalToolEntity } from '@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 findById\n \n \n Async\n findContextExternalTools\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 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 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 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(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 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 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 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 { ContextExternalTool, ContextRef } from '../domain';\nimport { ContextExternalToolQuery } from '../uc/dto/context-external-tool.types';\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 findById(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 Public\n Async\n deleteContextExternalTool\n \n \n Private\n Async\n filterToolsWithPermissions\n \n \n Async\n getContextExternalTool\n \n \n Public\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, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, contextExternalToolValidationService: ContextExternalToolValidationService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.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 toolPermissionHelper\n \n \n ToolPermissionHelper\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 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 \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, schoolId: 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: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 contextExternalToolDto\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\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 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:92\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 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:124\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 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: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 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 Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\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:101\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 Returns : Promise\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, schoolId: 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: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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import {\n\tAuthorizationContext,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n\tForbiddenLoggableException,\n} from '@modules/authorization';\nimport { AuthorizableReferenceType } from '@modules/authorization/domain';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, Permission, User } from '@shared/domain';\nimport { ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ContextExternalTool, ContextRef } from '../domain';\nimport { ContextExternalToolService, ContextExternalToolValidationService } from '../service';\nimport { ContextExternalToolDto } from './dto/context-external-tool.types';\n\n@Injectable()\nexport class ContextExternalToolUc {\n\tconstructor(\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly contextExternalToolValidationService: ContextExternalToolValidationService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync createContextExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalToolDto.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tif (schoolExternalTool.schoolId !== schoolId) {\n\t\t\tthrow new ForbiddenLoggableException(userId, AuthorizableReferenceType.ContextExternalToolEntity, context);\n\t\t}\n\n\t\tcontextExternalToolDto.schoolToolRef.schoolId = schoolId;\n\t\tconst contextExternalTool = new ContextExternalTool(contextExternalToolDto);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tawait this.contextExternalToolValidationService.validate(contextExternalTool);\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\tschoolId: EntityId,\n\t\tcontextExternalToolId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalToolDto.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tif (schoolExternalTool.schoolId !== schoolId) {\n\t\t\tthrow new ForbiddenLoggableException(userId, AuthorizableReferenceType.ContextExternalToolEntity, context);\n\t\t}\n\n\t\tlet contextExternalTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\n\t\tcontextExternalTool = new ContextExternalTool({\n\t\t\t...contextExternalToolDto,\n\t\t\tid: contextExternalTool.id,\n\t\t});\n\t\tcontextExternalTool.schoolToolRef.schoolId = schoolId;\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tawait this.contextExternalToolValidationService.validate(contextExternalTool);\n\n\t\tconst updatedTool: ContextExternalTool = await this.contextExternalToolService.saveContextExternalTool(\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\treturn updatedTool;\n\t}\n\n\tpublic async deleteContextExternalTool(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolService.findById(contextExternalToolId);\n\n\t\tconst context = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, tool, context);\n\n\t\tawait this.contextExternalToolService.deleteContextExternalTool(tool);\n\t}\n\n\tpublic async getContextExternalToolsForContext(\n\t\tuserId: EntityId,\n\t\tcontextType: ToolContextType,\n\t\tcontextId: string\n\t): Promise {\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.findById(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:12\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: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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\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(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: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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\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 { 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(contextExternalTool: ContextExternalTool): Promise {\n\t\tawait this.checkDuplicateInContext(contextExternalTool);\n\n\t\tconst loadedSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst loadedExternalTool: ExternalTool = await this.externalToolService.findById(loadedSchoolExternalTool.toolId);\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"},"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 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 '@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:95\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:91\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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\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 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:85\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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:103\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:106\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:100\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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 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 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 '@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_exports\n\n\n\ncluster_CopyHelperModule_providers\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 Returns : CopyDictionary\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 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 Returns : CopyStatusEnum\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\nimport { CopyDictionary, 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\t({ name } = matches.groups);\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): CopyDictionary {\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 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 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 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 '@modules/learnroom/controller/dto/lesson/lesson-copy.params';\nimport { LessonCopyParentParams } from '@modules/lesson/types';\nimport { TaskCopyApiParams } from '@modules/task/controller/dto/task-copy.params';\nimport { TaskCopyParentParams } from '@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 FederalStateEntity 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 classes\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 groups\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 classes\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany(undefined, undefined, {fieldName: 'classIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:103\n \n \n\n\n \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:83\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:93\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:79\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:60\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:100\n \n \n\n\n \n \n \n \n \n \n \n \n \n groups\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany(undefined, undefined, {fieldName: 'groupIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:106\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:57\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:64\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:97\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:86\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:68\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:76\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:72\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:90\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 { ClassEntity } from '@modules/class/entity/class.entity';\nimport { GroupEntity } from '@modules/group/entity/group.entity';\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\tclasses?: ClassEntity[];\n\tgroups?: GroupEntity[];\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\nexport class UsersList {\n\tid!: string;\n\n\tfirstName!: string;\n\n\tlastName!: string;\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\t@ManyToMany(() => ClassEntity, undefined, { fieldName: 'classIds' })\n\tclasses = new Collection(this);\n\n\t@ManyToMany(() => GroupEntity, undefined, { fieldName: 'groupIds' })\n\tgroups = new Collection(this);\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\tthis.classes.set(props.classes || []);\n\t\tthis.groups.set(props.groups || []);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = Course.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = Course.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = Course.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate static 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 getStudentsList(): UsersList[] {\n\t\tconst users = this.students.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getTeachersList(): UsersList[] {\n\t\tconst users = this.teachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getSubstitutionTeachersList(): UsersList[] {\n\t\tconst users = this.substitutionTeachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate static extractUserList(users: User[]): UsersList[] {\n\t\tconst usersList: UsersList[] = users.map((user) => {\n\t\t\treturn {\n\t\t\t\tid: user.id,\n\t\t\t\tfirstName: user.firstName,\n\t\t\t\tlastName: user.lastName,\n\t\t\t};\n\t\t});\n\t\treturn usersList;\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: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 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 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: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 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 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 { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\nimport { PaginationParams } from '@shared/controller/';\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 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 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 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 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 '@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: AuthorizationReferenceService, courseCopyService: CourseCopyService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.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 authorization\n \n \n AuthorizationReferenceService\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:27\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: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 courseId\n \n EntityId\n \n\n \n No\n \n\n\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 { AuthorizationContextBuilder } from '@modules/authorization';\nimport { AuthorizationReferenceService, AuthorizableReferenceType } from '@modules/authorization/domain';\nimport { CopyStatus } from '@modules/copy-helper';\nimport { CourseCopyService } from '../service';\n\n@Injectable()\nexport class CourseCopyUC {\n\tconstructor(\n\t\tprivate readonly authorization: AuthorizationReferenceService,\n\t\tprivate readonly courseCopyService: CourseCopyService\n\t) {}\n\n\tasync copyCourse(userId: EntityId, courseId: EntityId): Promise {\n\t\tthis.checkFeatureEnabled();\n\n\t\tconst context = AuthorizationContextBuilder.write([Permission.COURSE_CREATE]);\n\t\tawait this.authorization.checkPermissionByReferences(userId, AuthorizableReferenceType.Course, courseId, context);\n\n\t\tconst result = await this.courseCopyService.copyCourse({ userId, courseId });\n\n\t\treturn result;\n\t}\n\n\tprivate checkFeatureEnabled() {\n\t\t// @hpi-schul-cloud/commons is deprecated way to get envirements\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: AuthorizationReferenceService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-export.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 courseExportService\n \n \n CommonCartridgeExportService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationReferenceService\n \n \n \n No\n \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: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 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 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 { AuthorizationContextBuilder } from '@modules/authorization';\nimport { AuthorizationReferenceService, AuthorizableReferenceType } from '@modules/authorization/domain';\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: AuthorizationReferenceService\n\t) {}\n\n\tasync exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion): Promise {\n\t\tconst context = AuthorizationContextBuilder.read([Permission.COURSE_EDIT]);\n\t\tawait this.authorizationService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tAuthorizableReferenceType.Course,\n\t\t\tcourseId,\n\t\t\tcontext\n\t\t);\n\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { CourseRule } from './course.rule';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 Public\n Async\n findAllCourseGroupsByUserId\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: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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findAllCourseGroupsByUserId\n \n \n \n \n \n \n \n findAllCourseGroupsByUserId(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 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, CourseGroup, 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 findAllCourseGroupsByUserId(userId: EntityId): Promise> {\n\t\tconst [courseGroups, count] = await this.repo.findByUserId(userId);\n\n\t\treturn [courseGroups, count];\n\t}\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 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 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 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 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 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 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 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 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 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 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', 'substitutionTeachers', 'students']);\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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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', 'substitutionTeachers', 'students']);\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 findAllByUserId\n \n \n Public\n Async\n findAllCoursesByUserId\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: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 \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/modules/learnroom/service/course.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 userId\n \n EntityId\n \n\n \n No\n \n\n\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 findAllCoursesByUserId\n \n \n \n \n \n \n \n findAllCoursesByUserId(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 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 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 { Counted, 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 findAllCoursesByUserId(userId: EntityId): Promise> {\n\t\tconst [courses, count] = await this.repo.findAllByUserId(userId);\n\n\t\treturn [courses, count];\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\tasync findAllByUserId(userId: EntityId): Promise {\n\t\tconst [courses] = await this.repo.findAllByUserId(userId);\n\n\t\treturn courses;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 isExternalUser\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 isExternalUser\n \n \n \n \n \n \n \n \n isExternalUser: 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 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\t// support UserId is missed see featherJS\n\tisExternalUser: 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 mapCurrentUserToCreateJwtPayload\n \n \n Static\n mapToOauthCurrentUser\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: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 jwtPayload\n \n JwtPayload\n \n\n \n No\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 mapCurrentUserToCreateJwtPayload\n \n \n \n \n \n \n \n mapCurrentUserToCreateJwtPayload(currentUser: ICurrentUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : CreateJwtPayload\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToOauthCurrentUser\n \n \n \n \n \n \n \n mapToOauthCurrentUser(accountId: string, user: UserDO, systemId?: string, externalIdToken?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.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 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 externalIdToken\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : OauthCurrentUser\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 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, OauthCurrentUser } from '../interface';\nimport { CreateJwtPayload, 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\tisExternalUser: false,\n\t\t};\n\t}\n\n\tstatic mapToOauthCurrentUser(\n\t\taccountId: string,\n\t\tuser: UserDO,\n\t\tsystemId?: string,\n\t\texternalIdToken?: string\n\t): OauthCurrentUser {\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\texternalIdToken,\n\t\t\tisExternalUser: true,\n\t\t};\n\t}\n\n\tstatic mapCurrentUserToCreateJwtPayload(currentUser: ICurrentUser): CreateJwtPayload {\n\t\treturn {\n\t\t\taccountId: currentUser.accountId,\n\t\t\tuserId: currentUser.userId,\n\t\t\tschoolId: currentUser.schoolId,\n\t\t\troles: currentUser.roles,\n\t\t\tsystemId: currentUser.systemId,\n\t\t\tsupport: currentUser.impersonated,\n\t\t\tisExternalUser: currentUser.isExternalUser,\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\tisExternalUser: jwtPayload.isExternalUser,\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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameter } from '@modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\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: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 \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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:52\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:48\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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:36\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:34\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:30\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:28\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:36\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:32\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:173\n \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 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: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 task\n \n Task\n \n\n \n No\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: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 elements\n \n BoardElement[]\n \n\n \n No\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:89\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:95\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:58\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: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 element\n \n BoardElement\n \n\n \n No\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: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 element\n \n BoardElement\n \n\n \n No\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: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 element\n \n BoardElement\n \n\n \n No\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: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 elements\n \n BoardElement[]\n \n\n \n No\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, Action } from '@modules/authorization';\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 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, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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: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 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 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: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 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 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: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 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 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, ExternalToolElementContentBody, LinkElementContentBody)@ApiResponse({status: 201, schema: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(201)@Patch(':contentElementId/content')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.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 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 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, getSchemaPath } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport {\n\tAnyContentElementResponse,\n\tContentElementUrlParams,\n\tCreateSubmissionItemBodyParams,\n\tExternalToolElementContentBody,\n\tExternalToolElementResponse,\n\tFileElementContentBody,\n\tFileElementResponse,\n\tLinkElementContentBody,\n\tLinkElementResponse,\n\tMoveContentElementBody,\n\tRichTextElementContentBody,\n\tRichTextElementResponse,\n\tSubmissionContainerElementContentBody,\n\tSubmissionContainerElementResponse,\n\tSubmissionItemResponse,\n\tUpdateElementContentBodyParams,\n} from './dto';\nimport { ContentElementResponseFactory, 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(\n\t\tFileElementContentBody,\n\t\tRichTextElementContentBody,\n\t\tSubmissionContainerElementContentBody,\n\t\tExternalToolElementContentBody,\n\t\tLinkElementContentBody\n\t)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [\n\t\t\t\t{ $ref: getSchemaPath(ExternalToolElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(LinkElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\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@HttpCode(201)\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\tconst element = await this.elementUc.updateElementContent(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.contentElementId,\n\t\t\tbodyParams.data.content\n\t\t);\n\t\tconst response = ContentElementResponseFactory.mapToResponse(element);\n\t\treturn response;\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.mapSubmissionsToResponse(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: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 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: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 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 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: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 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 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: AnyElementContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.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 elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n content\n \n AnyElementContentBody\n \n\n \n No\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 { forwardRef, HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tEntityId,\n\tisSubmissionContainerElement,\n\tisSubmissionItem,\n\tSubmissionItem,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\nimport { AnyElementContentBody } 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(userId: EntityId, elementId: EntityId, content: AnyElementContentBody) {\n\t\tlet element = await this.elementService.findById(elementId);\n\n\t\tawait this.checkPermission(userId, element, Action.write);\n\n\t\telement = await this.elementService.update(element, content);\n\t\treturn element;\n\t}\n\n\tasync createSubmissionItem(\n\t\tuserId: EntityId,\n\t\tcontentElementId: EntityId,\n\t\tcompleted: boolean\n\t): Promise {\n\t\tconst submissionContainerElement = await this.elementService.findById(contentElementId);\n\n\t\tif (!isSubmissionContainerElement(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\t\t}\n\n\t\tif (!submissionContainerElement.children.every((child) => isSubmissionItem(child))) {\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 userSubmissionExists = submissionContainerElement.children\n\t\t\t.filter(isSubmissionItem)\n\t\t\t.find((item) => item.userId === userId);\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, submissionContainerElement, Action.read, UserRoleEnum.STUDENT);\n\n\t\tconst submissionItem = await this.submissionItemService.create(userId, submissionContainerElement, { 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 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 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 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 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 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 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 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/shared/infra/rabbitmq/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/shared/infra/rabbitmq/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 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 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 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 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 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 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 '@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 : SystemEntity\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 { SystemEntity } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: SystemEntity;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => SystemEntity)\n\tsystem: SystemEntity;\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: SystemEntity\n\n \n \n\n\n \n \n Type : SystemEntity\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 { SystemEntity } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: SystemEntity;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => SystemEntity)\n\tsystem: SystemEntity;\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/ExternalSourceResponse.html":{"url":"classes/ExternalSourceResponse.html","title":"class - ExternalSourceResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSourceResponse\n\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/controller/dto/response/external-source.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 externalId\n \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: ExternalSourceResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/external-source.response.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 ExternalSourceResponse\n \n \n \n No\n \n \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 @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/external-source.response.ts:5\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 @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/external-source.response.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';\n\nexport class ExternalSourceResponse {\n\t@ApiProperty()\n\texternalId: string;\n\n\t@ApiProperty()\n\tsystemId: string;\n\n\tconstructor(props: ExternalSourceResponse) {\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/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 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 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 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 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 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 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: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 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 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: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 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 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 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 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: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 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 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 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 '@modules/authorization';\nimport { CustomParameterScope, ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\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 { ExternalToolConfigurationService, ExternalToolLogoService, ExternalToolService } from '../service';\nimport { ContextExternalToolTemplateInfo } from './dto';\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.findById(schoolExternalToolId);\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.findById(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.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(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/ExternalToolContentBody.html":{"url":"classes/ExternalToolContentBody.html","title":"class - ExternalToolContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolContentBody\n\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 Optional\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 \n Optional\n contextExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.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, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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"},"classes/ExternalToolElement.html":{"url":"classes/ExternalToolElement.html","title":"class - ExternalToolElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElement\n\n\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/external-tool-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 contextExternalToolId\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 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 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 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 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 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 contextExternalToolId\n \n \n\n \n \n getcontextExternalToolId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/external-tool-element.do.ts:5\n \n \n\n \n \n setcontextExternalToolId(value: string | undefined)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/external-tool-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 | 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 { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class ExternalToolElement extends BoardComposite {\n\tget contextExternalToolId(): string | undefined {\n\t\treturn this.props.contextExternalToolId;\n\t}\n\n\tset contextExternalToolId(value: string | undefined) {\n\t\tthis.props.contextExternalToolId = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitExternalToolElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitExternalToolElementAsync(this);\n\t}\n}\n\nexport interface ExternalToolElementProps extends BoardCompositeProps {\n\tcontextExternalToolId?: string;\n}\n\nexport function isExternalToolElement(reference: unknown): reference is ExternalToolElement {\n\treturn reference instanceof ExternalToolElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolElementContent.html":{"url":"classes/ExternalToolElementContent.html","title":"class - ExternalToolElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementContent\n\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/external-tool-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 contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/external-tool-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 props\n \n \n ExternalToolElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : string | null\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: String, required: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/external-tool-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 ExternalToolElementContent {\n\tconstructor(props: ExternalToolElementContent) {\n\t\tthis.contextExternalToolId = props.contextExternalToolId;\n\t}\n\n\t@ApiProperty({ type: String, required: true, nullable: true })\n\tcontextExternalToolId: string | null;\n}\n\nexport class ExternalToolElementResponse {\n\tconstructor(props: ExternalToolElementResponse) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.content = props.content;\n\t\tthis.timestamps = props.timestamps;\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.EXTERNAL_TOOL;\n\n\t@ApiProperty()\n\tcontent: ExternalToolElementContent;\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/ExternalToolElementContentBody.html":{"url":"classes/ExternalToolElementContentBody.html","title":"class - ExternalToolElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementContentBody\n\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 : ExternalToolContentBody\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:99\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.EXTERNAL_TOOL\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:95\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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/ExternalToolElementNodeEntity.html":{"url":"entities/ExternalToolElementNodeEntity.html","title":"entity - ExternalToolElementNodeEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ExternalToolElementNodeEntity\n\n\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/external-tool-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 Optional\n contextExternalTool\n \n \n \n \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 contextExternalTool\n \n \n \n \n \n \n Type : ContextExternalToolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/external-tool-element-node.entity.ts:10\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity/context-external-tool.entity';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.EXTERNAL_TOOL })\nexport class ExternalToolElementNodeEntity extends BoardNode {\n\t@ManyToOne({ nullable: true })\n\tcontextExternalTool?: ContextExternalToolEntity;\n\n\tconstructor(props: ExternalToolElementNodeEntityProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.EXTERNAL_TOOL;\n\t\tthis.contextExternalTool = props.contextExternalTool;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildExternalToolElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ExternalToolElementNodeEntityProps extends BoardNodeProps {\n\tcontextExternalTool?: ContextExternalToolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolElementNodeEntityProps.html":{"url":"interfaces/ExternalToolElementNodeEntityProps.html","title":"interface - ExternalToolElementNodeEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolElementNodeEntityProps\n\n\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/external-tool-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 Optional\n \n contextExternalTool\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: ContextExternalToolEntity\n\n \n \n\n\n \n \n Type : ContextExternalToolEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity/context-external-tool.entity';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.EXTERNAL_TOOL })\nexport class ExternalToolElementNodeEntity extends BoardNode {\n\t@ManyToOne({ nullable: true })\n\tcontextExternalTool?: ContextExternalToolEntity;\n\n\tconstructor(props: ExternalToolElementNodeEntityProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.EXTERNAL_TOOL;\n\t\tthis.contextExternalTool = props.contextExternalTool;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildExternalToolElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ExternalToolElementNodeEntityProps extends BoardNodeProps {\n\tcontextExternalTool?: ContextExternalToolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolElementProps.html":{"url":"interfaces/ExternalToolElementProps.html","title":"interface - ExternalToolElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolElementProps\n\n\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/external-tool-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 Optional\n \n contextExternalToolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n \n \n contextExternalToolId: string\n\n \n \n\n\n \n \n 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 { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class ExternalToolElement extends BoardComposite {\n\tget contextExternalToolId(): string | undefined {\n\t\treturn this.props.contextExternalToolId;\n\t}\n\n\tset contextExternalToolId(value: string | undefined) {\n\t\tthis.props.contextExternalToolId = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitExternalToolElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitExternalToolElementAsync(this);\n\t}\n}\n\nexport interface ExternalToolElementProps extends BoardCompositeProps {\n\tcontextExternalToolId?: string;\n}\n\nexport function isExternalToolElement(reference: unknown): reference is ExternalToolElement {\n\treturn reference instanceof ExternalToolElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolElementResponse.html":{"url":"classes/ExternalToolElementResponse.html","title":"class - ExternalToolElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementResponse\n\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/external-tool-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(props: ExternalToolElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/external-tool-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 props\n \n \n ExternalToolElementResponse\n \n \n \n No\n \n \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 : ExternalToolElementContent\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/external-tool-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/external-tool-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/external-tool-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.EXTERNAL_TOOL\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/external-tool-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 ExternalToolElementContent {\n\tconstructor(props: ExternalToolElementContent) {\n\t\tthis.contextExternalToolId = props.contextExternalToolId;\n\t}\n\n\t@ApiProperty({ type: String, required: true, nullable: true })\n\tcontextExternalToolId: string | null;\n}\n\nexport class ExternalToolElementResponse {\n\tconstructor(props: ExternalToolElementResponse) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t\tthis.content = props.content;\n\t\tthis.timestamps = props.timestamps;\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.EXTERNAL_TOOL;\n\n\t@ApiProperty()\n\tcontent: ExternalToolElementContent;\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/ExternalToolElementResponseMapper.html":{"url":"classes/ExternalToolElementResponseMapper.html","title":"class - ExternalToolElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolElementResponseMapper\n\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/external-tool-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 : ExternalToolElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/external-tool-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: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/external-tool-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 ExternalToolElement\n \n\n \n No\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/external-tool-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : ExternalToolElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/external-tool-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 ExternalToolElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ExternalToolElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, ExternalToolElement } from '@shared/domain';\nimport { ExternalToolElementContent, ExternalToolElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class ExternalToolElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: ExternalToolElementResponseMapper;\n\n\tpublic static getInstance(): ExternalToolElementResponseMapper {\n\t\tif (!ExternalToolElementResponseMapper.instance) {\n\t\t\tExternalToolElementResponseMapper.instance = new ExternalToolElementResponseMapper();\n\t\t}\n\n\t\treturn ExternalToolElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: ExternalToolElement): ExternalToolElementResponse {\n\t\tconst result = new ExternalToolElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.EXTERNAL_TOOL,\n\t\t\tcontent: new ExternalToolElementContent({ contextExternalToolId: element.contextExternalToolId ?? null }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: ExternalToolElement): boolean {\n\t\treturn element instanceof ExternalToolElement;\n\t}\n}\n\n \n\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 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 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 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 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 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 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 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 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 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 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 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 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 import {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameter } from '@modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@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 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 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 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 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 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 Returns : void\n\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 { HttpException, Inject } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AxiosResponse } from 'axios';\nimport { lastValueFrom } from 'rxjs';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport {\n\tExternalToolLogoFetchedLoggable,\n\tExternalToolLogoFetchFailedLoggableException,\n\tExternalToolLogoNotFoundLoggableException,\n\tExternalToolLogoSizeExceededLoggableException,\n\tExternalToolLogoWrongFileTypeLoggableException,\n} from '../loggable';\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.findById(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_exports\n\n\n\ncluster_ExternalToolModule_imports\n\n\n\ncluster_ExternalToolModule_providers\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 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 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 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 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 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 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 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 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 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 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 Async\n findPseudonym\n \n \n Async\n findPseudonymByPseudonym\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: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 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: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 domainObject\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \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: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 \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: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 \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: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 toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonym\n \n \n \n \n \n \n \n findPseudonym(query: PseudonymSearchQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.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 query\n \n PseudonymSearchQuery\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 Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.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 pseudonym\n \n string\n \n\n \n No\n \n\n\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: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 entityDO\n \n Pseudonym\n \n\n \n No\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: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 entity\n \n ExternalToolPseudonymEntity\n \n\n \n No\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, IFindOptions, IPagination, Page, Pseudonym } from '@shared/domain';\nimport { Scope } from '@shared/repo';\nimport { PseudonymSearchQuery } from '../domain';\nimport { ExternalToolPseudonymEntity, IExternalToolPseudonymEntityProps } from '../entity';\nimport { PseudonymScope } from '../entity/pseudonym.scope';\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\tasync findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst entities: ExternalToolPseudonymEntity | null = await this.em.findOne(ExternalToolPseudonymEntity, {\n\t\t\tpseudonym,\n\t\t});\n\n\t\tif (!entities) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entities);\n\n\t\treturn domainObject;\n\t}\n\n\tprotected mapEntityToDomainObject(entity: ExternalToolPseudonymEntity): Pseudonym {\n\t\tconst pseudonym = 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\n\t\treturn pseudonym;\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\tasync findPseudonym(query: PseudonymSearchQuery, options?: IFindOptions): Promise> {\n\t\tconst pagination: IPagination = options?.pagination ?? {};\n\t\tconst scope: Scope = new PseudonymScope()\n\t\t\t.byPseudonym(query.pseudonym)\n\t\t\t.byToolId(query.toolId)\n\t\t\t.byUserId(query.userId)\n\t\t\t.allowEmptyQuery(true);\n\n\t\tconst [entities, total] = await this.em.findAndCount(ExternalToolPseudonymEntity, scope.query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t});\n\n\t\tconst entityDos: Pseudonym[] = entities.map((entity) => this.mapEntityToDomainObject(entity));\n\t\tconst page: Page = new Page(entityDos, total);\n\n\t\treturn page;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/tool/common/enum';\nimport { ExternalToolSearchQuery } from '@modules/tool/common/interface';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolEntity, IExternalToolProperties } from '@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: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 lti11Config\n \n BasicToolConfig\n \n\n \n No\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: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 lti11Config\n \n BasicToolConfigEntity\n \n\n \n No\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: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 customParameters\n \n CustomParameter[]\n \n\n \n No\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: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 entries\n \n CustomParameterEntry[]\n \n\n \n No\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:172\n \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 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: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 customParameters\n \n CustomParameterEntity[]\n \n\n \n No\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: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 entityDO\n \n ExternalTool\n \n\n \n No\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: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 entity\n \n ExternalToolEntity\n \n\n \n No\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: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 lti11Config\n \n Lti11ToolConfig\n \n\n \n No\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: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 lti11Config\n \n Lti11ToolConfigEntity\n \n\n \n No\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: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 oauth2Config\n \n Oauth2ToolConfig\n \n\n \n No\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: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 oauth2Config\n \n Oauth2ToolConfigEntity\n \n\n \n No\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 '@modules/tool/common/domain';\nimport { CustomParameterEntryEntity } from '@modules/tool/common/entity';\nimport { ToolConfigType } from '@modules/tool/common/enum';\nimport { BasicToolConfig, ExternalTool, Lti11ToolConfig, Oauth2ToolConfig } from '@modules/tool/external-tool/domain';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@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 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 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 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 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 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 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 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 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 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 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 \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: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 externalToolConfigDO\n \n BasicToolConfig\n \n\n \n No\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: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 customParameters\n \n CustomParameter[]\n \n\n \n No\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: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 externalToolConfigDO\n \n Lti11ToolConfig\n \n\n \n No\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: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 externalToolConfigDO\n \n Oauth2ToolConfig\n \n\n \n No\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: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 externalTool\n \n ExternalTool\n \n\n \n No\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 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 {\n\tBasicToolConfigResponse,\n\tCustomParameterResponse,\n\tExternalToolResponse,\n\tLti11ToolConfigResponse,\n\tOauth2ToolConfigResponse,\n} from '../controller/dto';\nimport { BasicToolConfig, ExternalTool, Lti11ToolConfig, Oauth2ToolConfig } 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\n \n\n\n\n\n\n\n\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 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 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 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 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 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 '@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 findById\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 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 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 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/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 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 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 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 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 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 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 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 findById(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 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 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 '@modules/tool/external-tool/domain';\nimport { ExternalToolEntity } from '@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 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 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 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 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 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 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 '@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.findById(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.findById(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 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 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 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 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 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 { ExternalToolLogoService } from './external-tool-logo.service';\nimport { ExternalToolParameterValidationService } from './external-tool-parameter-validation.service';\nimport { ExternalToolService } from './external-tool.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.findById(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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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"},"injectables/FeathersRosterService.html":{"url":"injectables/FeathersRosterService.html","title":"injectable - FeathersRosterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersRosterService\n\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/feathers-roster.service.ts\n \n\n\n \n Description\n \n \n Please do not use this service in any other nest modules.\nThis service will be called from feathers to get the roster data for ctl pseudonyms ExternalToolPseudonymEntity.\nThese data will be used e.g. by bettermarks to resolve and display the usernames.\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 filterCoursesByToolAvailability\n \n \n Private\n Async\n findPseudonymByPseudonym\n \n \n Private\n Async\n getAndPseudonyms\n \n \n Private\n Async\n getCoursesFromUsersPseudonym\n \n \n Async\n getGroup\n \n \n Async\n getUserGroups\n \n \n Private\n getUserRole\n \n \n Async\n getUsersMetadata\n \n \n Private\n mapPseudonymToUserData\n \n \n Private\n Async\n validateAndGetExternalTool\n \n \n Private\n Async\n validateContextExternalTools\n \n \n Private\n Async\n validateSchoolExternalTool\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, courseService: CourseService, externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:53\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 courseService\n \n \n CourseService\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 contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \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 filterCoursesByToolAvailability\n \n \n \n \n \n \n \n filterCoursesByToolAvailability(courses: Course[], externalToolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.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 courses\n \n Course[]\n \n\n \n No\n \n\n\n \n \n externalToolId\n \n string\n \n\n \n No\n \n\n\n \n \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 findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \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 getAndPseudonyms\n \n \n \n \n \n \n \n getAndPseudonyms(users: UserDO[], externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 users\n \n UserDO[]\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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getCoursesFromUsersPseudonym\n \n \n \n \n \n \n \n getCoursesFromUsersPseudonym(pseudonym: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 pseudonym\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getGroup\n \n \n \n \n \n \n \n getGroup(courseId: EntityId, oauth2ClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n oauth2ClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserGroups\n \n \n \n \n \n \n \n getUserGroups(pseudonym: string, oauth2ClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \n oauth2ClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getUserRole\n \n \n \n \n \n \n \n getUserRole(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 user\n \n UserDO\n \n\n \n No\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 getUsersMetadata\n \n \n \n \n \n \n \n getUsersMetadata(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapPseudonymToUserData\n \n \n \n \n \n \n \n mapPseudonymToUserData(pseudonym: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:232\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pseudonym\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : UserData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n validateAndGetExternalTool\n \n \n \n \n \n \n \n validateAndGetExternalTool(oauth2ClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.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 oauth2ClientId\n \n string\n \n\n \n No\n \n\n\n \n \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 validateContextExternalTools\n \n \n \n \n \n \n \n validateContextExternalTools(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:222\n \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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n validateSchoolExternalTool\n \n \n \n \n \n \n \n validateSchoolExternalTool(schoolId: EntityId, toolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/feathers-roster.service.ts:211\n \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 toolId\n \n string\n \n\n \n No\n \n\n\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 { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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/FederalStateEntity.html":{"url":"entities/FederalStateEntity.html","title":"entity - FederalStateEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n FederalStateEntity\n\n\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 FederalStateEntity 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 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 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 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 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 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 { FederalStateEntity } 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 FederalStateEntity;\n\t}\n\n\tfindByName(name: string): Promise {\n\t\treturn this._em.findOneOrFail(FederalStateEntity, { 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 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 { FederalStateEntity } 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: FederalStateEntity = 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 \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 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\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 alternativeText\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 alternativeText\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:23\n \n \n\n\n \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, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 Implements\n \n \n File\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:4\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:13\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:15\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:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { File } from '@shared/infra/s3-client';\nimport { Readable } from 'stream';\n\nexport class FileDto implements File {\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 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 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 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 alternativeText\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: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 visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\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: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 visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\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:21\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 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 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 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 alternativeText\n \n \n\n \n \n getalternativeText()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.do.ts:13\n \n \n\n \n \n setalternativeText(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.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 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\tget alternativeText(): string {\n\t\treturn this.props.alternativeText || '';\n\t}\n\n\tset alternativeText(value: string) {\n\t\tthis.props.alternativeText = 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\talternativeText: string;\n}\n\nexport function isFileElement(reference: unknown): reference is FileElement {\n\treturn reference instanceof FileElement;\n}\n\n \n\n\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 alternativeText\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 alternativeText\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:15\n \n \n\n\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 @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-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 } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption, alternativeText }: FileElementContent) {\n\t\tthis.caption = caption;\n\t\tthis.alternativeText = alternativeText;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n\n\t@ApiProperty()\n\talternativeText: 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: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({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:28\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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 alternativeText\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 alternativeText\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:12\n \n \n\n\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 @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\t@Property()\n\talternativeText: 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\tthis.alternativeText = props.alternativeText;\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\talternativeText: 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 alternativeText\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 alternativeText\n \n \n \n \n \n \n \n \n alternativeText: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \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\t@Property()\n\talternativeText: 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\tthis.alternativeText = props.alternativeText;\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\talternativeText: 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 alternativeText\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 alternativeText\n \n \n \n \n \n \n \n \n alternativeText: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \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\tget alternativeText(): string {\n\t\treturn this.props.alternativeText || '';\n\t}\n\n\tset alternativeText(value: string) {\n\t\tthis.props.alternativeText = 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\talternativeText: string;\n}\n\nexport function isFileElement(reference: unknown): reference is FileElement {\n\treturn reference instanceof FileElement;\n}\n\n \n\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: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 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: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/file-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/file-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.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: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 } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption, alternativeText }: FileElementContent) {\n\t\tthis.caption = caption;\n\t\tthis.alternativeText = alternativeText;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n\n\t@ApiProperty()\n\talternativeText: 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 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 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, alternativeText: element.alternativeText }),\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 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: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 { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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:131\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:145\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:124\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:138\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:104\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:113\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:110\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:120\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:116\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:107\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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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 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 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 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 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 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 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 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 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 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 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 import { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { FileRecord, FileRecordSecurityCheck, IFileRecordProperties } from '@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 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 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 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:16\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:20\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: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 { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 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:54\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:48\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:51\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:45\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:57\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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.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/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 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 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 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 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 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 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 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 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 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 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_exports\n\n\n\ncluster_FileSystemModule_providers\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:32\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:36\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: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 { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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 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 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 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 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 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 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 findFilesAccessibleByUser\n \n \n Async\n findFilesOwnedByUser\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:7\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 findFilesAccessibleByUser\n \n \n \n \n \n \n \n findFilesAccessibleByUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findFilesOwnedByUser\n \n \n \n \n \n \n \n findFilesOwnedByUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.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 EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \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: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 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: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 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';\nimport { FileEntity } from '../entity';\n\n@Injectable()\nexport class FilesService {\n\tconstructor(private readonly repo: FilesRepo) {}\n\n\tasync findFilesAccessibleByUser(userId: EntityId): Promise {\n\t\treturn this.repo.findByPermissionRefId(userId);\n\t}\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 findFilesOwnedByUser(userId: EntityId): Promise {\n\t\treturn this.repo.findByOwnerUserId(userId);\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_imports\n\n\n\ncluster_FilesStorageAMQPModule_providers\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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nFilesStorageApiModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authentication/authentication.module';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\nimport { FileSecurityController, FilesStorageController } from './controller';\nimport { FilesStorageModule } from './files-storage.module';\nimport { FilesStorageUC } from './uc';\n\n@Module({\n\timports: [AuthorizationReferenceModule, 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 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 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 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 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 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 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 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 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 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_imports\n\n\n\ncluster_FilesStorageClientModule_exports\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 '@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, previewService: PreviewService, logger: LegacyLogger, orm: MikroORM)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:14\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 previewService\n \n \n PreviewService\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: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 CopyFilesOfParentPayload\n \n\n \n No\n \n\n\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: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 payload\n \n EntityId\n \n\n \n No\n \n\n\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: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 payload\n \n FileRecordParams\n \n\n \n No\n \n\n\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 { PreviewService } from '../service/preview.service';\nimport { CopyFilesOfParentPayload, FileRecordParams } from './dto';\n\n@Injectable()\nexport class FilesStorageConsumer {\n\tconstructor(\n\t\tprivate readonly filesStorageService: FilesStorageService,\n\t\tprivate readonly previewService: PreviewService,\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.getFileRecordsOfParent(payload);\n\n\t\tawait this.previewService.deletePreviews(fileRecords);\n\t\tawait this.filesStorageService.deleteFilesOfParent(fileRecords);\n\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 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 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 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 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 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 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 '@modules/authorization/domain';\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 { PreviewGeneratorProducerModule } from '@shared/infra/preview-generator';\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\thostname: Configuration.get('CLAMAV__SERVICE_HOSTNAME') as string,\n\t\tport: Configuration.get('CLAMAV__SERVICE_PORT') as number,\n\t}),\n\tS3ClientModule.register([s3Config]),\n\tPreviewGeneratorProducerModule,\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 Extends\n \n \n RpcMessageProducer\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 Protected\n checkError\n \n \n Protected\n createRequest\n \n \n Protected\n Async\n request\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, logger: LegacyLogger, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:18\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 logger\n \n \n LegacyLogger\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 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: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 payload\n \n ICopyFilesOfParentParams\n \n\n \n No\n \n\n\n \n \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(payload: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.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 EntityId\n \n\n \n No\n \n\n\n \n \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: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 payload\n \n IFileRecordParams\n \n\n \n No\n \n\n\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 checkError\n \n \n \n \n \n \n \n checkError(response: RpcMessage)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:21\n\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 response\n \n RpcMessage\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createRequest\n \n \n \n \n \n \n \n createRequest(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer: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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : { exchange: string; routingKey: string; payload: unknown; timeout: number; }\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(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:12\n\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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\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 { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport {\n\tFilesStorageEvents,\n\tFilesStorageExchange,\n\tICopyFileDO,\n\tICopyFilesOfParentParams,\n\tIFileDO,\n\tIFileRecordParams,\n\tRpcMessageProducer,\n} from '@src/shared/infra/rabbitmq';\nimport { IFilesStorageClientConfig } from '../interfaces';\n\n@Injectable()\nexport class FilesStorageProducer extends RpcMessageProducer {\n\tconstructor(\n\t\tprotected readonly amqpConnection: AmqpConnection,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprotected readonly configService: ConfigService\n\t) {\n\t\tsuper(amqpConnection, FilesStorageExchange, configService.get('INCOMING_REQUEST_TIMEOUT_COPY_API'));\n\t\tthis.logger.setContext(FilesStorageProducer.name);\n\t}\n\n\tasync copyFilesOfParent(payload: ICopyFilesOfParentParams): Promise {\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:started', payload });\n\t\tconst response = await this.request(FilesStorageEvents.COPY_FILES_OF_PARENT, payload);\n\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:finished', payload });\n\n\t\treturn response;\n\t}\n\n\tasync listFilesOfParent(payload: IFileRecordParams): Promise {\n\t\tthis.logger.debug({ action: 'listFilesOfParent:started', payload });\n\t\tconst response = await this.request(FilesStorageEvents.LIST_FILES_OF_PARENT, payload);\n\n\t\tthis.logger.debug({ action: 'listFilesOfParent:finished', payload });\n\n\t\treturn response;\n\t}\n\n\tasync deleteFilesOfParent(payload: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:started', payload });\n\t\tconst response = await this.request(FilesStorageEvents.DELETE_FILES_OF_PARENT, payload);\n\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:finished', payload });\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"},"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 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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@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/domain/error/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/domain/error/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/domain/error/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 '../type';\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 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 '@modules/authentication';\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, SchoolYearEntity, SystemEntity, 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 '@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, SystemEntity, SchoolYearEntity],\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 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, SchoolYearEntity, SystemEntity, 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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@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, SystemEntity, SchoolYearEntity] }),\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 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\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 { 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\tpreviewParams: PreviewParams;\n\thash: string;\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tformat: 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 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:34\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 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:56\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 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: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 error\n \n BusinessError\n \n\n \n No\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: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 error\n \n FeathersError\n \n\n \n No\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:92\n \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 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:102\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: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 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 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}\n\n\t\tif (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 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 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 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 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 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 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 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 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 addUser\n \n \n isEmpty\n \n \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 users\n \n \n externalSource\n \n \n organizationId\n \n \n type\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 addUser\n \n \n \n \n \n \naddUser(user: GroupUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/domain/group.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 user\n \n GroupUser\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isEmpty\n \n \n \n \n \n \nisEmpty()\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/domain/group.ts:49\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n removeUser\n \n \n \n \n \n \nremoveUser(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/domain/group.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 UserDO\n \n\n \n No\n \n\n\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/group/domain/group.ts:25\n \n \n\n \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/modules/group/domain/group.ts:29\n \n \n\n \n \n \n \n \n \n \n externalSource\n \n \n\n \n \n getexternalSource()\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group.ts:33\n \n \n\n \n \n \n \n \n \n \n organizationId\n \n \n\n \n \n getorganizationId()\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group.ts:37\n \n \n\n \n \n \n \n \n \n \n type\n \n \n\n \n \n gettype()\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group.ts:41\n \n \n\n \n \n\n \n\n\n \n import { EntityId, ExternalSource, type UserDO } 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\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget users(): GroupUser[] {\n\t\treturn this.props.users;\n\t}\n\n\tget externalSource(): ExternalSource | undefined {\n\t\treturn this.props.externalSource;\n\t}\n\n\tget organizationId(): string | undefined {\n\t\treturn this.props.organizationId;\n\t}\n\n\tget type(): GroupTypes {\n\t\treturn this.props.type;\n\t}\n\n\tremoveUser(user: UserDO): void {\n\t\tthis.props.users = this.props.users.filter((groupUser: GroupUser): boolean => groupUser.userId !== user.id);\n\t}\n\n\tisEmpty(): boolean {\n\t\treturn this.props.users.length === 0;\n\t}\n\n\taddUser(user: GroupUser): void {\n\t\tif (!this.users.find((u) => u.userId === user.userId)) {\n\t\t\tthis.users.push(user);\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/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\ncluster_GroupApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nGroupApiModule -->\n\nAuthorizationModule->GroupApiModule\n\n\n\n\n\nClassModule\n\nClassModule\n\nGroupApiModule -->\n\nClassModule->GroupApiModule\n\n\n\n\n\nGroupModule\n\nGroupModule\n\nGroupApiModule -->\n\nGroupModule->GroupApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nGroupApiModule -->\n\nLegacySchoolModule->GroupApiModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nGroupApiModule -->\n\nRoleModule->GroupApiModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nGroupApiModule -->\n\nSystemModule->GroupApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nGroupApiModule -->\n\nUserModule->GroupApiModule\n\n\n\n\n\nGroupUc\n\nGroupUc\n\nGroupApiModule -->\n\nGroupUc->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 Providers\n \n \n GroupUc\n \n \n \n \n Controllers\n \n \n GroupController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n ClassModule\n \n \n GroupModule\n \n \n LegacySchoolModule\n \n \n RoleModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { ClassModule } from '@modules/class';\nimport { RoleModule } from '@modules/role';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@modules/user';\nimport { GroupController } from './controller';\nimport { GroupModule } from './group.module';\nimport { GroupUc } from './uc';\n\n@Module({\n\timports: [GroupModule, ClassModule, UserModule, RoleModule, LegacySchoolModule, AuthorizationModule, SystemModule],\n\tcontrollers: [GroupController],\n\tproviders: [GroupUc],\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"},"controllers/GroupController.html":{"url":"controllers/GroupController.html","title":"controller - GroupController","body":"\n \n\n\n\n\n\n\n Controllers\n GroupController\n\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/controller/group.controller.ts\n \n\n \n Prefix\n \n \n groups\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 Public\n Async\n findClassesForSchool\n \n \n \n \n \n \n \n Public\n Async\n getGroup\n \n \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 Public\n Async\n findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(pagination: PaginationParams, sortingQuery: ClassSortParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get a list of classes and groups of type class for the current users school.'})@ApiResponse({status: undefined, type: ClassInfoSearchListResponse})@ApiResponse({status: '4XX', type: ErrorResponse})@ApiResponse({status: '5XX', type: ErrorResponse})@Get('/class')\n \n \n\n \n \n Defined in apps/server/src/modules/group/controller/group.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 pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n sortingQuery\n \n ClassSortParams\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 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 getGroup\n \n \n \n \n \n \n \n getGroup(currentUser: ICurrentUser, params: GroupIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('/:groupId')@ApiOperation({summary: 'Get a group by id.'})@ApiResponse({status: undefined, type: GroupResponse})@ApiResponse({status: '4XX', type: ErrorResponse})@ApiResponse({status: '5XX', type: ErrorResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/group/controller/group.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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n GroupIdParams\n \n\n \n No\n \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, HttpStatus, Param, Query } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { PaginationParams } from '@shared/controller';\nimport { Page } from '@shared/domain';\nimport { ErrorResponse } from '@src/core/error/dto';\nimport { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\nimport { GroupUc } from '../uc';\nimport { ClassInfoDto, ResolvedGroupDto } from '../uc/dto';\nimport { ClassInfoSearchListResponse, ClassSortParams, GroupIdParams, GroupResponse } from './dto';\nimport { GroupResponseMapper } from './mapper';\n\n@ApiTags('Group')\n@Authenticate('jwt')\n@Controller('groups')\nexport class GroupController {\n\tconstructor(private readonly groupUc: GroupUc) {}\n\n\t@ApiOperation({ summary: 'Get a list of classes and groups of type class for the current users school.' })\n\t@ApiResponse({ status: HttpStatus.OK, type: ClassInfoSearchListResponse })\n\t@ApiResponse({ status: '4XX', type: ErrorResponse })\n\t@ApiResponse({ status: '5XX', type: ErrorResponse })\n\t@Get('/class')\n\tpublic async findClassesForSchool(\n\t\t@Query() pagination: PaginationParams,\n\t\t@Query() sortingQuery: ClassSortParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board: Page = await this.groupUc.findAllClassesForSchool(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tpagination.skip,\n\t\t\tpagination.limit,\n\t\t\tsortingQuery.sortBy,\n\t\t\tsortingQuery.sortOrder\n\t\t);\n\n\t\tconst response: ClassInfoSearchListResponse = GroupResponseMapper.mapToClassInfosToListResponse(\n\t\t\tboard,\n\t\t\tpagination.skip,\n\t\t\tpagination.limit\n\t\t);\n\n\t\treturn response;\n\t}\n\n\t@Get('/:groupId')\n\t@ApiOperation({ summary: 'Get a group by id.' })\n\t@ApiResponse({ status: HttpStatus.OK, type: GroupResponse })\n\t@ApiResponse({ status: '4XX', type: ErrorResponse })\n\t@ApiResponse({ status: '5XX', type: ErrorResponse })\n\tpublic async getGroup(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: GroupIdParams\n\t): Promise {\n\t\tconst group: ResolvedGroupDto = await this.groupUc.getGroup(currentUser.userId, params.groupId);\n\n\t\tconst response: GroupResponse = GroupResponseMapper.mapToGroupResponse(group);\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/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 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 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 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 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 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 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, SystemEntity, 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(SystemEntity, 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"},"classes/GroupIdParams.html":{"url":"classes/GroupIdParams.html","title":"class - GroupIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupIdParams\n\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/controller/dto/request/group-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 groupId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n groupId\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/group/controller/dto/request/group-id-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 GroupIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\tgroupId!: 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/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, type UserDO } 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\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget users(): GroupUser[] {\n\t\treturn this.props.users;\n\t}\n\n\tget externalSource(): ExternalSource | undefined {\n\t\treturn this.props.externalSource;\n\t}\n\n\tget organizationId(): string | undefined {\n\t\treturn this.props.organizationId;\n\t}\n\n\tget type(): GroupTypes {\n\t\treturn this.props.type;\n\t}\n\n\tremoveUser(user: UserDO): void {\n\t\tthis.props.users = this.props.users.filter((groupUser: GroupUser): boolean => groupUser.userId !== user.id);\n\t}\n\n\tisEmpty(): boolean {\n\t\treturn this.props.users.length === 0;\n\t}\n\n\taddUser(user: GroupUser): void {\n\t\tif (!this.users.find((u) => u.userId === user.userId)) {\n\t\t\tthis.users.push(user);\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/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 Public\n Async\n delete\n \n \n Public\n Async\n findByExternalSource\n \n \n Public\n Async\n findById\n \n \n Public\n Async\n findByUser\n \n \n Public\n Async\n findClassesForSchool\n \n \n Public\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: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 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: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 domainObject\n \n Group\n \n\n \n No\n \n\n\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 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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\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: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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUser\n \n \n \n \n \n \n \n findByUser(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.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 UserDO\n \n\n \n No\n \n\n\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 findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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 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: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 domainObject\n \n Group\n \n\n \n No\n \n\n\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, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\nimport { type UserDO } from '@shared/domain';\nimport { Group, GroupProps } from '../domain';\nimport { GroupEntity, GroupEntityProps, GroupEntityTypes } from '../entity';\nimport { GroupDomainMapper } from './group-domain.mapper';\n\n@Injectable()\nexport class GroupRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tpublic async 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\tpublic async 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\tpublic async findByUser(user: UserDO): Promise {\n\t\tconst entities: GroupEntity[] = await this.em.find(GroupEntity, {\n\t\t\tusers: { user: new ObjectId(user.id) },\n\t\t});\n\n\t\tconst domainObjects = entities.map((entity) => {\n\t\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\t\treturn new Group(props);\n\t\t});\n\n\t\treturn domainObjects;\n\t}\n\n\tpublic async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst entities: GroupEntity[] = await this.em.find(GroupEntity, {\n\t\t\ttype: GroupEntityTypes.CLASS,\n\t\t\torganization: schoolId,\n\t\t});\n\n\t\tconst domainObjects = entities.map((entity) => {\n\t\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\t\treturn new Group(props);\n\t\t});\n\n\t\treturn domainObjects;\n\t}\n\n\tpublic async 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\tpublic async 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/GroupResponse.html":{"url":"classes/GroupResponse.html","title":"class - GroupResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupResponse\n\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/controller/dto/response/group.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 externalSource\n \n \n \n id\n \n \n \n name\n \n \n \n Optional\n organizationId\n \n \n \n type\n \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(group: GroupResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.response.ts:23\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 GroupResponse\n \n \n \n No\n \n \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 : ExternalSourceResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.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()\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.response.ts:8\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/group/controller/dto/response/group.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n organizationId\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/group/controller/dto/response/group.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : GroupTypeResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: GroupTypeResponse})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : GroupUserResponse[]\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/group/controller/dto/response/group.response.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 { ExternalSourceResponse } from './external-source.response';\nimport { GroupTypeResponse } from './group-type.response';\nimport { GroupUserResponse } from './group-user.response';\n\nexport class GroupResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty({ enum: GroupTypeResponse })\n\ttype: GroupTypeResponse;\n\n\t@ApiProperty({ type: [GroupUserResponse] })\n\tusers: GroupUserResponse[];\n\n\t@ApiPropertyOptional()\n\texternalSource?: ExternalSourceResponse;\n\n\t@ApiPropertyOptional()\n\torganizationId?: string;\n\n\tconstructor(group: GroupResponse) {\n\t\tthis.id = group.id;\n\t\tthis.name = group.name;\n\t\tthis.type = group.type;\n\t\tthis.users = group.users;\n\t\tthis.externalSource = group.externalSource;\n\t\tthis.organizationId = group.organizationId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupResponseMapper.html":{"url":"classes/GroupResponseMapper.html","title":"class - GroupResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupResponseMapper\n\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/controller/mapper/group-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 mapToClassInfosToListResponse\n \n \n Private\n Static\n mapToClassInfoToResponse\n \n \n Static\n mapToGroupResponse\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 mapToClassInfosToListResponse\n \n \n \n \n \n \n \n mapToClassInfosToListResponse(classInfos: Page, skip?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/controller/mapper/group-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 classInfos\n \n Page\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 Returns : ClassInfoSearchListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapToClassInfoToResponse\n \n \n \n \n \n \n \n mapToClassInfoToResponse(classInfo: ClassInfoDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/controller/mapper/group-response.mapper.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 classInfo\n \n ClassInfoDto\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ClassInfoResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToGroupResponse\n \n \n \n \n \n \n \n mapToGroupResponse(resolvedGroup: ResolvedGroupDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/controller/mapper/group-response.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 resolvedGroup\n \n ResolvedGroupDto\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : GroupResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Page } from '@shared/domain';\nimport { GroupTypes } from '../../domain';\nimport { ClassInfoDto, ResolvedGroupDto } from '../../uc/dto';\nimport {\n\tClassInfoResponse,\n\tClassInfoSearchListResponse,\n\tExternalSourceResponse,\n\tGroupResponse,\n\tGroupTypeResponse,\n\tGroupUserResponse,\n} from '../dto';\n\nconst typeMapping: Record = {\n\t[GroupTypes.CLASS]: GroupTypeResponse.CLASS,\n};\n\nexport class GroupResponseMapper {\n\tstatic mapToClassInfosToListResponse(\n\t\tclassInfos: Page,\n\t\tskip?: number,\n\t\tlimit?: number\n\t): ClassInfoSearchListResponse {\n\t\tconst mappedData: ClassInfoResponse[] = classInfos.data.map((classInfo) =>\n\t\t\tthis.mapToClassInfoToResponse(classInfo)\n\t\t);\n\n\t\tconst response: ClassInfoSearchListResponse = new ClassInfoSearchListResponse(\n\t\t\tmappedData,\n\t\t\tclassInfos.total,\n\t\t\tskip,\n\t\t\tlimit\n\t\t);\n\n\t\treturn response;\n\t}\n\n\tprivate static mapToClassInfoToResponse(classInfo: ClassInfoDto): ClassInfoResponse {\n\t\tconst mapped = new ClassInfoResponse({\n\t\t\tid: classInfo.id,\n\t\t\ttype: classInfo.type,\n\t\t\tname: classInfo.name,\n\t\t\texternalSourceName: classInfo.externalSourceName,\n\t\t\tteachers: classInfo.teachers,\n\t\t\tschoolYear: classInfo.schoolYear,\n\t\t\tisUpgradable: classInfo.isUpgradable,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToGroupResponse(resolvedGroup: ResolvedGroupDto): GroupResponse {\n\t\tconst mapped: GroupResponse = new GroupResponse({\n\t\t\tid: resolvedGroup.id,\n\t\t\tname: resolvedGroup.name,\n\t\t\ttype: typeMapping[resolvedGroup.type],\n\t\t\texternalSource: resolvedGroup.externalSource\n\t\t\t\t? new ExternalSourceResponse({\n\t\t\t\t\t\texternalId: resolvedGroup.externalSource.externalId,\n\t\t\t\t\t\tsystemId: resolvedGroup.externalSource.systemId,\n\t\t\t\t })\n\t\t\t\t: undefined,\n\t\t\tusers: resolvedGroup.users.map(\n\t\t\t\t(user) =>\n\t\t\t\t\tnew GroupUserResponse({\n\t\t\t\t\t\tid: user.user.id as string,\n\t\t\t\t\t\trole: user.role.name,\n\t\t\t\t\t\tfirstName: user.user.firstName,\n\t\t\t\t\t\tlastName: user.user.lastName,\n\t\t\t\t\t})\n\t\t\t),\n\t\t\torganizationId: resolvedGroup.organizationId,\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"},"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/GroupRule.html":{"url":"injectables/GroupRule.html","title":"injectable - GroupRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupRule\n\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/domain/rules/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)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/rules/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 \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, domainObject: Group, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/domain/rules/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 domainObject\n \n Group\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 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, domainObject: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/domain/rules/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 domainObject\n \n Group\n \n\n \n No\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';\nimport { Group } from '@src/modules/group';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\n\n@Injectable()\nexport class GroupRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, domainObject: Group): boolean {\n\t\tconst isMatched: boolean = domainObject instanceof Group;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, domainObject: Group, context: AuthorizationContext): boolean {\n\t\tconst hasPermission: boolean =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t(domainObject.organizationId ? user.school.id === domainObject.organizationId : true);\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/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 Public\n Async\n delete\n \n \n Public\n Async\n findByExternalSource\n \n \n Public\n Async\n findById\n \n \n Public\n Async\n findByUser\n \n \n Public\n Async\n findClassesForSchool\n \n \n Public\n Async\n save\n \n \n Public\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 Public\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: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 group\n \n Group\n \n\n \n No\n \n\n\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 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: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 systemId\n \n EntityId\n \n\n \n No\n \n\n\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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUser\n \n \n \n \n \n \n \n findByUser(user: UserDO)\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 user\n \n UserDO\n \n\n \n No\n \n\n\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 findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: EntityId)\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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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 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: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 group\n \n Group\n \n\n \n No\n \n\n\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 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: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 id\n \n EntityId\n \n\n \n No\n \n\n\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, type UserDO } from '@shared/domain';\nimport { AuthorizationLoaderServiceGeneric } from '@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\tpublic async 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\tpublic async tryFindById(id: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findById(id);\n\n\t\treturn group;\n\t}\n\n\tpublic async 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\tpublic async findByUser(user: UserDO): Promise {\n\t\tconst groups: Group[] = await this.groupRepo.findByUser(user);\n\n\t\treturn groups;\n\t}\n\n\tpublic async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst group: Group[] = await this.groupRepo.findClassesForSchool(schoolId);\n\n\t\treturn group;\n\t}\n\n\tpublic async save(group: Group): Promise {\n\t\tconst savedGroup: Group = await this.groupRepo.save(group);\n\n\t\treturn savedGroup;\n\t}\n\n\tpublic async 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"},"injectables/GroupUc.html":{"url":"injectables/GroupUc.html","title":"injectable - GroupUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupUc\n\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/uc/group.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 applyPagination\n \n \n Private\n Async\n checkPermission\n \n \n Public\n Async\n findAllClassesForSchool\n \n \n Private\n Async\n findClassesForSchool\n \n \n Private\n Async\n findCombinedClassListForSchool\n \n \n Private\n Async\n findGroupsOfTypeClassForSchool\n \n \n Private\n Async\n findSystemNamesForGroups\n \n \n Private\n Async\n findUsersForGroup\n \n \n Public\n Async\n getGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(groupService: GroupService, classService: ClassService, systemService: SystemService, userService: UserService, roleService: RoleService, schoolService: LegacySchoolService, authorizationService: AuthorizationService, schoolYearService: SchoolYearService)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/group.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 groupService\n \n \n GroupService\n \n \n \n No\n \n \n \n \n classService\n \n \n ClassService\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 roleService\n \n \n RoleService\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 authorizationService\n \n \n AuthorizationService\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 \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n applyPagination\n \n \n \n \n \n \n \n applyPagination(combinedClassInfo: ClassInfoDto[], skip: number, limit: number | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 combinedClassInfo\n \n ClassInfoDto[]\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 | undefined\n \n\n \n No\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 checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.uc.ts:172\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n group\n \n Group\n \n\n \n No\n \n\n\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 findAllClassesForSchool\n \n \n \n \n \n \n \n findAllClassesForSchool(userId: EntityId, schoolId: EntityId, skip: number, limit?: number, sortBy, sortOrder: SortOrder)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.uc.ts:30\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 userId\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n schoolId\n \n EntityId\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 Yes\n \n\n \n \n\n \n \n sortBy\n \n \n\n \n No\n \n\n \n 'name'\n \n\n \n \n sortOrder\n \n SortOrder\n \n\n \n No\n \n\n \n SortOrder.asc\n \n\n \n \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 findClassesForSchool\n \n \n \n \n \n \n \n findClassesForSchool(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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 findCombinedClassListForSchool\n \n \n \n \n \n \n \n findCombinedClassListForSchool(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 schoolId\n \n string\n \n\n \n No\n \n\n\n \n \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 findGroupsOfTypeClassForSchool\n \n \n \n \n \n \n \n findGroupsOfTypeClassForSchool(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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 findSystemNamesForGroups\n \n \n \n \n \n \n \n findSystemNamesForGroups(groups: Group[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.uc.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 groups\n \n Group[]\n \n\n \n No\n \n\n\n \n \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 findUsersForGroup\n \n \n \n \n \n \n \n findUsersForGroup(group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 group\n \n Group\n \n\n \n No\n \n\n\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 getGroup\n \n \n \n \n \n \n \n getGroup(userId: EntityId, groupId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/group.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 groupId\n \n EntityId\n \n\n \n No\n \n\n\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, Page, Permission, SchoolYearEntity, SortOrder, User, UserDO } from '@shared/domain';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { ClassService } from '@modules/class';\nimport { Class } from '@modules/class/domain';\nimport { LegacySchoolService, SchoolYearService } from '@modules/legacy-school';\nimport { RoleService } from '@modules/role';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\nimport { SystemDto, SystemService } from '@modules/system';\nimport { UserService } from '@modules/user';\nimport { Group, GroupUser } from '../domain';\nimport { GroupService } from '../service';\nimport { SortHelper } from '../util';\nimport { ClassInfoDto, ResolvedGroupDto, ResolvedGroupUser } from './dto';\nimport { GroupUcMapper } from './mapper/group-uc.mapper';\n\n@Injectable()\nexport class GroupUc {\n\tconstructor(\n\t\tprivate readonly groupService: GroupService,\n\t\tprivate readonly classService: ClassService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly roleService: RoleService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolYearService: SchoolYearService\n\t) {}\n\n\tpublic async findAllClassesForSchool(\n\t\tuserId: EntityId,\n\t\tschoolId: EntityId,\n\t\tskip = 0,\n\t\tlimit?: number,\n\t\tsortBy: keyof ClassInfoDto = 'name',\n\t\tsortOrder: SortOrder = SortOrder.asc\n\t): Promise> {\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkPermission(\n\t\t\tuser,\n\t\t\tschool,\n\t\t\tAuthorizationContextBuilder.read([Permission.CLASS_LIST, Permission.GROUP_LIST])\n\t\t);\n\n\t\tconst combinedClassInfo: ClassInfoDto[] = await this.findCombinedClassListForSchool(schoolId);\n\n\t\tcombinedClassInfo.sort((a: ClassInfoDto, b: ClassInfoDto): number =>\n\t\t\tSortHelper.genericSortFunction(a[sortBy], b[sortBy], sortOrder)\n\t\t);\n\n\t\tconst pageContent: ClassInfoDto[] = this.applyPagination(combinedClassInfo, skip, limit);\n\n\t\tconst page: Page = new Page(pageContent, combinedClassInfo.length);\n\n\t\treturn page;\n\t}\n\n\tprivate async findCombinedClassListForSchool(schoolId: string): Promise {\n\t\tconst [classInfosFromClasses, classInfosFromGroups] = await Promise.all([\n\t\t\tawait this.findClassesForSchool(schoolId),\n\t\t\tawait this.findGroupsOfTypeClassForSchool(schoolId),\n\t\t]);\n\n\t\tconst combinedClassInfo: ClassInfoDto[] = [...classInfosFromClasses, ...classInfosFromGroups];\n\n\t\treturn combinedClassInfo;\n\t}\n\n\tprivate async findClassesForSchool(schoolId: EntityId): Promise {\n\t\tconst classes: Class[] = await this.classService.findClassesForSchool(schoolId);\n\n\t\tconst classInfosFromClasses: ClassInfoDto[] = await Promise.all(\n\t\t\tclasses.map(async (clazz: Class): Promise => {\n\t\t\t\tconst teachers: UserDO[] = await Promise.all(\n\t\t\t\t\tclazz.teacherIds.map((teacherId: EntityId) => this.userService.findById(teacherId))\n\t\t\t\t);\n\n\t\t\t\tlet schoolYear: SchoolYearEntity | undefined;\n\t\t\t\tif (clazz.year) {\n\t\t\t\t\tschoolYear = await this.schoolYearService.findById(clazz.year);\n\t\t\t\t}\n\n\t\t\t\tconst mapped: ClassInfoDto = GroupUcMapper.mapClassToClassInfoDto(clazz, teachers, schoolYear);\n\n\t\t\t\treturn mapped;\n\t\t\t})\n\t\t);\n\n\t\treturn classInfosFromClasses;\n\t}\n\n\tprivate async findGroupsOfTypeClassForSchool(schoolId: EntityId): Promise {\n\t\tconst groupsOfTypeClass: Group[] = await this.groupService.findClassesForSchool(schoolId);\n\n\t\tconst systemMap: Map = await this.findSystemNamesForGroups(groupsOfTypeClass);\n\n\t\tconst classInfosFromGroups: ClassInfoDto[] = await Promise.all(\n\t\t\tgroupsOfTypeClass.map(async (group: Group): Promise => {\n\t\t\t\tlet system: SystemDto | undefined;\n\t\t\t\tif (group.externalSource) {\n\t\t\t\t\tsystem = systemMap.get(group.externalSource.systemId);\n\t\t\t\t}\n\n\t\t\t\tconst resolvedUsers: ResolvedGroupUser[] = await this.findUsersForGroup(group);\n\n\t\t\t\tconst mapped: ClassInfoDto = GroupUcMapper.mapGroupToClassInfoDto(group, resolvedUsers, system);\n\n\t\t\t\treturn mapped;\n\t\t\t})\n\t\t);\n\n\t\treturn classInfosFromGroups;\n\t}\n\n\tprivate async findSystemNamesForGroups(groups: Group[]): Promise> {\n\t\tconst systemIds: EntityId[] = groups\n\t\t\t.map((group: Group): string | undefined => group.externalSource?.systemId)\n\t\t\t.filter((systemId: string | undefined): systemId is EntityId => systemId !== undefined);\n\n\t\tconst uniqueSystemIds: EntityId[] = Array.from(new Set(systemIds));\n\n\t\tconst systems: Map = new Map();\n\n\t\tawait Promise.all(\n\t\t\tuniqueSystemIds.map(async (systemId: string) => {\n\t\t\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\n\t\t\t\tsystems.set(systemId, system);\n\t\t\t})\n\t\t);\n\n\t\treturn systems;\n\t}\n\n\tprivate async findUsersForGroup(group: Group): Promise {\n\t\tconst resolvedGroupUsers: ResolvedGroupUser[] = await Promise.all(\n\t\t\tgroup.users.map(async (groupUser: GroupUser): Promise => {\n\t\t\t\tconst user: UserDO = await this.userService.findById(groupUser.userId);\n\t\t\t\tconst role: RoleDto = await this.roleService.findById(groupUser.roleId);\n\n\t\t\t\tconst resolvedGroups = new ResolvedGroupUser({\n\t\t\t\t\tuser,\n\t\t\t\t\trole,\n\t\t\t\t});\n\n\t\t\t\treturn resolvedGroups;\n\t\t\t})\n\t\t);\n\n\t\treturn resolvedGroupUsers;\n\t}\n\n\tprivate applyPagination(combinedClassInfo: ClassInfoDto[], skip: number, limit: number | undefined) {\n\t\tconst page: ClassInfoDto[] = combinedClassInfo.slice(skip, limit ? skip + limit : combinedClassInfo.length);\n\n\t\treturn page;\n\t}\n\n\tpublic async getGroup(userId: EntityId, groupId: EntityId): Promise {\n\t\tconst group: Group = await this.groupService.findById(groupId);\n\n\t\tawait this.checkPermission(userId, group);\n\n\t\tconst resolvedUsers: ResolvedGroupUser[] = await this.findUsersForGroup(group);\n\t\tconst resolvedGroup: ResolvedGroupDto = GroupUcMapper.mapToResolvedGroupDto(group, resolvedUsers);\n\n\t\treturn resolvedGroup;\n\t}\n\n\tprivate async checkPermission(userId: EntityId, group: Group): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\treturn this.authorizationService.checkPermission(\n\t\t\tuser,\n\t\t\tgroup,\n\t\t\tAuthorizationContextBuilder.read([Permission.GROUP_VIEW])\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/GroupUcMapper.html":{"url":"classes/GroupUcMapper.html","title":"class - GroupUcMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUcMapper\n\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/uc/mapper/group-uc.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 mapClassToClassInfoDto\n \n \n Static\n mapGroupToClassInfoDto\n \n \n Static\n mapToResolvedGroupDto\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 mapClassToClassInfoDto\n \n \n \n \n \n \n \n mapClassToClassInfoDto(clazz: Class, teachers: UserDO[], schoolYear?: SchoolYearEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/mapper/group-uc.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 clazz\n \n Class\n \n\n \n No\n \n\n\n \n \n teachers\n \n UserDO[]\n \n\n \n No\n \n\n\n \n \n schoolYear\n \n SchoolYearEntity\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : ClassInfoDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapGroupToClassInfoDto\n \n \n \n \n \n \n \n mapGroupToClassInfoDto(group: Group, resolvedUsers: ResolvedGroupUser[], system?: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/mapper/group-uc.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 group\n \n Group\n \n\n \n No\n \n\n\n \n \n resolvedUsers\n \n ResolvedGroupUser[]\n \n\n \n No\n \n\n\n \n \n system\n \n SystemDto\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : ClassInfoDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResolvedGroupDto\n \n \n \n \n \n \n \n mapToResolvedGroupDto(group: Group, resolvedGroupUsers: ResolvedGroupUser[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/uc/mapper/group-uc.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 group\n \n Group\n \n\n \n No\n \n\n\n \n \n resolvedGroupUsers\n \n ResolvedGroupUser[]\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ResolvedGroupDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { RoleName, SchoolYearEntity, UserDO } from '@shared/domain';\nimport { Class } from '@modules/class/domain';\nimport { SystemDto } from '@modules/system';\nimport { Group } from '../../domain';\nimport { ClassInfoDto, ResolvedGroupDto, ResolvedGroupUser } from '../dto';\nimport { ClassRootType } from '../dto/class-root-type';\n\nexport class GroupUcMapper {\n\tpublic static mapGroupToClassInfoDto(\n\t\tgroup: Group,\n\t\tresolvedUsers: ResolvedGroupUser[],\n\t\tsystem?: SystemDto\n\t): ClassInfoDto {\n\t\tconst mapped: ClassInfoDto = new ClassInfoDto({\n\t\t\tid: group.id,\n\t\t\ttype: ClassRootType.GROUP,\n\t\t\tname: group.name,\n\t\t\texternalSourceName: system?.displayName,\n\t\t\tteachers: resolvedUsers\n\t\t\t\t.filter((groupUser: ResolvedGroupUser) => groupUser.role.name === RoleName.TEACHER)\n\t\t\t\t.map((groupUser: ResolvedGroupUser) => groupUser.user.lastName),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tpublic static mapClassToClassInfoDto(clazz: Class, teachers: UserDO[], schoolYear?: SchoolYearEntity): ClassInfoDto {\n\t\tconst name = clazz.gradeLevel ? `${clazz.gradeLevel}${clazz.name}` : clazz.name;\n\t\tconst isUpgradable = clazz.gradeLevel !== 13 && !clazz.successor;\n\n\t\tconst mapped: ClassInfoDto = new ClassInfoDto({\n\t\t\tid: clazz.id,\n\t\t\ttype: ClassRootType.CLASS,\n\t\t\tname,\n\t\t\texternalSourceName: clazz.source,\n\t\t\tteachers: teachers.map((user: UserDO) => user.lastName),\n\t\t\tschoolYear: schoolYear?.name,\n\t\t\tisUpgradable,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tpublic static mapToResolvedGroupDto(group: Group, resolvedGroupUsers: ResolvedGroupUser[]): ResolvedGroupDto {\n\t\tconst mapped: ResolvedGroupDto = new ResolvedGroupDto({\n\t\t\tid: group.id,\n\t\t\tname: group.name,\n\t\t\ttype: group.type,\n\t\t\texternalSource: group.externalSource,\n\t\t\tusers: resolvedGroupUsers,\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"},"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"},"classes/GroupUserResponse.html":{"url":"classes/GroupUserResponse.html","title":"class - GroupUserResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUserResponse\n\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/controller/dto/response/group-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 firstName\n \n \n \n id\n \n \n \n lastName\n \n \n \n role\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(user: GroupUserResponse)\n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group-user.response.ts:15\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 GroupUserResponse\n \n \n \n No\n \n \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/group/controller/dto/response/group-user.response.ts:9\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/group/controller/dto/response/group-user.response.ts:6\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/group/controller/dto/response/group-user.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: RoleName})\n \n \n \n \n \n Defined in apps/server/src/modules/group/controller/dto/response/group-user.response.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 { RoleName } from '@shared/domain';\n\nexport class GroupUserResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tfirstName: string;\n\n\t@ApiProperty()\n\tlastName: string;\n\n\t@ApiProperty({ enum: RoleName })\n\trole: RoleName;\n\n\tconstructor(user: GroupUserResponse) {\n\t\tthis.id = user.id;\n\t\tthis.firstName = user.firstName;\n\t\tthis.lastName = user.lastName;\n\t\tthis.role = user.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/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 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 '@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, SchoolYearEntity, SystemEntity, 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 '@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, SystemEntity, SchoolYearEntity],\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 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, SchoolYearEntity, 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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@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, SchoolYearEntity, 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/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 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 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 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 '@modules/oauth/service/dto/hydra.redirect.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { AuthorizationParams } from '../controller/dto';\nimport { OAuthSSOError } from '../loggable/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 '@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 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 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 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 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 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 '@modules/oauth/controller/dto/authorization.params';\nimport { CookiesDto } from '@modules/oauth/service/dto/cookies.dto';\nimport { HydraRedirectDto } from '@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/ICleanOptions.html":{"url":"interfaces/ICleanOptions.html","title":"interface - ICleanOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICleanOptions\n\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 pageSize\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n pageSize\n \n \n \n \n \n \n \n \n pageSize: 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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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/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 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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { TeamDto } from '@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, SystemEntity } 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 SystemEntity[]);\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 SystemEntity[]);\n\t\t}\n\t}\n\n\tprivate encryptSecretsInSystems(systems: SystemEntity[]) {\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 SystemEntity[]);\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: SystemEntity[]) {\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 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 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 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 ILoggerConfig\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 classes\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 groups\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 classes\n \n \n \n \n \n \n \n \n classes: ClassEntity[]\n\n \n \n\n\n \n \n Type : ClassEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \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 groups\n \n \n \n \n \n \n \n \n groups: GroupEntity[]\n\n \n \n\n\n \n \n Type : GroupEntity[]\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 { ClassEntity } from '@modules/class/entity/class.entity';\nimport { GroupEntity } from '@modules/group/entity/group.entity';\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\tclasses?: ClassEntity[];\n\tgroups?: GroupEntity[];\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\nexport class UsersList {\n\tid!: string;\n\n\tfirstName!: string;\n\n\tlastName!: string;\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\t@ManyToMany(() => ClassEntity, undefined, { fieldName: 'classIds' })\n\tclasses = new Collection(this);\n\n\t@ManyToMany(() => GroupEntity, undefined, { fieldName: 'groupIds' })\n\tgroups = new Collection(this);\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\tthis.classes.set(props.classes || []);\n\t\tthis.groups.set(props.groups || []);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = Course.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = Course.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = Course.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate static 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 getStudentsList(): UsersList[] {\n\t\tconst users = this.students.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getTeachersList(): UsersList[] {\n\t\tconst users = this.teachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getSubstitutionTeachersList(): UsersList[] {\n\t\tconst users = this.substitutionTeachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate static extractUserList(users: User[]): UsersList[] {\n\t\tconst usersList: UsersList[] = users.map((user) => {\n\t\t\treturn {\n\t\t\t\tid: user.id,\n\t\t\t\tfirstName: user.firstName,\n\t\t\t\tlastName: user.lastName,\n\t\t\t};\n\t\t});\n\t\treturn usersList;\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 isExternalUser\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 isExternalUser\n \n \n \n \n \n \n \n \n isExternalUser: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n True if the user is an external user e.g. an oauth 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 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\t/** True if the user is an external user e.g. an oauth user */\n\tisExternalUser: boolean;\n}\n\nexport interface OauthCurrentUser extends ICurrentUser {\n\t/** Contains the idToken of the external idp. Will be set during oAuth2 login and used for rp initiated logout */\n\texternalIdToken?: 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/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 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 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 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 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 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: string\n\n \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: 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: string;\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 FederalStateEntity 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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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 USE_STREAM_TO_ANTIVIRUS\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 USE_STREAM_TO_ANTIVIRUS\n \n \n \n \n \n \n \n \n USE_STREAM_TO_ANTIVIRUS: 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 { 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\tUSE_STREAM_TO_ANTIVIRUS: boolean;\n}\n\nexport const defaultConfig = {\n\tNEST_LOG_LEVEL: Configuration.get('NEST_LOG_LEVEL') as string,\n\tINCOMING_REQUEST_TIMEOUT: Configuration.get('FILES_STORAGE__INCOMING_REQUEST_TIMEOUT') as number,\n};\n\nconst fileStorageConfig: IFileStorageConfig = {\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('FILES_STORAGE__MAX_FILE_SIZE') as number,\n\tUSE_STREAM_TO_ANTIVIRUS: Configuration.get('FILES_STORAGE__USE_STREAM_TO_ANTIVIRUS') as boolean,\n\t...defaultConfig,\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 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 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 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 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: SystemEntity\n\n \n \n\n\n \n \n Type : SystemEntity\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 { SystemEntity } 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: SystemEntity;\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(() => SystemEntity, { 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 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 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 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 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 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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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 path from 'path';\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 isPreviewPossible(): boolean {\n\t\tconst isPreviewPossible = Object.values(PreviewInputMimeTypes).includes(this.mimeType);\n\n\t\treturn isPreviewPossible;\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 (!this.isPreviewPossible()) {\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\tpublic get fileNameWithoutExtension(): string {\n\t\tconst filenameObj = path.parse(this.name);\n\n\t\treturn filenameObj.name;\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/domain/service/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 } 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 '@modules/board';\nimport { ContextExternalToolAuthorizableService } from '@modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from '../type';\n\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 });\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\n \n\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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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/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: FederalStateEntity\n\n \n \n\n\n \n \n Type : FederalStateEntity\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: SchoolYearEntity\n\n \n \n\n\n \n \n Type : SchoolYearEntity\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: SystemEntity[]\n\n \n \n\n\n \n \n Type : SystemEntity[]\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: UserLoginMigrationEntity\n\n \n \n\n\n \n \n Type : UserLoginMigrationEntity\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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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 SchoolYearEntity 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 IUserConfig\n IFilesStorageClientConfig\n IAccountConfig\n IIdentityManagementConfig\n ICommonCartridgeConfig\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 } from '@modules/account';\nimport type { IFilesStorageClientConfig } from '@modules/files-storage-client';\nimport type { IUserConfig } from '@modules/user';\nimport type { ICommonCartridgeConfig } from '@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({ nullable: true })\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 SystemEntity 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 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 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 \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:12\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: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 teams\n \n TeamEntity[]\n \n\n \n No\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: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 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 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: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 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 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, Pseudonym, TeamEntity, UserDO } from '@shared/domain';\nimport { TeamsRepo } from '@shared/repo';\nimport { PseudonymService } from '@modules/pseudonym';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { UserService } from '@modules/user';\nimport { IdTokenCreationLoggableException } from '../error/id-token-creation-exception.loggable';\nimport { GroupNameIdTuple, IdToken, OauthScope } from '../interface';\nimport { OauthProviderLoginFlowService } from './oauth-provider.login-flow.service';\n\n@Injectable()\nexport class IdTokenService {\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\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.findByUserAndToolOrThrow(user, tool);\n\n\t\tconst iframeSubject: string = this.pseudonymService.getIframeSubject(pseudonym.pseudonym);\n\n\t\treturn iframeSubject;\n\t}\n}\n\n \n\n\n\n\n\n\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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 { SystemEntity } 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: SystemEntity;\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(() => SystemEntity, { 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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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 { IFindOptions, ImportUser, User } from '@shared/domain';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_imports\n\n\n\ncluster_ImportUserModule_providers\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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 { LegacySchoolService } from '@modules/legacy-school';\nimport { UserService } from '@modules/user';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError } from '@modules/oauth/loggable';\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 Extends\n \n \n AuthGuard('jwt')\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 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\t// support UserId is missed see featherJS\n\tisExternalUser: 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 Extends\n \n \n PassportStrategy(Strategy)\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 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 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 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 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 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_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 } from '@modules/account';\nimport { SystemModule } from '@modules/system';\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 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 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 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 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 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 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 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 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 '@modules/server/server.config';\nimport { OidcConfigDto } from '@modules/system/service';\nimport { SystemOidcService } from '@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(pageSize?: number)\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 Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageSize\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : Promise\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()\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 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(pageSize?: number): Promise {\n\t\treturn this.keycloakSeedService.clean(pageSize);\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:23\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:32\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:51\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)\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:77\n \n \n\n\n \n \n Cleans users from 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 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:121\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 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:201\n \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 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:156\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 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:172\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 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:99\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 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\ninterface ICleanOptions {\n\tpageSize?: number;\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 * Cleans users 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: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '- mps, --maxPageSize ',\n\t\t\t\tdescription: 'Maximum users to delete per Keycloak API session. Default 100.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: 100,\n\t\t\t},\n\t\t],\n\t})\n\tasync clean(options: IRetryOptions & ICleanOptions): 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(options.pageSize ? Number(options.pageSize) : 100);\n\t\t\t\tthis.console.info(`Cleaned ${count} users in 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/account/services/account.service';\nimport { AccountDto } from '@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_providers\n\n\n\ncluster_KeycloakModule_imports\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, logger: LegacyLogger, inputFiles: IKeycloakConfigurationInputFiles)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.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 kcAdmin\n \n \n KeycloakAdministrationService\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 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(pageSize: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:35\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 pageSize\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \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 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: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 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 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:94\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:99\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: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 \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Inject } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\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\tprivate readonly logger: LegacyLogger,\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(pageSize = 100): Promise {\n\t\tlet foundUsers = 1;\n\t\tlet deletedUsers = 0;\n\t\tconst adminUser = this.kcAdmin.getAdminUser();\n\t\tlet kc = await this.kcAdmin.callKcAdminClient();\n\t\tthis.logger.log(`Starting to delete users...`);\n\t\twhile (foundUsers > 0) {\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\tconst users = (await kc.users.find({ max: pageSize })).filter((user) => user.username !== adminUser);\n\t\t\tfoundUsers = users.length;\n\t\t\tthis.logger.log(`Amount of found Users: ${foundUsers}`);\n\t\t\tfor (const user of users) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait kc.users.del({\n\t\t\t\t\tid: user.id ?? '',\n\t\t\t\t});\n\t\t\t}\n\t\t\tdeletedUsers += foundUsers;\n\t\t\tthis.logger.log(`...deleted ${deletedUsers} users so far.`);\n\t\t}\n\t\treturn deletedUsers;\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({ nullable: true })\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 SystemEntity 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: SystemEntity, 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 SystemEntity\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 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: SystemEntity, 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 SystemEntity\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 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 { SystemEntity } 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: SystemEntity, 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: SystemEntity, 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 Extends\n \n \n PassportStrategy(Strategy, 'ldap')\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: SystemEntity, 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 SystemEntity\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 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 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 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: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 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 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 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, SystemEntity, 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 '@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: SystemEntity = 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(\n\t\taccount: AccountDto,\n\t\tsystem: SystemEntity,\n\t\tldapDn: string,\n\t\tpassword: string\n\t): 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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nLearnroomApiModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\nimport { CopyHelperModule } from '@modules/copy-helper';\nimport { LessonModule } from '@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, AuthorizationReferenceModule],\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 '@modules/board';\nimport { CopyHelperModule } from '@modules/copy-helper';\nimport { LessonModule } from '@modules/lesson';\nimport { TaskModule } from '@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 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 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 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 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 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 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 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 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 '@modules/authorization';\nimport { LoggerModule } from '@src/core/logger';\nimport { UserLoginMigrationModule } from '@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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 : FederalStateEntity\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 : SchoolYearEntity\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 { FederalStateEntity, SchoolFeatures, SchoolYearEntity } 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?: SchoolYearEntity;\n\n\tuserLoginMigrationId?: EntityId;\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tfederalState: FederalStateEntity;\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 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 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 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 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 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 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 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 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 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 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 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: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 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:45\n\n \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 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: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 systemId\n \n string\n \n\n \n No\n \n\n\n \n \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: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 officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\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:66\n\n \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 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: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 entity\n \n SchoolEntity\n \n\n \n No\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 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 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 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 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 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 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 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 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 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 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: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, InternalServerErrorException } from '@nestjs/common';\nimport {\n\tEntityId,\n\tISchoolProperties,\n\tLegacySchoolDo,\n\tSchoolEntity,\n\tSystemEntity,\n\tUserLoginMigrationEntity,\n} 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: SystemEntity) => 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(SystemEntity, systemId))\n\t\t\t\t: [],\n\t\t\tuserLoginMigration: entityDO.userLoginMigrationId\n\t\t\t\t? this._em.getReference(UserLoginMigrationEntity, 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { AuthorizableObject } from '@shared/domain/domain-object';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 Private\n checkSchoolAuthorization\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 Private\n checkSchoolAuthorization\n \n \n \n \n \n \n \n checkSchoolAuthorization(authorizableUser: User, school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:101\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizableUser\n \n User\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 Returns : void\n\n \n \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(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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { Permission, LegacySchoolDo, UserLoginMigrationDO, User } from '@shared/domain';\nimport {\n\tSchoolMigrationService,\n\tUserLoginMigrationRevertService,\n\tUserLoginMigrationService,\n} from '@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\tconst [authorizableUser, school]: [User, LegacySchoolDo] = await Promise.all([\n\t\t\tthis.authService.getUserWithPermissions(userId),\n\t\t\tthis.schoolService.getSchoolById(schoolId),\n\t\t]);\n\n\t\tthis.checkSchoolAuthorization(authorizableUser, school);\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 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\tconst [authorizableUser, school]: [User, LegacySchoolDo] = await Promise.all([\n\t\t\tthis.authService.getUserWithPermissions(userId),\n\t\t\tthis.schoolService.getSchoolById(schoolId),\n\t\t]);\n\n\t\tthis.checkSchoolAuthorization(authorizableUser, school);\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\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\tprivate checkSchoolAuthorization(authorizableUser: User, school: LegacySchoolDo): void {\n\t\tconst context = AuthorizationContextBuilder.read([Permission.SCHOOL_EDIT]);\n\t\tthis.authService.checkPermission(authorizableUser, 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"},"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 '@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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\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/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 Private\n checkDestinationCourseAuthorization\n \n \n Private\n checkFeatureEnabled\n \n \n Private\n checkOriginalLessonAuthorization\n \n \n Async\n copyLesson\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:12\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 Private\n checkDestinationCourseAuthorization\n \n \n \n \n \n \n \n checkDestinationCourseAuthorization(user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.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 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 Returns : void\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()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:68\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 checkOriginalLessonAuthorization\n \n \n \n \n \n \n \n checkOriginalLessonAuthorization(user: User, originalLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.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 user\n \n User\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 Returns : void\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(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: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 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 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 } from '@nestjs/common';\nimport { Course, EntityId, LessonEntity, User } from '@shared/domain';\nimport { Permission } from '@shared/domain/interface/permission.enum';\nimport { CourseRepo, LessonRepo } from '@shared/repo';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@modules/copy-helper';\nimport { LessonCopyParentParams } from '@modules/lesson';\nimport { LessonCopyService } from '@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.checkFeatureEnabled();\n\n\t\tconst [user, originalLesson]: [User, LessonEntity] = await Promise.all([\n\t\t\tthis.authorisation.getUserWithPermissions(userId),\n\t\t\tthis.lessonRepo.findById(lessonId),\n\t\t]);\n\n\t\tthis.checkOriginalLessonAuthorization(user, originalLesson);\n\n\t\t// should be a seperate private method\n\t\tconst destinationCourse = parentParams.courseId\n\t\t\t? await this.courseRepo.findById(parentParams.courseId)\n\t\t\t: originalLesson.course;\n\t\t// ---\n\n\t\tthis.checkDestinationCourseAuthorization(user, destinationCourse);\n\n\t\t// should be a seperate private method\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\t\t// ---\n\n\t\treturn copyStatus;\n\t}\n\n\tprivate checkOriginalLessonAuthorization(user: User, originalLesson: LessonEntity): void {\n\t\tconst contextReadWithTopicCreate = AuthorizationContextBuilder.read([Permission.TOPIC_CREATE]);\n\t\tif (!this.authorisation.hasPermission(user, originalLesson, contextReadWithTopicCreate)) {\n\t\t\t// error message is not correct, switch to authorisation.checkPermission() makse sense for me\n\t\t\tthrow new ForbiddenException('could not find lesson to copy');\n\t\t}\n\t}\n\n\tprivate checkDestinationCourseAuthorization(user: User, destinationCourse: Course): void {\n\t\tconst contextCanWrite = AuthorizationContextBuilder.write([]);\n\t\tthis.authorisation.checkPermission(user, destinationCourse, contextCanWrite);\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"},"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 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 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 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 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 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 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 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 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 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 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 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 '@modules/copy-helper';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { TaskModule } from '@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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/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 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/modules/authorization/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 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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/domain/rules/lesson.rule.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 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 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/modules/authorization/domain/rules/lesson.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 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 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, CourseGroup, LessonEntity, User } from '@shared/domain/entity';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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} else {\n\t\t\tthrow new NotImplementedException('Action is not supported.');\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: boolean;\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} else {\n\t\t\tresult = false;\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 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 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 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 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 findAllLessonsByUserId\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 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: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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllLessonsByUserId\n \n \n \n \n \n \n \n findAllLessonsByUserId(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 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 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 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 '@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 findAllLessonsByUserId(userId: EntityId): Promise {\n\t\tconst lessons = await this.lessonRepo.findByUserId(userId);\n\n\t\treturn lessons;\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 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 '@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/LinkContentBody.html":{"url":"classes/LinkContentBody.html","title":"class - LinkContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkContentBody\n\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 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 url\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:37\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LinkElement.html":{"url":"classes/LinkElement.html","title":"class - LinkElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElement\n\n\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/link-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 url\n \n \n title\n \n \n description\n \n \n imageUrl\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:41\n\n \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 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:45\n\n \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 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:37\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 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 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 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 url\n \n \n\n \n \n geturl()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:5\n \n \n\n \n \n seturl(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-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 title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:13\n \n \n\n \n \n settitle(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.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 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 description\n \n \n\n \n \n getdescription()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:21\n \n \n\n \n \n setdescription(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:25\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 imageUrl\n \n \n\n \n \n getimageUrl()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.do.ts:29\n \n \n\n \n \n setimageUrl(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/link-element.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 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 LinkElement extends BoardComposite {\n\tget url(): string {\n\t\treturn this.props.url ?? '';\n\t}\n\n\tset url(value: string) {\n\t\tthis.props.url = value;\n\t}\n\n\tget title(): string {\n\t\treturn this.props.title ?? '';\n\t}\n\n\tset title(value: string) {\n\t\tthis.props.title = value;\n\t}\n\n\tget description(): string {\n\t\treturn this.props.description ?? '';\n\t}\n\n\tset description(value: string) {\n\t\tthis.props.description = value ?? '';\n\t}\n\n\tget imageUrl(): string {\n\t\treturn this.props.imageUrl ?? '';\n\t}\n\n\tset imageUrl(value: string) {\n\t\tthis.props.imageUrl = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitLinkElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitLinkElementAsync(this);\n\t}\n}\n\nexport interface LinkElementProps extends BoardCompositeProps {\n\turl: string;\n\ttitle: string;\n\tdescription?: string;\n\timageUrl?: string;\n}\n\nexport function isLinkElement(reference: unknown): reference is LinkElement {\n\treturn reference instanceof LinkElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LinkElementContent.html":{"url":"classes/LinkElementContent.html","title":"class - LinkElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementContent\n\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/link-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 Optional\n description\n \n \n \n Optional\n imageUrl\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 Constructor\n \n \n \n \nconstructor(undefined: LinkElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/link-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 LinkElementContent\n \n \n \n No\n \n \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 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/board/controller/dto/element/link-element.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n imageUrl\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/element/link-element.response.ts:23\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()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/link-element.response.ts:17\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/board/controller/dto/element/link-element.response.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 { TimestampsResponse } from '../timestamps.response';\n\nexport class LinkElementContent {\n\tconstructor({ url, title, description, imageUrl }: LinkElementContent) {\n\t\tthis.url = url;\n\t\tthis.title = title;\n\t\tthis.description = description;\n\t\tthis.imageUrl = imageUrl;\n\t}\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty()\n\ttitle: string;\n\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\timageUrl?: string;\n}\n\nexport class LinkElementResponse {\n\tconstructor({ id, content, timestamps, type }: LinkElementResponse) {\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.LINK;\n\n\t@ApiProperty()\n\tcontent: LinkElementContent;\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/LinkElementContentBody.html":{"url":"classes/LinkElementContentBody.html","title":"class - LinkElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementContentBody\n\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 : LinkContentBody\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:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.LINK\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:42\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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/LinkElementNode.html":{"url":"entities/LinkElementNode.html","title":"entity - LinkElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n LinkElementNode\n\n\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/link-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 Optional\n imageUrl\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 Optional\n imageUrl\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/link-element-node.entity.ts:15\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/boardnode/link-element-node.entity.ts:12\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/boardnode/link-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.LINK_ELEMENT })\nexport class LinkElementNode extends BoardNode {\n\t@Property()\n\turl: string;\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\timageUrl?: string;\n\n\tconstructor(props: LinkElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.LINK_ELEMENT;\n\t\tthis.url = props.url;\n\t\tthis.title = props.title;\n\t\tthis.imageUrl = props.imageUrl;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildLinkElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface LinkElementNodeProps extends BoardNodeProps {\n\turl: string;\n\ttitle: string;\n\timageUrl?: 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/LinkElementNodeProps.html":{"url":"interfaces/LinkElementNodeProps.html","title":"interface - LinkElementNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n LinkElementNodeProps\n\n\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/link-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 Optional\n \n imageUrl\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 imageUrl\n \n \n \n \n \n \n \n \n imageUrl: string\n\n \n \n\n\n \n \n Type : string\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\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 { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.LINK_ELEMENT })\nexport class LinkElementNode extends BoardNode {\n\t@Property()\n\turl: string;\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\timageUrl?: string;\n\n\tconstructor(props: LinkElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.LINK_ELEMENT;\n\t\tthis.url = props.url;\n\t\tthis.title = props.title;\n\t\tthis.imageUrl = props.imageUrl;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildLinkElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface LinkElementNodeProps extends BoardNodeProps {\n\turl: string;\n\ttitle: string;\n\timageUrl?: 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/LinkElementProps.html":{"url":"interfaces/LinkElementProps.html","title":"interface - LinkElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n LinkElementProps\n\n\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/link-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 Optional\n \n description\n \n \n \n Optional\n \n imageUrl\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 Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n imageUrl\n \n \n \n \n \n \n \n \n imageUrl: string\n\n \n \n\n\n \n \n Type : string\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\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 { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class LinkElement extends BoardComposite {\n\tget url(): string {\n\t\treturn this.props.url ?? '';\n\t}\n\n\tset url(value: string) {\n\t\tthis.props.url = value;\n\t}\n\n\tget title(): string {\n\t\treturn this.props.title ?? '';\n\t}\n\n\tset title(value: string) {\n\t\tthis.props.title = value;\n\t}\n\n\tget description(): string {\n\t\treturn this.props.description ?? '';\n\t}\n\n\tset description(value: string) {\n\t\tthis.props.description = value ?? '';\n\t}\n\n\tget imageUrl(): string {\n\t\treturn this.props.imageUrl ?? '';\n\t}\n\n\tset imageUrl(value: string) {\n\t\tthis.props.imageUrl = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitLinkElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitLinkElementAsync(this);\n\t}\n}\n\nexport interface LinkElementProps extends BoardCompositeProps {\n\turl: string;\n\ttitle: string;\n\tdescription?: string;\n\timageUrl?: string;\n}\n\nexport function isLinkElement(reference: unknown): reference is LinkElement {\n\treturn reference instanceof LinkElement;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LinkElementResponse.html":{"url":"classes/LinkElementResponse.html","title":"class - LinkElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementResponse\n\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/link-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: LinkElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/link-element.response.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n LinkElementResponse\n \n \n \n No\n \n \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 : LinkElementContent\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/link-element.response.ts:41\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/link-element.response.ts:35\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/link-element.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.LINK\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/link-element.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';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class LinkElementContent {\n\tconstructor({ url, title, description, imageUrl }: LinkElementContent) {\n\t\tthis.url = url;\n\t\tthis.title = title;\n\t\tthis.description = description;\n\t\tthis.imageUrl = imageUrl;\n\t}\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty()\n\ttitle: string;\n\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\timageUrl?: string;\n}\n\nexport class LinkElementResponse {\n\tconstructor({ id, content, timestamps, type }: LinkElementResponse) {\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.LINK;\n\n\t@ApiProperty()\n\tcontent: LinkElementContent;\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/LinkElementResponseMapper.html":{"url":"classes/LinkElementResponseMapper.html","title":"class - LinkElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LinkElementResponseMapper\n\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/link-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 : LinkElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/link-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: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/link-element-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 element\n \n LinkElement\n \n\n \n No\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/link-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : LinkElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/link-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 LinkElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : LinkElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, LinkElement } from '@shared/domain';\nimport { LinkElementContent, LinkElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class LinkElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: LinkElementResponseMapper;\n\n\tpublic static getInstance(): LinkElementResponseMapper {\n\t\tif (!LinkElementResponseMapper.instance) {\n\t\t\tLinkElementResponseMapper.instance = new LinkElementResponseMapper();\n\t\t}\n\n\t\treturn LinkElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: LinkElement): LinkElementResponse {\n\t\tconst result = new LinkElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.LINK,\n\t\t\tcontent: new LinkElementContent({\n\t\t\t\turl: element.url,\n\t\t\t\ttitle: element.title,\n\t\t\t\tdescription: element.description,\n\t\t\t\timageUrl: element.imageUrl,\n\t\t\t}),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: LinkElement): boolean {\n\t\treturn element instanceof LinkElement;\n\t}\n}\n\n \n\n\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 Extends\n \n \n PassportStrategy(Strategy)\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 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 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 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 '@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 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 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 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 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 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 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 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 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: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 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 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: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 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 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: OauthCurrentUser, _: 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: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 user\n \n OauthCurrentUser\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 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';\nimport type { ICurrentUser, OauthCurrentUser } from '../interface';\nimport { LoginDto } from '../uc/dto';\nimport { LoginUc } from '../uc/login.uc';\nimport {\n\tLdapAuthorizationBodyParams,\n\tLocalAuthorizationBodyParams,\n\tLoginResponse,\n\tOauth2AuthorizationBodyParams,\n\tOauthLoginResponse,\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.mapToLoginResponse(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.mapToLoginResponse(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: OauthCurrentUser,\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: OauthLoginResponse = LoginResponseMapper.mapToOauthLoginResponse(loginDto, user.externalIdToken);\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 '@modules/oauth-provider/controller/dto/response/oauth-client.response';\nimport { OidcContextResponse } from '@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 mapToLoginResponse\n \n \n Static\n mapToOauthLoginResponse\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 mapToLoginResponse\n \n \n \n \n \n \n \n mapToLoginResponse(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 Returns : LoginResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToOauthLoginResponse\n \n \n \n \n \n \n \n mapToOauthLoginResponse(loginDto: LoginDto, externalIdToken?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/controllers/mapper/login-response.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 loginDto\n \n LoginDto\n \n\n \n No\n \n\n\n \n \n externalIdToken\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n Returns : OauthLoginResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LoginDto } from '../../uc/dto';\nimport { LoginResponse, OauthLoginResponse } from '../dto';\n\nexport class LoginResponseMapper {\n\tstatic mapToLoginResponse(loginDto: LoginDto): LoginResponse {\n\t\tconst response: LoginResponse = new LoginResponse({\n\t\t\taccessToken: loginDto.accessToken,\n\t\t});\n\n\t\treturn response;\n\t}\n\n\tstatic mapToOauthLoginResponse(loginDto: LoginDto, externalIdToken?: string): OauthLoginResponse {\n\t\tconst response: OauthLoginResponse = new OauthLoginResponse({\n\t\t\taccessToken: loginDto.accessToken,\n\t\t\texternalIdToken,\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"},"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:9\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: ICurrentUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/uc/login.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 userInfo\n \n ICurrentUser\n \n\n \n No\n \n\n\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 { ICurrentUser } from '../interface';\nimport { CreateJwtPayload } from '../interface/jwt-payload';\nimport { CurrentUserMapper } from '../mapper';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { LoginDto } from './dto';\n\n@Injectable()\nexport class LoginUc {\n\tconstructor(private readonly authService: AuthenticationService) {}\n\n\tasync getLoginData(userInfo: ICurrentUser): Promise {\n\t\tconst createJwtPayload: CreateJwtPayload = CurrentUserMapper.mapCurrentUserToCreateJwtPayload(userInfo);\n\n\t\tconst accessTokenDto: LoginDto = await this.authService.generateJwt(createJwtPayload);\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 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\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 \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\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"},"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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_imports\n\n\n\ncluster_ManagementModule_providers\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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/legacy-school';\nimport { UserService } from '@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 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 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:26\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 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:89\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 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:40\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 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:61\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 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:71\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 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, Authenticate, CurrentUser } from '@modules/authentication';\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 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 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 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 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 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_exports\n\n\n\ncluster_NewsModule_imports\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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 '@modules/collaborative-storage';\nimport { PseudonymService } from '@modules/pseudonym';\nimport { UserService } from '@modules/user';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { ExternalTool } from '@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.findByUserAndToolOrThrow(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: string)\n \n \n \n \n Defined in apps/server/src/shared/common/loggable-exception/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 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 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/shared/common/loggable-exception/not-found.loggable-exception.ts:14\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 { 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: string\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 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 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 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 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:249\n\n \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 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 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 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 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 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 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 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 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 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 '@modules/oauth/loggable';\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/loggable/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/loggable/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/loggable/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/loggable/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/loggable/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/loggable/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 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 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 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 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 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 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 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 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 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 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 '@modules/provisioning';\nimport { OauthDataDto } from '@modules/provisioning/dto';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { SystemService } from '@modules/system';\nimport { SystemDto } from '@modules/system/service';\nimport { UserService } from '@modules/user';\nimport { MigrationCheckService, UserMigrationService } from '@modules/user-login-migration';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError, SSOErrorCode, UserNotFoundAfterProvisioningLoggableException } from '../loggable';\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' && system.oauthConfig?.logoutEndpoint) {\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 Extends\n \n \n PassportStrategy(Strategy, 'oauth2')\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 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 '@modules/account/services/account.service';\nimport { AccountDto } from '@modules/account/services/dto';\nimport { OAuthTokenDto } from '@modules/oauth';\nimport { OAuthService } from '@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, OauthCurrentUser } 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: OauthCurrentUser = CurrentUserMapper.mapToOauthCurrentUser(\n\t\t\taccount.id,\n\t\t\tuser,\n\t\t\tsystemId,\n\t\t\ttokenDto.idToken\n\t\t);\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\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 \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\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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameter } from '@modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@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)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.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 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 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: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 jwksUri\n \n string\n \n\n \n No\n \n\n\n \n \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: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 observable\n \n Observable>\n \n\n \n No\n \n\n\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: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 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 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 { AxiosResponse } from 'axios';\nimport JwksRsa from 'jwks-rsa';\nimport QueryString from 'qs';\nimport { lastValueFrom, Observable } from 'rxjs';\nimport { OAuthSSOError } from '../loggable';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from './dto';\n\n@Injectable()\nexport class OauthAdapterService {\n\tconstructor(private readonly httpService: HttpService) {}\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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { ProvisioningModule } from '@modules/provisioning';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@modules/user';\nimport { UserLoginMigrationModule } from '@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 '@modules/oauth-provider/interface/subject-type.enum';\nimport { TokenAuthMethod } from '@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 Optional\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 Optional\n logoutEndpoint\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: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({ nullable: true })\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 SystemEntity 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 Optional\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:29\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:27\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:29\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\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:25\n \n \n\n \n \n If this is set it will be used to redirect the user after login to the logout endpoint of the identity provider.\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\t/**\n\t * If this is set it will be used to redirect the user after login to the logout endpoint of the identity provider.\n\t */\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 Optional\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 Optional\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: false, 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: false,\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"},"interfaces/OauthCurrentUser.html":{"url":"interfaces/OauthCurrentUser.html","title":"interface - OauthCurrentUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n OauthCurrentUser\n\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 Extends\n \n \n ICurrentUser\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n externalIdToken\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalIdToken\n \n \n \n \n \n \n \n \n externalIdToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n Contains the idToken of the external idp. Will be set during oAuth2 login and used for rp initiated logout\n\n \n \n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\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\t/** True if the user is an external user e.g. an oauth user */\n\tisExternalUser: boolean;\n}\n\nexport interface OauthCurrentUser extends ICurrentUser {\n\t/** Contains the idToken of the external idp. Will be set during oAuth2 login and used for rp initiated logout */\n\texternalIdToken?: 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/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/OauthLoginResponse.html":{"url":"classes/OauthLoginResponse.html","title":"class - OauthLoginResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthLoginResponse\n\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/oauth-login.response.ts\n \n\n\n\n \n Extends\n \n \n LoginResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalIdToken\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: OauthLoginResponse)\n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth-login.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 OauthLoginResponse\n \n \n \n No\n \n \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 externalIdToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The external id token which is from the external oauth system and set when scope openid is available.'})\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth-login.response.ts:9\n \n \n\n\n \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 Inherited from LoginResponse\n\n \n \n \n \n Defined in LoginResponse:5\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 { LoginResponse } from './login.response';\n\nexport class OauthLoginResponse extends LoginResponse {\n\t@ApiPropertyOptional({\n\t\tdescription:\n\t\t\t'The external id token which is from the external oauth system and set when scope openid is available.',\n\t})\n\texternalIdToken?: string;\n\n\tconstructor(props: OauthLoginResponse) {\n\t\tsuper(props);\n\t\tthis.externalIdToken = props.externalIdToken;\n\t}\n}\n\n \n\n\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 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_imports\n\n\n\ncluster_OauthModule_providers\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 '@modules/authorization';\nimport { ProvisioningModule } from '@modules/provisioning';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@modules/user';\nimport { UserLoginMigrationModule } from '@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_providers\n\n\n\ncluster_OauthProviderApiModule_imports\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 '@modules/authorization';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@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 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 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 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 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 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 '@modules/authorization';\nimport { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { ICurrentUser } from '@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 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 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 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 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 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 '@modules/oauth-provider/controller/dto';\nimport { ICurrentUser } from '@modules/authentication';\nimport { ForbiddenException, Injectable } from '@nestjs/common';\nimport { IdTokenService } from '@modules/oauth-provider/service/id-token.service';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { IdToken } from '@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 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 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 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 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 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 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 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 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 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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query } from '@nestjs/common';\nimport { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';\n// import should be @shared/infra/oauth-provider\nimport {\n\tProviderConsentResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n\tProviderConsentSessionResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport { ApiTags } from '@nestjs/swagger';\nimport { OauthProviderLogoutFlowUc } from '../uc/oauth-provider.logout-flow.uc';\nimport { OauthProviderLoginFlowUc } from '../uc/oauth-provider.login-flow.uc';\nimport { OauthProviderResponseMapper } from '../mapper/oauth-provider-response.mapper';\nimport { OauthProviderConsentFlowUc } from '../uc/oauth-provider.consent-flow.uc';\nimport { ConsentResponse } from './dto/response/consent.response';\nimport { OauthProviderClientCrudUc } from '../uc/oauth-provider.client-crud.uc';\nimport { RedirectResponse } from './dto/response/redirect.response';\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 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 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 '@modules/lti-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { IToolFeatures, ToolFeatures } from '@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 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 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 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 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 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 '@modules/authorization';\nimport { AcceptQuery, LoginRequestBody, OAuthRejectableBody } from '@modules/oauth-provider/controller/dto';\nimport { OauthProviderRequestMapper } from '@modules/oauth-provider/mapper/oauth-provider-request.mapper';\nimport { PseudonymService } from '@modules/pseudonym/service';\nimport { ExternalTool, Oauth2ToolConfig } from '@modules/tool/external-tool/domain';\nimport { UserService } from '@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 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_providers\n\n\n\ncluster_OauthProviderModule_imports\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 '@modules/lti-tool';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { ToolModule } from '@modules/tool';\nimport { ToolConfigModule } from '@modules/tool/tool-config.module';\nimport { UserModule } from '@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 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 '@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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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: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 \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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser, JWT } from '@modules/authentication';\nimport { OAuthMigrationError } from '@modules/user-login-migration/error/oauth-migration.error';\nimport { MigrationDto } from '@modules/user-login-migration/service/dto';\nimport { CookieOptions, Request, Response } from 'express';\nimport { HydraOauthUc } from '../uc/hydra-oauth.uc';\nimport { UserMigrationResponse } from './dto/user-migration.response';\nimport { OAuthSSOError } from '../loggable/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 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 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 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 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 { AuthenticationService } from '@modules/authentication/services/authentication.service';\nimport { ProvisioningService } from '@modules/provisioning';\nimport { OauthDataDto } from '@modules/provisioning/dto';\nimport { SystemService } from '@modules/system';\nimport { SystemDto } from '@modules/system/service/dto/system.dto';\nimport { UserService } from '@modules/user';\nimport { UserMigrationService } from '@modules/user-login-migration';\nimport { SchoolMigrationService } from '@modules/user-login-migration/service';\nimport { MigrationDto } from '@modules/user-login-migration/service/dto';\nimport { nanoid } from 'nanoid';\nimport { OauthCurrentUser } from '@modules/authentication/interface';\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 oauthCurrentUser: OauthCurrentUser = await this.userService.getResolvedUser(userId);\n\n\t\tconst { accessToken } = await this.authenticationService.generateJwt(oauthCurrentUser);\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({ nullable: true })\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 SystemEntity 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 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 '@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 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 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 jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError } from '@modules/oauth/loggable';\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 Async\n removeExternalGroupsAndAffiliation\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:20\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: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 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 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: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 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 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: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 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 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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeExternalGroupsAndAffiliation\n \n \n \n \n \n \n \n removeExternalGroupsAndAffiliation(externalUserId: EntityId, externalGroups: ExternalGroupDto[], systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.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 externalUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n externalGroups\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 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, FederalStateEntity, SchoolFeatures, SchoolYearEntity } from '@shared/domain';\nimport { LegacySchoolDo, RoleReference, UserDO } from '@shared/domain/domainobject';\nimport { Logger } from '@src/core/logger';\nimport { AccountService } from '@modules/account/services/account.service';\nimport { AccountSaveDto } from '@modules/account/services/dto';\nimport { Group, GroupService, GroupUser } from '@modules/group';\nimport { FederalStateService, LegacySchoolService, SchoolYearService } from '@modules/legacy-school';\nimport { FederalStateNames } from '@modules/legacy-school/types';\nimport { RoleService } from '@modules/role';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\nimport { UserService } from '@modules/user';\nimport { ObjectId } from 'bson';\nimport CryptoJS from 'crypto-js';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\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: SchoolYearEntity = await this.schoolYearService.getCurrentSchoolYear();\n\t\t\tconst federalState: FederalStateEntity = 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\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\tif (!users.length) {\n\t\t\treturn;\n\t\t}\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: existingGroup ? existingGroup.users : [],\n\t\t});\n\t\tusers.forEach((user: GroupUser) => group.addUser(user));\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?.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\tasync removeExternalGroupsAndAffiliation(\n\t\texternalUserId: EntityId,\n\t\texternalGroups: ExternalGroupDto[],\n\t\tsystemId: EntityId\n\t): Promise {\n\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\n\t\tif (!user) {\n\t\t\tthrow new NotFoundLoggableException(UserDO.name, 'externalId', externalUserId);\n\t\t}\n\n\t\tconst existingGroupsOfUser: Group[] = await this.groupService.findByUser(user);\n\n\t\tconst groupsFromSystem: Group[] = existingGroupsOfUser.filter(\n\t\t\t(existingGroup: Group) => existingGroup.externalSource?.systemId === systemId\n\t\t);\n\n\t\tconst groupsWithoutUser: Group[] = groupsFromSystem.filter((existingGroupFromSystem: Group) => {\n\t\t\tconst isUserInGroup = externalGroups.some(\n\t\t\t\t(externalGroup: ExternalGroupDto) =>\n\t\t\t\t\texternalGroup.externalId === existingGroupFromSystem.externalSource?.externalId\n\t\t\t);\n\n\t\t\treturn !isUserInGroup;\n\t\t});\n\n\t\tawait Promise.all(\n\t\t\tgroupsWithoutUser.map(async (group: Group) => {\n\t\t\t\tgroup.removeUser(user);\n\n\t\t\t\tif (group.isEmpty()) {\n\t\t\t\t\tawait this.groupService.delete(group);\n\t\t\t\t} else {\n\t\t\t\t\tawait this.groupService.save(group);\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"},"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 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 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\tawait this.oidcProvisioningService.removeExternalGroupsAndAffiliation(\n\t\t\t\tdata.externalUser.externalId,\n\t\t\t\tdata.externalGroups,\n\t\t\t\tdata.system.systemId\n\t\t\t);\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"},"injectables/OpenGraphProxyService.html":{"url":"injectables/OpenGraphProxyService.html","title":"injectable - OpenGraphProxyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OpenGraphProxyService\n\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/open-graph-proxy.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 fetchOpenGraphData\n \n \n Private\n pickImage\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 Async\n fetchOpenGraphData\n \n \n \n \n \n \n \n fetchOpenGraphData(url: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/open-graph-proxy.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 url\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n pickImage\n \n \n \n \n \n \n \n pickImage(images: ImageObject[], minWidth: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/open-graph-proxy.service.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 images\n \n ImageObject[]\n \n\n \n No\n \n\n \n \n\n \n \n minWidth\n \n number\n \n\n \n No\n \n\n \n 400\n \n\n \n \n \n \n \n Returns : ImageObject | undefined\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport ogs from 'open-graph-scraper';\nimport { ImageObject } from 'open-graph-scraper/dist/lib/types';\n\ntype OpenGraphData = {\n\ttitle: string;\n\tdescription: string;\n\turl: string;\n\timage?: ImageObject;\n};\n\n@Injectable()\nexport class OpenGraphProxyService {\n\tasync fetchOpenGraphData(url: string): Promise {\n\t\tif (url.length === 0) {\n\t\t\tthrow new Error(`OpenGraphProxyService requires a valid URL. Given URL: ${url}`);\n\t\t}\n\n\t\tconst data = await ogs({ url });\n\t\t// WIP: add nice debug logging for available openGraphData?!?\n\n\t\tconst title = data.result.ogTitle ?? '';\n\t\tconst description = data.result.ogDescription ?? '';\n\t\tconst image = data.result.ogImage ? this.pickImage(data.result.ogImage) : undefined;\n\n\t\treturn {\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\timage,\n\t\t\turl,\n\t\t};\n\t}\n\n\tprivate pickImage(images: ImageObject[], minWidth = 400): ImageObject | undefined {\n\t\tconst sortedImages = [...images];\n\t\tsortedImages.sort((a, b) => (a.width && b.width ? Number(a.width) - Number(b.width) : 0));\n\t\tconst smallestBigEnoughImage = sortedImages.find((i) => i.width && i.width >= minWidth);\n\t\tconst fallbackImage = images[0] && images[0].width === undefined ? images[0] : undefined;\n\t\treturn smallestBigEnoughImage ?? fallbackImage;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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"},"classes/PreviewActionsLoggable.html":{"url":"classes/PreviewActionsLoggable.html","title":"class - PreviewActionsLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewActionsLoggable\n\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/preview-generator/loggable/preview-actions.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(message: string, payload: PreviewFileOptions)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/loggable/preview-actions.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 message\n \n \n string\n \n \n \n No\n \n \n \n \n payload\n \n \n PreviewFileOptions\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/infra/preview-generator/loggable/preview-actions.loggable.ts:7\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 { LogMessage, Loggable } from '@src/core/logger';\nimport { PreviewFileOptions } from '../interface';\n\nexport class PreviewActionsLoggable implements Loggable {\n\tconstructor(private readonly message: string, private readonly payload: PreviewFileOptions) {}\n\n\tgetLogMessage(): LogMessage {\n\t\tconst { originFilePath, previewFilePath, previewOptions } = this.payload;\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tdata: {\n\t\t\t\toriginFilePath,\n\t\t\t\tpreviewFilePath,\n\t\t\t\tformat: previewOptions.format,\n\t\t\t\twidth: previewOptions.width,\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/PreviewBuilder.html":{"url":"classes/PreviewBuilder.html","title":"class - PreviewBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewBuilder\n\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/preview.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 buildParams\n \n \n Static\n buildPayload\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 buildParams\n \n \n \n \n \n \n \n buildParams(fileRecord: FileRecord, previewParams: PreviewParams, bytesRange: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/preview.builder.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 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 bytesRange\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : PreviewFileParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildPayload\n \n \n \n \n \n \n \n buildPayload(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/preview.builder.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 PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : PreviewFileOptions\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { PreviewFileOptions } from '@shared/infra/preview-generator';\nimport { PreviewParams } from '../controller/dto';\nimport { FileRecord } from '../entity';\nimport { createPath, createPreviewFilePath, createPreviewNameHash, getFormat } from '../helper';\nimport { PreviewFileParams } from '../interface';\n\nexport class PreviewBuilder {\n\tpublic static buildParams(\n\t\tfileRecord: FileRecord,\n\t\tpreviewParams: PreviewParams,\n\t\tbytesRange: string | undefined\n\t): PreviewFileParams {\n\t\tconst { schoolId, id, mimeType } = fileRecord;\n\t\tconst originFilePath = createPath(schoolId, id);\n\t\tconst format = getFormat(previewParams.outputFormat ?? mimeType);\n\n\t\tconst hash = createPreviewNameHash(id, previewParams);\n\t\tconst previewFilePath = createPreviewFilePath(schoolId, hash, id);\n\n\t\tconst previewFileParams = {\n\t\t\tfileRecord,\n\t\t\tpreviewParams,\n\t\t\thash,\n\t\t\tpreviewFilePath,\n\t\t\toriginFilePath,\n\t\t\tformat,\n\t\t\tbytesRange,\n\t\t};\n\n\t\treturn previewFileParams;\n\t}\n\n\tpublic static buildPayload(params: PreviewFileParams): PreviewFileOptions {\n\t\tconst { originFilePath, previewFilePath, previewParams, format } = params;\n\n\t\tconst payload = {\n\t\t\toriginFilePath,\n\t\t\tpreviewFilePath,\n\t\t\tpreviewOptions: {\n\t\t\t\tformat,\n\t\t\t\twidth: previewParams.width,\n\t\t\t},\n\t\t};\n\n\t\treturn payload;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewConfig.html":{"url":"interfaces/PreviewConfig.html","title":"interface - PreviewConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewConfig\n\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/preview-generator/interface/preview-consumer-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n serverConfig\n \n \n \n \n storageConfig\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n serverConfig\n \n \n \n \n \n \n \n \n serverConfig: PreviewModuleConfig\n\n \n \n\n\n \n \n Type : PreviewModuleConfig\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n storageConfig\n \n \n \n \n \n \n \n \n storageConfig: S3Config\n\n \n \n\n\n \n \n Type : S3Config\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { S3Config } from '@shared/infra/s3-client';\n\nexport interface PreviewModuleConfig {\n\tNEST_LOG_LEVEL: string;\n\tINCOMING_REQUEST_TIMEOUT: number;\n}\n\nexport interface PreviewConfig {\n\tstorageConfig: S3Config;\n\tserverConfig: PreviewModuleConfig;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewFileOptions.html":{"url":"interfaces/PreviewFileOptions.html","title":"interface - PreviewFileOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewFileOptions\n\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/preview-generator/interface/preview.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n originFilePath\n \n \n \n \n previewFilePath\n \n \n \n \n previewOptions\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n originFilePath\n \n \n \n \n \n \n \n \n originFilePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewFilePath\n \n \n \n \n \n \n \n \n previewFilePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewOptions\n \n \n \n \n \n \n \n \n previewOptions: PreviewOptions\n\n \n \n\n\n \n \n Type : PreviewOptions\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface PreviewOptions {\n\tformat: string;\n\twidth?: number;\n}\n\nexport interface PreviewFileOptions {\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tpreviewOptions: PreviewOptions;\n}\n\nexport interface PreviewResponseMessage {\n\tpreviewFilePath: string;\n\tstatus: 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/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 fileRecord\n \n \n \n \n format\n \n \n \n \n hash\n \n \n \n \n originFilePath\n \n \n \n \n previewFilePath\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 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 format\n \n \n \n \n \n \n \n \n format: string\n\n \n \n\n\n \n \n Type : string\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 originFilePath\n \n \n \n \n \n \n \n \n originFilePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewFilePath\n \n \n \n \n \n \n \n \n previewFilePath: string\n\n \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 { 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\tpreviewParams: PreviewParams;\n\thash: string;\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tformat: 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"},"modules/PreviewGeneratorAMQPModule.html":{"url":"modules/PreviewGeneratorAMQPModule.html","title":"module - PreviewGeneratorAMQPModule","body":"\n \n\n\n\n\n Modules\n PreviewGeneratorAMQPModule\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_PreviewGeneratorAMQPModule\n\n\n\ncluster_PreviewGeneratorAMQPModule_imports\n\n\n\n\nPreviewGeneratorConsumerModule\n\nPreviewGeneratorConsumerModule\n\n\n\nPreviewGeneratorAMQPModule\n\nPreviewGeneratorAMQPModule\n\nPreviewGeneratorAMQPModule -->\n\nPreviewGeneratorConsumerModule->PreviewGeneratorAMQPModule\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-preview-amqp.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n PreviewGeneratorConsumerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { PreviewGeneratorConsumerModule } from '@shared/infra/preview-generator';\nimport { defaultConfig, s3Config } from './files-storage.config';\n\n@Module({\n\timports: [PreviewGeneratorConsumerModule.register({ storageConfig: s3Config, serverConfig: defaultConfig })],\n})\nexport class PreviewGeneratorAMQPModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PreviewGeneratorBuilder.html":{"url":"classes/PreviewGeneratorBuilder.html","title":"class - PreviewGeneratorBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewGeneratorBuilder\n\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/preview-generator/preview-generator.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 buildFile\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 buildFile\n \n \n \n \n \n \n \n buildFile(preview: PassThrough, previewOptions: PreviewOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 preview\n \n PassThrough\n \n\n \n No\n \n\n\n \n \n previewOptions\n \n PreviewOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : File\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { File } from '@shared/infra/s3-client';\nimport { PassThrough } from 'stream';\nimport { PreviewOptions } from './interface';\n\nexport class PreviewGeneratorBuilder {\n\tpublic static buildFile(preview: PassThrough, previewOptions: PreviewOptions): File {\n\t\tconst { format } = previewOptions;\n\n\t\tconst file = {\n\t\t\tdata: preview,\n\t\t\tmimeType: format,\n\t\t};\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"},"injectables/PreviewGeneratorConsumer.html":{"url":"injectables/PreviewGeneratorConsumer.html","title":"injectable - PreviewGeneratorConsumer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewGeneratorConsumer\n\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/preview-generator/preview-generator.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 Public\n Async\n generatePreview\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(previewGeneratorService: PreviewGeneratorService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.consumer.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n previewGeneratorService\n \n \n PreviewGeneratorService\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 \n Public\n Async\n generatePreview\n \n \n \n \n \n \n \n generatePreview(payload: PreviewFileOptions)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesPreviewExchange, routingKey: undefined, queue: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.consumer.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 payload\n \n PreviewFileOptions\n \n\n \n No\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 { RabbitPayload, RabbitRPC } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { Logger } from '@src/core/logger';\nimport { FilesPreviewEvents, FilesPreviewExchange } from '@src/shared/infra/rabbitmq';\nimport { PreviewFileOptions } from './interface';\nimport { PreviewActionsLoggable } from './loggable/preview-actions.loggable';\nimport { PreviewGeneratorService } from './preview-generator.service';\n\n@Injectable()\nexport class PreviewGeneratorConsumer {\n\tconstructor(private readonly previewGeneratorService: PreviewGeneratorService, private logger: Logger) {\n\t\tthis.logger.setContext(PreviewGeneratorConsumer.name);\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesPreviewExchange,\n\t\troutingKey: FilesPreviewEvents.GENERATE_PREVIEW,\n\t\tqueue: FilesPreviewEvents.GENERATE_PREVIEW,\n\t})\n\tpublic async generatePreview(@RabbitPayload() payload: PreviewFileOptions) {\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewGeneratorConsumer.generatePreview', payload));\n\n\t\tconst response = await this.previewGeneratorService.generatePreview(payload);\n\n\t\treturn { message: 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"},"modules/PreviewGeneratorConsumerModule.html":{"url":"modules/PreviewGeneratorConsumerModule.html","title":"module - PreviewGeneratorConsumerModule","body":"\n \n\n\n\n\n Modules\n PreviewGeneratorConsumerModule\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/preview-generator/preview-generator-consumer.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(config: PreviewConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator-consumer.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 config\n \n PreviewConfig\n \n\n \n No\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 { ConfigModule } from '@nestjs/config';\nimport { RabbitMQWrapperModule } from '@shared/infra/rabbitmq';\nimport { S3ClientAdapter, S3ClientModule } from '@shared/infra/s3-client';\nimport { createConfigModuleOptions } from '@src/config';\nimport { Logger, LoggerModule } from '@src/core/logger';\nimport { PreviewConfig } from './interface/preview-consumer-config';\nimport { PreviewGeneratorConsumer } from './preview-generator.consumer';\nimport { PreviewGeneratorService } from './preview-generator.service';\n\n@Module({})\nexport class PreviewGeneratorConsumerModule {\n\tstatic register(config: PreviewConfig): DynamicModule {\n\t\tconst { storageConfig, serverConfig } = config;\n\t\tconst providers = [\n\t\t\t{\n\t\t\t\tprovide: PreviewGeneratorService,\n\t\t\t\tuseFactory: (logger: Logger, storageClient: S3ClientAdapter) =>\n\t\t\t\t\tnew PreviewGeneratorService(storageClient, logger),\n\t\t\t\tinject: [Logger, storageConfig.connectionName],\n\t\t\t},\n\t\t\tPreviewGeneratorConsumer,\n\t\t];\n\n\t\treturn {\n\t\t\tmodule: PreviewGeneratorConsumerModule,\n\t\t\timports: [\n\t\t\t\tLoggerModule,\n\t\t\t\tS3ClientModule.register([storageConfig]),\n\t\t\t\tRabbitMQWrapperModule,\n\t\t\t\tConfigModule.forRoot(createConfigModuleOptions(() => serverConfig)),\n\t\t\t],\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"},"modules/PreviewGeneratorProducerModule.html":{"url":"modules/PreviewGeneratorProducerModule.html","title":"module - PreviewGeneratorProducerModule","body":"\n \n\n\n\n\n Modules\n PreviewGeneratorProducerModule\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_PreviewGeneratorProducerModule\n\n\n\ncluster_PreviewGeneratorProducerModule_imports\n\n\n\ncluster_PreviewGeneratorProducerModule_providers\n\n\n\ncluster_PreviewGeneratorProducerModule_exports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nPreviewGeneratorProducerModule\n\nPreviewGeneratorProducerModule\n\nPreviewGeneratorProducerModule -->\n\nLoggerModule->PreviewGeneratorProducerModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nPreviewGeneratorProducerModule -->\n\nRabbitMQWrapperModule->PreviewGeneratorProducerModule\n\n\n\n\n\nPreviewProducer \n\nPreviewProducer \n\nPreviewProducer -->\n\nPreviewGeneratorProducerModule->PreviewProducer \n\n\n\n\n\nPreviewProducer\n\nPreviewProducer\n\nPreviewGeneratorProducerModule -->\n\nPreviewProducer->PreviewGeneratorProducerModule\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/preview-generator/preview-generator-producer.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n PreviewProducer\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n \n \n Exports\n \n \n PreviewProducer\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { RabbitMQWrapperModule } from '../rabbitmq';\nimport { PreviewProducer } from './preview.producer';\n\n@Module({\n\timports: [LoggerModule, RabbitMQWrapperModule],\n\tproviders: [PreviewProducer],\n\texports: [PreviewProducer],\n})\nexport class PreviewGeneratorProducerModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PreviewGeneratorService.html":{"url":"injectables/PreviewGeneratorService.html","title":"injectable - PreviewGeneratorService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewGeneratorService\n\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/preview-generator/preview-generator.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 imageMagick\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n downloadOriginFile\n \n \n Public\n Async\n generatePreview\n \n \n Private\n resizeAndConvert\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(storageClient: S3ClientAdapter, logger: Logger)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 storageClient\n \n \n S3ClientAdapter\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 downloadOriginFile\n \n \n \n \n \n \n \n downloadOriginFile(pathToFile: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 pathToFile\n \n string\n \n\n \n No\n \n\n\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 generatePreview\n \n \n \n \n \n \n \n generatePreview(params: PreviewFileOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 params\n \n PreviewFileOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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: GetFile, previewParams: PreviewOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.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 original\n \n GetFile\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewOptions\n \n\n \n No\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 Properties\n \n \n \n \n \n \n \n Private\n imageMagick\n \n \n \n \n \n \n Default value : subClass({ imageMagick: '7+' })\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview-generator.service.ts:12\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { GetFile, S3ClientAdapter } from '@shared/infra/s3-client';\nimport { Logger } from '@src/core/logger';\nimport { subClass } from 'gm';\nimport { PassThrough } from 'stream';\nimport { PreviewFileOptions, PreviewOptions, PreviewResponseMessage } from './interface';\nimport { PreviewActionsLoggable } from './loggable/preview-actions.loggable';\nimport { PreviewGeneratorBuilder } from './preview-generator.builder';\n\n@Injectable()\nexport class PreviewGeneratorService {\n\tprivate imageMagick = subClass({ imageMagick: '7+' });\n\n\tconstructor(private readonly storageClient: S3ClientAdapter, private logger: Logger) {\n\t\tthis.logger.setContext(PreviewGeneratorService.name);\n\t}\n\n\tpublic async generatePreview(params: PreviewFileOptions): Promise {\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewGeneratorService.generatePreview:start', params));\n\t\tconst { originFilePath, previewFilePath, previewOptions } = params;\n\n\t\tconst original = await this.downloadOriginFile(originFilePath);\n\t\tconst preview = this.resizeAndConvert(original, previewOptions);\n\n\t\tconst file = PreviewGeneratorBuilder.buildFile(preview, params.previewOptions);\n\n\t\tawait this.storageClient.create(previewFilePath, file);\n\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewGeneratorService.generatePreview:end', params));\n\n\t\treturn {\n\t\t\tpreviewFilePath,\n\t\t\tstatus: true,\n\t\t};\n\t}\n\n\tprivate async downloadOriginFile(pathToFile: string): Promise {\n\t\tconst file = await this.storageClient.get(pathToFile);\n\n\t\treturn file;\n\t}\n\n\tprivate resizeAndConvert(original: GetFile, previewParams: PreviewOptions): PassThrough {\n\t\tconst { format, width } = previewParams;\n\n\t\tconst preview = this.imageMagick(original.data);\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\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewModuleConfig.html":{"url":"interfaces/PreviewModuleConfig.html","title":"interface - PreviewModuleConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewModuleConfig\n\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/preview-generator/interface/preview-consumer-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 NEST_LOG_LEVEL\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 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 import { S3Config } from '@shared/infra/s3-client';\n\nexport interface PreviewModuleConfig {\n\tNEST_LOG_LEVEL: string;\n\tINCOMING_REQUEST_TIMEOUT: number;\n}\n\nexport interface PreviewConfig {\n\tstorageConfig: S3Config;\n\tserverConfig: PreviewModuleConfig;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewOptions.html":{"url":"interfaces/PreviewOptions.html","title":"interface - PreviewOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewOptions\n\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/preview-generator/interface/preview.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n format\n \n \n \n Optional\n \n width\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n format\n \n \n \n \n \n \n \n \n format: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n width\n \n \n \n \n \n \n \n \n width: 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 PreviewOptions {\n\tformat: string;\n\twidth?: number;\n}\n\nexport interface PreviewFileOptions {\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tpreviewOptions: PreviewOptions;\n}\n\nexport interface PreviewResponseMessage {\n\tpreviewFilePath: string;\n\tstatus: 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/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:126\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:113\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:118\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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/PreviewProducer.html":{"url":"injectables/PreviewProducer.html","title":"injectable - PreviewProducer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewProducer\n\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/preview-generator/preview.producer.ts\n \n\n\n\n \n Extends\n \n \n RpcMessageProducer\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n generate\n \n \n Protected\n checkError\n \n \n Protected\n createRequest\n \n \n Protected\n Async\n request\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, logger: Logger, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview.producer.ts:11\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 logger\n \n \n Logger\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 generate\n \n \n \n \n \n \n \n generate(payload: PreviewFileOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/preview-generator/preview.producer.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 payload\n \n PreviewFileOptions\n \n\n \n No\n \n\n\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 checkError\n \n \n \n \n \n \n \n checkError(response: RpcMessage)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:21\n\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 response\n \n RpcMessage\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createRequest\n \n \n \n \n \n \n \n createRequest(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer: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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : { exchange: string; routingKey: string; payload: unknown; timeout: number; }\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(event: string, payload)\n \n \n\n\n \n \n Inherited from RpcMessageProducer\n\n \n \n \n \n Defined in RpcMessageProducer:12\n\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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\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 { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { FilesPreviewEvents, FilesPreviewExchange, RpcMessageProducer } from '@shared/infra/rabbitmq';\nimport { Logger } from '@src/core/logger';\nimport { PreviewFileOptions, PreviewResponseMessage } from './interface';\nimport { PreviewModuleConfig } from './interface/preview-consumer-config';\nimport { PreviewActionsLoggable } from './loggable/preview-actions.loggable';\n\n@Injectable()\nexport class PreviewProducer extends RpcMessageProducer {\n\tconstructor(\n\t\tprotected readonly amqpConnection: AmqpConnection,\n\t\tprivate readonly logger: Logger,\n\t\tprotected readonly configService: ConfigService\n\t) {\n\t\tconst timeout = configService.get('INCOMING_REQUEST_TIMEOUT');\n\n\t\tsuper(amqpConnection, FilesPreviewExchange, timeout);\n\t\tthis.logger.setContext(PreviewProducer.name);\n\t}\n\n\tasync generate(payload: PreviewFileOptions): Promise {\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewProducer.generate:started', payload));\n\t\tconst response = await this.request(FilesPreviewEvents.GENERATE_PREVIEW, payload);\n\n\t\tthis.logger.debug(new PreviewActionsLoggable('PreviewProducer.generate:finished', payload));\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"},"interfaces/PreviewResponseMessage.html":{"url":"interfaces/PreviewResponseMessage.html","title":"interface - PreviewResponseMessage","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewResponseMessage\n\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/preview-generator/interface/preview.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n previewFilePath\n \n \n \n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n previewFilePath\n \n \n \n \n \n \n \n \n previewFilePath: string\n\n \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: 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 PreviewOptions {\n\tformat: string;\n\twidth?: number;\n}\n\nexport interface PreviewFileOptions {\n\toriginFilePath: string;\n\tpreviewFilePath: string;\n\tpreviewOptions: PreviewOptions;\n}\n\nexport interface PreviewResponseMessage {\n\tpreviewFilePath: string;\n\tstatus: 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/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 Public\n Async\n download\n \n \n Private\n Async\n generatePreview\n \n \n Private\n Async\n getPreviewFile\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, logger: LegacyLogger, previewProducer: PreviewProducer)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/service/preview.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 storageClient\n \n \n S3ClientAdapter\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 previewProducer\n \n \n PreviewProducer\n \n \n \n No\n \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: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 fileRecord\n \n FileRecord\n \n\n \n No\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: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 fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\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 download\n \n \n \n \n \n \n \n download(fileRecord: FileRecord, previewParams: PreviewParams, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.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 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 bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \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: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 params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \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: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 params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \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 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: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 PreviewFileParams\n \n\n \n No\n \n\n\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 { PreviewProducer } from '@shared/infra/preview-generator';\nimport { S3ClientAdapter } from '@shared/infra/s3-client';\nimport { LegacyLogger } from '@src/core/logger';\nimport { PreviewParams } from '../controller/dto';\nimport { FileRecord, PreviewStatus } from '../entity';\nimport { ErrorType } from '../error';\nimport { FILES_STORAGE_S3_CONNECTION } from '../files-storage.config';\nimport { createPreviewDirectoryPath, getPreviewName } from '../helper';\nimport { GetFileResponse, PreviewFileParams } from '../interface';\nimport { FileResponseBuilder, PreviewBuilder } from '../mapper';\n\n@Injectable()\nexport class PreviewService {\n\tconstructor(\n\t\t@Inject(FILES_STORAGE_S3_CONNECTION) private readonly storageClient: S3ClientAdapter,\n\t\tprivate logger: LegacyLogger,\n\t\tprivate readonly previewProducer: PreviewProducer\n\t) {\n\t\tthis.logger.setContext(PreviewService.name);\n\t}\n\n\tpublic async download(\n\t\tfileRecord: FileRecord,\n\t\tpreviewParams: PreviewParams,\n\t\tbytesRange?: string\n\t): Promise {\n\t\tthis.checkIfPreviewPossible(fileRecord);\n\n\t\tconst previewFileParams = PreviewBuilder.buildParams(fileRecord, previewParams, bytesRange);\n\n\t\tconst response = await this.tryGetPreviewOrGenerate(previewFileParams);\n\n\t\treturn response;\n\t}\n\n\tpublic async deletePreviews(fileRecords: FileRecord[]): Promise {\n\t\tconst paths = fileRecords.map((fileRecord) => createPreviewDirectoryPath(fileRecord.getSchoolId(), fileRecord.id));\n\n\t\tconst promises = paths.map((path) => this.storageClient.deleteDirectory(path));\n\n\t\tawait Promise.all(promises);\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\tif (params.previewParams.forceUpdate) {\n\t\t\t\tawait this.generatePreview(params);\n\t\t\t}\n\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\tawait this.generatePreview(params);\n\t\t\tfile = await this.getPreviewFile(params);\n\t\t}\n\n\t\treturn file;\n\t}\n\n\tprivate async getPreviewFile(params: PreviewFileParams): Promise {\n\t\tconst { fileRecord, previewFilePath, bytesRange, previewParams } = params;\n\t\tconst name = getPreviewName(fileRecord, previewParams.outputFormat);\n\t\tconst file = await this.storageClient.get(previewFilePath, 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 payload = PreviewBuilder.buildPayload(params);\n\n\t\tawait this.previewProducer.generate(payload);\n\t}\n}\n\n \n\n\n\n\n\n\n\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_providers\n\n\n\ncluster_ProvisioningModule_imports\n\n\n\ncluster_ProvisioningModule_exports\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 '@modules/account/account.module';\nimport { RoleModule } from '@modules/role';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system/system.module';\nimport { UserModule } from '@modules/user';\nimport { GroupModule } from '@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 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 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 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 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 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 '@modules/system';\nimport { SystemDto } from '@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 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 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 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 '@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"},"modules/PseudonymApiModule.html":{"url":"modules/PseudonymApiModule.html","title":"module - PseudonymApiModule","body":"\n \n\n\n\n\n Modules\n PseudonymApiModule\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_PseudonymApiModule\n\n\n\ncluster_PseudonymApiModule_providers\n\n\n\ncluster_PseudonymApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nPseudonymApiModule\n\nPseudonymApiModule\n\nPseudonymApiModule -->\n\nAuthorizationModule->PseudonymApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nPseudonymApiModule -->\n\nLegacySchoolModule->PseudonymApiModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nPseudonymApiModule -->\n\nPseudonymModule->PseudonymApiModule\n\n\n\n\n\nPseudonymUc\n\nPseudonymUc\n\nPseudonymApiModule -->\n\nPseudonymUc->PseudonymApiModule\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-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n PseudonymUc\n \n \n \n \n Controllers\n \n \n PseudonymController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n PseudonymModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { PseudonymModule } from './pseudonym.module';\nimport { PseudonymController } from './controller/pseudonym.controller';\nimport { PseudonymUc } from './uc';\n\n@Module({\n\timports: [PseudonymModule, AuthorizationModule, LegacySchoolModule],\n\tproviders: [PseudonymUc],\n\tcontrollers: [PseudonymController],\n})\nexport class PseudonymApiModule {}\n\n \n\n\n\n\n\n\n\n\n\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/PseudonymController.html":{"url":"controllers/PseudonymController.html","title":"controller - PseudonymController","body":"\n \n\n\n\n\n\n\n Controllers\n PseudonymController\n\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/controller/pseudonym.controller.ts\n \n\n \n Prefix\n \n \n pseudonyms\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 getPseudonym\n \n \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 getPseudonym\n \n \n \n \n \n \n \n getPseudonym(params: PseudonymParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':pseudonym')@ApiFoundResponse({description: 'Pseudonym has been found.', type: PseudonymResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Returns the related user and tool information to a pseudonym'})\n \n \n\n \n \n Defined in apps/server/src/modules/pseudonym/controller/pseudonym.controller.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 params\n \n PseudonymParams\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 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\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { Pseudonym } from '@shared/domain';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { PseudonymMapper } from '../mapper/pseudonym.mapper';\nimport { PseudonymUc } from '../uc';\nimport { PseudonymResponse } from './dto';\nimport { PseudonymParams } from './dto/pseudonym-params';\n\n@ApiTags('Pseudonym')\n@Authenticate('jwt')\n@Controller('pseudonyms')\nexport class PseudonymController {\n\tconstructor(private readonly pseudonymUc: PseudonymUc) {}\n\n\t@Get(':pseudonym')\n\t@ApiFoundResponse({ description: 'Pseudonym has been found.', type: PseudonymResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Returns the related user and tool information to a pseudonym' })\n\tasync getPseudonym(\n\t\t@Param() params: PseudonymParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst pseudonym: Pseudonym = await this.pseudonymUc.findPseudonymByPseudonym(currentUser.userId, params.pseudonym);\n\n\t\tconst pseudonymResponse: PseudonymResponse = PseudonymMapper.mapToResponse(pseudonym);\n\n\t\treturn pseudonymResponse;\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/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"},"classes/PseudonymMapper.html":{"url":"classes/PseudonymMapper.html","title":"class - PseudonymMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymMapper\n\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/mapper/pseudonym.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(pseudonym: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/mapper/pseudonym.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 pseudonym\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : PseudonymResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Pseudonym } from '@shared/domain';\nimport { PseudonymResponse } from '../controller/dto';\n\nexport class PseudonymMapper {\n\tstatic mapToResponse(pseudonym: Pseudonym): PseudonymResponse {\n\t\tconst response: PseudonymResponse = new PseudonymResponse({\n\t\t\tid: pseudonym.id,\n\t\t\ttoolId: pseudonym.toolId,\n\t\t\tuserId: pseudonym.userId,\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"},"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\ncluster_PseudonymModule_imports\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nPseudonymModule -->\n\nLearnroomModule->PseudonymModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nPseudonymModule -->\n\nUserModule->PseudonymModule\n\n\n\n\n\nFeathersRosterService \n\nFeathersRosterService \n\nFeathersRosterService -->\n\nPseudonymModule->FeathersRosterService \n\n\n\n\n\nPseudonymService \n\nPseudonymService \n\nPseudonymService -->\n\nPseudonymModule->PseudonymService \n\n\n\n\n\nExternalToolPseudonymRepo\n\nExternalToolPseudonymRepo\n\nPseudonymModule -->\n\nExternalToolPseudonymRepo->PseudonymModule\n\n\n\n\n\nFeathersRosterService\n\nFeathersRosterService\n\nPseudonymModule -->\n\nFeathersRosterService->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 FeathersRosterService\n \n \n LegacyLogger\n \n \n PseudonymService\n \n \n PseudonymsRepo\n \n \n \n \n Imports\n \n \n LearnroomModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n FeathersRosterService\n \n \n PseudonymService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { LearnroomModule } from '@modules/learnroom';\nimport { UserModule } from '@modules/user';\nimport { ToolModule } from '@modules/tool';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from './repo';\nimport { FeathersRosterService, PseudonymService } from './service';\n\n@Module({\n\timports: [UserModule, LearnroomModule, forwardRef(() => ToolModule), forwardRef(() => AuthorizationModule)],\n\tproviders: [PseudonymService, PseudonymsRepo, ExternalToolPseudonymRepo, LegacyLogger, FeathersRosterService],\n\texports: [PseudonymService, FeathersRosterService],\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"},"classes/PseudonymParams.html":{"url":"classes/PseudonymParams.html","title":"class - PseudonymParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymParams\n\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/controller/dto/pseudonym-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 pseudonym\n \n \n \n \n\n\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 @IsString()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/controller/dto/pseudonym-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 { IsString } from 'class-validator';\n\nexport class PseudonymParams {\n\t@IsString()\n\t@ApiProperty({ nullable: false, required: true })\n\tpseudonym!: 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/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"},"classes/PseudonymResponse.html":{"url":"classes/PseudonymResponse.html","title":"class - PseudonymResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymResponse\n\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/controller/dto/pseudonym.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 toolId\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(response: PseudonymResponse)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/controller/dto/pseudonym.response.ts:11\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 PseudonymResponse\n \n \n \n No\n \n \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/pseudonym/controller/dto/pseudonym.response.ts:5\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/pseudonym/controller/dto/pseudonym.response.ts:8\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/pseudonym/controller/dto/pseudonym.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';\n\nexport class PseudonymResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\ttoolId: string;\n\n\t@ApiProperty()\n\tuserId: string;\n\n\tconstructor(response: PseudonymResponse) {\n\t\tthis.id = response.id;\n\t\tthis.toolId = response.toolId;\n\t\tthis.userId = response.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"},"classes/PseudonymScope.html":{"url":"classes/PseudonymScope.html","title":"class - PseudonymScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PseudonymScope\n\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.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 byPseudonym\n \n \n byToolId\n \n \n byUserId\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 byPseudonym\n \n \n \n \n \n \nbyPseudonym(pseudonym: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.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 pseudonym\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 byToolId\n \n \n \n \n \n \nbyToolId(toolId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.scope.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 toolId\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 byUserId\n \n \n \n \n \n \nbyUserId(userId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.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 userId\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 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 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 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 { ObjectId } from 'bson';\nimport { ExternalToolPseudonymEntity } from './external-tool-pseudonym.entity';\n\nexport class PseudonymScope extends Scope {\n\tbyPseudonym(pseudonym: string | undefined): this {\n\t\tif (pseudonym) {\n\t\t\tthis.addQuery({ pseudonym });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyUserId(userId: string | undefined): this {\n\t\tif (userId) {\n\t\t\tthis.addQuery({ userId: new ObjectId(userId) });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyToolId(toolId: string | undefined): this {\n\t\tif (toolId) {\n\t\t\tthis.addQuery({ toolId: new ObjectId(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"},"interfaces/PseudonymSearchQuery.html":{"url":"interfaces/PseudonymSearchQuery.html","title":"interface - PseudonymSearchQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PseudonymSearchQuery\n\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/domain/pseudonym-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 pseudonym\n \n \n \n Optional\n \n toolId\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 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 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 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 Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface PseudonymSearchQuery {\n\tpseudonym?: string;\n\ttoolId?: string;\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/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 findByUserAndToolOrThrow\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 Async\n findPseudonym\n \n \n Async\n findPseudonymByPseudonym\n \n \n Private\n Async\n findPseudonymsByUserId\n \n \n getIframeSubject\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:11\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: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 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: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 userId\n \n string\n \n\n \n No\n \n\n\n \n \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: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 userId\n \n string\n \n\n \n No\n \n\n\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 findByUserAndToolOrThrow\n \n \n \n \n \n \n \n findByUserAndToolOrThrow(user: UserDO, tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 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 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: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 string\n \n\n \n No\n \n\n\n \n \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: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 userId\n \n string\n \n\n \n No\n \n\n\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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonym\n \n \n \n \n \n \n \n findPseudonym(query: PseudonymSearchQuery, options: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 query\n \n PseudonymSearchQuery\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 Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \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: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 string\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getIframeSubject\n \n \n \n \n \n \ngetIframeSubject(pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.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 pseudonym\n \n string\n \n\n \n No\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 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: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 tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\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 { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { IFindOptions, LtiToolDO, Page, Pseudonym, UserDO } from '@shared/domain';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { v4 as uuidv4 } from 'uuid';\nimport { PseudonymSearchQuery } from '../domain';\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 findByUserAndToolOrThrow(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\tasync findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst result: Pseudonym | null = await this.externalToolPseudonymRepo.findPseudonymByPseudonym(pseudonym);\n\n\t\treturn result;\n\t}\n\n\tasync findPseudonym(query: PseudonymSearchQuery, options: IFindOptions): Promise> {\n\t\tconst result: Page = await this.externalToolPseudonymRepo.findPseudonym(query, options);\n\n\t\treturn result;\n\t}\n\n\tgetIframeSubject(pseudonym: string): string {\n\t\tconst iFrameSubject = ``;\n\n\t\treturn iFrameSubject;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PseudonymUc.html":{"url":"injectables/PseudonymUc.html","title":"injectable - PseudonymUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PseudonymUc\n\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/uc/pseudonym.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 findPseudonymByPseudonym\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(pseudonymService: PseudonymService, authorizationService: AuthorizationService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/uc/pseudonym.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 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 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 findPseudonymByPseudonym\n \n \n \n \n \n \n \n findPseudonymByPseudonym(userId: EntityId, pseudonym: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/uc/pseudonym.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 userId\n \n EntityId\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 \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, Pseudonym, User } from '@shared/domain';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { PseudonymService } from '../service';\n\n@Injectable()\nexport class PseudonymUc {\n\tconstructor(\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {}\n\n\tasync findPseudonymByPseudonym(userId: EntityId, pseudonym: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tconst foundPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (foundPseudonym === null) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\tconst pseudonymUserId: string = foundPseudonym.userId;\n\t\tconst pseudonymUser: User = await this.authorizationService.getUserWithPermissions(pseudonymUserId);\n\t\tconst pseudonymSchool: LegacySchoolDo = await this.schoolService.getSchoolById(pseudonymUser.school.id);\n\n\t\tthis.authorizationService.checkPermission(user, pseudonymSchool, AuthorizationContextBuilder.read([]));\n\n\t\treturn foundPseudonym;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 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 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 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 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 '@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 { FilesPreviewExchange, 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\t{\n\t\t\t\tname: FilesPreviewExchange,\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:55\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 { FilesPreviewExchange, 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\t{\n\t\t\t\tname: FilesPreviewExchange,\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"},"classes/RecursiveCopyVisitor.html":{"url":"classes/RecursiveCopyVisitor.html","title":"class - RecursiveCopyVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RecursiveCopyVisitor\n\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-copy-service/recursive-copy.visitor.ts\n \n\n\n\n\n \n Implements\n \n \n BoardCompositeVisitorAsync\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n copyMap\n \n \n resultMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copy\n \n \n getCopiesForChildrenOf\n \n \n getCopyStatusesForChildrenOf\n \n \n Async\n visitCardAsync\n \n \n Async\n visitChildrenOf\n \n \n Async\n visitColumnAsync\n \n \n Async\n visitColumnBoardAsync\n \n \n visitExternalToolElementAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitLinkElementAsync\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(fileCopyService: SchoolSpecificFileCopyService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileCopyService\n \n \n SchoolSpecificFileCopyService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n copyMap\n \n \n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n resultMap\n \n \n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:21\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copy\n \n \n \n \n \n \n \n copy(original: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getCopiesForChildrenOf\n \n \n \n \n \n \ngetCopiesForChildrenOf(original: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:227\n \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 AnyBoardDo\n \n\n \n No\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 getCopyStatusesForChildrenOf\n \n \n \n \n \n \ngetCopyStatusesForChildrenOf(original: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n AnyBoardDo\n \n\n \n No\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 Async\n visitCardAsync\n \n \n \n \n \n \n \n visitCardAsync(original: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitChildrenOf\n \n \n \n \n \n \n \n visitChildrenOf(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:210\n \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 Returns : unknown\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(original: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n Column\n \n\n \n No\n \n\n\n \n \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(original: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElementAsync\n \n \n \n \n \n \nvisitExternalToolElementAsync(original: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:192\n \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 ExternalToolElement\n \n\n \n No\n \n\n\n \n \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(original: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitLinkElementAsync\n \n \n \n \n \n \n \n visitLinkElementAsync(original: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n LinkElement\n \n\n \n No\n \n\n\n \n \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(original: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.ts:146\n \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 RichTextElement\n \n\n \n No\n \n\n\n \n \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(original: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.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 original\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \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(original: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/recursive-copy.visitor.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 original\n \n SubmissionItem\n \n\n \n No\n \n\n\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\tAnyBoardDo,\n\tBoardCompositeVisitorAsync,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tEntityId,\n\tExternalToolElement,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { CopyElementType, CopyStatus, CopyStatusEnum } from '@modules/copy-helper';\nimport { ObjectId } from 'bson';\nimport { SchoolSpecificFileCopyService } from './school-specific-file-copy.interface';\n\nexport class RecursiveCopyVisitor implements BoardCompositeVisitorAsync {\n\tresultMap = new Map();\n\n\tcopyMap = new Map();\n\n\tconstructor(private readonly fileCopyService: SchoolSpecificFileCopyService) {}\n\n\tasync copy(original: AnyBoardDo): Promise {\n\t\tawait original.acceptAsync(this);\n\n\t\tconst result = this.resultMap.get(original.id);\n\t\t/* istanbul ignore next */\n\t\tif (result === undefined) {\n\t\t\tthrow new Error('nothing copied');\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync visitColumnBoardAsync(original: ColumnBoard): Promise {\n\t\tawait this.visitChildrenOf(original);\n\n\t\tconst copy = new ColumnBoard({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: original.title,\n\t\t\tcontext: original.context,\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tchildren: this.getCopiesForChildrenOf(original),\n\t\t});\n\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.COLUMNBOARD,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitColumnAsync(original: Column): Promise {\n\t\tawait this.visitChildrenOf(original);\n\t\tconst copy = new Column({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: original.title,\n\t\t\tchildren: this.getCopiesForChildrenOf(original),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.COLUMN,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitCardAsync(original: Card): Promise {\n\t\tawait this.visitChildrenOf(original);\n\t\tconst copy = new Card({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: original.title,\n\t\t\theight: original.height,\n\t\t\tchildren: this.getCopiesForChildrenOf(original),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.CARD,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitFileElementAsync(original: FileElement): Promise {\n\t\tconst copy = new FileElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcaption: original.caption,\n\t\t\talternativeText: original.alternativeText,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tconst fileCopy = await this.fileCopyService.copyFilesOfParent({\n\t\t\tsourceParentId: original.id,\n\t\t\ttargetParentId: copy.id,\n\t\t\tparentType: FileRecordParentType.BoardNode,\n\t\t});\n\t\tconst fileCopyStatus = fileCopy.map((copyFileDto) => {\n\t\t\treturn {\n\t\t\t\ttype: CopyElementType.FILE,\n\t\t\t\tstatus: copyFileDto.id ? CopyStatusEnum.SUCCESS : CopyStatusEnum.FAIL,\n\t\t\t\ttitle: copyFileDto.name ?? `(old fileid: ${copyFileDto.sourceId})`,\n\t\t\t};\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.FILE_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: fileCopyStatus,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitLinkElementAsync(original: LinkElement): Promise {\n\t\tconst copy = new LinkElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\turl: original.url,\n\t\t\ttitle: original.title,\n\t\t\timageUrl: original.imageUrl,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.LINK_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync visitRichTextElementAsync(original: RichTextElement): Promise {\n\t\tconst copy = new RichTextElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttext: original.text,\n\t\t\tinputFormat: original.inputFormat,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.RICHTEXT_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync visitSubmissionContainerElementAsync(original: SubmissionContainerElement): Promise {\n\t\tawait this.visitChildrenOf(original);\n\t\tconst copy = new SubmissionContainerElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tdueDate: original.dueDate,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.SUBMISSION_CONTAINER_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\telements: this.getCopyStatusesForChildrenOf(original),\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\t}\n\n\tasync visitSubmissionItemAsync(original: SubmissionItem): Promise {\n\t\tthis.resultMap.set(original.id, {\n\t\t\ttype: CopyElementType.SUBMISSION_ITEM,\n\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tvisitExternalToolElementAsync(original: ExternalToolElement): Promise {\n\t\tconst copy = new ExternalToolElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcontextExternalToolId: undefined,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tthis.resultMap.set(original.id, {\n\t\t\tcopyEntity: copy,\n\t\t\ttype: CopyElementType.EXTERNAL_TOOL_ELEMENT,\n\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t});\n\t\tthis.copyMap.set(original.id, copy);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync visitChildrenOf(boardDo: AnyBoardDo) {\n\t\treturn Promise.allSettled(boardDo.children.map((child) => child.acceptAsync(this)));\n\t}\n\n\tgetCopyStatusesForChildrenOf(original: AnyBoardDo) {\n\t\tconst childstatusses: CopyStatus[] = [];\n\n\t\toriginal.children.forEach((child) => {\n\t\t\tconst childStatus = this.resultMap.get(child.id);\n\t\t\tif (childStatus) {\n\t\t\t\tchildstatusses.push(childStatus);\n\t\t\t}\n\t\t});\n\n\t\treturn childstatusses;\n\t}\n\n\tgetCopiesForChildrenOf(original: AnyBoardDo) {\n\t\tconst copies: AnyBoardDo[] = [];\n\t\toriginal.children.forEach((child) => {\n\t\t\tconst childCopy = this.copyMap.get(child.id);\n\t\t\tif (childCopy) {\n\t\t\t\tcopies.push(childCopy);\n\t\t\t}\n\t\t});\n\n\t\treturn copies;\n\t}\n}\n\n \n\n\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 visitExternalToolElementAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitLinkElementAsync\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: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 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: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 domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\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: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 card\n \n Card\n \n\n \n No\n \n\n\n \n \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: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 domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \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: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 column\n \n Column\n \n\n \n No\n \n\n\n \n \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: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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitExternalToolElementAsync\n \n \n \n \n \n \n \n visitExternalToolElementAsync(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.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 externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\n \n \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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitLinkElementAsync\n \n \n \n \n \n \n \n visitLinkElementAsync(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\n \n \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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \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: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 submission\n \n SubmissionItem\n \n\n \n No\n \n\n\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\tExternalToolElement,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport { FilesStorageClientAdapterService } from '@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 visitLinkElementAsync(linkElement: LinkElement): Promise {\n\t\tthis.deleteNode(linkElement);\n\n\t\tawait this.visitChildrenAsync(linkElement);\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\tasync visitExternalToolElementAsync(externalToolElement: ExternalToolElement): Promise {\n\t\t// TODO N21-1296: Delete linked ContextExternalTool\n\t\tthis.deleteNode(externalToolElement);\n\n\t\tawait this.visitChildrenAsync(externalToolElement);\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 visitExternalToolElement\n \n \n visitFileElement\n \n \n visitLinkElement\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:36\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:36\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:203\n \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 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: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 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 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: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 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 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: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 card\n \n Card\n \n\n \n No\n \n\n\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:188\n \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 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: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 column\n \n Column\n \n\n \n No\n \n\n\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: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 columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitExternalToolElement\n \n \n \n \n \n \nvisitExternalToolElement(externalToolElement: ExternalToolElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:172\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolElement\n \n ExternalToolElement\n \n\n \n No\n \n\n\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: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 fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitLinkElement\n \n \n \n \n \n \nvisitLinkElement(linkElement: LinkElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.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 linkElement\n \n LinkElement\n \n\n \n No\n \n\n\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: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 richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\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: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 submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\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: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 submission\n \n SubmissionItem\n \n\n \n No\n \n\n\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\tExternalToolElement,\n\tExternalToolElementNodeEntity,\n\tFileElement,\n\tFileElementNode,\n\tRichTextElement,\n\tRichTextElementNode,\n\tSubmissionContainerElement,\n\tSubmissionContainerElementNode,\n\tSubmissionItem,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport { LinkElement } from '@shared/domain/domainobject/board/link-element.do';\nimport { LinkElementNode } from '@shared/domain/entity/boardnode/link-element-node.entity';\nimport { ContextExternalToolEntity } from '@modules/tool/context-external-tool/entity';\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\talternativeText: fileElement.alternativeText,\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\tvisitLinkElement(linkElement: LinkElement): void {\n\t\tconst parentData = this.parentsMap.get(linkElement.id);\n\n\t\tconst boardNode = new LinkElementNode({\n\t\t\tid: linkElement.id,\n\t\t\turl: linkElement.url,\n\t\t\ttitle: linkElement.title,\n\t\t\timageUrl: linkElement.imageUrl,\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(linkElement, 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\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tdueDate: submissionContainerElement.dueDate,\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\tvisitExternalToolElement(externalToolElement: ExternalToolElement): void {\n\t\tconst parentData: ParentData | undefined = this.parentsMap.get(externalToolElement.id);\n\n\t\tconst boardNode: ExternalToolElementNodeEntity = new ExternalToolElementNodeEntity({\n\t\t\tid: externalToolElement.id,\n\t\t\tcontextExternalTool: externalToolElement.contextExternalToolId\n\t\t\t\t? this.em.getReference(ContextExternalToolEntity, externalToolElement.contextExternalToolId)\n\t\t\t\t: undefined,\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(externalToolElement, 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/domain/service/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 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/domain/service/reference.loader.ts:39\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 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/domain/service/reference.loader.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 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 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/domain/service/reference.loader.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 type\n \n AuthorizableReferenceType\n \n\n \n No\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/domain/service/reference.loader.ts:39\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, EntityId } 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 '@modules/board';\nimport { ContextExternalToolAuthorizableService } from '@modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from '../type';\n\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 });\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\n \n\n\n\n\n\n\n\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:79\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 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 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 '@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/ResolvedGroupDto.html":{"url":"classes/ResolvedGroupDto.html","title":"class - ResolvedGroupDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedGroupDto\n\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/uc/dto/resolved-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 Optional\n externalSource\n \n \n id\n \n \n name\n \n \n Optional\n organizationId\n \n \n type\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(group: ResolvedGroupDto)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:16\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 ResolvedGroupDto\n \n \n \n No\n \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 externalSource\n \n \n \n \n \n \n Type : ExternalSource\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:14\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 Defined in apps/server/src/modules/group/uc/dto/resolved-group.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/group/uc/dto/resolved-group.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n organizationId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:16\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/group/uc/dto/resolved-group.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : ResolvedGroupUser[]\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ExternalSource } from '@shared/domain';\nimport { GroupTypes } from '../../domain';\nimport { ResolvedGroupUser } from './resolved-group-user';\n\nexport class ResolvedGroupDto {\n\tid: string;\n\n\tname: string;\n\n\ttype: GroupTypes;\n\n\tusers: ResolvedGroupUser[];\n\n\texternalSource?: ExternalSource;\n\n\torganizationId?: string;\n\n\tconstructor(group: ResolvedGroupDto) {\n\t\tthis.id = group.id;\n\t\tthis.name = group.name;\n\t\tthis.type = group.type;\n\t\tthis.users = group.users;\n\t\tthis.externalSource = group.externalSource;\n\t\tthis.organizationId = group.organizationId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResolvedGroupUser.html":{"url":"classes/ResolvedGroupUser.html","title":"class - ResolvedGroupUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedGroupUser\n\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/uc/dto/resolved-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 role\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: ResolvedGroupUser)\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group-user.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 ResolvedGroupUser\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : RoleDto\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group-user.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : UserDO\n\n \n \n \n \n Defined in apps/server/src/modules/group/uc/dto/resolved-group-user.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { UserDO } from '@shared/domain';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\n\nexport class ResolvedGroupUser {\n\tuser: UserDO;\n\n\trole: RoleDto;\n\n\tconstructor(props: ResolvedGroupUser) {\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"},"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 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\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:20\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:11\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:17\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:14\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:29\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:26\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:32\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: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';\n\nexport type Role = {\n\tname: string;\n\n\tid: string;\n};\n\nexport class ResolvedUserResponse {\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: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 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 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 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 '@modules/authorization';\nimport { LegacySchoolService } from '@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}\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:56\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:52\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 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 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 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 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 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\nexport function isRichTextElement(reference: unknown): reference is RichTextElement {\n\treturn reference instanceof RichTextElement;\n}\n\n \n\n\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:65\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:61\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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\nexport function isRichTextElement(reference: unknown): reference is RichTextElement {\n\treturn reference instanceof RichTextElement;\n}\n\n \n\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 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 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 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 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 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 '@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 '@modules/role/service/role.service';\nimport { RoleUc } from '@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 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 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 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 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 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 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 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 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 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 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 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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { RoleService } from '@modules/role/service/role.service';\nimport { RoleDto } from '@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:186\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:192\n \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 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, Action } from '@modules/authorization';\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 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 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 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 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 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: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 RoomUrlParams\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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: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 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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { CopyApiResponse, CopyMapper } from '@modules/copy-helper';\nimport { serverConfig } from '@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 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 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 '@modules/board';\nimport { TaskService } from '@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 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 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 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: string;\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"},"classes/RpcMessageProducer.html":{"url":"classes/RpcMessageProducer.html","title":"class - RpcMessageProducer","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RpcMessageProducer\n\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-producer.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 Protected\n checkError\n \n \n Protected\n createRequest\n \n \n Protected\n Async\n request\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, exchange: string, timeout: number)\n \n \n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rpc-message-producer.ts:5\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 exchange\n \n \n string\n \n \n \n No\n \n \n \n \n timeout\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 \n Methods\n \n \n \n \n \n \n \n Protected\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/shared/infra/rabbitmq/rpc-message-producer.ts:21\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 response\n \n RpcMessage\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createRequest\n \n \n \n \n \n \n \n createRequest(event: string, payload)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rpc-message-producer.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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : { exchange: string; routingKey: string; payload: unknown; timeout: number; }\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(event: string, payload)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rpc-message-producer.ts:12\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 event\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n \n\n \n No\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 \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { ErrorMapper } from './error.mapper';\nimport { RpcMessage } from './rpc-message';\n\nexport abstract class RpcMessageProducer {\n\tconstructor(\n\t\tprotected readonly amqpConnection: AmqpConnection,\n\t\tprotected readonly exchange: string,\n\t\tprotected readonly timeout: number\n\t) {}\n\n\tprotected async request(event: string, payload: unknown) {\n\t\tconst response = await this.amqpConnection.request>(this.createRequest(event, 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\tprotected 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\tprotected createRequest(event: string, payload: unknown) {\n\t\treturn {\n\t\t\texchange: this.exchange,\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 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/domain/type/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/domain/type/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 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/domain/type/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 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/domain/service/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, groupRule: GroupRule)\n \n \n \n \n Defined in apps/server/src/modules/authorization/domain/service/rule-manager.ts:23\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 groupRule\n \n \n GroupRule\n \n \n \n No\n \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/domain/service/rule-manager.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 rules\n \n Rule[]\n \n\n \n No\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/domain/service/rule-manager.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 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 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/domain/service/rule-manager.ts:23\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 type { AuthorizationContext, Rule } from '../type';\nimport {\n\tBoardDoRule,\n\tContextExternalToolRule,\n\tCourseGroupRule,\n\tCourseRule,\n\tLegacySchoolRule,\n\tLessonRule,\n\tSchoolExternalToolRule,\n\tSubmissionRule,\n\tTaskRule,\n\tTeamRule,\n\tUserLoginMigrationRule,\n\tUserRule,\n\tGroupRule,\n} from '../rules';\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\tprivate readonly groupRule: GroupRule\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\tthis.groupRule,\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 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 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 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 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 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 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 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 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 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\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 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 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 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 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 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: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 relation\n \n SanisSonstigeGruppenzugehoerigeResponse\n \n\n \n No\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 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 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 '@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{\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].filter((sanisGroupUser) => sanisGroupUser.ktid && sanisGroupUser.rollen);\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\tconst externalOrganizationId = source.personenkontexte[0].organisation?.id;\n\n\t\t\t\treturn new ExternalGroupDto({\n\t\t\t\t\tname: group.gruppe.bezeichnung,\n\t\t\t\t\ttype: groupType,\n\t\t\t\t\texternalOrganizationId,\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"},"interfaces/ScanResult.html":{"url":"interfaces/ScanResult.html","title":"interface - ScanResult","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ScanResult\n\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/interfaces/antivirus.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 virus_detected\n \n \n \n Optional\n \n virus_signature\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 virus_detected\n \n \n \n \n \n \n \n \n virus_detected: 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 virus_signature\n \n \n \n \n \n \n \n \n virus_signature: string\n\n \n \n\n\n \n \n 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 AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n\thostname: string;\n\tport: number;\n}\n\nexport interface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\nexport interface ScanResult {\n\tvirus_detected?: boolean;\n\tvirus_signature?: string;\n\terror?: 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/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 Implements\n \n \n ScanResult\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:66\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:58\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:62\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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 : FederalStateEntity\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:107\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 : SchoolYearEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {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(undefined, 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 : UserLoginMigrationEntity\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:104\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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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 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 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 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 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 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 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 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 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 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 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 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 import { CustomParameterEntry, ToolConfigurationStatus } from '@modules/tool/common/domain';\nimport { SchoolExternalTool, SchoolExternalToolProps } from '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/tool/school-external-tool/uc/dto/school-external-tool.types';\nimport { ISchoolExternalToolProperties, SchoolExternalToolEntity } from '@modules/tool/school-external-tool/entity';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { ExternalToolEntity } from '@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 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 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 { ToolConfigurationStatusResponse } from '../../../context-external-tool/controller/dto/tool-configuration-status.response';\nimport { CustomParameterEntryResponse } from './custom-parameter-entry.response';\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: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 entries\n \n CustomParameterEntry[]\n \n\n \n No\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: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 schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\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: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 externalTools\n \n SchoolExternalTool[]\n \n\n \n No\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 { ToolStatusResponseMapper } from '../../common/mapper/tool-status-response.mapper';\nimport { ToolConfigurationStatusResponse } from '../../context-external-tool/controller/dto';\nimport {\n\tCustomParameterEntryResponse,\n\tSchoolExternalToolResponse,\n\tSchoolExternalToolSearchListResponse,\n} from '../controller/dto';\nimport { SchoolExternalTool } from '../domain';\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? ToolStatusResponseMapper.mapToResponse(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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@modules/tool/school-external-tool/entity';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 '@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 findById\n \n \n Async\n findSchoolExternalTools\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 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 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 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 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(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 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 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 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 { SchoolExternalToolRepo } from '@shared/repo';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../domain';\nimport { SchoolExternalToolQuery } from '../uc/dto/school-external-tool.types';\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 findById(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.findById(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 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 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 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 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: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 schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 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 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 '@modules/authorization';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalTool } from '../domain';\nimport { SchoolExternalToolService, SchoolExternalToolValidationService } from '../service';\nimport { SchoolExternalToolDto, SchoolExternalToolQueryInput } from './dto/school-external-tool.types';\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.findById(schoolExternalToolId);\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.findById(schoolExternalToolId);\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: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 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 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 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.findById(schoolExternalTool.toolId);\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 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 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 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 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 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 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 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 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 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 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 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 '@modules/legacy-school';\nimport { UserService } from '@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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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 { UserLoginMigrationEntity } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYearEntity } from './schoolyear.entity';\nimport { SystemEntity } from './system.entity';\nimport { FederalStateEntity } 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?: SystemEntity[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYearEntity;\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\tfederalState: FederalStateEntity;\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(() => SystemEntity, 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(() => SchoolYearEntity, { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYearEntity;\n\n\t@OneToOne(\n\t\t() => UserLoginMigrationEntity,\n\t\t(userLoginMigration: UserLoginMigrationEntity) => userLoginMigration.school,\n\t\t{\n\t\t\torphanRemoval: true,\n\t\t\tnullable: true,\n\t\t\tfieldName: 'userLoginMigrationId',\n\t\t}\n\t)\n\tuserLoginMigration?: UserLoginMigrationEntity;\n\n\t@ManyToOne(() => FederalStateEntity, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalStateEntity;\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"},"interfaces/SchoolSpecificFileCopyService.html":{"url":"interfaces/SchoolSpecificFileCopyService.html","title":"interface - SchoolSpecificFileCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SchoolSpecificFileCopyService\n\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-copy-service/school-specific-file-copy.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n copyFilesOfParent\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n copyFilesOfParent\n \n \n \n \n \n \ncopyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy.interface.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 params\n \n SchoolSpecificFileCopyServiceCopyParams\n \n\n \n No\n \n\n\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 { EntityId } from '@shared/domain';\nimport { CopyFileDto } from '@modules/files-storage-client/dto';\nimport { FileRecordParentType } from '@modules/files-storage/entity';\n\nexport type SchoolSpecificFileCopyServiceCopyParams = {\n\tsourceParentId: EntityId;\n\ttargetParentId: EntityId;\n\tparentType: FileRecordParentType;\n};\n\nexport type SchoolSpecificFileCopyServiceProps = {\n\tsourceSchoolId: EntityId;\n\ttargetSchoolId: EntityId;\n\tuserId: EntityId;\n};\n\nexport interface SchoolSpecificFileCopyService {\n\tcopyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams): 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"},"injectables/SchoolSpecificFileCopyServiceFactory.html":{"url":"injectables/SchoolSpecificFileCopyServiceFactory.html","title":"injectable - SchoolSpecificFileCopyServiceFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolSpecificFileCopyServiceFactory\n\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-copy-service/school-specific-file-copy-service.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 Constructor\n \n \n \n \nconstructor(filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy-service.factory.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\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 build\n \n \n \n \n \n \nbuild(props: SchoolSpecificFileCopyServiceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy-service.factory.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 SchoolSpecificFileCopyServiceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : SchoolSpecificFileCopyService\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { FilesStorageClientAdapterService } from '@modules/files-storage-client';\nimport {\n\tSchoolSpecificFileCopyService,\n\tSchoolSpecificFileCopyServiceProps,\n} from './school-specific-file-copy.interface';\nimport { SchoolSpecificFileCopyServiceImpl } from './school-specific-file-copy.service';\n\n@Injectable()\nexport class SchoolSpecificFileCopyServiceFactory {\n\tconstructor(private readonly filesStorageClientAdapterService: FilesStorageClientAdapterService) {}\n\n\tbuild(props: SchoolSpecificFileCopyServiceProps): SchoolSpecificFileCopyService {\n\t\treturn new SchoolSpecificFileCopyServiceImpl(this.filesStorageClientAdapterService, props);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolSpecificFileCopyServiceImpl.html":{"url":"classes/SchoolSpecificFileCopyServiceImpl.html","title":"class - SchoolSpecificFileCopyServiceImpl","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolSpecificFileCopyServiceImpl\n\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-copy-service/school-specific-file-copy.service.ts\n \n\n\n\n\n \n Implements\n \n \n SchoolSpecificFileCopyService\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n copyFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(filesStorageClientAdapterService: FilesStorageClientAdapterService, props: SchoolSpecificFileCopyServiceProps)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy.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 filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n props\n \n \n SchoolSpecificFileCopyServiceProps\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 copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-copy-service/school-specific-file-copy.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 params\n \n SchoolSpecificFileCopyServiceCopyParams\n \n\n \n No\n \n\n\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 { FilesStorageClientAdapterService } from '@modules/files-storage-client';\nimport { CopyFileDto } from '@modules/files-storage-client/dto';\nimport {\n\tSchoolSpecificFileCopyService,\n\tSchoolSpecificFileCopyServiceCopyParams,\n\tSchoolSpecificFileCopyServiceProps,\n} from './school-specific-file-copy.interface';\n\nexport class SchoolSpecificFileCopyServiceImpl implements SchoolSpecificFileCopyService {\n\tconstructor(\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService,\n\t\tprivate readonly props: SchoolSpecificFileCopyServiceProps\n\t) {}\n\n\tpublic async copyFilesOfParent(params: SchoolSpecificFileCopyServiceCopyParams): Promise {\n\t\treturn this.filesStorageClientAdapterService.copyFilesOfParent({\n\t\t\tsource: {\n\t\t\t\tparentId: params.sourceParentId,\n\t\t\t\tparentType: params.parentType,\n\t\t\t\tschoolId: this.props.sourceSchoolId,\n\t\t\t},\n\t\t\ttarget: {\n\t\t\t\tparentId: params.targetParentId,\n\t\t\t\tparentType: params.parentType,\n\t\t\t\tschoolId: this.props.targetSchoolId,\n\t\t\t},\n\t\t\tuserId: this.props.userId,\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/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 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 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/SchoolYearEntity.html":{"url":"entities/SchoolYearEntity.html","title":"entity - SchoolYearEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolYearEntity\n\n\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 SchoolYearEntity 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 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 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 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 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 { SchoolYearEntity } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\n\n@Injectable()\nexport class SchoolYearRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn SchoolYearEntity;\n\t}\n\n\tasync findCurrentYear(): Promise {\n\t\tconst currentDate = new Date();\n\t\tconst year: SchoolYearEntity | null = await this._em.findOneOrFail(SchoolYearEntity, {\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 findById\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 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/legacy-school/service/school-year.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 Returns : Promise\n\n \n \n \n \n \n \n \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 { EntityId, SchoolYearEntity } 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: SchoolYearEntity = await this.schoolYearRepo.findCurrentYear();\n\n\t\treturn current;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst year: SchoolYearEntity = await this.schoolYearRepo.findById(id);\n\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"},"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 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 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 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 '@modules/files';\nimport { FileEntity } from '@modules/files/entity';\nimport { FileRecord } from '@modules/files-storage/entity';\nimport { ManagementModule } from '@modules/management/management.module';\nimport { serverConfig } from '@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\nPseudonymApiModule\n\nPseudonymApiModule\n\nServerModule -->\n\nPseudonymApiModule->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 PseudonymApiModule\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: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 consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\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 '@modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { GroupApiModule } from '@modules/group/group-api.module';\nimport { LearnroomApiModule } from '@modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { ToolApiModule } from '@modules/tool/tool-api.module';\nimport { ImportUserModule } from '@modules/user-import';\nimport { UserLoginMigrationApiModule } from '@modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@modules/teams/teams-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-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\tPseudonymApiModule,\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\nPseudonymApiModule\n\nPseudonymApiModule\n\nServerTestModule -->\n\nPseudonymApiModule->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 PseudonymApiModule\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: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 consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\n\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: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 options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\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 '@modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@modules/files-storage-client';\nimport { GroupApiModule } from '@modules/group/group-api.module';\nimport { LearnroomApiModule } from '@modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@modules/lesson/lesson-api.module';\nimport { NewsModule } from '@modules/news';\nimport { OauthProviderApiModule } from '@modules/oauth-provider';\nimport { OauthApiModule } from '@modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@modules/rocketchat';\nimport { LegacySchoolApiModule } from '@modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@modules/sharing/sharing.module';\nimport { SystemApiModule } from '@modules/system/system-api.module';\nimport { TaskApiModule } from '@modules/task/task-api.module';\nimport { ToolApiModule } from '@modules/tool/tool-api.module';\nimport { ImportUserModule } from '@modules/user-import';\nimport { UserLoginMigrationApiModule } from '@modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@modules/teams/teams-api.module';\nimport { PseudonymApiModule } from '@modules/pseudonym/pseudonym-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\tPseudonymApiModule,\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 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 '@modules/authorization/domain';\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\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 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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { CopyApiResponse, CopyMapper } from '@modules/copy-helper';\n// invalid import can produce dependency cycles\nimport { serverConfig } from '@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 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 '@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 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 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 '@modules/authorization/domain';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@modules/learnroom/service';\nimport { LessonService } from '@modules/lesson/service';\nimport { TaskService } from '@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, authorizationReferenceService: AuthorizationReferenceService, 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:24\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 authorizationReferenceService\n \n \n AuthorizationReferenceService\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:192\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\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 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: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 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 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: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 parentType\n \n ShareTokenParentType\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 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 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: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 token\n \n string\n \n\n \n No\n \n\n\n \n \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: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 days\n \n number\n \n\n \n No\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 { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { AuthorizationReferenceService } from '@modules/authorization/domain';\nimport { CopyStatus } from '@modules/copy-helper';\nimport { CourseCopyService } from '@modules/learnroom';\nimport { CourseService } from '@modules/learnroom/service';\nimport { LessonCopyService } from '@modules/lesson/service';\nimport { TaskCopyService } from '@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 authorizationReferenceService: AuthorizationReferenceService,\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\tconst authorizationContext = AuthorizationContextBuilder.write(requiredPermissions);\n\n\t\tawait this.authorizationReferenceService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tallowedParentType,\n\t\t\tpayload.parentId,\n\t\t\tauthorizationContext\n\t\t);\n\t}\n\n\tprivate async checkContextReadPermission(userId: EntityId, context: ShareTokenContext) {\n\t\tconst allowedContextType = ShareTokenContextTypeMapper.mapToAllowedAuthorizationEntityType(context.contextType);\n\t\tconst authorizationContext = AuthorizationContextBuilder.read([]);\n\n\t\tawait this.authorizationReferenceService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tallowedContextType,\n\t\t\tcontext.contextId,\n\t\t\tauthorizationContext\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\t// Configuration.get is the deprecated way to read envirment variables\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\t// Configuration.get is the deprecated way to read envirment variables\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\t// Configuration.get is the deprecated way to read envirment variables\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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nSharingApiModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\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, AuthorizationReferenceModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [\n\t\tSharingModule,\n\t\tAuthorizationModule,\n\t\tAuthorizationReferenceModule,\n\t\tLearnroomModule,\n\t\tLessonModule,\n\t\tTaskModule,\n\t\tLoggerModule,\n\t],\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_providers\n\n\n\ncluster_SharingModule_exports\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\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nSharingModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\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, AuthorizationReferenceModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [\n\t\tSharingModule,\n\t\tAuthorizationModule,\n\t\tAuthorizationReferenceModule,\n\t\tLearnroomModule,\n\t\tLessonModule,\n\t\tTaskModule,\n\t\tLoggerModule,\n\t],\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:72\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 { ScanResult } from '@shared/infra/antivirus';\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 implements ScanResult {\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/SortHelper.html":{"url":"classes/SortHelper.html","title":"class - SortHelper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortHelper\n\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/util/sort-helper.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 genericSortFunction\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 genericSortFunction\n \n \n \n \n \n \n \n genericSortFunction(a: T, b: T, sortOrder: SortOrder)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/util/sort-helper.ts:4\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 a\n \n T\n \n\n \n No\n \n\n\n \n \n b\n \n T\n \n\n \n No\n \n\n\n \n \n sortOrder\n \n SortOrder\n \n\n \n No\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\n\n \n import { SortOrder } from '@shared/domain';\n\nexport class SortHelper {\n\tpublic static genericSortFunction(a: T, b: T, sortOrder: SortOrder): number {\n\t\tlet order: number;\n\n\t\tif (typeof a !== 'undefined' && typeof b === 'undefined') {\n\t\t\torder = 1;\n\t\t} else if (typeof a === 'undefined' && typeof b !== 'undefined') {\n\t\t\torder = -1;\n\t\t} else if (typeof a === 'string' && typeof b === 'string') {\n\t\t\torder = a.localeCompare(b);\n\t\t} else if (typeof a === 'number' && typeof b === 'number') {\n\t\t\torder = a - b;\n\t\t} else {\n\t\t\torder = 0;\n\t\t}\n\n\t\treturn sortOrder === SortOrder.desc ? -order : order;\n\t}\n}\n\n \n\n\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: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 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 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 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 '@modules/authorization';\nimport { LegacySchoolService } from '@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}\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 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 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 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 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 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 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 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 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 \n Optional\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 \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: 'The point in time until when a submission can be handed in.'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:74\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 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 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 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 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 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 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 | null)\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 | null\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 | null {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date | null) {\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 | null;\n}\n\nexport function isSubmissionContainerElement(reference: unknown): reference is SubmissionContainerElement {\n\treturn reference instanceof SubmissionContainerElement;\n}\n\n \n\n\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 | null\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: Date, description: 'The dueDate as date string or null of not set', example: '2023-08-17T14:17:51.958+00:00'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.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 { 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\t\ttype: Date,\n\t\tdescription: 'The dueDate as date string or null of not set',\n\t\texample: '2023-08-17T14:17:51.958+00:00',\n\t})\n\tdueDate: Date | null;\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:83\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:79\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\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 | null\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/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({ nullable: true })\n\tdueDate: Date | null;\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 | null;\n}\n\n \n\n\n\n\n\n\n\n\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 | null\n\n \n \n\n\n \n \n Type : Date | null\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 | null {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date | null) {\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 | null;\n}\n\nexport function isSubmissionContainerElement(reference: unknown): reference is SubmissionContainerElement {\n\treturn reference instanceof SubmissionContainerElement;\n}\n\n \n\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: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 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: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/submission-container-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/submission-container-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.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: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 } 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\t\ttype: Date,\n\t\tdescription: 'The dueDate as date string or null of not set',\n\t\texample: '2023-08-17T14:17:51.958+00:00',\n\t})\n\tdueDate: Date | null;\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: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 element\n \n SubmissionContainerElement\n \n\n \n No\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 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({\n\t\t\t\tdueDate: element.dueDate,\n\t\t\t}),\n\t\t});\n\n\t\tif (element.dueDate) {\n\t\t\tresult.content = 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 | null\n\n \n \n\n\n \n \n Type : Date | null\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({ nullable: true })\n\tdueDate: Date | null;\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 | null;\n}\n\n \n\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: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 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 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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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\nexport function isSubmissionItem(reference: unknown): reference is SubmissionItem {\n\treturn reference instanceof SubmissionItem;\n}\n\n \n\n\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\nexport function isSubmissionItem(reference: unknown): reference is SubmissionItem {\n\treturn reference instanceof 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/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 userId\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: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 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: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}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:13\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:16\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({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: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 { TimestampsResponse } from '../timestamps.response';\n\nexport class SubmissionItemResponse {\n\tconstructor({ id, timestamps, completed, userId }: SubmissionItemResponse) {\n\t\tthis.id = id;\n\t\tthis.timestamps = timestamps;\n\t\tthis.completed = completed;\n\t\tthis.userId = userId;\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({ pattern: '[a-f0-9]{24}' })\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/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 mapSubmissionsToResponse\n \n \n Public\n mapToResponse\n \n \n Private\n mapUsersToResponse\n \n \n \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 mapSubmissionsToResponse\n \n \n \n \n \n \n \n mapSubmissionsToResponse(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.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 submissionItem\n \n SubmissionItem\n \n\n \n No\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 Public\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(submissionItems: SubmissionItem[], users: UserBoardRoles[])\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 submissionItems\n \n SubmissionItem[]\n \n\n \n No\n \n\n\n \n \n users\n \n UserBoardRoles[]\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : SubmissionsResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapUsersToResponse\n \n \n \n \n \n \n \n mapUsersToResponse(user: UserBoardRoles)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-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 user\n \n UserBoardRoles\n \n\n \n No\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 { SubmissionItem, UserBoardRoles } from '@shared/domain';\nimport { SubmissionItemResponse, SubmissionsResponse, 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(submissionItems: SubmissionItem[], users: UserBoardRoles[]): SubmissionsResponse {\n\t\tconst submissionItemsResponse: SubmissionItemResponse[] = submissionItems.map((item) =>\n\t\t\tthis.mapSubmissionsToResponse(item)\n\t\t);\n\t\tconst usersResponse: UserDataResponse[] = users.map((user) => this.mapUsersToResponse(user));\n\n\t\tconst response = new SubmissionsResponse(submissionItemsResponse, usersResponse);\n\n\t\treturn response;\n\t}\n\n\tpublic mapSubmissionsToResponse(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\tuserId: submissionItem.userId,\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tprivate mapUsersToResponse(user: UserBoardRoles) {\n\t\tconst result = new UserDataResponse({\n\t\t\tuserId: user.userId,\n\t\t\tfirstName: user.firstName || '',\n\t\t\tlastName: user.lastName || '',\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/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 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 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 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, UnprocessableEntityException } from '@nestjs/common';\n\nimport { EntityId, isSubmissionContainerElement, 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 submissionContainterElement = await this.boardDoRepo.findParentOfId(submissionItem.id);\n\t\tif (!isSubmissionContainerElement(submissionContainterElement)) {\n\t\t\tthrow new UnprocessableEntityException();\n\t\t}\n\n\t\tconst now = new Date();\n\t\tif (submissionContainterElement.dueDate && submissionContainterElement.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 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:16\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 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: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 submissionContainerId\n \n EntityId\n \n\n \n No\n \n\n\n \n \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: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 \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: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 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 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 {\n\tAnyBoardDo,\n\tEntityId,\n\tisSubmissionContainerElement,\n\tisSubmissionItem,\n\tSubmissionItem,\n\tUserBoardRoles,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService, Action } from '@modules/authorization';\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(\n\t\tuserId: EntityId,\n\t\tsubmissionContainerId: EntityId\n\t): Promise {\n\t\tconst submissionContainerElement = await this.elementService.findById(submissionContainerId);\n\n\t\tif (!isSubmissionContainerElement(submissionContainerElement)) {\n\t\t\tthrow new HttpException('Id is not submission container', HttpStatus.UNPROCESSABLE_ENTITY);\n\t\t}\n\n\t\tawait this.checkPermission(userId, submissionContainerElement, Action.read);\n\n\t\tlet submissionItems = submissionContainerElement.children.filter(isSubmissionItem);\n\n\t\tconst boardAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(submissionContainerElement);\n\t\tlet users = boardAuthorizable.users.filter((user) => user.userRoleEnum === UserRoleEnum.STUDENT);\n\n\t\tconst isAuthorizedStudent = await this.isAuthorizedStudent(userId, submissionContainerElement);\n\t\tif (isAuthorizedStudent) {\n\t\t\tsubmissionItems = submissionItems.filter((item) => item.userId === userId);\n\t\t\tusers = [];\n\t\t}\n\n\t\treturn { submissionItems, users };\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 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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/domain/rules/submission.rule.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 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 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/modules/authorization/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 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 { Submission, User } from '@shared/domain/entity';\nimport { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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} else {\n\t\t\tthrow new NotImplementedException('Action is not supported.');\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 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 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 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 '@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 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 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 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 '@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"},"classes/SubmissionsResponse.html":{"url":"classes/SubmissionsResponse.html","title":"class - SubmissionsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionsResponse\n\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/submissions.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 submissionItemsResponse\n \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(submissionItemsResponse: SubmissionItemResponse[], users: UserDataResponse[])\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submissions.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 submissionItemsResponse\n \n \n SubmissionItemResponse[]\n \n \n \n No\n \n \n \n \n users\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 submissionItemsResponse\n \n \n \n \n \n \n Type : SubmissionItemResponse[]\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/submission-item/submissions.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : UserDataResponse[]\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/submission-item/submissions.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 { UserDataResponse } from '../user-data.response';\nimport { SubmissionItemResponse } from './submission-item.response';\n\nexport class SubmissionsResponse {\n\tconstructor(submissionItemsResponse: SubmissionItemResponse[], users: UserDataResponse[]) {\n\t\tthis.submissionItemsResponse = submissionItemsResponse;\n\t\tthis.users = users;\n\t}\n\n\t@ApiProperty({\n\t\ttype: [SubmissionItemResponse],\n\t})\n\tsubmissionItemsResponse: SubmissionItemResponse[];\n\n\t@ApiProperty({\n\t\ttype: [UserDataResponse],\n\t})\n\tusers: 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"},"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 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 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"},"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 '@modules/system/controller/system.controller';\nimport { SystemUc } from '@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 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 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 '@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 '@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"},"entities/SystemEntity.html":{"url":"entities/SystemEntity.html","title":"entity - SystemEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SystemEntity\n\n\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({ nullable: true })\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 SystemEntity 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"},"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 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 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 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 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 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 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 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 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 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 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 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 import { ISystemProperties, LdapConfig, OauthConfig, OidcConfig, SystemEntity } 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(SystemEntity, ({ 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: SystemEntity[])\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 SystemEntity[]\n \n\n \n No\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: SystemEntity)\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 SystemEntity\n \n\n \n No\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 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, SystemEntity } from '@shared/domain';\nimport { OauthConfigDto } from '@modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@modules/system/service/dto/system.dto';\n\nexport class SystemMapper {\n\tstatic mapFromEntityToDto(entity: SystemEntity): 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: SystemEntity[]): 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_exports\n\n\n\ncluster_SystemModule_providers\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 '@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: SystemEntity[])\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 SystemEntity[]\n \n\n \n No\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: SystemEntity)\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 SystemEntity\n \n\n \n No\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 Returns : OidcConfigDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OidcConfig, SystemEntity } from '@shared/domain';\nimport { OidcConfigDto } from '@modules/system/service/dto/oidc-config.dto';\n\nexport class SystemOidcMapper {\n\tstatic mapFromEntityToDto(entity: SystemEntity): 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: SystemEntity[]): 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 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, SystemEntity, SystemTypeEnum } from '@shared/domain';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemOidcMapper } from '@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(SystemEntity.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 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 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 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 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 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 { SystemEntity, 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 SystemEntity;\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(SystemEntity, scope.query);\n\t}\n\n\tasync findAll(): Promise {\n\t\treturn this._em.find(SystemEntity, {});\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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 '@modules/system/controller/dto/oauth-config.response';\nimport { OauthConfigDto } from '@modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@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 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 Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SystemEntity } 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 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 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: SystemEntity[])\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 SystemEntity[]\n \n\n \n No\n \n\n\n \n \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 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, SystemEntity, SystemTypeEnum } from '@shared/domain';\nimport { IdentityManagementOauthService } from '@shared/infra/identity-management/identity-management-oauth.service';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemMapper } from '@modules/system/mapper/system.mapper';\nimport { SystemDto } from '@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(SystemEntity.name, { id });\n\t\t}\n\t\treturn SystemMapper.mapFromEntityToDto(system);\n\t}\n\n\tasync findByType(type?: SystemTypeEnum): Promise {\n\t\tlet systems: SystemEntity[];\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: SystemEntity;\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 SystemEntity({\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: SystemEntity[]): 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: SystemEntity;\n\t\treturn systems.map((system) => {\n\t\t\tif (system.oidcConfig && !system.oauthConfig) {\n\t\t\t\tgeneratedSystem = new SystemEntity({\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 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 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, SystemEntity, SystemType, SystemTypeEnum } from '@shared/domain';\nimport { SystemDto } from '@modules/system/service/dto/system.dto';\nimport { SystemService } from '@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(SystemEntity.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 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 '@modules/authorization';\nimport { CopyHelperModule } from '@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 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 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 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 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 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 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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { CopyApiResponse, CopyMapper } from '@modules/copy-helper';\n// invalid import can produce dependency cycles\nimport { serverConfig } from '@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 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 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 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 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 '@modules/copy-helper';\nimport { CopyFilesService } from '@modules/files-storage-client';\nimport { FileUrlReplacement } from '@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 Private\n checkDestinationCourseAuthorisation\n \n \n Private\n checkDestinationLessonAuthorization\n \n \n Private\n checkFeatureEnabled\n \n \n Private\n checkOriginalTaskAuthorization\n \n \n Async\n copyTask\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:11\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 Private\n checkDestinationCourseAuthorisation\n \n \n \n \n \n \n \n checkDestinationCourseAuthorisation(authorizableUser: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.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 authorizableUser\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 Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkDestinationLessonAuthorization\n \n \n \n \n \n \n \n checkDestinationLessonAuthorization(authorizableUser: User, destinationLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.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 authorizableUser\n \n User\n \n\n \n No\n \n\n\n \n \n destinationLesson\n \n LessonEntity\n \n\n \n No\n \n\n\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 checkFeatureEnabled\n \n \n \n \n \n \n \n checkFeatureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:112\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 checkOriginalTaskAuthorization\n \n \n \n \n \n \n \n checkOriginalTaskAuthorization(authorizableUser: User, originalTask: Task)\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 authorizableUser\n \n User\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 \n \n \n Returns : void\n\n \n \n \n \n \n \n \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: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 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 Returns : Promise\n\n \n \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: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 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 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:92\n \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 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)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.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 lessonId\n \n string | undefined\n \n\n \n No\n \n\n\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, Task, LessonEntity, User } from '@shared/domain';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@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.checkFeatureEnabled();\n\n\t\t// i put it to promise all, it do not look like any more information can be expose over errors if it is called between the authorizations\n\t\t// TODO: Add try catch around it with throw BadRequest invalid data\n\t\tconst [authorizableUser, originalTask, destinationCourse]: [User, Task, Course | undefined] = await Promise.all([\n\t\t\tthis.authorisation.getUserWithPermissions(userId),\n\t\t\tthis.taskRepo.findById(taskId),\n\t\t\tthis.getDestinationCourse(parentParams.courseId),\n\t\t]);\n\n\t\tthis.checkOriginalTaskAuthorization(authorizableUser, originalTask);\n\n\t\tif (destinationCourse) {\n\t\t\tthis.checkDestinationCourseAuthorisation(authorizableUser, destinationCourse);\n\t\t}\n\n\t\t// i think getDestinationLesson can also to a promise.all on top\n\t\t// then getCopyName can be put into if (destinationCourse) {\n\t\t// but then the test need to cleanup\n\t\tconst [destinationLesson, copyName]: [LessonEntity | undefined, string | undefined] = await Promise.all([\n\t\t\tthis.getDestinationLesson(parentParams.lessonId),\n\t\t\tthis.getCopyName(originalTask.name, parentParams.courseId),\n\t\t]);\n\n\t\tif (destinationLesson) {\n\t\t\tthis.checkDestinationLessonAuthorization(authorizableUser, destinationLesson);\n\t\t}\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: authorizableUser,\n\t\t\tcopyName,\n\t\t});\n\n\t\treturn status;\n\t}\n\n\tprivate checkOriginalTaskAuthorization(authorizableUser: User, originalTask: Task): void {\n\t\tconst context = AuthorizationContextBuilder.read([]);\n\t\tif (!this.authorisation.hasPermission(authorizableUser, originalTask, context)) {\n\t\t\t// error message and erorr type are not correct\n\t\t\tthrow new NotFoundException('could not find task to copy');\n\t\t}\n\t}\n\n\tprivate checkDestinationCourseAuthorisation(authorizableUser: User, destinationCourse: Course): void {\n\t\tconst context = AuthorizationContextBuilder.write([]);\n\t\tthis.authorisation.checkPermission(authorizableUser, destinationCourse, context);\n\t}\n\n\tprivate checkDestinationLessonAuthorization(authorizableUser: User, destinationLesson: LessonEntity): void {\n\t\tconst context = AuthorizationContextBuilder.write([]);\n\t\tif (!this.authorisation.hasPermission(authorizableUser, destinationLesson, context)) {\n\t\t\tthrow new ForbiddenException('you dont have permission to add to this lesson');\n\t\t}\n\t}\n\n\tprivate async getCopyName(originalTaskName: string, parentCourseId: EntityId | undefined) {\n\t\tlet existingNames: string[] = [];\n\t\tif (parentCourseId) {\n\t\t\t// It should really get an task where the creatorId === '' ?\n\t\t\tconst [existingTasks] = await this.taskRepo.findBySingleParent('', parentCourseId);\n\t\t\texistingNames = existingTasks.map((t) => t.name);\n\t\t}\n\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): 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\n\t\treturn destinationLesson;\n\t}\n\n\tprivate checkFeatureEnabled() {\n\t\t// This is the deprecated way to read envirement variables\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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_exports\n\n\n\ncluster_TaskModule_imports\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 '@modules/authorization';\nimport { CopyHelperModule } from '@modules/copy-helper';\nimport { FilesStorageClientModule } from '@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 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 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 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 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 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 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 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 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 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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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/modules/authorization/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 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 { Action, AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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:19\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 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, Authenticate, CurrentUser } from '@modules/authentication';\nimport { PaginationParams } from '@shared/controller';\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 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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 (response.error) {\n\t\t\tconst error = JSON.stringify(response.error);\n\t\t\tthrow new Error(error);\n\t\t}\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 '@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 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 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 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 '@modules/authorization';\nimport { LegacySchoolService } from '@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 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 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"},"classes/TooManyPseudonymsLoggableException.html":{"url":"classes/TooManyPseudonymsLoggableException.html","title":"class - TooManyPseudonymsLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TooManyPseudonymsLoggableException\n\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/loggable/too-many-pseudonyms.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(pseudonym: string)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/loggable/too-many-pseudonyms.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 pseudonym\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 \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/pseudonym/loggable/too-many-pseudonyms.loggable-exception.ts:18\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 { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage, LogMessage, ValidationErrorLogMessage } from '@src/core/logger/types';\n\nexport class TooManyPseudonymsLoggableException extends BusinessError implements Loggable {\n\tconstructor(private readonly pseudonym: string) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'PSEUDONYMS_TOO_MANY_PSEUDONYMS_FOUND',\n\t\t\t\ttitle: 'Too many pseudonyms where found.',\n\t\t\t\tdefaultMessage: 'Too many pseudonyms where found.',\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: 'PSEUDONYMS_TOO_MANY_PSEUDONYMS_FOUND',\n\t\t\tmessage: 'Too many pseudonyms where found.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tpseudonym: this.pseudonym,\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/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\nBoardModule\n\nBoardModule\n\nToolApiModule -->\n\nBoardModule->ToolApiModule\n\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\nToolApiModule -->\n\nCommonToolModule->ToolApiModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nToolApiModule -->\n\nLearnroomModule->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\nToolPermissionHelper\n\nToolPermissionHelper\n\nToolApiModule -->\n\nToolPermissionHelper->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 ToolPermissionHelper\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 ToolReferenceController\n \n \n ToolController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n BoardModule\n \n \n CommonToolModule\n \n \n LearnroomModule\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 { AuthorizationModule } from '@modules/authorization';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { UserModule } from '@modules/user';\nimport { Module } from '@nestjs/common';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { BoardModule } from '../board';\nimport { LearnroomModule } from '../learnroom';\nimport { CommonToolModule } from './common';\nimport { ToolPermissionHelper } from './common/uc/tool-permission-helper';\nimport { ToolContextController } from './context-external-tool/controller';\nimport { ToolReferenceController } from './context-external-tool/controller/tool-reference.controller';\nimport { ContextExternalToolUc, ToolReferenceUc } from './context-external-tool/uc';\nimport { ToolConfigurationController, ToolController } from './external-tool/controller';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from './external-tool/mapper';\nimport { ExternalToolConfigurationService } from './external-tool/service';\nimport { ExternalToolConfigurationUc, ExternalToolUc } 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';\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\tLearnroomModule,\n\t\tBoardModule,\n\t],\n\tcontrollers: [\n\t\tToolLaunchController,\n\t\tToolConfigurationController,\n\t\tToolSchoolController,\n\t\tToolContextController,\n\t\tToolReferenceController,\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\tToolPermissionHelper,\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: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 ContextRefParams\n \n\n \n No\n \n\n\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: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 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 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: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 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 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: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 params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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: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 body\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\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: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 ContextExternalToolIdParams\n \n\n \n No\n \n\n\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: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 params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\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: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 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 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:146\n \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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { 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 { 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\tcurrentUser.schoolId,\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\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\tcurrentUser.schoolId,\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 \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: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 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 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: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 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 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: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 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 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:101\n \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 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:160\n \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 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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { Response } from 'express';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from '../mapper';\nimport { ExternalToolLogoService } from '../service';\nimport { ExternalToolCreate, ExternalToolUc, ExternalToolUpdate } from '../uc';\nimport {\n\tExternalToolCreateParams,\n\tExternalToolIdParams,\n\tExternalToolResponse,\n\tExternalToolSearchListResponse,\n\tExternalToolSearchParams,\n\tExternalToolUpdateParams,\n\tSortExternalToolParams,\n} from './dto';\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 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('/: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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 = {\n\t[ToolLaunchDataType.BASIC]: ToolConfigType.BASIC,\n\t[ToolLaunchDataType.LTI11]: ToolConfigType.LTI11,\n\t[ToolLaunchDataType.OAUTH2]: ToolConfigType.OAUTH2,\n};\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_exports\n\n\n\ncluster_ToolLaunchModule_providers\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\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 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, forwardRef } from '@nestjs/common';\nimport { LearnroomModule } from '@modules/learnroom';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { PseudonymModule } from '@modules/pseudonym';\nimport { UserModule } from '@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\tforwardRef(() => PseudonymModule), // i do not like this solution, the root problem is on other place but not detectable for me\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 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 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: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 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 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 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 { ToolConfigType, ToolConfigurationStatus } from '../../common/enum';\nimport { CommonToolService } from '../../common/service';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\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 { ToolStatusOutdatedLoggableException } from '../error';\nimport { ToolLaunchMapper } from '../mapper';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\nimport {\n\tBasicToolLaunchStrategy,\n\tIToolLaunchStrategy,\n\tLti11ToolLaunchStrategy,\n\tOAuth2ToolLaunchStrategy,\n} from './strategy';\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.findById(schoolExternalToolId);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(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 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 '@modules/authorization';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { ToolLaunchService } from '../service';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\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.findById(\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, courseService: CourseService, boardElementService: ContentElementService, boardService: BoardDoAuthorizableService)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:13\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 courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n boardElementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n boardService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \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: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 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 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: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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AuthorizationContext, AuthorizationService, ForbiddenLoggableException } from '@modules/authorization';\nimport { AuthorizableReferenceType } from '@modules/authorization/domain';\nimport { BoardDoAuthorizableService, ContentElementService } from '@modules/board';\nimport { CourseService } from '@modules/learnroom';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { BoardDoAuthorizable, Course, EntityId, LegacySchoolDo, User } from '@shared/domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ToolContextType } from '../enum';\n\n@Injectable()\nexport class ToolPermissionHelper {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService)) private readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\t// invalid dependency on this place it is in UC layer in a other module\n\t\t// loading of ressources should be part of service layer\n\t\t// if it must resolve different loadings based on the request it can be added in own service and use in UC\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly boardElementService: ContentElementService,\n\t\tprivate readonly boardService: BoardDoAuthorizableService\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\tconst authorizableUser = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tthis.authorizationService.checkPermission(authorizableUser, contextExternalTool, context);\n\n\t\tif (contextExternalTool.contextRef.type === ToolContextType.COURSE) {\n\t\t\t// loading of ressources should be part of the UC -> unnessasary awaits\n\t\t\tconst course: Course = await this.courseService.findById(contextExternalTool.contextRef.id);\n\n\t\t\tthis.authorizationService.checkPermission(authorizableUser, course, context);\n\t\t} else if (contextExternalTool.contextRef.type === ToolContextType.BOARD_ELEMENT) {\n\t\t\tconst boardElement = await this.boardElementService.findById(contextExternalTool.contextRef.id);\n\n\t\t\tconst board: BoardDoAuthorizable = await this.boardService.getBoardAuthorizable(boardElement);\n\n\t\t\tthis.authorizationService.checkPermission(authorizableUser, board, context);\n\t\t} else {\n\t\t\tthrow new ForbiddenLoggableException(userId, AuthorizableReferenceType.ContextExternalToolEntity, context);\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\t// loading of ressources should be part of the UC -> unnessasary awaits\n\t\tconst [user, school]: [User, LegacySchoolDo] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.schoolService.getSchoolById(schoolExternalTool.schoolId),\n\t\t]);\n\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/context-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/context-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/context-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/context-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/context-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/context-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/context-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"},"controllers/ToolReferenceController.html":{"url":"controllers/ToolReferenceController.html","title":"controller - ToolReferenceController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolReferenceController\n\n\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-reference.controller.ts\n \n\n \n Prefix\n \n \n tools/tool-references\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 getToolReference\n \n \n \n \n \n \n \n Async\n getToolReferencesForContext\n \n \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 getToolReference\n \n \n \n \n \n \n \n getToolReference(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('context-external-tools/:contextExternalToolId')@ApiOperation({summary: 'Get ExternalTool Reference for a given context external tool'})@ApiOkResponse({description: 'The Tool Reference has been successfully fetched.', type: ToolReferenceResponse})@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/context-external-tool/controller/tool-reference.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 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 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 getToolReferencesForContext\n \n \n \n \n \n \n \n getToolReferencesForContext(currentUser: ICurrentUser, params: ContextExternalToolContextParams)\n \n \n\n \n \n Decorators : \n \n @Get('/:contextType/:contextId')@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/context-external-tool/controller/tool-reference.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 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 Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param } from '@nestjs/common';\nimport { ApiForbiddenResponse, ApiOkResponse, ApiOperation, ApiTags, ApiUnauthorizedResponse } from '@nestjs/swagger';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\nimport { ToolReference } from '../domain';\nimport { ContextExternalToolResponseMapper } from '../mapper';\nimport { ToolReferenceUc } from '../uc';\nimport {\n\tContextExternalToolContextParams,\n\tContextExternalToolIdParams,\n\tToolReferenceListResponse,\n\tToolReferenceResponse,\n} from './dto';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/tool-references')\nexport class ToolReferenceController {\n\tconstructor(private readonly toolReferenceUc: ToolReferenceUc) {}\n\n\t@Get('context-external-tools/:contextExternalToolId')\n\t@ApiOperation({ summary: 'Get ExternalTool Reference for a given context external tool' })\n\t@ApiOkResponse({\n\t\tdescription: 'The Tool Reference has been successfully fetched.',\n\t\ttype: ToolReferenceResponse,\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 getToolReference(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tconst toolReference: ToolReference = await this.toolReferenceUc.getToolReference(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId\n\t\t);\n\n\t\tconst toolReferenceResponse: ToolReferenceResponse =\n\t\t\tContextExternalToolResponseMapper.mapToToolReferenceResponse(toolReference);\n\n\t\treturn toolReferenceResponse;\n\t}\n\n\t@Get('/:contextType/:contextId')\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 getToolReferencesForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolContextParams\n\t): Promise {\n\t\tconst toolReferences: ToolReference[] = await this.toolReferenceUc.getToolReferencesForContext(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextType,\n\t\t\tparams.contextId\n\t\t);\n\n\t\tconst toolReferenceResponses: ToolReferenceResponse[] =\n\t\t\tContextExternalToolResponseMapper.mapToToolReferenceResponses(toolReferences);\n\t\tconst toolReferenceListResponse = new ToolReferenceListResponse(toolReferenceResponses);\n\n\t\treturn toolReferenceListResponse;\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/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-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/context-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 Returns : ToolReference\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ToolConfigurationStatus } from '../../common/enum';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ContextExternalTool, ToolReference } from '../domain';\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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/tool-reference.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 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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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/context-external-tool/controller/dto/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, enumName: 'ToolConfigurationStatusResponse', nullable: false, required: true, description: 'The status of the tool'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/tool-reference.response.ts:28\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\tenumName: '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/ToolReferenceService.html":{"url":"injectables/ToolReferenceService.html","title":"injectable - ToolReferenceService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolReferenceService\n\n\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/tool-reference.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 getToolReference\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, commonToolService: CommonToolService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/tool-reference.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 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 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 Async\n getToolReference\n \n \n \n \n \n \n \n getToolReference(contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/tool-reference.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 contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\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 { ToolConfigurationStatus } from '../../common/enum';\nimport { CommonToolService } from '../../common/service';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolLogoService, ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ContextExternalTool, ToolReference } from '../domain';\nimport { ToolReferenceMapper } from '../mapper';\nimport { ContextExternalToolService } from './context-external-tool.service';\n\n@Injectable()\nexport class ToolReferenceService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly commonToolService: CommonToolService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync getToolReference(contextExternalToolId: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\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(\n\t\t\t'/v3/tools/external-tools/{id}/logo',\n\t\t\texternalTool\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\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/context-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 ensureToolPermissions\n \n \n Async\n getToolReference\n \n \n Async\n getToolReferencesForContext\n \n \n Private\n Async\n tryBuildToolReference\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolService: ContextExternalToolService, toolReferenceService: ToolReferenceService, toolPermissionHelper: ToolPermissionHelper)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.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 contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolReferenceService\n \n \n ToolReferenceService\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 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/context-external-tool/uc/tool-reference.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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReference\n \n \n \n \n \n \n \n getToolReference(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.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 contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReferencesForContext\n \n \n \n \n \n \n \n getToolReferencesForContext(userId: EntityId, contextType: ToolContextType, contextId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.uc.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 contextType\n \n ToolContextType\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 \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 tryBuildToolReference\n \n \n \n \n \n \n \n tryBuildToolReference(userId: EntityId, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/tool-reference.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 contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\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 '@modules/authorization';\nimport { ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\nimport { ContextExternalTool, ContextRef, ToolReference } from '../domain';\nimport { ContextExternalToolService, ToolReferenceService } from '../service';\n\n@Injectable()\nexport class ToolReferenceUc {\n\tconstructor(\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly toolReferenceService: ToolReferenceService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper\n\t) {}\n\n\tasync getToolReferencesForContext(\n\t\tuserId: EntityId,\n\t\tcontextType: ToolContextType,\n\t\tcontextId: EntityId\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\tasync (contextExternalTool: ContextExternalTool) => this.tryBuildToolReference(userId, contextExternalTool)\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 tryBuildToolReference(\n\t\tuserId: EntityId,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\ttry {\n\t\t\tawait this.ensureToolPermissions(userId, contextExternalTool);\n\n\t\t\tconst toolReference: ToolReference = await this.toolReferenceService.getToolReference(\n\t\t\t\tcontextExternalTool.id as string\n\t\t\t);\n\n\t\t\treturn toolReference;\n\t\t} catch (e: unknown) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tasync getToolReference(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.findById(\n\t\t\tcontextExternalToolId\n\t\t);\n\n\t\tawait this.ensureToolPermissions(userId, contextExternalTool);\n\n\t\tconst toolReference: ToolReference = await this.toolReferenceService.getToolReference(\n\t\t\tcontextExternalTool.id as string\n\t\t);\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\n \n\n\n\n\n\n\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: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 body\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\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:101\n \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 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: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 SchoolExternalToolIdParams\n \n\n \n No\n \n\n\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: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 schoolExternalToolParams\n \n SchoolExternalToolSearchParams\n \n\n \n No\n \n\n\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: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 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 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 { LegacyLogger } from '@src/core/logger';\nimport { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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"},"classes/ToolStatusResponseMapper.html":{"url":"classes/ToolStatusResponseMapper.html","title":"class - ToolStatusResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolStatusResponseMapper\n\n\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/tool-status-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(status: ToolConfigurationStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/mapper/tool-status-response.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 status\n \n ToolConfigurationStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : ToolConfigurationStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ToolConfigurationStatusResponse } from '../../context-external-tool/controller/dto';\nimport { ToolConfigurationStatus } from '../enum';\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\nexport class ToolStatusResponseMapper {\n\tstatic mapToResponse(status: ToolConfigurationStatus): ToolConfigurationStatusResponse {\n\t\treturn statusMapping[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"},"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 | LinkElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody | ExternalToolElementContentBody\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:133\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, 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\t@IsString()\n\t@ApiProperty({})\n\talternativeText!: 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}\nexport class LinkContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\turl!: string;\n}\n\nexport class LinkElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.LINK })\n\ttype!: ContentElementType.LINK;\n\n\t@ValidateNested()\n\t@ApiProperty({})\n\tcontent!: LinkContentBody;\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@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time until when a submission can be handed in.',\n\t})\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 class ExternalToolContentBody {\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tcontextExternalToolId?: string;\n}\n\nexport class ExternalToolElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.EXTERNAL_TOOL })\n\ttype!: ContentElementType.EXTERNAL_TOOL;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: ExternalToolContentBody;\n}\n\nexport type AnyElementContentBody =\n\t| FileContentBody\n\t| LinkContentBody\n\t| RichTextContentBody\n\t| SubmissionContainerContentBody\n\t| ExternalToolContentBody;\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: LinkElementContentBody, name: ContentElementType.LINK },\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\t{ value: ExternalToolElementContentBody, name: ContentElementType.EXTERNAL_TOOL },\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(LinkElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(ExternalToolElementContentBody) },\n\t\t],\n\t})\n\tdata!:\n\t\t| FileElementContentBody\n\t\t| LinkElementContentBody\n\t\t| RichTextElementContentBody\n\t\t| SubmissionContainerElementContentBody\n\t\t| ExternalToolElementContentBody;\n}\n\n \n\n\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 AccountParams\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 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 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 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 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 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 Optional\n \n firstName\n \n \n \n Optional\n \n lastName\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 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 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 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\tfirstName?: string;\n\tlastName?: string;\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: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 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 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: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 currentUser\n \n ICurrentUser\n \n\n \n No\n \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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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\tSystemEntity,\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 '@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: SystemEntity): 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"},"interfaces/UserData.html":{"url":"interfaces/UserData.html","title":"interface - UserData","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserData\n\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/feathers-roster.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n user_id\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 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 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 import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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, name: RoleName.STUDENT });\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, name: RoleName.TEACHER });\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, name: RoleName.ADMINISTRATOR });\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"},"interfaces/UserGroup.html":{"url":"interfaces/UserGroup.html","title":"interface - UserGroup","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserGroup\n\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/feathers-roster.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_id\n \n \n \n \n name\n \n \n \n \n student_count\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n group_id\n \n \n \n \n \n \n \n \n group_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 student_count\n \n \n \n \n \n \n \n \n student_count: 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 { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/UserGroups.html":{"url":"interfaces/UserGroups.html","title":"interface - UserGroups","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserGroups\n\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/feathers-roster.service.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 import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/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 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"},"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 '@modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@modules/authorization';\nimport { OauthModule } from '@modules/oauth';\nimport { ProvisioningModule } from '@modules/provisioning';\nimport { LegacySchoolModule } from '@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 \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 \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()@ApiNoContentResponse({description: 'User login migration was reverted'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:200\n \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 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 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 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:217\n \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 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 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 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 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\tApiNoContentResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { Page, UserLoginMigrationDO } from '@shared/domain';\nimport { Authenticate, CurrentUser, ICurrentUser, JWT } from '@modules/authentication';\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\t@ApiNoContentResponse({ description: 'User login migration was reverted' })\n\tasync closeMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | undefined = await this.closeUserLoginMigrationUc.closeMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tif (userLoginMigration) {\n\t\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration);\n\t\t\treturn migrationResponse;\n\t\t}\n\t\treturn undefined;\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"},"entities/UserLoginMigrationEntity.html":{"url":"entities/UserLoginMigrationEntity.html","title":"entity - UserLoginMigrationEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n UserLoginMigrationEntity\n\n\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 : SystemEntity\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 : SystemEntity\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 { SystemEntity } 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 UserLoginMigrationEntity extends BaseEntityWithTimestamps {\n\t@OneToOne(() => SchoolEntity, undefined, { nullable: false })\n\tschool: SchoolEntity;\n\n\t// undefined, if migrating from 'local'\n\t@ManyToOne(() => SystemEntity, { nullable: true })\n\tsourceSystem?: SystemEntity;\n\n\t@ManyToOne(() => SystemEntity)\n\ttargetSystem: SystemEntity;\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/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 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 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_imports\n\n\n\ncluster_UserLoginMigrationModule_providers\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 '@modules/account';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { SystemModule } from '@modules/system';\nimport { UserModule } from '@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: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: IUserLoginMigration)\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 IUserLoginMigration\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : UserLoginMigrationEntity\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: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 schoolId\n \n EntityId\n \n\n \n No\n \n\n\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: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 entityDO\n \n UserLoginMigrationDO\n \n\n \n No\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: UserLoginMigrationEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:40\n\n \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 UserLoginMigrationEntity\n \n\n \n No\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 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 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 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 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 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 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 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 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 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 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:19\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, SystemEntity, UserLoginMigrationDO } from '@shared/domain';\nimport { IUserLoginMigration, UserLoginMigrationEntity } 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 UserLoginMigrationEntity;\n\t}\n\n\tentityFactory(props: IUserLoginMigration): UserLoginMigrationEntity {\n\t\treturn new UserLoginMigrationEntity(props);\n\t}\n\n\tasync findBySchoolId(schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationEntity | null = await this._em.findOne(UserLoginMigrationEntity, {\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: UserLoginMigrationEntity): 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(SystemEntity, entityDO.sourceSystemId) : undefined,\n\t\t\ttargetSystem: this._em.getReference(SystemEntity, 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 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 '@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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { UserLoginMigrationDO } from '@shared/domain/domainobject';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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: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 userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \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:180\n \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 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:188\n \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 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: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 \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 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 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 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 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 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 '@modules/legacy-school';\nimport { SystemDto, SystemService } from '@modules/system';\nimport { UserService } from '@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.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 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 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 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 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 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 '@modules/authentication/services/authentication.service';\nimport { Action, AuthorizationService } from '@modules/authorization';\nimport { OAuthTokenDto } from '@modules/oauth';\nimport { OAuthService } from '@modules/oauth/service/oauth.service';\nimport { ProvisioningService } from '@modules/provisioning';\nimport { OauthDataDto } from '@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 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 '@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 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 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"},"interfaces/UserMetdata.html":{"url":"interfaces/UserMetdata.html","title":"interface - UserMetdata","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserMetdata\n\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/feathers-roster.service.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 import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { Course, EntityId, Pseudonym, RoleName, RoleReference, UserDO } from '@shared/domain';\nimport { CourseService } from '@modules/learnroom/service';\nimport { ToolContextType } from '@modules/tool/common/enum';\nimport { ContextExternalTool, ContextRef } from '@modules/tool/context-external-tool/domain';\nimport { ContextExternalToolService } from '@modules/tool/context-external-tool/service';\nimport { ExternalTool } from '@modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@modules/tool/external-tool/service';\nimport { SchoolExternalTool } from '@modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolService } from '@modules/tool/school-external-tool/service';\nimport { UserService } from '@modules/user';\nimport { PseudonymService } from './pseudonym.service';\n\ninterface UserMetdata {\n\tdata: {\n\t\tuser_id: string;\n\t\tusername: string;\n\t\ttype: string;\n\t};\n}\n\ninterface UserGroups {\n\tdata: {\n\t\tgroups: UserGroup[];\n\t};\n}\n\ninterface UserGroup {\n\tgroup_id: string;\n\tname: string;\n\tstudent_count: number;\n}\n\ninterface UserData {\n\tuser_id: string;\n\tusername: string;\n}\n\ninterface Group {\n\tdata: {\n\t\tstudents: UserData[];\n\t\tteachers: UserData[];\n\t};\n}\n\n/**\n * Please do not use this service in any other nest modules.\n * This service will be called from feathers to get the roster data for ctl pseudonyms {@link ExternalToolPseudonymEntity}.\n * These data will be used e.g. by bettermarks to resolve and display the usernames.\n */\n@Injectable()\nexport class FeathersRosterService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService\n\t) {}\n\n\tasync getUsersMetadata(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst user: UserDO = await this.userService.findById(loadedPseudonym.userId);\n\n\t\tconst userMetadata: UserMetdata = {\n\t\t\tdata: {\n\t\t\t\tuser_id: user.id as string,\n\t\t\t\tusername: this.pseudonymService.getIframeSubject(loadedPseudonym.pseudonym),\n\t\t\t\ttype: this.getUserRole(user),\n\t\t\t},\n\t\t};\n\n\t\treturn userMetadata;\n\t}\n\n\tasync getUserGroups(pseudonym: string, oauth2ClientId: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym = await this.findPseudonymByPseudonym(pseudonym);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tlet courses: Course[] = await this.getCoursesFromUsersPseudonym(loadedPseudonym);\n\t\tcourses = await this.filterCoursesByToolAvailability(courses, externalTool.id as string);\n\n\t\tconst userGroups: UserGroups = {\n\t\t\tdata: {\n\t\t\t\tgroups: courses.map((course) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgroup_id: course.id,\n\t\t\t\t\t\tname: course.name,\n\t\t\t\t\t\tstudent_count: course.students.length,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\n\t\treturn userGroups;\n\t}\n\n\tasync getGroup(courseId: EntityId, oauth2ClientId: string): Promise {\n\t\tconst course: Course = await this.courseService.findById(courseId);\n\t\tconst externalTool: ExternalTool = await this.validateAndGetExternalTool(oauth2ClientId);\n\n\t\tawait this.validateSchoolExternalTool(course.school.id, externalTool.id as string);\n\t\tawait this.validateContextExternalTools(courseId);\n\n\t\tconst [studentEntities, teacherEntities, substitutionTeacherEntities] = await Promise.all([\n\t\t\tcourse.students.loadItems(),\n\t\t\tcourse.teachers.loadItems(),\n\t\t\tcourse.substitutionTeachers.loadItems(),\n\t\t]);\n\n\t\tconst [students, teachers, substitutionTeachers] = await Promise.all([\n\t\t\tPromise.all(studentEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(teacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t\tPromise.all(substitutionTeacherEntities.map((user) => this.userService.findById(user.id))),\n\t\t]);\n\n\t\tconst [studentPseudonyms, teacherPseudonyms, substitutionTeacherPseudonyms] = await Promise.all([\n\t\t\tthis.getAndPseudonyms(students, externalTool),\n\t\t\tthis.getAndPseudonyms(teachers, externalTool),\n\t\t\tthis.getAndPseudonyms(substitutionTeachers, externalTool),\n\t\t]);\n\n\t\tconst allTeacherPseudonyms: Pseudonym[] = teacherPseudonyms.concat(substitutionTeacherPseudonyms);\n\n\t\tconst group: Group = {\n\t\t\tdata: {\n\t\t\t\tstudents: studentPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t\tteachers: allTeacherPseudonyms.map((pseudonym: Pseudonym) => this.mapPseudonymToUserData(pseudonym)),\n\t\t\t},\n\t\t};\n\n\t\treturn group;\n\t}\n\n\tprivate async getAndPseudonyms(users: UserDO[], externalTool: ExternalTool): Promise {\n\t\tconst pseudonyms: Pseudonym[] = await Promise.all(\n\t\t\tusers.map((user: UserDO) => this.pseudonymService.findOrCreatePseudonym(user, externalTool))\n\t\t);\n\n\t\treturn pseudonyms;\n\t}\n\n\tprivate getUserRole(user: UserDO): string {\n\t\tconst roleName = user.roles.some((role: RoleReference) => role.name === RoleName.TEACHER)\n\t\t\t? RoleName.TEACHER\n\t\t\t: RoleName.STUDENT;\n\n\t\treturn roleName;\n\t}\n\n\tprivate async findPseudonymByPseudonym(pseudonym: string): Promise {\n\t\tconst loadedPseudonym: Pseudonym | null = await this.pseudonymService.findPseudonymByPseudonym(pseudonym);\n\n\t\tif (!loadedPseudonym) {\n\t\t\tthrow new NotFoundLoggableException(Pseudonym.name, 'pseudonym', pseudonym);\n\t\t}\n\n\t\treturn loadedPseudonym;\n\t}\n\n\tprivate async getCoursesFromUsersPseudonym(pseudonym: Pseudonym): Promise {\n\t\tconst courses: Course[] = await this.courseService.findAllByUserId(pseudonym.userId);\n\n\t\treturn courses;\n\t}\n\n\tprivate async filterCoursesByToolAvailability(courses: Course[], externalToolId: string): Promise {\n\t\tconst validCourses: Course[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcourses.map(async (course: Course) => {\n\t\t\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\t\t\tnew ContextRef({\n\t\t\t\t\t\tid: course.id,\n\t\t\t\t\t\ttype: ToolContextType.COURSE,\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tfor await (const contextExternalTool of contextExternalTools) {\n\t\t\t\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.findById(\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t\t\t\t);\n\t\t\t\t\tconst externalTool: ExternalTool = await this.externalToolService.findById(schoolExternalTool.toolId);\n\t\t\t\t\tconst isRequiredTool: boolean = externalTool.id === externalToolId;\n\n\t\t\t\t\tif (isRequiredTool) {\n\t\t\t\t\t\tvalidCourses.push(course);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\treturn validCourses;\n\t}\n\n\tprivate async validateAndGetExternalTool(oauth2ClientId: string): Promise {\n\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\toauth2ClientId\n\t\t);\n\n\t\tif (!externalTool || !externalTool.id) {\n\t\t\tthrow new NotFoundLoggableException(ExternalTool.name, 'config.clientId', oauth2ClientId);\n\t\t}\n\n\t\treturn externalTool;\n\t}\n\n\tprivate async validateSchoolExternalTool(schoolId: EntityId, toolId: string): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools({\n\t\t\tschoolId,\n\t\t\ttoolId,\n\t\t});\n\n\t\tif (schoolExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(SchoolExternalTool.name, 'toolId', toolId);\n\t\t}\n\t}\n\n\tprivate async validateContextExternalTools(courseId: EntityId): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: courseId, type: ToolContextType.COURSE })\n\t\t);\n\n\t\tif (contextExternalTools.length === 0) {\n\t\t\tthrow new NotFoundLoggableException(ContextExternalTool.name, 'contextRef.id', courseId);\n\t\t}\n\t}\n\n\tprivate mapPseudonymToUserData(pseudonym: Pseudonym): UserData {\n\t\tconst userData: UserData = {\n\t\t\tuser_id: pseudonym.pseudonym,\n\t\t\tusername: this.pseudonymService.getIframeSubject(pseudonym.pseudonym),\n\t\t};\n\n\t\treturn userData;\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/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 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 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 '@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 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 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 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 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 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 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 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 '@modules/account/services/account.service';\nimport { AccountDto } from '@modules/account/services/dto';\nimport { LegacySchoolService } from '@modules/legacy-school';\nimport { SystemDto, SystemService } from '@modules/system/service';\nimport { UserService } from '@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_providers\n\n\n\ncluster_UserModule_imports\n\n\n\ncluster_UserModule_exports\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 '@modules/account';\nimport { RoleModule } from '@modules/role/role.module';\nimport { LegacySchoolModule } from '@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/loggable/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/loggable/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/loggable/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 deleteUser\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 deleteUser\n \n \n \n \n \n \n \n deleteUser(userId: EntityId)\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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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/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 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 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 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 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:189\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:173\n \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 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: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 \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 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 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 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\tasync deleteUser(userId: EntityId): Promise {\n\t\tconst deletedUserNumber: Promise = this._em.nativeDelete(User, {\n\t\t\tid: userId,\n\t\t});\n\t\treturn deletedUserNumber;\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/modules/authorization/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/modules/authorization/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/modules/authorization/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 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/modules/authorization/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 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 { AuthorizationContext, Rule } from '../type';\nimport { AuthorizationHelper } from '../service/authorization.helper';\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 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 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 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 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 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 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 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 deleteUser\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:20\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: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 language\n \n LanguageType\n \n\n \n No\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 deleteUser\n \n \n \n \n \n \n \n deleteUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.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 userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n Returns : Promise\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: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 email\n \n string\n \n\n \n No\n \n\n\n \n \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: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 EntityId\n \n\n \n No\n \n\n\n \n \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: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 id\n \n string\n \n\n \n No\n \n\n\n \n \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: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 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 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: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 UserDO\n \n\n \n No\n \n\n\n \n \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 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 [object Object],[object Object],[object Object]\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: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 id\n \n string\n \n\n \n No\n \n\n\n \n \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: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 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: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 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 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: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 UserDO\n \n\n \n No\n \n\n\n \n \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: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 users\n \n UserDO[]\n \n\n \n No\n \n\n\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 { AccountService } from '@modules/account';\nimport { AccountDto } from '@modules/account/services/dto';\n// invalid import\nimport { CurrentUserMapper } from '@modules/authentication/mapper';\nimport { RoleDto } from '@modules/role/service/dto/role.dto';\nimport { RoleService } from '@modules/role/service/role.service';\nimport { BadRequestException, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId, IFindOptions, LanguageType, User } from '@shared/domain';\nimport { Page, RoleReference, UserDO } from '@shared/domain/domainobject';\nimport { UserRepo } from '@shared/repo';\nimport { UserDORepo } from '@shared/repo/user/user-do.repo';\nimport { OauthCurrentUser } from '@modules/authentication/interface';\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 use {@link UserService.findById} instead\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\n\t\treturn userDto;\n\t}\n\n\tasync getResolvedUser(userId: EntityId): Promise {\n\t\tconst user: UserDO = await this.findById(userId);\n\t\tconst account: AccountDto = await this.accountService.findByUserIdOrFail(userId);\n\n\t\tconst resolvedUser: OauthCurrentUser = CurrentUserMapper.mapToOauthCurrentUser(account.id, user, account.systemId);\n\n\t\treturn resolvedUser;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst userDO = await this.userDORepo.findById(id, true);\n\n\t\treturn userDO;\n\t}\n\n\tasync save(user: UserDO): Promise {\n\t\tconst savedUser: Promise = this.userDORepo.save(user);\n\n\t\treturn savedUser;\n\t}\n\n\tasync saveAll(users: UserDO[]): Promise {\n\t\tconst savedUsers: Promise = this.userDORepo.saveAll(users);\n\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\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\n\t\treturn user;\n\t}\n\n\tasync findByEmail(email: string): Promise {\n\t\tconst user: Promise = this.userRepo.findByEmail(email);\n\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\tasync deleteUser(userId: EntityId): Promise {\n\t\tconst deletedUserNumber: Promise = this.userRepo.deleteUser(userId);\n\n\t\treturn deletedUserNumber;\n\t}\n}\n\n \n\n\n\n\n\n\n\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 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 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 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/UsersList.html":{"url":"classes/UsersList.html","title":"class - UsersList","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UsersList\n\n\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\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n firstName\n \n \n id\n \n \n lastName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\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/entity/course.entity.ts:46\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 Defined in apps/server/src/shared/domain/entity/course.entity.ts:44\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/entity/course.entity.ts:48\n \n \n\n\n \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 { ClassEntity } from '@modules/class/entity/class.entity';\nimport { GroupEntity } from '@modules/group/entity/group.entity';\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\tclasses?: ClassEntity[];\n\tgroups?: GroupEntity[];\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\nexport class UsersList {\n\tid!: string;\n\n\tfirstName!: string;\n\n\tlastName!: string;\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\t@ManyToMany(() => ClassEntity, undefined, { fieldName: 'classIds' })\n\tclasses = new Collection(this);\n\n\t@ManyToMany(() => GroupEntity, undefined, { fieldName: 'groupIds' })\n\tgroups = new Collection(this);\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\tthis.classes.set(props.classes || []);\n\t\tthis.groups.set(props.groups || []);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = Course.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = Course.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = Course.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate static 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 getStudentsList(): UsersList[] {\n\t\tconst users = this.students.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getTeachersList(): UsersList[] {\n\t\tconst users = this.teachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic getSubstitutionTeachersList(): UsersList[] {\n\t\tconst users = this.substitutionTeachers.getItems();\n\t\tif (users.length) {\n\t\t\tconst usersList = Course.extractUserList(users);\n\t\t\treturn usersList;\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate static extractUserList(users: User[]): UsersList[] {\n\t\tconst usersList: UsersList[] = users.map((user) => {\n\t\t\treturn {\n\t\t\t\tid: user.id,\n\t\t\t\tfirstName: user.firstName,\n\t\t\t\tlastName: user.lastName,\n\t\t\t};\n\t\t});\n\t\treturn usersList;\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 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 '@modules/user';\nimport { AuthorizationModule } from '@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: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 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 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: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 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 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: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 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 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: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 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 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 { Authenticate, CurrentUser, ICurrentUser } from '@modules/authentication';\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 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 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: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 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 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:92\n \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 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: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 schoolId\n \n string\n \n\n \n No\n \n\n\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 '@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\t/* need to be replace with\n\t\tconst [authorizableUser, scopeRessource]: [User, TeamEntity | Course] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.videoConferenceService.loadScopeRessources(scopeId, scope),\n\t\t]);\n\t\t*/\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: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 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 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: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 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 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: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 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 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, ICurrentUser } from '@modules/authentication';\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 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 '@modules/video-conference/error/error-status.enum';\nimport { UserService } from '@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\t/* need to be replace with\n\t\tconst [authorizableUser, scopeRessource]: [User, TeamEntity | Course] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.videoConferenceService.loadScopeRessources(scopeId, scope),\n\t\t]);\n\t\t*/\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 \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\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 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: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 scope\n \n ScopeRef\n \n\n \n No\n \n\n\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 '@modules/video-conference/error/error-status.enum';\nimport { UserService } from '@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\t/* need to be replace with\n\t\tconst [authorizableUser, scopeRessource]: [User, TeamEntity | Course] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.videoConferenceService.loadScopeRessources(scopeId, scope),\n\t\t]);\n\t\t*/\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 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 '@modules/video-conference/error/error-status.enum';\nimport { UserService } from '@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: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 videoConferenceInfo\n \n VideoConferenceInfo\n \n\n \n No\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: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 videoConferenceJoin\n \n VideoConferenceJoin\n \n\n \n No\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: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 VideoConferenceCreateParams\n \n\n \n No\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: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 state\n \n VideoConferenceState\n \n\n \n No\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 } from '@shared/domain';\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\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_exports\n\n\n\ncluster_VideoConferenceModule_imports\n\n\n\ncluster_VideoConferenceModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nVideoConferenceModule\n\nVideoConferenceModule\n\nVideoConferenceModule -->\n\nAuthorizationModule->VideoConferenceModule\n\n\n\n\n\nAuthorizationReferenceModule\n\nAuthorizationReferenceModule\n\nVideoConferenceModule -->\n\nAuthorizationReferenceModule->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 AuthorizationReferenceModule\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 '@modules/authorization';\nimport { AuthorizationReferenceModule } from '@modules/authorization/authorization-reference.module';\nimport { TeamsRepo } from '@shared/repo';\nimport { LegacySchoolModule } from '@modules/legacy-school';\nimport { LoggerModule } from '@src/core/logger';\nimport { ConverterUtil } from '@shared/common';\nimport { UserModule } from '@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\tAuthorizationReferenceModule, // can be removed wenn video-conference-deprecated is removed\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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"},"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 clamscan : ^2.1.2\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.2.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 open-graph-scraper : ^6.2.2\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"},"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.\nExample :Root-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\nExample : 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.\nExample : 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.\nExample : 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:\nExample :a) 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:\nExample :a) 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:\nExample :a) 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.\nExample : 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.\nExample :\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 AuthorizationReferenceModule\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 PreviewGeneratorAMQPModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n PreviewGeneratorConsumerModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n PreviewGeneratorProducerModule\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 PseudonymApiModule\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\nExample :docker 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:\nExample :docker 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.\nExample : 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.\nExample :@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\nExample :@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.\nExample :src/ // 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.\nExample :// 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.\nExample :// 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.\nExample : // 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.\nExample : @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.\nExample :export 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}\nExample :import { 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\nExample :[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\nExample : 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:\nExample :try {\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.\nExample :export 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}Example :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:\nExample :public 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.\nExample :// 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.\nExample :describe('[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.\nExample : // 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\nExample : // 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.\nExample : // 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.\nExample : 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\nExample :let 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.\nExample :describe('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\nExample : 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.\nExample : 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\nExample :BC-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\nExample :BC-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:\nExample :docker 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:\nExample :docker 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\nExample :docker 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:\nExample :docker 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:\nExample :docker run \\\n --name sc-openldap-single \\\n -p 389:389 \\\n ghcr.io/hpi-schul-cloud/sc-openldap-single:latestExample :docker 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:\nExample :curl -X POST \\\n  'http://localhost:3030/api/v1/sync?target=ldap' \\\n  --header 'Accept: */*' \\\n  --header 'X-API-KEY: example'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':\nExample :npx 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.\nExample :docker run --name rocket-chat-mongodb -m=256m -p27030:27017 -d docker.io/mongo --replSet rs0 --oplogSize 10Start mongoDB console and execute\nExample :rs.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)\nExample :docker 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\nExample :ROCKETCHAT_SERVICE_ENABLED=true\nROCKET_CHAT_URI=\"http://localhost:3000\"\nROCKET_CHAT_ADMIN_USER=admin\nROCKET_CHAT_ADMIN_PASSWORD=huhudBildungscloud Legacy Client\nExample :ROCKETCHAT_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.\nExample :Root-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\nExample : this.authorizationService.checkPermission(user, course, AuthorizationContextBuilder.write([])\n // or\n this.authorizationService.hasPermission(user, course, AuthorizationContextBuilder.write([])\n // next orchestration stepsExample 2 - Set Permission(s) of User as Required\nExample :// 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\nExample :/** 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\nExample :async 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 await this.schoolService.save(school);\n\n return true;\n}\nExample - Create user by admin\nExample :\nasync createUserByAdmin(userId: EntityId, params: { email: string, firstName: string, lastName: string, schoolId: EntityId }) {\n\n const user = this.authorizationService.getUserWithPermissions(userId);\n \n const context = AuthorizationContextBuilder.write([Permission.INSTANCE, Permission.CREATE_USER])\n await this.authorizationService.checkPermission(user, school, context);\n\n const newUser = new User(params)\n await this.userService.save(newUser);\n\n return true;\n}\nExample - Edit course by admin\nExample :// 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 const school = course.school;\n\n const context = AuthorizationContextBuilder.write([Permission.INSTANCE, Permission.CREATE_USER]);\n this.authorizationService.checkPermissions(user, school, context);\n\n course.description = params.description;\n await this.courseService.save(course);\n\n return true;\n}\nExample - Create a Course\nExample :// 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 await this.courseService.saveCourse(course);\n\n return course;\n}\nExample - Create a Lesson\nExample :// 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 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\nExample :@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\nIt should be use only inside of the authorization module.\nIt is use to load registrated ressouces by the id and name of the ressource.\nThis is needed to solve the API requests from external services. (API implementation is missing for now)\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:\nExample :export 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.\nExample :// 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/modules/AuthorizationModule.html b/modules/AuthorizationModule.html index 99bd5d23ba7..d331ef506fb 100644 --- a/modules/AuthorizationModule.html +++ b/modules/AuthorizationModule.html @@ -66,14 +66,14 @@ cluster_AuthorizationModule - -cluster_AuthorizationModule_imports - - cluster_AuthorizationModule_exports + +cluster_AuthorizationModule_imports + + cluster_AuthorizationModule_providers diff --git a/modules/AuthorizationModule/dependencies.svg b/modules/AuthorizationModule/dependencies.svg index ea9a52347f0..6a02524a528 100644 --- a/modules/AuthorizationModule/dependencies.svg +++ b/modules/AuthorizationModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_AuthorizationModule - -cluster_AuthorizationModule_imports - - cluster_AuthorizationModule_exports + +cluster_AuthorizationModule_imports + + cluster_AuthorizationModule_providers diff --git a/modules/BoardModule.html b/modules/BoardModule.html index 4e6279d7343..b8f102e78a0 100644 --- a/modules/BoardModule.html +++ b/modules/BoardModule.html @@ -66,347 +66,347 @@ cluster_BoardModule + +cluster_BoardModule_providers + + cluster_BoardModule_exports - + cluster_BoardModule_imports - - - -cluster_BoardModule_providers - + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule BoardModule - -BoardModule + +BoardModule ConsoleWriterModule->BoardModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->BoardModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->BoardModule - - + + UserModule - -UserModule + +UserModule UserModule->BoardModule - - + + BoardDoAuthorizableService - -BoardDoAuthorizableService + +BoardDoAuthorizableService BoardModule->BoardDoAuthorizableService - - + + CardService - -CardService + +CardService BoardModule->CardService - - + + ColumnBoardCopyService - -ColumnBoardCopyService + +ColumnBoardCopyService BoardModule->ColumnBoardCopyService - - + + ColumnBoardService - -ColumnBoardService + +ColumnBoardService BoardModule->ColumnBoardService - - + + ColumnService - -ColumnService + +ColumnService BoardModule->ColumnService - - + + ContentElementService - -ContentElementService + +ContentElementService BoardModule->ContentElementService - - + + SubmissionItemService - -SubmissionItemService + +SubmissionItemService BoardModule->SubmissionItemService - - + + BoardDoAuthorizableService - -BoardDoAuthorizableService + +BoardDoAuthorizableService BoardDoAuthorizableService->BoardModule - - + + BoardDoCopyService - -BoardDoCopyService + +BoardDoCopyService BoardDoCopyService->BoardModule - - + + BoardDoRepo - -BoardDoRepo + +BoardDoRepo BoardDoRepo->BoardModule - - + + BoardDoService - -BoardDoService + +BoardDoService BoardDoService->BoardModule - - + + BoardNodeRepo - -BoardNodeRepo + +BoardNodeRepo BoardNodeRepo->BoardModule - - + + CardService - -CardService + +CardService CardService->BoardModule - - + + ColumnBoardCopyService - -ColumnBoardCopyService + +ColumnBoardCopyService ColumnBoardCopyService->BoardModule - - + + ColumnBoardService - -ColumnBoardService + +ColumnBoardService ColumnBoardService->BoardModule - - + + ColumnService - -ColumnService + +ColumnService ColumnService->BoardModule - - + + ContentElementFactory - -ContentElementFactory + +ContentElementFactory ContentElementFactory->BoardModule - - + + ContentElementService - -ContentElementService + +ContentElementService ContentElementService->BoardModule - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->BoardModule - - + + OpenGraphProxyService - -OpenGraphProxyService + +OpenGraphProxyService OpenGraphProxyService->BoardModule - - + + RecursiveDeleteVisitor - -RecursiveDeleteVisitor + +RecursiveDeleteVisitor RecursiveDeleteVisitor->BoardModule - - + + SchoolSpecificFileCopyServiceFactory - -SchoolSpecificFileCopyServiceFactory + +SchoolSpecificFileCopyServiceFactory SchoolSpecificFileCopyServiceFactory->BoardModule - - + + SubmissionItemService - -SubmissionItemService + +SubmissionItemService SubmissionItemService->BoardModule - - + + diff --git a/modules/BoardModule/dependencies.svg b/modules/BoardModule/dependencies.svg index 93bb86975a0..0d33b886bfd 100644 --- a/modules/BoardModule/dependencies.svg +++ b/modules/BoardModule/dependencies.svg @@ -24,347 +24,347 @@ cluster_BoardModule + +cluster_BoardModule_providers + + cluster_BoardModule_exports - + cluster_BoardModule_imports - - - -cluster_BoardModule_providers - + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule BoardModule - -BoardModule + +BoardModule ConsoleWriterModule->BoardModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->BoardModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->BoardModule - - + + UserModule - -UserModule + +UserModule UserModule->BoardModule - - + + BoardDoAuthorizableService - -BoardDoAuthorizableService + +BoardDoAuthorizableService BoardModule->BoardDoAuthorizableService - - + + CardService - -CardService + +CardService BoardModule->CardService - - + + ColumnBoardCopyService - -ColumnBoardCopyService + +ColumnBoardCopyService BoardModule->ColumnBoardCopyService - - + + ColumnBoardService - -ColumnBoardService + +ColumnBoardService BoardModule->ColumnBoardService - - + + ColumnService - -ColumnService + +ColumnService BoardModule->ColumnService - - + + ContentElementService - -ContentElementService + +ContentElementService BoardModule->ContentElementService - - + + SubmissionItemService - -SubmissionItemService + +SubmissionItemService BoardModule->SubmissionItemService - - + + BoardDoAuthorizableService - -BoardDoAuthorizableService + +BoardDoAuthorizableService BoardDoAuthorizableService->BoardModule - - + + BoardDoCopyService - -BoardDoCopyService + +BoardDoCopyService BoardDoCopyService->BoardModule - - + + BoardDoRepo - -BoardDoRepo + +BoardDoRepo BoardDoRepo->BoardModule - - + + BoardDoService - -BoardDoService + +BoardDoService BoardDoService->BoardModule - - + + BoardNodeRepo - -BoardNodeRepo + +BoardNodeRepo BoardNodeRepo->BoardModule - - + + CardService - -CardService + +CardService CardService->BoardModule - - + + ColumnBoardCopyService - -ColumnBoardCopyService + +ColumnBoardCopyService ColumnBoardCopyService->BoardModule - - + + ColumnBoardService - -ColumnBoardService + +ColumnBoardService ColumnBoardService->BoardModule - - + + ColumnService - -ColumnService + +ColumnService ColumnService->BoardModule - - + + ContentElementFactory - -ContentElementFactory + +ContentElementFactory ContentElementFactory->BoardModule - - + + ContentElementService - -ContentElementService + +ContentElementService ContentElementService->BoardModule - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->BoardModule - - + + OpenGraphProxyService - -OpenGraphProxyService + +OpenGraphProxyService OpenGraphProxyService->BoardModule - - + + RecursiveDeleteVisitor - -RecursiveDeleteVisitor + +RecursiveDeleteVisitor RecursiveDeleteVisitor->BoardModule - - + + SchoolSpecificFileCopyServiceFactory - -SchoolSpecificFileCopyServiceFactory + +SchoolSpecificFileCopyServiceFactory SchoolSpecificFileCopyServiceFactory->BoardModule - - + + SubmissionItemService - -SubmissionItemService + +SubmissionItemService SubmissionItemService->BoardModule - - + + 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/CollaborativeStorageAdapterModule.html b/modules/CollaborativeStorageAdapterModule.html index 87520a3dcda..0fa5a2678b2 100644 --- a/modules/CollaborativeStorageAdapterModule.html +++ b/modules/CollaborativeStorageAdapterModule.html @@ -66,14 +66,14 @@ cluster_CollaborativeStorageAdapterModule - -cluster_CollaborativeStorageAdapterModule_imports - - cluster_CollaborativeStorageAdapterModule_exports + +cluster_CollaborativeStorageAdapterModule_imports + + cluster_CollaborativeStorageAdapterModule_providers diff --git a/modules/CollaborativeStorageAdapterModule/dependencies.svg b/modules/CollaborativeStorageAdapterModule/dependencies.svg index a723a3ccbfd..b6338aa7a31 100644 --- a/modules/CollaborativeStorageAdapterModule/dependencies.svg +++ b/modules/CollaborativeStorageAdapterModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CollaborativeStorageAdapterModule - -cluster_CollaborativeStorageAdapterModule_imports - - cluster_CollaborativeStorageAdapterModule_exports + +cluster_CollaborativeStorageAdapterModule_imports + + cluster_CollaborativeStorageAdapterModule_providers diff --git a/modules/CollaborativeStorageModule.html b/modules/CollaborativeStorageModule.html index a28acc87455..08ee4631710 100644 --- a/modules/CollaborativeStorageModule.html +++ b/modules/CollaborativeStorageModule.html @@ -66,14 +66,14 @@ cluster_CollaborativeStorageModule - -cluster_CollaborativeStorageModule_imports - - cluster_CollaborativeStorageModule_exports + +cluster_CollaborativeStorageModule_imports + + cluster_CollaborativeStorageModule_providers diff --git a/modules/CollaborativeStorageModule/dependencies.svg b/modules/CollaborativeStorageModule/dependencies.svg index 8f442c58443..6b0ffe0aa0d 100644 --- a/modules/CollaborativeStorageModule/dependencies.svg +++ b/modules/CollaborativeStorageModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CollaborativeStorageModule - -cluster_CollaborativeStorageModule_imports - - cluster_CollaborativeStorageModule_exports + +cluster_CollaborativeStorageModule_imports + + cluster_CollaborativeStorageModule_providers diff --git a/modules/CommonToolModule.html b/modules/CommonToolModule.html index 7241941f8b2..fa04b5d6c08 100644 --- a/modules/CommonToolModule.html +++ b/modules/CommonToolModule.html @@ -66,14 +66,14 @@ cluster_CommonToolModule - -cluster_CommonToolModule_imports - - cluster_CommonToolModule_exports + +cluster_CommonToolModule_imports + + cluster_CommonToolModule_providers diff --git a/modules/CommonToolModule/dependencies.svg b/modules/CommonToolModule/dependencies.svg index 056205fc748..2e1e98d3d0d 100644 --- a/modules/CommonToolModule/dependencies.svg +++ b/modules/CommonToolModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CommonToolModule - -cluster_CommonToolModule_imports - - cluster_CommonToolModule_exports + +cluster_CommonToolModule_imports + + cluster_CommonToolModule_providers diff --git a/modules/ContextExternalToolModule.html b/modules/ContextExternalToolModule.html index a10da637b1f..5ba2a126e9a 100644 --- a/modules/ContextExternalToolModule.html +++ b/modules/ContextExternalToolModule.html @@ -66,167 +66,167 @@ cluster_ContextExternalToolModule - -cluster_ContextExternalToolModule_providers - - cluster_ContextExternalToolModule_exports - + cluster_ContextExternalToolModule_imports - + + + +cluster_ContextExternalToolModule_providers + CommonToolModule - -CommonToolModule + +CommonToolModule ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule CommonToolModule->ContextExternalToolModule - - + + ExternalToolModule - -ExternalToolModule + +ExternalToolModule ExternalToolModule->ContextExternalToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ContextExternalToolModule - - + + SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule SchoolExternalToolModule->ContextExternalToolModule - - + + ContextExternalToolAuthorizableService - -ContextExternalToolAuthorizableService + +ContextExternalToolAuthorizableService ContextExternalToolModule->ContextExternalToolAuthorizableService - - + + ContextExternalToolService - -ContextExternalToolService + +ContextExternalToolService ContextExternalToolModule->ContextExternalToolService - - + + ContextExternalToolValidationService - -ContextExternalToolValidationService + +ContextExternalToolValidationService ContextExternalToolModule->ContextExternalToolValidationService - - + + ToolReferenceService - -ToolReferenceService + +ToolReferenceService ContextExternalToolModule->ToolReferenceService - - + + ContextExternalToolAuthorizableService - -ContextExternalToolAuthorizableService + +ContextExternalToolAuthorizableService ContextExternalToolAuthorizableService->ContextExternalToolModule - - + + ContextExternalToolService - -ContextExternalToolService + +ContextExternalToolService ContextExternalToolService->ContextExternalToolModule - - + + ContextExternalToolValidationService - -ContextExternalToolValidationService + +ContextExternalToolValidationService ContextExternalToolValidationService->ContextExternalToolModule - - + + ToolReferenceService - -ToolReferenceService + +ToolReferenceService ToolReferenceService->ContextExternalToolModule - - + + diff --git a/modules/ContextExternalToolModule/dependencies.svg b/modules/ContextExternalToolModule/dependencies.svg index 11ec595d8ad..ee4e2a1c67a 100644 --- a/modules/ContextExternalToolModule/dependencies.svg +++ b/modules/ContextExternalToolModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_ContextExternalToolModule - -cluster_ContextExternalToolModule_providers - - cluster_ContextExternalToolModule_exports - + cluster_ContextExternalToolModule_imports - + + + +cluster_ContextExternalToolModule_providers + CommonToolModule - -CommonToolModule + +CommonToolModule ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule CommonToolModule->ContextExternalToolModule - - + + ExternalToolModule - -ExternalToolModule + +ExternalToolModule ExternalToolModule->ContextExternalToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ContextExternalToolModule - - + + SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule SchoolExternalToolModule->ContextExternalToolModule - - + + ContextExternalToolAuthorizableService - -ContextExternalToolAuthorizableService + +ContextExternalToolAuthorizableService ContextExternalToolModule->ContextExternalToolAuthorizableService - - + + ContextExternalToolService - -ContextExternalToolService + +ContextExternalToolService ContextExternalToolModule->ContextExternalToolService - - + + ContextExternalToolValidationService - -ContextExternalToolValidationService + +ContextExternalToolValidationService ContextExternalToolModule->ContextExternalToolValidationService - - + + ToolReferenceService - -ToolReferenceService + +ToolReferenceService ContextExternalToolModule->ToolReferenceService - - + + ContextExternalToolAuthorizableService - -ContextExternalToolAuthorizableService + +ContextExternalToolAuthorizableService ContextExternalToolAuthorizableService->ContextExternalToolModule - - + + ContextExternalToolService - -ContextExternalToolService + +ContextExternalToolService ContextExternalToolService->ContextExternalToolModule - - + + ContextExternalToolValidationService - -ContextExternalToolValidationService + +ContextExternalToolValidationService ContextExternalToolValidationService->ContextExternalToolModule - - + + ToolReferenceService - -ToolReferenceService + +ToolReferenceService ToolReferenceService->ContextExternalToolModule - - + + 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 56e5f4b1f51..3a2e7c0824d 100644 --- a/modules/ExternalToolModule.html +++ b/modules/ExternalToolModule.html @@ -68,225 +68,225 @@ cluster_ExternalToolModule_exports - - - -cluster_ExternalToolModule_providers - + cluster_ExternalToolModule_imports - + + + +cluster_ExternalToolModule_providers + 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 6537205a191..002c55619cc 100644 --- a/modules/ExternalToolModule/dependencies.svg +++ b/modules/ExternalToolModule/dependencies.svg @@ -26,225 +26,225 @@ cluster_ExternalToolModule_exports - - - -cluster_ExternalToolModule_providers - + cluster_ExternalToolModule_imports - + + + +cluster_ExternalToolModule_providers + 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/FeathersModule.html b/modules/FeathersModule.html index cf4ba3aac18..02283931824 100644 --- a/modules/FeathersModule.html +++ b/modules/FeathersModule.html @@ -66,14 +66,14 @@ cluster_FeathersModule - -cluster_FeathersModule_providers - - cluster_FeathersModule_exports + +cluster_FeathersModule_providers + + FeathersServiceProvider diff --git a/modules/FeathersModule/dependencies.svg b/modules/FeathersModule/dependencies.svg index 12b2a58d84d..36645a49bbd 100644 --- a/modules/FeathersModule/dependencies.svg +++ b/modules/FeathersModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_FeathersModule - -cluster_FeathersModule_providers - - cluster_FeathersModule_exports + +cluster_FeathersModule_providers + + FeathersServiceProvider diff --git a/modules/FilesModule.html b/modules/FilesModule.html index 611c737ab47..b736a08e515 100644 --- a/modules/FilesModule.html +++ b/modules/FilesModule.html @@ -66,67 +66,67 @@ cluster_FilesModule - -cluster_FilesModule_providers - - cluster_FilesModule_imports - + + + +cluster_FilesModule_providers + LoggerModule - -LoggerModule + +LoggerModule FilesModule - -FilesModule + +FilesModule LoggerModule->FilesModule - - + + DeleteFilesUc - -DeleteFilesUc + +DeleteFilesUc DeleteFilesUc->FilesModule - - + + FilesRepo - -FilesRepo + +FilesRepo FilesRepo->FilesModule - - + + StorageProviderRepo - -StorageProviderRepo + +StorageProviderRepo StorageProviderRepo->FilesModule - - + + diff --git a/modules/FilesModule/dependencies.svg b/modules/FilesModule/dependencies.svg index fedd6497669..9c9ff6951cd 100644 --- a/modules/FilesModule/dependencies.svg +++ b/modules/FilesModule/dependencies.svg @@ -24,67 +24,67 @@ cluster_FilesModule - -cluster_FilesModule_providers - - cluster_FilesModule_imports - + + + +cluster_FilesModule_providers + LoggerModule - -LoggerModule + +LoggerModule FilesModule - -FilesModule + +FilesModule LoggerModule->FilesModule - - + + DeleteFilesUc - -DeleteFilesUc + +DeleteFilesUc DeleteFilesUc->FilesModule - - + + FilesRepo - -FilesRepo + +FilesRepo FilesRepo->FilesModule - - + + StorageProviderRepo - -StorageProviderRepo + +StorageProviderRepo StorageProviderRepo->FilesModule - - + + diff --git a/modules/FilesStorageApiModule.html b/modules/FilesStorageApiModule.html index 638528782d6..29dce0e3c28 100644 --- a/modules/FilesStorageApiModule.html +++ b/modules/FilesStorageApiModule.html @@ -66,79 +66,79 @@ cluster_FilesStorageApiModule - -cluster_FilesStorageApiModule_imports - - cluster_FilesStorageApiModule_providers - + + + +cluster_FilesStorageApiModule_imports + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FilesStorageApiModule - -FilesStorageApiModule + +FilesStorageApiModule AuthenticationModule->FilesStorageApiModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->FilesStorageApiModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FilesStorageApiModule - - + + FilesStorageModule - -FilesStorageModule + +FilesStorageModule FilesStorageModule->FilesStorageApiModule - - + + FilesStorageUC - -FilesStorageUC + +FilesStorageUC FilesStorageUC->FilesStorageApiModule - - + + diff --git a/modules/FilesStorageApiModule/dependencies.svg b/modules/FilesStorageApiModule/dependencies.svg index 075c4994910..b9c32e9816d 100644 --- a/modules/FilesStorageApiModule/dependencies.svg +++ b/modules/FilesStorageApiModule/dependencies.svg @@ -24,79 +24,79 @@ cluster_FilesStorageApiModule - -cluster_FilesStorageApiModule_imports - - cluster_FilesStorageApiModule_providers - + + + +cluster_FilesStorageApiModule_imports + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FilesStorageApiModule - -FilesStorageApiModule + +FilesStorageApiModule AuthenticationModule->FilesStorageApiModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->FilesStorageApiModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FilesStorageApiModule - - + + FilesStorageModule - -FilesStorageModule + +FilesStorageModule FilesStorageModule->FilesStorageApiModule - - + + FilesStorageUC - -FilesStorageUC + +FilesStorageUC FilesStorageUC->FilesStorageApiModule - - + + diff --git a/modules/FilesStorageClientModule.html b/modules/FilesStorageClientModule.html index 94b6592536b..5128323232e 100644 --- a/modules/FilesStorageClientModule.html +++ b/modules/FilesStorageClientModule.html @@ -66,107 +66,107 @@ cluster_FilesStorageClientModule - -cluster_FilesStorageClientModule_exports - + +cluster_FilesStorageClientModule_providers + cluster_FilesStorageClientModule_imports - + - -cluster_FilesStorageClientModule_providers - + +cluster_FilesStorageClientModule_exports + 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 5b8620f9ec2..2054c77506e 100644 --- a/modules/FilesStorageClientModule/dependencies.svg +++ b/modules/FilesStorageClientModule/dependencies.svg @@ -24,107 +24,107 @@ cluster_FilesStorageClientModule - -cluster_FilesStorageClientModule_exports - + +cluster_FilesStorageClientModule_providers + cluster_FilesStorageClientModule_imports - + - -cluster_FilesStorageClientModule_providers - + +cluster_FilesStorageClientModule_exports + 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 4a20e652714..c23d25511ef 100644 --- a/modules/FilesStorageModule.html +++ b/modules/FilesStorageModule.html @@ -66,167 +66,167 @@ cluster_FilesStorageModule - -cluster_FilesStorageModule_imports - - cluster_FilesStorageModule_providers - + + + +cluster_FilesStorageModule_imports + 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 8dfdc9a31ad..cb74c2ba456 100644 --- a/modules/FilesStorageModule/dependencies.svg +++ b/modules/FilesStorageModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_FilesStorageModule - -cluster_FilesStorageModule_imports - - cluster_FilesStorageModule_providers - + + + +cluster_FilesStorageModule_imports + 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 daf85e651e1..eb5bf80b0d2 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 61981219577..210c424ba4c 100644 --- a/modules/FwuLearningContentsTestModule.html +++ b/modules/FwuLearningContentsTestModule.html @@ -66,115 +66,115 @@ cluster_FwuLearningContentsTestModule - -cluster_FwuLearningContentsTestModule_imports - - cluster_FwuLearningContentsTestModule_providers - + + + +cluster_FwuLearningContentsTestModule_imports + 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 41e915a635f..17c50ba016f 100644 --- a/modules/FwuLearningContentsTestModule/dependencies.svg +++ b/modules/FwuLearningContentsTestModule/dependencies.svg @@ -24,115 +24,115 @@ cluster_FwuLearningContentsTestModule - -cluster_FwuLearningContentsTestModule_imports - - cluster_FwuLearningContentsTestModule_providers - + + + +cluster_FwuLearningContentsTestModule_imports + 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/GroupApiModule.html b/modules/GroupApiModule.html index e5b34fc29ca..fe40f4c1a29 100644 --- a/modules/GroupApiModule.html +++ b/modules/GroupApiModule.html @@ -66,115 +66,115 @@ cluster_GroupApiModule - -cluster_GroupApiModule_providers - - cluster_GroupApiModule_imports - + + + +cluster_GroupApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule GroupApiModule - -GroupApiModule + +GroupApiModule AuthorizationModule->GroupApiModule - - + + ClassModule - -ClassModule + +ClassModule ClassModule->GroupApiModule - - + + GroupModule - -GroupModule + +GroupModule GroupModule->GroupApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->GroupApiModule - - + + RoleModule - -RoleModule + +RoleModule RoleModule->GroupApiModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->GroupApiModule - - + + UserModule - -UserModule + +UserModule UserModule->GroupApiModule - - + + GroupUc - -GroupUc + +GroupUc GroupUc->GroupApiModule - - + + diff --git a/modules/GroupApiModule/dependencies.svg b/modules/GroupApiModule/dependencies.svg index 1d379111c49..a05e9a49342 100644 --- a/modules/GroupApiModule/dependencies.svg +++ b/modules/GroupApiModule/dependencies.svg @@ -24,115 +24,115 @@ cluster_GroupApiModule - -cluster_GroupApiModule_providers - - cluster_GroupApiModule_imports - + + + +cluster_GroupApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule GroupApiModule - -GroupApiModule + +GroupApiModule AuthorizationModule->GroupApiModule - - + + ClassModule - -ClassModule + +ClassModule ClassModule->GroupApiModule - - + + GroupModule - -GroupModule + +GroupModule GroupModule->GroupApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->GroupApiModule - - + + RoleModule - -RoleModule + +RoleModule RoleModule->GroupApiModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->GroupApiModule - - + + UserModule - -UserModule + +UserModule UserModule->GroupApiModule - - + + GroupUc - -GroupUc + +GroupUc GroupUc->GroupApiModule - - + + diff --git a/modules/GroupModule.html b/modules/GroupModule.html index a9646c0472c..f9d565939c8 100644 --- a/modules/GroupModule.html +++ b/modules/GroupModule.html @@ -66,14 +66,14 @@ cluster_GroupModule - -cluster_GroupModule_providers - - cluster_GroupModule_exports + +cluster_GroupModule_providers + + GroupService diff --git a/modules/GroupModule/dependencies.svg b/modules/GroupModule/dependencies.svg index 3c54a278631..281df50cd45 100644 --- a/modules/GroupModule/dependencies.svg +++ b/modules/GroupModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_GroupModule - -cluster_GroupModule_providers - - cluster_GroupModule_exports + +cluster_GroupModule_providers + + GroupService diff --git a/modules/ImportUserModule.html b/modules/ImportUserModule.html index d3db5748ada..67ac5b96673 100644 --- a/modules/ImportUserModule.html +++ b/modules/ImportUserModule.html @@ -66,127 +66,127 @@ cluster_ImportUserModule - -cluster_ImportUserModule_providers - - cluster_ImportUserModule_imports - + + + +cluster_ImportUserModule_providers + AccountModule - -AccountModule + +AccountModule ImportUserModule - -ImportUserModule + +ImportUserModule AccountModule->ImportUserModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->ImportUserModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ImportUserModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ImportUserModule - - + + ImportUserRepo - -ImportUserRepo + +ImportUserRepo ImportUserRepo->ImportUserModule - - + + LegacySchoolRepo - -LegacySchoolRepo + +LegacySchoolRepo LegacySchoolRepo->ImportUserModule - - + + SystemRepo - -SystemRepo + +SystemRepo SystemRepo->ImportUserModule - - + + UserImportUc - -UserImportUc + +UserImportUc UserImportUc->ImportUserModule - - + + UserRepo - -UserRepo + +UserRepo UserRepo->ImportUserModule - - + + diff --git a/modules/ImportUserModule/dependencies.svg b/modules/ImportUserModule/dependencies.svg index 865f5e9e427..0df34afc962 100644 --- a/modules/ImportUserModule/dependencies.svg +++ b/modules/ImportUserModule/dependencies.svg @@ -24,127 +24,127 @@ cluster_ImportUserModule - -cluster_ImportUserModule_providers - - cluster_ImportUserModule_imports - + + + +cluster_ImportUserModule_providers + AccountModule - -AccountModule + +AccountModule ImportUserModule - -ImportUserModule + +ImportUserModule AccountModule->ImportUserModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->ImportUserModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ImportUserModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ImportUserModule - - + + ImportUserRepo - -ImportUserRepo + +ImportUserRepo ImportUserRepo->ImportUserModule - - + + LegacySchoolRepo - -LegacySchoolRepo + +LegacySchoolRepo LegacySchoolRepo->ImportUserModule - - + + SystemRepo - -SystemRepo + +SystemRepo SystemRepo->ImportUserModule - - + + UserImportUc - -UserImportUc + +UserImportUc UserImportUc->ImportUserModule - - + + UserRepo - -UserRepo + +UserRepo UserRepo->ImportUserModule - - + + diff --git a/modules/KeycloakConfigurationModule.html b/modules/KeycloakConfigurationModule.html index f180090968c..56c42c50b5b 100644 --- a/modules/KeycloakConfigurationModule.html +++ b/modules/KeycloakConfigurationModule.html @@ -66,167 +66,167 @@ cluster_KeycloakConfigurationModule + +cluster_KeycloakConfigurationModule_providers + + cluster_KeycloakConfigurationModule_imports - + cluster_KeycloakConfigurationModule_exports - - - -cluster_KeycloakConfigurationModule_providers - + AccountModule - -AccountModule + +AccountModule KeycloakConfigurationModule - -KeycloakConfigurationModule + +KeycloakConfigurationModule AccountModule->KeycloakConfigurationModule - - + + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule ConsoleWriterModule->KeycloakConfigurationModule - - + + EncryptionModule - -EncryptionModule + +EncryptionModule EncryptionModule->KeycloakConfigurationModule - - + + KeycloakAdministrationModule - -KeycloakAdministrationModule + +KeycloakAdministrationModule KeycloakAdministrationModule->KeycloakConfigurationModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->KeycloakConfigurationModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->KeycloakConfigurationModule - - + + KeycloakConfigurationService - -KeycloakConfigurationService + +KeycloakConfigurationService KeycloakConfigurationModule->KeycloakConfigurationService - - + + KeycloakConsole - -KeycloakConsole + +KeycloakConsole KeycloakConfigurationModule->KeycloakConsole - - + + KeycloakSeedService - -KeycloakSeedService + +KeycloakSeedService KeycloakConfigurationModule->KeycloakSeedService - - + + KeycloakConfigurationService - -KeycloakConfigurationService + +KeycloakConfigurationService KeycloakConfigurationService->KeycloakConfigurationModule - - + + KeycloakConfigurationUc - -KeycloakConfigurationUc + +KeycloakConfigurationUc KeycloakConfigurationUc->KeycloakConfigurationModule - - + + KeycloakMigrationService - -KeycloakMigrationService + +KeycloakMigrationService KeycloakMigrationService->KeycloakConfigurationModule - - + + diff --git a/modules/KeycloakConfigurationModule/dependencies.svg b/modules/KeycloakConfigurationModule/dependencies.svg index 4315931ac86..276f318db12 100644 --- a/modules/KeycloakConfigurationModule/dependencies.svg +++ b/modules/KeycloakConfigurationModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_KeycloakConfigurationModule + +cluster_KeycloakConfigurationModule_providers + + cluster_KeycloakConfigurationModule_imports - + cluster_KeycloakConfigurationModule_exports - - - -cluster_KeycloakConfigurationModule_providers - + AccountModule - -AccountModule + +AccountModule KeycloakConfigurationModule - -KeycloakConfigurationModule + +KeycloakConfigurationModule AccountModule->KeycloakConfigurationModule - - + + ConsoleWriterModule - -ConsoleWriterModule + +ConsoleWriterModule ConsoleWriterModule->KeycloakConfigurationModule - - + + EncryptionModule - -EncryptionModule + +EncryptionModule EncryptionModule->KeycloakConfigurationModule - - + + KeycloakAdministrationModule - -KeycloakAdministrationModule + +KeycloakAdministrationModule KeycloakAdministrationModule->KeycloakConfigurationModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->KeycloakConfigurationModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->KeycloakConfigurationModule - - + + KeycloakConfigurationService - -KeycloakConfigurationService + +KeycloakConfigurationService KeycloakConfigurationModule->KeycloakConfigurationService - - + + KeycloakConsole - -KeycloakConsole + +KeycloakConsole KeycloakConfigurationModule->KeycloakConsole - - + + KeycloakSeedService - -KeycloakSeedService + +KeycloakSeedService KeycloakConfigurationModule->KeycloakSeedService - - + + KeycloakConfigurationService - -KeycloakConfigurationService + +KeycloakConfigurationService KeycloakConfigurationService->KeycloakConfigurationModule - - + + KeycloakConfigurationUc - -KeycloakConfigurationUc + +KeycloakConfigurationUc KeycloakConfigurationUc->KeycloakConfigurationModule - - + + KeycloakMigrationService - -KeycloakMigrationService + +KeycloakMigrationService KeycloakMigrationService->KeycloakConfigurationModule - - + + diff --git a/modules/LearnroomModule.html b/modules/LearnroomModule.html index 9a6b539fc90..a617d49ee65 100644 --- a/modules/LearnroomModule.html +++ b/modules/LearnroomModule.html @@ -66,263 +66,263 @@ cluster_LearnroomModule - -cluster_LearnroomModule_imports - - cluster_LearnroomModule_providers - + + + +cluster_LearnroomModule_imports + cluster_LearnroomModule_exports - + BoardModule - -BoardModule + +BoardModule LearnroomModule - -LearnroomModule + +LearnroomModule BoardModule->LearnroomModule - - + + CopyHelperModule - -CopyHelperModule + +CopyHelperModule CopyHelperModule->LearnroomModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->LearnroomModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->LearnroomModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->LearnroomModule - - + + CommonCartridgeExportService - -CommonCartridgeExportService + +CommonCartridgeExportService LearnroomModule->CommonCartridgeExportService - - + + CourseCopyService - -CourseCopyService + +CourseCopyService LearnroomModule->CourseCopyService - - + + CourseService - -CourseService + +CourseService LearnroomModule->CourseService - - + + RoomsService - -RoomsService + +RoomsService LearnroomModule->RoomsService - - + + BoardCopyService - -BoardCopyService + +BoardCopyService BoardCopyService->LearnroomModule - - + + BoardRepo - -BoardRepo + +BoardRepo BoardRepo->LearnroomModule - - + + ColumnBoardTargetService - -ColumnBoardTargetService + +ColumnBoardTargetService ColumnBoardTargetService->LearnroomModule - - + + CommonCartridgeExportService - -CommonCartridgeExportService + +CommonCartridgeExportService CommonCartridgeExportService->LearnroomModule - - + + CourseCopyService - -CourseCopyService + +CourseCopyService CourseCopyService->LearnroomModule - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->LearnroomModule - - + + CourseService - -CourseService + +CourseService CourseService->LearnroomModule - - + + DashboardModelMapper - -DashboardModelMapper + +DashboardModelMapper DashboardModelMapper->LearnroomModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->LearnroomModule - - + + RoomsService - -RoomsService + +RoomsService RoomsService->LearnroomModule - - + + UserRepo - -UserRepo + +UserRepo UserRepo->LearnroomModule - - + + diff --git a/modules/LearnroomModule/dependencies.svg b/modules/LearnroomModule/dependencies.svg index 135a594f172..31eb40ea5ff 100644 --- a/modules/LearnroomModule/dependencies.svg +++ b/modules/LearnroomModule/dependencies.svg @@ -24,263 +24,263 @@ cluster_LearnroomModule - -cluster_LearnroomModule_imports - - cluster_LearnroomModule_providers - + + + +cluster_LearnroomModule_imports + cluster_LearnroomModule_exports - + BoardModule - -BoardModule + +BoardModule LearnroomModule - -LearnroomModule + +LearnroomModule BoardModule->LearnroomModule - - + + CopyHelperModule - -CopyHelperModule + +CopyHelperModule CopyHelperModule->LearnroomModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->LearnroomModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->LearnroomModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->LearnroomModule - - + + CommonCartridgeExportService - -CommonCartridgeExportService + +CommonCartridgeExportService LearnroomModule->CommonCartridgeExportService - - + + CourseCopyService - -CourseCopyService + +CourseCopyService LearnroomModule->CourseCopyService - - + + CourseService - -CourseService + +CourseService LearnroomModule->CourseService - - + + RoomsService - -RoomsService + +RoomsService LearnroomModule->RoomsService - - + + BoardCopyService - -BoardCopyService + +BoardCopyService BoardCopyService->LearnroomModule - - + + BoardRepo - -BoardRepo + +BoardRepo BoardRepo->LearnroomModule - - + + ColumnBoardTargetService - -ColumnBoardTargetService + +ColumnBoardTargetService ColumnBoardTargetService->LearnroomModule - - + + CommonCartridgeExportService - -CommonCartridgeExportService + +CommonCartridgeExportService CommonCartridgeExportService->LearnroomModule - - + + CourseCopyService - -CourseCopyService + +CourseCopyService CourseCopyService->LearnroomModule - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->LearnroomModule - - + + CourseService - -CourseService + +CourseService CourseService->LearnroomModule - - + + DashboardModelMapper - -DashboardModelMapper + +DashboardModelMapper DashboardModelMapper->LearnroomModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->LearnroomModule - - + + RoomsService - -RoomsService + +RoomsService RoomsService->LearnroomModule - - + + UserRepo - -UserRepo + +UserRepo UserRepo->LearnroomModule - - + + diff --git a/modules/LegacySchoolApiModule.html b/modules/LegacySchoolApiModule.html index 1c2106010c3..ad8ead6e4e6 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 4c114d96dbd..b8367395e32 100644 --- a/modules/LegacySchoolModule.html +++ b/modules/LegacySchoolModule.html @@ -68,155 +68,155 @@ cluster_LegacySchoolModule - -cluster_LegacySchoolModule_exports - + +cluster_LegacySchoolModule_providers + cluster_LegacySchoolModule_imports - + - -cluster_LegacySchoolModule_providers - + +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 082abdbe280..1286a6d4d80 100644 --- a/modules/LegacySchoolModule/dependencies.svg +++ b/modules/LegacySchoolModule/dependencies.svg @@ -24,155 +24,155 @@ cluster_LegacySchoolModule - -cluster_LegacySchoolModule_exports - + +cluster_LegacySchoolModule_providers + cluster_LegacySchoolModule_imports - + - -cluster_LegacySchoolModule_providers - + +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 382438b2935..5a6bf82ff75 100644 --- a/modules/LessonModule.html +++ b/modules/LessonModule.html @@ -66,10 +66,6 @@ cluster_LessonModule - -cluster_LessonModule_exports - - cluster_LessonModule_providers @@ -78,6 +74,10 @@ cluster_LessonModule_imports + +cluster_LessonModule_exports + + CopyHelperModule diff --git a/modules/LessonModule/dependencies.svg b/modules/LessonModule/dependencies.svg index ff716f8a8ca..15081e35f04 100644 --- a/modules/LessonModule/dependencies.svg +++ b/modules/LessonModule/dependencies.svg @@ -24,10 +24,6 @@ cluster_LessonModule - -cluster_LessonModule_exports - - cluster_LessonModule_providers @@ -36,6 +32,10 @@ cluster_LessonModule_imports + +cluster_LessonModule_exports + + CopyHelperModule 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/NewsModule.html b/modules/NewsModule.html index abd1c498daa..e03ea25805c 100644 --- a/modules/NewsModule.html +++ b/modules/NewsModule.html @@ -66,83 +66,83 @@ cluster_NewsModule + +cluster_NewsModule_providers + + cluster_NewsModule_exports - + cluster_NewsModule_imports - - - -cluster_NewsModule_providers - + 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 5fc7034e974..a4039bd9fbb 100644 --- a/modules/NewsModule/dependencies.svg +++ b/modules/NewsModule/dependencies.svg @@ -24,83 +24,83 @@ cluster_NewsModule + +cluster_NewsModule_providers + + cluster_NewsModule_exports - + cluster_NewsModule_imports - - - -cluster_NewsModule_providers - + 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/OauthModule.html b/modules/OauthModule.html index 588f4350ef3..483b9ecf3a5 100644 --- a/modules/OauthModule.html +++ b/modules/OauthModule.html @@ -66,203 +66,203 @@ cluster_OauthModule + +cluster_OauthModule_imports + + cluster_OauthModule_providers - + cluster_OauthModule_exports - - - -cluster_OauthModule_imports - + AuthorizationModule - -AuthorizationModule + +AuthorizationModule OauthModule - -OauthModule + +OauthModule AuthorizationModule->OauthModule - - + + CacheWrapperModule - -CacheWrapperModule + +CacheWrapperModule CacheWrapperModule->OauthModule - - + + EncryptionModule - -EncryptionModule + +EncryptionModule EncryptionModule->OauthModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->OauthModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->OauthModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->OauthModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->OauthModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->OauthModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthModule - - + + HydraSsoService - -HydraSsoService + +HydraSsoService OauthModule->HydraSsoService - - + + OAuthService - -OAuthService + +OAuthService OauthModule->OAuthService - - + + HydraSsoService - -HydraSsoService + +HydraSsoService HydraSsoService->OauthModule - - + + LtiToolRepo - -LtiToolRepo + +LtiToolRepo LtiToolRepo->OauthModule - - + + OAuthService - -OAuthService + +OAuthService OAuthService->OauthModule - - + + OauthAdapterService - -OauthAdapterService + +OauthAdapterService OauthAdapterService->OauthModule - - + + diff --git a/modules/OauthModule/dependencies.svg b/modules/OauthModule/dependencies.svg index 97d16c0cf6e..d21eeeb26b2 100644 --- a/modules/OauthModule/dependencies.svg +++ b/modules/OauthModule/dependencies.svg @@ -24,203 +24,203 @@ cluster_OauthModule + +cluster_OauthModule_imports + + cluster_OauthModule_providers - + cluster_OauthModule_exports - - - -cluster_OauthModule_imports - + AuthorizationModule - -AuthorizationModule + +AuthorizationModule OauthModule - -OauthModule + +OauthModule AuthorizationModule->OauthModule - - + + CacheWrapperModule - -CacheWrapperModule + +CacheWrapperModule CacheWrapperModule->OauthModule - - + + EncryptionModule - -EncryptionModule + +EncryptionModule EncryptionModule->OauthModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->OauthModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->OauthModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->OauthModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->OauthModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->OauthModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthModule - - + + HydraSsoService - -HydraSsoService + +HydraSsoService OauthModule->HydraSsoService - - + + OAuthService - -OAuthService + +OAuthService OauthModule->OAuthService - - + + HydraSsoService - -HydraSsoService + +HydraSsoService HydraSsoService->OauthModule - - + + LtiToolRepo - -LtiToolRepo + +LtiToolRepo LtiToolRepo->OauthModule - - + + OAuthService - -OAuthService + +OAuthService OAuthService->OauthModule - - + + OauthAdapterService - -OauthAdapterService + +OauthAdapterService OauthAdapterService->OauthModule - - + + diff --git a/modules/OauthProviderModule.html b/modules/OauthProviderModule.html index 6096ed480d0..871c3dad427 100644 --- a/modules/OauthProviderModule.html +++ b/modules/OauthProviderModule.html @@ -66,14 +66,14 @@ cluster_OauthProviderModule - -cluster_OauthProviderModule_providers - - cluster_OauthProviderModule_exports + +cluster_OauthProviderModule_providers + + cluster_OauthProviderModule_imports diff --git a/modules/OauthProviderModule/dependencies.svg b/modules/OauthProviderModule/dependencies.svg index 1448a9c7619..7e7954fc6bb 100644 --- a/modules/OauthProviderModule/dependencies.svg +++ b/modules/OauthProviderModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_OauthProviderModule - -cluster_OauthProviderModule_providers - - cluster_OauthProviderModule_exports + +cluster_OauthProviderModule_providers + + cluster_OauthProviderModule_imports diff --git a/modules/PreviewGeneratorProducerModule.html b/modules/PreviewGeneratorProducerModule.html index 91481462e31..322cc560916 100644 --- a/modules/PreviewGeneratorProducerModule.html +++ b/modules/PreviewGeneratorProducerModule.html @@ -70,14 +70,14 @@ cluster_PreviewGeneratorProducerModule_imports - -cluster_PreviewGeneratorProducerModule_exports - - cluster_PreviewGeneratorProducerModule_providers + +cluster_PreviewGeneratorProducerModule_exports + + LoggerModule diff --git a/modules/PreviewGeneratorProducerModule/dependencies.svg b/modules/PreviewGeneratorProducerModule/dependencies.svg index eddfc8e09f1..3d56b2a3c06 100644 --- a/modules/PreviewGeneratorProducerModule/dependencies.svg +++ b/modules/PreviewGeneratorProducerModule/dependencies.svg @@ -28,14 +28,14 @@ cluster_PreviewGeneratorProducerModule_imports - -cluster_PreviewGeneratorProducerModule_exports - - cluster_PreviewGeneratorProducerModule_providers + +cluster_PreviewGeneratorProducerModule_exports + + LoggerModule diff --git a/modules/ProvisioningModule.html b/modules/ProvisioningModule.html index 9bdfb6f1a9e..1fb7000cfd1 100644 --- a/modules/ProvisioningModule.html +++ b/modules/ProvisioningModule.html @@ -66,10 +66,6 @@ cluster_ProvisioningModule - -cluster_ProvisioningModule_exports - - cluster_ProvisioningModule_providers @@ -78,6 +74,10 @@ cluster_ProvisioningModule_imports + +cluster_ProvisioningModule_exports + + AccountModule diff --git a/modules/ProvisioningModule/dependencies.svg b/modules/ProvisioningModule/dependencies.svg index 00d904c379e..47217dffc62 100644 --- a/modules/ProvisioningModule/dependencies.svg +++ b/modules/ProvisioningModule/dependencies.svg @@ -24,10 +24,6 @@ cluster_ProvisioningModule - -cluster_ProvisioningModule_exports - - cluster_ProvisioningModule_providers @@ -36,6 +32,10 @@ cluster_ProvisioningModule_imports + +cluster_ProvisioningModule_exports + + AccountModule diff --git a/modules/RoleModule.html b/modules/RoleModule.html index 57a708507b0..d4523fd8573 100644 --- a/modules/RoleModule.html +++ b/modules/RoleModule.html @@ -66,14 +66,14 @@ cluster_RoleModule - -cluster_RoleModule_exports - - cluster_RoleModule_providers + +cluster_RoleModule_exports + + RoleRepo diff --git a/modules/RoleModule/dependencies.svg b/modules/RoleModule/dependencies.svg index 3e07aca68b8..7437d024aad 100644 --- a/modules/RoleModule/dependencies.svg +++ b/modules/RoleModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_RoleModule - -cluster_RoleModule_exports - - cluster_RoleModule_providers + +cluster_RoleModule_exports + + RoleRepo diff --git a/modules/SchoolExternalToolModule.html b/modules/SchoolExternalToolModule.html index 2ac449fd2eb..96dfae92c67 100644 --- a/modules/SchoolExternalToolModule.html +++ b/modules/SchoolExternalToolModule.html @@ -66,95 +66,95 @@ cluster_SchoolExternalToolModule + +cluster_SchoolExternalToolModule_imports + + cluster_SchoolExternalToolModule_providers - + cluster_SchoolExternalToolModule_exports - - - -cluster_SchoolExternalToolModule_imports - + CommonToolModule - -CommonToolModule + +CommonToolModule SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule CommonToolModule->SchoolExternalToolModule - - + + ExternalToolModule - -ExternalToolModule + +ExternalToolModule ExternalToolModule->SchoolExternalToolModule - - + + SchoolExternalToolService - -SchoolExternalToolService + +SchoolExternalToolService SchoolExternalToolModule->SchoolExternalToolService - - + + SchoolExternalToolValidationService - -SchoolExternalToolValidationService + +SchoolExternalToolValidationService SchoolExternalToolModule->SchoolExternalToolValidationService - - + + SchoolExternalToolService - -SchoolExternalToolService + +SchoolExternalToolService SchoolExternalToolService->SchoolExternalToolModule - - + + SchoolExternalToolValidationService - -SchoolExternalToolValidationService + +SchoolExternalToolValidationService SchoolExternalToolValidationService->SchoolExternalToolModule - - + + diff --git a/modules/SchoolExternalToolModule/dependencies.svg b/modules/SchoolExternalToolModule/dependencies.svg index 57838fc1fcc..7ae7ea928da 100644 --- a/modules/SchoolExternalToolModule/dependencies.svg +++ b/modules/SchoolExternalToolModule/dependencies.svg @@ -24,95 +24,95 @@ cluster_SchoolExternalToolModule + +cluster_SchoolExternalToolModule_imports + + cluster_SchoolExternalToolModule_providers - + cluster_SchoolExternalToolModule_exports - - - -cluster_SchoolExternalToolModule_imports - + CommonToolModule - -CommonToolModule + +CommonToolModule SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule CommonToolModule->SchoolExternalToolModule - - + + ExternalToolModule - -ExternalToolModule + +ExternalToolModule ExternalToolModule->SchoolExternalToolModule - - + + SchoolExternalToolService - -SchoolExternalToolService + +SchoolExternalToolService SchoolExternalToolModule->SchoolExternalToolService - - + + SchoolExternalToolValidationService - -SchoolExternalToolValidationService + +SchoolExternalToolValidationService SchoolExternalToolModule->SchoolExternalToolValidationService - - + + SchoolExternalToolService - -SchoolExternalToolService + +SchoolExternalToolService SchoolExternalToolService->SchoolExternalToolModule - - + + SchoolExternalToolValidationService - -SchoolExternalToolValidationService + +SchoolExternalToolValidationService SchoolExternalToolValidationService->SchoolExternalToolModule - - + + diff --git a/modules/SharingApiModule.html b/modules/SharingApiModule.html index ab1a1c4bf6a..448c115a728 100644 --- a/modules/SharingApiModule.html +++ b/modules/SharingApiModule.html @@ -66,115 +66,115 @@ cluster_SharingApiModule - -cluster_SharingApiModule_imports - - cluster_SharingApiModule_providers - + + + +cluster_SharingApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule SharingApiModule - -SharingApiModule + +SharingApiModule AuthorizationModule->SharingApiModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->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 4d4407c5c73..b52c3f4f14e 100644 --- a/modules/SharingApiModule/dependencies.svg +++ b/modules/SharingApiModule/dependencies.svg @@ -24,115 +24,115 @@ cluster_SharingApiModule - -cluster_SharingApiModule_imports - - cluster_SharingApiModule_providers - + + + +cluster_SharingApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule SharingApiModule - -SharingApiModule + +SharingApiModule AuthorizationModule->SharingApiModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->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/SharingModule.html b/modules/SharingModule.html index 7bbe812a86e..bbdadc13b6e 100644 --- a/modules/SharingModule.html +++ b/modules/SharingModule.html @@ -66,14 +66,14 @@ cluster_SharingModule - -cluster_SharingModule_exports - - cluster_SharingModule_providers + +cluster_SharingModule_exports + + cluster_SharingModule_imports diff --git a/modules/SharingModule/dependencies.svg b/modules/SharingModule/dependencies.svg index 1e990f51f5b..c99cfd84351 100644 --- a/modules/SharingModule/dependencies.svg +++ b/modules/SharingModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_SharingModule - -cluster_SharingModule_exports - - cluster_SharingModule_providers + +cluster_SharingModule_exports + + cluster_SharingModule_imports diff --git a/modules/SystemModule.html b/modules/SystemModule.html index b2041ff1d9c..0541789c89e 100644 --- a/modules/SystemModule.html +++ b/modules/SystemModule.html @@ -66,95 +66,95 @@ cluster_SystemModule - -cluster_SystemModule_providers - - cluster_SystemModule_imports - + cluster_SystemModule_exports - + + + +cluster_SystemModule_providers + 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 1ddf5927778..37a522632bc 100644 --- a/modules/SystemModule/dependencies.svg +++ b/modules/SystemModule/dependencies.svg @@ -24,95 +24,95 @@ cluster_SystemModule - -cluster_SystemModule_providers - - cluster_SystemModule_imports - + cluster_SystemModule_exports - + + + +cluster_SystemModule_providers + 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/ToolLaunchModule.html b/modules/ToolLaunchModule.html index 0256ea24560..0f193bfa049 100644 --- a/modules/ToolLaunchModule.html +++ b/modules/ToolLaunchModule.html @@ -66,179 +66,179 @@ cluster_ToolLaunchModule + +cluster_ToolLaunchModule_imports + + cluster_ToolLaunchModule_exports - + cluster_ToolLaunchModule_providers - - - -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 - - + + 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 c0575f653b8..941919c3621 100644 --- a/modules/ToolLaunchModule/dependencies.svg +++ b/modules/ToolLaunchModule/dependencies.svg @@ -24,179 +24,179 @@ cluster_ToolLaunchModule + +cluster_ToolLaunchModule_imports + + cluster_ToolLaunchModule_exports - + cluster_ToolLaunchModule_providers - - - -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 - - + + 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/UserLoginMigrationModule.html b/modules/UserLoginMigrationModule.html index 80318b3b98e..67c69db0536 100644 --- a/modules/UserLoginMigrationModule.html +++ b/modules/UserLoginMigrationModule.html @@ -66,215 +66,215 @@ cluster_UserLoginMigrationModule - -cluster_UserLoginMigrationModule_providers - + +cluster_UserLoginMigrationModule_exports + cluster_UserLoginMigrationModule_imports - + - -cluster_UserLoginMigrationModule_exports - + +cluster_UserLoginMigrationModule_providers + AccountModule - -AccountModule + +AccountModule UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule AccountModule->UserLoginMigrationModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->UserLoginMigrationModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->UserLoginMigrationModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->UserLoginMigrationModule - - + + UserModule - -UserModule + +UserModule UserModule->UserLoginMigrationModule - - + + MigrationCheckService - -MigrationCheckService + +MigrationCheckService UserLoginMigrationModule->MigrationCheckService - - + + SchoolMigrationService - -SchoolMigrationService + +SchoolMigrationService UserLoginMigrationModule->SchoolMigrationService - - + + UserLoginMigrationRevertService - -UserLoginMigrationRevertService + +UserLoginMigrationRevertService UserLoginMigrationModule->UserLoginMigrationRevertService - - + + UserLoginMigrationService - -UserLoginMigrationService + +UserLoginMigrationService UserLoginMigrationModule->UserLoginMigrationService - - + + UserMigrationService - -UserMigrationService + +UserMigrationService UserLoginMigrationModule->UserMigrationService - - + + MigrationCheckService - -MigrationCheckService + +MigrationCheckService MigrationCheckService->UserLoginMigrationModule - - + + SchoolMigrationService - -SchoolMigrationService + +SchoolMigrationService SchoolMigrationService->UserLoginMigrationModule - - + + UserLoginMigrationRepo - -UserLoginMigrationRepo + +UserLoginMigrationRepo UserLoginMigrationRepo->UserLoginMigrationModule - - + + UserLoginMigrationRevertService - -UserLoginMigrationRevertService + +UserLoginMigrationRevertService UserLoginMigrationRevertService->UserLoginMigrationModule - - + + UserLoginMigrationService - -UserLoginMigrationService + +UserLoginMigrationService UserLoginMigrationService->UserLoginMigrationModule - - + + UserMigrationService - -UserMigrationService + +UserMigrationService UserMigrationService->UserLoginMigrationModule - - + + diff --git a/modules/UserLoginMigrationModule/dependencies.svg b/modules/UserLoginMigrationModule/dependencies.svg index 3b9af6ad517..b59a0489e8b 100644 --- a/modules/UserLoginMigrationModule/dependencies.svg +++ b/modules/UserLoginMigrationModule/dependencies.svg @@ -24,215 +24,215 @@ cluster_UserLoginMigrationModule - -cluster_UserLoginMigrationModule_providers - + +cluster_UserLoginMigrationModule_exports + cluster_UserLoginMigrationModule_imports - + - -cluster_UserLoginMigrationModule_exports - + +cluster_UserLoginMigrationModule_providers + AccountModule - -AccountModule + +AccountModule UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule AccountModule->UserLoginMigrationModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->UserLoginMigrationModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->UserLoginMigrationModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->UserLoginMigrationModule - - + + UserModule - -UserModule + +UserModule UserModule->UserLoginMigrationModule - - + + MigrationCheckService - -MigrationCheckService + +MigrationCheckService UserLoginMigrationModule->MigrationCheckService - - + + SchoolMigrationService - -SchoolMigrationService + +SchoolMigrationService UserLoginMigrationModule->SchoolMigrationService - - + + UserLoginMigrationRevertService - -UserLoginMigrationRevertService + +UserLoginMigrationRevertService UserLoginMigrationModule->UserLoginMigrationRevertService - - + + UserLoginMigrationService - -UserLoginMigrationService + +UserLoginMigrationService UserLoginMigrationModule->UserLoginMigrationService - - + + UserMigrationService - -UserMigrationService + +UserMigrationService UserLoginMigrationModule->UserMigrationService - - + + MigrationCheckService - -MigrationCheckService + +MigrationCheckService MigrationCheckService->UserLoginMigrationModule - - + + SchoolMigrationService - -SchoolMigrationService + +SchoolMigrationService SchoolMigrationService->UserLoginMigrationModule - - + + UserLoginMigrationRepo - -UserLoginMigrationRepo + +UserLoginMigrationRepo UserLoginMigrationRepo->UserLoginMigrationModule - - + + UserLoginMigrationRevertService - -UserLoginMigrationRevertService + +UserLoginMigrationRevertService UserLoginMigrationRevertService->UserLoginMigrationModule - - + + UserLoginMigrationService - -UserLoginMigrationService + +UserLoginMigrationService UserLoginMigrationService->UserLoginMigrationModule - - + + UserMigrationService - -UserMigrationService + +UserMigrationService UserMigrationService->UserLoginMigrationModule - - + + diff --git a/modules/VideoConferenceApiModule.html b/modules/VideoConferenceApiModule.html index 3a23b7bfac5..fa3af765bc0 100644 --- a/modules/VideoConferenceApiModule.html +++ b/modules/VideoConferenceApiModule.html @@ -66,103 +66,103 @@ cluster_VideoConferenceApiModule - -cluster_VideoConferenceApiModule_providers - - cluster_VideoConferenceApiModule_imports - + + + +cluster_VideoConferenceApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule VideoConferenceApiModule - -VideoConferenceApiModule + +VideoConferenceApiModule AuthorizationModule->VideoConferenceApiModule - - + + UserModule - -UserModule + +UserModule UserModule->VideoConferenceApiModule - - + + VideoConferenceModule - -VideoConferenceModule + +VideoConferenceModule VideoConferenceModule->VideoConferenceApiModule - - + + VideoConferenceCreateUc - -VideoConferenceCreateUc + +VideoConferenceCreateUc VideoConferenceCreateUc->VideoConferenceApiModule - - + + VideoConferenceEndUc - -VideoConferenceEndUc + +VideoConferenceEndUc VideoConferenceEndUc->VideoConferenceApiModule - - + + VideoConferenceInfoUc - -VideoConferenceInfoUc + +VideoConferenceInfoUc VideoConferenceInfoUc->VideoConferenceApiModule - - + + VideoConferenceJoinUc - -VideoConferenceJoinUc + +VideoConferenceJoinUc VideoConferenceJoinUc->VideoConferenceApiModule - - + + diff --git a/modules/VideoConferenceApiModule/dependencies.svg b/modules/VideoConferenceApiModule/dependencies.svg index d8b713584ad..aa8fdfdf469 100644 --- a/modules/VideoConferenceApiModule/dependencies.svg +++ b/modules/VideoConferenceApiModule/dependencies.svg @@ -24,103 +24,103 @@ cluster_VideoConferenceApiModule - -cluster_VideoConferenceApiModule_providers - - cluster_VideoConferenceApiModule_imports - + + + +cluster_VideoConferenceApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule VideoConferenceApiModule - -VideoConferenceApiModule + +VideoConferenceApiModule AuthorizationModule->VideoConferenceApiModule - - + + UserModule - -UserModule + +UserModule UserModule->VideoConferenceApiModule - - + + VideoConferenceModule - -VideoConferenceModule + +VideoConferenceModule VideoConferenceModule->VideoConferenceApiModule - - + + VideoConferenceCreateUc - -VideoConferenceCreateUc + +VideoConferenceCreateUc VideoConferenceCreateUc->VideoConferenceApiModule - - + + VideoConferenceEndUc - -VideoConferenceEndUc + +VideoConferenceEndUc VideoConferenceEndUc->VideoConferenceApiModule - - + + VideoConferenceInfoUc - -VideoConferenceInfoUc + +VideoConferenceInfoUc VideoConferenceInfoUc->VideoConferenceApiModule - - + + VideoConferenceJoinUc - -VideoConferenceJoinUc + +VideoConferenceJoinUc VideoConferenceJoinUc->VideoConferenceApiModule - - + + diff --git a/modules/VideoConferenceModule.html b/modules/VideoConferenceModule.html index 5a45b85d161..dc103580f5c 100644 --- a/modules/VideoConferenceModule.html +++ b/modules/VideoConferenceModule.html @@ -66,209 +66,209 @@ cluster_VideoConferenceModule - -cluster_VideoConferenceModule_providers - - cluster_VideoConferenceModule_exports - + cluster_VideoConferenceModule_imports - + + + +cluster_VideoConferenceModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule VideoConferenceModule - -VideoConferenceModule + +VideoConferenceModule AuthorizationModule->VideoConferenceModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->VideoConferenceModule - - + + CalendarModule - -CalendarModule + +CalendarModule CalendarModule->VideoConferenceModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->VideoConferenceModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->VideoConferenceModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->VideoConferenceModule - - + + UserModule - -UserModule + +UserModule UserModule->VideoConferenceModule - - + + UserModule->VideoConferenceModule - - + + BBBService - -BBBService + +BBBService VideoConferenceModule->BBBService - - + + VideoConferenceService - -VideoConferenceService + +VideoConferenceService VideoConferenceModule->VideoConferenceService - - + + BBBService - -BBBService + +BBBService BBBService->VideoConferenceModule - - + + ConverterUtil - -ConverterUtil + +ConverterUtil ConverterUtil->VideoConferenceModule - - + + TeamsRepo - -TeamsRepo + +TeamsRepo TeamsRepo->VideoConferenceModule - - + + VideoConferenceDeprecatedUc - -VideoConferenceDeprecatedUc + +VideoConferenceDeprecatedUc VideoConferenceDeprecatedUc->VideoConferenceModule - - + + VideoConferenceRepo - -VideoConferenceRepo + +VideoConferenceRepo VideoConferenceRepo->VideoConferenceModule - - + + VideoConferenceService - -VideoConferenceService + +VideoConferenceService VideoConferenceService->VideoConferenceModule - - + + diff --git a/modules/VideoConferenceModule/dependencies.svg b/modules/VideoConferenceModule/dependencies.svg index 25cbec685ec..ee40f9fbddd 100644 --- a/modules/VideoConferenceModule/dependencies.svg +++ b/modules/VideoConferenceModule/dependencies.svg @@ -24,209 +24,209 @@ cluster_VideoConferenceModule - -cluster_VideoConferenceModule_providers - - cluster_VideoConferenceModule_exports - + cluster_VideoConferenceModule_imports - + + + +cluster_VideoConferenceModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule VideoConferenceModule - -VideoConferenceModule + +VideoConferenceModule AuthorizationModule->VideoConferenceModule - - + + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule AuthorizationReferenceModule->VideoConferenceModule - - + + CalendarModule - -CalendarModule + +CalendarModule CalendarModule->VideoConferenceModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->VideoConferenceModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->VideoConferenceModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->VideoConferenceModule - - + + UserModule - -UserModule + +UserModule UserModule->VideoConferenceModule - - + + UserModule->VideoConferenceModule - - + + BBBService - -BBBService + +BBBService VideoConferenceModule->BBBService - - + + VideoConferenceService - -VideoConferenceService + +VideoConferenceService VideoConferenceModule->VideoConferenceService - - + + BBBService - -BBBService + +BBBService BBBService->VideoConferenceModule - - + + ConverterUtil - -ConverterUtil + +ConverterUtil ConverterUtil->VideoConferenceModule - - + + TeamsRepo - -TeamsRepo + +TeamsRepo TeamsRepo->VideoConferenceModule - - + + VideoConferenceDeprecatedUc - -VideoConferenceDeprecatedUc + +VideoConferenceDeprecatedUc VideoConferenceDeprecatedUc->VideoConferenceModule - - + + VideoConferenceRepo - -VideoConferenceRepo + +VideoConferenceRepo VideoConferenceRepo->VideoConferenceModule - - + + VideoConferenceService - -VideoConferenceService + +VideoConferenceService VideoConferenceService->VideoConferenceModule - - + +